GRUN for Antlr4:如何使用?

GRUN for Antlr4: How to use?

对于语法:

grammar qwe;

query
    : COLUMN OPERATOR value EOF
    ;

COLUMN
    : [a-z_]+
    ;

OPERATOR
    : ('='|'>'|'<')
    ;

SCALAR
    : [a-z_]+
    ;

value
    : SCALAR
    ;

WS : [ \t\r\n]+ -> skip ;

有相同的规则 COLUMNSCALAR 有人建议我使用 grun 别名。

我为 Ubuntu 安装了它。对于文件夹结构:

运行 来自项目 learning_antlr4 级别:

grun qwe tokens -tokens < qwe/qwe.tokens

输出为空。

我做错了什么?别名保存在哪里?

假设您设置了 grun 别名(如果没有,请参阅本页顶部的快速入门 https://www.antlr.org):

你想要的是查看 Lexer 处理你的输入(不是你的 qwe.tokens 文件)产生的标记流

qwe.txt:

total_sales>qwe
ANTLR on  master [✘+?] 
➜ antlr4 qwe.g4      

ANTLR on  master [✘+?] 
➜ javac *.java

ANTLR on  master [✘+?] 
➜ grun qwe tokens -tokens < qwe.txt
[@0,0:10='total_sales',<COLUMN>,1:0]
[@1,11:11='>',<OPERATOR>,1:11]
[@2,12:14='qwe',<COLUMN>,1:12]
[@3,15:14='<EOF>',<EOF>,1:15]

如您所见...total_salesqwe 都被识别为 COLUMN 个标记,