Antlr4试验台不';我什么也不退
这是我第一次使用Antlr4,我有一个关于测试设备的问题。 我已经完成了安装过程,并尝试了Antl4主站点和github页面中给出的示例。以下是我所做的: 安装:Antlr4试验台不';我什么也不退,antlr4,Antlr4,这是我第一次使用Antlr4,我有一个关于测试设备的问题。 我已经完成了安装过程,并尝试了Antl4主站点和github页面中给出的示例。以下是我所做的: 安装: /usr/local/lib$ sudo curl -O https://www.antlr.org/download/antlr-4.7.1-complete.jar /usr/local/lib$ export CLASSPATH=".:/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSP
/usr/local/lib$ sudo curl -O https://www.antlr.org/download/antlr-4.7.1-complete.jar
/usr/local/lib$ export CLASSPATH=".:/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH"
/usr/local/lib$ alias grun='java org.antlr.v4.gui.TestRig'
我只运行了antlr4和grun,查看是否所有内容都安装正确:
$ antler4
ANTLR Parser Generator Version 4.7.1
-o ___ specify output directory where all output is generated
-lib ___ specify location of grammars, tokens files
.
.
$ grun
java org.antlr.v4.gui.TestRig GrammarName startRuleName
[-tokens] [-tree] [-gui] [-ps file.ps] [-encoding encodingname]
.
.
因此,我们继续在/tmp
中创建了一个示例Hello.g4
,如下所示
/// Define a grammar called Hello
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
然后跑:
$ antlr4 Hello.g4
$ javac Hello*.java
根据这个例子,当我执行grun Hello r-tree
然而,当我这么做的时候,什么也没发生。只是闪烁光标,好像在计算什么。有点像这样
/tmp/Hello$ grun Hello r -tree
|
Hello.g4代码是否有问题,或者我在安装过程中遗漏了什么,或者grun
只是需要很长时间才能完成编译?我还尝试了Antlr4页面中的几个示例,仍然得到了相同的结果
感谢您提前回复。它没有做任何事情,因为它正在等待输入
grun-tree
对某些输入运行解析器,然后打印该输入的解析树。但在有输入文本要解析之前,它无法做到这一点
因此,您应该根据语法输入一些有效的输入(如果您想测试错误报告,则输入或不输入),然后按Ctrl+D(如果您在Windows上,则按Ctrl+Z)关闭输入流。或者,您可以将输入写入文件,然后运行
grun Hello r-tree
@NuttawornSujumnong是的,没错(假设“Hello parrt”前后都有换行符)(r hello parrt)
是输入的“树”(grun-tree
将解析树打印为s表达式,而不是树的实际ASCII图形)。好的。我只是手动添加hello parrt
作为输入,然后按ctrl+D,它看起来就像示例中的一样。谢谢你的解释。