DDMathParser не может токенизировать одиночный символ плюс
С помощью DDMathStringTokenizer
, пока что-то вроде 2 + 4
токены преобразуются в 3 токена (второй - оператор +, первый и третий - числа), если я перейду через +
в одиночку он не может вернуть его в качестве маркера.
Это не относится ко всем другим операторам, которые я пробовал, таким как /
*
-
и т.п.
Я, вероятно, могу заставить это как-то, но как я могу получить DDMathStringTokenizer
токенизировать +
правильно?
Чтобы воспроизвести проблему: следующее вернет массив без объектов. Если вы измените string
Значение другого символа оператора, он вернет правильный массив.
NSError *error = nil;
NSString *string = @"+";
DDMathOperatorSet *opSet = [DDMathOperatorSet defaultOperatorSet];
DDMathStringTokenizer *tokenizer = [[DDMathStringTokenizer alloc] initWithString:string operatorSet:opSet error:&error];
NSLog(@"Tokens:%@", [tokenizer allObjects]);
1 ответ
Это токенизатор, пытающийся быть слишком умным. Так как +
символ - это первый токен, предполагается, что он является унарным оператором (без левой стороны). Затем он падает на пол, потому что +
бесполезный оператор: он не влияет на оценку, поэтому он исключается из потока токенов.
Я считаю, что это лучше в ветке 1.1, но у меня не было времени закончить интеграцию изменений в master.