Anche se si possono eseguire molte operazioni utili fra l'analisi e la generazione del bytecode, la cosa più semplice è non fare nulla: a tal proposito, l'uso del modulo parser per produrre una struttura di dati intermedia equivale al codice:
>>> code = compile('a + 5', 'file.py', 'eval')
>>> a = 5
>>> eval(code)
10
L'operazione equivalente, utilizzando il modulo parser, richiede leggermente più tempo e permette all'albero di analisi interno intermedio di essere gestito come un oggetto AST.
>>> import parser
>>> ast = parser.expr('a + 5')
>>> code = ast.compile('file.py')
>>> a = 5
>>> eval(code)
10
Un'applicazione che richieda sia gli oggetti AST che gli oggetti codice può raggruppare questo codice in funzioni già disponibili:
import parser
def load_suite(source_string):
ast = parser.suite(source_string)
return ast, ast.compile()
def load_expression(source_string):
ast = parser.expr(source_string)
return ast, ast.compile()
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.