Существует ли библиотека C/C++ для преобразования MathML <-> Infix?
Я ищу библиотеку C/C++, которая может конвертировать MathML в инфикс и инфикс в MathML, например, учитывая:
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<cn type="integer"> 2 </cn>
<ci> x </ci>
</apply>
</math>
библиотека преобразует mathml в 2*x. Или, учитывая х + грех (т), я получаю следующее математическое
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<plus/>
<ci> x </ci>
<apply>
<sin/>
<ci> t </ci>
</apply>
</apply>
</math>
Я знаю, как написать такую библиотеку, но не буду изобретать велосипед, если это возможно. Не может быть в Java, так как я должен быть в состоянии связать библиотеку с неуправляемым кодом.
1 ответ
Я никогда не использовал его сам, но похоже, что libSBML может служить вашим целям:
http://www.google.co.uk/search?q=libsbml+convert+mathml+infix
http://sbml.org/Software/libSBML/docs/cpp-api/libsbml-features.html
На этой странице:
http://sbml.org/Software/libSBML/docs/cpp-api/
Это говорит:
"Синтаксический анализатор формул libSBML был тщательно спроектирован таким образом, чтобы преобразование из MathML в инфиксную запись строк и обратно было возможно с минимальным нарушением структуры математического выражения".
И есть пример того, что вы пытаетесь сделать...