Frage

Gibt es einen integrierten Parser, die ich von C # verwenden können, die Mathematica-Ausdrücke analysieren kann?

Ich weiß, dass ich den Kernel verwenden kann selbst einen Ausdruck zu analysieren, und verwenden Sie .NET / Verbindung die Baumstruktur abrufen ... Aber ich bin auf der Suche nach etwas, das auf dem Kernel verlassen tut.

War es hilfreich?

Lösung

Meine matheclipse-Parser-Modul einen Parser in Java implementiert, die eine große Teilmenge von analysieren kann Mathematica-Ausdrücke. Siehe die readme.md Seite für die Nutzung. Vielleicht können Sie Port den Parser C #?

Andere Tipps

Ich schrieb einen Mathematica-Parser in 300 Zeilen von OCaml Code unter Vertrag für Wolfram Research und fand es ganz einfach zu sein, weil die Grammatik ist

Die Mathematica Grammatik ist nicht gut dokumentiert, wahr. Aber AFAIK ist es LALR (1) und wahrscheinlich LL (1); die klammert / markierte Syntax aus gibt der Parser vollständige Hinweise über das, was als nächstes, wie LISP und XML zu erwarten.

Die DMS Software Reengineering Toolkit eine Mathematica Grammatik hat, die für verwendet wurde, reale Aufgaben. Dazu gehören MMa Programme sowie reine Ausdrucksformen.

Das ist wohl nicht Sie helfen, da Sie ein in C # werden soll.

Wenn Sie den Zugriff auf die Kernal, ich dabei bleiben würde.

Ich glaube nicht, so etwas gibt es bereits (ich würde gerne darüber wissen). Aber es kann sinnvoll sein, dass innerhalb von Mathematica können Sie die Funktion FullForm auf jeden Ausdruck anwenden und etwas sehr leicht zu analysieren, ein bisschen wie ein s-expression in Lisp bekommen. Zum Beispiel:

FullForm[a+b*c]

Ausbeuten

Plus[a, Times[b,c]]

Das ist die zugrundeliegende Repräsentation aller Mathematica Ausdrücke und soll zu analysieren einfach sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top