Ich schreibe ein EBNF für eine einfache Sprache. Eine der Fähigkeiten der Sprache ist das Berechnen von Ausdrücken und Speichern in Variablen. Zum Beispiel:Dynamisch aktualisieren Variablen in ANTLR generiert Parser
A = 5
B = A + 2
C = B/(A * 2)
D = C - B + A
Ich erzeuge einen Python-Parser ANTLR und ich bin in der Lage, die Werte ganz gut und aufzubauen meine Datenstrukturen zu berechnen.
Ich habe jedoch eine zusätzliche Anforderung. Wenn der Wert von Variable A später im Code aktualisiert wird, brauche ich B, C und D, um neue Werte entsprechend A zu erhalten. Bis jetzt ist meine Idee, den gesamten Ausdruck/die Gleichung für jede Variable zu speichern. Sobald der Parser den ersten Durchlauf abgeschlossen hat, werte ich alle gespeicherten Ausdrücke erneut aus, um aktualisierte Werte zu erhalten.
Aber ich frage mich, ob ANTLR selbst einige Haken für so etwas bietet? Wie eine Multi-Pass-Sache?
Alle Hinweise werden geschätzt.
Ja, genau das habe ich mir vorgenommen. Hatte gehofft, dass jemand da draußen schon so etwas getan hätte. Naja. – shikhanshu