Antlr4 maven plugin cannot find grammar files in different directories

大兔子大兔子 提交于 2019-12-01 20:26:06

问题


I'm using the antlr4 maven plug-in to build my maven project which uses antlr4:

     <groupId>org.antlr</groupId>
     <artifactId>antlr4-maven-plugin</artifactId>
     <version>4.0</version>

I started with one grammar file and got my pom.xml set-up and everything was building nicely.

Then I decided to split my grammar into logical parts and therefore used several grammar files but in different directories (so the generated code would be put into separate packages) but still all under the same root src/main/antlr4 directory.

I use the import statement in my "top" level grammar file to import the other required files.

But now maven gives me the following error when trying to build:

[ERROR] Message{errorType=CANNOT_FIND_IMPORTED_GRAMMAR

Why can't antlr find the other files that I am importing?

thanks, Ryan.


回答1:


I had the same problem and solved with the following configuration:

<libDirectory>${basedir}/src/main/antlr4/yourGrammarDirectory</libDirectory>

Look here: How to import grammar in Antlr4 to build with maven




回答2:


For the ANTLR 4.0 release, no testing was performed on imports across multiple directories.

Due to the limited benefits (IMO) provided by the current grammar import mechanism, this is currently a very low priority feature. Currently, sharing grammar files by using imports will not allow you to share code for the generated parsers or the parse trees they produce. I've been using ANTLR for years on dozens of products (including commercial releases), and not once have I found composite grammars to provide more benefits than trouble. (Note that I'm talking about the import statement here. Separating lexer and parser grammars into separate files in the same directory is frequently beneficial and my preferred way to work.)



来源:https://stackoverflow.com/questions/17089494/antlr4-maven-plugin-cannot-find-grammar-files-in-different-directories

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!