64 lines
1.3 KiB
Objective-C
64 lines
1.3 KiB
Objective-C
//
|
|
// MPFunction.h
|
|
// MathPad
|
|
//
|
|
// Created by Kim Wittenburg on 18.04.14.
|
|
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
|
|
//
|
|
|
|
@class MPFunction, MPExpression, MPRangePath;
|
|
|
|
@interface MPFunction : NSObject <NSCopying, NSCoding>
|
|
|
|
#pragma mark Creation Methods
|
|
|
|
- (instancetype)init;
|
|
|
|
#pragma mark Working With the Expression Tree
|
|
|
|
@property (nonatomic, weak) MPExpression *parent; // Documentation: Do not set
|
|
|
|
- (NSUInteger)numberOfChildren;
|
|
- (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 Working With the Expression Tree
|
|
|
|
// May be overridden for performance improvements
|
|
- (NSArray *)children;
|
|
- (NSUInteger)indexOfChild:(MPExpression *)child;
|
|
|
|
- (id)symbolAtIndexPath:(NSIndexPath *)indexPath;
|
|
|
|
#pragma mark Evaluating Functions
|
|
|
|
- (float)floatValue;
|
|
- (int)intValue;
|
|
- (NSInteger)integerValue;
|
|
- (long long)longLongValue;
|
|
|
|
- (NSString *)description;
|
|
|
|
- (NSUInteger)hash;
|
|
|
|
@end
|
|
|
|
@interface MPFunction (MPDisplayExtension)
|
|
|
|
- (void)symbolsChangedInRangePath:(MPRangePath *)rangePath replacementLength:(NSUInteger)length;
|
|
|
|
@end
|