私は、独自のオペレーターを定義できるインタラプターに取り組んでいます。目標は、次のように見える AST を取得し、2 つの演算子の相対的な優先順位と結合性に基づいてorexp op exp op exp
に変換することです。言語は動的であるため、使用する演算子のバージョンを知る唯一の方法は、最初の式を評価し、使用するバージョンを尋ねることです。exp op (exp op exp)
(exp op exp) op exp
op
一方、2 番目の式を評価しないことが重要です。なぜなら、op
(||
一般的に使用される) である場合、最初の式が である場合、短絡できるはずだからexp
ですfalse
。
一部の演算子が右結合で短絡している場合、問題が発生します。 私の質問は、一般的に使用されている適切な連想演算子、短絡演算子はありますか(選択された「共通」の値に対して)?
Nb の割り当てはパーサーによって個別に処理されるため、=
は演算子ではなく、 のa (op)= b
シンタックス シュガーですa = a op b
。