antlr匹配全文的问题

  最近因为要写一个解释器,所以研究了一下大名鼎鼎的antlr,中文的资料比较少,大多要自己看官网的文档和一些别人写的代码。
  其中遇到了一个问题,就是用anltr语法来识别时候,只是默认匹配最大的token流如:
prog: INT ;
这是一个识别INT的语法,但是如果我们输入1aaa2ccc3的话,antlr只会匹配到 1,而后面的如果是合法token它将不会报错,直接忽略的后面的内容。
  解决办法是
prog: INT EOF ;
EOF是结束符,无论你的字符串是什么,它都会在最后帮你加上这个字符,这样antlr识别到这个字符就知道你的字符串结束了,所以如果在语法后面加上这个,就代表,要匹配全文。

你可能感兴趣的:(java)