0

我尝试构建一个DDMathParser从用户输入(字符串)评估的表达式字符串

例如:3 + ln(2) + var

我尝试使用内置Tokenizer函数DDMathParser来查找各种标记。但是使用以下代码将找不到任何函数标记:

equationInputString = "3+ln(2)+var"
do{
   let token = try Tokenizer(string: equationInputString).tokenize()
   for element in token {
       let tokenString = element.string
       let tokenKind = element.kind
       print(tokenString, ";", tokenKind)
   }
} catch {
       print("Tokenizer error in VC!", error)
}

/* output:
3   ; number
+   ; operator
ln  ; identifier    <-- not recognized as "ln()" function
(   ; operator
2   ; number
)   ; operator
+   ; operator
var ; identifier
*/

有没有办法提取ln为函数令牌?我是否需要使用另一种方法DDMathParser来查找标准函数字符串?谢谢!

4

1 回答 1

0

DDMathParser 作者在这里...

答案是“视情况而定”。你想做什么?DDMathParser 的典型用法是将整个事物转换为最终Expression类型,并通过生成的树进行递归,以寻找具有of的ofExpression类型。.functionname"ln"

于 2018-05-11T00:15:37.213 回答