ANTLR4错误"调用org.antlr.v4.gui.TestRig.main"

时间:2016-08-03 09:35:20

标签: antlr4

您好我在尝试教程的简单示例时遇到此错误:

" grun Hello -r tree 警告:TestRig已移至org.antlr.v4.gui.TestRig;自动呼叫 调用org.antlr.v4.gui.TestRig.main(args)时出现问题 "

我无法弄清楚发生了什么。 你能帮我吗?

2 个答案:

答案 0 :(得分:4)

听起来你已经设置了'grun'别名来使用:

org.antlrv4.runtime.misc.TestRig

//and from antlr4 onwards they deprecated that and use this instead.

org.antlrv4.gui.TestRig

因此,您应尝试从终端或批处理文件重置“grun”别名,具体取决于您的设置方式。如果此处仍有错误评论,我会尽力帮助:

alias grun='java org.antlr.v4.gui.TestRig'

如果您在更新设置别名后仍有任何错误,请发表评论,我会尝试进一步提供帮助。

答案 1 :(得分:0)

设置TestRig - 这里添加了文档部分关闭后内容不会丢失。

ANTLR在其运行时库中包含一个测试工具,该工具可用于显示详细信息,详细说明如何执行解析以匹配语法文件中已定义规则的输入。

要使用ANTLR jar文件中包含的此工具,您应该设置系统类路径以允许访问ANTLR工具和运行时库:

export CLASSPATH=".:/usr/local/lib/antlr-4.5.3-complete.jar:$CLASSPATH"

注意:确保Dot位于任何路径之前,以确保java虚拟机不会在当前工作目录中看到类。 Alises可以在Linux / MAC / Unix上使用,以简化使用的命令:

alias antlr4='java -jar /usr/local/lib/antlr-4.5.3-complete.jar' 

//或jar所在的任何目录 注意在窗口上设置别名和类路径设置可能会更复杂,请参阅此处以获取更全面的详细信息。

访问TestRig

设置别名后,您可以按以下方式设置TestRig,建议再次使用别名减少执行操作所需的时间:

alias grun='java org.v4.runtime.misc.TestRig'

如果您不希望在Windows上设置别名,可以通过在与ANTLR jar目录相同的位置运行以下命令来访问TestRig:

java -cp .;antlr.4.5.3-complete.jar org.antlrv4.runtime.misc.TestRig
//or
java -cp .;antlr.4.5.3-complete.jar org.antlrv4.gui.TestRig

要在语法上运行TestRig,您可以将参数传递给您的语法,如下所示:

使用设置别名java -cp .; antlr.4.5.3-complete.jar org.antlrv4.gui.TestRig yourGrammar YourRule -tree //在没有别名java -cp的窗口上使用设置别名javaRt -tree来运行yourGrammar yourRule -tree。 ; antlr.4.5.3-complete.jar org.antlrv4.gui.TestRig yourGrammar Hello r -tree //带有语法Hello.g4的Windows,从规则'r'开始。

grun yourGrammar yourRule -tree //using the setup alias
java -cp .;antlr.4.5.3-complete.jar org.antlrv4.gui.TestRig yourGrammar YourRule -tree //on windows with no alias
java -cp .;antlr.4.5.3-complete.jar org.antlrv4.gui.TestRig yourGrammar Hello r -tree
//Windows with the grammar Hello.g4 starting from the rule 'r'.