我想开发一种转换器,它接受以“自由形式”或类似Wolfram Alpha所接受的数学方式编写的数学。例如:2*x+(7+y)/(z^2)
将转换为2\cdot x+\frac{7+y}{z^{2}}
(请忽略我在此处可能出现的任何语法错误),反之亦然。我想知道是否存在用于C ++ / Java的LaTeX库,它在内存中解析和/或保存LaTeX表达式。如果是,请分享。
如果没有,你会怎么写这样的东西?是否可以使用普通的Java / C ++代码,或者我应该使用像lex这样的东西吗?
答案 0 :(得分:0)
是的,在Flex / Bison中为'freeform'编写解析器是绝对可以的,实际上我建议不要使用TeX,因为该语言不是为解析而编写的。我甚至还记得曾经使用Flex和Bison以及Kimwitu++完成了(自由形式的LaTeX)练习,它允许在输出之前执行任意转换。请注意,您删除了原始公式的括号。在一般情况下,这可能不是你想要的。
反过来说,评论已经提到在一般情况下几乎不可能做到。对于受限制的案例,Bison已经足够好了。