Added the MPExpressionTree Classes
This commit is contained in:
@@ -23,23 +23,14 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithRange:(NSRange)range stringValue:(NSString *)input
|
||||
- (instancetype)initWithTokenType:(MPTokenType)tokenType
|
||||
range:(NSRange)range
|
||||
stringValue:(NSString *)input
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_range = range;
|
||||
_stringValue = input.copy;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithTokenType:(MPTokenType)tokenType
|
||||
range:(NSRange)range
|
||||
stringValue:(NSString *)input
|
||||
{
|
||||
self = [self initWithRange:range
|
||||
stringValue:input];
|
||||
if (self) {
|
||||
_tokenType = tokenType;
|
||||
}
|
||||
return self;
|
||||
@@ -65,40 +56,4 @@
|
||||
return self.stringValue;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation MPToken (MPTokenExtension)
|
||||
|
||||
- (NSUInteger)numberOfOperators
|
||||
{
|
||||
NSString *operatorString = [[self.stringValue componentsSeparatedByString:@" "] componentsJoinedByString:@""];
|
||||
return operatorString.length;
|
||||
}
|
||||
|
||||
- (NSDecimalNumber *)operatorValue
|
||||
{
|
||||
NSString *operatorString = [[self.stringValue componentsSeparatedByString:@" "] componentsJoinedByString:@""];
|
||||
NSDecimalNumber *value = [NSDecimalNumber one];
|
||||
for (NSUInteger charIndex = 0; charIndex < operatorString.length; charIndex++) {
|
||||
NSString *operator = [operatorString substringWithRange:NSMakeRange(charIndex, 1)];
|
||||
if ([operator isEqualToString:@"-"]) {
|
||||
value = [value decimalNumberByMultiplyingBy:[[NSDecimalNumber alloc] initWithInteger:-1]];
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
- (NSDecimalNumber *)number
|
||||
{
|
||||
return [NSDecimalNumber decimalNumberWithString:self.stringValue
|
||||
locale:[NSLocale currentLocale]];
|
||||
}
|
||||
|
||||
- (NSString *)variable
|
||||
{
|
||||
return self.stringValue;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@end
|
||||
Reference in New Issue
Block a user