Ich versuche, das GRADLE-AntiLR-Plugin zu verwenden, aber stoßen Sie auf mehrere Probleme.Generieren von ANTLR4-Grammatikdateien mit Paketdeklaration in Gradle
Ich habe eine Grammatikdatei wls.g4
genannt:
grammar WlsScript;
@header {
package hu.pmi.wls.antlr.ws;
}
program
: 'statementList'? EOF
;
// Several more grammar and lexer rules
(. Hinweis: ich die Anweisungsliste nur auf ein Keyword einen richtigen grammer zu machen, ohne die gesamte Grammatik einschließlich ;-))
Diese Datei befindet sich in/src/main/antlr (als Standard-Quellordner der Antitl-Produktionsgrammatikdateien). Hier
ist der Ausschnitt aus build.gradle
:
project('common') {
apply plugin: 'antlr'
dependencies {
// Some dependencies
antlr "org.antlr:antlr4:4.5"
}
}
Wenn ich die generateGrammarSource
gradle Task (von antlr
Plugin comming) die Quelldateien zu erzeugen, die Dateien in build/generated-src/antlr/main
Ordner erzeugt, das ist die Standardeinstellung.
Was schief geht, dass es nicht die Ordner des Java-Pakets erstellt (hu/pmi/wls/antlr/ws
in unserem Fall), so wird die Quelle in Eclipse falsch sein.
Meine primäre Frage ist, wie könnte ich die Aufgabe zwingen, Quelldateien in einem Paket-strukturierte Weise zu generieren? Mit anderen Worten, wie kann ich die Graplestask konfigurieren, um die Paketdeklaration aus Grammatik zu verwenden?
Danke!
Ich habe das gleiche Problem mit ANTLR 4.5. Ich verwende nur das org.antlr.v4.Tool, um die .g4-Datei zu verarbeiten, und konnte nicht dazu gebracht werden, die Java-Quelle in der entsprechenden Paketnamen-Ordnerstruktur zu generieren. Es könnte Dateien entsprechend dem durch die Option "-o" angegebenen Verzeichnis generieren. Die einzige Möglichkeit besteht darin, die Paketordnerstruktur in der Option "-o" explizit anzugeben. Ich bin mit Gradle nicht vertraut, aber sieh nach, ob es für Gradle eine Möglichkeit gibt, während der Ausführung des ANTLR-Tools Optionen zu übergeben. – anonymous