我想在 ANTLR 中创建一个允许多重分配的 LL(1) 语法,例如:x = y = 5;
我认为语义谓词在这种情况下很有用,但以下规则不起作用:(
tokens {
BECOMES = '='
}
assignment_statement
: IDENTIFIER BECOMES expr
;
expr
: (IDENTIFIER BECOMES)=> IDENTIFIER BECOMES expr
| expr_or
;
IDENTIFIER
: LETTER (LETTER | DIGIT)*
;
ANTLRWORKS 给出了 NoViableAltException。
你知道我做错了什么以及如何使这项工作吗?谢谢!