x = y = 5; のように、複数の割り当てを許可する ANTLR で LL(1) グラマーを作成したいと考えています。
この状況ではセマンティック述語が役立つと思いますが、次のルールは機能しません:(
tokens {
BECOMES = '='
}
assignment_statement
: IDENTIFIER BECOMES expr
;
expr
: (IDENTIFIER BECOMES)=> IDENTIFIER BECOMES expr
| expr_or
;
IDENTIFIER
: LETTER (LETTER | DIGIT)*
;
ANTLRWORKS は NoViableAltException を返します。
私が間違っていたことと、これを機能させる方法を知っていますか? ありがとうございました!