parser.sequence2st(sequence)
This function accepts a parse tree represented as a sequence and builds an internal representation if possible. If it can validate that the tree conforms to the Python grammar and all nodes are valid node types in the host version of Python, an ST object is created from the internal representation and returned to the called. If there is a problem creating the internal representation, or if the tree cannot be validated, a ParserError
exception is raised. An ST object created this way should not be assumed to compile correctly; normal exceptions raised by compilation may still be initiated when the ST object is passed to compilest()
. 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.
Please login to continue.