Antlr4: Antlr4中的多余输入

  • 本文关键字:Antlr4 多余 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)。

相关内容

  • 没有找到相关文章

最新更新