首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Antlr4: antlr4中的无关输入

Antlr4: antlr4中的无关输入
EN

Stack Overflow用户
提问于 2013-06-11 11:31:55
回答 1查看 586关注 0票数 0

我在为我的语法运行输入流时遇到了问题,下面是我的语法的一部分

代码语言:javascript
复制
expression  
:  .... 
|   ( '+' | '-' | '&' |) expression
|   expression ('+'|'-') expression
   ....
;

当像2+2-2或(2+2+2)-2这样的输入流时,出现错误

代码语言:javascript
复制
line 10:30 extraneous input '-2' expecting {',', '^',...}

为什么我的语法不能区分-2和2-2?有没有人帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2013-06-11 11:40:49

看起来您编写词法分析器的方式使得-2只产生一个令牌。与其以这种方式处理负数,不如将-视为一元运算符,并允许解析器处理求反操作。如果您尝试在词法分析器中直接处理负数,诸如2-2之类的输入将作为2个连续的数字标记(2后跟-2)发送到解析器,而不是所需的3个标记(2-2)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17036086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档