LexBody
Версия от 13:09, 21 апреля 2019; Alinap95 (обсуждение | вклад)
f
Для парсинга тела функции используется алгоритм сортировочной станции.
Входная строка анализируется посимвольно и могут встречаться следующие символы: число, буква (после этого определяется, является ли это известной переменной, функцией или же неизвестная лексема), открывающие и закрывающие скобки, запятая в качестве разделителя аргументов функций, а также операторы сложения, вычитания, умножения, деления и возведения в степень (+, -, *, /, ^ соответственно). Все остальные символы являются ошибочными. Когда находится известная лексема, с ней сопоставляется токен:
Токен | Группа токенов | Описание |
IToken | Общий интерфейс для всех токенов | |
Number | IToken | Числовой токен |
PI | IToken | Число Пи |
Euler | IToken | Число Эйлера |
Variable | IToken | Токен переменной |
Bracket | IToken | Токен открывающей скобки |
Operator | Интерфейс для всех операторов | |
Function | Интерфейс для всех функций | |
ExtremumFunction | Интерфейс для функций min, max | |
UnaryPlus | Operator | Токен унарного плюса |
UnaryMinus | Operator | Токен унарного минуса |
BinaryPlus | Operator | Токен бинарного плюса |
BinaryMinus | Operator | Токен бинарного минуса |
ОperatorMul | Operator | Токен оператора умножения |
ОperatorDiv | Operator | Токен оператора деления |
ОperatorPow | Operator | Токен оператора возведения в степень |
SinFunction | Function | Токен синуса |
CosFunction | Function | Токен косинуса |
TgFunction | Function | Токен тангенса |
Log10Function | Function | Токен логарифма с десятичным основанием |
LnFunction | Function | Токен натурального логарифма |
LogFunction | Function | Токен логарифма с произвольным основанием |
J0Function | Function | Токен функции Бесселя 1 рода с основанием 0 |
J1Function | Function | Токен функции Бесселя 1 рода с основанием 1 |
JnFunction | Function | Токен функции Бесселя 1 рода с произвольным основанием |
Y0Function | Function | Токен функции Бесселя 2 рода с основанием 0 |
Y1Function | Function | Токен функции Бесселя 2 рода с основанием 1 |
YnFunction | Function | Токен функции Бесселя 2 рода с произвольным основанием |
AbsFunction | Function | Токен функции модуля |
GammaFunction | Function | Токен гамма функции |
ArgFunction | Function | Токен функции фазового угла |
MinFunction | ExtremumFunction | Токен функции поиска минимального значения |
MaxFunction | ExtremumFunction | Токен функции поиска максимального значения |