def visit_productionlist(self, node):
replacement=nodes.literal_block(classes=["code"])
names = []
for production in node:
names.append(production['tokenname'])
maxlen = max(len(name) for name in names)
for production in node:
if production['tokenname']:
lastname = production['tokenname'].ljust(maxlen)
n=nodes.strong()
n+=nodes.Text(lastname)
replacement+=n
replacement+=nodes.Text(' ::= ')
else:
replacement+=nodes.Text('%s ' % (' '*len(lastname)))
production.walkabout(self)
replacement.children.extend(production.children)
replacement+=nodes.Text('\n')
node.parent.replace(node,replacement)
raise nodes.SkipNode
评论列表
文章目录