1

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

number :
  INT
  ;

INT : '0'..'9'+
  ;

它会接受123as number,但我不确定为什么它也接受abc123as number

如何更正要解析的规则number

感谢您的任何建议!

4

1 回答 1

0

但我不确定为什么它也接受 abc123 作为数字?

它没有。

也许您正在使用一些 3 rd方工具/编辑器,其中很难看到打印到控制台的错误消息,但它们就在那里。解析器可能只是从不匹配的输入中恢复,使其看起来像 INT接受输入,如"abc123".

于 2012-10-15T15:33:17.953 回答