Antlr4 Testrig 没有 return 任何东西
Antlr4 Testrig doesn't return anything
这是我第一次使用Antlr4,我有一个关于测试平台的问题。
我已经完成了安装过程并试用了 Antlr4 主站点和 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:$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
根据这个例子,它至少应该 return 树的 gui 和一些输出,当我做 grun Hello r -tree
但是,当我这样做时,什么也没有发生。只是闪烁的光标,好像它在计算什么。有点像这样
/tmp/Hello$ grun Hello r -tree
|
是 Hello.g4 代码有问题还是我在安装过程中遗漏了什么或者 grun
只是需要很长时间才能完成编译?我还尝试了 Antlr4 页面中的几个示例,仍然得到同样的结果。
提前感谢您的回复。
它没有做任何事情,因为它正在等待输入。 grun -tree
运行 在某些输入上设置解析器,然后打印该输入的解析树。但它不能这样做,直到它有一些输入文本要解析。
所以你应该输入一些根据语法有效的输入(或者不是,如果你想测试错误报告)然后按 Ctrl+D(如果你在 Windows ) 关闭输入流。或者,您可以将输入写入文件,然后 运行 grun Hello r -tree < my_input.txt
.
这是我第一次使用Antlr4,我有一个关于测试平台的问题。 我已经完成了安装过程并试用了 Antlr4 主站点和 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:$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
根据这个例子,它至少应该 return 树的 gui 和一些输出,当我做 grun Hello r -tree
但是,当我这样做时,什么也没有发生。只是闪烁的光标,好像它在计算什么。有点像这样
/tmp/Hello$ grun Hello r -tree
|
是 Hello.g4 代码有问题还是我在安装过程中遗漏了什么或者 grun
只是需要很长时间才能完成编译?我还尝试了 Antlr4 页面中的几个示例,仍然得到同样的结果。
提前感谢您的回复。
它没有做任何事情,因为它正在等待输入。 grun -tree
运行 在某些输入上设置解析器,然后打印该输入的解析树。但它不能这样做,直到它有一些输入文本要解析。
所以你应该输入一些根据语法有效的输入(或者不是,如果你想测试错误报告)然后按 Ctrl+D(如果你在 Windows ) 关闭输入流。或者,您可以将输入写入文件,然后 运行 grun Hello r -tree < my_input.txt
.