LexBody: различия между версиями
Перейти к навигации
Перейти к поиску
Alinap95 (обсуждение | вклад) (Новая страница: «f Для парсинга тела функции используется [https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81…») |
Alinap95 (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
Входная строка анализируется посимвольно и могут встречаться следующие символы: число, буква (после этого определяется, является ли это известной переменной, функцией или же неизвестная лексема), открывающие и закрывающие скобки, запятая в качестве разделителя аргументов функций, а также операторы сложения, вычитания, умножения, деления и возведения в степень (+, -, *, /, ^ соответственно). Все остальные символы являются ошибочными. | Входная строка анализируется посимвольно и могут встречаться следующие символы: число, буква (после этого определяется, является ли это известной переменной, функцией или же неизвестная лексема), открывающие и закрывающие скобки, запятая в качестве разделителя аргументов функций, а также операторы сложения, вычитания, умножения, деления и возведения в степень (+, -, *, /, ^ соответственно). Все остальные символы являются ошибочными. | ||
Когда находится известная лексема, с ней сопоставляется токен: | Когда находится известная лексема, с ней сопоставляется токен: | ||
{| class="wikitable" | |||
|- | |||
|Токен | |||
|Группа токенов | |||
|Описание | |||
|- | |||
|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 | |||
|Токен функции поиска максимального значения | |||
|} |
Версия 13:09, 21 апреля 2019
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 | Токен функции поиска максимального значения |