1

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

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

1 回答 1

0

DDMathParser 作者在这里。

这应该很简单。解析器可以为您返回格式良好的表达式树,而不仅仅是数字评估。使用表达式树,您可以执行以下操作:

  1. 找到树中最深的表达式。这是要评估的第一件事。
  2. 手动评估该表达式
  3. 将评估替换回树中以代替原始表达式
  4. 创建整个树的副本以引用它此时的外观。
  5. 重复,直到没有更多要评估的东西。
于 2016-01-19T16:38:11.330 回答