Mathematica 式を解析できる C# から使用できる組み込みのパーサーはありますか?
カーネル自体を使用して式を解析し、.NET/Link を使用してツリー構造を取得できることを知っています...しかし、カーネルに依存しないものを探しています。
Mathematica 式を解析できる C# から使用できる組み込みのパーサーはありますか?
カーネル自体を使用して式を解析し、.NET/Link を使用してツリー構造を取得できることを知っています...しかし、カーネルに依存しないものを探しています。
確かに、Mathematica の文法は十分に文書化されていません。しかし、知る限り、それは LALR(1) であり、おそらく LL(1) です。かっこで囲まれた /tagged 構文 from は、パーサーに、LISP や XML と同様に、次に何を期待するかについての完全な手がかりを与えます。
DMS Software Reengineering Toolkitには、実際のタスクで使用されてきた Mathematica 文法があります。これには、MMa プログラムと純粋な表現形式が含まれます。
C# で必要なので、おそらく役に立たないでしょう。
カーネルにアクセスできる場合は、それに固執します。
そのようなものはまだ存在しないと思います(知りたいです)。しかし、Mathematica 内で関数FullForm
を任意の式に適用して、Lisp の s 式のような非常に簡単に解析できるものを取得できると便利です。例えば、
FullForm[a+b*c]
収量
Plus[a, Times[b,c]]
これはすべての Mathematica 式の根底にある表現であり、簡単に解析できるはずです。