有没有一种可以从C#中使用的内置解析器来解析Mathematica表达式?
我知道我可以使用Kernel本身来解析表达式,并使用.NET/Link检索树形结构...但我正在寻找不依赖于Kernel的东西。
有没有一种可以从C#中使用的内置解析器来解析Mathematica表达式?
我知道我可以使用Kernel本身来解析表达式,并使用.NET/Link检索树形结构...但我正在寻找不依赖于Kernel的东西。
Mathematica语法并没有很好的文档记录,这是事实。但据我所知,它是LALR(1)和可能是LL(1);来自方括号/标记语法为解析器提供了关于下一步要期望什么的完整线索,就像LISP和XML一样。
DMS软件重构工具包确实有一个Mathematica语法,已经用于实际任务。这包括MMa程序以及纯表达式形式。
这可能对您没有帮助,因为您想要一个C#语法。
如果您可以访问内核,我建议坚持使用它。
我不认为这样的东西已经存在(如果有的话,我很想知道)。但是在Mathematica中,您可以将函数FullForm
应用于任何表达式,并获得非常容易解析的内容,类似于Lisp中的s表达式。例如:
FullForm[a+b*c]
产生
Plus[a, Times[b,c]]
这是所有Mathematica表达式的基础表示形式,应该很容易解析。