我一直在努力让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 %*

10-07 21:44