给定以下 ANTLR 4.1 语法,有意注释掉一行...
grammar Foobar;
//whyDoesThisRuleHelp : expression ;
expression : operand | binaryOperation ;
binaryOperation : operand WS BINARY_OPERATOR WS expression ;
operand : LETTER ;
BINARY_OPERATOR : 'EQ' ;
LETTER : [a-z] ;
WS : [ \n]+ ;
..为什么会echo -n "a EQ b" | grun Foobar expression
产生
line 1:6 mismatched input '<EOF>' expecting WS
..但是如果我们取消注释上面的block : expression ;
行,那么grun
不会产生错误?