How does python build its AST

Kay Schluehr kay.schluehr at gmx.net
Fri Dec 7 10:50:30 EST 2007


On Dec 7, 3:23 pm, MonkeeSage <MonkeeS... at gmail.com> wrote:
> A quick question about how python parses a file into compiled
> bytecode. Does it parse the whole file into AST first and then compile
> the AST, or does it build and compile the AST on the fly as it reads
> expressions? (If the former case, why can't functions be called before
> their definitions?)
>
> Thanks,
> Jordan

Python uses a highly optimized table based LL(1) parser to create a
syntax tree. In Python 2.5 it transforms the concrete syntax tree
( CST ) into an AST before compilation. Before that it compiled the
CST directly. I'm not sure what you are asking for ( in parentheses )?
Parser actions or preprocessing the tree? The latter is definitely
possible and you can build your own compilation machinery using the
parser module and the compile function.

Kay



More information about the Python-list mailing list