0

バイソンコードにシット/リデュースの競合があります:

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 */}

しかし、ノード構造を大幅に変更する必要があります。したがって、私はそれを解決する新しい方法を探しています。手伝って頂けますか ?

良い一日を過ごしてください !

4

1 に答える 1