19.3 La sintassi astratta di Python

Il modulo compiler.ast definisce una sintassi astratta per Python. Nell'albero di sintassi astratta, ogni nodo rappresenta un costrutto sintattico. La radice dell'albero è l'oggetto Module.

La sintassi astratta offre un'interfaccia di più alto livello per l'analisi del codice sorgente Python. Il modulo parser ed il compilatore scritto in C per l'interprete di Python utilizzano un albero della sintassi concreta. La sintassi concreta è legata strettamente alla descrizione grammaticale usata per il parser di Python. Invece di un singolo nodo per un costrutto ci sono spesso diversi livelli di nodi nidificati introdotti dalle regole di precedenza di Python.

L'albero di sintassi astratta viene creato dal modulo compiler.transformer. Il transformer dipende dal parser built-in di Python per generare un albero di sintassi concreta. Esso genera un albero di sintassi astratta da uno di sintassi concreta.

Il modulo transformer è stato creato da e Bill Tutt per un compilatore sperimentale da Python a C. La versione corrente contiene un numero di modificazioni e miglioramenti, ma per la forma base della sintassi astratta e del transformer dobbiamo ringraziare Stein e Tutt.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.