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 ;
有相同的规则 COLUMN
和 SCALAR
。 有人建议我使用 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_sales
和 qwe
都被识别为 COLUMN
个标记,
对于语法:
grammar qwe;
query
: COLUMN OPERATOR value EOF
;
COLUMN
: [a-z_]+
;
OPERATOR
: ('='|'>'|'<')
;
SCALAR
: [a-z_]+
;
value
: SCALAR
;
WS : [ \t\r\n]+ -> skip ;
有相同的规则 COLUMN
和 SCALAR
。 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_sales
和 qwe
都被识别为 COLUMN
个标记,