ANTLR4 中的 EOF 行为
EOF behaviour in ANTLR4
对于给定的输入:
hello hello
和语法:
grammar test;
foo: bar ;
bar : 'hello' bar | EOF;
WS : [ \t\r\n]+ -> skip ;
我得到了规则栏的有效解析树。
但是当我删除 foo 规则时:
grammar test;
bar : 'hello' bar | EOF;
WS : [ \t\r\n]+ -> skip ;
我收到一个错误 "line 1:11 no viable alternative at input '< EOF>"。这里发生了什么?我正在使用 ANTLR4 的 intellij 插件进行规则测试。
经 ANTLR4 合著者 Sam Harwell 确认,这是 ANTLR4 中的错误。可以在这里追踪:https://github.com/antlr/antlr4/issues/118
问题中建议的解决方法(使用额外的根规则 foo)。
对于给定的输入:
hello hello
和语法:
grammar test;
foo: bar ;
bar : 'hello' bar | EOF;
WS : [ \t\r\n]+ -> skip ;
我得到了规则栏的有效解析树。
但是当我删除 foo 规则时:
grammar test;
bar : 'hello' bar | EOF;
WS : [ \t\r\n]+ -> skip ;
我收到一个错误 "line 1:11 no viable alternative at input '< EOF>"。这里发生了什么?我正在使用 ANTLR4 的 intellij 插件进行规则测试。
经 ANTLR4 合著者 Sam Harwell 确认,这是 ANTLR4 中的错误。可以在这里追踪:https://github.com/antlr/antlr4/issues/118
问题中建议的解决方法(使用额外的根规则 foo)。