一个简单的例子,这是词法分析器文件:
DIGIT : [0-9];
...
这是解析器:
integer: DIGIT+;
...
当我123
解析这样的文本时,它肯定有效。但是当我解析123 456
时,它给了我答案123
,但我想要的结果是一个标记输入无效的异常。
那么我应该如何使用它呢?
在输入流的末尾生成了一个隐式EOF
令牌。使用它来匹配大多数正则表达式语言中的$
一样的结尾。
integer: DIGIT+ EOF;
仅当输入看起来像流末尾的一个或多个数字时,上述规则才会匹配。