// // MPExpressionEvaluator.h // MathPad // // Created by Kim Wittenburg on 31.08.14. // Copyright (c) 2014 Kim Wittenburg. All rights reserved. // #import #import "MPExpression.h" #import "MPElementParser.h" @class MPExpressionEvaluator, MPExpression, MPParsedElement; @interface MPExpressionEvaluator : NSObject // Do not instanciate yourself, use evaluator property of MPExpression instead - (instancetype)initWithExpression:(MPExpression *)expression; @property (readonly, nonatomic, weak) MPExpression *expression; #pragma mark Evaluating Expressions @property (readonly, nonatomic, strong) NSDictionary *variableBindings; - (void)bindValue:(NSDecimalNumber *)value toVariableName:(NSString *)name; - (void)unbindVariableName:(NSString *)name; - (NSDecimalNumber *)evaluateWithError:(MPParseError *__autoreleasing *)error; - (NSDecimalNumber *)evaluateVariableDefinition:(BOOL)flag error:(MPParseError *__autoreleasing *)error; @property (readonly, nonatomic, strong) NSString *definedVariable; @end