У меня есть следующие выражения, которые мне нужно проанализировать
and(true, false)
or(true, false, true)
not(or(true, false, true))
and(and(true, false), false)
or(or(true, false, true), true)
, пока у меня есть следующая грамматика
expr
: orExpr
;
orExpr
: OR '(' andExpr (',' andExpr)+ ')'
| andExpr
;
andExpr
: AND '(' equalityExpr (',' equalityExpr)+ ')'
| equalityExpr
;
equalityExpr
: comparison ((EQUALS | NOT_EQUALS) comparison)*
;
comparison
: notExpr ((GREATER_THAN_EQUALS | LESS_THAN_EQUALS | GREATER_THAN | LESS_THAN ) notExpr)?
;
notExpr
: NOT '(' expr ')'
| primary
;
primary
: '(' expr ')'
| true
| false
;
Я не могу разобрать and(and(true, false), false)
с приведенным выше грамматика? где я ошибаюсь?
Пожалуйста, предположите, что есть приоритет между AND
OR
NOT
(хотя я понимаю, что это может показаться необязательным)