【发布时间】:2015-09-09 19:38:37
【问题描述】:
我整天都在努力让 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 %*
这是我老板让我使用的,对他有用。
【问题讨论】:
-
没有。它没有任何区别。不过,谢谢。
-
我在 OS X 10.9.5 和 brew install 上遇到了同样的问题。添加:export CLASSPATH=".:/usr/local/Cellar/antlr/4.5.1/antlr-4.5.1-complete.jar:$CLASSPATH" 之后:grun Hello r -tokens 警告:TestRig 移至 org.antlr。 v4.gui.TestRig;自动调用
标签: java shell batch-file cygwin antlr