From 4e86195a997f0bfff51ce4dd4b1fdac461348160 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Wed, 12 Apr 2006 12:16:31 +0000 Subject: [PATCH] Mention access to ASTs --- Doc/whatsnew/whatsnew25.tex | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Doc/whatsnew/whatsnew25.tex b/Doc/whatsnew/whatsnew25.tex index 91385dccda..958b3be762 100644 --- a/Doc/whatsnew/whatsnew25.tex +++ b/Doc/whatsnew/whatsnew25.tex @@ -5,7 +5,6 @@ % Fix XXX comments % Distutils upload (PEP 243) % The easy_install stuff -% Access to ASTs with compile() flag % Stateful codec changes % 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 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 +""", "", '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 learning about it, read the definition of the various AST nodes in \file{Parser/Python.asdl}. A Python script reads this file and -- 2.50.1