C3D Kernel  102057
Классы | Перечисления | Функции
Разбор строки
Объекты алгоритмов
Граф связей класса Разбор строки:

Классы

struct  DefRangeItem
 Элемент области определения функции. Подробнее...
struct  std::less< DefRangeItem >
 Сравнение элементов области определения. Подробнее...
class  DefRange
 Область определения функции. Подробнее...
struct  DerivesValues
 Значение функции и производных. Подробнее...
class  BTreeNode
 Базовый класс для узлов дерева выражения. Подробнее...
class  TreeIntervalNode
 Узел дерева интервального выражения. Подробнее...
class  IntervalConstNode
 Интервал простых выражений. Подробнее...
class  IntervalIdentNode
 Интервальная переменная как узел бинарного дерева. Подробнее...
class  BTreeConst
 Константа как узел бинарного дерева. Подробнее...
class  BTreeIdent
 Переменная как узел бинарного дерева. Подробнее...
class  BTreeFunction
 Функция как узел бинарного дерева. Подробнее...
class  BTreeOperation
 Операция с двумя аргументами как узел бинарного дерева. Подробнее...
class  BTreeOperation1Arg
 Операция с одним аргументом как узел бинарного дерева. Подробнее...
class  BTreeOperation3Args
 Операция с тремя аргументами как узел синтаксического дерева. Подробнее...
class  BTreeUserFunc
 Пользовательская функция как узел бинарного дерева. Подробнее...
class  MbListVars
 Список переменных. Подробнее...
struct  ItCoord
 Интерфейс координаты. Подробнее...
struct  ItTreeVariable
 Интерфейс переменной. Подробнее...
struct  ItIntervalTreeVariable
 Интерфейс интервальной переменной. Подробнее...
struct  ItUserFunc
 Интерфейс функции. Подробнее...
class  MbUserFunc
 Пользовательская функция. Подробнее...
class  MbVar
 Переменная. Подробнее...
class  MbCoord
 Координата. Подробнее...
class  MbTreeVariable
 Переменная. Подробнее...

Перечисления

enum  TeIntervalNodeType { tei_Const, tei_Ident }
 Типы узлов бинарного дерева. Подробнее...
enum  BteNodeType {
  bt_Const, bt_Ident, bt_Function, bt_Operation2Args,
  bt_Operation1Arg, bt_Operation3Args
}
 Типы узлов бинарного дерева. Подробнее...
enum  PceOperationType {
  oprt_TernaryOperation = 0, oprt_BinaryOperation = 8, oprt_Addition = oprt_BinaryOperation, oprt_Subtraction = 9,
  oprt_Division = 10, oprt_Multiplication = 11, oprt_IntDivision = 12, oprt_OR = 13,
  oprt_AND = 14, oprt_NEQU = 15, oprt_EQU = 16, oprt_GT = 17,
  oprt_GE = 18, oprt_LT = 19, oprt_LE = 20, oprt_Involution = 21,
  oprt_UnaryOperation = 22, oprt_NOT = oprt_UnaryOperation, oprt_UnaryMinus = 23, oprt_UnaryPlus = 24,
  oprt_Parentheses = 25
}
 Типы операций. Подробнее...
enum  EquTreeResCode {
  equTreeResCode_Ok = 0, equTreeResCode_First = 1, equTreeResCode_SyntaxError = equTreeResCode_First, equTreeResCode_TooComplex,
  equTreeResCode_InvalidAssignment, equTreeResCode_NoVariables, equTreeResCode_TooLargeIdent, equTreeResCode_TangentsDomain,
  equTreeResCode_SqrtDomain, equTreeResCode_LogarithmDomain, equTreeResCode_ZeroDivide, equTreeResCode_TrigonometricDomain,
  equTreeResCode_CyclicRelation, equTreeResCode_PowDomain, equTreeResCode_WrongFuncFormat, equTreeResCode_Last
}
 Коды результата разбора строки. Подробнее...

