wolfram plotlegends mathematica labeled axeslabel c# parsing wolfram-mathematica

c# - labeled - plotlegends mathematica



Analizador para la sintaxis de Mathematica (4)

¿Hay un analizador integrado que pueda usar desde C # que pueda analizar expresiones de mathematica?

Sé que puedo usar el Kernel mismo para analizar una expresión y usar .NET / Link para recuperar la estructura de árbol ... Pero estoy buscando algo que no dependa del Kernel.


No creo que tal cosa ya exista (me gustaría saberlo). Pero puede ser útil que dentro de Mathematica pueda aplicar la función FullForm a cualquier expresión y obtener algo muy fácil de analizar, como una expresión s en Lisp. Por ejemplo,

FullForm[a+b*c]

rendimientos

Plus[a, Times[b,c]]

Esa es la representación subyacente de todas las expresiones de Mathematica y debería ser fácil de analizar.


La gramática matemática no está bien documentada, es verdad. Pero AFAIK, es LALR (1) y probablemente LL (1); la sintaxis entre corchetes / etiquetados proporciona al analizador pistas completas sobre qué esperar a continuación, al igual que LISP y XML.

El kit de herramientas de reingeniería de software DMS tiene una gramática de Mathematica que se ha utilizado para tareas reales. Esto incluye programas MMa, así como formas de expresión puras.

Eso probablemente no te ayuda, ya que quieres uno en C #.

Si tienes acceso al Kernal, me quedaré con eso.


Escribí un analizador de Mathematica en 300 líneas de código OCaml bajo contrato para Wolfram Research y encontré que es bastante fácil porque la gramática está claramente documentada en su literatura y cualquier ambigüedad se encuentra fácilmente al jugar con Mathematica.


Mi módulo matheclipse-parser implementa un analizador en Java que puede analizar un gran subconjunto de expresiones de mathematica. Consulte la página readme.md para conocer su uso. ¿Tal vez puedas transferir el analizador sintáctico a C #?