Я пытаюсь использовать плагин gradle antlr, но сталкиваюсь с несколькими проблемами.
У меня есть файл грамматики под названием wls.g4
:
grammar WlsScript;
@header {
package hu.pmi.wls.antlr.ws;
}
program
: 'statementList'? EOF
;
// Several more grammar and lexer rules
(Примечание. Я сделал оператор statement для ключевого слова только для того, чтобы создать правильный грамматик, не включая всю грамматику.; -))
Этот файл находится в /src/main/antlr (в качестве исходной папки по умолчанию для файлов грамматики производства antlr).
Вот фрагмент из build.gradle
:
project('common') {
apply plugin: 'antlr'
dependencies {
// Some dependencies
antlr "org.antlr:antlr4:4.5"
}
}
Когда я использую задачу generateGrammarSource
gradle (начиная с antlr
plugin) для генерации исходных файлов, он генерирует файлы в папке build/generated-src/antlr/main
, которая по умолчанию.
Что не так, что он не создает папки java-пакета (hu/pmi/wls/antlr/ws
в нашем случае), поэтому источник будет неправильно расположен в Eclipse.
Мой основной вопрос: каким образом я могу заставить задачу генерировать исходные файлы структурированным способом?. Другими словами, как настроить задачу gradle для использования объявления пакета из грамматика?
Спасибо!