Я написал плагин sbt для генерации кода парсера и лексера из предоставленного файла грамматики antlr.Вы можете скачать код на моей странице github http://github.com/stefri/sbt-antlr. Он также указан в списке плагинов sbt https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list. Последний снимок использует ANTLR 3.3 и доступен через мой репозиторий github maven для серии sbt 0.11.x.,Если вам нужна другая версия ANTLR, которую легко изменить и перестроить, я все еще работаю над параметрами конфигурации.
Использование довольно простое, просто включите плагин и мой репозиторий maven в ./project/plugins/build.sbt
resolvers += "stefri" at "http://stefri.github.com/repo/snapshots"
addSbtPlugin("com.github.stefri" % "sbt-antlr" % "0.2-SNAPSHOT")
затем поместите файлы грамматики ANTLR3 в src/main/antlr3
.Они будут включены в вашу следующую сборку.
Убедитесь, что вы также включили настройки плагинов sbtantlr.SbtAntlrPlugin.antlrSettings
в настройки своего проекта, например, если вы используете простой подход к настройке, добавьте следующую строку
seq(sbtantlr.SbtAntlrPlugin.antlrSettings: _*)
в ваш файл build.sbt
,Обратите внимание: sbt-antlr
генерирует исходный код только один раз, пока ваш файл грамматики не изменился, он не создает заново исходные файлы java.
Сгенерированные файлы java выплевываются в target/scala-2.9.1/src_managed/main/antlr3
,поэтому убедитесь, что вы включили этот путь в путь сборки вашей IDE.Плагин все еще находится в стадии разработки, но он уже работает довольно хорошо с моими грамматиками.