[英]Antlr4: extraneous input in antlr4
我有问题为我的语法运行输入流,这是我的语法的一部分
expression
: ....
| ( '+' | '-' | '&' |) expression
| expression ('+'|'-') expression
....
;
当输入流如2 + 2-2或(2 + 2 + 2)-2时,发生错误
line 10:30 extraneous input '-2' expecting {',', '^',...}
为什么我的语法不能区分-2和2-2? 有人帮我请!
您似乎已经以-2
导致单个令牌的方式编写了词法分析器。 不要以这种方式处理负数,而是将-
视为一元运算符并允许解析器处理否定操作。 如果你试图直接在词法分析器中处理负数,那么输入如2-2
将作为2个连续数字标记( 2
后跟-2
)发送给解析器,而不是所需的3个标记( 2
, -
, 2
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.