DDMathParser создает выражение из NSString
У меня есть NSString
:
n + (n - m)
Могу ли я использовать DDMathParser для создания объекта выражения.
Например, у меня есть базовое выражение n + (n - m), но мне нужно иметь возможность сравнивать базовое выражение n + (n - m) с пользовательским выражением, например, (n - m) + n, которое обычно одинаково.
Или уже есть решение, как сравнить две строки NSS с учетом знаков и скобок?
Так что я имею в виду, могу ли я, например, инициировать два выражения со строкой, а затем сравнить ее как Expression1 = Expression2, используя какой-либо метод.
Это пример того, как выражения должны выглядеть в парсере
так что это та же самая структура, и мы можем сравнить ее, используя левый и правый узел. дерева. Мне интересно узнать это решение, которое будет анализировать строку в дереве выражений. Я думаю, что это решение было уже сделано.
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 действительно имеет некоторую (рудиментарную) поддержку переписывания выражений, но помимо этого вам придется самостоятельно сравнивать деревья выражений.