Mention access to ASTs
This commit is contained in:
parent
e29002ccb0
commit
4e86195a99
|
@ -5,7 +5,6 @@
|
||||||
% Fix XXX comments
|
% Fix XXX comments
|
||||||
% Distutils upload (PEP 243)
|
% Distutils upload (PEP 243)
|
||||||
% The easy_install stuff
|
% The easy_install stuff
|
||||||
% Access to ASTs with compile() flag
|
|
||||||
% Stateful codec changes
|
% Stateful codec changes
|
||||||
% ASCII is now default encoding for modules
|
% ASCII is now default encoding for modules
|
||||||
|
|
||||||
|
@ -1380,6 +1379,20 @@ no longer generate bytecode by traversing the parse tree. Instead
|
||||||
the parse tree is converted to an abstract syntax tree (or AST), and it is
|
the parse tree is converted to an abstract syntax tree (or AST), and it is
|
||||||
the abstract syntax tree that's traversed to produce the bytecode.
|
the abstract syntax tree that's traversed to produce the bytecode.
|
||||||
|
|
||||||
|
It's possible for Python code to obtain AST objects by using the
|
||||||
|
\function{compile()} built-in and specifying 0x400 as the value of the
|
||||||
|
\var{flags} parameter:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
ast = compile("""a=0
|
||||||
|
for i in range(10):
|
||||||
|
a += i
|
||||||
|
""", "<string>", 'exec', 0x0400)
|
||||||
|
|
||||||
|
assignment = ast.body[0]
|
||||||
|
for_loop = ast.body[1]
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
No documentation has been written for the AST code yet. To start
|
No documentation has been written for the AST code yet. To start
|
||||||
learning about it, read the definition of the various AST nodes in
|
learning about it, read the definition of the various AST nodes in
|
||||||
\file{Parser/Python.asdl}. A Python script reads this file and
|
\file{Parser/Python.asdl}. A Python script reads this file and
|
||||||
|
|
Loading…
Reference in New Issue