我在文件power.g4中的ANTLR4语法是这样的:
assign : id '=' expr ;
id : 'A' | 'B' | 'C' ;
expr : expr '+' term
| expr '-' term
| term ;
term : term '*' factor
| term '/' factor
| factor ;
factor : expr '**' factor
| '(' expr ')'
| id ;
WS : [ trn]+ -> skip ;
当我运行命令时
ANTLR4 Power.G4
发生此错误:
错误(119): power.g4::: 以下规则集是相互左递归的 [expr, factor, term]
我能做什么?
为避免左递归错误,请将所有形式的expr
放在一个规则中,按所需的优先级排序:
expr : '(' expr ')'
| expr '+' expr
| expr '-' expr
| expr '*' expr
| expr '/' expr
| expr '**' expr
| id
;