我很惭愧地问...我为从 int 到 bool 的类型转换的语言编写了一个语法,反之亦然。
logic_expr : expr NOT? OR | AND expr
| expr '|' expr SMALLER | LARGER
| NUMBER
| NUMBER_SHORT
| IDENT
| LOGIC_DEFINED
;
math_expr : expr ADD | SUB expr
| NUMBER
| NUMBER_SHORT
| IDENT
| LOGIC_FULL
;
expr : logic_expr
| math_expr
| IDENT
| LOGIC_DEFINED
| '(' expr ')'
;
但是 antlr 告诉我“以下规则集是相互左递归的 [logic_expr, expr, math_expr]”我无法理解我的语法有什么问题?