文件 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 : [ \t\r\n]+ -> skip ;
当我运行命令
时antlr4 power.g4
发生此错误:
错误(119):power.g4 :::以下几组规则是相互左递归的[expr,factor,term]
我该怎么办?
答案 0 :(得分:0)
要避免左递归错误,请将所有形式的expr
放在一个规则中,按所需优先级排序:
expr : '(' expr ')'
| expr '+' expr
| expr '-' expr
| expr '*' expr
| expr '/' expr
| expr '**' expr
| id
;