http://ncalc.codeplex.comを見たことがありますか?
拡張可能で高速 (独自のキャッシュがあるなど) であるため、EvaluateFunction/EvaluateParameter イベントを処理することにより、実行時にカスタム関数と変数を提供できます。解析できる式の例:
式 e = new Expression("Round(Pow(Pi, 2) + Pow([Pi2], 2) + X, 2)");
e.Parameters["Pi2"] = new Expression("Pi * Pi"); e.Parameters["X"] = 10;
e.EvaluateParameter += delegate(string name, ParameterArgs args) { if (name == "Pi") args.Result = 3.14; };
Debug.Assert(117.07 == e.Evaluate()); また、Unicode と多くのデータ型をネイティブに処理します。グラマーを変更したい場合は、antler ファイルが付属しています。新しい関数をロードするために MEF をサポートするフォークもあります。