DDMathParser从NSString创建表达式

时间:2012-11-06 22:49:14

标签: objective-c ios

我有NSString

n +(n - m)

我可以使用DDMathParser创建表达式对象。

例如,我有基本表达式n +(n - m),但我需要能够比较基本表达式n +(n - m)和用户表达式,例如(n - m)+ n通常也是相同的。

或者有没有做出解决方案如何比较考虑标志和括号的两个NSString?

所以我的意思是我可以使用一个字符串初始化两个表达式,然后使用某种方法将其与Expression1 = Expression2进行比较。

这是表达式必须在解析器中查看的示例

enter image description here

所以这是相同的结构,我们可以使用左右节点进行比较。这棵树我很有兴趣找到解析字符串到表达式树的解决方案。我认为这个解决方案已经完成了。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用DDMathParser执行此操作:

NSString *string = @"5 + (5 - 3)";
NSError *error = nil;
DDExpression *expression = [DDExpression expressionFromString:string error:&error];

if (expression) {
  NSLog(@"%@", expression)
} else {
  NSLog(@"%@", error);
}

DDMathParser确实对expression rewriting有一些(基本的)支持,但除此之外,您需要自己比较表达式树。