Mathexpr
Версия от 10:26, 21 апреля 2019; Alinap95 (обсуждение | вклад)
Mathexpr – подсистема, обрабатывающая введенные пользователем формулы. Функции подсистемы:
- Парсинг введенного выражения: лексический, синтаксический анализ, представление в виде списка токенов в обратной польской нотации.
- Упрощение выражения: вычисление инициализированных токенов, приведение списка к древовидной структуре.
- Вычисление выражения.
Парсинг выражения: заголовок функции
Математическое выражение реализуется классом Mathexpr.
Математическое выражение состоит из 2 частей: заголовка и тела. Заголовок включает в себя имя функции и список аргументов, которые перечисляются в скобках.
(конструкторы) | Создают математическое выражение на основе поданной строки: парсинг заголовка и тела формулы, первичное упрощение функции. |
header | Заголовок математического выражения, реализуемый классом Header – строка до символа =. |
body | Тело математического выражения – строка после символа =. Тело представляет собой указатель на единственный токен - корень дерева, которое отражает синтаксическую структуру выражения. |
operator() | Инициализирует аргументы математического выражения и вычисляет его значение. |
lexBody | Осуществляет лексический разбор входной строки с использованием алгоритма сортировочной станции и возвращает список, в котором выражение представлено в обратной польской нотации. |