Fundamental Redesign of Evaluation
This commit is contained in:
@@ -51,12 +51,7 @@
|
||||
@"([\\*∙⋅])|"
|
||||
@"([+-](?:\\s*[+-])*)|"
|
||||
@"((?:\\d+(?:%@\\d+)?)|(?:%@\\d+))|"
|
||||
@"(sin)|"
|
||||
@"(cos)|"
|
||||
@"(tan)|"
|
||||
@"(asin)|"
|
||||
@"(acos)|"
|
||||
@"(atan)|"
|
||||
@"(sin|cos|tan|asin|acos|atan)|"
|
||||
@"([A-Za-z])|"
|
||||
@"(!)|"
|
||||
@"(=)|"
|
||||
@@ -76,16 +71,11 @@
|
||||
NSRange multiplicationSymbolRange = [match rangeAtIndex:1];
|
||||
NSRange operatorRange = [match rangeAtIndex:2];
|
||||
NSRange numberRange = [match rangeAtIndex:3];
|
||||
NSRange sinRange = [match rangeAtIndex:4];
|
||||
NSRange cosRange = [match rangeAtIndex:5];
|
||||
NSRange tanRange = [match rangeAtIndex:6];
|
||||
NSRange asinRange = [match rangeAtIndex:7];
|
||||
NSRange acosRange = [match rangeAtIndex:8];
|
||||
NSRange atanRange = [match rangeAtIndex:9];
|
||||
NSRange variableRange = [match rangeAtIndex:10];
|
||||
NSRange factorialRange = [match rangeAtIndex:11];
|
||||
NSRange equalsRange = [match rangeAtIndex:12];
|
||||
NSRange whitespaceRange = [match rangeAtIndex:13];
|
||||
NSRange elementaryFunctionRange = [match rangeAtIndex:4];
|
||||
NSRange variableRange = [match rangeAtIndex:5];
|
||||
NSRange factorialRange = [match rangeAtIndex:6];
|
||||
NSRange equalsRange = [match rangeAtIndex:7];
|
||||
NSRange whitespaceRange = [match rangeAtIndex:8];
|
||||
|
||||
if (MPRangeExists(multiplicationSymbolRange)) {
|
||||
range = multiplicationSymbolRange;
|
||||
@@ -96,24 +86,9 @@
|
||||
} else if (MPRangeExists(numberRange)) {
|
||||
range = numberRange;
|
||||
tokenType = MPNumberToken;
|
||||
} else if (MPRangeExists(sinRange)) {
|
||||
range = sinRange;
|
||||
tokenType = MPSinToken;
|
||||
} else if (MPRangeExists(cosRange)) {
|
||||
range = cosRange;
|
||||
tokenType = MPCosToken;
|
||||
} else if (MPRangeExists(tanRange)) {
|
||||
range = tanRange;
|
||||
tokenType = MPTanToken;
|
||||
} else if (MPRangeExists(asinRange)) {
|
||||
range = asinRange;
|
||||
tokenType = MPASinToken;
|
||||
} else if (MPRangeExists(acosRange)) {
|
||||
range = acosRange;
|
||||
tokenType = MPACosToken;
|
||||
} else if (MPRangeExists(atanRange)) {
|
||||
range = atanRange;
|
||||
tokenType = MPATanToken;
|
||||
} else if (MPRangeExists(elementaryFunctionRange)) {
|
||||
range = elementaryFunctionRange;
|
||||
tokenType = MPElementaryFunctionToken;
|
||||
} else if (MPRangeExists(variableRange)) {
|
||||
range = variableRange;
|
||||
tokenType = MPVariableToken;
|
||||
|
||||
Reference in New Issue
Block a user