Cleaned Code
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user