3/02/2009

数式エンジン

どうもJudaです。
数式エンジンをようやく作れました。
計算は逆ポーランド記法にしたがって記述しなおしながら行いました。
変数の取得と代入もIronPythonの方式で行えるようにしました。

ただし新規に登録できる機構がついていないので、使い方は大体Shaderみたいな感じ。
これによって一列の数式なら計算可能になりました。
あとは構文解析を行ってIfStatementによる条件分岐が行えるようになれば、簡易のスクリプトエンジンとしては十分かなぁっと。
そのときには変数の宣言が必要になると思うし、また例外処理の厳密化が問題になると思う。

ちょっと思ったのですが、計算の演算子の優先順位で%と^の優先順位がどのようになっているのか。
今回のエンジンは () > ^ > */% > +- > = の順番で優先順位がついているのですが、これであっているのでしょうか?
まぁ ^ が今回特別に必要なので追加しましたが、これでいいのだろうか?

0 件のコメント:

コメントを投稿