LexBody: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «f Для парсинга тела функции используется [https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81…»)
 
Строка 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 Токен функции поиска максимального значения