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 | Токен функции поиска максимального значения |