ANTLR4 空闲 org.antlr.v4.gui.TestRig 不输出结果

问题描述 投票:0回答:1

我整理了:

grammar Hello; // Define a grammar called 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, \r (Windows)r

生成类文件的命令(注意我使用 -package hellogrammer 创建它):

java  -jar antlr-4.9.2-complete.jar -package hellogrammer -o c:\Dev\my\java\ANTLR\test_project\core\src\main\java\hellogrammer c:\Dev\my\java\ANTLR\test_project\core\src\main\java\Hello.g4

它创建了很好的文件,然后我编译这些文件,它看起来像这样:

c:\Dev\my\java\ANTLR\test_project\core\target\classes\hellogrammer>ls -1
HelloBaseListener.class
HelloLexer.class
HelloListener.class
'HelloParser$RContext.class'
HelloParser.class

现在,当我尝试执行 TestRig 命令时,我没有从命令行得到任何响应:

c:\Dev\my\java\ANTLR\test_project\core\target\classes>java -cp ".;C:/Dev/my/java/ANTLR/antlr-4.9.2-complete.jar" org.antlr.v4.gui.TestRig  hellogrammer.Hello -tree

它只是堆叠,没有错误或任何响应...

java command-line-interface antlr4
1个回答
1
投票

TestRig 需要两个单独的参数,第一个是语法名称和启动规则名称。然后,此 TestRig 开始解析来自输入流的输入,因此,您可以键入输入(使用 Ctrl-D 表示信号 EOF),也可以使用

<

将输入重定向到 stdin

尝试:

c:\Dev\my\java\ANTLR\test_project\core\target\classes>java -cp ".;C:/Dev/my/java/ANTLR/antlr-4.9.2-complete.jar" org.antlr.v4.gui.TestRig hellogrammar.Hello r -tree < “your input file”
© www.soinside.com 2019 - 2024. All rights reserved.