我的野牛代码中有一个 Shit/reduce 冲突:
expression : LBRACKET expression RBRACKET {$$ = $2;}
| fct_call {}
| operand {}
| expression operator_arith expression {$$ = new NBinaryOperation(*$1, $2, *$3);}
;
我可以解决它写作:
expression : LBRACKET expression RBRACKET compexp // {$$ = $2;}
| fct_call_in_exp compexp {}
| operand compexp {}
;
compexp : /* empty */ {/* Do smthg */}
| operator_arith expression {/* Do smthg */}
但它需要对我的节点结构进行大量修改。因此,我正在寻找一种新的方法来解决它。你能帮助我吗 ?
祝你有美好的一天 !