为什么ANTLR规则接受';abc123&x27;作为一个数字?

为什么ANTLR规则接受';abc123&x27;作为一个数字?,antlr,Antlr,我尝试使用ANTLR构建一个非常简单的规则,如下所示: number : INT ; INT : '0'..'9'+ ; 它会接受123作为number,但我不确定它为什么也接受abc123作为number 如何更正规则以解析数字 谢谢你的建议 但我不知道为什么它也接受abc123作为数字 没有 也许您正在使用某些第三方工具/编辑器,其中很难看到打印到控制台的错误消息,但它们确实存在。解析器可能只是从不匹配的输入中恢复过来,使其看起来像是接受输入,比如“abc123”,是的,我使

我尝试使用ANTLR构建一个非常简单的规则,如下所示:

number :
  INT
  ;

INT : '0'..'9'+
  ;
它会接受
123
作为
number
,但我不确定它为什么也接受
abc123
作为
number

如何更正规则以解析
数字

谢谢你的建议

但我不知道为什么它也接受abc123作为数字

没有


也许您正在使用某些第三方工具/编辑器,其中很难看到打印到控制台的错误消息,但它们确实存在。解析器可能只是从不匹配的输入中恢复过来,使其看起来像是接受输入,比如“abc123”,是的,我使用了Eclipse插件ANTLR IDE进行测试。我试过ANTLRWorks,结果不一样。我可能需要为Eclipse找到另一个antlr插件。谢谢!