Функции

uint GetCountOfParams (PceOperationType operationType)
 Количество параметров.
BTreeFunction::EquFnCode GetFunCodeByName (const c3d::string_t &name)
 Дать тип функции.
void GetFunNameByCode (BTreeFunction::EquFnCode code, c3d::string_t &name)
 Дать имя функции.
 BTreeOperation::BTreeOperation (PceOperationType code, BTreeNode &op1, BTreeNode &op2)
 Конструктор.
EquTreeResCode CreateBTreeForEquation (const c3d::string_t &equstr, ItEquVarCreator &varsCreator, std::auto_ptr< BTreeNode > &dRoot)
 Создать дерево уравнения (a = b + c) через параметрический калькулятор.
EquTreeResCode CreateBTreeForExpression (const c3d::string_t &equstr, ItEquVarCreator *varsCreator, std::auto_ptr< BTreeNode > &root, std::auto_ptr< TreeIntervalNode > &iRoot)
 Создать дерево выражения (b + c + d) через параметрический калькулятор.
EquTreeResCode CreateVariable (const c3d::string_t &expression, ItEquVarCreator &)
 Создать переменную.
bool IsInequality (const c3d::string_t &equstr)
 Является ли выражение неравенством.
EquTreeResCode CreateBTreeForEquation (const TCHAR *equstr, ItEquVarCreator &varsCreator, std::auto_ptr< BTreeNode > &dRoot)
 Создать дерево уравнения (a = b + c) через параметрический калькулятор.
EquTreeResCode CreateBTreeForExpression (const TCHAR *equstr, ItEquVarCreator *varsCreator, std::auto_ptr< BTreeNode > &root, std::auto_ptr< TreeIntervalNode > &iRoot)
 Создать дерево выражения (b + c + d) через параметрический калькулятор.
EquTreeResCode CreateVariable (const TCHAR *expression, ItEquVarCreator &)
 Создать переменную.
bool IsInequality (const TCHAR *equstr)
 Является ли выражение неравенством.

Перечисления

Типы узлов бинарного дерева.

Элементы перечислений:
tei_Const 

Константа.

tei_Ident 

Идентификатор.

Типы узлов бинарного дерева.

Элементы перечислений:
bt_Const 

Константа.

bt_Ident 

Идентификатор.

bt_Function 

Функция.

bt_Operation2Args 

Операция c двумя аргументами.

bt_Operation1Arg 

Операция c одним аргументом.

bt_Operation3Args 

Операция c тремя аргументами.

Типы операций.

Внимание:
Значения пишутся в файл.
Элементы перечислений:
oprt_TernaryOperation 

Тернарная операция.

oprt_BinaryOperation 

Бинарная операция.

oprt_Addition 

Сложение.

oprt_Subtraction 

Вычитание.

oprt_Division 

Деление.

oprt_Multiplication 

Умножение.

oprt_IntDivision 

Целочисленное деление.

oprt_OR 

Или.

oprt_AND 

И.

oprt_NEQU 

Не равно.

oprt_EQU 

Равно.

oprt_GT 

Больше.

oprt_GE 

Больше или равно.

oprt_LT 

Меньше.

oprt_LE 

Меньше или равно.

oprt_Involution 

Возведение в степень.

oprt_UnaryOperation 

Унарная операция.

oprt_NOT 

Не.

oprt_UnaryMinus 

Унарный минус.

oprt_UnaryPlus 

Унарный плюс.

oprt_Parentheses 

Скобки.

Коды результата разбора строки.

Элементы перечислений:
equTreeResCode_Ok 

Все хорошо.

equTreeResCode_First 

Начало диапазона ошибок.

equTreeResCode_SyntaxError 

Ошибка: Синтаксическая ошибка в выражении.

equTreeResCode_TooComplex 

Ошибка: Слишком сложное выражение.

equTreeResCode_InvalidAssignment 

