バイソンコードにシット/リデュースの競合があります:
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 */}
しかし、ノード構造を大幅に変更する必要があります。したがって、私はそれを解決する新しい方法を探しています。手伝って頂けますか ?
良い一日を過ごしてください !