2016-03-20 5 views
1

Ich entwickelte zunächst eine Grammatik mit dem Java-Ziel (für TestRig-Unterstützung) und portierte es dann nach Python (erweitert die Python3-Grammatik aus dem git-hub-Grammatik-Repo, das zum Portieren von Aktionen benötigt wird zu Python). Nach dem Hinzufügen einiger Hilfsdruckmethoden zu beiden Versionen und dem Ausführen beider Parser für dieselbe Eingabe erzeugt das Python-Ziel einen Fehler.antlr4 Grammatik arbeitet mit Java target, scheitert mit Python one

Ich habe die setTrace-Methode verwendet, um eine Trace-Ausgabe zu erhalten, und nachdem beide ausgeführt wurden, sind die Traces identisch (kleinere Leerzeilenunterschiede zu den print-Anweisungen). Dies sagt mir, dass beide Parser die gleichen Token treffen und den gleichen Baum bauen ... in der Theorie. Wie bereits erwähnt, wird die Java-Version korrekt beendet, während Python einen "... aber erwartet ..." Fehler hat.

Hat jemand ein ähnliches Verhalten entdeckt und wenn ja, hat er einen Workaround gefunden? Es tut mir leid, dass ich keinen tatsächlichen Code poste, aber die Grammas sind lang.

Antwort