我一直在努力让ANTLR全天工作。我曾经使用过多个网站,包括antlr.org,大量的StackOverflow查询和Terence Parr的教科书。我在Windows 7机器(工作机器,不能更改为Linux)上,但是我在CommandPrompt和Cygwin上都尝试过,结果相同。
无论我做什么,到了使用grun文件的时候,最终我总是会遇到相同的错误:
警告:TestRig已移至org.antlr.v4.gui.TestRig;自动呼叫
无法将Hello加载为词法分析器或解析器
我的计算机上装有JRE和JDK的最新版本,以及cygwin的最新版本。
我可以在任何地方运行grun和antlr4的批处理文件,因此我强烈猜测我的路径设置正确。我可以完全没有问题地运行antlr4.bat。它会创建教科书上我应该看到的每个文件:Hello.g4 HelloBaseListener.java HelloLexer.tokens HelloParser.java Hello.tokens HelloLexer.java HelloListener.java
我可以在这些文件上运行javac,它会生成各种CLASS文件:HelloBaseListener.class HelloLexer.class HelloListener.class HelloParser$RContext.class HelloParser.class
但是,当我尝试在其上运行grun时,得到以下信息:
警告:TestRig已移至org.antlr.v4.gui.TestRig;自动呼叫
无法将Hello加载为词法分析器或解析器
我尝试了几种命令组合来使用grun文件,但是在书中它说要使用的命令是:
grun.bat Hello r -tree
我还使用grun多次更改了.bat文件,只是为了进行实验,在书中和网站上使用了不同的组合,但是我总是回到这点:
java org.antlr.v4.runtime.misc.TestRig %*
那是老板告诉我使用的,对他有用。
最佳答案
在您的grun.bat
命令中使用它
java org.antlr.v4.gui.TestRig %*