diff --git a/MathPad/MPExpression.h b/MathPad/MPExpression.h index 204c1bd..f5c5ee7 100644 --- a/MathPad/MPExpression.h +++ b/MathPad/MPExpression.h @@ -17,7 +17,7 @@ #pragma mark Primitive Methods - (NSUInteger)numberOfSymbols; -- (id)symbolAtIndex:(NSUInteger)index; // Either an NSString or a MPFunction +- (id)symbolAtIndex:(NSUInteger)index; // Either an NSString or a MPFunction (which can be mutated) - (double)doubleValue; // Evaluates Expression @@ -77,7 +77,7 @@ @interface MPMutableExpression : MPExpression -- (void)replaceSymbolsInRange:(NSRange)range withExpression:(MPExpression *)anExpression; +- (void)replaceSymbolsInRange:(NSRange)range withSymbols:(NSArray *)symbols; @end diff --git a/MathPad/MPFunction.h b/MathPad/MPFunction.h index e1ccc1c..060814a 100644 --- a/MathPad/MPFunction.h +++ b/MathPad/MPFunction.h @@ -8,7 +8,7 @@ @class MPFunction, MPExpression; -@interface MPFunction : NSObject +@interface MPFunction : NSObject #pragma mark Creation Methods @@ -17,28 +17,32 @@ #pragma mark Children - (NSUInteger)numberOfChildren; -- (MPExpression *)childAtIndex; +- (MPExpression *)childAtIndex:(NSUInteger)index; - (void)setChild:(MPExpression *)child atIndex:(NSUInteger)index; #pragma mark Evaluating Functions - (double)doubleValue; +#pragma mark Working With Functions + +- (BOOL)isEqualToFunction:(MPFunction *)aFunction; + @end @interface MPFunction (MPFunctionExtensionMethods) #pragma mark Children +// May be overridden for performance improvements - (NSArray *)children; -#pragma mark Evaluating Expressions +#pragma mark Evaluating Functions - (float)floatValue; - (int)intValue; - (NSInteger)integerValue; - (long long)longLongValue; -- (NSString *)stringValue; - (NSString *)description;