对于语法:
grammar qwe;
query
: COLUMN OPERATOR value EOF
;
COLUMN
: [a-z_]+
;
OPERATOR
: ('='|'>'|'<')
;
SCALAR
: [a-z_]+
;
value
: SCALAR
;
WS : [ \t\r\n]+ -> skip ;存在相同的规则COLUMN和SCALAR。Here I被建议使用grun别名。
我在我的Ubuntu上安装了它。对于文件夹结构:

从项目learning_antlr4级别运行以下代码:
grun qwe tokens -tokens < qwe/qwe.tokens输出为空。
我做错了什么?别名保存在哪里?
发布于 2021-08-31 16:16:23
假设您已经设置了grun别名(如果没有,请参阅此页面https://www.antlr.org顶部的QuickStart ):
您想要的是查看词法分析器处理您的输入(而不是qwe.tokens文件)生成的令牌流。
qwe.txt:
total_sales>qweANTLR 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_sales和qwe都被识别为COLUMN令牌,
https://stackoverflow.com/questions/69001510
复制相似问题