Ich habe meine Grammatik geschrieben und generiert Stubs für Besucher. Ich unterordnete auch Besucher, um meine Ausdrücke zu bewerten. Ich stehe jedoch vor einem Verständigungsproblem, da mein Gutachter (vom Besucher ausgeschlossen) nur gut für einen Besuch ist. Ich verstehe nicht, wie man das Ergebnis explizit zurückgibt? Es ist einfach, etwas wie self.result
auf einen endgültigen Wert zu setzen und später zu lesen, aber es wird schwierig, wenn mein Ausdruck rekursiv ist.antlr4: Rückgabewerte, Design verstehen
Auch scheint es mir komisch, dass ich Lexer, Stream, Parser, Tree für jeden Ausdruck installieren muss, im Gegensatz zu Instanziate nur einmal, und mehrere Ausdrücke daran übergeben.
Kann Besucher und Evaluator verschiedene Dinge sein? .. Wie soll ich meine Ausdrücke auswerten?
Vielen Dank für Ihren Erfahrungsaustausch, ich werde einen Blick werfen – dgan
Mein Fehler, tatsächlich habe ich vergessen, das visitProgram (oder was auch immer der Name des Wurzelelements ist) zu überschreiben. So war ich offensichtlich nur Kinder besuchen. Wenn ich visitProgram außer Kraft setzte, konnte ich einen Wert von EvalVisitor zurückgeben. – dgan