Archived
1

Fixed Evaluation of Powers and Factorials.

Added Error Messages.
This commit is contained in:
Kim Wittenburg
2014-11-25 17:47:57 +01:00
parent b4111c69e4
commit 66d06cc0f1
2 changed files with 8 additions and 3 deletions

View File

@@ -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;
}
@@ -406,10 +406,15 @@
if (self.currentTokenIndex < self.tokens.count) {
if (self.errorTokenIndex >= self.tokens.count) {
[self addErrorWithCode:0 localizedDescription:NSLocalizedString(@"Unexpected end. Expected Value.", nil)];
} else {
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;
}

View File

@@ -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;
}