Parsing 如何将用户友好的中缀数学代码转换为Clojure代码?

Parsing 如何将用户友好的中缀数学代码转换为Clojure代码?,parsing,clojure,infix-notation,Parsing,Clojure,Infix Notation,我希望用户能够这样输入: 5+6*t+sin(2*t) ,因此它将转换为: (+ 5 (* 6 t) (sin (* 2 t))) ,因此我可以将其评估为一些函数,这些函数将在以后进行JIT并高效执行 是否已经有可用于最新Clojure的库(具有操作员优先级)?白炽灯包包括 其他人也有。我相信在antlr中有十几个这样的例子,您可以选择并使用,只需稍加修改。需要空格似乎有点限制。我希望字符串作为输入(这里我还需要处理读取)。我尝试了clojuire中缀,但它似乎是弃用软件(这就是为什么我包含

我希望用户能够这样输入:

5+6*t+sin(2*t)
,因此它将转换为:

(+ 5 (* 6 t) (sin (* 2 t)))
,因此我可以将其评估为一些函数,这些函数将在以后进行JIT并高效执行


是否已经有可用于最新Clojure的库(具有操作员优先级)?

白炽灯包包括


其他人也有。

我相信在antlr中有十几个这样的例子,您可以选择并使用,只需稍加修改。需要空格似乎有点限制。我希望字符串作为输入(这里我还需要处理
读取
)。我尝试了clojuire中缀,但它似乎是弃用软件(这就是为什么我包含了“works in-up-date Clojure”子句)。@Vi.你不能自动解析字符串,在所有运算符周围添加一个空格吗?
user> ($= 7 + 8 - 2 * 6 / 2)
9