Kann ich ANTLR-Abhängigkeiten vom generierten Code entfernen?

8

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?

    
igr 21.11.2011, 14:02
quelle

2 Antworten

2

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?

    
erickson 21.11.2011, 14:07
quelle
1

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 .

    
Sam Harwell 11.04.2014 11:17
quelle

Tags und Links