Mathematica语法的解析器?

是否有一个可以在C#中使用的内置解析器,它可以解析mathematica表达式?

我知道我可以使用内核本身来解析表达式,并使用.NET / Link来检索树结构……但我正在寻找一些不依赖于内核的东西。

我的matheclipse-parser模块在Java中实现了一个解析器,它可以解析mathematica表达式的一个重要子集。 有关用法,请参阅readme.md页面。 也许你可以将解析器移植到C#?

我根据Wolfram Research的合同在300行OCaml代码中编写了一个Mathematica解析器,发现它非常简单,因为语法清楚地记录在他们的文献中,并且通过使用Mathematica本身很容易找到任何含糊之处。

mathematica语法没有很好的记录,是真的。 但是AFAIK,它是LALR(1),可能是LL(1); 括号/标记语法为解析器提供了关于接下来会发生什么的完整线索,就像LISP和XML一样。

DMS软件重新设计工具包确实具有用于实际任务的Mathematica语法。 这包括MMa程序以及纯表达forms。

这可能对你没有帮助,因为你想要一个C#。

如果你有权访问Kernal,我会坚持这一点。

我不认为这样的事情已经存在(我很想知道)。 但是在Mathematica中你可以将函数FullForm应用于任何表达式并获得一些非常容易解析的东西,有点像Lisp中的s表达式。 例如,

 FullForm[a+b*c] 

产量

 Plus[a, Times[b,c]] 

这是所有Mathematica表达式的底层表示,应该直接解析。