ANTLR generiert eine Java-Quelle aus der Grammatikdatei. Die generierte Quelle hat eine Abhängigkeit von ANTLR-Klassen.
Kann ich 'saubere' Java-Quellen mit ANTLR erzeugen, die keine Antlr-Abhängigkeit haben?
Wenn nicht, kann jemand einen Java-Parser empfehlen, der mit Leistungen übertrifft und sauberen Java-Code produzieren kann?
Es ist wirklich nicht praktisch, Laufzeitabhängigkeiten von ANTLR zu entfernen. Sie müssen die ANTLR-Laufzeitbibliothek mit Ihren Erkennern verteilen.
Wenn ich mich richtig erinnere, erstellt JavaCC eine Kopie der notwendigen Laufzeitklassen (die JavaCC "Boilerplate") als Teil der " generierten "Code, so dass Sie keine zusätzliche JAR hinzufügen müssen.
Was ist die Ursache Ihrer Bedenken bezüglich der ANTLR-Abhängigkeiten?
Sie können das Apache Maven Shade Plugin verwenden, um ANTLR in ein neues Paket zu verschieben kein Konflikt mit anderen ANTLR-Laufzeitinstallationen im selben Prozess. StringTemplate 4 verwendet genau diese Methode, um die ANTLR-Laufzeitumgebung in das Paket st4hidden.org.antlr
zu verschieben als Teil des ST4-4.0.8-complete.jar verteilbaren Jars .