AST objects may be created from source code or from a parse tree.
When creating an AST object from source, different functions are used
to create the 'eval'
and 'exec'
forms.
expr()
function parses the parameter string
as if it were an input to compile(string, 'eval')
. If
the parse succeeds, an AST object is created to hold the internal
parse tree representation, otherwise an appropriate exception is
thrown.
suite()
function parses the parameter string
as if it were an input to compile(string, 'exec')
. If
the parse succeeds, an AST object is created to hold the internal
parse tree representation, otherwise an appropriate exception is
thrown.
ParserError
exception is thrown. An AST
object created this way should not be assumed to compile correctly;
normal exceptions thrown by compilation may still be initiated when
the AST object is passed to compileast()
. This may indicate
problems not related to syntax (such as a MemoryError
exception), but may also be due to constructs such as the result of
parsing del f(0)
, which escapes the Python parser but is
checked by the bytecode compiler.
Sequences representing terminal tokens may be represented as either
two-element lists of the form (1, 'name')
or as three-element
lists of the form (1, 'name', 56)
. If the third element is
present, it is assumed to be a valid line number. The line number
may be specified for any subset of the terminal symbols in the input
tree.
sequence2ast()
. This entry point
is maintained for backward compatibility.