Ошибка: Переменная присваивается самой себе.

equTreeResCode_NoVariables 

Ошибка: В выражении должна быть хотя бы одна переменная.

equTreeResCode_TooLargeIdent 

Ошибка: Превышено количество символов в имени переменной.

equTreeResCode_TangentsDomain 

Ошибка: Аргумент тангенса не в области определения.

equTreeResCode_SqrtDomain 

Ошибка: Недопустимое значение аргумента для sqrt.

equTreeResCode_LogarithmDomain 

Ошибка: Недопустимое значение аргумента для логарифмической функции.

equTreeResCode_ZeroDivide 

Ошибка: Деление на ноль.

equTreeResCode_TrigonometricDomain 

Ошибка: Аргумент тригонометрической функции не в области определения.

equTreeResCode_CyclicRelation 

Ошибка: Найдена замкнутая зависимость.

equTreeResCode_PowDomain 

Ошибка: недопустимое значение аргумента для степенной функции.

equTreeResCode_WrongFuncFormat 

Ошибка: Выражение содержит функцию, не соответствующую своему формату.

equTreeResCode_Last 

Конец диапазона ошибок.


Функции

uint GetCountOfParams ( PceOperationType  operationType) [inline]

Выдать количество параметров для типа операции.

Аргументы:
[in]operationType- Тип операцции.
Возвращает:
Количество параметров операции.
BTreeFunction::EquFnCode GetFunCodeByName ( const c3d::string_t name)

Дать тип функции по имени.

Аргументы:
[in]name- Имя функции.
Возвращает:
Тип функции.
void GetFunNameByCode ( BTreeFunction::EquFnCode  code,
c3d::string_t name 
)

Дать имя функции по типу.

Аргументы:
[in]code- Тип функции.
[out]name- Имя функции.
BTreeOperation::BTreeOperation ( PceOperationType  code,
BTreeNode op1,
BTreeNode op2 
)

Конструктор.

Аргументы:
[in]code- Код операции.
[in]op1- Первый операнд.
[in]op2- Второй операнд.
EquTreeResCode CreateBTreeForEquation ( const c3d::string_t equstr,
ItEquVarCreator &  varsCreator,
std::auto_ptr< BTreeNode > &  dRoot 
)

Создать дерево уравнения a = b + c) через параметрический калькулятор.

Возвращает:
Код результата операции.
EquTreeResCode CreateBTreeForExpression ( const c3d::string_t equstr,
ItEquVarCreator *  varsCreator,
std::auto_ptr< BTreeNode > &  root,
std::auto_ptr< TreeIntervalNode > &  iRoot 
)

Создать дерево выражения (b + c + d) через параметрический калькулятор.

Возвращает:
Код результата операции.
EquTreeResCode CreateVariable ( const c3d::string_t expression,
ItEquVarCreator &   
)

Создать переменную по строке.

Возвращает:
Код результата операции.
bool IsInequality ( const c3d::string_t equstr)

Является ли выражение неравенством.

EquTreeResCode CreateBTreeForEquation ( const TCHAR *  equstr,
ItEquVarCreator &  varsCreator,
std::auto_ptr< BTreeNode > &  dRoot 
)

Создать дерево уравнения a = b + c) через параметрический калькулятор.

Возвращает:
Код результата операции.
EquTreeResCode CreateBTreeForExpression ( const TCHAR *  equstr,
ItEquVarCreator *  varsCreator,
std::auto_ptr< BTreeNode > &  root,
std::auto_ptr< TreeIntervalNode > &  iRoot 
)

Создать дерево выражения (b + c + d) через параметрический калькулятор.

Возвращает:
Код результата операции.
EquTreeResCode CreateVariable ( const TCHAR *  expression,
ItEquVarCreator &   
)

Создать переменную по строке.

Возвращает:
Код результата операции.
bool IsInequality ( const TCHAR *  equstr)

Является ли выражение неравенством.

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы