// // MPTerm.h // MathPad // // Created by Kim Wittenburg on 11.11.14. // Copyright (c) 2014 Kim Wittenburg. All rights reserved. // #define ReturnIfNil(test, value) if (test == nil) return value #define ReturnNilIfNil(test) if (test == nil) return nil @class MPTerm; @interface MPTerm : NSObject - (NSDecimalNumber *)evaluate:(NSError *__autoreleasing *)error; - (NSDecimalNumber *)doEvaluation:(NSError *__autoreleasing *)error; - (BOOL)defineVariable:(NSString *)variableName value:(NSDecimalNumber *)value error:(NSError *__autoreleasing *)error; - (NSDecimalNumber *)valueForVariable:(NSString *)variableName error:(NSError *__autoreleasing *)error; - (void)undefineVariable:(NSString *)variableName; // Should rarely be needed, defined variables are automatically undefined at the end of evaluation. @end