同
- ANTLR 4.7
- ANTLR 4.7 Maven插件
- Eclipse的霓虹灯4.6.2
我试图用ANTLR4的语法导入功能。 看到
- https://github.com/BITPlan/com.bitplan.antlr
与示例IRI语法https://github.com/BITPlan/com.bitplan.antlr/tree/master/src/main/antlr4/com/bitplan/iri
这语法基本上是分裂的企图https://github.com/antlr/grammars-v4/blob/master/iri/IRI.g4分为三个部分:
- 解析器
- 词法分析器
- 进口基本词法部分
在这一点上我收到错误信息:
can't find or load grammar LexBasic
我检查了
- ANTLR4没有找到进口语法
- 结合语法Antlr4进口失败
并提交给美国bug报告https://github.com/antlr/antlr4/issues/2061
并写了一篇wiki文章在: http://wiki.bitplan.com/index.php/ANTLR_maven_plugin
然后我把LexBasic.g4文件到的src / main / antlr4 /进口目录的错误依然存在。 而当我设LexBasic.g4到的src / main / antlr4在命令行事情会很好地工作。 但是,这似乎是不同的,那么在什么样的文档http://www.antlr.org/api/maven-plugin/latest/说。
在https://gist.github.com/sharwell/4979017我发现,构建辅助Maven插件不需要任何更多的评论。 我还是要试试这个。
在我的最后几天试验我有很多不同的pom.xml配置怪癖。 我会得到错误信息,如:
-
can't find or load grammar LexBasic
-
reference to undefined rule
或Eclipse环境将开始在非无限循环再生从.g4文件的Java源文件。 我会从菜单中调用Maven构建停止这样一个循环。
我仍然不知道什么是正确的方法来设置与词法分析器和进口词法文件的项目将使用antlr4,Maven和月食。
- 什么是设置此正确的方式?
- 我在哪里可以找到一个例子项目?
@Wolfgang,我居然在一个类似的任务中间现在正。 我不知道进口选项。 感谢那。 通过使用这里引用的Maven配置Antlr4 Maven插件无法找到在不同的目录语法文件 ,我能得到的一切尽可能多的成功,使用import语句编译。 但是,我认为这个问题是ANTLR4 IDE插件本身。 文法编译,但是Eclipse应该认识到进口。 还检查了山姆的评论在上面的帖子。 我知道他一直在ANTLR贡献者和他的洞察力是声音:也许是我(和你)我试图做的是不值得的。 我要让你知道我发现了什么。 干杯。
我曾与ANTLR 4.7,ANTLR V4 Maven插件,ANTLR 4个IDE Eclipse插件,而Eclipse氧气同样的问题。
如果您看到错误消息can't find or load grammar
在Eclipse的问题来看,它来自ANTLR 4个IDE Eclipse插件。 所以,如果你遵循的准则antlr4 Maven的文档 (例如,你把你的语法/词法文件下src/main/antlr4
目录),那很好,你的Maven项目应不会出现错误编译。 当我从你的问题的理解是,这是你的情况了。 为了摆脱Eclipse插件我还需要添加相同的目录作为源目录到我的项目的错误信息(即,进入project settings/Java Build Path/(Source tab)
,并加入如的文件夹src/main/antlr4/.../(YourGrammar.g)
到源文件夹。
更新
我试图编译你的GitHub库,你的POM似乎要被罚款,无论缺少一些依赖。 我还注意到,您使用org.antlr.v4.runtime.tree.gui.TreeViewer
在不是因为ANTLR 4.5.1可用,让你无论是使用早期版本的ANTLR(如4.5),或取消注释该代码的例子。 我创建了一个拉请求你,所以你可以看到我的变化。
另外一个通知(当我和你的项目扮演)是该antlr4ide插件将产生LexBasic.g4词法分析器中的每个语法文件每一个细小的变化(这取决于它),这似乎是恼人。 我会建议停用在项目设置(工具ANTLR4/Tool
)。 你无论如何都会通过编译Maven的项目。 所以,你仍然可以使用antlr4ide的项目的基本功能(如语法高亮,索引),但它不会重新生成每一个微小的变化的语法。
文章来源: antlr4 import maven eclipse combination does not work can't find or load grammar