我有一个简单的HelloWorld.g4
语法(请看底部)。我能够成功地使用以下命令生成.py
文件:
set CLASSPATH=.;antlr-complete.jar;%CLASSPATH%
java org.antlr.v4.Tool -Dlanguage=Python2 HelloWorld.g4
现在我想使用带有-gui标志的TestRig来生成解析树GUI。我已经安装了ANTRL Python运行时(antlr4-python2-runtime-4.5.tar.gz)。我可以打开Python解释器并输入:
import antlr4
解释器识别 antlr4
模块。
当我像这样运行 TestRig
:
set CLASSPATH=.;antlr-complete.jar;%CLASSPATH%
java org.antlr.v4.gui.TestRig HelloWorld message -gui < input.txt
我收到了这个错误信息:
Can't load HelloWorld as lexer or parser
在我的调查中,我发现了几篇帖子列出了相同的错误信息。但是,在这些情况下,他们忘记在classpath中包含句点(.)。但是,正如您所看到的,我已经在我的classpath中包含了它。
我已经没有办法让TestRig
工作了。注意:当目标语言为Java时,我没有问题让TestRig
与相同的HelloWorld
语法一起工作。
如果您能提供任何帮助,将不胜感激。
HelloWorld.g4
grammar HelloWorld;
options { language=Python; }
message : GREETING NAME;
GREETING : 'Hello' ;
NAME : [a-zA-Z]+ ;
WS : [ \t\r\n]+ -> skip ;
antlr4
工具两次并没有真正的影响。写一个小脚本,你将永远不会再注意到它了。 - cfi*.class
文件,因此他完全按照我描述的方式进行操作,因此他没有任何问题;-) - cfi