diff options
Diffstat (limited to 'Tools/compiler/doc/astdocgen.py')
-rw-r--r-- | Tools/compiler/doc/astdocgen.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Tools/compiler/doc/astdocgen.py b/Tools/compiler/doc/astdocgen.py new file mode 100644 index 0000000..c593ce1 --- /dev/null +++ b/Tools/compiler/doc/astdocgen.py @@ -0,0 +1,30 @@ +# Lame substitute for a fine script to generate the table from ast.txt + +from compiler import astgen + +AST_DEF = '../compiler/ast.txt' + +def sort(l): + l = l[:] + l.sort(lambda a, b: cmp(a.name, b.name)) + return l + +def main(): + nodes = astgen.parse_spec(AST_DEF) + print "\\begin{longtableiii}{lll}{class}{Node type}{Attribute}{Value}" + print + for node in sort(nodes): + if node.argnames: + print "\\lineiii{%s}{%s}{}" % (node.name, node.argnames[0]) + else: + print "\\lineiii{%s}{}{}" % node.name + + for arg in node.argnames[1:]: + print "\\lineiii{}{%s}{}" % arg + print "\\hline", "\n" + print "\\end{longtableiii}" + + +if __name__ == "__main__": + main() + |