mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
Move opcode handling to Python's extension.
This commit is contained in:
parent
f9efabb6d2
commit
d4c7e636a9
1 changed files with 22 additions and 0 deletions
|
@ -85,6 +85,28 @@ class PydocTopicsBuilder(Builder):
|
|||
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…
Add table
Add a link
Reference in a new issue