有没有人有如何设置 sbt 来构建 ANTLR 文件(到 scala)然后编译生成的代码的示例。
我的文件布局
src/main/scala/Test.scala // scala test rig
src/main/scala/Test.g // antlr grammar
build/antlr/TestParser.scala // antlr output files
build/antlr/TestLexer.scala
我的 sbt 应该包含什么?我知道有一个插件可以引入 ANTLR 的规则,但我没能让它工作。 (还是这个世界的新手)
我编写了一个 sbt 插件来从提供的 antlr 语法文件生成解析器和词法分析器代码。你可以在我的github页面下载代码http://github.com/stefri/sbt-antlr http://github.com/stefri/sbt-antlr。它也列在 sbt 插件列表中https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list。最新的快照使用 ANTLR 3.3,可通过我的 sbt 0.11.x 系列的 github maven 存储库获取。如果您需要另一个 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: _*)
to your build.sbt
文件。笔记,sbt-antlr
只要您的语法文件没有更改,就只生成一次源代码
重新生成java源文件。
生成的java文件被吐出到target/scala-2.9.1/src_managed/main/antlr3
,因此请确保将该路径包含在 IDE 构建路径中。该插件仍在开发中,但它已经非常适合我的语法了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)