Skip to content

numeric_expr 設計

literal、operation、source span、呼び出し木だけを持つ private IR です。evaluate は深さ優先の後順走査を行い、意味論は callback、ノード失敗は元ノード付き、未対応形は UnsupportedExpression として返します。

tokenize、型選択、arity、丸め、IO、スケジューリングは担当せず、frontend が入力方針、backend が数値意味論を所有します。

Pure traversal と計算量

evaluate は post-order traversal で、n node の callback 呼出しは O(n)、stack は tree depth O(h) です。数値 operation の費用は callback 側が決めます。

Stability 境界

construction と callback interface は provisional integration surface で、tree layout は private です。frontend の syntax 変更を backend 表現へ漏らしません。