Fixed Evaluation of Powers and Factorials.
Added Error Messages.
This commit is contained in:
@@ -371,7 +371,6 @@
|
||||
self.value = term;
|
||||
}
|
||||
} else if (self.currentToken.tokenType == MPPowerToken) {
|
||||
[self nextToken];
|
||||
if (self.value) {
|
||||
NSArray *errors;
|
||||
MPPowerTerm *term = [[MPPowerTerm alloc] initWithFunction:(MPFunction *)self.currentToken errors:&errors];
|
||||
@@ -381,6 +380,7 @@
|
||||
term.baseTerm = self.value;
|
||||
self.value = term;
|
||||
}
|
||||
[self nextToken];
|
||||
} else {
|
||||
checkMore = NO;
|
||||
}
|
||||
@@ -407,7 +407,12 @@
|
||||
if (self.errorTokenIndex >= self.tokens.count) {
|
||||
[self addErrorWithCode:0 localizedDescription:NSLocalizedString(@"Unexpected end. Expected Value.", nil)];
|
||||
} else {
|
||||
[self addErrorWithCode:1 localizedDescription:NSLocalizedString(@"Unexpected Symbol. Expected Value", nil)];
|
||||
id<MPToken> unexpectedToken = self.tokens[self.errorTokenIndex];
|
||||
if (unexpectedToken.tokenType == MPPowerToken) {
|
||||
[self addErrorWithCode:34 localizedDescription:NSLocalizedString(@"No base for Power", nil)];
|
||||
} else {
|
||||
[self addErrorWithCode:1 localizedDescription:NSLocalizedString(@"Unexpected Symbol. Expected Value", nil)];
|
||||
}
|
||||
}
|
||||
}
|
||||
return self.errors.count > 0;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
- (NSDecimalNumber *)doEvaluation:(NSError *__autoreleasing *)error
|
||||
{
|
||||
NSDecimalNumber *value = [self.value evaluate:error];
|
||||
NSDecimalNumber *value = [self.term evaluate:error];
|
||||
if (!value) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user