私は小さなルールベースの「数学」エンジンを書いているところです。これではわかりにくいと思いますので、簡単な例を示します。
整数を保持する変数 a があるとします。数値に適用できる関数もいくつかあります。
sqr
- 数を二乗するflp
- 数値のビットを反転するdec
- 数を減らすinc
- 数を増やす
次に、 と言うことができますdo_formula(a, "2sqr+inc+flp")
。a が 3 の場合、それを 2 乗し (81)、インクリメントし (82)、そのビットを反転します (~82 - 符号付き整数を扱う場合は -83 だと思います)。
数式を解析する最良の方法は何でしょうか? それは比較的単純で、すべてのオペコードを 3 文字にすることを考えています... Lex を使用するのはやり過ぎでしょうか? シンプルな自作のソリューションを作成するか、まったく別のものを使用する必要がありますか?
上記の例はばかげていると思います。私はそれを行う計算機を構築していませんが、それは私がやろうとしていることを十分に示しています.