Ich spiele mit Python ast (abstrakter Syntaxbaum).
Ich schrieb folgendes und es besuchte alle Knoten des AST.
%Vor%Dann wurden der Py2Neko-Klasse einige Methoden hinzugefügt
%Vor%Aber wenn es dann auf eine "print" -Aussage oder eine Zuweisung oder einen Ausdruck trifft, scheint es, dass es aufhört und nicht weiter geht.
Es gibt aus:
%Vor%Kann mir jemand sagen, was ich falsch gemacht habe?
Ich benutze Python 2.6.6
Da Ihre Methode visit_Assign die untergeordneten Knoten des Knotens Assign nicht explizit verarbeitet, wird die Traversierung des Syntaxbaums dort angehalten.
Wenn Sie sich die Methode NodeVisitor.generic_visit in der Implementierung von ast.py ansehen, werden Sie feststellen, dass die untergeordneten Elemente des aktuellen Knotens durchlaufen werden. So können Sie die Basisklasse generic_visit-Methode explizit von jeder Ihrer Methoden aufrufen, die untergeordnete Elemente verarbeiten müssen:
%Vor%Für Nicht-Endknoten muss Ihre Besuchsfunktion die Kinder besuchen. Siehe Ein einfaches Beispiel, wie man ast.NodeVisitor verwendet? für einige weitere Informationen.
Tags und Links python parsing abstract-syntax-tree