On Dec 7, 9:50 am, Kay Schluehr <[EMAIL PROTECTED]> wrote: > On Dec 7, 3:23 pm, MonkeeSage <[EMAIL PROTECTED]> 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
Thanks for your reply. You answered my main question. The secondary question is why is it a NameError to try to use a variable/function prior to the declaration in a source file, since python has already seen the declaration on the first pass building the CST/AST? At compile time, shouldn't it already know about it? (Forgive my ignorance.) Regards, Jordan -- http://mail.python.org/mailman/listinfo/python-list