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:
Georg Brandl 2008-07-23 15:19:11 +00:00
parent 0e9463c4c9
commit f0dd6a672d
1 changed files with 22 additions and 0 deletions

View File

@ -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)