iOS DDMathParser可以解决数学表达式的步骤

时间:2016-01-19 15:26:48

标签: ios objective-c numbers expression ddmathparser

我正在使用DDMathParser为iOS构建某种计算器。我想知道如何将3+3*4 (After parsing add(3,multiply(3,4)))之类的表达式(NSString)分成各个步骤:multiply(3,4) add(3,12)。我希望我在NSArray或其他相对有用的列表对象中得到这些。

  • Example: add(3,multiply(3,4))
  • [1] multiply(3,4)
  • [2] add(3,12)
  • [3] 15

1 个答案:

答案 0 :(得分:0)

DDMathParser作者在这里。

这应该是非常直截了当的。解析器可以返回格式良好的表达式树,而不仅仅是数值求值。使用表达式树,您可以执行以下操作:

  1. 找到树中最深的表达式。这是第一件要评估的事情。
  2. 手动评估该表达式
  3. 将评估替换回树中代替原始表达
  4. 创建整个树的副本以引用它在此处的内容。
  5. 重复,直到没有其他评估。