19.3.2 Assegnamento dei nodi

Esiste una raccolta di nodi utilizzati per rappresentare gli assegnamenti. Ogni istruzione di assegnamento nel codice sorgente diventa un singolo nodo Assign nell'AST. L'attributo nodes è una lista che contiene un nodo per ogni obiettivo dell'assegnamento. Questo è necessario perché l'assegnamento può venire concatenato, per esempio a = b = 2. Ogni Node nella lista sarà una di queste classi: AssAttr, AssList, AssName o AssTuple.

Ciascun nodo obiettivo dell'assegnamento descriverà il tipo di oggetto per il quale è stato assegnato: AssName per un nome semplice, per esempio a = 1. AssAttr per l'assegnamento di un attributo, per esempio a.x = 1. AssList ed AssTuple rispettivamente per l'espansione di una lista o di una tupla, per esempio a, b, c = a_tuple.

I nodi obiettivo dell'assegnamento possiedono inoltre un attributo flags che indica se il nodo venga utilizzato per un assegnamento o per un'istruzione di cancellazione. AssName viene usato anche per rappresentare un'istruzione di cancellazione, ad esempio del x.

Quando un'espressione contiene alcuni riferimenti ad attributi, un'istruzione di assegnamento o cancellazione conterrà solo un nodo AssAttr - per il riferimento finale all'attributo. Gli altri riferimenti agli attributi verranno rappresentati come nodi Getattr nell'attributo expr dell'istanza AssAttr.

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