У меня есть ниже, чтобы реализовать в грамматике ANTLR.
INPUT → EXPR ;
EXPR → if EXPR then EXPR else EXPR
| { EXPR (; EXPR)* }
| ! EXPR
| id := EXPR
Я сделал для 'expr', но получил ошибку при записи для! Expr.
input : expr SEMICOLON;
expr : IF expr THEN expr ELSE expr
| ID ASSIGN expr
| OBRACE expr ( SEMICOLON expr )* CBRACE
| !expr
;
Эта строка дает ошибку - (! Expr). Как я могу написать отрицание?