我一直在努力让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
但是,当我尝试对它进行运行时,我得到了这个:
警告:TestRig已移至org.antlr.v4.gui.TestRig;自动呼叫 无法加载Hello作为词法分析器或解析器
我已经尝试了几种命令组合来使用grun文件,但它在本书中使用的是:
grun.bat Hello r -tree
我已经多次使用grun更改.bat文件,只是为了试验,使用书籍和网站上的不同组合,但我总是回到这个:
java org.antlr.v4.runtime.misc.TestRig %*
这就是我的老板告诉我使用的,这对他有用。
答案 0 :(得分:3)
在grun.bat
命令
java org.antlr.v4.gui.TestRig %*
答案 1 :(得分:0)
我遇到了同样的问题,实际上已经有了解决方案的主题 - > antlr4-Can't load Hello as lexer or parser 消息“警告:TestRig移动到org.antlr.v4.gui.TestRig;自动调用”的第一部分只是意味着TestRig订单被保存到另一个位置,无论如何都可以工作,但我相应地改变了我的批处理数据而没有得到警告了。消息的第二部分是实际问题(参见链接)。在我的情况下,我忘记了“。” (点)在我的Windows CLASSPATH中。