mirror of https://github.com/python/cpython.git
Merged revisions 65199 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r65199 | georg.brandl | 2008-07-23 17:17:09 +0200 (Wed, 23 Jul 2008) | 2 lines Move opcode handling to Python's extension. ........
This commit is contained in:
parent
0e9463c4c9
commit
f0dd6a672d
|
@ -83,6 +83,28 @@ def finish(self):
|
|||
f.close()
|
||||
|
||||
|
||||
# Support for documenting Opcodes
|
||||
|
||||
import re
|
||||
from sphinx import addnodes
|
||||
|
||||
opcode_sig_re = re.compile(r'(\w+(?:\+\d)?)\s*\((.*)\)')
|
||||
|
||||
def parse_opcode_signature(env, sig, signode):
|
||||
"""Transform an opcode signature into RST nodes."""
|
||||
m = opcode_sig_re.match(sig)
|
||||
if m is None:
|
||||
raise ValueError
|
||||
opname, arglist = m.groups()
|
||||
signode += addnodes.desc_name(opname, opname)
|
||||
paramlist = addnodes.desc_parameterlist()
|
||||
signode += paramlist
|
||||
paramlist += addnodes.desc_parameter(arglist, arglist)
|
||||
return opname.strip()
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.add_role('issue', issue_role)
|
||||
app.add_builder(PydocTopicsBuilder)
|
||||
app.add_description_unit('opcode', 'opcode', '%s (opcode)',
|
||||
parse_opcode_signature)
|
||||
|
|
Loading…
Reference in New Issue