【发布时间】:2020-10-25 22:01:40
【问题描述】:
我是 ANTLR 的初学者,我想制作一个检测变量的程序。为此,我编写了以下 ANTLR 代码,但是当我使用 grun 对其进行测试时,在输入输入 p=10 时出现错误 line 1:0 token recognition error at: 'p'。我无法理解为什么这不起作用。
grammar rules;
/*
* Parser Rules
*/
addition : NUMBER PLUS NUMBER;
assign : VARIABLE ASSIGNMENT NUMBER;
/*
* Lexer Rules
*/
VARIABLE : [a-zA-Z_]+;
NUMBER : [0-9]+ ;
WHITESPACE : [ \n\t\r]+ -> skip ;
NEWLINE: '\n';
PLUS : '+';
ASSIGNMENT : '=';
添加规则正常工作,但分配不起作用。
我在终端上运行的命令是antlr4 rules.g4;grun rules assign -tokens,然后我输入p=10 进行测试,但它仍然不起作用并显示line 1:0 token recognition error at: 'p' 错误。
【问题讨论】:
-
您是否收到来自 ANTLR 的任何消息/警告?您可能缺少顶级规则
expression := addition | assign -
@jurez 对不起。我错过了在上述命令中编译 java 文件
标签: parsing antlr antlr4 lexer