Archived
1

Cleaned Code

This commit is contained in:
Kim Wittenburg
2014-10-21 15:06:57 +02:00
parent 5592128926
commit 91e7dbe9f2
20 changed files with 126 additions and 92 deletions

View File

@@ -308,10 +308,7 @@
break;
case MPTokenReferenceFrame:
[_elements enumerateObjectsUsingBlock:^(id<MPToken> obj, NSUInteger idx, BOOL *stop) {
symbolIndex = NSMaxRange(obj.range);
*stop = idx >= index - 1;
}];
symbolIndex = [self.tokens[index] range].location;
break;
}
@@ -345,22 +342,24 @@
case MPTokenReferenceFrame:
{
NSUInteger totalLength = 0;
NSUInteger tokenIndex = 0;
id<MPToken> token;
while (totalLength < symbolIndex) {
token = self.tokens[tokenIndex++];
totalLength = NSMaxRange(token.range);
while (true) {
id<MPToken> token = self.tokens[tokenIndex++];
if (NSMaxRange(token.range) < symbolIndex || token.range.location > symbolIndex) {
continue;
}
NSUInteger offsetInToken = index - token.range.location;
if (offsetInToken == token.range.length) {
offsetInToken = 0;
tokenIndex++;
}
if (offset) {
*offset = offsetInToken;
}
return tokenIndex;
}
NSUInteger offsetInToken = token.range.length - totalLength + symbolIndex;
if (offsetInToken == token.range.length) {
offsetInToken = 0;
tokenIndex++;
}
if (offset) {
*offset = offsetInToken;
}
return tokenIndex;
// Should never get here
return 0;
}
}
}
@@ -525,15 +524,10 @@
- (NSDecimalNumber *)evaluateWithError:(MPParseError *__autoreleasing *)error
{
MPExpressionTree *tree = [self parse];
if ([tree validate:error]) {
return [tree evaluate];
}
if (error) {
(*error).pathToExpression = self.indexPath;
}
return nil;
return [tree validate:error] ? [tree evaluate] : nil;
}
- (MPExpressionTree *)parse
{
MPTokenStream *tokenStream = [[MPTokenStream alloc] initWithTokens:self.tokens];