próbuję użyć Gradle wtyczki antlr, ale uruchomić na kilka problemów.Generowanie ANTLR4 pliki gramatyki z deklaracji pakietu w Gradle
Mam plik gramatyki zwany wls.g4
:
grammar WlsScript;
@header {
package hu.pmi.wls.antlr.ws;
}
program
: 'statementList'? EOF
;
// Several more grammar and lexer rules
(. Uwaga: zrobiłem statementList do hasła tylko do prawidłowego grammer bez włączając całą gramatykę ;-))
Plik ten znajduje się w katalogu/src/main/antlr (jako domyślny folder źródłowy plików gramatyki produkcji antlr).
Oto urywek z build.gradle
:
project('common') {
apply plugin: 'antlr'
dependencies {
// Some dependencies
antlr "org.antlr:antlr4:4.5"
}
}
Kiedy używam generateGrammarSource
Gradle zadania (comming od antlr
plugin) do generowania plików źródłowych generuje pliki w folderze build/generated-src/antlr/main
który jest domyślnie.
Co jest nie tak, że nie tworzy folderów pakietu java (hu/pmi/wls/antlr/ws
w naszym przypadku), więc źródło będzie niepoprawnie umieszczone w środowisku Eclipse.
Moim głównym pytaniem jest, jak mogę zmusić zadanie do generowania plików źródłowych w sposób pakiet zorganizowany? Innymi słowy, w jaki sposób mogę skonfigurować zadanie gradle, aby używać deklaracji pakietu z gramatyki?
Dzięki!
Mam taki sam problem z ANTLR 4.5. Korzystam tylko z org.antlr.v4.Tool do przetworzenia pliku .g4 i nie mogłem go wygenerować źródła Java w strukturze folderów odpowiadających im nazw pakietów. Może generować pliki zgodnie z katalogiem określonym przez opcję "-o". Tak więc jedynym sposobem jest jawne określenie struktury folderu pakietów w opcji "-o". Nie znam Gradle'a, ale szukam sposobu, aby Gradle mógł przekazać opcje podczas wykonywania narzędzia ANTLR. – anonymous