osx DDMathParser - найти токен функции в строке
Я пытаюсь построить строку выражения, оцененную с DDMathParser
из пользовательского ввода (строка)
например: 3 + ln(2) + var
Я пытаюсь использовать встроенный Tokenizer
функция от DDMathParser
чтобы найти все виды токенов. Но, используя следующий код, вы не найдете токены функций:
equationInputString = "3+ln(2)+var"
do{
let token = try Tokenizer(string: equationInputString).tokenize()
for element in token {
let tokenString = element.string
let tokenKind = element.kind
print(tokenString, ";", tokenKind)
}
} catch {
print("Tokenizer error in VC!", error)
}
/* output:
3 ; number
+ ; operator
ln ; identifier <-- not recognized as "ln()" function
( ; operator
2 ; number
) ; operator
+ ; operator
var ; identifier
*/
Есть ли способ извлечь ln
как токен функции? Нужно ли использовать другой подход в DDMathParser
найти стандартные строки функций? Спасибо!
1 ответ
Автор DDMathParser здесь...
Ответ "это зависит". Что ты пытаешься сделать? Типичное использование DDMathParser было бы просто превратить все это в финал Expression
типа, и рекурс через результирующее дерево ищет Expression
в своем роде .function
это имеет name
из "ln"
,