Я хочу сделать LL (1) грамматик в ANTLR, который допускает множественную привязку, например: 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.
Вы знаете, что я сделал не так и как сделать эту работу? Спасибо!
Я хотел бы убедиться, что что-то вроде x = 2 = 3; не могло случиться. Но для вас теперь ваше решение работает! :) Спасибо! – user1255553
@ user1255553, да, это имеет смысл: см. Мой отредактированный ответ. –
К сожалению, вы отредактировали ответ уже не LL (1): p – user1255553