この ANTLR の例は、入力 "1;" を解析しません。. 理由を説明できますか?「11;」を解析します。
grammar TestGrammar;
options {
output=AST;
}
expr: mexpr (PLUS^ mexpr)* SEMI!;
mexpr: atom (STAR^ atom)*;
atom: INT;
LPAREN: '(';
RPAREN: ')';
STAR: '*';
PLUS: '+';
SEMI: ';';
protected
DIGIT: '0'..'9';
INT: (DIGIT)+;
WS: (' ' | '\t' | '\n' | '\r') {
$channel = HIDDEN;
};