opsnewir: New Internal Representation

  • Титульная страница
  • Пространства имен
  • Классы
  • Файлы

New Internal Representation

3.1

Автор:
Victor Petrenko (petrenko@jeo.ru)
Версия:
1.4.5 от 13.06.2007

Концепция построения иерархии классов

Внутреннее представление является деревом. Ветки этого дерева могут быть четырех разных типов:
  • типы данных (скалярные, составные, подпрограммы);
  • объекты области видимости (переменне, метки, подпрограммы);
  • выражения (унарные, бинарные, обращение к массиву, вызов подпрограммы);
  • операторы (блок операторов, операторы ветвления и операторы циклов).
Учитывая опыт использования предыдущего внутреннего представления, в новом хотелось добавить способы расширения функциональности. Один из них заключается в возможности "пометить" практически любой элемент внутреннего представления.

В системе имеется класс ImmValue, который является контерйнером для непосредственных значений (bool, int, double, string). Также имеется класс IRObject, который является базовым для большинства классов, составляющих различные ветки внутреннего представления. У класса IRObject есть методы для работы с "пометками":

  • void setNote(std::string strName, ImmValue *);
  • ImmValue* getNote(std::string strName);
  • void delNote(std::string strName);
Соответственно можно задать значения для узла под некоторым именем. Например:

    program.getGlobals().setNote("glb_name", ImmValue::create("Some text"));

Базовые классы ветвей

Для каждого типа ветвей имеется базовый класс, наследованный от IRObject:

  • TypeData - Типы данных
  • NameObject - Именованный объект (объект области видимости)
  • ExprNode - Выражения
  • Statement - Оператор

Методология создания и удаления объектов внутреннего представления

Методология создания

История изменений (history)

Новое в версии 1.4.5 от 13.06.2007

  • Добавлено перечисление для указания классов памяти именованных объектов прграммы (auto, register, static, extern)

Новое в версии 1.4.4 от 20.05.2006

  • Добавлен метод isSubProcVisibleFor() в классе Namespace
  • Добавлен метод getStatementParentSubProc() в классе Statement

Новое в версии 1.4.3 от 24.02.2006

  • Добавлены методы hasName() и hasNameRecursive() в классе Namespace
  • Добавлены методы insertBeforeType(), insertBeforeVariable(), insertBeforeConst(), insertBeforeLabel(), insertBeforeSubProc(), insertAfterType(), insertAfterVariable(), insertAfterConst(), insertAfterLabel(), insertAfterSubProc()
  • Добавлены тестовые модули (cppunit) для этой функциональности

Новое в версии 1.4.2 от 01.12.2005

  • Добавлены методы isEqual() для типов.
  • Добавлены тестовые модули (cppunit) для NewIR (экспериментальное -- см. testmod/NewIrUnitTest)

Новое в версии 1.4.1 от 10.10.2005

  • У класса Namespace появился метод cloneSubProc(). Первый параметр - итератор на функцию, которую нужно склонировать, второй - имя новой функции (можно использовать generateUniqueIdentifier() ).

Вот пример как сделать клон функции main() :

program->getGlobals().cloneSubProc(program->getGlobals().getSubProc("main"), "main1");

  • Изменился механизм клонирования и методы clone()

Новое в версии 1.3.1 от 27.02.2005

  • Переделаны итераторы в Namespace. Теперь понятие ссылки на имя и итератора разделено. Есть класс NameReference, есть NameIter, плюс для совместимости есть шаблонный класс-оболочка для создания итераторов по каждому типу объектов namespace. Если возникают проблемы в связи с отсутсвием теперь класса NameObjectIter, его использование везде можно заменять на NameIter, в некоторых случаях теперь потребуется вызывать для него метод getNameRef(), потому что многие методы теперь вместо NameObjectIter принимают более точный класс NameReference.
  • Сделана ревизия документации в Namespace.h
  • Проделана большая работа для внедрения модификаторов const. Отныне соблюдение const является важным. Соответсвенно появились константные итераторы и методы вроде getFirst() имеют константные версии. Для методов у классов, производных от ExprOper операции вроде getArg(), getLeftArg() теперь являются константными и возвращают константные ссылки. Для поддержки старого кода есть методы unsafeGetArg() и т.п., которые возвращают неконстантные указатели.
  • Исправлены некоторые запутанные места в Expressions.h/.cpp, теперь кстати там вместо uplink hasParentExpr()/getParentExpr(). Есть версии hasParentStatement()/getParentStatement(), но они пока не поддержаны со стороны Statements.

Новое в версии 1.2.6 от 19.02.2005

  • Небольшие исправления связанные с использованием NonCopyableMix

Новое в версии 1.2.5 от 15.02.2005

  • Добавлены методы в TypePtr и TypeArray для получения базового типа.
  • Исправлен метод C_Out для случая вывода NameVar (печатались параметры функции как локальные переменные).

Новое в версии 1.2.4 от 18.11.2004

  • Добавлен метод, возвращающий кол-во имен в namespace: getNamesCount()
  • Переделана логика работы метода Namespace::syncNamespaces(), теперь она более правильная
  • У NameVar появился метод isArgument() и setArgumentState(bool). Теперь можно узнать для переменной области имен, является ли она аргументом подпрограммы или локальной переменной.

Новое в версии 1.2.3 от 17.11.2004

  • Изменен класс ImmValue. Теперь его использование должно быть более безопасно

Новое в версии 1.2.2 от 12.11.2004

  • Добавлен вывод в Си через потоки, который реализовал Саша Бутов

Новое в версии 1.2.1 от 09.11.2004

  • Переделан класс ExprOper и унаследованные от него классы
  • Добавлены классы ExprStruct и ExprAssign

Новое в версии 1.1.4 от 01.11.2004

  • Добавлены операторы break и continue.
  • Добавлены методы для получения и установки условия операторов while и do while. заодно исправлен баг с clone() для DoWhile
  • Добавлены надесюь все операции, вроде <<=, >>=, ~, ! и т.п.
  • Добавлены OT_TYPE_XXX и OT_NAME_XXX
  • Добавлены в ListIter operator== и operator!=
  • Добавлена SubProcParams::getParamsCount()

Новое в версии 1.1.3 от 17.10.2004

  • Немного дополнены комментарии к операторам.
  • Метод Block::unlink отмечен как deprocated, теперь следует использовать detach (просто смена имени метода)
  • Добавлены методы getObjType() ко всем операторам
  • Изменено название класса StmtCycle -> StmtLoop
  • Добавлен метод Namespace::GenerateUniqueIdentifier()
  • Добавлены методы getAsXXX() для Statement. Предпочтительно пользоваться ими вместо использования явного приведения типа Statement к производному от него типу
  • К типам данным добавлен метод memberwiseClone() для неглубокого клонирования. Эта возможность считается экспериментальной, т.к. пока она не может полностью решить возникшие проблемы с представлением рекурсивных структур данных (например, связных списков).

Новое в версии 1.1.2 от 04.10.2004

  • Переделаны операторы. Теперь ничего не наследуется от Block-а. Наследование заменено агрегацией.
  • В связи с этим изменились немного аплнки. Теперь аплинком может быть не только блок.
  • Реализованы while, do while и switch
  • Появился clone() для операторов.
  • Добавлены аплинки в выражениях.
  • Добавлена примитивная поддержка lvalue в выражениях.
  • Добавлен метод IRObject::getObjType() const для идентификации типов узлов.
  • Отброшена идея с коннекторами выражений.

Новое в версии 1.1.1 от 14.09.2004

  • Введен файл IRCommon.h . Отныне он содержит самые основные определения, в том числе подключение STL
  • Введен макрос OPS_NON_COPYABLE для предотвращения генерирования компилятором копирующего конструктора и оператора копирования по умолчанию.
  • Добавлены деструкторы для StmtFor и StmtExpr.
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Классы

  • Файлы
  • Классы
  • Иерархия классов
  • Члены классов

opsnewir Классы

Классы с их кратким описанием.
Block | Представляет абстракцию операторных скобок
ExprArray | Класс, представляющий обращение к массиву
ExprAssign | Класс, представляющий семейство операций присваивания
ExprBinary | Класс, представляющий бинарную операцию
ExprCall | Класс, представляющий вызов подпрограммы
ExprData | Этот класс используется для представления любого обращения к данным в выражении
ExprImm | Непосредственная константа в выражении
ExprNode | Этот класс используется как базовый для определения классов-крпичиков из которых строится выражение
ExprNull | Применяется в случае, когда выражение положено по структуре, но не требуется производить какие-либо вычисления
ExprOper | Этот класс используется для представления любой операции в выражении
ExprOper::OperDescr | Описание операции
ExprStruct | Класс, представляющий обращение к структуре или объединению (операции . и ->)
ExprUnary | Класс, представляющий унарную операцию
ImemberwiseCloneable< T > | Запрещает неглубокое копирование по-умолчанию
IRObject | Этот класс является базовым для многих классов, составляющих внутреннее представление
NameIter | Итератор по области видимости
NameLabel | Объявление метки
NameObject | Именованный объект namespace
Namespace | Namespace -- ярус пространства имен
NameSubProc | Объявление подпрограммы
NameType | Объявление типа
NameVar | Объявление переменной
Program | Класс программы (единица трансляции)
Statement | Этот класс используется как базовый для определения классов-крпичиков из которых строится программа
StmtBranch | Базовый оператор ветвлений
StmtBreak | Оператор break
StmtContinue | Оператор continue
StmtDoWhile | Оператор Do..While
StmtEmpty | Пустой оператор
StmtExpr | Этот класс представляет заглушку для вставки выражений в программу
StmtFor | Оператор For
StmtGoto | Оператор безусловного перехода
StmtIf | Условный оператор
StmtLoop | Базовый оператор циклов
StmtReturn | Оператор return
StmtSwitch | Оператор Switch
StmtWhile | Оператор While
TypeArray | Этот класс предназначен для представления массива
TypeArray::Limits | Эта структура определяет пределы измерения массива
TypeData | Базовый класс для определения типов данных
TypeNamed | Этот класс предназначен для представления именнованного в некоторой namespace типа
TypePtr | Этот класс предназначен для представления указателя на тип
TypeSimple | Этот класс предназначен для представления элементарных типов данных, таких как int, double, bool, void
TypeStruct | Этот класс предназначен для представления структуры или объединения (struct или union в терминах Си)
TypeSubProc | Этот класс предназначен для представления подпрограммы
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс Block

  • Члены классов

Класс Block

Представляет абстракцию операторных скобок. Подробнее...

#include <Statements.h>

Граф наследования:Block:

Statement IRObject Полный список членов класса

Открытые члены

virtual Block * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual Block * | clone (Namespace &nmspace) const
virtual Block * | clone (Statement &stmt) const
const Namespace & | getNamespace () const
Получить namespace блока, const версия.
Namespace & getNamespace ()
Получить namespace блока.
bool | isEmpty () const
Проверить блок на пустоту.
void | addFront (Statement *pStmt)
Добавить оператор первым в блок.
void | addBack (Statement *pStmt)
Добавить оператор последним в блок.
Iterator | insertBefore (Iterator it, Statement *pStmt)
Вставляет в блок оператор pStmt перед оператором, на который указывает it.
Iterator | insertAfter (Iterator it, Statement *pStmt)
Вставляет в блок оператор pStmt после оператором, на который указывает it.
void | erase (Iterator it)
Удалить оператор из блока по его итератору.
Statement * | unlink (Iterator it)
[depricated] Отлинковать оператор (снять ответсвенность за удаление оператора с блока)
Statement * | detach (Iterator it)
Позволяет отсоединить оператор от блока.
Iterator | getFirst ()
Получить итератор на первый оператор в блоке.
ConstIterator | getFirst () const
Получить итератор на первый оператор в блоке.
Iterator | getLast ()
Получить итератор на последний оператор в блоке.
ConstIterator | getLast () const
Получить итератор на последний оператор в блоке.
Iterator | getByStmt (Statement *pStmt)
Позволяет по имеющемуся указателю на оператор получить соответствующий ему итератор в текущем блоке.
ConstIterator | getByStmt (Statement *pStmt) const
void | clear ()
Очистить блок (все операторы будут удалены).
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int nPos)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int nPos)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
Statement * | operator[] (int num)
int | getStatementsCount () const
Возвращает число операторов в блоке.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static Block * | createEmptyBlock ()
Сконструировать пустой блок с пустым namespace.
static Block * | create (Statement *pParent)
Сконструировать пустой блок с пустым namespace и "прицепить" его к parent-оператору.
static Block * | create (Namespace &nmspace)
Сконструировать пустой блок с заданным namespace.

Защищенные члены

Block (Statement &parent, Namespace *pNamespace)
Сконструировать пустой блок с пустым namespace и "прицепить" его к parent-оператору.
Block (Namespace *pNamespace)

Защищенные данные

TStmtList | m_lstStatements
Namespace * | m_pNamespace

Подробное описание

Представляет абстракцию операторных скобок.

Согласно правил языка Си также определяет namespace

Конструктор(ы)

Block::Block | ( | Statement & | parent,
 |  | Namespace * | pNamespace |
 | ) |  |  | [protected]

Сконструировать пустой блок с пустым namespace и "прицепить" его к parent-оператору.

Методы

Block * Block::createEmptyBlock ( ) [static]

Сконструировать пустой блок с пустым namespace.

Block * Block::create ( Statement * pParent ) [static]

Сконструировать пустой блок с пустым namespace и "прицепить" его к parent-оператору.

Block * Block::create ( Namespace & nmspace ) [static]

Сконструировать пустой блок с заданным namespace.

Block * Block::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

const Namespace & Block::getNamespace ( ) const

Получить namespace блока, const версия.

Namespace & Block::getNamespace ( )

Получить namespace блока.

bool Block::isEmpty ( ) const

Проверить блок на пустоту.

void Block::addFront ( Statement * pStmt )

Добавить оператор первым в блок.

void Block::addBack ( Statement * pStmt )

Добавить оператор последним в блок.

Iterator Block::insertBefore | ( | Iterator | it,
 |  | Statement * | pStmt
 | ) |  |

Вставляет в блок оператор pStmt перед оператором, на который указывает it.

Аргументы:
it | - итератор на оператор, перед которым будет происходить вставка
pStmt | - оператор, который следует вставить в блок
Возвращает:
итератор на только что вставленный оператор

Iterator Block::insertAfter | ( | Iterator | it,
 |  | Statement * | pStmt
 | ) |  |

Вставляет в блок оператор pStmt после оператором, на который указывает it.

Аргументы:
it | - итератор на оператор, после которого будет происходить вставка
pStmt | - оператор, который следует вставить в блок
Возвращает:
итератор на только что вставленный оператор

void Block::erase ( Iterator it )

Удалить оператор из блока по его итератору.

Statement * Block::unlink ( Iterator it )

[depricated] Отлинковать оператор (снять ответсвенность за удаление оператора с блока)

Statement * Block::detach ( Iterator it )

Позволяет отсоединить оператор от блока.

Необходимо в тех случаях, когда оператор удалять не нужно, но из этого блока его необходимо убрать.

Аргументы:
it - итератор на оператор, который следует отсоединить
Возвращает:
Указатель на оператор. Теперь за удаление этого оператора ответственен вызвавший этот метод

Statement::Iterator Block::getFirst ( )

Получить итератор на первый оператор в блоке.

Statement::ConstIterator Block::getFirst ( ) const

Получить итератор на первый оператор в блоке.

Statement::Iterator Block::getLast ( )

Получить итератор на последний оператор в блоке.

Statement::ConstIterator Block::getLast ( ) const

Получить итератор на последний оператор в блоке.

Statement::Iterator Block::getByStmt ( Statement * pStmt )

Позволяет по имеющемуся указателю на оператор получить соответствующий ему итератор в текущем блоке.

Может вернуть итератор, означающий что такой оператор в блоке не найден (isValid() == false).

Аргументы:
pStmt - оператор, по которому следует вернуть итератор
Возвращает:
итератор на оператор

void Block::clear ( )

Очистить блок (все операторы будут удалены).

std::string Block::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes Block::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

bool Block::isIntBlockValid ( int nPos ) [virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

Statement * Block::getIntBlock ( int nPos ) [virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool Block::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int Block::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

int Block::getStatementsCount ( ) const

Возвращает число операторов в блоке.

virtual std::ostream& Block::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprArray

Класс ExprArray

Класс, представляющий обращение к массиву. Подробнее...

#include <Expressions.h>

Граф наследования:ExprArray:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprArray * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprArray * | clone (const ExprNode &exprNode) const
virtual ExprArray * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
const ExprNode & | getNameExpr () const
Получить выражение, стоящее слева от скобки [.
ExprNode * unsafeGetNameExpr ()
Получить выражение, стоящее слева от скобки [.
void | setNameExpr (ExprNode *data)
Установить выражение, стоящее слева от скобки.
const ExprNode & | getDimExpr (int nDim) const
Получить выражение для заданного измерения массива.
ExprNode * | unsafeGetDimExpr (int nDim)
Получить выражение для заданного измерения массива.
void | setDimExpr (int nDim, ExprNode *pExpr)
Заметки:
Если, например, есть выражение A[1][2], то: вызов setDimExpr(1) заменит выражения для 2 (A[1][ваше_выражение]); вызов setDimExpr(2) сделает A[1][2][ваше_выражение]; вызов setDimExpr(3) приведет к исключению.

void | addDimExpr (ExprNode *pExpr)
Добавит измерение массиву и установит выражение для него.
int | getDimsCount () const
Возвращает количество выражений-аргументов массива.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprArray * | create (const NameReference &nr, ExprNode *pArg)
Аргументы:
oIter - итератор на массив в некотором namespace

Защищенные члены

ExprArray (const NameReference &nr, ExprNode *pArg)

Подробное описание

Класс, представляющий обращение к массиву.

Методы

ExprArray * ExprArray::create | ( | const NameReference & | nr,
 |  | ExprNode * | pArg |
 | ) |  |  | [static]

Аргументы:
oIter - итератор на массив в некотором namespace

Аргументы:
pArg - аргумент
Предупреждения:
Сконструировать операцию без аргументов нельзя. Это означает, что в качестве параметра pArg нельзя передать NULL.

ExprArray * ExprArray::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

bool ExprArray::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Переопределяет метод предка ExprOper.

const ExprNode & ExprArray::getNameExpr ( ) const

Получить выражение, стоящее слева от скобки [.

ExprNode * ExprArray::unsafeGetNameExpr ( )

Получить выражение, стоящее слева от скобки [.

void ExprArray::setNameExpr ( ExprNode * data )

Установить выражение, стоящее слева от скобки.

const ExprNode & ExprArray::getDimExpr ( int nDim ) const

Получить выражение для заданного измерения массива.

ExprNode * ExprArray::unsafeGetDimExpr ( int nDim )

Получить выражение для заданного измерения массива.

void ExprArray::setDimExpr | ( | int | nDim,
 |  | ExprNode * | pExpr
 | ) |  |

Заметки:
Если, например, есть выражение A[1][2], то: вызов setDimExpr(1) заменит выражения для 2 (A[1][ваше_выражение]); вызов setDimExpr(2) сделает A[1][2][ваше_выражение]; вызов setDimExpr(3) приведет к исключению.

void ExprArray::addDimExpr ( ExprNode * pExpr )

Добавит измерение массиву и установит выражение для него.

int ExprArray::getDimsCount ( ) const

Возвращает количество выражений-аргументов массива.

std::string ExprArray::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprArray::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

virtual std::ostream& ExprArray::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprAssign

Класс ExprAssign

Класс, представляющий семейство операций присваивания. Подробнее...

#include <Expressions.h>

Граф наследования:ExprAssign:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprAssign * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprAssign * | clone (const ExprNode &exprNode) const
virtual ExprAssign * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
void | setLeftExpr (ExprNode *pArg)
Аргументы:
pArg - новый аргумент

const ExprNode & | getLeftExpr () const
Получить аргумент слева операции.
ExprNode * unsafeGetLeftExpr ()
Получить аргумент слева операции.
void | setRightExpr (ExprNode *pArg)
Аргументы:
pArg - новый аргумент

const ExprNode & | getRightExpr () const
Получить аргумент справа операции.
ExprNode * unsafeGetRightExpr ()
Получить аргумент справа операции.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprAssign * | create (OT nOperator, ExprNode *pLValue, ExprNode *pRValue)
Аргументы:
Operator - операция

static ExprAssign * | create (ExprNode *pLValue, ExprNode *pRValue)
Аргументы:
pLValue - аргумент слева

Подробное описание

Класс, представляющий семейство операций присваивания.

Методы

ExprAssign * ExprAssign::create | ( | OT | nOperator,
 |  | ExprNode * | pLValue,
 |  | ExprNode * | pRValue |
 | ) |  |  | [static]

Аргументы:
Operator - операция

Аргументы:
pLValue | - аргумент слева
pRValue | - аргумент справа

ExprAssign * ExprAssign::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

ExprAssign * ExprAssign::create | ( | ExprNode * | pLValue,
 |  | ExprNode * | pRValue |
 | ) |  |  | [static]

Аргументы:
pLValue - аргумент слева

Аргументы:
pRValue - аргумент справа

bool ExprAssign::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Переопределяет метод предка ExprOper.

void ExprAssign::setLeftExpr ( ExprNode * pArg )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

const ExprNode & ExprAssign::getLeftExpr ( ) const

Получить аргумент слева операции.

ExprNode * ExprAssign::unsafeGetLeftExpr ( )

Получить аргумент слева операции.

void ExprAssign::setRightExpr ( ExprNode * pArg )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

const ExprNode & ExprAssign::getRightExpr ( ) const

Получить аргумент справа операции.

ExprNode * ExprAssign::unsafeGetRightExpr ( )

Получить аргумент справа операции.

std::string ExprAssign::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprAssign::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

std::ostream& ExprAssign::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprBinary

Класс ExprBinary

Класс, представляющий бинарную операцию. Подробнее...

#include <Expressions.h>

Граф наследования:ExprBinary:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprBinary * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprBinary * | clone (const ExprNode &exprNode) const
virtual ExprBinary * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
void | setLeftArg (ExprNode *pArg)
Аргументы:
pArg - новый аргумент

const ExprNode & | getLeftArg () const
Получить аргумент слева операции.
ExprNode * unsafeGetLeftArg ()
Старая версия получения аргумента слева операции.
void | setRightArg (ExprNode *pArg)
Аргументы:
pArg - новый аргумент

const ExprNode & | getRightArg () const
Получить аргумент справа операции.
ExprNode * unsafeGetRightArg ()
Получить аргумент справа операции.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprBinary * | create (OT nOperator, ExprNode *pLeftArg, ExprNode *pRightArg)
Аргументы:
Operator - операция

Подробное описание

Класс, представляющий бинарную операцию.

Методы

ExprBinary * ExprBinary::create | ( | OT | nOperator,
 |  | ExprNode * | pLeftArg,
 |  | ExprNode * | pRightArg |
 | ) |  |  | [static]

Аргументы:
Operator - операция

Аргументы:
pLeftArg | - аргумент слева
pRightArg | - аргумент справа

ExprBinary * ExprBinary::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

bool ExprBinary::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Переопределяет метод предка ExprOper.

void ExprBinary::setLeftArg ( ExprNode * pArg )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

const ExprNode & ExprBinary::getLeftArg ( ) const

Получить аргумент слева операции.

ExprNode * ExprBinary::unsafeGetLeftArg ( )

Старая версия получения аргумента слева операции.

void ExprBinary::setRightArg ( ExprNode * pArg )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

const ExprNode & ExprBinary::getRightArg ( ) const

Получить аргумент справа операции.

ExprNode * ExprBinary::unsafeGetRightArg ( )

Получить аргумент справа операции.

std::string ExprBinary::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprBinary::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

virtual std::ostream& ExprBinary::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprCall

Класс ExprCall

Класс, представляющий вызов подпрограммы. Подробнее...

#include <Expressions.h>

Граф наследования:ExprCall:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprCall * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprCall * | clone (const ExprNode &exprNode) const
virtual ExprCall * | clone (const Statement &parentStmt) const
const ExprNode & | getNameExpr () const
Получить выражение, стоящее слева от скобки (.
ExprNode * unsafeGetNameExpr ()
Получить выражение, стоящее слева от скобки (.
void | setNameExpr (ExprNode *data)
Установить выражение, стоящее слева от скобки (.
const ExprNode & | getParamExpr (int param) const
Получить выражение для заданного аргумента.
ExprNode * | unsafeGetParamExpr (int param)
Получить выражение для заданного аргумента.
void | setParamExpr (int param, ExprNode *pExpr)
Заметки:
Если, например, есть выражение f(1, 2), то: вызов setArgExpr(1) заменит выражения для 2: f(1, ваше_выражение); вызов setArgExpr(2) сделает f(1, 2, ваше_выражение); вызов setArgExpr(3) приведет к исключению.

void | addParamExpr (ExprNode *pExpr)
Добавит аргумент к вызову и установит выражение для него.
int | getParamsCount () const
Возвращает количество выражений-аргументов вызова.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprCall * | create (const NameReference &nr)
Аргументы:
oIter - итератор на подпрограмму в некотором namespace

static ExprCall * | create (const NameReference &nr, ExprNode *pArg)
Аргументы:
oIter - итератор на подпрограмму в некотором namespace

Подробное описание

Класс, представляющий вызов подпрограммы.

Методы

ExprCall * ExprCall::create ( const NameReference & nr ) [static]

Аргументы:
oIter - итератор на подпрограмму в некотором namespace

ExprCall * ExprCall::create | ( | const NameReference & | nr,
 |  | ExprNode * | pArg |
 | ) |  |  | [static]

Аргументы:
oIter - итератор на подпрограмму в некотором namespace

Аргументы:
pArg - аргумент

ExprCall * ExprCall::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

const ExprNode & ExprCall::getNameExpr ( ) const

Получить выражение, стоящее слева от скобки (.

ExprNode * ExprCall::unsafeGetNameExpr ( )

Получить выражение, стоящее слева от скобки (.

void ExprCall::setNameExpr ( ExprNode * data )

Установить выражение, стоящее слева от скобки (.

const ExprNode & ExprCall::getParamExpr ( int param ) const

Получить выражение для заданного аргумента.

ExprNode * ExprCall::unsafeGetParamExpr ( int param )

Получить выражение для заданного аргумента.

void ExprCall::setParamExpr | ( | int | param,
 |  | ExprNode * | pExpr
 | ) |  |

Заметки:
Если, например, есть выражение f(1, 2), то: вызов setArgExpr(1) заменит выражения для 2: f(1, ваше_выражение); вызов setArgExpr(2) сделает f(1, 2, ваше_выражение); вызов setArgExpr(3) приведет к исключению.

void ExprCall::addParamExpr ( ExprNode * pExpr )

Добавит аргумент к вызову и установит выражение для него.

int ExprCall::getParamsCount ( ) const

Возвращает количество выражений-аргументов вызова.

std::string ExprCall::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprCall::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

virtual std::ostream& ExprCall::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprData

Класс ExprData

Этот класс используется для представления любого обращения к данным в выражении. Подробнее...

#include <Expressions.h>

Граф наследования:ExprData:

ExprNode IRObject Полный список членов класса

Открытые члены

virtual bool | isEqual (const ExprNode &exprNode) const
virtual ExprData * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprData * | clone (const ExprNode &exprNode) const
virtual ExprData * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
const NameReference & | getData () const
Получить данные, которые представляет этот узел.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprData * | create (const NameReference &oDataObject)
Аргументы:
oDataObject - итератор на данное в некотором namespace

static ExprData * | create (Namespace &rNamespace, const std::string &strName)
Аргументы:
rNamespace - namespace

Защищенные члены

ExprData (const NameReference &oDataObject)

Защищенные данные

NameReference | m_oDataObject

Подробное описание

Этот класс используется для представления любого обращения к данным в выражении.

В том числе к объявленной подпрограмме или массиву.

Методы

ExprData * ExprData::create ( const NameReference & oDataObject ) [static]

Аргументы:
oDataObject - итератор на данное в некотором namespace

ExprData * ExprData::create | ( | Namespace & | rNamespace,
 |  | const std::string & | strName |
 | ) |  |  | [static]

Аргументы:
rNamespace - namespace

Аргументы:
strName - имя данных к заданном namespace

ExprData * ExprData::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает ExprNode.

bool ExprData::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Замещает ExprNode.

const NameReference & ExprData::getData ( ) const

Получить данные, которые представляет этот узел.

std::string ExprData::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes ExprData::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& ExprData::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает ExprNode.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprImm

Класс ExprImm

Непосредственная константа в выражении. Подробнее...

#include <Expressions.h>

Граф наследования:ExprImm:

ExprNode IRObject Полный список членов класса

Открытые члены

virtual bool | isEqual (const ExprNode &exprNode) const
virtual ExprImm * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprImm * | clone (const ExprNode &exprNode) const
virtual ExprImm * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprImm * | create (const ImmValue &oValue)
Конструирует узел выражения, представляющий непосредственную константу.
template<class TValue>
static ExprImm * | create (ImmValue::IV valueType, TValue value)
Конструирует узел выражения, представляющий непосредственную константу.

Открытые атрибуты

ImmValue | m_oValue
Значение непосредственной константы.

Защищенные члены

ExprImm (const ImmValue &oValue)

Подробное описание

Непосредственная константа в выражении.

Методы

ExprImm * ExprImm::create ( const ImmValue & oValue ) [static]

Конструирует узел выражения, представляющий непосредственную константу.

template<class TValue>
static ExprImm* ExprImm::create | ( | ImmValue::IV | valueType,
 |  | TValue | value |
 | ) |  |  | [inline, static]

Конструирует узел выражения, представляющий непосредственную константу.

ExprImm * ExprImm::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает ExprNode.

bool ExprImm::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Замещает ExprNode.

std::string ExprImm::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes ExprImm::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& ExprImm::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает ExprNode.

Данные класса

ImmValue ExprImm::m_oValue

Значение непосредственной константы.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprNode

Класс ExprNode

Этот класс используется как базовый для определения классов-крпичиков из которых строится выражение. Подробнее...

#include <Expressions.h>

Граф наследования:ExprNode:

IRObject ExprData ExprImm ExprNull ExprOper ExprArray ExprAssign ExprBinary ExprCall ExprStruct ExprUnary Полный список членов класса

Открытые члены

virtual bool | isLValue ()=0
Позволяет проверить, является ли выражение l-value (not implemented yet).
virtual ExprNode * | clone () const=0
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprNode * | clone (const ExprNode &exprNode) const =0
virtual ExprNode * | clone (const Statement &parentStmt) const =0
void | setParentExpr (const ExprNode &parent)
void | setParentNull ()
bool | hasParentExpr () const
ExprNode & | getParentExpr ()
const ExprNode & | getParentExpr () const
void | setParentStatement (const Statement &parent)
bool | hasParentStatement () const
Statement & | getParentStatement ()
const Statement & | getParentStatement () const
bool | hasParentBlock () const
Block & | getParentBlock ()
const Block & | getParentBlock () const
bool | hasParentNamespace () const
Namespace & | getParentNamespace ()
const Namespace & | getParentNamespace () const
virtual bool | isEqual (const ExprNode &exprNode) const =0
virtual std::ostream & | C_Out (std::ostream &out) const =0
Выводит эллемент в поток (C++).

Защищенные данные

IRObject * | m_uplink

Подробное описание

Этот класс используется как базовый для определения классов-крпичиков из которых строится выражение.

Используется шаблон "Composite" [GoF]. Для каждого типа узлов выражения используется свой класс. Объекты этих классов комбинируются и получается древовидная структура, однозначно определяющая выражение.

Заметки:
Ответственность за удаление своих потомков берет на себя класс-контейнер.
Если в какой-то части системы нужно сделать указание на произвольное выражение, то следует воспользоваться указателем как раз на этот класс.

Методы

virtual bool ExprNode::isLValue ( ) [pure virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Замещается в ExprNull, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray и ExprStruct.

virtual ExprNode* ExprNode::clone ( ) const [pure virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещается в ExprNull, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall и ExprStruct.

virtual std::ostream& ExprNode::C_Out ( std::ostream & out ) const [pure virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Замещается в ExprNull, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray и ExprCall.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprNull

Класс ExprNull

Применяется в случае, когда выражение положено по структуре, но не требуется производить какие-либо вычисления. Подробнее...

#include <Expressions.h>

Граф наследования:ExprNull:

ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprNull * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprNull * | clone (const ExprNode &exprNode) const
virtual ExprNull * | clone (const Statement &parentStmt) const
virtual bool | isEqual (const ExprNode &exprNode) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprNull * | create ()

Подробное описание

Применяется в случае, когда выражение положено по структуре, но не требуется производить какие-либо вычисления.

Методы

ExprNull * ExprNull::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает ExprNode.

bool ExprNull::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Замещает ExprNode.

std::string ExprNull::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

virtual std::ostream& ExprNull::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает ExprNode.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprOper

Класс ExprOper

Этот класс используется для представления любой операции в выражении. Подробнее...

#include <Expressions.h>

Граф наследования:ExprOper:

ExprNode IRObject ExprArray ExprAssign ExprBinary ExprCall ExprStruct ExprUnary Полный список членов класса

Открытые типы

enum OT {
OT_UNPLUS, OT_UNMINUS, OT_UNPOSTPP, OT_UNPREFPP,
OT_UNPOSTMM, OT_UNPREFMM, OT_SIZEOF, OT_ADDR,
OT_UNREF, OT_PLUS, OT_MINUS, OT_MUL,
OT_DIV, OT_MOD, OT_ASSIGN, OT_PLUS_ASSIGN,
OT_MINUS_ASSIGN, OT_MUL_ASSIGN, OT_DIV_ASSIGN, OT_MOD_ASSIGN,
OT_LSHIFT_ASSIGN, OT_RSHIFT_ASSIGN, OT_BAND_ASSIGN, OT_BOR_ASSIGN,
OT_BXOR_ASSIGN, OT_LESS, OT_GREATER, OT_LESSEQ,
OT_GREATEREQ, OT_EQ, OT_NOTEQ, OT_LSHIFT,
OT_RSHIFT, OT_LNOT, OT_LAND, OT_LOR,
OT_BNOT, OT_BAND, OT_BOR, OT_BXOR,
OT_CALL, OT_ARRAY, OT_STRUCT, OT_PTRSTRUCT,
OT_POW
}
Содержит все операции. Подробнее...
typedef std::vector< ExprNode * > | TArgumentsList

Открытые члены

virtual ExprOper * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual bool | isEqual (const ExprNode &exprNode) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
int | getOperArgsCount () const
Получить кол-во аргументов операции.
ExprNode * | getOperArgByNum (int nIndex) const
Получить указатель на заданный по номеру аргумент.
void | setOperArgByNum (int nIndex, ExprNode *pArg)
Предыдущий аргумент с заданным номером будет удален.
bool | replaceArg (ExprNode *pOldArg, ExprNode *pNewArg)
В случае, если замена выполнилась успешно, то замененный элемент удаляется.
virtual OT | getOper () const
Получить тип операции.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static OperDescr | getDescrByOT (OT nOperator)
Получение описателя операции по ее коду.
static std::string | getStrByOT (OT nOperator)
Получить читабельное представление операции по ее коду.
static int | getArgsCntByOT (OT nOperator)
Получить кол-во аргументов у заданной по коду операции (-1 означает переменное число аргументов).
static ExprOper * | create (OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0)
Аргументы:
nOperator - тип операции

static ExprOper * | create (OT nOperator, const TArgumentsList &args)
Аргументы:
nOperator - тип операции

static ExprOper * | createArray (const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0)
Аргументы:
oIter - итератор на массив в некотором namespace

static ExprOper * | createArray (Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0)
Аргументы:
rNamespace - namespace, в котором непосредственно объявлен массив

static ExprOper * | createCall (const NameReference &oIter, ExprNode *pArg=0)
Аргументы:
oIter - итератор на массив в некотором namespace

static ExprOper * | createCall (Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0)
Аргументы:
rNamespace - namespace, в котором непосредственно объявлена подпрограмма

Защищенные члены

ExprOper (OT nOperator)
ExprOper (OT nOperator, ExprNode *pArg)
virtual void | setOper (OT oper)
void | setUplinksToArguments ()
void | addOperArgument (ExprNode *pArg)
void | setCloneArguments (const TArgumentsList &newArgs)

Защищенные данные

OT | m_nOperator
TArgumentsList | m_aArgs

Классы

struct | OperDescr
Описание операции. Подробнее...

Подробное описание

Этот класс используется для представления любой операции в выражении.

В том числе вызов подпрограммы и обращение к массиву.

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

enum ExprOper::OT

Содержит все операции.

Методы

static OperDescr ExprOper::getDescrByOT ( OT nOperator ) [inline, static]

Получение описателя операции по ее коду.

static std::string ExprOper::getStrByOT ( OT nOperator ) [inline, static]

Получить читабельное представление операции по ее коду.

static int ExprOper::getArgsCntByOT ( OT nOperator ) [inline, static]

Получить кол-во аргументов у заданной по коду операции (-1 означает переменное число аргументов).

ExprOper * ExprOper::create | ( | OT | nOperator,
 |  | ExprNode * | pArg1,
 |  | ExprNode * | pArg2 = 0,
 |  | ExprNode * | pArg3 = 0 |
 | ) |  |  | [static]

Аргументы:
nOperator - тип операции

Аргументы:
pArg1 | - первый аргумент
pArg2 | - второй аргумент
pArg3 | - третий аргумент
Сконструировать операцию без аргументов нельзя. Если второй или третий аргумент не указать (или указать их равными 0), то будет сконструирована операция соответсвенно с указанным количеством аргументов.

Предупреждения:
В качестве значения параметра pArg1 нельзя передать 0. Это связано с тем, что в системе нет операций без аргументов.

ExprOper * ExprOper::create | ( | OT | nOperator,
 |  | const TArgumentsList & | args |
 | ) |  |  | [static]

Аргументы:
nOperator - тип операции

Аргументы:
args - аргументы
Сконструировать операцию без аргументов нельзя. Пустой список аргументов является ошибкой.

ExprOper * ExprOper::createArray | ( | const NameReference & | nr,
 |  | ExprNode * | pArg1,
 |  | ExprNode * | pArg2 = 0 |
 | ) |  |  | [static]

Аргументы:
oIter - итератор на массив в некотором namespace

Аргументы:
pArg1 | - первый аргумент
pArg2 | - второй аргумент
Сконструировать операцию без аргументов нельзя. Если второй аргумент не указать (или указать равным 0), то будет сконструирована операция соответсвенно с указанным количеством аргументов.

ExprOper * ExprOper::createArray | ( | Namespace & | rName,
 |  | const std::string & | strName,
 |  | ExprNode * | pArg1,
 |  | ExprNode * | pArg2 = 0 |
 | ) |  |  | [static]

Аргументы:
rNamespace - namespace, в котором непосредственно объявлен массив

Аргументы:
strName | - имя, под которым массив объявлен в namespace
pArg1 | - первый аргумент
pArg2 | - второй аргумент
Сконструировать операцию без аргументов нельзя. Если второй аргумент не указать (или указать равным 0), то будет сконструирована операция соответсвенно с указанным количеством аргументов.

ExprOper * ExprOper::createCall | ( | const NameReference & | oIter,
 |  | ExprNode * | pArg = 0 |
 | ) |  |  | [static]

Аргументы:
oIter - итератор на массив в некотором namespace

Аргументы:
pArg - аргумент
Если аргумент не указать (или указать равным 0), то будет сконструирован вызов подпрограммы без аргументов.

ExprOper * ExprOper::createCall | ( | Namespace & | rName,
 |  | const std::string & | strName,
 |  | ExprNode * | pArg1 = 0,
 |  | ExprNode * | pArg2 = 0 |
 | ) |  |  | [static]

Аргументы:
rNamespace - namespace, в котором непосредственно объявлена подпрограмма

Аргументы:
strName | - имя, под которым подпрограмма объявлена в namespace
pArg1 | - первый аргумент
pArg2 | - второй аргумент
Если не указать аргумент(ы) (или указать равными 0), то будет сконструирован вызов подпрограммы с соответствующим числом аргументов.

ExprOper * ExprOper::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает ExprNode.

Переопределяется в ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall и ExprStruct.

bool ExprOper::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Замещает ExprNode.

Переопределяется в ExprUnary, ExprBinary, ExprAssign, ExprArray и ExprStruct.

std::string ExprOper::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

Переопределяется в ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall и ExprStruct.

int ExprOper::getOperArgsCount ( ) const

Получить кол-во аргументов операции.

ExprNode * ExprOper::getOperArgByNum ( int nIndex ) const

Получить указатель на заданный по номеру аргумент.

void ExprOper::setOperArgByNum | ( | int | nIndex,
 |  | ExprNode * | pArg
 | ) |  |

Предыдущий аргумент с заданным номером будет удален.

Если аргумент с требуемым номером не существует, произойдет ошибка.

bool ExprOper::replaceArg | ( | ExprNode * | pOldArg,
 |  | ExprNode * | pNewArg
 | ) |  |

В случае, если замена выполнилась успешно, то замененный элемент удаляется.

Аргументы:
pOldArg | - аргумент, который будет заменяться.
pNewArg | - аргумент, который будет заменять.
Возвращает:
- Возвращает "true", если замена успешно произведена; "false" - в противном случае.

ExprOper::OT ExprOper::getOper ( ) const [virtual]

Получить тип операции.

OpsNewIr::ObjTypes ExprOper::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

Переопределяется в ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall и ExprStruct.

virtual std::ostream& ExprOper::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает ExprNode.

Переопределяется в ExprUnary, ExprBinary, ExprAssign, ExprArray и ExprCall.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Структура ExprOper::OperDescr

ExprOper::OperDescr

Структура ExprOper::OperDescr

Описание операции. Подробнее...

#include <Expressions.h>

Полный список членов класса

Открытые атрибуты

std::string | strPrintValue
Читабельное имя
int | nArgs
Кол-во аргументов (-1 - означает переменное кол-во аргументов).

Подробное описание

Описание операции.

Данные класса

std::string ExprOper::OperDescr::strPrintValue

Читабельное имя

int ExprOper::OperDescr::nArgs

Кол-во аргументов (-1 - означает переменное кол-во аргументов).

Объявления и описания членов структуры находятся в файле:
  • Expressions.h
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprStruct

Класс ExprStruct

Класс, представляющий обращение к структуре или объединению (операции . и ->). Подробнее...

#include <Expressions.h>

Граф наследования:ExprStruct:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
virtual ExprStruct * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprStruct * | clone (const ExprNode &exprNode) const
virtual ExprStruct * | clone (const Statement &parentStmt) const
void | setStructExpr (ExprNode *pExpr)
Аргументы:
pExpr - новое выражение

const ExprNode & | getStructExpr () const
Получить выражение слева от . или ->.
ExprNode * unsafeGetStructExpr ()
Получить выражение слева от . или ->.
void | setMemberExpr (const std::string &strMember)
Аргументы:
pArg - новый аргумент

std::string | getMemberExpr () const
Получить аргумент справа операции.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.

Открытые статические члены

static ExprStruct * | create (ExprNode *pStructExpr, const std::string &strMember)
static ExprStruct * | createPtr (ExprNode *pStructExpr, const std::string &strMember)

Подробное описание

Класс, представляющий обращение к структуре или объединению (операции . и ->).

Методы

bool ExprStruct::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Переопределяет метод предка ExprOper.

ExprStruct * ExprStruct::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

void ExprStruct::setStructExpr ( ExprNode * pExpr )

Аргументы:
pExpr - новое выражение

Старое выражение будет удалено

const ExprNode & ExprStruct::getStructExpr ( ) const

Получить выражение слева от . или ->.

ExprNode * ExprStruct::unsafeGetStructExpr ( )

Получить выражение слева от . или ->.

void ExprStruct::setMemberExpr ( const std::string & strMember )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

std::string ExprStruct::getMemberExpr ( ) const

Получить аргумент справа операции.

std::string ExprStruct::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprStruct::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс ExprUnary

Класс ExprUnary

Класс, представляющий унарную операцию. Подробнее...

#include <Expressions.h>

Граф наследования:ExprUnary:

ExprOper ExprNode IRObject Полный список членов класса

Открытые члены

virtual ExprUnary * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual ExprUnary * | clone (const ExprNode &exprNode) const
virtual ExprUnary * | clone (const Statement &parentStmt) const
virtual bool | isLValue ()
Позволяет проверить, является ли выражение l-value (not implemented yet).
void | setArg (ExprNode *pArg)
Аргументы:
pArg - новый аргумент

const ExprNode & | getArg () const
Получить аргумент операции.
ExprNode * unsafeGetArg ()
Получить аргумент операции.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static ExprUnary * | create (OT nOperator, ExprNode *pArg)
Аргументы:
nOperator - операция

Подробное описание

Класс, представляющий унарную операцию.

Методы

ExprUnary * ExprUnary::create | ( | OT | nOperator,
 |  | ExprNode * | pArg |
 | ) |  |  | [static]

Аргументы:
nOperator - операция

Аргументы:
pArg - аргумент

ExprUnary * ExprUnary::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Переопределяет метод предка ExprOper.

bool ExprUnary::isLValue ( ) [virtual]

Позволяет проверить, является ли выражение l-value (not implemented yet).

Переопределяет метод предка ExprOper.

void ExprUnary::setArg ( ExprNode * pArg )

Аргументы:
pArg - новый аргумент

Старый аргумент будет удален

const ExprNode & ExprUnary::getArg ( ) const

Получить аргумент операции.

ExprNode * ExprUnary::unsafeGetArg ( )

Получить аргумент операции.

std::string ExprUnary::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка ExprOper.

OpsNewIr::ObjTypes ExprUnary::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка ExprOper.

virtual std::ostream& ExprUnary::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка ExprOper.

Объявления и описания членов классов находятся в файлах:
  • Expressions.h
  • Expressions.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Шаблон класса ImemberwiseCloneable< T >

Шаблон класса ImemberwiseCloneable< T >

Запрещает неглубокое копирование по-умолчанию. Подробнее...

#include <IRCommon.h>

Полный список членов класса

Открытые члены

virtual T * memberwiseClone ()=0

Подробное описание

template<class T>
class ImemberwiseCloneable< T >

Запрещает неглубокое копирование по-умолчанию.

Этот макрос предназначен для сокращения написания кода для запрета компилятору генерировать конструктор копии и оператор присваивания по-умолчанию.

Предупреждения:
Следует помещать непосредственно за объявлением класса или явно в секции private
            class ExprNode
            {
                OPS_NON_COPYABLE(ExprNode)
            public:
             ...

Объявления и описания членов класса находятся в файле:
  • IRCommon.h
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс IRObject

Класс IRObject

Этот класс является базовым для многих классов, составляющих внутреннее представление. Подробнее...

#include <IRObject.h>

Граф наследования:IRObject:

ExprNode NameObject Namespace Program Statement TypeData ExprData ExprImm ExprNull ExprOper NameLabel NameSubProc NameType NameVar Block StmtBranch StmtBreak StmtContinue StmtEmpty StmtExpr StmtGoto StmtLoop StmtReturn TypeArray TypeNamed TypePtr TypeSimple TypeStruct TypeSubProc Полный список членов класса

Открытые члены

virtual std::string | dumpState () const=0
Вернуть строку с состоянием объекта.
std::string | dumpNotes ()
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
void | setNote (const std::string &strName, ImmValue *)
ImmValue * | getNote (const std::string &strName)
void | delNote (const std::string &strName)
virtual std::ostream & | C_Out (std::ostream &out) const =0
Выводит эллемент в поток (C++).
virtual std::ostream & | C_Out_Notes (std::ostream &out)

Защищенные типы

typedef std::map< std::string,
ImmValue * > 		TNotes

Защищенные члены

std::string | getAddress () const

Защищенные данные

TNotes | m_aNotes

Подробное описание

Этот класс является базовым для многих классов, составляющих внутреннее представление.

Методы

virtual std::string IRObject::dumpState ( ) const [pure virtual]

Вернуть строку с состоянием объекта.

Замещается в TypeSimple, TypePtr, TypeSubProc, TypeArray, TypeStruct, TypeNamed, ExprNull, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall, ExprStruct, NameObject, NameVar, NameType, NameLabel, NameSubProc, Namespace, Program, Block, StmtFor, StmtWhile, StmtDoWhile, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

OpsNewIr::ObjTypes IRObject::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяется в TypeSimple, TypePtr, TypeSubProc, TypeArray, TypeStruct, TypeNamed, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall, ExprStruct, NameVar, NameType, NameLabel, NameSubProc, Block, StmtFor, StmtWhile, StmtDoWhile, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

virtual std::ostream& IRObject::C_Out ( std::ostream & out ) const [pure virtual]

Выводит эллемент в поток (C++).

Замещается в TypeData, TypeSimple, TypePtr, TypeSubProc, TypeArray, TypeStruct, TypeNamed, ExprNode, ExprNull, ExprImm, ExprData, ExprOper, ExprUnary, ExprBinary, ExprAssign, ExprArray, ExprCall, NameObject, NameVar, NameType, NameLabel, NameSubProc, Namespace, Program, Statement, Block, StmtFor, StmtWhile, StmtDoWhile, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

Объявления и описания членов классов находятся в файлах:
  • IRObject.h
  • IRObject.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameIter

Класс NameIter

Итератор по области видимости. Подробнее...

#include <Namespace.h>

Полный список членов класса

Открытые члены

NameIter (const NameIter &)
NameIter (const NameReference &)
NameIter (const NameReference &, NameObject::NameKind filter)
NameIter & | operator++ ()
NameIter | operator++ (int)
NameObject * | operator-> ()
NameObject & | operator * ()
NameReference & | getNameRef ()
const NameReference & | getNameRef () const
bool | isValid () const
bool | operator== (const NameIter &nameIter) const
bool | operator!= (const NameIter &nameIter) const
const NameIter & | operator= (const NameIter &nameIter)
std::string | getName () const
NameObject::NameKind | getFilter () const
void | setNull ()

Защищенные члены

void | iterNextBoundsChecks ()

Защищенные данные

NameObject::NameKind | m_filter
NameReference | m_name

Подробное описание

Итератор по области видимости.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameLabel

Класс NameLabel

Объявление метки. Подробнее...

#include <Namespace.h>

Граф наследования:NameLabel:

NameObject IRObject Полный список членов класса

Открытые члены

virtual NameLabel * | clone () const
Statement * | getLabeledStatement () const
Получить оператор, который помечен этой меткой.
void | setLabeledStatement (Statement *pLabeled)
Установить оператор, чтобы он стал помечен этой меткой.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static NameLabel * | create (const std::string &strName, Statement *pLabeled)
static NameLabel * | create (const std::string &strName)

Защищенные члены

NameLabel (const std::string &strName, Statement *pLabeled)

Защищенные данные

Statement * | m_pLabeled

Подробное описание

Объявление метки.

Методы

Statement * NameLabel::getLabeledStatement ( ) const

Получить оператор, который помечен этой меткой.

void NameLabel::setLabeledStatement ( Statement * pLabeled )

Установить оператор, чтобы он стал помечен этой меткой.

std::string NameLabel::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка NameObject.

OpsNewIr::ObjTypes NameLabel::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& NameLabel::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка NameObject.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameObject

Класс NameObject

Именованный объект namespace. Подробнее...

#include <Namespace.h>

Граф наследования:NameObject:

IRObject NameLabel NameSubProc NameType NameVar Полный список членов класса

Открытые типы

enum | NameKind { NAME_VARIABLE = 1, NAME_TYPE, NAME_LABEL, NAME_SUBPROC }

Открытые члены

virtual NameObject * | clone () const=0
const std::string & | getName () const
Получить имя объекта области видимости.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Защищенные члены

NameObject (const std::string &strName)

Защищенные данные

std::string | m_strName

Подробное описание

Именованный объект namespace.

Методы

const std::string & NameObject::getName ( ) const

Получить имя объекта области видимости.

std::string NameObject::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

Переопределяется в NameVar, NameType, NameLabel и NameSubProc.

virtual std::ostream& NameObject::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Переопределяется в NameVar, NameType, NameLabel и NameSubProc.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс Namespace

Класс Namespace

namespace -- ярус пространства имен Подробнее...

#include <Namespace.h>

Граф наследования:Namespace:

IRObject Полный список членов класса

Открытые члены

Namespace * | clone () const
NameTypeIter | addType (const std::string &strName, TypeData *pType)
Добавить тип данных в namespace.
NameVarIter | addVariable (const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue())
Добавить переменную в namespace.
NameVarIter | addConst (const std::string &strName, TypeData *pType, ImmValue oValue)
Добавить именованную константу в namespace.
NameLabelIter | addLabel (const std::string &strName, Statement *pStatement)
Добавить метку в namespace.
NameSubProcIter | addSubProc (NameSubProc *pSubProc)
Добавить подпрограмму в namespace.
void | syncSubProc (NameSubProc *pSubProc)
Сделать ссылку в namespace тела подпрограммы на текущий namespace.
NameTypeIter | insertBeforeType (NameTypeIter insBefore, const std::string &strName, TypeData *pType)
Вставить тип данных в namespace до insBefore.
NameVarIter | insertBeforeVariable (NameVarIter insBefore, const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue())
Вставить переменную в namespace до insBefore.
NameVarIter | insertBeforeConst (NameVarIter insBefore, const std::string &strName, TypeData *pType, ImmValue oValue)
Вставить именованную константу в namespace до insBefore.
NameLabelIter | insertBeforeLabel (NameLabelIter insBefore, const std::string &strName, Statement *pStatement)
Вставить метку в namespace до insBefore.
NameSubProcIter | insertBeforeSubProc (NameSubProcIter insBefore, NameSubProc *pSubProc)
Вставить подпрограмму в namespace до insBefore.
NameTypeIter | insertAfterType (NameTypeIter insAfter, const std::string &strName, TypeData *pType)
Вставить тип данных в namespace после insAfter.
NameVarIter | insertAfterVariable (NameVarIter insAfter, const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue())
Вставить переменную в namespace после insAfter.
NameVarIter | insertAfterConst (NameVarIter insAfter, const std::string &strName, TypeData *pType, ImmValue oValue)
Вставить именованную константу в namespace после insAfter.
NameLabelIter | insertAfterLabel (NameLabelIter insAfter, const std::string &strName, Statement *pStatement)
Вставить метку в namespace после insAfter.
NameSubProcIter | insertAfterSubProc (NameSubProcIter insAfter, NameSubProc *pSubProc)
Вставить подпрограмму в namespace после insAfter.
NameSubProcIter | cloneSubProc (const NameSubProcIter &subProcIter, const std::string &newName)
Клонировать подпрограмму.
TypeNamed * | createNamedType (const std::string &strName)
Создать именованный тип на имеющийся в данном namespace по его имени.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
NameIter getNamesFirst ()
Получить итератор на первое имя в namespace.
NameIter getNamesLast ()
Получить итератор на последнее имя в namespace.
NameIter | getName (const std::string &strName) const
Получить итератор на заданное имя в namespace.
NameReference | getNameReference (const std::string &strName)
Получить ссылку на заданное имя в namespace.
int | getNamesCount () const
Получить количество имен, объявленных в namespace.
NameIter | getNameRecursive (const std::string &strName) const
Получить итератор на заданное имя в namespace (const version).
bool | hasName (const std::string &strName) const
Определить, существует ли имя в данном namespace.
bool | hasNameRecursive (const std::string &strName) const
Определить, существует ли имя в данном и/или вышестоящих namespace.
NameTypeIter | getTypesFirst ()
Получить итератор на имя первого типа в namespace.
NameTypeIter | getTypesLast ()
Получить итератор на имя последнего типа в namespace.
NameTypeIter | getType (const std::string &strName)
Получить итератор на заданное имя типа в namespace.
NameVarIter | getVarsFirst ()
Получить итератор на имя первой переменной в namespace.
NameVarIter | getVarsLast ()
Получить итератор на имя последней переменной в namespace.
NameVarIter | getVar (const std::string &strName)
Получить итератор на имя заданной переменной в namespace.
NameLabelIter | getLabelsFirst ()
Получить итератор на имя первой метки в namespace.
NameLabelIter | getLabelsLast ()
Получить итератор на имя последней метки в namespace.
NameLabelIter | getLabel (const std::string &strName)
Получить итератор на имя заданной метки в namespace.
NameSubProcIter | getSubProcsFirst ()
Получить итератор на имя первой подпрограммы в namespace.
NameSubProcIter | getSubProcsLast ()
Получить итератор на имя последней подпрограммы в namespace.
NameSubProcIter | getSubProc (const std::string &strName)
Получить итератор на имя заданной подпрограммы в namespace.
bool | isSubProcVisibleFor (const std::string &strName, NameSubProcIter &visibleFor) const
Определить, видно из подпрограммы visibleFor подпрограмму с имененм strName.
std::string | generateUniqueIdentifier (const std::string &strBase="")
Сгенерировать уникальный идентификатор.
void | erase (NameIter &iter)
Удалить имя из namespace по заданному итератору.
void | erase (const std::string &name)
Удалить заданное имя из namespace.
Namespace * getHigherNamespace ()
Получить вышележащий namespace.
const Namespace * | getHigherNamespace () const
Получить вышележащий namespace.
Program & getProgram ()
Получить программу, к которой относится namespace.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
void | setUplink (Block *pContainer, Program *program)

Защищенные типы

typedef NameReference::TNamesList | TNamesList
typedef std::map< const std::string,
NameReference::TNamesList::iterator > 		TNamesMap

Защищенные члены

Namespace (Block *pContainer, Program *program=0)
Создать ярус пространства имен.
NameVarIter | addVariable (const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue)
NameVarIter | insertBeforeVariable (NameVarIter insBefore, const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue)
NameVarIter | insertAfterVariable (NameVarIter insAfter, const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue)
void | copyFrom (const Namespace &otherNamespace)

Защищенные данные

TNamesList | m_names
TNamesMap | m_namesMap
Block * | m_pContainer
Program * | m_pProgram

Друзья

class | Block
class | Program
class | NameReference
class | NameIter

Подробное описание

namespace -- ярус пространства имен

Конструктор(ы)

Namespace::Namespace | ( | Block * | pContainer,
 |  | Program * | program = 0 |
 | ) |  |  | [protected]

Создать ярус пространства имен.

Методы

NameTypeIter Namespace::addType | ( | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Добавить тип данных в namespace.

NameVarIter Namespace::addVariable | ( | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue = ImmValue()
 | ) |  |

Добавить переменную в namespace.

NameVarIter Namespace::addConst | ( | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue
 | ) |  |

Добавить именованную константу в namespace.

NameLabelIter Namespace::addLabel | ( | const std::string & | strName,
 |  | Statement * | pStatement
 | ) |  |

Добавить метку в namespace.

NameSubProcIter Namespace::addSubProc ( NameSubProc * pSubProc )

Добавить подпрограмму в namespace.

void Namespace::syncSubProc ( NameSubProc * pSubProc )

Сделать ссылку в namespace тела подпрограммы на текущий namespace.

NameTypeIter Namespace::insertBeforeType | ( | NameTypeIter | insBefore,
 |  | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Вставить тип данных в namespace до insBefore.

NameVarIter Namespace::insertBeforeVariable | ( | NameVarIter | insBefore,
 |  | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue = ImmValue()
 | ) |  |

Вставить переменную в namespace до insBefore.

NameVarIter Namespace::insertBeforeConst | ( | NameVarIter | insBefore,
 |  | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue
 | ) |  |

Вставить именованную константу в namespace до insBefore.

NameLabelIter Namespace::insertBeforeLabel | ( | NameLabelIter | insBefore,
 |  | const std::string & | strName,
 |  | Statement * | pStatement
 | ) |  |

Вставить метку в namespace до insBefore.

NameSubProcIter Namespace::insertBeforeSubProc | ( | NameSubProcIter | insBefore,
 |  | NameSubProc * | pSubProc
 | ) |  |

Вставить подпрограмму в namespace до insBefore.

NameTypeIter Namespace::insertAfterType | ( | NameTypeIter | insAfter,
 |  | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Вставить тип данных в namespace после insAfter.

NameVarIter Namespace::insertAfterVariable | ( | NameVarIter | insAfter,
 |  | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue = ImmValue()
 | ) |  |

Вставить переменную в namespace после insAfter.

NameVarIter Namespace::insertAfterConst | ( | NameVarIter | insAfter,
 |  | const std::string & | strName,
 |  | TypeData * | pType,
 |  | ImmValue | oValue
 | ) |  |

Вставить именованную константу в namespace после insAfter.

NameLabelIter Namespace::insertAfterLabel | ( | NameLabelIter | insAfter,
 |  | const std::string & | strName,
 |  | Statement * | pStatement
 | ) |  |

Вставить метку в namespace после insAfter.

NameSubProcIter Namespace::insertAfterSubProc | ( | NameSubProcIter | insAfter,
 |  | NameSubProc * | pSubProc
 | ) |  |

Вставить подпрограмму в namespace после insAfter.

NameSubProcIter Namespace::cloneSubProc | ( | const NameSubProcIter & | subProcIter,
 |  | const std::string & | newName
 | ) |  |

Клонировать подпрограмму.

TypeNamed * Namespace::createNamedType ( const std::string & strName )

Создать именованный тип на имеющийся в данном namespace по его имени.

std::string Namespace::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

NameIter Namespace::getNamesFirst ( )

Получить итератор на первое имя в namespace.

NameIter Namespace::getNamesLast ( )

Получить итератор на последнее имя в namespace.

NameIter Namespace::getName ( const std::string & strName ) const

Получить итератор на заданное имя в namespace.

NameReference Namespace::getNameReference ( const std::string & strName )

Получить ссылку на заданное имя в namespace.

int Namespace::getNamesCount ( ) const

Получить количество имен, объявленных в namespace.

NameIter Namespace::getNameRecursive ( const std::string & strName ) const

Получить итератор на заданное имя в namespace (const version).

bool Namespace::hasName ( const std::string & strName ) const

Определить, существует ли имя в данном namespace.

bool Namespace::hasNameRecursive ( const std::string & strName ) const

Определить, существует ли имя в данном и/или вышестоящих namespace.

NameTypeIter Namespace::getTypesFirst ( )

Получить итератор на имя первого типа в namespace.

NameTypeIter Namespace::getTypesLast ( )

Получить итератор на имя последнего типа в namespace.

NameTypeIter Namespace::getType ( const std::string & strName )

Получить итератор на заданное имя типа в namespace.

NameVarIter Namespace::getVarsFirst ( )

Получить итератор на имя первой переменной в namespace.

NameVarIter Namespace::getVarsLast ( )

Получить итератор на имя последней переменной в namespace.

NameVarIter Namespace::getVar ( const std::string & strName )

Получить итератор на имя заданной переменной в namespace.

NameLabelIter Namespace::getLabelsFirst ( )

Получить итератор на имя первой метки в namespace.

NameLabelIter Namespace::getLabelsLast ( )

Получить итератор на имя последней метки в namespace.

NameLabelIter Namespace::getLabel ( const std::string & strName )

Получить итератор на имя заданной метки в namespace.

NameSubProcIter Namespace::getSubProcsFirst ( )

Получить итератор на имя первой подпрограммы в namespace.

NameSubProcIter Namespace::getSubProcsLast ( )

Получить итератор на имя последней подпрограммы в namespace.

NameSubProcIter Namespace::getSubProc ( const std::string & strName )

Получить итератор на имя заданной подпрограммы в namespace.

bool Namespace::isSubProcVisibleFor | ( | const std::string & | strName,
 |  | NameSubProcIter & | visibleFor |
 | ) |  |  | const

Определить, видно из подпрограммы visibleFor подпрограмму с имененм strName.

std::string Namespace::generateUniqueIdentifier ( const std::string & strBase = "" )

Сгенерировать уникальный идентификатор.

void Namespace::erase ( NameIter & iter )

Удалить имя из namespace по заданному итератору.

void Namespace::erase ( const std::string & name )

Удалить заданное имя из namespace.

Namespace * Namespace::getHigherNamespace ( )

Получить вышележащий namespace.

const Namespace * Namespace::getHigherNamespace ( ) const

Получить вышележащий namespace.

Program & Namespace::getProgram ( )

Получить программу, к которой относится namespace.

virtual std::ostream& Namespace::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameSubProc

Класс NameSubProc

Объявление подпрограммы. Подробнее...

#include <Namespace.h>

Граф наследования:NameSubProc:

NameObject IRObject Полный список членов класса

Открытые члены

bool | isPrototype () const
Является ли это объявлением подпрограммы лишь объявлением прототипа
void | setToPrototype ()
Установить объявление прототипом.
TypeSubProc & getPrototype ()
Получить прототип.
const TypeSubProc & | getPrototype () const
Получить константный прототип.
Block & getBody ()
Получить тело подпрограммы (для объвленного только прототипа возникнет ошибка).
const Block & | getBody () const
Получить тело подпрограммы (для объвленного только прототипа возникнет ошибка).
void | setPrototype (TypeSubProc *pPrototype)
Установить прототип.
void | setBody (Block *pBody, bool sync=true)
Установить тело подпрограммы.
void | syncNamespace ()
Это очень важный метод.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static NameSubProc * | create (const std::string &strName, TypeSubProc *pPrototype, bool bIsPrototype=false)
Аргументы:
strName - имя подпрограммы

Защищенные члены

virtual NameSubProc * | clone () const
NameSubProc (const std::string &strName, TypeSubProc *pPrototype, bool bIsPrototype)

Защищенные данные

TypeSubProc * | m_pPrototype
Block * | m_pBody
bool | m_isPrototype

Подробное описание

Объявление подпрограммы.

Методы

NameSubProc * NameSubProc::create | ( | const std::string & | strName,
 |  | TypeSubProc * | pPrototype,
 |  | bool | bIsPrototype = false |
 | ) |  |  | [static]

Аргументы:
strName - имя подпрограммы

Аргументы:
pProtorype | - прототип подпрограммы
bIsPrototype | - true - это объявление является лишь прототипом программы. false - объявляет подпрограмму с пустым телом

bool NameSubProc::isPrototype ( ) const

Является ли это объявлением подпрограммы лишь объявлением прототипа

void NameSubProc::setToPrototype ( )

Установить объявление прототипом.

TypeSubProc & NameSubProc::getPrototype ( )

Получить прототип.

const TypeSubProc & NameSubProc::getPrototype ( ) const

Получить константный прототип.

Block & NameSubProc::getBody ( )

Получить тело подпрограммы (для объвленного только прототипа возникнет ошибка).

const Block & NameSubProc::getBody ( ) const

Получить тело подпрограммы (для объвленного только прототипа возникнет ошибка).

void NameSubProc::setPrototype ( TypeSubProc * pPrototype )

Установить прототип.

void NameSubProc::setBody | ( | Block * | pBody,
 |  | bool | sync = true
 | ) |  |

Установить тело подпрограммы.

void NameSubProc::syncNamespace ( )

Это очень важный метод.

Он осуществляет синхронизацию параметров подпрограммы с namespace ее тела. После изменения прототипа или замене тела подпрограммы обязательно вызовите этот метод, чтобы добавить объявления всех параметров в namespace тела подпрограммы

std::string NameSubProc::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка NameObject.

OpsNewIr::ObjTypes NameSubProc::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& NameSubProc::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка NameObject.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameType

Класс NameType

Объявление типа. Подробнее...

#include <Namespace.h>

Граф наследования:NameType:

NameObject IRObject Полный список членов класса

Открытые члены

virtual NameType * | clone () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
const TypeData & | getType () const
void | setType (TypeData *pType)
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static NameType * | create (const std::string &strName, TypeData *pType)

Защищенные члены

NameType (const std::string &strName, TypeData *pType)

Защищенные данные

TypeData * | m_pType

Подробное описание

Объявление типа.

Методы

std::string NameType::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка NameObject.

OpsNewIr::ObjTypes NameType::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& NameType::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка NameObject.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс NameVar

Класс NameVar

Объявление переменной. Подробнее...

#include <Namespace.h>

Граф наследования:NameVar:

NameObject IRObject Полный список членов класса

Открытые члены

virtual NameVar * | clone () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
void | setType (TypeData *pType)
Установить тип переменной.
TypeData * | getType () const
Получить тип переменной.
bool | isConst () const
Определить, является ли переменная на самом деле константой.
const ImmValue & | getValue () const
Получить значение переменной.
void | setValue (const ImmValue &value)
Установить значение переменной.
bool | isArgument () const
Определить, является ли переменная параметром подпрограммы.
void | setArgumentState (bool isArgument)
Установить для переменной статус параметра подпрограммы.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static NameVar * | create (const std::string &strName, TypeData *pType, bool isConst=false, ImmValue oValue=ImmValue())

Защищенные члены

NameVar (const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue=ImmValue())

Защищенные данные

TypeData * | m_pVarType
bool | m_bIsConst
bool | m_bIsArgument
ImmValue | m_oValue

Подробное описание

Объявление переменной.

Методы

std::string NameVar::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Переопределяет метод предка NameObject.

void NameVar::setType ( TypeData * pType )

Установить тип переменной.

TypeData * NameVar::getType ( ) const

Получить тип переменной.

bool NameVar::isConst ( ) const

Определить, является ли переменная на самом деле константой.

const ImmValue & NameVar::getValue ( ) const

Получить значение переменной.

void NameVar::setValue ( const ImmValue & value )

Установить значение переменной.

bool NameVar::isArgument ( ) const

Определить, является ли переменная параметром подпрограммы.

Параметры, передаваемые в подпрограмму представляют определенные проблемы для разрешения области видимости. Их использование и область видимости такие же, как и у обычных локальных переменных, но например при выводе ВП в Си, для локальных переменных следует генерировать определение, в то время как для параметров подпрограмм этого делать не следует.

Таким образом, этот метод позволяет для любой переменной namespace определить, является ли она локальной переменной, определенной в namespace или же является параметром подпрограммы, "спроцеированным" в этот namespace.

void NameVar::setArgumentState ( bool isArgument )

Установить для переменной статус параметра подпрограммы.

OpsNewIr::ObjTypes NameVar::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& NameVar::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Переопределяет метод предка NameObject.

Объявления и описания членов классов находятся в файлах:
  • Namespace.h
  • Namespace.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс Program

Класс Program

Класс программы (единица трансляции). Подробнее...

#include <Program.h>

Граф наследования:Program:

IRObject Полный список членов класса

Открытые члены

Program (const std::string &strFile)
Program * | clone () const
std::string | getSourcePath () const
Namespace & | getGlobals ()
Block & | getMainBlock ()
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Защищенные члены

void | createTestArrayTypes ()
void | createTestPtrTypes ()
void | createTestSimpleTypes ()
void | createTestStructTypes ()
void | createTestSubProcTypes ()
void | createTestArrayVariables ()
void | createTestPtrVariables ()
void | createTestSimpleVariables ()
void | createTestSimpleExprs ()
void | createTestModifiers ()

Защищенные данные

std::string | m_strSourcePath
Namespace | m_oGlobals

Подробное описание

Класс программы (единица трансляции).

Методы

std::string Program::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

virtual std::ostream& Program::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Объявления и описания членов классов находятся в файлах:
  • Program.h
  • Program.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс Statement

Класс Statement

Этот класс используется как базовый для определения классов-крпичиков из которых строится программа. Подробнее...

#include <Statements.h>

Граф наследования:Statement:

IRObject Block StmtBranch StmtBreak StmtContinue StmtEmpty StmtExpr StmtGoto StmtLoop StmtReturn Полный список членов класса

Открытые типы

typedef std::list< Statement * > | TStmtList
typedef ListIter< Statement,
TStmtList > 		Iterator
typedef ConstListIter< Statement,
TStmtList > 		ConstIterator

Открытые члены

virtual Statement * | clone () const=0
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual Statement * | clone (Statement &stmt) const
Iterator | getThisInBlock ()
Получить итератор на этот оператор в вышележащем блоке.
Iterator | getComprehBlock ()
Получить итератор на вышележащий блок.
Block * getAsBlock ()
Попытаться привести этот опреатор к блоку операторов (0 - невозможно привести).
const Block * | getAsBlock () const
StmtIf * getAsIf ()
Попытаться привести этот опреатор к условному оператору (0 - невозможно привести).
const StmtIf * | getAsIf () const
StmtFor * getAsFor ()
Попытаться привести этот опреатор к оператору For (0 - невозможно привести).
const StmtFor * | getAsFor () const
StmtWhile * getAsWhile ()
Попытаться привести этот опреатор к оператору While (0 - невозможно привести).
const StmtWhile * | getAsWhile () const
StmtDoWhile * getAsDoWhile ()
Попытаться привести этот опреатор к оператору Do While (0 - невозможно привести).
const StmtDoWhile * | getAsDoWhile () const
StmtSwitch * getAsSwitch ()
Попытаться привести этот опреатор к оператору Switch (0 - невозможно привести).
const StmtSwitch * | getAsSwitch () const
StmtGoto * getAsGoto ()
Попытаться привести этот опреатор к оператору Goto (0 - невозможно привести).
const StmtGoto * | getAsGoto () const
StmtEmpty * getAsEmpty ()
Попытаться привести этот опреатор к пустому оператору (0 - невозможно привести).
const StmtEmpty * | getAsEmpty () const
StmtExpr * getAsExpr ()
Попытаться привести этот опреатор к оператору-выражению (0 - невозможно привести).
const StmtExpr * | getAsExpr () const
StmtReturn * getAsReturn ()
Попытаться привести этот опреатор к оператору Return (0 - невозможно привести).
const StmtReturn * | getAsReturn () const
void | setParentStmt (Statement &statement)
Установить аплинк (вышележащий оператор для оператора).
void | setParentStmtNull ()
Block * getParentBlock ()
Получить вышележащий блок для оператора.
const Block * | getParentBlock () const
bool | hasParentNamespace () const
Проверить, есть ли у оператора ссылка на область видимости.
Statement * | getParentStmt () const
Получить оператор, в который непосредственно вложен (uplink - не всегда блок!).
bool | hasParentStmt () const
Проверить имеется ли у данного оператора родительский оператор.
NameSubProcIter | getStatementParentSubProc () const
virtual bool | isIntBlockValid (int nPos)=0
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int nPos)=0
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()=0
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()=0
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const =0
Выводит эллемент в поток (C++).

Подробное описание

Этот класс используется как базовый для определения классов-крпичиков из которых строится программа.

Используется шаблон "Composite" [GoF]. Для каждого типа операторов используется свой класс. Объекты этих классов комбинируются и получается древовидная структура, однозначно определяющая программу.

Заметки:
Ответственность за удаление своих потомков берет на себя класс-контейнер.
Если в какой-то части системы нужно сделать указание на произвольный оператор, то следует воспользоваться указателем как раз на этот класс.

Методы

virtual Statement* Statement::clone ( ) const [pure virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещается в Block, StmtFor, StmtWhile, StmtDoWhile, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

Statement::Iterator Statement::getThisInBlock ( )

Получить итератор на этот оператор в вышележащем блоке.

Statement::Iterator Statement::getComprehBlock ( )

Получить итератор на вышележащий блок.

Block * Statement::getAsBlock ( )

Попытаться привести этот опреатор к блоку операторов (0 - невозможно привести).

StmtIf * Statement::getAsIf ( )

Попытаться привести этот опреатор к условному оператору (0 - невозможно привести).

StmtFor * Statement::getAsFor ( )

Попытаться привести этот опреатор к оператору For (0 - невозможно привести).

StmtWhile * Statement::getAsWhile ( )

Попытаться привести этот опреатор к оператору While (0 - невозможно привести).

StmtDoWhile * Statement::getAsDoWhile ( )

Попытаться привести этот опреатор к оператору Do While (0 - невозможно привести).

StmtSwitch * Statement::getAsSwitch ( )

Попытаться привести этот опреатор к оператору Switch (0 - невозможно привести).

StmtGoto * Statement::getAsGoto ( )

Попытаться привести этот опреатор к оператору Goto (0 - невозможно привести).

StmtEmpty * Statement::getAsEmpty ( )

Попытаться привести этот опреатор к пустому оператору (0 - невозможно привести).

StmtExpr * Statement::getAsExpr ( )

Попытаться привести этот опреатор к оператору-выражению (0 - невозможно привести).

StmtReturn * Statement::getAsReturn ( )

Попытаться привести этот опреатор к оператору Return (0 - невозможно привести).

void Statement::setParentStmt ( Statement & statement )

Установить аплинк (вышележащий оператор для оператора).

Block * Statement::getParentBlock ( )

Получить вышележащий блок для оператора.

bool Statement::hasParentNamespace ( ) const

Проверить, есть ли у оператора ссылка на область видимости.

Фактически, функция определяет, вложен ли оператор в какой-либо блок. Если вложен, следовательно он имеет область видимости (область видимости этого блока)

Statement * Statement::getParentStmt ( ) const

Получить оператор, в который непосредственно вложен (uplink - не всегда блок!).

bool Statement::hasParentStmt ( ) const

Проверить имеется ли у данного оператора родительский оператор.

virtual bool Statement::isIntBlockValid ( int nPos ) [pure virtual]

Допустим ли подоператор с таким номером.

Замещается в Block, StmtLoop, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

virtual Statement* Statement::getIntBlock ( int nPos ) [pure virtual]

Получить подоператор с таким номером.

Замещается в Block, StmtLoop, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

virtual bool Statement::isDeepViewNeed ( ) [pure virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещается в Block, StmtLoop, StmtBranch, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

virtual int Statement::getMaxInt ( ) [pure virtual]

Получить максимальный номер подоператора.

Замещается в Block, StmtLoop, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

virtual std::ostream& Statement::C_Out ( std::ostream & out ) const [pure virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Замещается в Block, StmtFor, StmtWhile, StmtDoWhile, StmtIf, StmtSwitch, StmtGoto, StmtEmpty, StmtExpr, StmtReturn, StmtBreak и StmtContinue.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtBranch

Класс StmtBranch

Базовый оператор ветвлений. Подробнее...

#include <Statements.h>

Граф наследования:StmtBranch:

Statement IRObject StmtIf StmtSwitch Полный список членов класса

Открытые члены

virtual bool isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.

Подробное описание

Базовый оператор ветвлений.

Методы

virtual bool StmtBranch::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

Переопределяется в StmtIf и StmtSwitch.

Объявления и описания членов класса находятся в файле:
  • Statements.h
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtBreak

Класс StmtBreak

Оператор break. Подробнее...

#include <Statements.h>

Граф наследования:StmtBreak:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtBreak * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtBreak * | create ()
Сконструировать оператор break.

Подробное описание

Оператор break.

Методы

StmtBreak * StmtBreak::create ( ) [static]

Сконструировать оператор break.

StmtBreak * StmtBreak::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtBreak::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtBreak::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtBreak::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtBreak::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtBreak::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtBreak::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtBreak::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtContinue

Класс StmtContinue

Оператор continue. Подробнее...

#include <Statements.h>

Граф наследования:StmtContinue:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtContinue * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtContinue * | create ()
Сконструировать оператор break.

Подробное описание

Оператор continue.

Методы

StmtContinue * StmtContinue::create ( ) [static]

Сконструировать оператор break.

StmtContinue * StmtContinue::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtContinue::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtContinue::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtContinue::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtContinue::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtContinue::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtContinue::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtContinue::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtDoWhile

Класс StmtDoWhile

Оператор Do..While. Подробнее...

#include <Statements.h>

Граф наследования:StmtDoWhile:

StmtLoop Statement IRObject Полный список членов класса

Открытые члены

virtual StmtDoWhile * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtDoWhile * | clone (Statement &stmt) const
void | setCondition (ExprNode *pCondition)
Заменить условие на заданное.
ExprNode * getCondition ()
Получить условие оператора.
const ExprNode & | getCondition () const
Получить условие оператора.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtDoWhile * | create (ExprNode *pCondition)
Сконструировать оператор DoWhile.
static StmtDoWhile * | create ()
Сконструировать пустой оператор DoWhile.

Защищенные члены

StmtDoWhile (ExprNode *pCond)

Защищенные данные

ExprNode * | m_pCondition

Подробное описание

Оператор Do..While.

Методы

StmtDoWhile * StmtDoWhile::create ( ExprNode * pCondition ) [static]

Сконструировать оператор DoWhile.

StmtDoWhile * StmtDoWhile::create ( ) [static]

Сконструировать пустой оператор DoWhile.

StmtDoWhile * StmtDoWhile::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

void StmtDoWhile::setCondition ( ExprNode * pCondition )

Заменить условие на заданное.

ExprNode * StmtDoWhile::getCondition ( )

Получить условие оператора.

const ExprNode & StmtDoWhile::getCondition ( ) const

Получить условие оператора.

std::string StmtDoWhile::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtDoWhile::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& StmtDoWhile::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtEmpty

Класс StmtEmpty

Пустой оператор. Подробнее...

#include <Statements.h>

Граф наследования:StmtEmpty:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtEmpty * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtEmpty * | create ()
Сконструировать пустой оператор.

Подробное описание

Пустой оператор.

Методы

StmtEmpty * StmtEmpty::create ( ) [static]

Сконструировать пустой оператор.

StmtEmpty * StmtEmpty::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtEmpty::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtEmpty::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtEmpty::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtEmpty::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtEmpty::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtEmpty::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtEmpty::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtExpr

Класс StmtExpr

Этот класс представляет заглушку для вставки выражений в программу. Подробнее...

#include <Statements.h>

Граф наследования:StmtExpr:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtExpr * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtExpr * | clone (Statement &stmt) const
void | setExpr (ExprNode *pHostedExpr)
ExprNode * | getExpr ()
const ExprNode & | getExpr () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtExpr * | create (ExprNode *pHostedExpr)
Сконструировать оператор с заданным выражением.
static StmtExpr * | createAssign (ExprNode *pLeft, ExprNode *pRight)
Сконструировать опреатор присваивания.

Защищенные члены

StmtExpr (ExprNode *pHostedExpr)

Защищенные статические члены

static StmtExpr * | create ()

Защищенные данные

ExprNode * | m_pHostedExpr

Подробное описание

Этот класс представляет заглушку для вставки выражений в программу.

Методы

StmtExpr * StmtExpr::create ( ExprNode * pHostedExpr ) [static]

Сконструировать оператор с заданным выражением.

StmtExpr * StmtExpr::createAssign | ( | ExprNode * | pLeft,
 |  | ExprNode * | pRight |
 | ) |  |  | [static]

Сконструировать опреатор присваивания.

StmtExpr * StmtExpr::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtExpr::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtExpr::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtExpr::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtExpr::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtExpr::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtExpr::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtExpr::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtFor

Класс StmtFor

Оператор For. Подробнее...

#include <Statements.h>

Граф наследования:StmtFor:

StmtLoop Statement IRObject Полный список членов класса

Открытые члены

virtual StmtFor * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtFor * | clone (Statement &stmt) const
void | setInit (ExprNode *pExpr)
void | setCond (ExprNode *pExpr)
void | setIncr (ExprNode *pExpr)
ExprNode * | getInit ()
ExprNode * | getCond ()
ExprNode * | getIncr ()
const ExprNode & | getInit () const
const ExprNode & | getCond () const
const ExprNode & | getIncr () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtFor * | create (ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr)
Сконструировать оператор For.
static StmtFor * | create ()
Сконструировать пустой оператор For.

Защищенные члены

StmtFor (ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr)

Защищенные данные

ExprNode * | m_pInit
ExprNode * | m_pCond
ExprNode * | m_pIncr

Подробное описание

Оператор For.

Методы

StmtFor * StmtFor::create | ( | ExprNode * | pInit,
 |  | ExprNode * | pCond,
 |  | ExprNode * | pIncr |
 | ) |  |  | [static]

Сконструировать оператор For.

StmtFor * StmtFor::create ( ) [static]

Сконструировать пустой оператор For.

StmtFor * StmtFor::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtFor::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtFor::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& StmtFor::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtGoto

Класс StmtGoto

Оператор безусловного перехода. Подробнее...

#include <Statements.h>

Граф наследования:StmtGoto:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtGoto * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
void | setLabel (NameLabel *pLabel)
NameLabel * | getLabel ()
const NameLabel & | getLabel () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtGoto * | create ()
static StmtGoto * | create (NameLabel *pLabel)

Защищенные члены

StmtGoto (NameLabel *pLabel)

Защищенные данные

NameLabel * | m_pLabel

Подробное описание

Оператор безусловного перехода.

Методы

StmtGoto * StmtGoto::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtGoto::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtGoto::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtGoto::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtGoto::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtGoto::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtGoto::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtGoto::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtIf

Класс StmtIf

Условный оператор. Подробнее...

#include <Statements.h>

Граф наследования:StmtIf:

StmtBranch Statement IRObject Полный список членов класса

Открытые члены

virtual StmtIf * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtIf * | clone (Statement &stmt) const
void | setCondition (ExprNode *pCondition)
Заменить условие на заданное.
ExprNode * getCondition ()
Получить условие оператора.
const ExprNode & | getCondition () const
Получить условие оператора.
Block & getThenRef ()
Получить блок по ветке then.
Block & getElseRef ()
Получить блок по ветке else.
const Block & | getThenRef () const
Получить блок по ветке then.
const Block & | getElseRef () const
Получить блок по ветке else.
void | setThenBlock (Block *pBlock)
Установить блок по ветке then.
void | setElseBlock (Block *pBlock)
Установить блок по ветке else.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual bool | isIntBlockValid (int nPos)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int nPos)
Получить подоператор с таким номером.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtIf * | create (ExprNode *pCondition)
Сконструировать условный оператор.

Защищенные члены

StmtIf (ExprNode *pCondition)

Защищенные данные

ExprNode * | m_pCondition
Block * | m_pThen
Block * | m_pElse

Подробное описание

Условный оператор.

Методы

StmtIf * StmtIf::create ( ExprNode * pCondition ) [static]

Сконструировать условный оператор.

StmtIf * StmtIf::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

void StmtIf::setCondition ( ExprNode * pCondition )

Заменить условие на заданное.

ExprNode * StmtIf::getCondition ( )

Получить условие оператора.

const ExprNode & StmtIf::getCondition ( ) const

Получить условие оператора.

Block & StmtIf::getThenRef ( )

Получить блок по ветке then.

Block & StmtIf::getElseRef ( )

Получить блок по ветке else.

const Block & StmtIf::getThenRef ( ) const

Получить блок по ветке then.

const Block & StmtIf::getElseRef ( ) const

Получить блок по ветке else.

void StmtIf::setThenBlock ( Block * pBlock )

Установить блок по ветке then.

void StmtIf::setElseBlock ( Block * pBlock )

Установить блок по ветке else.

std::string StmtIf::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtIf::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtIf::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Переопределяет метод предка StmtBranch.

bool StmtIf::isIntBlockValid ( int nPos ) [virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

Statement * StmtIf::getIntBlock ( int nPos ) [virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual int StmtIf::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtIf::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtLoop

Класс StmtLoop

Базовый оператор циклов. Подробнее...

#include <Statements.h>

Граф наследования:StmtLoop:

Statement IRObject StmtDoWhile StmtFor StmtWhile Полный список членов класса

Открытые члены

virtual Block & | getBodyRef ()
virtual const Block & | getBodyRef () const
virtual void | setNewBody (Block *body)
virtual Namespace & | getNamespace ()
virtual const Namespace & | getNamespace () const
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual bool | isIntBlockValid (int nPos)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int nPos)
Получить подоператор с таким номером.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.

Защищенные данные

Block * | m_pBody

Подробное описание

Базовый оператор циклов.

Методы

virtual bool StmtLoop::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

bool StmtLoop::isIntBlockValid ( int nPos ) [virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

Statement * StmtLoop::getIntBlock ( int nPos ) [virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual int StmtLoop::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtReturn

Класс StmtReturn

Оператор return. Подробнее...

#include <Statements.h>

Граф наследования:StmtReturn:

Statement IRObject Полный список членов класса

Открытые члены

virtual StmtReturn * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtReturn * | clone (Statement &stmt) const
void | setExpr (ExprNode *pHostedExpr)
ExprNode * | getExpr ()
const ExprNode & | getExpr () const
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isIntBlockValid (int)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int)
Получить подоператор с таким номером.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtReturn * | create (ExprNode *pHostedExpr)
Сконструировать оператор return с заданным выражением.

Защищенные члены

StmtReturn (ExprNode *pHostedExpr)

Защищенные данные

ExprNode * | m_pHostedExpr

Подробное описание

Оператор return.

Методы

StmtReturn * StmtReturn::create ( ExprNode * pHostedExpr ) [static]

Сконструировать оператор return с заданным выражением.

StmtReturn * StmtReturn::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtReturn::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtReturn::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtReturn::isIntBlockValid ( int ) [inline, virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

virtual Statement* StmtReturn::getIntBlock ( int ) [inline, virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual bool StmtReturn::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Замещает Statement.

virtual int StmtReturn::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtReturn::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtSwitch

Класс StmtSwitch

Оператор Switch. Подробнее...

#include <Statements.h>

Граф наследования:StmtSwitch:

StmtBranch Statement IRObject Полный список членов класса

Открытые члены

virtual StmtSwitch * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtSwitch * | clone (Statement &stmt) const
void | setCondition (ExprNode *pCondition)
ExprNode * | getCondition ()
const ExprNode & | getCondition () const
Block & | getBlockRef (int nCase)
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual bool | isDeepViewNeed ()
Необходимо ли просматривать в глубину данный оператор.
virtual bool | isIntBlockValid (int nPos)
Допустим ли подоператор с таким номером.
virtual Statement * | getIntBlock (int nPos)
Получить подоператор с таким номером.
virtual int | getMaxInt ()
Получить максимальный номер подоператора.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtSwitch * | create (ExprNode *pCondition)

Защищенные типы

typedef std::map< int, Block * > | TCases

Защищенные члены

StmtSwitch (ExprNode *pCondition)
void | addCase (int nCase, Block *pBlock)

Защищенные данные

ExprNode * | m_pCondition
TCases | m_aCases

Подробное описание

Оператор Switch.

Методы

StmtSwitch * StmtSwitch::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

std::string StmtSwitch::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtSwitch::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual bool StmtSwitch::isDeepViewNeed ( ) [inline, virtual]

Необходимо ли просматривать в глубину данный оператор.

Переопределяет метод предка StmtBranch.

bool StmtSwitch::isIntBlockValid ( int nPos ) [virtual]

Допустим ли подоператор с таким номером.

Замещает Statement.

Statement * StmtSwitch::getIntBlock ( int nPos ) [virtual]

Получить подоператор с таким номером.

Замещает Statement.

virtual int StmtSwitch::getMaxInt ( ) [inline, virtual]

Получить максимальный номер подоператора.

Замещает Statement.

virtual std::ostream& StmtSwitch::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс StmtWhile

Класс StmtWhile

Оператор While. Подробнее...

#include <Statements.h>

Граф наследования:StmtWhile:

StmtLoop Statement IRObject Полный список членов класса

Открытые члены

virtual StmtWhile * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual StmtWhile * | clone (Statement &stmt) const
void | setCondition (ExprNode *pCondition)
Заменить условие на заданное.
ExprNode * getCondition ()
Получить условие оператора.
const ExprNode & | getCondition () const
Получить условие оператора.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).

Открытые статические члены

static StmtWhile * | create (ExprNode *pCondition)
Сконструировать оператор While.
static StmtWhile * | create ()
Сконструировать пустой оператор While.

Защищенные члены

StmtWhile (ExprNode *pCond)

Защищенные данные

ExprNode * | m_pCondition

Подробное описание

Оператор While.

Методы

StmtWhile * StmtWhile::create ( ExprNode * pCondition ) [static]

Сконструировать оператор While.

StmtWhile * StmtWhile::create ( ) [static]

Сконструировать пустой оператор While.

StmtWhile * StmtWhile::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает Statement.

void StmtWhile::setCondition ( ExprNode * pCondition )

Заменить условие на заданное.

ExprNode * StmtWhile::getCondition ( )

Получить условие оператора.

const ExprNode & StmtWhile::getCondition ( ) const

Получить условие оператора.

std::string StmtWhile::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes StmtWhile::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

virtual std::ostream& StmtWhile::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает Statement.

Объявления и описания членов классов находятся в файлах:
  • Statements.h
  • Statements.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeArray

Класс TypeArray

Этот класс предназначен для представления массива. Подробнее...

#include <DataTypes.h>

Граф наследования:TypeArray:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые члены

TypeArray * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
int | getDimsCount () const
Limits & | operator[] (int index)
const Limits & | operator[] (int index) const
void | setBaseType (TypeData *base)
TypeData * | getBaseType ()
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
std::ostream & | C_Out_Dims (std::ostream &out)
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypeArray * | create (TypeData *pBase, Limits firstDim)
Аргументы:
pBase - базовый для массива тип

static TypeArray * | create (TypeData *pBase, Limits firstDim, Limits secondDim)
Аргументы:
pBase - базовый для массива тип

static TypeArray * | create (TypeData *pBase, std::vector< Limits > aDims)
Аргументы:
pBase - базовый для массива тип

Защищенные данные

TypeData * | m_pBase
std::vector< Limits > | m_aDims

Классы

struct | Limits
Эта структура определяет пределы измерения массива. Подробнее...

Подробное описание

Этот класс предназначен для представления массива.

При конструировании объекта передаваться тип, который определяет базовое значение типа для массива.

Методы

TypeArray * TypeArray::create | ( | TypeData * | pBase,
 |  | Limits | firstDim |
 | ) |  |  | [static]

Аргументы:
pBase - базовый для массива тип

Аргументы:
firstDim - пределы массива

TypeArray * TypeArray::create | ( | TypeData * | pBase,
 |  | Limits | firstDim,
 |  | Limits | secondDim |
 | ) |  |  | [static]

Аргументы:
pBase - базовый для массива тип

Аргументы:
firstDim | - пределы первого измерения
secondDim | - пределы второго измерения

TypeArray * TypeArray::create | ( | TypeData * | pBase,
 |  | std::vector< Limits > | aDims |
 | ) |  |  | [static]

Аргументы:
pBase - базовый для массива тип

Аргументы:
aDims - пределы всех измерений массива

TypeArray * TypeArray::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает TypeData.

std::string TypeArray::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypeArray::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypeArray::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

virtual std::ostream& TypeArray::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Структура TypeArray::Limits

TypeArray::Limits

Структура TypeArray::Limits

Эта структура определяет пределы измерения массива. Подробнее...

#include <DataTypes.h>

Полный список членов класса

Открытые члены

Limits ()
Создать пределы "по-умолчанию".
Limits (int aLow, int aHigh)
Создать пределы в формате Паскаля [aLow..aHigh].
Limits (int aHigh)
Создать пределы в формате Си [0..aHigh - 1].
operator== (const Limits &lim) const
operator!= (const Limits &lim) const

Открытые атрибуты

int | low
int | high

Подробное описание

Эта структура определяет пределы измерения массива.

Конструктор(ы)

TypeArray::Limits::Limits ( ) [inline]

Создать пределы "по-умолчанию".

TypeArray::Limits::Limits | ( | int | aLow,
 |  | int | aHigh |
 | ) |  |  | [inline]

Создать пределы в формате Паскаля [aLow..aHigh].

TypeArray::Limits::Limits ( int aHigh ) [inline]

Создать пределы в формате Си [0..aHigh - 1].

Объявления и описания членов структуры находятся в файле:
  • DataTypes.h
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeData

Класс TypeData

Базовый класс для определения типов данных. Подробнее...

#include <DataTypes.h>

Граф наследования:TypeData:

IRObject ImemberwiseCloneable< TypeData > TypeArray TypeNamed TypePtr TypeSimple TypeStruct TypeSubProc Полный список членов класса

Открытые типы

enum StorageClassSpecifier {
STORAGE_CLASS_NONE = 0, STORAGE_CLASS_AUTO = 1, STORAGE_CLASS_REGISTER, STORAGE_CLASS_STATIC,
STORAGE_CLASS_EXTERN
}
Спецификатор класса памяти. Подробнее...

Открытые члены

virtual TypeData * | clone () const=0
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual std::ostream & | C_Out (std::ostream &out) const =0
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const =0
StorageClassSpecifier getStorageClassSpecifier ()
Прочитать текущее значение класса памяти переменной.
void | setStorageClassSpecifier (const StorageClassSpecifier value)
Установить новое значение класса памяти переменной.

Защищенные данные

StorageClassSpecifier | m_storageClassSpecifier

Подробное описание

Базовый класс для определения типов данных.

Этот класс используется как базовый для определения классов-крпичиков из которых строится тип.

Используется шаблон "Composite" [GoF]. Для каждого типа типов используется свой класс. Объекты этих классов комбинируются и получается древовидная структура, однозначно определяющая тип.

Заметки:
Ответственность за удаление своих потомков берет на себя класс-контейнер.
Если в какой-то части системы нужно сделать указание на произвольный тип, то следует воспользоваться указателем как раз на этот класс.

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

enum TypeData::StorageClassSpecifier

Спецификатор класса памяти.

Методы

virtual TypeData* TypeData::clone ( ) const [pure virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещается в TypeSimple, TypePtr, TypeSubProc, TypeArray, TypeStruct и TypeNamed.

virtual std::ostream& TypeData::C_Out ( std::ostream & out ) const [pure virtual]

Выводит эллемент в поток (C++).

Замещает IRObject.

Замещается в TypeSimple, TypePtr, TypeSubProc, TypeArray, TypeStruct и TypeNamed.

TypeData::StorageClassSpecifier TypeData::getStorageClassSpecifier ( )

Прочитать текущее значение класса памяти переменной.

void TypeData::setStorageClassSpecifier ( const StorageClassSpecifier value )

Установить новое значение класса памяти переменной.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeNamed

Класс TypeNamed

Этот класс предназначен для представления именнованного в некоторой namespace типа. Подробнее...

#include <DataTypes.h>

Граф наследования:TypeNamed:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые члены

virtual TypeNamed * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
NameTypeIter | getType ()
Получить тип как итератор в namespace.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypeNamed * | create (Namespace *pNamespace, const std::string &strName)
Аргументы:
pNamespace - namespace, в которой _непосредственно_ объявлен тип.

Защищенные члены

TypeNamed (Namespace *pNamespace, const std::string &strName)

Защищенные данные

Namespace * | m_pNamespace
std::string | m_strName

Подробное описание

Этот класс предназначен для представления именнованного в некоторой namespace типа.

При конструировании объекта передаваться namespace и название типа в ней.

Методы

TypeNamed * TypeNamed::create | ( | Namespace * | pNamespace,
 |  | const std::string & | strName |
 | ) |  |  | [static]

Аргументы:
pNamespace - namespace, в которой _непосредственно_ объявлен тип.

Аргументы:
strName - название этого типа

TypeNamed * TypeNamed::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает TypeData.

std::string TypeNamed::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypeNamed::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypeNamed::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

NameTypeIter TypeNamed::getType ( )

Получить тип как итератор в namespace.

virtual std::ostream& TypeNamed::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypePtr

Класс TypePtr

Этот класс предназначен для представления указателя на тип. Подробнее...

#include <DataTypes.h>

Граф наследования:TypePtr:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые члены

virtual TypePtr * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
void | setBaseType (TypeData &base)
TypeData & | getBaseType ()
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypePtr * | create (TypeData *pBase)
Аргументы:
pBase - тип, на который будет указывать конструируемый указатель

Защищенные члены

TypePtr (TypeData *pBase)

Защищенные данные

TypeData * | m_pBased

Подробное описание

Этот класс предназначен для представления указателя на тип.

При конструировании объекта передается тип, на который будет указывать данный.

Методы

TypePtr * TypePtr::create ( TypeData * pBase ) [static]

Аргументы:
pBase - тип, на который будет указывать конструируемый указатель

TypePtr * TypePtr::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает TypeData.

std::string TypePtr::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypePtr::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypePtr::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

virtual std::ostream& TypePtr::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeSimple

Класс TypeSimple

Этот класс предназначен для представления элементарных типов данных, таких как int, double, bool, void. Подробнее...

#include <DataTypes.h>

Граф наследования:TypeSimple:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые типы

enum ST {
ST_BOOL = 1, ST_INT, ST_FLOAT, ST_CHAR,
ST_VOID
}

Открытые члены

virtual TypeData * | clone () const
Создает копию типа.
void | setType (ST nType)
Установить тип.
ST | getType ()
Получить тип.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypeSimple * | create (ST nType)
Создание типа, заданного параметром nType.
static TypeSimple * | createBool ()
Создание булевого типа.
static TypeSimple * | createInt ()
Создание целого типа.
static TypeSimple * | createFloat ()
Создание вещественного типа.
static TypeSimple * | createChar ()
Создание символьного типа.
static TypeSimple * | createVoid ()
Создание void типа.

Защищенные члены

TypeSimple (ST nType)

Защищенные данные

ST | m_nType

Подробное описание

Этот класс предназначен для представления элементарных типов данных, таких как int, double, bool, void.

Все возможные типы определены в перечислении ST.

Методы

TypeSimple * TypeSimple::create ( ST nType ) [static]

Создание типа, заданного параметром nType.

TypeSimple * TypeSimple::createBool ( ) [static]

Создание булевого типа.

TypeSimple * TypeSimple::createInt ( ) [static]

Создание целого типа.

TypeSimple * TypeSimple::createFloat ( ) [static]

Создание вещественного типа.

TypeSimple * TypeSimple::createChar ( ) [static]

Создание символьного типа.

TypeSimple * TypeSimple::createVoid ( ) [static]

Создание void типа.

TypeData * TypeSimple::clone ( ) const [virtual]

Создает копию типа.

Замещает TypeData.

void TypeSimple::setType ( ST nType )

Установить тип.

TypeSimple::ST TypeSimple::getType ( )

Получить тип.

std::string TypeSimple::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypeSimple::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypeSimple::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

virtual std::ostream& TypeSimple::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeStruct

Класс TypeStruct

Этот класс предназначен для представления структуры или объединения (struct или union в терминах Си). Подробнее...

#include <DataTypes.h>

Граф наследования:TypeStruct:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые члены

virtual TypeStruct * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
void | addFront (const std::string &strName, TypeData *pType)
Аргументы:
strName - название элемента структуры

void | addBack (const std::string &strName, TypeData *pType)
Аргументы:
strName - название элемента структуры

void | insertBefore (FieldIter it, const std::string &strName, TypeData *pType)
Аргументы:
it - итератор на элемент, перед которым следует добавить

void | insertAfter (FieldIter it, const std::string &strName, TypeData *pType)
Аргументы:
it - итератор на элемент, после которого следует добавить

void | erase (FieldIter it)
Аргументы:
it - итератор на элемент, который слудет удалить

void | erase (const std::string &strName)
Аргументы:
strName - название элемента структуры, который следует удалить

FieldIter | getFirst ()
Возвращает:
итератор на первый элемент структуры или невалидный итератор если структура пуста

FieldConstIter | getFirst () const
Возвращает:
итератор на первый элемент структуры или невалидный итератор если структура пуста

FieldIter | getLast ()
Возвращает:
итератор на последний элемент структуры или невалидный итератор если структура пуста

FieldConstIter | getLast () const
Возвращает:
итератор на последний элемент структуры или невалидный итератор если структура пуста

FieldIter | getByName (const std::string &strName)
Возвращает:
итератор на первый элемент структуры или невалидный итератор если элемент не найден

void | clear ()
Удалить все элементы структуры.
void | setUnion (bool bIsUnion)
Аргументы:
bIsUnion - является ли тип объединением: true - union, false - struct

bool | isUnion ()
Проверить, является ли структура объединением.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypeStruct * | create (bool bIsUnion=false)
Аргументы:
bIsUnion - является ли тип объединением

Защищенные члены

TypeStruct (bool bIsUnion)

Защищенные данные

TFields | m_lstFields
bool | m_bIsUnion

Подробное описание

Этот класс предназначен для представления структуры или объединения (struct или union в терминах Си).

При конструировании объекта передается признак, будет ли являться этот объект представлением объединения.

Методы

TypeStruct * TypeStruct::create ( bool bIsUnion = false ) [static]

Аргументы:
bIsUnion - является ли тип объединением

При конструировании структура не содержит ни одного элемента. Для добавления элементов следует использоваться методы addFront, addBack и т.п.

TypeStruct * TypeStruct::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает TypeData.

void TypeStruct::addFront | ( | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Аргументы:
strName - название элемента структуры

Аргументы:
pType - тип элемента структуры

void TypeStruct::addBack | ( | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Аргументы:
strName - название элемента структуры

Аргументы:
pType - тип элемента структуры

void TypeStruct::insertBefore | ( | FieldIter | it,
 |  | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Аргументы:
it - итератор на элемент, перед которым следует добавить

Аргументы:
strName | - название элемента структуры
pType | - тип элемента структуры

void TypeStruct::insertAfter | ( | FieldIter | it,
 |  | const std::string & | strName,
 |  | TypeData * | pType
 | ) |  |

Аргументы:
it - итератор на элемент, после которого следует добавить

Аргументы:
strName | - название элемента структуры
pType | - тип элемента структуры

void TypeStruct::erase ( FieldIter it )

Аргументы:
it - итератор на элемент, который слудет удалить

void TypeStruct::erase ( const std::string & strName )

Аргументы:
strName - название элемента структуры, который следует удалить

FieldIter TypeStruct::getFirst ( )

Возвращает:
итератор на первый элемент структуры или невалидный итератор если структура пуста

FieldConstIter TypeStruct::getFirst ( ) const

Возвращает:
итератор на первый элемент структуры или невалидный итератор если структура пуста

FieldIter TypeStruct::getLast ( )

Возвращает:
итератор на последний элемент структуры или невалидный итератор если структура пуста

FieldConstIter TypeStruct::getLast ( ) const

Возвращает:
итератор на последний элемент структуры или невалидный итератор если структура пуста

FieldIter TypeStruct::getByName ( const std::string & strName )

Возвращает:
итератор на первый элемент структуры или невалидный итератор если элемент не найден

void TypeStruct::clear ( )

Удалить все элементы структуры.

void TypeStruct::setUnion ( bool bIsUnion )

Аргументы:
bIsUnion - является ли тип объединением: true - union, false - struct

bool TypeStruct::isUnion ( )

Проверить, является ли структура объединением.

std::string TypeStruct::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypeStruct::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypeStruct::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

virtual std::ostream& TypeStruct::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Класс TypeSubProc

Класс TypeSubProc

Этот класс предназначен для представления подпрограммы. Подробнее...

#include <DataTypes.h>

Граф наследования:TypeSubProc:

TypeData IRObject ImemberwiseCloneable< TypeData > Полный список членов класса

Открытые типы

typedef Modifiers< SubProcModifiers::MODS,
SubProcModifiers > 		TMods

Открытые члены

virtual TypeSubProc * | clone () const
При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.
void | setRetValueType (TypeData *pRetValue)
Установить тип возвращаемого значения.
TypeData & getRetValueType ()
Получить тип возвращаемого значения.
const TypeData & | getRetValueType () const
Получить тип возвращаемого значения.
virtual std::string | dumpState () const
Вернуть строку с состоянием объекта.
virtual OpsNewIr::ObjTypes | getObjType () const
OPS runtime identification.
virtual TypeData * | memberwiseClone ()
Неглубокое клонирование.
virtual std::ostream & | C_Out (std::ostream &out) const
Выводит эллемент в поток (C++).
virtual bool | isEqual (const TypeData &equalTo) const

Открытые статические члены

static TypeSubProc * | create ()
Конструирует подпрограмму с типом возвращаемого значения void.
static TypeSubProc * | create (TypeData *pRetValue)
Аргументы:
pRetValue - тип возвращаемого значения

Открытые атрибуты

TMods | m_aModifiers
SubProcParams | m_oParams
Параметры подпрограммы.

Защищенные члены

TypeSubProc (TypeData *pRetValue)

Защищенные данные

TypeData * | m_pRetValue

Подробное описание

Этот класс предназначен для представления подпрограммы.

Например, когда нужно сконструировать тип "указатель на подпрограмму". Также этот класс использууется при определении подпрограммы в классе NameSubProc.

При конструировании объекта может передаваться тип, который определяет возвращаемое подпрограммой значение.

Методы

TypeSubProc * TypeSubProc::create ( ) [static]

Конструирует подпрограмму с типом возвращаемого значения void.

TypeSubProc * TypeSubProc::create ( TypeData * pRetValue ) [static]

Аргументы:
pRetValue - тип возвращаемого значения

Для того, чтобы указать параметры, передаваемые в подпрограмму следует использовать свойство m_oParams

TypeSubProc * TypeSubProc::clone ( ) const [virtual]

При конструировнии копии в случае если узел является контейнером для нескольких дочерних типов, для них также будет вызван метод clone.

Замещает TypeData.

void TypeSubProc::setRetValueType ( TypeData * pRetValue )

Установить тип возвращаемого значения.

TypeData & TypeSubProc::getRetValueType ( )

Получить тип возвращаемого значения.

const TypeData & TypeSubProc::getRetValueType ( ) const

Получить тип возвращаемого значения.

std::string TypeSubProc::dumpState ( ) const [virtual]

Вернуть строку с состоянием объекта.

Замещает IRObject.

OpsNewIr::ObjTypes TypeSubProc::getObjType ( ) const [virtual]

OPS runtime identification.

Переопределяет метод предка IRObject.

TypeData * TypeSubProc::memberwiseClone ( ) [virtual]

Неглубокое клонирование.

Замещает ImemberwiseCloneable< TypeData >.

virtual std::ostream& TypeSubProc::C_Out ( std::ostream & out ) const [virtual]

Выводит эллемент в поток (C++).

Замещает TypeData.

Данные класса

SubProcParams TypeSubProc::m_oParams

Параметры подпрограммы.

Объявления и описания членов классов находятся в файлах:
  • DataTypes.h
  • DataTypes.cpp
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Иерархический список классов

opsnewir Иерархия классов

Иерархия классов.
  • ExprOper::OperDescr
  • ImemberwiseCloneable< T >
  • ImemberwiseCloneable< TypeData >
    • TypeData
      • TypeArray
      • TypeNamed
      • TypePtr
      • TypeSimple
      • TypeStruct
      • TypeSubProc
  • IRObject
    • ExprNode
      • ExprData
      • ExprImm
      • ExprNull
      • ExprOper
        • ExprArray
        • ExprAssign
        • ExprBinary
        • ExprCall
        • ExprStruct
        • ExprUnary
    • NameObject
      • NameLabel
      • NameSubProc
      • NameType
      • NameVar
    • Namespace
    • Program
    • Statement
      • Block
      • StmtBranch
        • StmtIf
        • StmtSwitch
      • StmtBreak
      • StmtContinue
      • StmtEmpty
      • StmtExpr
      • StmtGoto
      • StmtLoop
        • StmtDoWhile
        • StmtFor
        • StmtWhile
      • StmtReturn
    • TypeData
  • NameIter
  • TypeArray::Limits
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- a -

  • addBack() : TypeStruct , Block
  • addConst() : Namespace
  • addDimExpr() : ExprArray
  • addFront() : Block , TypeStruct
  • addLabel() : Namespace
  • addParamExpr() : ExprCall
  • addSubProc() : Namespace
  • addType() : Namespace
  • addVariable() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Алфавитный указатель пространств имен

  • Файлы

opsnewir Пространства имен

Полный список документированных пространств имен.
OpsNewIr OPS runtime class info stuff
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Пространство имен OpsNewIr

  • Файлы

Пространство имен OpsNewIr

OPS runtime class info stuff. Подробнее...

Классы

class | CloneMapper
class | CrossLinkBreaker
class | RefMapper

Определения типов

typedef std::map< IRObject *,
IRObject * > 		ObjectsMap

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

enum ObjTypes {
OT_STMT_BLOCK = 1, OT_STMT_IF, OT_STMT_FOR, OT_STMT_WHILE,
OT_STMT_DOWHILE, OT_STMT_SWITCH, OT_STMT_GOTO, OT_STMT_EMPTY,
OT_STMT_EXPR, OT_STMT_RETURN, OT_STMT_BREAK, OT_STMT_CONTINUE,
OT_EXPR_DATA = 100, OT_EXPR_IMM, OT_EXPR_OPER, OT_EXPR_UNARY,
OT_EXPR_BINARY, OT_EXPR_ASSIGN, OT_EXPR_ARRAY, OT_EXPR_CALL,
OT_EXPR_STRUCT, OT_TYPE_SIMPLE = 200, OT_TYPE_PTR, OT_TYPE_SUBPROC,
OT_TYPE_ARRAY, OT_TYPE_STRUCT, OT_TYPE_NAMED, OT_NAME_VAR = 300,
OT_NAME_TYPE, OT_NAME_LABEL, OT_NAME_SUBPROC, OT_UNKNOWN = 10000
}

Функции

Program * | cloneProgram (Program &program)
Функция полного клонирования программы.
void | mapReferences (Program &first, Program &second, ObjectsMap &rMap)
Функция позволяет для двух одинаковых деревьев найти соответствующие друг другу объекты в них.

Подробное описание

OPS runtime class info stuff.

Функции

Program * OpsNewIr::cloneProgram ( Program & program )

Функция полного клонирования программы.

Результирующая программа не будет содержать никаких связей со старой программой.

void OpsNewIr::mapReferences | ( | Program & | first,
 |  | Program & | second,
 |  | ObjectsMap & | rMap
 | ) |  |

Функция позволяет для двух одинаковых деревьев найти соответствующие друг другу объекты в них.

(Блин, сам не понял, что написал :( ) Список неподдерживаемых объектов: 1) Program, Namespace 2) Все типы

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Список файлов

  • Файлы

opsnewir Файлы

Полный список документированных файлов.
DataTypes.h [Исходные тексты]
Expressions.h [Исходные тексты]
IRCommon.h [Исходные тексты]
Автор:
Victor Petrenko
IRObject.h [Исходные тексты]
Namespace.h [Исходные тексты]
OutToC.h [Исходные тексты]
OutToXml.h [Исходные тексты]
Program.h [Исходные тексты]
RangeIterator.h [Исходные тексты]
ServiceFunctions.h [Исходные тексты]
Statements.h [Исходные тексты]
SubProc.h [Исходные тексты]
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Файл IRCommon.h

  • Файлы

Файл IRCommon.h

Автор:
Victor Petrenko
Подробнее...

#include <iostream>
#include <list>
#include <map>
#include <set>
#include <string>
#include <vector>
#include "OpsCore.h"

См. исходные тексты.

Пространства имен

namespace | OpsNewIr

Классы

class | ImemberwiseCloneable< T >
Запрещает неглубокое копирование по-умолчанию. Подробнее...

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

enum ObjTypes {
OT_STMT_BLOCK = 1, OT_STMT_IF, OT_STMT_FOR, OT_STMT_WHILE,
OT_STMT_DOWHILE, OT_STMT_SWITCH, OT_STMT_GOTO, OT_STMT_EMPTY,
OT_STMT_EXPR, OT_STMT_RETURN, OT_STMT_BREAK, OT_STMT_CONTINUE,
OT_EXPR_DATA = 100, OT_EXPR_IMM, OT_EXPR_OPER, OT_EXPR_UNARY,
OT_EXPR_BINARY, OT_EXPR_ASSIGN, OT_EXPR_ARRAY, OT_EXPR_CALL,
OT_EXPR_STRUCT, OT_TYPE_SIMPLE = 200, OT_TYPE_PTR, OT_TYPE_SUBPROC,
OT_TYPE_ARRAY, OT_TYPE_STRUCT, OT_TYPE_NAMED, OT_NAME_VAR = 300,
OT_NAME_TYPE, OT_NAME_LABEL, OT_NAME_SUBPROC, OT_UNKNOWN = 10000
}

Подробное описание

Автор:
Victor Petrenko

Inernal Representation Common features
Содержит общие определения классов, перечислений и макросов, используемых в остальных файлах проекта.
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

Block Cписок членов класса

Полный список членов класса Block, включая наследуемые из базового класса

addBack(Statement *pStmt) | Block |
addFront(Statement *pStmt) | Block |
Block() (определено в Block) | Block | [protected]
Block(Statement &parent, Namespace *pNamespace) | Block | [protected]
Block(Namespace *pNamespace) (определено в Block) | Block | [protected]
C_Out(std::ostream &out) const | Block | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clear() | Block |
clone() const | Block | [virtual]
clone(Namespace &nmspace) const (определено в Block) | Block | [virtual]
clone(Statement &stmt) const (определено в Block) | Block | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(Statement *pParent) | Block | [static]
create(Namespace &nmspace) | Block | [static]
createEmptyBlock() | Block | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
detach(Iterator it) | Block |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | Block | [virtual]
erase(Iterator it) | Block |
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getByStmt(Statement *pStmt) | Block |
getByStmt(Statement *pStmt) const (определено в Block) | Block |
getComprehBlock() | Statement |
getFirst() | Block |
getFirst() const | Block |
getIntBlock(int nPos) | Block | [virtual]
getLast() | Block |
getLast() const | Block |
getMaxInt() | Block | [inline, virtual]
getNamespace() const | Block |
getNamespace() | Block |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | Block | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getStatementsCount() const | Block |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
insertAfter(Iterator it, Statement *pStmt) | Block |
insertBefore(Iterator it, Statement *pStmt) | Block |
isDeepViewNeed() | Block | [inline, virtual]
isEmpty() const | Block |
isIntBlockValid(int nPos) | Block | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_lstStatements (определено в Block) | Block | [protected]
m_pNamespace (определено в Block) | Block | [protected]
operator[](int num) (определено в Block) | Block |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
unlink(Iterator it) | Block |
~Block() (определено в Block) | Block | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprArray Cписок членов класса

Полный список членов класса ExprArray, включая наследуемые из базового класса

addDimExpr(ExprNode *pExpr) | ExprArray |
addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprArray | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprArray | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprArray) | ExprArray | [virtual]
clone(const Statement &parentStmt) const (определено в ExprArray) | ExprArray | [virtual]
create(const NameReference &nr, ExprNode *pArg) | ExprArray | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprArray | [virtual]
ExprArray() (определено в ExprArray) | ExprArray | [protected]
ExprArray(const NameReference &nr, ExprNode *pArg) (определено в ExprArray) | ExprArray | [protected]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getDimExpr(int nDim) const | ExprArray |
getDimsCount() const | ExprArray |
getNameExpr() const | ExprArray |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprArray | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprArray | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setDimExpr(int nDim, ExprNode *pExpr) | ExprArray |
setNameExpr(ExprNode *data) | ExprArray |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetDimExpr(int nDim) | ExprArray |
unsafeGetNameExpr() | ExprArray |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprAssign Cписок членов класса

Полный список членов класса ExprAssign, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprAssign | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprAssign | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprAssign) | ExprAssign | [virtual]
clone(const Statement &parentStmt) const (определено в ExprAssign) | ExprAssign | [virtual]
create(OT nOperator, ExprNode *pLValue, ExprNode *pRValue) | ExprAssign | [static]
create(ExprNode *pLValue, ExprNode *pRValue) | ExprAssign | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprAssign | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getLeftExpr() const | ExprAssign |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprAssign | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getRightExpr() const | ExprAssign |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprAssign | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setLeftExpr(ExprNode *pArg) | ExprAssign |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setRightExpr(ExprNode *pArg) | ExprAssign |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetLeftExpr() | ExprAssign |
unsafeGetRightExpr() | ExprAssign |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprBinary Cписок членов класса

Полный список членов класса ExprBinary, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprBinary | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprBinary | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprBinary) | ExprBinary | [virtual]
clone(const Statement &parentStmt) const (определено в ExprBinary) | ExprBinary | [virtual]
create(OT nOperator, ExprNode *pLeftArg, ExprNode *pRightArg) | ExprBinary | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprBinary | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getLeftArg() const | ExprBinary |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprBinary | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getRightArg() const | ExprBinary |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprBinary | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setLeftArg(ExprNode *pArg) | ExprBinary |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setRightArg(ExprNode *pArg) | ExprBinary |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetLeftArg() | ExprBinary |
unsafeGetRightArg() | ExprBinary |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprCall Cписок членов класса

Полный список членов класса ExprCall, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
addParamExpr(ExprNode *pExpr) | ExprCall |
C_Out(std::ostream &out) const | ExprCall | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprCall | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprCall) | ExprCall | [virtual]
clone(const Statement &parentStmt) const (определено в ExprCall) | ExprCall | [virtual]
create(const NameReference &nr) | ExprCall | [static]
create(const NameReference &nr, ExprNode *pArg) | ExprCall | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprCall | [virtual]
ExprCall() (определено в ExprCall) | ExprCall | [protected]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getNameExpr() const | ExprCall |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprCall | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParamExpr(int param) const | ExprCall |
getParamsCount() const | ExprCall |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprOper | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setNameExpr(ExprNode *data) | ExprCall |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParamExpr(int param, ExprNode *pExpr) | ExprCall |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetNameExpr() | ExprCall |
unsafeGetParamExpr(int param) | ExprCall |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprData Cписок членов класса

Полный список членов класса ExprData, включая наследуемые из базового класса

C_Out(std::ostream &out) const | ExprData | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprData | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprData) | ExprData | [virtual]
clone(const Statement &parentStmt) const (определено в ExprData) | ExprData | [virtual]
create(const NameReference &oDataObject) | ExprData | [static]
create(Namespace &rNamespace, const std::string &strName) | ExprData | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprData | [virtual]
ExprData(const NameReference &oDataObject) (определено в ExprData) | ExprData | [protected]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getData() const | ExprData |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprData | [virtual]
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprData) | ExprData | [virtual]
isLValue() | ExprData | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_oDataObject (определено в ExprData) | ExprData | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprImm Cписок членов класса

Полный список членов класса ExprImm, включая наследуемые из базового класса

C_Out(std::ostream &out) const | ExprImm | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprImm | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprImm) | ExprImm | [virtual]
clone(const Statement &parentStmt) const (определено в ExprImm) | ExprImm | [virtual]
create(const ImmValue &oValue) | ExprImm | [static]
create(ImmValue::IV valueType, TValue value) | ExprImm | [inline, static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprImm | [virtual]
ExprImm(const ImmValue &oValue) (определено в ExprImm) | ExprImm | [protected]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprImm | [virtual]
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprImm) | ExprImm | [virtual]
isLValue() | ExprImm | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_oValue | ExprImm |
m_uplink (определено в ExprNode) | ExprNode | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprNode Cписок членов класса

Полный список членов класса ExprNode, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | ExprNode | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 | ExprNode | [pure virtual]
clone(const ExprNode &exprNode) const =0 (определено в ExprNode) | ExprNode | [pure virtual]
clone(const Statement &parentStmt) const =0 (определено в ExprNode) | ExprNode | [pure virtual]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const =0 (определено в ExprNode) | ExprNode | [pure virtual]
isLValue()=0 | ExprNode | [pure virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprNull Cписок членов класса

Полный список членов класса ExprNull, включая наследуемые из базового класса

C_Out(std::ostream &out) const | ExprNull | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprNull | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprNull) | ExprNull | [virtual]
clone(const Statement &parentStmt) const (определено в ExprNull) | ExprNull | [virtual]
create() (определено в ExprNull) | ExprNull | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprNull | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprNull() (определено в ExprNull) | ExprNull | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprNull) | ExprNull | [virtual]
isLValue() | ExprNull | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprOper Cписок членов класса

Полный список членов класса ExprOper, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprOper | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprOper | [virtual]
clone(const ExprNode &exprNode) const =0 (определено в ExprNode) | ExprNode | [pure virtual]
clone(const Statement &parentStmt) const =0 (определено в ExprNode) | ExprNode | [pure virtual]
create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprOper | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprOper | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprOper | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprStruct Cписок членов класса

Полный список членов класса ExprStruct, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprOper | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprStruct | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprStruct) | ExprStruct | [virtual]
clone(const Statement &parentStmt) const (определено в ExprStruct) | ExprStruct | [virtual]
create(ExprNode *pStructExpr, const std::string &strMember) (определено в ExprStruct) | ExprStruct | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
createPtr(ExprNode *pStructExpr, const std::string &strMember) (определено в ExprStruct) | ExprStruct | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprStruct | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getMemberExpr() const | ExprStruct |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprStruct | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
getStructExpr() const | ExprStruct |
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprStruct | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setMemberExpr(const std::string &strMember) | ExprStruct |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setStructExpr(ExprNode *pExpr) | ExprStruct |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetStructExpr() | ExprStruct |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprUnary Cписок членов класса

Полный список членов класса ExprUnary, включая наследуемые из базового класса

addOperArgument(ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
C_Out(std::ostream &out) const | ExprUnary | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | ExprUnary | [virtual]
clone(const ExprNode &exprNode) const (определено в ExprUnary) | ExprUnary | [virtual]
clone(const Statement &parentStmt) const (определено в ExprUnary) | ExprUnary | [virtual]
create(OT nOperator, ExprNode *pArg) | ExprUnary | [static]
ExprOper::create(OT nOperator, ExprNode *pArg1, ExprNode *pArg2=0, ExprNode *pArg3=0) | ExprOper | [static]
ExprOper::create(OT nOperator, const TArgumentsList &args) | ExprOper | [static]
createArray(const NameReference &nr, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createArray(Namespace &rName, const std::string &strName, ExprNode *pArg1, ExprNode *pArg2=0) | ExprOper | [static]
createCall(const NameReference &oIter, ExprNode *pArg=0) | ExprOper | [static]
createCall(Namespace &rName, const std::string &strName, ExprNode *pArg1=0, ExprNode *pArg2=0) | ExprOper | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | ExprUnary | [virtual]
ExprNode() (определено в ExprNode) | ExprNode | [protected]
ExprOper(OT nOperator) (определено в ExprOper) | ExprOper | [protected]
ExprOper(OT nOperator, ExprNode *pArg) (определено в ExprOper) | ExprOper | [protected]
getAddress() const (определено в IRObject) | IRObject | [protected]
getArg() const | ExprUnary |
getArgsCntByOT(OT nOperator) | ExprOper | [inline, static]
getDescrByOT(OT nOperator) | ExprOper | [inline, static]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | ExprUnary | [virtual]
getOper() const | ExprOper | [virtual]
getOperArgByNum(int nIndex) const | ExprOper |
getOperArgsCount() const | ExprOper |
getParentBlock() (определено в ExprNode) | ExprNode |
getParentBlock() const (определено в ExprNode) | ExprNode |
getParentExpr() (определено в ExprNode) | ExprNode |
getParentExpr() const (определено в ExprNode) | ExprNode |
getParentNamespace() (определено в ExprNode) | ExprNode |
getParentNamespace() const (определено в ExprNode) | ExprNode |
getParentStatement() (определено в ExprNode) | ExprNode |
getParentStatement() const (определено в ExprNode) | ExprNode |
getStrByOT(OT nOperator) | ExprOper | [inline, static]
hasParentBlock() const (определено в ExprNode) | ExprNode |
hasParentExpr() const (определено в ExprNode) | ExprNode |
hasParentNamespace() const (определено в ExprNode) | ExprNode |
hasParentStatement() const (определено в ExprNode) | ExprNode |
isEqual(const ExprNode &exprNode) const (определено в ExprOper) | ExprOper | [virtual]
isLValue() | ExprUnary | [virtual]
m_aArgs (определено в ExprOper) | ExprOper | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nOperator (определено в ExprOper) | ExprOper | [protected]
m_uplink (определено в ExprNode) | ExprNode | [protected]
OT перечисление | ExprOper |
OT_ADDR элементы перечисления (определено в ExprOper) | ExprOper |
OT_ARRAY элементы перечисления (определено в ExprOper) | ExprOper |
OT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_BAND_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_BXOR_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_CALL элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV элементы перечисления (определено в ExprOper) | ExprOper |
OT_DIV_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_EQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATER элементы перечисления (определено в ExprOper) | ExprOper |
OT_GREATEREQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LAND элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESS элементы перечисления (определено в ExprOper) | ExprOper |
OT_LESSEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_LNOT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LOR элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_LSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_MINUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD элементы перечисления (определено в ExprOper) | ExprOper |
OT_MOD_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL элементы перечисления (определено в ExprOper) | ExprOper |
OT_MUL_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_NOTEQ элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_PLUS_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_POW элементы перечисления (определено в ExprOper) | ExprOper |
OT_PTRSTRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT элементы перечисления (определено в ExprOper) | ExprOper |
OT_RSHIFT_ASSIGN элементы перечисления (определено в ExprOper) | ExprOper |
OT_SIZEOF элементы перечисления (определено в ExprOper) | ExprOper |
OT_STRUCT элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNMINUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPLUS элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPOSTPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFMM элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNPREFPP элементы перечисления (определено в ExprOper) | ExprOper |
OT_UNREF элементы перечисления (определено в ExprOper) | ExprOper |
replaceArg(ExprNode *pOldArg, ExprNode *pNewArg) | ExprOper |
setArg(ExprNode *pArg) | ExprUnary |
setCloneArguments(const TArgumentsList &newArgs) (определено в ExprOper) | ExprOper | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setOper(OT oper) (определено в ExprOper) | ExprOper | [protected, virtual]
setOperArgByNum(int nIndex, ExprNode *pArg) | ExprOper |
setParentExpr(const ExprNode &parent) (определено в ExprNode) | ExprNode |
setParentNull() (определено в ExprNode) | ExprNode |
setParentStatement(const Statement &parent) (определено в ExprNode) | ExprNode |
setUplinksToArguments() (определено в ExprOper) | ExprOper | [protected]
TArgumentsList typedef (определено в ExprOper) | ExprOper |
TNotes typedef (определено в IRObject) | IRObject | [protected]
unsafeGetArg() | ExprUnary |
~ExprOper() (определено в ExprOper) | ExprOper | [virtual]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ImemberwiseCloneable< T > Cписок членов класса

Полный список членов класса ImemberwiseCloneable< T >, включая наследуемые из базового класса

memberwiseClone()=0 (определено в ImemberwiseCloneable< T >) ImemberwiseCloneable< T > [pure virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

IRObject Cписок членов класса

Полный список членов класса IRObject, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | IRObject | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameIter Cписок членов класса

Полный список членов класса NameIter, включая наследуемые из базового класса

getFilter() const (определено в NameIter) | NameIter |
getName() const (определено в NameIter) | NameIter |
getNameRef() (определено в NameIter) | NameIter |
getNameRef() const (определено в NameIter) | NameIter |
isValid() const (определено в NameIter) | NameIter |
iterNextBoundsChecks() (определено в NameIter) | NameIter | [protected]
m_filter (определено в NameIter) | NameIter | [protected]
m_name (определено в NameIter) | NameIter | [protected]
NameIter() (определено в NameIter) | NameIter |
NameIter(const NameIter &) (определено в NameIter) | NameIter |
NameIter(const NameReference &) (определено в NameIter) | NameIter |
NameIter(const NameReference &, NameObject::NameKind filter) (определено в NameIter) | NameIter |
operator *() (определено в NameIter) | NameIter |
operator!=(const NameIter &nameIter) const (определено в NameIter) | NameIter |
operator++() (определено в NameIter) | NameIter |
operator++(int) (определено в NameIter) | NameIter |
operator->() (определено в NameIter) | NameIter |
operator=(const NameIter &nameIter) (определено в NameIter) | NameIter |
operator==(const NameIter &nameIter) const (определено в NameIter) | NameIter |
setNull() (определено в NameIter) | NameIter |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameLabel Cписок членов класса

Полный список членов класса NameLabel, включая наследуемые из базового класса

C_Out(std::ostream &out) const | NameLabel | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в NameLabel) | NameLabel | [virtual]
create(const std::string &strName, Statement *pLabeled) (определено в NameLabel) | NameLabel | [static]
create(const std::string &strName) (определено в NameLabel) | NameLabel | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | NameLabel | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getLabeledStatement() const | NameLabel |
getName() const | NameObject |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | NameLabel | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pLabeled (определено в NameLabel) | NameLabel | [protected]
m_strName (определено в NameObject) | NameObject | [protected]
NAME_LABEL элементы перечисления (определено в NameObject) | NameObject |
NAME_SUBPROC элементы перечисления (определено в NameObject) | NameObject |
NAME_TYPE элементы перечисления (определено в NameObject) | NameObject |
NAME_VARIABLE элементы перечисления (определено в NameObject) | NameObject |
NameKind перечисление (определено в NameObject) | NameObject |
NameLabel(const std::string &strName, Statement *pLabeled) (определено в NameLabel) | NameLabel | [protected]
NameObject(const std::string &strName) (определено в NameObject) | NameObject | [protected]
NameObject() (определено в NameObject) | NameObject | [protected]
setLabeledStatement(Statement *pLabeled) | NameLabel |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~NameLabel() (определено в NameLabel) | NameLabel |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameObject Cписок членов класса

Полный список членов класса NameObject, включая наследуемые из базового класса

C_Out(std::ostream &out) const | NameObject | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 (определено в NameObject) | NameObject | [pure virtual]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | NameObject | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getName() const | NameObject |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_strName (определено в NameObject) | NameObject | [protected]
NAME_LABEL элементы перечисления (определено в NameObject) | NameObject |
NAME_SUBPROC элементы перечисления (определено в NameObject) | NameObject |
NAME_TYPE элементы перечисления (определено в NameObject) | NameObject |
NAME_VARIABLE элементы перечисления (определено в NameObject) | NameObject |
NameKind перечисление (определено в NameObject) | NameObject |
NameObject(const std::string &strName) (определено в NameObject) | NameObject | [protected]
NameObject() (определено в NameObject) | NameObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

Namespace Cписок членов класса

Полный список членов класса Namespace, включая наследуемые из базового класса

addConst(const std::string &strName, TypeData *pType, ImmValue oValue) | Namespace |
addLabel(const std::string &strName, Statement *pStatement) | Namespace |
addSubProc(NameSubProc *pSubProc) | Namespace |
addType(const std::string &strName, TypeData *pType) | Namespace |
addVariable(const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue()) | Namespace |
addVariable(const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue) (определено в Namespace) | Namespace | [protected]
Block (определено в Namespace) | Namespace | [friend]
C_Out(std::ostream &out) const | Namespace | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в Namespace) | Namespace |
cloneSubProc(const NameSubProcIter &subProcIter, const std::string &newName) | Namespace |
copyFrom(const Namespace &otherNamespace) (определено в Namespace) | Namespace | [protected]
createNamedType(const std::string &strName) | Namespace |
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | Namespace | [virtual]
erase(NameIter &iter) | Namespace |
erase(const std::string &name) | Namespace |
generateUniqueIdentifier(const std::string &strBase="") | Namespace |
getAddress() const (определено в IRObject) | IRObject | [protected]
getHigherNamespace() | Namespace |
getHigherNamespace() const | Namespace |
getLabel(const std::string &strName) | Namespace |
getLabelsFirst() | Namespace |
getLabelsLast() | Namespace |
getName(const std::string &strName) const | Namespace |
getNameRecursive(const std::string &strName) const | Namespace |
getNameReference(const std::string &strName) | Namespace |
getNamesCount() const | Namespace |
getNamesFirst() | Namespace |
getNamesLast() | Namespace |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getProgram() | Namespace |
getSubProc(const std::string &strName) | Namespace |
getSubProcsFirst() | Namespace |
getSubProcsLast() | Namespace |
getType(const std::string &strName) | Namespace |
getTypesFirst() | Namespace |
getTypesLast() | Namespace |
getVar(const std::string &strName) | Namespace |
getVarsFirst() | Namespace |
getVarsLast() | Namespace |
hasName(const std::string &strName) const | Namespace |
hasNameRecursive(const std::string &strName) const | Namespace |
insertAfterConst(NameVarIter insAfter, const std::string &strName, TypeData *pType, ImmValue oValue) | Namespace |
insertAfterLabel(NameLabelIter insAfter, const std::string &strName, Statement *pStatement) | Namespace |
insertAfterSubProc(NameSubProcIter insAfter, NameSubProc *pSubProc) | Namespace |
insertAfterType(NameTypeIter insAfter, const std::string &strName, TypeData *pType) | Namespace |
insertAfterVariable(NameVarIter insAfter, const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue()) | Namespace |
insertAfterVariable(NameVarIter insAfter, const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue) (определено в Namespace) | Namespace | [protected]
insertBeforeConst(NameVarIter insBefore, const std::string &strName, TypeData *pType, ImmValue oValue) | Namespace |
insertBeforeLabel(NameLabelIter insBefore, const std::string &strName, Statement *pStatement) | Namespace |
insertBeforeSubProc(NameSubProcIter insBefore, NameSubProc *pSubProc) | Namespace |
insertBeforeType(NameTypeIter insBefore, const std::string &strName, TypeData *pType) | Namespace |
insertBeforeVariable(NameVarIter insBefore, const std::string &strName, TypeData *pType, ImmValue oValue=ImmValue()) | Namespace |
insertBeforeVariable(NameVarIter insBefore, const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue) (определено в Namespace) | Namespace | [protected]
isSubProcVisibleFor(const std::string &strName, NameSubProcIter &visibleFor) const | Namespace |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_names (определено в Namespace) | Namespace | [protected]
m_namesMap (определено в Namespace) | Namespace | [protected]
m_pContainer (определено в Namespace) | Namespace | [protected]
m_pProgram (определено в Namespace) | Namespace | [protected]
NameIter (определено в Namespace) | Namespace | [friend]
NameReference (определено в Namespace) | Namespace | [friend]
Namespace(Block *pContainer, Program *program=0) | Namespace | [protected]
Program (определено в Namespace) | Namespace | [friend]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setUplink(Block *pContainer, Program *program) (определено в Namespace) | Namespace |
syncSubProc(NameSubProc *pSubProc) | Namespace |
TNamesList typedef (определено в Namespace) | Namespace | [protected]
TNamesMap typedef (определено в Namespace) | Namespace | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~Namespace() (определено в Namespace) | Namespace |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameSubProc Cписок членов класса

Полный список членов класса NameSubProc, включая наследуемые из базового класса

C_Out(std::ostream &out) const | NameSubProc | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в NameSubProc) | NameSubProc | [protected, virtual]
create(const std::string &strName, TypeSubProc *pPrototype, bool bIsPrototype=false) | NameSubProc | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | NameSubProc | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getBody() | NameSubProc |
getBody() const | NameSubProc |
getName() const | NameObject |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | NameSubProc | [virtual]
getPrototype() | NameSubProc |
getPrototype() const | NameSubProc |
isPrototype() const | NameSubProc |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_isPrototype (определено в NameSubProc) | NameSubProc | [protected]
m_pBody (определено в NameSubProc) | NameSubProc | [protected]
m_pPrototype (определено в NameSubProc) | NameSubProc | [protected]
m_strName (определено в NameObject) | NameObject | [protected]
NAME_LABEL элементы перечисления (определено в NameObject) | NameObject |
NAME_SUBPROC элементы перечисления (определено в NameObject) | NameObject |
NAME_TYPE элементы перечисления (определено в NameObject) | NameObject |
NAME_VARIABLE элементы перечисления (определено в NameObject) | NameObject |
NameKind перечисление (определено в NameObject) | NameObject |
NameObject(const std::string &strName) (определено в NameObject) | NameObject | [protected]
NameObject() (определено в NameObject) | NameObject | [protected]
NameSubProc(const std::string &strName, TypeSubProc *pPrototype, bool bIsPrototype) (определено в NameSubProc) | NameSubProc | [protected]
setBody(Block *pBody, bool sync=true) | NameSubProc |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setPrototype(TypeSubProc *pPrototype) | NameSubProc |
setToPrototype() | NameSubProc |
syncNamespace() | NameSubProc |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~NameSubProc() (определено в NameSubProc) | NameSubProc |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameType Cписок членов класса

Полный список членов класса NameType, включая наследуемые из базового класса

C_Out(std::ostream &out) const | NameType | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в NameType) | NameType | [virtual]
create(const std::string &strName, TypeData *pType) (определено в NameType) | NameType | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | NameType | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getName() const | NameObject |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | NameType | [virtual]
getType() const (определено в NameType) | NameType |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pType (определено в NameType) | NameType | [protected]
m_strName (определено в NameObject) | NameObject | [protected]
NAME_LABEL элементы перечисления (определено в NameObject) | NameObject |
NAME_SUBPROC элементы перечисления (определено в NameObject) | NameObject |
NAME_TYPE элементы перечисления (определено в NameObject) | NameObject |
NAME_VARIABLE элементы перечисления (определено в NameObject) | NameObject |
NameKind перечисление (определено в NameObject) | NameObject |
NameObject(const std::string &strName) (определено в NameObject) | NameObject | [protected]
NameObject() (определено в NameObject) | NameObject | [protected]
NameType(const std::string &strName, TypeData *pType) (определено в NameType) | NameType | [protected]
NameType() (определено в NameType) | NameType | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setType(TypeData *pType) (определено в NameType) | NameType |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~NameType() (определено в NameType) | NameType |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

NameVar Cписок членов класса

Полный список членов класса NameVar, включая наследуемые из базового класса

C_Out(std::ostream &out) const | NameVar | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в NameVar) | NameVar | [virtual]
create(const std::string &strName, TypeData *pType, bool isConst=false, ImmValue oValue=ImmValue()) (определено в NameVar) | NameVar | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | NameVar | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getName() const | NameObject |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | NameVar | [virtual]
getType() const | NameVar |
getValue() const | NameVar |
isArgument() const | NameVar |
isConst() const | NameVar |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_bIsArgument (определено в NameVar) | NameVar | [protected]
m_bIsConst (определено в NameVar) | NameVar | [protected]
m_oValue (определено в NameVar) | NameVar | [protected]
m_pVarType (определено в NameVar) | NameVar | [protected]
m_strName (определено в NameObject) | NameObject | [protected]
NAME_LABEL элементы перечисления (определено в NameObject) | NameObject |
NAME_SUBPROC элементы перечисления (определено в NameObject) | NameObject |
NAME_TYPE элементы перечисления (определено в NameObject) | NameObject |
NAME_VARIABLE элементы перечисления (определено в NameObject) | NameObject |
NameKind перечисление (определено в NameObject) | NameObject |
NameObject(const std::string &strName) (определено в NameObject) | NameObject | [protected]
NameObject() (определено в NameObject) | NameObject | [protected]
NameVar(const std::string &strName, TypeData *pType, bool isConst, ImmValue oValue=ImmValue()) (определено в NameVar) | NameVar | [protected]
setArgumentState(bool isArgument) | NameVar |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setType(TypeData *pType) | NameVar |
setValue(const ImmValue &value) | NameVar |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~NameVar() (определено в NameVar) | NameVar |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

Program Cписок членов класса

Полный список членов класса Program, включая наследуемые из базового класса

C_Out(std::ostream &out) const | Program | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const (определено в Program) | Program |
createTestArrayTypes() (определено в Program) | Program | [protected]
createTestArrayVariables() (определено в Program) | Program | [protected]
createTestModifiers() (определено в Program) | Program | [protected]
createTestPtrTypes() (определено в Program) | Program | [protected]
createTestPtrVariables() (определено в Program) | Program | [protected]
createTestSimpleExprs() (определено в Program) | Program | [protected]
createTestSimpleTypes() (определено в Program) | Program | [protected]
createTestSimpleVariables() (определено в Program) | Program | [protected]
createTestStructTypes() (определено в Program) | Program | [protected]
createTestSubProcTypes() (определено в Program) | Program | [protected]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | Program | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getGlobals() (определено в Program) | Program |
getMainBlock() (определено в Program) | Program |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getSourcePath() const (определено в Program) | Program |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_oGlobals (определено в Program) | Program | [protected]
m_strSourcePath (определено в Program) | Program | [protected]
Program() (определено в Program) | Program |
Program(const std::string &strFile) (определено в Program) | Program |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
TNotes typedef (определено в IRObject) | IRObject | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~Program() (определено в Program) | Program |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

Statement Cписок членов класса

Полный список членов класса Statement, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | Statement | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 | Statement | [pure virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int nPos)=0 | Statement | [pure virtual]
getMaxInt()=0 | Statement | [pure virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed()=0 | Statement | [pure virtual]
isIntBlockValid(int nPos)=0 | Statement | [pure virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtBranch Cписок членов класса

Полный список членов класса StmtBranch, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | Statement | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 | Statement | [pure virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int nPos)=0 | Statement | [pure virtual]
getMaxInt()=0 | Statement | [pure virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtBranch | [inline, virtual]
isIntBlockValid(int nPos)=0 | Statement | [pure virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtBreak Cписок членов класса

Полный список членов класса StmtBreak, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtBreak | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtBreak | [virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create() | StmtBreak | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtBreak | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int) | StmtBreak | [inline, virtual]
getMaxInt() | StmtBreak | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtBreak | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtBreak | [inline, virtual]
isIntBlockValid(int) | StmtBreak | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtBreak() (определено в StmtBreak) | StmtBreak | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtContinue Cписок членов класса

Полный список членов класса StmtContinue, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtContinue | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtContinue | [virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create() | StmtContinue | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtContinue | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int) | StmtContinue | [inline, virtual]
getMaxInt() | StmtContinue | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtContinue | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtContinue | [inline, virtual]
isIntBlockValid(int) | StmtContinue | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtContinue() (определено в StmtContinue) | StmtContinue | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtDoWhile Cписок членов класса

Полный список членов класса StmtDoWhile, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtDoWhile | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtDoWhile | [virtual]
clone(Statement &stmt) const (определено в StmtDoWhile) | StmtDoWhile | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pCondition) | StmtDoWhile | [static]
create() | StmtDoWhile | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtDoWhile | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getBodyRef() (определено в StmtLoop) | StmtLoop | [virtual]
getBodyRef() const (определено в StmtLoop) | StmtLoop | [virtual]
getComprehBlock() | Statement |
getCondition() | StmtDoWhile |
getCondition() const | StmtDoWhile |
getIntBlock(int nPos) | StmtLoop | [virtual]
getMaxInt() | StmtLoop | [inline, virtual]
getNamespace() (определено в StmtLoop) | StmtLoop | [virtual]
getNamespace() const (определено в StmtLoop) | StmtLoop | [virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtDoWhile | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtLoop | [inline, virtual]
isIntBlockValid(int nPos) | StmtLoop | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBody (определено в StmtLoop) | StmtLoop | [protected]
m_pCondition (определено в StmtDoWhile) | StmtDoWhile | [protected]
setCondition(ExprNode *pCondition) | StmtDoWhile |
setNewBody(Block *body) (определено в StmtLoop) | StmtLoop | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtDoWhile(ExprNode *pCond) (определено в StmtDoWhile) | StmtDoWhile | [protected]
StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtDoWhile() (определено в StmtDoWhile) | StmtDoWhile | [virtual]
~StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtEmpty Cписок членов класса

Полный список членов класса StmtEmpty, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtEmpty | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtEmpty | [virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create() | StmtEmpty | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtEmpty | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int) | StmtEmpty | [inline, virtual]
getMaxInt() | StmtEmpty | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtEmpty | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtEmpty | [inline, virtual]
isIntBlockValid(int) | StmtEmpty | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtExpr Cписок членов класса

Полный список членов класса StmtExpr, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtExpr | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtExpr | [virtual]
clone(Statement &stmt) const (определено в StmtExpr) | StmtExpr | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pHostedExpr) | StmtExpr | [static]
create() (определено в StmtExpr) | StmtExpr | [protected, static]
createAssign(ExprNode *pLeft, ExprNode *pRight) | StmtExpr | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtExpr | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getExpr() (определено в StmtExpr) | StmtExpr |
getExpr() const (определено в StmtExpr) | StmtExpr |
getIntBlock(int) | StmtExpr | [inline, virtual]
getMaxInt() | StmtExpr | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtExpr | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtExpr | [inline, virtual]
isIntBlockValid(int) | StmtExpr | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pHostedExpr (определено в StmtExpr) | StmtExpr | [protected]
setExpr(ExprNode *pHostedExpr) (определено в StmtExpr) | StmtExpr |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtExpr(ExprNode *pHostedExpr) (определено в StmtExpr) | StmtExpr | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtExpr() (определено в StmtExpr) | StmtExpr |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtFor Cписок членов класса

Полный список членов класса StmtFor, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtFor | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtFor | [virtual]
clone(Statement &stmt) const (определено в StmtFor) | StmtFor | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr) | StmtFor | [static]
create() | StmtFor | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtFor | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getBodyRef() (определено в StmtLoop) | StmtLoop | [virtual]
getBodyRef() const (определено в StmtLoop) | StmtLoop | [virtual]
getComprehBlock() | Statement |
getCond() (определено в StmtFor) | StmtFor |
getCond() const (определено в StmtFor) | StmtFor |
getIncr() (определено в StmtFor) | StmtFor |
getIncr() const (определено в StmtFor) | StmtFor |
getInit() (определено в StmtFor) | StmtFor |
getInit() const (определено в StmtFor) | StmtFor |
getIntBlock(int nPos) | StmtLoop | [virtual]
getMaxInt() | StmtLoop | [inline, virtual]
getNamespace() (определено в StmtLoop) | StmtLoop | [virtual]
getNamespace() const (определено в StmtLoop) | StmtLoop | [virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtFor | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtLoop | [inline, virtual]
isIntBlockValid(int nPos) | StmtLoop | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBody (определено в StmtLoop) | StmtLoop | [protected]
m_pCond (определено в StmtFor) | StmtFor | [protected]
m_pIncr (определено в StmtFor) | StmtFor | [protected]
m_pInit (определено в StmtFor) | StmtFor | [protected]
setCond(ExprNode *pExpr) (определено в StmtFor) | StmtFor |
setIncr(ExprNode *pExpr) (определено в StmtFor) | StmtFor |
setInit(ExprNode *pExpr) (определено в StmtFor) | StmtFor |
setNewBody(Block *body) (определено в StmtLoop) | StmtLoop | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtFor(ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr) (определено в StmtFor) | StmtFor | [protected]
StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtFor() (определено в StmtFor) | StmtFor |
~StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtGoto Cписок членов класса

Полный список членов класса StmtGoto, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtGoto | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtGoto | [virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create() (определено в StmtGoto) | StmtGoto | [static]
create(NameLabel *pLabel) (определено в StmtGoto) | StmtGoto | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtGoto | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getIntBlock(int) | StmtGoto | [inline, virtual]
getLabel() (определено в StmtGoto) | StmtGoto |
getLabel() const (определено в StmtGoto) | StmtGoto |
getMaxInt() | StmtGoto | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtGoto | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtGoto | [inline, virtual]
isIntBlockValid(int) | StmtGoto | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pLabel (определено в StmtGoto) | StmtGoto | [protected]
setLabel(NameLabel *pLabel) (определено в StmtGoto) | StmtGoto |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtGoto() (определено в StmtGoto) | StmtGoto | [protected]
StmtGoto(NameLabel *pLabel) (определено в StmtGoto) | StmtGoto | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtGoto() (определено в StmtGoto) | StmtGoto |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtIf Cписок членов класса

Полный список членов класса StmtIf, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtIf | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtIf | [virtual]
clone(Statement &stmt) const (определено в StmtIf) | StmtIf | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pCondition) | StmtIf | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtIf | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getCondition() | StmtIf |
getCondition() const | StmtIf |
getElseRef() | StmtIf |
getElseRef() const | StmtIf |
getIntBlock(int nPos) | StmtIf | [virtual]
getMaxInt() | StmtIf | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtIf | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThenRef() | StmtIf |
getThenRef() const | StmtIf |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtIf | [inline, virtual]
isIntBlockValid(int nPos) | StmtIf | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pCondition (определено в StmtIf) | StmtIf | [protected]
m_pElse (определено в StmtIf) | StmtIf | [protected]
m_pThen (определено в StmtIf) | StmtIf | [protected]
setCondition(ExprNode *pCondition) | StmtIf |
setElseBlock(Block *pBlock) | StmtIf |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
setThenBlock(Block *pBlock) | StmtIf |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtIf(ExprNode *pCondition) (определено в StmtIf) | StmtIf | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtIf() (определено в StmtIf) | StmtIf |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtLoop Cписок членов класса

Полный список членов класса StmtLoop, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | Statement | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 | Statement | [pure virtual]
clone(Statement &stmt) const (определено в Statement) | Statement | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getBodyRef() (определено в StmtLoop) | StmtLoop | [virtual]
getBodyRef() const (определено в StmtLoop) | StmtLoop | [virtual]
getComprehBlock() | Statement |
getIntBlock(int nPos) | StmtLoop | [virtual]
getMaxInt() | StmtLoop | [inline, virtual]
getNamespace() (определено в StmtLoop) | StmtLoop | [virtual]
getNamespace() const (определено в StmtLoop) | StmtLoop | [virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtLoop | [inline, virtual]
isIntBlockValid(int nPos) | StmtLoop | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBody (определено в StmtLoop) | StmtLoop | [protected]
setNewBody(Block *body) (определено в StmtLoop) | StmtLoop | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtReturn Cписок членов класса

Полный список членов класса StmtReturn, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtReturn | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtReturn | [virtual]
clone(Statement &stmt) const (определено в StmtReturn) | StmtReturn | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pHostedExpr) | StmtReturn | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtReturn | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getComprehBlock() | Statement |
getExpr() (определено в StmtReturn) | StmtReturn |
getExpr() const (определено в StmtReturn) | StmtReturn |
getIntBlock(int) | StmtReturn | [inline, virtual]
getMaxInt() | StmtReturn | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtReturn | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtReturn | [inline, virtual]
isIntBlockValid(int) | StmtReturn | [inline, virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pHostedExpr (определено в StmtReturn) | StmtReturn | [protected]
setExpr(ExprNode *pHostedExpr) (определено в StmtReturn) | StmtReturn |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtReturn(ExprNode *pHostedExpr) (определено в StmtReturn) | StmtReturn | [inline, protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtReturn() (определено в StmtReturn) | StmtReturn |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:36 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtSwitch Cписок членов класса

Полный список членов класса StmtSwitch, включая наследуемые из базового класса

addCase(int nCase, Block *pBlock) (определено в StmtSwitch) | StmtSwitch | [protected]
C_Out(std::ostream &out) const | StmtSwitch | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtSwitch | [virtual]
clone(Statement &stmt) const (определено в StmtSwitch) | StmtSwitch | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pCondition) (определено в StmtSwitch) | StmtSwitch | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtSwitch | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getBlockRef(int nCase) (определено в StmtSwitch) | StmtSwitch |
getComprehBlock() | Statement |
getCondition() (определено в StmtSwitch) | StmtSwitch |
getCondition() const (определено в StmtSwitch) | StmtSwitch |
getIntBlock(int nPos) | StmtSwitch | [virtual]
getMaxInt() | StmtSwitch | [inline, virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtSwitch | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtSwitch | [inline, virtual]
isIntBlockValid(int nPos) | StmtSwitch | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aCases (определено в StmtSwitch) | StmtSwitch | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pCondition (определено в StmtSwitch) | StmtSwitch | [protected]
setCondition(ExprNode *pCondition) (определено в StmtSwitch) | StmtSwitch |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtSwitch(ExprNode *pCondition) (определено в StmtSwitch) | StmtSwitch | [protected]
TCases typedef (определено в StmtSwitch) | StmtSwitch | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtSwitch() (определено в StmtSwitch) | StmtSwitch |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

StmtWhile Cписок членов класса

Полный список членов класса StmtWhile, включая наследуемые из базового класса

C_Out(std::ostream &out) const | StmtWhile | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | StmtWhile | [virtual]
clone(Statement &stmt) const (определено в StmtWhile) | StmtWhile | [virtual]
ConstIterator typedef (определено в Statement) | Statement |
create(ExprNode *pCondition) | StmtWhile | [static]
create() | StmtWhile | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | StmtWhile | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getAsBlock() | Statement |
getAsBlock() const (определено в Statement) | Statement |
getAsDoWhile() | Statement |
getAsDoWhile() const (определено в Statement) | Statement |
getAsEmpty() | Statement |
getAsEmpty() const (определено в Statement) | Statement |
getAsExpr() | Statement |
getAsExpr() const (определено в Statement) | Statement |
getAsFor() | Statement |
getAsFor() const (определено в Statement) | Statement |
getAsGoto() | Statement |
getAsGoto() const (определено в Statement) | Statement |
getAsIf() | Statement |
getAsIf() const (определено в Statement) | Statement |
getAsReturn() | Statement |
getAsReturn() const (определено в Statement) | Statement |
getAsSwitch() | Statement |
getAsSwitch() const (определено в Statement) | Statement |
getAsWhile() | Statement |
getAsWhile() const (определено в Statement) | Statement |
getBodyRef() (определено в StmtLoop) | StmtLoop | [virtual]
getBodyRef() const (определено в StmtLoop) | StmtLoop | [virtual]
getComprehBlock() | Statement |
getCondition() | StmtWhile |
getCondition() const | StmtWhile |
getIntBlock(int nPos) | StmtLoop | [virtual]
getMaxInt() | StmtLoop | [inline, virtual]
getNamespace() (определено в StmtLoop) | StmtLoop | [virtual]
getNamespace() const (определено в StmtLoop) | StmtLoop | [virtual]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | StmtWhile | [virtual]
getParentBlock() | Statement |
getParentBlock() const (определено в Statement) | Statement |
getParentStmt() const | Statement |
getStatementParentSubProc() const (определено в Statement) | Statement |
getThisInBlock() | Statement |
hasParentNamespace() const | Statement |
hasParentStmt() const | Statement |
isDeepViewNeed() | StmtLoop | [inline, virtual]
isIntBlockValid(int nPos) | StmtLoop | [virtual]
Iterator typedef (определено в Statement) | Statement |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBody (определено в StmtLoop) | StmtLoop | [protected]
m_pCondition (определено в StmtWhile) | StmtWhile | [protected]
setCondition(ExprNode *pCondition) | StmtWhile |
setNewBody(Block *body) (определено в StmtLoop) | StmtLoop | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setParentStmt(Statement &statement) | Statement |
setParentStmtNull() (определено в Statement) | Statement |
Statement() (определено в Statement) | Statement | [inline, protected]
StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]
StmtWhile(ExprNode *pCond) (определено в StmtWhile) | StmtWhile | [protected]
TNotes typedef (определено в IRObject) | IRObject | [protected]
TStmtList typedef (определено в Statement) | Statement |
~IRObject() (определено в IRObject) | IRObject | [virtual]
~StmtLoop() (определено в StmtLoop) | StmtLoop | [protected]
~StmtWhile() (определено в StmtWhile) | StmtWhile | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeArray Cписок членов класса

Полный список членов класса TypeArray, включая наследуемые из базового класса

C_Out(std::ostream &out) const | TypeArray | [virtual]
C_Out_Dims(std::ostream &out) (определено в TypeArray) | TypeArray |
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | TypeArray | [virtual]
create(TypeData *pBase, Limits firstDim) | TypeArray | [static]
create(TypeData *pBase, Limits firstDim, Limits secondDim) | TypeArray | [static]
create(TypeData *pBase, std::vector< Limits > aDims) | TypeArray | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypeArray | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getBaseType() (определено в TypeArray) | TypeArray |
getDimsCount() const (определено в TypeArray) | TypeArray |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypeArray | [virtual]
getStorageClassSpecifier() | TypeData |
isEqual(const TypeData &equalTo) const (определено в TypeArray) | TypeArray | [virtual]
m_aDims (определено в TypeArray) | TypeArray | [protected]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBase (определено в TypeArray) | TypeArray | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone() | TypeArray | [virtual]
operator[](int index) (определено в TypeArray) | TypeArray | [inline]
operator[](int index) const (определено в TypeArray) | TypeArray | [inline]
setBaseType(TypeData *base) (определено в TypeArray) | TypeArray |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeArray() (определено в TypeArray) | TypeArray | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~TypeArray() (определено в TypeArray) | TypeArray |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeData Cписок членов класса

Полный список членов класса TypeData, включая наследуемые из базового класса

C_Out(std::ostream &out) const =0 | TypeData | [pure virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const=0 | TypeData | [pure virtual]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const=0 | IRObject | [pure virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | IRObject | [virtual]
getStorageClassSpecifier() | TypeData |
isEqual(const TypeData &equalTo) const =0 (определено в TypeData) | TypeData | [pure virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone()=0 (определено в ImemberwiseCloneable< TypeData >) | ImemberwiseCloneable< TypeData > | [pure virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeNamed Cписок членов класса

Полный список членов класса TypeNamed, включая наследуемые из базового класса

C_Out(std::ostream &out) const | TypeNamed | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | TypeNamed | [virtual]
create(Namespace *pNamespace, const std::string &strName) | TypeNamed | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypeNamed | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypeNamed | [virtual]
getStorageClassSpecifier() | TypeData |
getType() | TypeNamed |
isEqual(const TypeData &equalTo) const (определено в TypeNamed) | TypeNamed | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pNamespace (определено в TypeNamed) | TypeNamed | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
m_strName (определено в TypeNamed) | TypeNamed | [protected]
memberwiseClone() | TypeNamed | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
TypeNamed(Namespace *pNamespace, const std::string &strName) (определено в TypeNamed) | TypeNamed | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~TypeNamed() (определено в TypeNamed) | TypeNamed |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypePtr Cписок членов класса

Полный список членов класса TypePtr, включая наследуемые из базового класса

C_Out(std::ostream &out) const | TypePtr | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | TypePtr | [virtual]
create(TypeData *pBase) | TypePtr | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypePtr | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getBaseType() (определено в TypePtr) | TypePtr |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypePtr | [virtual]
getStorageClassSpecifier() | TypeData |
isEqual(const TypeData &equalTo) const (определено в TypePtr) | TypePtr | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_pBased (определено в TypePtr) | TypePtr | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone() | TypePtr | [virtual]
setBaseType(TypeData &base) (определено в TypePtr) | TypePtr |
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
TypePtr(TypeData *pBase) (определено в TypePtr) | TypePtr | [protected]
TypePtr() (определено в TypePtr) | TypePtr | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~TypePtr() (определено в TypePtr) | TypePtr |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeSimple Cписок членов класса

Полный список членов класса TypeSimple, включая наследуемые из базового класса

C_Out(std::ostream &out) const | TypeSimple | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | TypeSimple | [virtual]
create(ST nType) | TypeSimple | [static]
createBool() | TypeSimple | [static]
createChar() | TypeSimple | [static]
createFloat() | TypeSimple | [static]
createInt() | TypeSimple | [static]
createVoid() | TypeSimple | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypeSimple | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypeSimple | [virtual]
getStorageClassSpecifier() | TypeData |
getType() | TypeSimple |
isEqual(const TypeData &equalTo) const (определено в TypeSimple) | TypeSimple | [virtual]
m_aNotes (определено в IRObject) | IRObject | [protected]
m_nType (определено в TypeSimple) | TypeSimple | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone() | TypeSimple | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
setType(ST nType) | TypeSimple |
ST перечисление (определено в TypeSimple) | TypeSimple |
ST_BOOL элементы перечисления (определено в TypeSimple) | TypeSimple |
ST_CHAR элементы перечисления (определено в TypeSimple) | TypeSimple |
ST_FLOAT элементы перечисления (определено в TypeSimple) | TypeSimple |
ST_INT элементы перечисления (определено в TypeSimple) | TypeSimple |
ST_VOID элементы перечисления (определено в TypeSimple) | TypeSimple |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
TypeSimple(ST nType) (определено в TypeSimple) | TypeSimple | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeStruct Cписок членов класса

Полный список членов класса TypeStruct, включая наследуемые из базового класса

addBack(const std::string &strName, TypeData *pType) | TypeStruct |
addFront(const std::string &strName, TypeData *pType) | TypeStruct |
C_Out(std::ostream &out) const | TypeStruct | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clear() | TypeStruct |
clone() const | TypeStruct | [virtual]
create(bool bIsUnion=false) | TypeStruct | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypeStruct | [virtual]
erase(FieldIter it) | TypeStruct |
erase(const std::string &strName) | TypeStruct |
getAddress() const (определено в IRObject) | IRObject | [protected]
getByName(const std::string &strName) | TypeStruct |
getFirst() | TypeStruct |
getFirst() const | TypeStruct |
getLast() | TypeStruct |
getLast() const | TypeStruct |
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypeStruct | [virtual]
getStorageClassSpecifier() | TypeData |
insertAfter(FieldIter it, const std::string &strName, TypeData *pType) | TypeStruct |
insertBefore(FieldIter it, const std::string &strName, TypeData *pType) | TypeStruct |
isEqual(const TypeData &equalTo) const (определено в TypeStruct) | TypeStruct | [virtual]
isUnion() | TypeStruct |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_bIsUnion (определено в TypeStruct) | TypeStruct | [protected]
m_lstFields (определено в TypeStruct) | TypeStruct | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone() | TypeStruct | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
setUnion(bool bIsUnion) | TypeStruct |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
TypeStruct(bool bIsUnion) (определено в TypeStruct) | TypeStruct | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~TypeStruct() (определено в TypeStruct) | TypeStruct |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeSubProc Cписок членов класса

Полный список членов класса TypeSubProc, включая наследуемые из базового класса

C_Out(std::ostream &out) const | TypeSubProc | [virtual]
C_Out_Notes(std::ostream &out) (определено в IRObject) | IRObject | [inline, virtual]
clone() const | TypeSubProc | [virtual]
create() | TypeSubProc | [static]
create(TypeData *pRetValue) | TypeSubProc | [static]
delNote(const std::string &strName) (определено в IRObject) | IRObject |
dumpNotes() (определено в IRObject) | IRObject |
dumpState() const | TypeSubProc | [virtual]
getAddress() const (определено в IRObject) | IRObject | [protected]
getNote(const std::string &strName) (определено в IRObject) | IRObject |
getObjType() const | TypeSubProc | [virtual]
getRetValueType() | TypeSubProc |
getRetValueType() const | TypeSubProc |
getStorageClassSpecifier() | TypeData |
isEqual(const TypeData &equalTo) const (определено в TypeSubProc) | TypeSubProc | [virtual]
m_aModifiers (определено в TypeSubProc) | TypeSubProc |
m_aNotes (определено в IRObject) | IRObject | [protected]
m_oParams | TypeSubProc |
m_pRetValue (определено в TypeSubProc) | TypeSubProc | [protected]
m_storageClassSpecifier (определено в TypeData) | TypeData | [protected]
memberwiseClone() | TypeSubProc | [virtual]
setNote(const std::string &strName, ImmValue *) (определено в IRObject) | IRObject |
setRetValueType(TypeData *pRetValue) | TypeSubProc |
setStorageClassSpecifier(const StorageClassSpecifier value) | TypeData |
STORAGE_CLASS_AUTO элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_EXTERN элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_NONE элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_REGISTER элементы перечисления (определено в TypeData) | TypeData |
STORAGE_CLASS_STATIC элементы перечисления (определено в TypeData) | TypeData |
StorageClassSpecifier перечисление | TypeData |
TMods typedef (определено в TypeSubProc) | TypeSubProc |
TNotes typedef (определено в IRObject) | IRObject | [protected]
TypeData() (определено в TypeData) | TypeData | [protected]
TypeSubProc() (определено в TypeSubProc) | TypeSubProc | [protected]
TypeSubProc(TypeData *pRetValue) (определено в TypeSubProc) | TypeSubProc | [protected]
~IRObject() (определено в IRObject) | IRObject | [virtual]
~TypeSubProc() (определено в TypeSubProc) | TypeSubProc |

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл DataTypes.h

  • Файлы

DataTypes.h

00001 #ifndef _TypeDataS_H_
00002 #define _TypeDataS_H_
00003
00004 #include "IRCommon.h"
00005 #include "Namespace.h"
00006 #include "SubProc.h"
00007
00008 // Forward declarations
00009 class VarObject;
00010 class Namespace;
00011
00012
00029 class TypeData : public IRObject, virtual public ImemberwiseCloneable<TypeData>, virtual public OPS::NonCopyableMix
00030 {
00031 public:
00032
00034     enum StorageClassSpecifier
00035     {
00036         STORAGE_CLASS_NONE = 0,
00037         STORAGE_CLASS_AUTO = 1,
00038         STORAGE_CLASS_REGISTER,
00039         STORAGE_CLASS_STATIC,
00040         STORAGE_CLASS_EXTERN
00041     };
00042
00044
00048     virtual TypeData* clone() const = 0;
00049
00050     virtual std::ostream& C_Out(std::ostream& out) const = 0;
00051
00052     virtual bool isEqual(const TypeData& equalTo) const = 0;
00053
00055     StorageClassSpecifier   getStorageClassSpecifier();
00057     void setStorageClassSpecifier(const StorageClassSpecifier value);
00058
00059     OPS_DEFINE_VISITABLE()
00060
00061 protected:
00062     TypeData();
00063     StorageClassSpecifier   m_storageClassSpecifier;
00064 };
00065
00067
00073 class TypeSimple : public TypeData, virtual public OPS::NonCopyableMix
00074 {
00075 public:
00076     enum ST
00077     {
00078         ST_BOOL = 1,
00079         ST_INT,
00080         ST_FLOAT,
00081         ST_CHAR,
00082         ST_VOID
00083     };
00084
00086     static TypeSimple* create(ST nType);
00087
00089     static TypeSimple* createBool();
00090
00092     static TypeSimple* createInt();
00093
00095     static TypeSimple* createFloat();
00096
00098     static TypeSimple* createChar();
00099
00101     static TypeSimple* createVoid();
00102
00104     virtual TypeData*   clone() const;
00105
00107     void    setType(ST nType);
00109     ST      getType();
00110
00111     virtual std::string dumpState() const;
00112
00114     virtual OpsNewIr::ObjTypes getObjType() const;
00115
00117     virtual TypeData* memberwiseClone();
00118
00120     virtual std::ostream& C_Out(std::ostream& out) const;
00121
00122     virtual bool isEqual(const TypeData& equalTo) const;
00123
00124     OPS_DEFINE_VISITABLE()
00125
00126 protected:
00127     TypeSimple(ST nType);
00128     ST  m_nType;
00129 };
00130
00132
00138 class TypePtr : public TypeData, virtual public OPS::NonCopyableMix
00139 {
00140 public:
00142
00147     static TypePtr* create(TypeData *pBase);
00148     ~TypePtr();
00149
00150     virtual TypePtr* clone() const;
00151
00152     void setBaseType(TypeData& base);
00153
00154     TypeData& getBaseType();
00155
00156     virtual std::string dumpState() const;
00157
00159     virtual OpsNewIr::ObjTypes getObjType() const;
00160
00162     virtual TypeData* memberwiseClone();
00163
00165     virtual std::ostream& C_Out(std::ostream& out) const;
00166
00167     virtual bool isEqual(const TypeData& equalTo) const;
00168
00169     OPS_DEFINE_VISITABLE()
00170
00171 protected:
00172     TypePtr(TypeData *pBase);
00173 // hide
00174     TypePtr();
00175
00176     TypeData    *m_pBased;
00177 };
00178
00179
00181
00190 class TypeSubProc : public TypeData, virtual public OPS::NonCopyableMix
00191 {
00192 public:
00193     typedef Modifiers<SubProcModifiers::MODS, SubProcModifiers> TMods;
00194
00195     TMods   m_aModifiers;
00196
00198     static TypeSubProc* create();
00199
00201
00207     static TypeSubProc* create(TypeData *pRetValue);
00208
00209     ~TypeSubProc();
00210
00211     virtual TypeSubProc* clone() const;
00212
00214     void setRetValueType(TypeData *pRetValue);
00215
00217     TypeData& getRetValueType();
00218
00220     const TypeData& getRetValueType() const;
00221
00222     virtual std::string dumpState() const;
00223
00225     virtual OpsNewIr::ObjTypes getObjType() const;
00226
00228     virtual TypeData* memberwiseClone();
00229
00231     SubProcParams   m_oParams;
00232
00234     virtual std::ostream& C_Out(std::ostream& out) const;
00235
00236     virtual bool isEqual(const TypeData& equalTo) const;
00237
00238     OPS_DEFINE_VISITABLE()
00239
00240 protected:
00241     TypeSubProc();
00242     TypeSubProc(TypeData *pRetValue);
00243
00244     TypeData    *m_pRetValue;
00245 };
00246
00247
00249
00256 class TypeArray : public TypeData, virtual public OPS::NonCopyableMix
00257 {
00258 public:
00259
00261     struct Limits
00262     {
00264         Limits() : low(-1), high(-1)    {}
00265
00267         Limits(int aLow, int aHigh) : low(aLow), high(aHigh)    {}
00268
00270         Limits(int aHigh) : low(0), high(aHigh - 1) {}
00271
00272         inline operator==(const Limits& lim) const
00273         {
00274             return low == lim.low && high == lim.high;
00275         }
00276
00277         inline operator!=(const Limits& lim) const
00278         {
00279             return !(*this == lim);
00280         }
00281
00282         int low, high;
00283     };
00284
00286
00290     static TypeArray* create(TypeData* pBase, Limits firstDim);
00291
00293
00298     static TypeArray* create(TypeData* pBase, Limits firstDim, Limits secondDim);
00299
00301
00305     static TypeArray* create(TypeData* pBase, std::vector<Limits>   aDims);
00306
00307     ~TypeArray();
00308
00309     TypeArray* clone() const;
00310
00311     int getDimsCount() const;
00312
00313     inline Limits& operator[](int index){return m_aDims[index];}
00314
00315     inline const Limits& operator[](int index)  const {return m_aDims[index];}
00316
00317     void setBaseType(TypeData* base);
00318
00319     TypeData* getBaseType();
00320
00321     virtual std::string dumpState() const;
00322
00324     virtual OpsNewIr::ObjTypes getObjType() const;
00325
00327     virtual TypeData* memberwiseClone();
00329     virtual std::ostream& C_Out(std::ostream& out) const;
00330     std::ostream& C_Out_Dims(std::ostream& out);
00331
00332     virtual bool isEqual(const TypeData& equalTo) const;
00333
00334     OPS_DEFINE_VISITABLE()
00335
00336 protected:
00337     TypeArray();
00338
00339     TypeData    *m_pBase;
00340     std::vector<Limits> m_aDims;
00341 };
00342
00343
00344 typedef std::list<NameType*>        TFields;
00345 typedef ListIter<NameType, TFields> FieldIter;
00346 typedef ConstListIter<NameType, TFields>    FieldConstIter;
00347
00349
00357 class TypeStruct : public TypeData, virtual public OPS::NonCopyableMix
00358 {
00359 public:
00361
00367     static TypeStruct*  create(bool bIsUnion = false);
00368     ~TypeStruct();
00369
00370     virtual TypeStruct* clone() const;
00371
00373
00377     void addFront(const std::string& strName, TypeData *pType);
00378
00380
00384     void addBack(const std::string& strName, TypeData *pType);
00385
00387
00392     void insertBefore(FieldIter it, const std::string& strName, TypeData *pType);
00393
00395
00400     void insertAfter(FieldIter it, const std::string& strName, TypeData *pType);
00401
00403
00406     void erase(FieldIter it);
00407
00409
00412     void erase(const std::string& strName);
00413
00415
00418     FieldIter   getFirst();
00419
00421
00424     FieldConstIter  getFirst() const;
00425
00427
00430     FieldIter   getLast();
00431
00433
00436     FieldConstIter  getLast() const;
00437
00439
00442     FieldIter   getByName(const std::string& strName);
00443
00445     void clear();
00446
00448
00452     void setUnion(bool bIsUnion);
00453
00455     bool isUnion();
00456
00457     virtual std::string dumpState() const;
00458
00460     virtual OpsNewIr::ObjTypes getObjType() const;
00461
00463     virtual TypeData* memberwiseClone();
00464
00466     virtual std::ostream& C_Out(std::ostream& out) const;
00467
00468     virtual bool isEqual(const TypeData& equalTo) const;
00469
00470     OPS_DEFINE_VISITABLE()
00471
00472 protected:
00473     TypeStruct(bool bIsUnion);
00474
00475     TFields m_lstFields;
00476
00477     bool    m_bIsUnion;
00478 };
00479
00481
00487 class TypeNamed : public TypeData, virtual public OPS::NonCopyableMix
00488 {
00489 public:
00491
00495     static TypeNamed* create(Namespace *pNamespace, const std::string& strName);
00496     ~TypeNamed();
00497
00498     virtual TypeNamed* clone() const;
00499
00500     virtual std::string dumpState() const;
00501
00503     virtual OpsNewIr::ObjTypes getObjType() const;
00504
00506     virtual TypeData* memberwiseClone();
00507
00509     NameTypeIter getType();
00510
00512     virtual std::ostream& C_Out(std::ostream& out) const;
00513
00514     virtual bool isEqual(const TypeData& equalTo) const;
00515
00516     OPS_DEFINE_VISITABLE()
00517
00518 protected:
00519     TypeNamed(Namespace *pNamespace, const std::string& strName);
00520
00521
00522     Namespace   *m_pNamespace;
00523     std::string m_strName;
00524 };
00525
00526 #endif                      //TypeDataS_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл Expressions.h

  • Файлы

Expressions.h

00001 #ifndef _EXPRESSIONS_H_
00002 #define _EXPRESSIONS_H_
00003
00004 #include "IRCommon.h"
00005 #include "Namespace.h"
00006
00007
00009
00023 class ExprNode : public IRObject, virtual public OPS::NonCopyableMix
00024 {
00025 public:
00027     virtual bool isLValue() = 0;
00028
00030
00035     virtual ExprNode* clone() const = 0;
00036
00037     virtual ExprNode* clone(const ExprNode& exprNode) const = 0;
00038
00039     virtual ExprNode* clone(const Statement& parentStmt) const = 0;
00040
00041     void setParentExpr(const ExprNode& parent);
00042     void setParentNull();
00043     bool hasParentExpr() const;
00044     ExprNode& getParentExpr();
00045     const ExprNode& getParentExpr() const;
00046
00047     void setParentStatement(const Statement& parent);
00048     bool hasParentStatement() const;
00049     Statement& getParentStatement();
00050     const Statement& getParentStatement() const;
00051
00052     bool hasParentBlock() const;
00053     Block& getParentBlock();
00054     const Block& getParentBlock() const;
00055
00056     bool hasParentNamespace() const;
00057     Namespace& getParentNamespace();
00058     const Namespace& getParentNamespace() const;
00059
00060     virtual bool isEqual(const ExprNode& exprNode) const = 0;
00061
00063     virtual std::ostream& C_Out(std::ostream& out) const = 0;
00064
00065     OPS_DEFINE_VISITABLE()
00066
00067 protected:
00068     ExprNode();
00069
00070     IRObject* m_uplink;
00071 };
00072
00074
00078 class ExprNull : public ExprNode, virtual public OPS::NonCopyableMix
00079 {
00080 public:
00081     static ExprNull* create();
00082
00083     virtual ExprNull* clone() const;
00084
00085     virtual ExprNull* clone(const ExprNode& exprNode) const;
00086
00087     virtual ExprNull* clone(const Statement& parentStmt) const;
00088
00089     virtual bool isEqual(const ExprNode& exprNode) const;
00090
00092     virtual bool isLValue();
00093
00094     virtual std::string dumpState() const;
00095
00097     virtual std::ostream& C_Out(std::ostream& out) const;
00098
00099     OPS_DEFINE_VISITABLE()
00100
00101 protected:
00102     ExprNull();
00103 };
00104
00106 class ExprImm : public ExprNode, virtual public OPS::NonCopyableMix
00107 {
00108 public:
00110     static ExprImm* create(const ImmValue& oValue);
00111
00113     template<class TValue>
00114     inline static ExprImm* create(ImmValue::IV valueType, TValue value)
00115     {
00116         return create(ImmValue(valueType, value));
00117     }
00118
00119     virtual bool isEqual(const ExprNode& exprNode) const;
00120
00121     virtual ExprImm* clone() const;
00122
00123     virtual ExprImm* clone(const ExprNode& exprNode) const;
00124
00125     virtual ExprImm* clone(const Statement& parentStmt) const;
00126
00127     virtual bool isLValue();
00128     virtual std::string dumpState() const;
00129
00131     virtual OpsNewIr::ObjTypes getObjType() const;
00132
00133
00135     ImmValue    m_oValue;
00136
00138     virtual std::ostream& C_Out(std::ostream& out) const;
00139
00140     OPS_DEFINE_VISITABLE()
00141
00142 protected:
00143     ExprImm(const ImmValue& oValue);
00144
00145 };
00146
00148
00152 class ExprData : public ExprNode, virtual public OPS::NonCopyableMix
00153 {
00154 public:
00156
00159     static ExprData* create(const NameReference& oDataObject);
00160
00162
00166     static ExprData* create(Namespace &rNamespace, const std::string& strName);
00167
00168     virtual bool isEqual(const ExprNode& exprNode) const;
00169
00170     virtual ExprData* clone() const;
00171
00172     virtual ExprData* clone(const ExprNode& exprNode) const;
00173
00174     virtual ExprData* clone(const Statement& parentStmt) const;
00175
00176     virtual bool isLValue();
00177
00179     const NameReference& getData() const;
00180
00181     virtual std::string dumpState() const;
00182
00184     virtual OpsNewIr::ObjTypes getObjType() const;
00185
00187     virtual std::ostream& C_Out(std::ostream& out) const;
00188
00189     OPS_DEFINE_VISITABLE()
00190
00191 protected:
00192     ExprData(const NameReference& oDataObject);
00193
00194     NameReference m_oDataObject;
00195 };
00196
00198
00202 class ExprOper : public ExprNode, virtual public OPS::NonCopyableMix
00203 {
00204 public:
00205     typedef std::vector<ExprNode*> TArgumentsList;
00206
00207     virtual ~ExprOper();
00208
00210     enum OT
00211     {
00212         // Unary
00213         OT_UNPLUS,      // Unary +
00214         OT_UNMINUS,     // Unary -
00215
00216         OT_UNPOSTPP,    // Unary postfix ++
00217         OT_UNPREFPP,    // Unary prefix  ++
00218         OT_UNPOSTMM,    // Unary postfix --
00219         OT_UNPREFMM,    // Unary prefix  --
00220
00221         OT_SIZEOF,      // sizeof() operator
00222
00223         OT_ADDR,        // &
00224         OT_UNREF,       // *
00225
00226         // Binary
00227         OT_PLUS,        // +
00228         OT_MINUS,       // -
00229         OT_MUL,         // *
00230         OT_DIV,         // /
00231         OT_MOD,         // %
00232
00233         // Assign
00234         OT_ASSIGN,      // =
00235
00236         OT_PLUS_ASSIGN,     // +=
00237         OT_MINUS_ASSIGN,    // -=
00238         OT_MUL_ASSIGN,      // *=
00239         OT_DIV_ASSIGN,      // /=
00240         OT_MOD_ASSIGN,      // %=
00241         OT_LSHIFT_ASSIGN,   // <<=
00242         OT_RSHIFT_ASSIGN,   // >>=
00243
00244         OT_BAND_ASSIGN,     // &=
00245         OT_BOR_ASSIGN,      // |=
00246         OT_BXOR_ASSIGN,     // ^=
00247
00248         // Equality
00249         OT_LESS,        // <
00250         OT_GREATER,     // >
00251         OT_LESSEQ,      // <=
00252         OT_GREATEREQ,   // >=
00253         OT_EQ,          // ==
00254         OT_NOTEQ,       // !=
00255
00256         OT_LSHIFT,      // <<
00257         OT_RSHIFT,      // >>
00258
00259         // Logical
00260         OT_LNOT,        // !
00261         OT_LAND,        // &&
00262         OT_LOR,         // ||
00263
00264         // Bitwise
00265         OT_BNOT,        // ~
00266         OT_BAND,        // &
00267         OT_BOR,         // |
00268         OT_BXOR,        // ^
00269
00270         // Special
00271         OT_CALL,        // ()
00272         OT_ARRAY,       // []
00273         OT_STRUCT,      // .
00274         OT_PTRSTRUCT,   // ->
00275
00276         // Special case
00277         OT_POW          // pow(a, b) (at C language)
00278     };
00279
00281     struct OperDescr
00282     {
00284         std::string strPrintValue;
00285
00287         int nArgs;
00288     };
00289
00291     static OperDescr getDescrByOT(OT nOperator)
00292     {
00293         std::string strOper;
00294         int nArgs;
00295
00296         switch(nOperator) {
00297         case OT_PLUS:
00298             strOper += "+";
00299             nArgs = 2;
00300             break;
00301         case OT_MINUS:
00302             strOper += "-";
00303             nArgs = 2;
00304             break;
00305         case OT_MUL:
00306             strOper += "*";
00307             nArgs = 2;
00308             break;
00309         case OT_DIV:
00310             strOper += "/";
00311             nArgs = 2;
00312             break;
00313         case OT_MOD:
00314             strOper += "%";
00315             nArgs = 2;
00316             break;
00317
00318         case OT_UNPLUS:
00319             strOper += "+";
00320             nArgs = 1;
00321             break;
00322
00323         case OT_UNMINUS:
00324             strOper += "-";
00325             nArgs = 1;
00326             break;
00327
00328         case OT_UNPOSTPP:   // Unary postfix ++
00329             strOper += "()++";
00330             nArgs = 1;
00331             break;
00332         case OT_UNPREFPP:   // Unary prefix  ++
00333             strOper += "++()";
00334             nArgs = 1;
00335             break;
00336
00337         case OT_UNPOSTMM:   // Unary postfix --
00338             strOper += "()--";
00339             nArgs = 1;
00340             break;
00341         case OT_UNPREFMM:   // Unary prefix  --
00342             strOper += "--()";
00343             nArgs = 1;
00344             break;
00345
00346         case OT_SIZEOF:     // sizeof() operator
00347             strOper += "sizeof()";
00348             nArgs = 1;
00349             break;
00350
00351         case OT_ASSIGN:     // =
00352             strOper += "=";
00353             nArgs = 2;
00354             break;
00355
00356         case OT_PLUS_ASSIGN:    // +=
00357             strOper += "+=";
00358             nArgs = 2;
00359             break;
00360
00361         case OT_MINUS_ASSIGN:    // -=
00362             strOper += "-=";
00363             nArgs = 2;
00364             break;
00365
00366         case OT_MUL_ASSIGN:      // *=
00367             strOper += "*=";
00368             nArgs = 2;
00369             break;
00370
00371
00372         case OT_DIV_ASSIGN:      // /=
00373             strOper += "/=";
00374             nArgs = 2;
00375             break;
00376
00377         case OT_MOD_ASSIGN:      // %=
00378             strOper += "%=";
00379             nArgs = 2;
00380             break;
00381
00382         case OT_LSHIFT_ASSIGN:   // <<=
00383             strOper += "<<=";
00384             nArgs = 2;
00385             break;
00386
00387         case OT_RSHIFT_ASSIGN:   // >>=
00388             strOper += ">>=";
00389             nArgs = 2;
00390             break;
00391
00392
00393         case OT_BAND_ASSIGN:        // &=
00394             strOper += "&=";
00395             nArgs = 2;
00396             break;
00397
00398         case OT_BOR_ASSIGN:     // |=
00399             strOper += "|=";
00400             nArgs = 2;
00401             break;
00402
00403         case OT_BXOR_ASSIGN:        // ^=
00404             strOper += "^=";
00405             nArgs = 2;
00406             break;
00407
00408
00409         case OT_LESS:
00410             strOper += "<";
00411             nArgs = 2;
00412             break;
00413
00414         case OT_GREATER:
00415             strOper += ">";
00416             nArgs = 2;
00417             break;
00418
00419         case OT_LESSEQ:
00420             strOper += "<=";
00421             nArgs = 2;
00422             break;
00423
00424         case OT_GREATEREQ:
00425             strOper += ">=";
00426             nArgs = 2;
00427             break;
00428
00429         case OT_EQ:
00430             strOper += "==";
00431             nArgs = 2;
00432             break;
00433
00434         case OT_NOTEQ:
00435             strOper += "!=";
00436             nArgs = 2;
00437             break;
00438
00439         case OT_LSHIFT:     // <<
00440             strOper += "<<";
00441             nArgs = 2;
00442             break;
00443         case OT_RSHIFT:     // >>
00444             strOper += ">>";
00445             nArgs = 2;
00446             break;
00447
00448         // Logical
00449         case OT_LNOT:        // !
00450             strOper += "!";
00451             nArgs = 1;
00452             break;
00453         case OT_LAND:       // &&
00454             strOper += "&&";
00455             nArgs = 2;
00456             break;
00457         case OT_LOR:         // ||
00458             strOper += "||";
00459             nArgs = 2;
00460             break;
00461
00462         // Binary
00463         case OT_BNOT:        // ~
00464             strOper += "~";
00465             nArgs = 1;
00466             break;
00467
00468         case OT_BAND:        // &
00469             strOper += "&";
00470             nArgs = 2;
00471             break;
00472
00473         case OT_BOR:         // |
00474             strOper += "|";
00475             nArgs = 2;
00476             break;
00477
00478         case OT_BXOR:        // ^
00479             strOper += "!=";
00480             nArgs = 2;
00481             break;
00482
00483         case OT_CALL:
00484             strOper += "()";
00485             nArgs = -1;
00486             break;
00487         case OT_ARRAY:
00488             strOper += "[]";
00489             nArgs = -1;
00490             break;
00491
00492         case OT_STRUCT: // .
00493             strOper += ".";
00494             nArgs = -1;
00495             break;
00496
00497         case OT_PTRSTRUCT:  // ->
00498             strOper += "->";
00499             nArgs = -1;
00500             break;
00501
00502         case OT_ADDR:
00503             strOper += "&";
00504             nArgs = 1;
00505             break;
00506
00507         case OT_UNREF:
00508             strOper += "*";
00509             nArgs = 1;
00510             break;
00511
00512         case OT_POW:
00513             strOper += "pow";
00514             nArgs = 2;
00515             break;
00516
00517         default:
00518             strOper += "(undefined)";
00519             nArgs = -1;
00520         }
00521
00522         OperDescr od;
00523         od.strPrintValue = strOper;
00524         od.nArgs = nArgs;
00525         return od;
00526     }
00527
00529     static std::string getStrByOT(OT nOperator)
00530     {
00531         return getDescrByOT(nOperator).strPrintValue;
00532     }
00533
00535     static int getArgsCntByOT(OT nOperator)
00536     {
00537         return getDescrByOT(nOperator).nArgs;
00538     }
00539
00541
00554     static ExprOper* create(OT nOperator, ExprNode* pArg1, ExprNode* pArg2 = 0, ExprNode* pArg3 = 0);
00555
00557
00564     static ExprOper* create(OT nOperator, const TArgumentsList& args);
00565
00567
00577     static ExprOper* createArray(const NameReference& nr, ExprNode* pArg1, ExprNode *pArg2 = 0);
00578
00580
00591     static ExprOper* createArray(Namespace &rName, const std::string& strName, ExprNode *pArg1, ExprNode *pArg2 = 0);
00592
00594
00602     static ExprOper* createCall(const NameReference& oIter, ExprNode* pArg = 0);
00603
00605
00615     static ExprOper* createCall(Namespace &rName, const std::string& strName, ExprNode* pArg1 = 0, ExprNode *pArg2 = 0);
00616
00617     virtual ExprOper* clone() const;
00618
00619     virtual bool isEqual(const ExprNode& exprNode) const;
00620
00621     virtual bool isLValue();
00622     virtual std::string dumpState() const;
00623
00625     int getOperArgsCount() const;
00626
00628     ExprNode* getOperArgByNum(int nIndex) const;
00629
00631
00635     void setOperArgByNum(int nIndex, ExprNode* pArg);
00636
00638
00644     bool replaceArg(ExprNode* pOldArg, ExprNode* pNewArg);
00645
00647     virtual OT getOper() const;
00648
00650     virtual OpsNewIr::ObjTypes getObjType() const;
00651
00653     virtual std::ostream& C_Out(std::ostream& out) const;
00654
00655     OPS_DEFINE_VISITABLE()
00656
00657 protected:
00658     ExprOper(OT nOperator);
00659     ExprOper(OT nOperator, ExprNode* pArg);
00660
00661     virtual void setOper(OT oper);
00662
00663     void setUplinksToArguments();
00664
00665     void addOperArgument(ExprNode* pArg);
00666
00667     void setCloneArguments(const TArgumentsList& newArgs);
00668
00669     OT  m_nOperator;        // included () [] -> * .
00670
00671 protected:
00672     TArgumentsList m_aArgs;
00673 };
00674
00676 class ExprUnary : public ExprOper, virtual public OPS::NonCopyableMix
00677 {
00678 public:
00680
00684     static ExprUnary* create(OT nOperator, ExprNode *pArg);
00685
00686     virtual ExprUnary* clone() const;
00687
00688     virtual ExprUnary* clone(const ExprNode& exprNode) const;
00689
00690     virtual ExprUnary* clone(const Statement& parentStmt) const;
00691
00692     virtual bool isLValue();
00693
00695
00700     void setArg(ExprNode *pArg);
00701
00703     const ExprNode& getArg() const;
00704
00706     ExprNode* unsafeGetArg();
00707
00708     virtual std::string dumpState() const;
00709
00711     virtual OpsNewIr::ObjTypes getObjType() const;
00712
00714     virtual std::ostream& C_Out(std::ostream& out) const;
00715
00716     OPS_DEFINE_VISITABLE()
00717
00718 private:
00719     ExprUnary(OT nOperator);
00720     ExprUnary(OT nOperator, ExprNode *pArg);
00721 };
00722
00724 class ExprBinary : public ExprOper, virtual public OPS::NonCopyableMix
00725 {
00726 public:
00728
00733     static ExprBinary* create(OT nOperator, ExprNode *pLeftArg, ExprNode *pRightArg);
00734
00735     virtual ExprBinary* clone() const;
00736
00737     virtual ExprBinary* clone(const ExprNode& exprNode) const;
00738
00739     virtual ExprBinary* clone(const Statement& parentStmt) const;
00740
00741     virtual bool isLValue();
00742
00744
00749     void setLeftArg(ExprNode *pArg);
00750
00752     const ExprNode& getLeftArg() const;
00753
00755     ExprNode* unsafeGetLeftArg();
00756
00758
00763     void setRightArg(ExprNode *pArg);
00764
00766     const ExprNode& getRightArg() const;
00767
00769     ExprNode* unsafeGetRightArg();
00770
00771     virtual std::string dumpState() const;
00772
00774     virtual OpsNewIr::ObjTypes getObjType() const;
00775
00777     virtual std::ostream& C_Out(std::ostream& out) const;
00778
00779     OPS_DEFINE_VISITABLE()
00780
00781 private:
00782     ExprBinary(OT nOperator);
00783     ExprBinary(OT nOperator, ExprNode *pLeftArg, ExprNode *pRightArg);
00784 };
00785
00787 class ExprAssign : public ExprOper, virtual public OPS::NonCopyableMix
00788 {
00789 public:
00791
00796     static ExprAssign* create(OT nOperator, ExprNode *pLValue, ExprNode *pRValue);
00797
00798     virtual ExprAssign* clone() const;
00799
00800     virtual ExprAssign* clone(const ExprNode& exprNode) const;
00801
00802     virtual ExprAssign* clone(const Statement& parentStmt) const;
00803
00805
00809     static ExprAssign* create(ExprNode *pLValue, ExprNode *pRValue);
00810
00811     virtual bool isLValue();
00812
00814
00819     void setLeftExpr(ExprNode *pArg);
00820
00822     const ExprNode& getLeftExpr() const;
00823
00825     ExprNode* unsafeGetLeftExpr();
00826
00828
00833     void setRightExpr(ExprNode *pArg);
00834
00836     const ExprNode& getRightExpr() const;
00837
00839     ExprNode* unsafeGetRightExpr();
00840
00841     virtual std::string dumpState() const;
00842
00844     virtual OpsNewIr::ObjTypes getObjType() const;
00845
00846     std::ostream& ExprAssign::C_Out(std::ostream& out) const;
00847
00848     OPS_DEFINE_VISITABLE()
00849
00850 private:
00851     ExprAssign(OT nOperator);
00852     ExprAssign(OT nOperator, ExprNode *pLValue, ExprNode *pRValue);
00853 };
00854
00855
00857 class ExprArray : public ExprOper, virtual public OPS::NonCopyableMix
00858 {
00859 public:
00861
00869     static ExprArray* create(const NameReference& nr, ExprNode* pArg);
00870
00871     virtual ExprArray* clone() const;
00872
00873     virtual ExprArray* clone(const ExprNode& exprNode) const;
00874
00875     virtual ExprArray* clone(const Statement& parentStmt) const;
00876
00877     virtual bool isLValue();
00878
00880     const ExprNode& getNameExpr() const;
00881
00883     ExprNode* unsafeGetNameExpr();
00884
00886     void setNameExpr(ExprNode* data);
00887
00889     const ExprNode& getDimExpr(int nDim) const;
00890
00892     ExprNode* unsafeGetDimExpr(int nDim);
00893
00895
00903     void setDimExpr(int nDim, ExprNode *pExpr);
00904
00906     void addDimExpr(ExprNode *pExpr);
00907
00909     int getDimsCount() const;
00910
00911     virtual std::string dumpState() const;
00912
00914     virtual OpsNewIr::ObjTypes getObjType() const;
00915
00917     virtual std::ostream& C_Out(std::ostream& out) const;
00918
00919     OPS_DEFINE_VISITABLE()
00920
00921 protected:
00922     ExprArray();
00923     ExprArray(const NameReference& nr, ExprNode* pArg);
00924 };
00925
00926
00928 class ExprCall : public ExprOper, virtual public OPS::NonCopyableMix
00929 {
00930 public:
00932
00937     static ExprCall* create(const NameReference& nr);
00938
00940
00946     static ExprCall* create(const NameReference& nr, ExprNode* pArg);
00947
00948     virtual ExprCall* clone() const;
00949
00950     virtual ExprCall* clone(const ExprNode& exprNode) const;
00951
00952     virtual ExprCall* clone(const Statement& parentStmt) const;
00953
00955     const ExprNode& getNameExpr() const;
00956
00958     ExprNode* unsafeGetNameExpr();
00959
00961     void setNameExpr(ExprNode* data);
00962
00964     const ExprNode& getParamExpr(int param) const;
00965
00967     ExprNode* unsafeGetParamExpr(int param);
00968
00970
00977     void setParamExpr(int param, ExprNode *pExpr);
00978
00980     void addParamExpr(ExprNode *pExpr);
00981
00983     int getParamsCount() const;
00984
00985
00986     virtual std::string dumpState() const;
00987
00989     virtual OpsNewIr::ObjTypes getObjType() const;
00990
00992     virtual std::ostream& C_Out(std::ostream& out) const;
00993
00994     OPS_DEFINE_VISITABLE()
00995
00996 protected:
00997     ExprCall();
00998 };
00999
01001 class ExprStruct : public ExprOper, virtual public OPS::NonCopyableMix
01002 {
01003 public:
01004     static ExprStruct* create(ExprNode* pStructExpr, const std::string& strMember);
01005     static ExprStruct* createPtr(ExprNode* pStructExpr, const std::string& strMember);
01006
01007     virtual bool isLValue();
01008
01009     virtual ExprStruct* clone() const;
01010
01011     virtual ExprStruct* clone(const ExprNode& exprNode) const;
01012
01013     virtual ExprStruct* clone(const Statement& parentStmt) const;
01014
01016
01021     void setStructExpr(ExprNode *pExpr);
01022
01024     const ExprNode& getStructExpr() const;
01025
01027     ExprNode* unsafeGetStructExpr();
01028
01030
01035     void setMemberExpr(const std::string& strMember);
01036
01038     std::string getMemberExpr() const;
01039
01040
01041     virtual std::string dumpState() const;
01042
01044     virtual OpsNewIr::ObjTypes getObjType() const;
01045
01046     OPS_DEFINE_VISITABLE()
01047
01048 private:
01049     ExprStruct(OT type);
01050
01051     std::string m_strMember;
01052 };
01053
01054 #endif                      //EXPRESSIONS_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- l -

  • Limits() : TypeArray::Limits
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- m -

  • m_oParams : TypeSubProc
  • m_oValue : ExprImm
  • memberwiseClone() : TypeStruct , TypeArray , TypeSubProc , TypePtr , TypeSimple , TypeNamed
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- n -

  • Namespace() : Namespace
  • nArgs : ExprOper::OperDescr
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- b -

  • Block() : Block
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- c -

  • C_Out() : TypeSimple , TypePtr , TypeArray , ExprData , Block , StmtFor , ExprOper , StmtWhile , StmtDoWhile , StmtIf , TypeStruct , ExprUnary , StmtSwitch , StmtGoto , StmtEmpty , ExprBinary , StmtExpr , TypeNamed , StmtReturn , StmtBreak , ExprArray , StmtContinue , TypeSubProc , ExprNode , ExprCall , IRObject , ExprNull , NameObject , NameVar , NameType , NameLabel , ExprImm , NameSubProc , Namespace , Program , Statement
  • clear() : Block , TypeStruct
  • clone() : TypeData , TypeSimple , ExprNode , Statement
  • cloneSubProc() : Namespace
  • create() : ExprImm , ExprOper , ExprAssign , TypePtr , Block , StmtIf , TypeArray , StmtExpr , StmtContinue , ExprUnary , StmtEmpty , ExprAssign , TypeArray , ExprArray , StmtBreak , StmtWhile , TypeSimple , StmtReturn , NameSubProc , TypeArray , ExprData , StmtWhile , TypeStruct , Block , StmtFor , TypeSubProc , ExprBinary , StmtDoWhile , TypeNamed , StmtDoWhile , StmtFor , ExprCall , ExprOper , TypeSubProc , ExprImm , ExprData
  • createArray() : ExprOper
  • createAssign() : StmtExpr
  • createBool() : TypeSimple
  • createCall() : ExprOper
  • createChar() : TypeSimple
  • createEmptyBlock() : Block
  • createFloat() : TypeSimple
  • createInt() : TypeSimple
  • createNamedType() : Namespace
  • createVoid() : TypeSimple
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- d -

  • detach() : Block
  • dumpState() : IRObject
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- e -

  • erase() : TypeStruct , Block , Namespace , TypeStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- g -

  • generateUniqueIdentifier() : Namespace
  • getArg() : ExprUnary
  • getArgsCntByOT() : ExprOper
  • getAsBlock() : Statement
  • getAsDoWhile() : Statement
  • getAsEmpty() : Statement
  • getAsExpr() : Statement
  • getAsFor() : Statement
  • getAsGoto() : Statement
  • getAsIf() : Statement
  • getAsReturn() : Statement
  • getAsSwitch() : Statement
  • getAsWhile() : Statement
  • getBody() : NameSubProc
  • getByName() : TypeStruct
  • getByStmt() : Block
  • getComprehBlock() : Statement
  • getCondition() : StmtWhile , StmtDoWhile , StmtIf
  • getData() : ExprData
  • getDescrByOT() : ExprOper
  • getDimExpr() : ExprArray
  • getDimsCount() : ExprArray
  • getElseRef() : StmtIf
  • getFirst() : TypeStruct , Block
  • getHigherNamespace() : Namespace
  • getIntBlock() : StmtGoto , StmtEmpty , StmtExpr , StmtReturn , StmtBreak , StmtContinue , Statement , Block , StmtLoop , StmtIf , StmtSwitch
  • getLabel() : Namespace
  • getLabeledStatement() : NameLabel
  • getLabelsFirst() : Namespace
  • getLabelsLast() : Namespace
  • getLast() : TypeStruct , Block , TypeStruct
  • getLeftArg() : ExprBinary
  • getLeftExpr() : ExprAssign
  • getMaxInt() : StmtGoto , StmtEmpty , StmtExpr , StmtBreak , StmtReturn , StmtContinue , Statement , Block , StmtSwitch , StmtIf
  • getMemberExpr() : ExprStruct
  • getName() : NameObject , Namespace
  • getNameExpr() : ExprArray , ExprCall
  • getNameRecursive() : Namespace
  • getNameReference() : Namespace
  • getNamesCount() : Namespace
  • getNamesFirst() : Namespace
  • getNamesLast() : Namespace
  • getNamespace() : Block
  • getObjType() : StmtBreak , ExprImm , StmtReturn , StmtFor , ExprStruct , NameLabel , NameSubProc , TypePtr , ExprUnary , ExprArray , ExprData , StmtEmpty , StmtExpr , TypeSubProc , ExprCall , ExprOper , StmtIf , TypeSimple , ExprAssign , StmtGoto , IRObject , NameVar , StmtSwitch , StmtDoWhile , StmtContinue , Block , TypeStruct , ExprBinary , StmtWhile , TypeArray , NameType , TypeNamed
  • getOper() : ExprOper
  • getOperArgByNum() : ExprOper
  • getOperArgsCount() : ExprOper
  • getParamExpr() : ExprCall
  • getParamsCount() : ExprCall
  • getParentBlock() : Statement
  • getParentStmt() : Statement
  • getProgram() : Namespace
  • getPrototype() : NameSubProc
  • getRetValueType() : TypeSubProc
  • getRightArg() : ExprBinary
  • getRightExpr() : ExprAssign
  • getStatementsCount() : Block
  • getStorageClassSpecifier() : TypeData
  • getStrByOT() : ExprOper
  • getStructExpr() : ExprStruct
  • getSubProc() : Namespace
  • getSubProcsFirst() : Namespace
  • getSubProcsLast() : Namespace
  • getThenRef() : StmtIf
  • getThisInBlock() : Statement
  • getType() : NameVar , TypeSimple , Namespace , TypeNamed
  • getTypesFirst() : Namespace
  • getTypesLast() : Namespace
  • getValue() : NameVar
  • getVar() : Namespace
  • getVarsFirst() : Namespace
  • getVarsLast() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- h -

  • hasName() : Namespace
  • hasNameRecursive() : Namespace
  • hasParentNamespace() : Statement
  • hasParentStmt() : Statement
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- i -

  • insertAfter() : TypeStruct , Block
  • insertAfterConst() : Namespace
  • insertAfterLabel() : Namespace
  • insertAfterSubProc() : Namespace
  • insertAfterType() : Namespace
  • insertAfterVariable() : Namespace
  • insertBefore() : TypeStruct , Block
  • insertBeforeConst() : Namespace
  • insertBeforeLabel() : Namespace
  • insertBeforeSubProc() : Namespace
  • insertBeforeType() : Namespace
  • insertBeforeVariable() : Namespace
  • isArgument() : NameVar
  • isConst() : NameVar
  • isDeepViewNeed() : StmtSwitch , StmtGoto , StmtEmpty , StmtExpr , Statement , StmtReturn , StmtBreak , StmtContinue , Block , StmtLoop , StmtBranch , StmtIf
  • isEmpty() : Block
  • isIntBlockValid() : StmtEmpty , StmtExpr , StmtSwitch , StmtBreak , StmtContinue , StmtGoto , Statement , Block , StmtReturn , StmtIf , StmtLoop
  • isLValue() : ExprNode , ExprNull
  • isPrototype() : NameSubProc
  • isSubProcVisibleFor() : Namespace
  • isUnion() : TypeStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- r -

  • replaceArg() : ExprOper
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- s -

  • setArg() : ExprUnary
  • setArgumentState() : NameVar
  • setBody() : NameSubProc
  • setCondition() : StmtWhile , StmtDoWhile , StmtIf
  • setDimExpr() : ExprArray
  • setElseBlock() : StmtIf
  • setLabeledStatement() : NameLabel
  • setLeftArg() : ExprBinary
  • setLeftExpr() : ExprAssign
  • setMemberExpr() : ExprStruct
  • setNameExpr() : ExprArray , ExprCall
  • setOperArgByNum() : ExprOper
  • setParamExpr() : ExprCall
  • setParentStmt() : Statement
  • setPrototype() : NameSubProc
  • setRetValueType() : TypeSubProc
  • setRightArg() : ExprBinary
  • setRightExpr() : ExprAssign
  • setStorageClassSpecifier() : TypeData
  • setStructExpr() : ExprStruct
  • setThenBlock() : StmtIf
  • setToPrototype() : NameSubProc
  • setType() : NameVar , TypeSimple
  • setUnion() : TypeStruct
  • setValue() : NameVar
  • strPrintValue : ExprOper::OperDescr
  • syncNamespace() : NameSubProc
  • syncSubProc() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- u -

  • unlink() : Block
  • unsafeGetArg() : ExprUnary
  • unsafeGetDimExpr() : ExprArray
  • unsafeGetLeftArg() : ExprBinary
  • unsafeGetLeftExpr() : ExprAssign
  • unsafeGetNameExpr() : ExprCall , ExprArray
  • unsafeGetParamExpr() : ExprCall
  • unsafeGetRightArg() : ExprBinary
  • unsafeGetRightExpr() : ExprAssign
  • unsafeGetStructExpr() : ExprStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- a -

  • addBack() : TypeStruct , Block
  • addConst() : Namespace
  • addDimExpr() : ExprArray
  • addFront() : Block , TypeStruct
  • addLabel() : Namespace
  • addParamExpr() : ExprCall
  • addSubProc() : Namespace
  • addType() : Namespace
  • addVariable() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- l -

  • Limits() : TypeArray::Limits
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- m -

  • memberwiseClone() : TypeSimple , TypeNamed , TypeStruct , TypeArray , TypeSubProc , TypePtr
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- n -

  • Namespace() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- b -

  • Block() : Block
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- c -

  • C_Out() : TypeSimple , TypePtr , TypeArray , ExprData , Block , StmtFor , ExprOper , StmtWhile , StmtDoWhile , StmtIf , TypeStruct , ExprUnary , StmtSwitch , StmtGoto , StmtEmpty , ExprBinary , StmtExpr , TypeNamed , StmtReturn , StmtBreak , ExprArray , StmtContinue , TypeSubProc , ExprNode , ExprCall , IRObject , ExprNull , NameObject , NameVar , NameType , NameLabel , ExprImm , NameSubProc , Namespace , Program , Statement
  • clear() : Block , TypeStruct
  • clone() : TypeData , TypeSimple , ExprNode , Statement
  • cloneSubProc() : Namespace
  • create() : ExprImm , ExprOper , ExprAssign , TypePtr , Block , StmtIf , TypeArray , StmtExpr , StmtContinue , ExprUnary , StmtEmpty , ExprAssign , TypeArray , ExprArray , StmtBreak , StmtWhile , TypeSimple , StmtReturn , NameSubProc , TypeArray , ExprData , StmtWhile , TypeStruct , Block , StmtFor , TypeSubProc , ExprBinary , StmtDoWhile , TypeNamed , StmtDoWhile , StmtFor , ExprCall , ExprOper , TypeSubProc , ExprImm , ExprData
  • createArray() : ExprOper
  • createAssign() : StmtExpr
  • createBool() : TypeSimple
  • createCall() : ExprOper
  • createChar() : TypeSimple
  • createEmptyBlock() : Block
  • createFloat() : TypeSimple
  • createInt() : TypeSimple
  • createNamedType() : Namespace
  • createVoid() : TypeSimple
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- d -

  • detach() : Block
  • dumpState() : IRObject
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- e -

  • erase() : TypeStruct , Block , Namespace , TypeStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- g -

  • generateUniqueIdentifier() : Namespace
  • getArg() : ExprUnary
  • getArgsCntByOT() : ExprOper
  • getAsBlock() : Statement
  • getAsDoWhile() : Statement
  • getAsEmpty() : Statement
  • getAsExpr() : Statement
  • getAsFor() : Statement
  • getAsGoto() : Statement
  • getAsIf() : Statement
  • getAsReturn() : Statement
  • getAsSwitch() : Statement
  • getAsWhile() : Statement
  • getBody() : NameSubProc
  • getByName() : TypeStruct
  • getByStmt() : Block
  • getComprehBlock() : Statement
  • getCondition() : StmtWhile , StmtDoWhile , StmtIf
  • getData() : ExprData
  • getDescrByOT() : ExprOper
  • getDimExpr() : ExprArray
  • getDimsCount() : ExprArray
  • getElseRef() : StmtIf
  • getFirst() : TypeStruct , Block
  • getHigherNamespace() : Namespace
  • getIntBlock() : StmtGoto , StmtEmpty , StmtExpr , StmtReturn , StmtBreak , StmtContinue , Statement , Block , StmtLoop , StmtIf , StmtSwitch
  • getLabel() : Namespace
  • getLabeledStatement() : NameLabel
  • getLabelsFirst() : Namespace
  • getLabelsLast() : Namespace
  • getLast() : TypeStruct , Block , TypeStruct
  • getLeftArg() : ExprBinary
  • getLeftExpr() : ExprAssign
  • getMaxInt() : StmtGoto , StmtEmpty , StmtExpr , StmtBreak , StmtReturn , StmtContinue , Statement , Block , StmtSwitch , StmtIf
  • getMemberExpr() : ExprStruct
  • getName() : NameObject , Namespace
  • getNameExpr() : ExprArray , ExprCall
  • getNameRecursive() : Namespace
  • getNameReference() : Namespace
  • getNamesCount() : Namespace
  • getNamesFirst() : Namespace
  • getNamesLast() : Namespace
  • getNamespace() : Block
  • getObjType() : StmtBreak , ExprImm , StmtReturn , StmtFor , ExprStruct , NameLabel , NameSubProc , TypePtr , ExprUnary , ExprArray , ExprData , StmtEmpty , StmtExpr , TypeSubProc , ExprCall , ExprOper , StmtIf , TypeSimple , ExprAssign , StmtGoto , IRObject , NameVar , StmtSwitch , StmtDoWhile , StmtContinue , Block , TypeStruct , ExprBinary , StmtWhile , TypeArray , NameType , TypeNamed
  • getOper() : ExprOper
  • getOperArgByNum() : ExprOper
  • getOperArgsCount() : ExprOper
  • getParamExpr() : ExprCall
  • getParamsCount() : ExprCall
  • getParentBlock() : Statement
  • getParentStmt() : Statement
  • getProgram() : Namespace
  • getPrototype() : NameSubProc
  • getRetValueType() : TypeSubProc
  • getRightArg() : ExprBinary
  • getRightExpr() : ExprAssign
  • getStatementsCount() : Block
  • getStorageClassSpecifier() : TypeData
  • getStrByOT() : ExprOper
  • getStructExpr() : ExprStruct
  • getSubProc() : Namespace
  • getSubProcsFirst() : Namespace
  • getSubProcsLast() : Namespace
  • getThenRef() : StmtIf
  • getThisInBlock() : Statement
  • getType() : NameVar , TypeSimple , Namespace , TypeNamed
  • getTypesFirst() : Namespace
  • getTypesLast() : Namespace
  • getValue() : NameVar
  • getVar() : Namespace
  • getVarsFirst() : Namespace
  • getVarsLast() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- h -

  • hasName() : Namespace
  • hasNameRecursive() : Namespace
  • hasParentNamespace() : Statement
  • hasParentStmt() : Statement
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- i -

  • insertAfter() : TypeStruct , Block
  • insertAfterConst() : Namespace
  • insertAfterLabel() : Namespace
  • insertAfterSubProc() : Namespace
  • insertAfterType() : Namespace
  • insertAfterVariable() : Namespace
  • insertBefore() : TypeStruct , Block
  • insertBeforeConst() : Namespace
  • insertBeforeLabel() : Namespace
  • insertBeforeSubProc() : Namespace
  • insertBeforeType() : Namespace
  • insertBeforeVariable() : Namespace
  • isArgument() : NameVar
  • isConst() : NameVar
  • isDeepViewNeed() : StmtSwitch , StmtGoto , StmtEmpty , StmtExpr , Statement , StmtReturn , StmtBreak , StmtContinue , Block , StmtLoop , StmtBranch , StmtIf
  • isEmpty() : Block
  • isIntBlockValid() : StmtEmpty , StmtExpr , StmtSwitch , StmtBreak , StmtContinue , StmtGoto , Statement , Block , StmtReturn , StmtIf , StmtLoop
  • isLValue() : ExprNode , ExprNull
  • isPrototype() : NameSubProc
  • isSubProcVisibleFor() : Namespace
  • isUnion() : TypeStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- r -

  • replaceArg() : ExprOper
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- s -

  • setArg() : ExprUnary
  • setArgumentState() : NameVar
  • setBody() : NameSubProc
  • setCondition() : StmtWhile , StmtDoWhile , StmtIf
  • setDimExpr() : ExprArray
  • setElseBlock() : StmtIf
  • setLabeledStatement() : NameLabel
  • setLeftArg() : ExprBinary
  • setLeftExpr() : ExprAssign
  • setMemberExpr() : ExprStruct
  • setNameExpr() : ExprArray , ExprCall
  • setOperArgByNum() : ExprOper
  • setParamExpr() : ExprCall
  • setParentStmt() : Statement
  • setPrototype() : NameSubProc
  • setRetValueType() : TypeSubProc
  • setRightArg() : ExprBinary
  • setRightExpr() : ExprAssign
  • setStorageClassSpecifier() : TypeData
  • setStructExpr() : ExprStruct
  • setThenBlock() : StmtIf
  • setToPrototype() : NameSubProc
  • setType() : NameVar , TypeSimple
  • setUnion() : TypeStruct
  • setValue() : NameVar
  • syncNamespace() : NameSubProc
  • syncSubProc() : Namespace
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • a
  • b
  • c
  • d
  • e
  • g
  • h
  • i
  • l
  • m
  • n
  • r
  • s
  • u

- u -

  • unlink() : Block
  • unsafeGetArg() : ExprUnary
  • unsafeGetDimExpr() : ExprArray
  • unsafeGetLeftArg() : ExprBinary
  • unsafeGetLeftExpr() : ExprAssign
  • unsafeGetNameExpr() : ExprCall , ExprArray
  • unsafeGetParamExpr() : ExprCall
  • unsafeGetRightArg() : ExprBinary
  • unsafeGetRightExpr() : ExprAssign
  • unsafeGetStructExpr() : ExprStruct
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные

  • m_oParams : TypeSubProc
  • m_oValue : ExprImm
  • nArgs : ExprOper::OperDescr
  • strPrintValue : ExprOper::OperDescr
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл IRCommon.h

  • Файлы

IRCommon.h

См. документацию.
00001
00009 #ifndef _IRCOMMON_H_
00010 #define _IRCOMMON_H_
00011
00012 // STL includes
00013 #include <iostream>
00014 #include <list>
00015 #include <map>
00016 #include <set>
00017 #include <string>
00018 #include <vector>
00019
00020 // OPS includes
00021 #include "OpsCore.h"
00022
00023
00025 namespace OpsNewIr
00026 {
00027     enum ObjTypes
00028     {
00029         OT_STMT_BLOCK = 1,
00030         OT_STMT_IF,
00031         OT_STMT_FOR,
00032         OT_STMT_WHILE,
00033         OT_STMT_DOWHILE,
00034         OT_STMT_SWITCH,
00035         OT_STMT_GOTO,
00036         OT_STMT_EMPTY,
00037         OT_STMT_EXPR,
00038         OT_STMT_RETURN,
00039         OT_STMT_BREAK,
00040         OT_STMT_CONTINUE,
00041
00042         OT_EXPR_DATA = 100,
00043         OT_EXPR_IMM,
00044         OT_EXPR_OPER,
00045         OT_EXPR_UNARY,
00046         OT_EXPR_BINARY,
00047         OT_EXPR_ASSIGN,
00048         OT_EXPR_ARRAY,
00049         OT_EXPR_CALL,
00050         OT_EXPR_STRUCT,
00051
00052         OT_TYPE_SIMPLE = 200,
00053         OT_TYPE_PTR,
00054         OT_TYPE_SUBPROC,
00055         OT_TYPE_ARRAY,
00056         OT_TYPE_STRUCT,
00057         OT_TYPE_NAMED,
00058
00059         OT_NAME_VAR = 300,
00060         OT_NAME_TYPE,
00061         OT_NAME_LABEL,
00062         OT_NAME_SUBPROC,
00063
00064         OT_UNKNOWN = 10000
00065     };
00066 };
00067
00068
00069 OPS_DEFINE_EXCEPTION(NewIrStateError, OPS::StateError)
00070
00071
00088 template <class T>
00089 class ImemberwiseCloneable
00090 {
00091 public:
00092     virtual T* memberwiseClone() = 0;
00093 };
00094
00095
00096
00097 #endif                      //IRCOMMON_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл IRObject.h

  • Файлы

IRObject.h

00001 #ifndef _IROBJECT_H_
00002 #define _IROBJECT_H_
00003
00004 #include "IRCommon.h"
00005
00006 #pragma warning(disable : 4786) // Запрещаем сообщение об обрубании имен в debug-версии
00007
00008
00192 class ImmValue;
00193
00195 class IRObject : public OPS::BaseVisitable<>
00196 {
00197 public:
00198     virtual ~IRObject();
00199
00201     virtual std::string dumpState() const = 0;
00202     std::string dumpNotes();
00203
00205     virtual OpsNewIr::ObjTypes getObjType() const;
00206
00207     void setNote(const std::string& strName, ImmValue *);
00208     ImmValue* getNote(const std::string& strName);
00209     void delNote(const std::string& strName);
00210
00212     virtual std::ostream& C_Out(std::ostream& out) const = 0;
00213     virtual std::ostream& C_Out_Notes(std::ostream& out)
00214     {
00215         return out;
00216     }
00217
00218     OPS_DEFINE_VISITABLE()
00219 protected:
00220     typedef std::map<std::string, ImmValue* > TNotes;
00221
00222     std::string getAddress() const;
00223
00224     TNotes  m_aNotes;
00225 };
00226
00227 //Переопределение вывода в поток
00228 std::ostream& operator<<(std::ostream& ostr, IRObject& Elem);
00229
00230 class ImmValue
00231 {
00232 public:
00233
00234     enum IV
00235     {
00236         IV_BOOL = 1,
00237         IV_INT,
00238         IV_DOUBLE,
00239         IV_CHAR,
00240         IV_STRING,
00241         IV_VOID,
00242         IV_IROBJECT,
00243
00244         IV_UNDEFINED
00245     };
00246
00247     static ImmValue newBool(bool value);
00248     static ImmValue newInt(int value);
00249     static ImmValue newDouble(double value);
00250     static ImmValue newChar(char value);
00251     static ImmValue newString(const std::string& value);
00252     static ImmValue newVoid();
00253     static ImmValue newIRObject(IRObject& value);
00254
00255     ImmValue(); // Undefined
00256     ImmValue(IV nType, bool value);
00257     ImmValue(IV nType, int value);
00258     ImmValue(IV nType, double value);
00259     ImmValue(IV nType, char value);
00260     ImmValue(IV nType, const std::string& value);
00261     ImmValue(IV nType);
00262     ImmValue(IV nType, IRObject& value);
00263
00264     ImmValue(const ImmValue& value);
00265
00266     virtual ~ImmValue();
00267
00268     const ImmValue& operator=(const ImmValue& value);
00269
00270     bool operator==(const ImmValue& value) const;
00271     bool operator!=(const ImmValue& value) const;
00272
00273     IV getType() const;
00274
00275     bool getBool() const;
00276     int getInt() const;
00277     double getDouble() const;
00278     char getChar() const;
00279     const std::string& getString() const;
00280     IRObject& getIRObject() const;
00281
00282     void setBool(bool value);
00283     void setInt(int value);
00284     void setDouble(double value);
00285     void setChar(char value);
00286     void setString(const std::string& value);
00287     void setIRObject(IRObject& value);
00288
00289     void updateBool(bool value);
00290     void updateInt(int value);
00291     void updateDouble(double value);
00292     void updateChar(char value);
00293     void updateString(const std::string& value);
00294     void updateIRObject(IRObject& value);
00295
00296     std::string dumpValue() const;
00297
00299     virtual std::ostream& C_Out(std::ostream& out) const;
00300
00301 protected:
00302
00303     IV  m_nType;
00304
00305     union
00306     {
00307         bool        m_bValue;
00308         int         m_nValue;
00309         double      m_dValue;
00310         char        m_chValue;
00311         IRObject*   m_pObject;
00312     };
00313
00314     std::string m_strValue;
00315 };
00316
00317
00318 template<class T, class TList>
00319 class ConstListIter
00320 {
00321 public:
00322     ConstListIter() {   }
00323
00324     ConstListIter operator++()  {   return ConstListIter<T, TList>(++m_oIter, *m_oList);    }
00325     ConstListIter operator++(int){  return ConstListIter<T, TList>(m_oIter++, *m_oList);    }
00326
00327     ConstListIter operator--()  {   return ConstListIter<T, TList>(--m_oIter, *m_oList);    }
00328     ConstListIter operator--(int){  return ConstListIter<T, TList>(m_oIter--, *m_oList);    }
00329
00330     const T* operator->() const {   return *m_oIter;    }
00331
00332     const T& operator*() const  {   return **m_oIter;   }
00333
00334     bool isValid() const    {   return m_oIter != m_oList->end();   }
00335
00336     T* get() const  {   return *m_oIter;    }
00337
00338     std::string dumpState() const
00339     {
00340         if (isValid())
00341             return "ListIter : " + (*m_oIter)->dumpState() + "\n";
00342         else
00343             return "ListIter : notValid\n";
00344     }
00345
00346     bool operator==(const ConstListIter& oper) const
00347     {
00348         return m_oIter == oper.m_oIter;
00349     }
00350
00351     bool operator!=(const ConstListIter& oper) const
00352     {
00353         return !operator==(oper);
00354     }
00355
00356
00357 protected:
00358
00359     typedef typename TList::const_iterator TListIterator;
00360
00361     TListIterator m_oIter;
00362     const TList* m_oList;
00363
00364     ConstListIter(const TListIterator& oIter, const TList& oList) :
00365         m_oIter(oIter), m_oList(&oList)
00366     {
00367     }
00368
00369
00370     friend class TypeStruct;
00371     friend class Block;
00372     friend class Statement;
00373     friend class SubProcParams;
00374 };
00375
00376 template<typename T, typename TList>
00377 class ListIter
00378 {
00379 public:
00380     ListIter()  {   }
00381
00382     ListIter operator++()   {   return ListIter<T, TList>(++m_oIter, *m_oList); }
00383     ListIter operator++(int){   return ListIter<T, TList>(m_oIter++, *m_oList); }
00384
00385     ListIter operator--()   {   return ListIter<T, TList>(--m_oIter, *m_oList); }
00386     ListIter operator--(int){   return ListIter<T, TList>(m_oIter--, *m_oList); }
00387
00388     T* operator->()             {   return *m_oIter;    }
00389     const T* operator->() const {   return *m_oIter;    }
00390
00391     T& operator*()              {   return **m_oIter;   }
00392     const T& operator*() const  {   return **m_oIter;   }
00393
00394     bool isValid() const    {   return m_oIter != m_oList->end();   }
00395
00396     T* get()    {   return *m_oIter;    }
00397
00398     std::string dumpState() const
00399     {
00400         if (isValid())
00401             return "ListIter : " + (*m_oIter)->dumpState() + "\n";
00402         else
00403             return "ListIter : notValid\n";
00404     }
00405
00406     bool operator==(const ListIter& oper) const
00407     {
00408         return m_oIter == oper.m_oIter;
00409     }
00410
00411     bool operator!=(const ListIter& oper) const
00412     {
00413         return !operator==(oper);
00414     }
00415
00416
00417 protected:
00418
00419     typedef typename TList::iterator TListIterator;
00420
00421     ListIter(const TListIterator& oIter, TList& oList) : m_oIter(oIter), m_oList(&oList)
00422     {
00423     }
00424
00425     TListIterator m_oIter;
00426     TList* m_oList;
00427
00428     friend class TypeStruct;
00429     friend class Block;
00430     friend class Statement;
00431     friend class SubProcParams;
00432 };
00433
00434
00435
00436 class DefaultDumper
00437 {
00438 };
00439
00440 template<class T, class Dumper = DefaultDumper>
00441 class Modifiers;
00442
00443 template<class T, class Dumper = DefaultDumper>
00444 class ModifiersIter
00445 {
00446 public:
00447     ModifiersIter operator++()  {   return ModifiersIter<T, Dumper>(++m_oIter, m_oEndIter); }
00448     ModifiersIter operator++(int){  return ModifiersIter<T, Dumper>(m_oIter++, m_oEndIter); }
00449
00450     ModifiersIter operator--()  {   return ModifiersIter<T, Dumper>(--m_oIter, m_oEndIter); }
00451     ModifiersIter operator--(int){  return ModifiersIter<T, Dumper>(m_oIter--, m_oEndIter); }
00452
00453     T* operator->()         {   return m_oIter;     }
00454
00455     T* operator*()          {   return m_oIter;     }
00456
00457     bool isValid() const    {   return m_oIter != m_oEndIter;   }
00458
00459     virtual std::string dumpState()
00460     {
00461         if (isValid())
00462             return Dumper::dumpMods(*m_oIter);
00463         else
00464             return "(invalid)";
00465     }
00466
00467
00468 protected:
00469     typedef typename std::set<T> TModsSet;
00470     typedef typename TModsSet::iterator TModsSetIterator;
00471
00472     ModifiersIter(const TModsSetIterator& oIter, const TModsSetIterator& oEndIter)
00473         : m_oIter(oIter), m_oEndIter(oEndIter)
00474     {
00475     }
00476
00477
00478     TModsSetIterator m_oIter, m_oEndIter;
00479
00480     friend class Modifiers<T, Dumper>;
00481 };
00482
00483 template<class T, class Dumper>
00484 class Modifiers
00485 {
00486 public:
00487     typedef ModifiersIter<T, Dumper> Iterator;
00488     Modifiers() {}
00489     Modifiers(T mod)        {   add(mod);   }
00490
00491     void add(T mod)         {   m_aMods.insert(mod);    }
00492     void erase(T mod)       {   m_aMods.erase(mod); }
00493
00494     bool isPresent(T mod)   {   return m_aMods.find(mod) != m_aMods.end(); }
00495
00496     void clear()            {   m_aMods.clear(); }
00497
00498     Iterator getFirst() {   return Iterator(m_aMods.begin(), m_aMods.end()); }
00499     Iterator getLast()  {   return Iterator(--m_aMods.end(), m_aMods.end()); }
00500
00501     std::string dumpState()
00502     {
00503         std::string s = "Modifiers = ";
00504         for (TModsSet::iterator it = m_aMods.begin(); it != m_aMods.end(); it++)
00505         {
00506             s += Dumper::dumpMods(*it) + " ";
00507         }
00508
00509         return s;
00510     }
00511
00512 protected:
00513     typedef std::set<T> TModsSet;
00514
00515     TModsSet    m_aMods;
00516 };
00517
00518 #endif                      //IROBJECT_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл Namespace.h

  • Файлы

Namespace.h

00001 #ifndef _NAMESPACE_H_
00002 #define _NAMESPACE_H_
00003
00004 #include "IRCommon.h"
00005 #include "IRObject.h"
00006
00007 // Forward declarations
00008 class TypeData;
00009 class TypeSubProc;
00010 class TypeNamed;
00011 class Program;
00012 class Block;
00013 class Statement;
00014
00015 class NameIter;
00016 class Namespace;
00017
00018 #define OPS_IR_DEFINE_NAME_KIND(nameKind)   \
00019     inline static NameKind getKind()    \
00020     {   return nameKind;    }
00021
00023 class NameObject : public IRObject, virtual public OPS::NonCopyableMix
00024 {
00025 public:
00026     enum NameKind
00027     {
00028         NAME_VARIABLE = 1,
00029         NAME_TYPE,
00030         NAME_LABEL,
00031         NAME_SUBPROC
00032     };
00033
00034     virtual NameObject* clone() const = 0;
00035
00037     const std::string& getName() const;
00038
00039     virtual std::string dumpState() const;
00040
00041
00043     virtual std::ostream& C_Out(std::ostream& out) const;
00044
00045     OPS_DEFINE_VISITABLE()
00046
00047 protected:
00048     NameObject(const std::string& strName);
00049 // hide
00050     NameObject();
00051
00052     std::string m_strName;
00053
00054 };
00055
00057 class NameVar : public NameObject, virtual public OPS::NonCopyableMix
00058 {
00059 public:
00060     static NameVar* create(const std::string& strName, TypeData *pType, bool isConst = false, ImmValue oValue = ImmValue());
00061     ~NameVar();
00062
00063     virtual NameVar* clone() const;
00064
00065     virtual std::string dumpState() const;
00066
00068     void        setType(TypeData *pType);
00070     TypeData*   getType() const;
00071
00073     bool        isConst() const;
00074
00076     const ImmValue& getValue() const;
00077
00079     void setValue(const ImmValue& value);
00080
00094     bool isArgument() const;
00095
00096
00098     void setArgumentState(bool isArgument);
00099
00101     virtual OpsNewIr::ObjTypes getObjType() const;
00102
00104     virtual std::ostream& C_Out(std::ostream& out) const;
00105
00106     OPS_DEFINE_VISITABLE()
00107     OPS_IR_DEFINE_NAME_KIND(NAME_VARIABLE)
00108
00109 protected:
00110     NameVar(const std::string& strName, TypeData *pType, bool isConst, ImmValue oValue = ImmValue());
00111
00112     TypeData                *m_pVarType;
00113     bool                    m_bIsConst;
00114     bool                    m_bIsArgument;
00115     ImmValue                m_oValue;
00116 };
00117
00118
00120 class NameType : public NameObject, virtual public OPS::NonCopyableMix
00121 {
00122 public:
00123     static NameType* create(const std::string& strName, TypeData *pType);
00124     ~NameType();
00125
00126     virtual NameType* clone() const;
00127
00128     virtual std::string dumpState() const;
00129
00130     const TypeData& getType() const;
00131     void setType(TypeData *pType);
00132
00134     virtual OpsNewIr::ObjTypes getObjType() const;
00135
00137     virtual std::ostream& C_Out(std::ostream& out) const;
00138
00139     OPS_DEFINE_VISITABLE()
00140     OPS_IR_DEFINE_NAME_KIND(NAME_TYPE)
00141
00142 protected:
00143     NameType(const std::string& strName, TypeData *pType);
00144 // hide
00145     NameType();
00146     TypeData    *m_pType;
00147 };
00148
00149
00151 class NameLabel : public NameObject, virtual public OPS::NonCopyableMix
00152 {
00153 public:
00154     static NameLabel* create(const std::string& strName, Statement* pLabeled);
00155     static NameLabel* create(const std::string& strName);
00156     ~NameLabel();
00157
00158     virtual NameLabel* clone() const;
00159
00161     Statement* getLabeledStatement() const;
00162
00164     void setLabeledStatement(Statement *pLabeled);
00165
00166     virtual std::string dumpState() const;
00167
00169     virtual OpsNewIr::ObjTypes getObjType() const;
00170
00172     virtual std::ostream& C_Out(std::ostream& out) const;
00173
00174     OPS_DEFINE_VISITABLE()
00175     OPS_IR_DEFINE_NAME_KIND(NAME_LABEL)
00176
00177 protected:
00178     NameLabel(const std::string& strName, Statement *pLabeled);
00179
00180     Statement   *m_pLabeled;
00181 };
00182
00183
00185 class NameSubProc : public NameObject, virtual public OPS::NonCopyableMix
00186 {
00187 public:
00189
00196     static NameSubProc* create(const std::string& strName, TypeSubProc *pPrototype, bool bIsPrototype = false);
00197     ~NameSubProc();
00198
00199
00201     bool isPrototype() const;
00202
00204     void setToPrototype();
00205
00207     TypeSubProc&    getPrototype();
00208
00210     const TypeSubProc& getPrototype() const;
00211
00213     Block& getBody();
00214
00216     const Block& getBody() const;
00217
00219     void setPrototype(TypeSubProc *pPrototype);
00220
00222     void setBody(Block *pBody, bool sync = true);
00223
00225
00230     void syncNamespace();
00231
00232     virtual std::string dumpState() const;
00233
00235     virtual OpsNewIr::ObjTypes getObjType() const;
00236
00238     virtual std::ostream& C_Out(std::ostream& out) const;
00239
00240     OPS_DEFINE_VISITABLE()
00241     OPS_IR_DEFINE_NAME_KIND(NAME_SUBPROC)
00242
00243 protected:
00244     virtual NameSubProc* clone() const;
00245     NameSubProc(const std::string& strName, TypeSubProc *pPrototype, bool bIsPrototype);
00246     TypeSubProc *m_pPrototype;
00247     Block   *m_pBody;
00248     bool m_isPrototype;
00249 };
00250
00251
00252
00253 OPS_DEFINE_EXCEPTION(NameNotValidException, OPS::StateError)
00254
00255 class NameReference
00256 {
00257 public:
00258     NameReference();
00259     NameReference(const NameReference&);
00260
00261     bool isValid() const;
00262
00263     NameObject::NameKind getNameKind() const;
00264     bool isVarName() const;
00265     bool isTypeName() const;
00266     bool isLabelName() const;
00267     bool isSubProcName() const;
00268
00269     NameObject& getAsObject();
00270     const NameObject& getAsObject() const;
00271     NameVar& getAsVar();
00272     const NameVar& getAsVar() const;
00273     NameType& getAsType();
00274     const NameType& getAsType() const;
00275     NameLabel& getAsLabel();
00276     const NameLabel& getAsLabel() const;
00277     NameSubProc& getAsSubProc();
00278     const NameSubProc& getAsSubProc() const;
00279
00280     std::string getName() const;
00281
00282 //  Namespace& getNamespace();
00283     const Namespace& getNamespace() const;
00284
00285     bool operator==(const NameReference&) const;
00286     bool operator!=(const NameReference&) const;
00287     const NameReference& operator=(const NameReference&);
00288
00289 private:
00290     typedef std::list<NameObject*> TNamesList;
00291
00292     NameReference(const Namespace& ns, const TNamesList::iterator& pointTo);
00293
00294     const Namespace* m_namespace;
00295     TNamesList::iterator m_pointTo;
00296
00297     friend class Namespace;
00298     friend class NameIter;
00299 };
00300
00302 class NameIter
00303 {
00304 public:
00305     NameIter();
00306     NameIter(const NameIter&);
00307     NameIter(const NameReference&);
00308     NameIter(const NameReference&, NameObject::NameKind filter);
00309
00310     NameIter& operator++();
00311     NameIter operator++(int);
00312
00313     NameObject* operator->();
00314
00315     NameObject& operator*();
00316
00317     NameReference& getNameRef();
00318     const NameReference& getNameRef() const;
00319
00320     bool isValid() const;
00321
00322     bool operator==(const NameIter& nameIter) const;
00323
00324     bool operator!=(const NameIter& nameIter) const;
00325
00326     const NameIter& operator=(const NameIter& nameIter);
00327
00328     std::string getName() const;
00329
00330     NameObject::NameKind getFilter() const;
00331
00332     void setNull();
00333
00334 protected:
00335
00336     void iterNextBoundsChecks();
00337
00338     NameObject::NameKind m_filter;
00339     NameReference m_name;
00340 };
00341
00342 template <class T>
00343 class SpecializedNameIter
00344 {
00345 public:
00346     SpecializedNameIter()
00347     {
00348     }
00349
00350     explicit SpecializedNameIter(const NameReference& nr) : m_nameIter(nr, T::getKind())
00351     {
00352     }
00353
00354     bool isValid() const
00355     {
00356         return m_nameIter.isValid();
00357     }
00358
00359     std::string getName() const
00360     {
00361         return m_nameIter.getName();
00362     }
00363
00364     NameReference& getNameRef()
00365     {
00366         return m_nameIter.getNameRef();
00367     }
00368
00369     const NameReference& getNameRef() const
00370     {
00371         return m_nameIter.getNameRef();
00372     }
00373
00374     NameIter getNameIter()
00375     {
00376         return m_nameIter;
00377     }
00378
00379     SpecializedNameIter& operator++()
00380     {
00381         ++m_nameIter;
00382         return *this;
00383     }
00384
00385     SpecializedNameIter operator++(int)
00386     {
00387         return SpecializedNameIter((m_nameIter++).getNameRef());
00388     }
00389
00390     T* operator->()
00391     {
00392         return dynamic_cast<T*>(&m_nameIter.getNameRef().getAsObject());
00393     }
00394
00395     T& operator*()
00396     {
00397         return dynamic_cast<T&>(m_nameIter.getNameRef().getAsObject());
00398     }
00399
00400     const T& operator*() const
00401     {
00402         return dynamic_cast<const T&>(m_nameIter.getNameRef().getAsObject());
00403     }
00404
00405     bool operator==(const SpecializedNameIter& nameIter) const
00406     {
00407         return m_nameIter == nameIter.m_nameIter;
00408     }
00409
00410     bool operator!=(const SpecializedNameIter& nameIter) const
00411     {
00412         return !operator!=(nameIter);
00413     }
00414
00415     const SpecializedNameIter& operator=(const SpecializedNameIter& nameIter)
00416     {
00417         if (nameIter.m_nameIter.getFilter() != T::getKind())
00418             throw NameNotValidException("Unexpected filter assignment in SpecializedNameIter.");
00419         m_nameIter = nameIter.m_nameIter;
00420         return *this;
00421     }
00422
00423 private:
00424     NameIter m_nameIter;
00425 };
00426
00427 typedef SpecializedNameIter<NameVar> NameVarIter;
00428 typedef SpecializedNameIter<NameType> NameTypeIter;
00429 typedef SpecializedNameIter<NameLabel> NameLabelIter;
00430 typedef SpecializedNameIter<NameSubProc> NameSubProcIter;
00431
00432
00434 class Namespace : public IRObject, virtual public OPS::NonCopyableMix
00435 {
00436 public:
00437     ~Namespace();
00438
00439     Namespace* clone() const;
00440
00442     NameTypeIter addType(const std::string& strName, TypeData *pType);
00443
00445     NameVarIter addVariable(const std::string& strName, TypeData *pType, ImmValue oValue = ImmValue());
00446
00448     NameVarIter addConst(const std::string& strName, TypeData *pType, ImmValue oValue);
00449
00451     NameLabelIter addLabel(const std::string& strName, Statement *pStatement);
00452
00454     NameSubProcIter addSubProc(NameSubProc *pSubProc);
00455
00457     void syncSubProc(NameSubProc *pSubProc);
00458
00460     NameTypeIter insertBeforeType(NameTypeIter insBefore, const std::string& strName, TypeData *pType);
00461
00463     NameVarIter insertBeforeVariable(NameVarIter insBefore, const std::string& strName, TypeData *pType, ImmValue oValue = ImmValue());
00464
00466     NameVarIter insertBeforeConst(NameVarIter insBefore, const std::string& strName, TypeData *pType, ImmValue oValue);
00467
00469     NameLabelIter insertBeforeLabel(NameLabelIter insBefore, const std::string& strName, Statement *pStatement);
00470
00472     NameSubProcIter insertBeforeSubProc(NameSubProcIter insBefore, NameSubProc *pSubProc);
00473
00474
00476     NameTypeIter insertAfterType(NameTypeIter insAfter, const std::string& strName, TypeData *pType);
00477
00479     NameVarIter insertAfterVariable(NameVarIter insAfter, const std::string& strName, TypeData *pType, ImmValue oValue = ImmValue());
00480
00482     NameVarIter insertAfterConst(NameVarIter insAfter, const std::string& strName, TypeData *pType, ImmValue oValue);
00483
00485     NameLabelIter insertAfterLabel(NameLabelIter insAfter, const std::string& strName, Statement *pStatement);
00486
00488     NameSubProcIter insertAfterSubProc(NameSubProcIter insAfter, NameSubProc *pSubProc);
00489
00490
00492     NameSubProcIter cloneSubProc(const NameSubProcIter& subProcIter, const std::string& newName);
00493
00495     TypeNamed* createNamedType(const std::string& strName);
00496
00497     virtual std::string dumpState() const;
00498
00500     NameIter getNamesFirst();
00501
00503     NameIter getNamesLast();
00504
00506     NameIter getName(const std::string& strName) const;
00507
00509     NameReference getNameReference(const std::string& strName);
00510
00512     int getNamesCount() const;
00513
00515     NameIter getNameRecursive(const std::string& strName) const;
00516
00518     bool hasName(const std::string& strName) const;
00519
00521     bool hasNameRecursive(const std::string& strName) const;
00522
00524     NameTypeIter getTypesFirst();
00525
00527     NameTypeIter getTypesLast();
00528
00530     NameTypeIter getType(const std::string& strName);
00531
00533     NameVarIter getVarsFirst();
00534
00536     NameVarIter getVarsLast();
00537
00539     NameVarIter getVar(const std::string& strName);
00540
00541
00543     NameLabelIter getLabelsFirst();
00544
00546     NameLabelIter getLabelsLast();
00547
00549     NameLabelIter getLabel(const std::string& strName);
00550
00551
00553     NameSubProcIter getSubProcsFirst();
00554
00556     NameSubProcIter getSubProcsLast();
00557
00559     NameSubProcIter getSubProc(const std::string& strName);
00560
00562     bool isSubProcVisibleFor(const std::string& strName, NameSubProcIter& visibleFor) const;
00563
00565     std::string generateUniqueIdentifier(const std::string& strBase = "");
00566
00567
00569     void erase(NameIter& iter);
00570
00572     void erase(const std::string& name);
00573
00575     Namespace*  getHigherNamespace();
00576
00578     const Namespace*    getHigherNamespace() const;
00579
00581     Program&    getProgram();
00582
00584     virtual std::ostream& C_Out(std::ostream& out) const;
00585
00586     void setUplink(Block *pContainer, Program* program);
00587
00588     OPS_DEFINE_VISITABLE()
00589
00590 protected:
00591 //  Classes
00592     typedef NameReference::TNamesList TNamesList;
00593     typedef std::map<const std::string, NameReference::TNamesList::iterator> TNamesMap;
00594
00596     Namespace(Block *pContainer, Program* program = 0);
00597
00598     NameVarIter addVariable(const std::string& strName, TypeData *pType, bool isConst, ImmValue oValue);
00599     NameVarIter insertBeforeVariable(NameVarIter insBefore, const std::string& strName, TypeData *pType, bool isConst, ImmValue oValue);
00600     NameVarIter insertAfterVariable(NameVarIter insAfter, const std::string& strName, TypeData *pType, bool isConst, ImmValue oValue);
00601
00602     void copyFrom(const Namespace& otherNamespace);
00603
00604
00605     TNamesList m_names;
00606     TNamesMap m_namesMap;
00607
00608     Block   *m_pContainer;
00609     Program *m_pProgram;
00610
00611     friend class Block;
00612     friend class Program;
00613     friend class NameReference;
00614     friend class NameIter;
00615 };
00616 /*
00617 class GlobalNamespace : public Namespace, virtual public OPS::NonCopyableMix
00618 {
00619 public:
00620
00622     NameSubProcIter addSubProc(NameSubProc *pSubProc);
00623
00625     NameSubProcIter getSubProcsFirst();
00626
00628     NameSubProcIter getSubProcsLast();
00629
00631     NameSubProcIter getSubProc(const std::string& strName);
00632
00633 protected:
00634     GlobalNamespace(Program* program);
00635 };
00636 */
00637
00638 #endif                      //NAMESPACE_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл OutToC.h

  • Файлы

OutToC.h

00001 #ifndef _OUTTOC_H_
00002 #define _OUTTOC_H_
00003
00004 #include "IRObject.h"
00005 #include "DataTypes.h"
00006 #include "Statements.h"
00007 #include "Expressions.h"
00008
00009 class TypesOutToC : public OPS::BaseVisitor,
00010     public OPS::Visitor<Namespace>,
00011     public OPS::Visitor<NameVar>,
00012     public OPS::Visitor<NameLabel>,
00013     public OPS::Visitor<NameSubProc>,
00014
00015     public OPS::Visitor<TypeSimple>,
00016     public OPS::Visitor<TypePtr>,
00017     public OPS::Visitor<TypeSubProc>,
00018     public OPS::Visitor<TypeArray>,
00019     public OPS::Visitor<TypeStruct>,
00020     public OPS::Visitor<TypeNamed>,
00021     public OPS::NonCopyableMix
00022 {
00023 public:
00024     TypesOutToC(std::ostream& outStream);
00025
00026     void visit(Namespace&);
00027     void visit(NameVar&);
00028     void visit(NameLabel&);
00029     void visit(NameSubProc&);
00030
00031     void visit(TypeSimple&);
00032     void visit(TypePtr&);
00033     void visit(TypeSubProc&);
00034     void visit(TypeArray&);
00035     void visit(TypeStruct&);
00036     void visit(TypeNamed&);
00037
00038
00039 private:
00040     std::ostream& m_outStream;
00041 };
00042
00043 /* Вывод внутреннего представления в С */
00044 class OutToC : public OPS::BaseVisitor
00045     , public OPS::Visitor<Program>
00046
00047     , public OPS::Visitor<Namespace>
00048     , public OPS::Visitor<NameSubProc>
00049     , public OPS::Visitor<NameVar>
00050     , public OPS::Visitor<NameType>
00051     , public OPS::Visitor<NameLabel>
00052
00053     , public OPS::Visitor<Block>
00054     , public OPS::Visitor<StmtExpr>
00055     , public OPS::Visitor<StmtFor>
00056     , public OPS::Visitor<StmtWhile>
00057     , public OPS::Visitor<StmtDoWhile>
00058     , public OPS::Visitor<StmtIf>
00059     , public OPS::Visitor<StmtSwitch>
00060     , public OPS::Visitor<StmtGoto>
00061     , public OPS::Visitor<StmtEmpty>
00062     , public OPS::Visitor<StmtReturn>
00063     , public OPS::Visitor<StmtBreak>
00064     , public OPS::Visitor<StmtContinue>
00065
00066     , public OPS::Visitor<TypeSimple>
00067     , public OPS::Visitor<TypePtr>
00068     , public OPS::Visitor<TypeSubProc>
00069     , public OPS::Visitor<TypeArray>
00070     , public OPS::Visitor<TypeStruct>
00071     , public OPS::Visitor<TypeNamed>
00072
00073     , public OPS::Visitor<ExprNull>
00074     , public OPS::Visitor<ExprImm>
00075     , public OPS::Visitor<ExprData>
00076     , public OPS::Visitor<ExprUnary>
00077     , public OPS::Visitor<ExprBinary>
00078     , public OPS::Visitor<ExprAssign>
00079     , public OPS::Visitor<ExprArray>
00080     , public OPS::Visitor<ExprCall>
00081     , public OPS::Visitor<ExprStruct>
00082     , public OPS::NonCopyableMix
00083 {
00084 public:
00089     OutToC(std::ostream& outStream, unsigned int indention = 2);
00090
00091     void visit(Program&);
00092
00093     void visit(Block&);
00094     void visit(StmtExpr&);
00095     void visit(StmtFor&);
00096     void visit(StmtWhile&);
00097     void visit(StmtDoWhile&);
00098     void visit(StmtIf&);
00099     void visit(StmtSwitch&);
00100     void visit(StmtGoto&);
00101     void visit(StmtEmpty&);
00102     void visit(StmtReturn&);
00103     void visit(StmtBreak&);
00104     void visit(StmtContinue&);
00105
00106     void visit(ExprNull&);
00107     void visit(ExprImm&);
00108     void visit(ExprData&);
00109     void visit(ExprUnary&);
00110     void visit(ExprBinary&);
00111     void visit(ExprAssign&);
00112     void visit(ExprArray&);
00113     void visit(ExprCall&);
00114     void visit(ExprStruct&);
00115
00116     void visit(Namespace&);
00117     void visit(NameSubProc&);
00118     void visit(NameType&);
00119     void visit(NameVar&);
00120     void visit(NameLabel&);
00121
00122     void visit(TypeSimple&);
00123     void visit(TypePtr&);
00124     void visit(TypeSubProc&);
00125     void visit(TypeArray&);
00126     void visit(TypeStruct&);
00127     void visit(TypeNamed&);
00128
00129     void increaseIndent();
00130     void decreaseIndent();
00131
00132 private:
00133
00134     const std::string& getIndent() const;
00135     void newLine(const std::string& text = "");
00136     void printComment(Statement& stmt);
00137
00138     unsigned int const m_indentionSize;
00139     std::string     m_indent;
00140     std::ostream&   m_outStream;
00141 };
00142
00143 template <typename OutputClass>
00144 class Indenter
00145 {
00146 public:
00147     Indenter(OutputClass& out)
00148         :m_out(out)
00149     {
00150         m_out.increaseIndent();
00151     }
00152
00153     ~Indenter()
00154     {
00155         m_out.decreaseIndent();
00156     }
00157
00158 private:
00159     OutputClass& m_out;
00160 };
00161
00162
00163 #endif                      //OUTTOC_H_
00164
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл OutToXml.h

  • Файлы

OutToXml.h

00001 #ifndef _OUTTOXML_H_
00002 #define _OUTTOXML_H_
00003
00004 #include "IRObject.h"
00005 #include "DataTypes.h"
00006 #include "Statements.h"
00007 #include "Expressions.h"
00008
00009 class TypesOutToXml : public OPS::BaseVisitor,
00010     public OPS::Visitor<Namespace>,
00011     public OPS::Visitor<NameType>,
00012     public OPS::Visitor<NameVar>,
00013     public OPS::Visitor<NameLabel>,
00014     public OPS::Visitor<NameSubProc>,
00015
00016     public OPS::Visitor<TypeSimple>,
00017     public OPS::Visitor<TypePtr>,
00018     public OPS::Visitor<TypeSubProc>,
00019     public OPS::Visitor<TypeArray>,
00020     public OPS::Visitor<TypeStruct>,
00021     public OPS::Visitor<TypeNamed>,
00022     public OPS::NonCopyableMix
00023 {
00024 public:
00025     TypesOutToXml(std::ostream& outStream);
00026
00027     void visit(Namespace&);
00028     void visit(NameType&);
00029     void visit(NameVar&);
00030     void visit(NameLabel&);
00031     void visit(NameSubProc&);
00032
00033     void visit(TypeSimple&);
00034     void visit(TypePtr&);
00035     void visit(TypeSubProc&);
00036     void visit(TypeArray&);
00037     void visit(TypeStruct&);
00038     void visit(TypeNamed&);
00039
00040
00041 private:
00042     std::ostream& m_outStream;
00043 };
00044
00045 class XMLOut : public OPS::BaseVisitor
00046     , public OPS::Visitor<Program>
00047
00048     , public OPS::Visitor<Namespace>
00049     , public OPS::Visitor<NameSubProc>
00050     , public OPS::Visitor<NameVar>
00051     , public OPS::Visitor<NameType>
00052     , public OPS::Visitor<NameLabel>
00053
00054     , public OPS::Visitor<Block>
00055     , public OPS::Visitor<StmtExpr>
00056     , public OPS::Visitor<StmtFor>
00057     , public OPS::Visitor<StmtWhile>
00058     , public OPS::Visitor<StmtDoWhile>
00059     , public OPS::Visitor<StmtIf>
00060     , public OPS::Visitor<StmtSwitch>
00061     , public OPS::Visitor<StmtGoto>
00062     , public OPS::Visitor<StmtEmpty>
00063     , public OPS::Visitor<StmtReturn>
00064     , public OPS::Visitor<StmtBreak>
00065     , public OPS::Visitor<StmtContinue>
00066
00067     , public OPS::Visitor<TypeSimple>
00068     , public OPS::Visitor<TypePtr>
00069     , public OPS::Visitor<TypeSubProc>
00070     , public OPS::Visitor<TypeArray>
00071     , public OPS::Visitor<TypeStruct>
00072     , public OPS::Visitor<TypeNamed>
00073
00074     , public OPS::Visitor<ExprNull>
00075     , public OPS::Visitor<ExprImm>
00076     , public OPS::Visitor<ExprData>
00077     , public OPS::Visitor<ExprUnary>
00078     , public OPS::Visitor<ExprBinary>
00079     , public OPS::Visitor<ExprAssign>
00080     , public OPS::Visitor<ExprArray>
00081     , public OPS::Visitor<ExprCall>
00082     , public OPS::Visitor<ExprStruct>
00083     , public OPS::NonCopyableMix
00084 {
00085 public:
00093     XMLOut(std::ostream& outStream, unsigned int indention = 1, bool multiline = true);
00094
00095     void visit(Program&);
00096
00097     void visit(Block&);
00098     void visit(StmtExpr&);
00099     void visit(StmtFor&);
00100     void visit(StmtWhile&);
00101     void visit(StmtDoWhile&);
00102     void visit(StmtIf&);
00103     void visit(StmtSwitch&);
00104     void visit(StmtGoto&);
00105     void visit(StmtEmpty&);
00106     void visit(StmtReturn&);
00107     void visit(StmtBreak&);
00108     void visit(StmtContinue&);
00109
00110     void visit(ExprNull&);
00111     void visit(ExprImm&);
00112     void visit(ExprData&);
00113     void visit(ExprUnary&);
00114     void visit(ExprBinary&);
00115     void visit(ExprAssign&);
00116     void visit(ExprArray&);
00117     void visit(ExprCall&);
00118     void visit(ExprStruct&);
00119
00120     void visit(Namespace&);
00121     void visit(NameSubProc&);
00122     void visit(NameType&);
00123     void visit(NameVar&);
00124     void visit(NameLabel&);
00125
00126     void visit(TypeSimple&);
00127     void visit(TypePtr&);
00128     void visit(TypeSubProc&);
00129     void visit(TypeArray&);
00130     void visit(TypeStruct&);
00131     void visit(TypeNamed&);
00132
00133     void increaseIndent();
00134     void decreaseIndent();
00135
00136 private:
00137
00138     const std::string& getIndent() const;
00139     void out(const std::string& tag);
00140
00141     std::string ReferenceToString(const NameReference& nameRef);
00142     std::string XMLReplace(const std::string& str);
00143
00144     typedef std::map<const Namespace*, int> NamespaceIDMap;
00145
00146     NamespaceIDMap  m_namespaceIds;
00147     int             m_nextNamespaceID;
00148
00149     bool const      m_multiline;
00150     unsigned int const m_indentionSize;
00151     std::string     m_indent;
00152     std::ostream&   m_outStream;
00153 };
00154
00155 #endif                      //OUTTOXML_H_
00156
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл Program.h

  • Файлы

Program.h

00001 #ifndef _PROGRAM_H_
00002 #define _PROGRAM_H_
00003
00004 #include "IRCommon.h"
00005 #include "Namespace.h"
00006 #include "Statements.h"
00007
00009 class Program : public IRObject, virtual public OPS::NonCopyableMix
00010 {
00011 public:
00012     Program();
00013     Program(const std::string& strFile);
00014     ~Program();
00015
00016     Program* clone() const;
00017
00018     std::string getSourcePath() const;
00019     Namespace&  getGlobals();
00020
00021     Block& getMainBlock();
00022
00023     virtual std::string dumpState() const;
00024
00026     virtual std::ostream& C_Out(std::ostream& out) const;
00027
00028     OPS_DEFINE_VISITABLE()
00029
00030 protected:
00031
00032     // Types tests
00033     void createTestArrayTypes();
00034     void createTestPtrTypes();
00035     void createTestSimpleTypes();
00036     void createTestStructTypes();
00037     void createTestSubProcTypes();
00038
00039     // Variables tests
00040     void createTestArrayVariables();
00041     void createTestPtrVariables();
00042     void createTestSimpleVariables();
00043
00044     // Expressions tests
00045     void createTestSimpleExprs();
00046
00047     // Modifiers tests
00048     void createTestModifiers();
00049
00050     std::string m_strSourcePath;
00051     Namespace   m_oGlobals;
00052 };
00053
00054 #endif                      //PROGRAM_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл RangeIterator.h

  • Файлы

RangeIterator.h

00001 #ifndef _RANGEITERATOR_H_
00002 #define _RANGEITERATOR_H_
00003
00004 #include "Statements.h"
00005
00006 class RangeIterator
00007 {
00008 public:
00009     RangeIterator();
00010     RangeIterator(Statement& start, Statement& finish, bool isDeep);
00011     RangeIterator(const RangeIterator&);
00012
00013     bool isValid() const;
00014     void next();
00015     void prev();
00016
00017     Statement& operator*();
00018     Statement* operator->();
00019
00020     const RangeIterator& operator=(const RangeIterator&);
00021
00022 private:
00023     Statement* m_start;
00024     Statement* m_finish;
00025     Statement::Iterator m_current;
00026     bool m_deep;
00027     bool m_valid;
00028 };
00029
00030 #endif                      //RANGEITERATOR_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл ServiceFunctions.h

  • Файлы

ServiceFunctions.h

00001 /*Библиотека служебных ф-ий*/
00002 /*Вопросы: Саша 244-93-41*/
00003 /*a_butov@rambler.ru*/
00004
00005 #ifndef _SERVFUNCS_H_
00006 #define _SERVFUNCS_H_
00007
00008 #include "Program.h"
00009
00010 /*********************Ф-ии работы с выражениями*******************/
00011 /*Ф-ия поиска подвыражения в выражении*/
00012 /*Возвращает указатель на первое найденное входдение подвыражения*/
00013 /*Если подвыражение не найдено возвращает NULL*/
00014 ExprNode* FindExpr(const ExprNode& New, const ExprNode& Where);
00015 /*Функция автомотической замены выражений в блоке*/
00016 /*Заменяет все вхождения выражения Old на выражение New в выражении Where*/
00017 void ReplaceExprs(const ExprNode& New, const ExprNode& Old, ExprNode* Where);
00018 /*Ф-ия сравнения выражений (в одной области видимости переменных)*/
00019 /*Сравнивает выражения First и Second и возвращает true, если они идентичны*/
00020 inline bool CompareExpr(const ExprNode& First, const ExprNode& Second)
00021 {
00022     return First.isEqual(Second);
00023 }
00024
00025 /*Ф-ия копирования выражения*/
00026 /*What - что копировать*/;
00027 inline ExprNode* CopyExpr(const ExprNode& What)
00028 {
00029     return What.clone();
00030 }
00031
00033
00039 void ReplaceExpr(ExprNode* newExpr, ExprNode* oldExpr);
00040
00041 /*********************Ф-ии работы с операторами******************/
00042 /*Ф-ия удаления оператора (возвращает false если не оператор)*/
00043 /*Pos - что удалять*/
00044 void KillStatement(Statement *Pos);
00045 /*Ф-ия копирования оператора возвращает указатель на скоп. оператор (NULL если не оператор)*/
00046 /*What - что копировать, AfterOp- после какого опер.*/
00047 Statement* CopyStatementAfter(Statement *What, Statement *AfterOp);
00048 /*Ф-ия копирования оператора возвращает указатель на скоп. оператор (NULL если не оператор)*/
00049 /*What - что копировать, BeforOp- до какого опер.*/
00050 Statement* CopyStatementBefor(Statement *What, Statement *BeforOp)
00051 /*Ф-ия замены оператора (возвращает false если не выражение)*/
00052 /*New - чем заменять, Old - что*/;
00053 void ReplaceStatement(Statement *New, Statement *&Old);
00054 /*Ф-ия добавления оператора в начало блока (NULL если добавить не удалось)*/
00055 /*What - что копировать, Where- в какой блок.*/
00056 Statement* InsertStatement(Statement *What, Block *Where);
00057 /*Ф-ия добавления оператора в конец блока (NULL если добавить не удалось)*/
00058 /*What - что копировать, Where- в какой блок.*/
00059 Statement* InsertStatementToBack(Statement *What, Block *Where);
00060 /*Ф-ия нахождения кол-ва операторов в блоке*/
00061 /*Pos - блок*/
00062 int GetStatementsCount(Statement *Pos);
00063 /*
00064     Помещение операторов выделенного диапазона в блок.
00065     Сам блок будет расположен на месте первого из переносимых операторов.
00066                                 *****ВНИМАНЕ!*****
00067     Переносятся только операторы из диапазона [_from, _to). Оператор _to НЕ ПЕРЕНОСИТСЯ!
00068 */
00069 Block* combineStatementsToBlock(Statement::Iterator _from, Statement::Iterator _afterTo);
00070
00071 namespace OpsNewIr {
00072
00077     Program* cloneProgram(Program& program);
00078
00079     typedef std::map<IRObject*, IRObject*>  ObjectsMap;
00086     void mapReferences(Program& first, Program& second, ObjectsMap& rMap);
00087 }
00088
00089 #endif //_SERVFUNCS_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл Statements.h

  • Файлы

Statements.h

00001 #ifndef _STATEMENTS_H_
00002 #define _STATEMENTS_H_
00003
00004 #include "IRCommon.h"
00005 #include "Namespace.h"
00006 #include "Expressions.h"
00007 #include "DataTypes.h"
00008
00009 // Forward definitions
00010 class Block;
00011 class StmtIf;
00012 class StmtFor;
00013 class StmtWhile;
00014 class StmtDoWhile;
00015 class StmtSwitch;
00016 class StmtGoto;
00017 class StmtEmpty;
00018 class StmtExpr;
00019 class StmtReturn;
00020
00021
00023
00037 class Statement : public IRObject, virtual public OPS::NonCopyableMix
00038 {
00039 public:
00040     typedef std::list<Statement*>           TStmtList;
00041     typedef ListIter<Statement, TStmtList>  Iterator;
00042     typedef ConstListIter<Statement, TStmtList> ConstIterator;
00043
00045
00049     virtual Statement* clone() const = 0;
00050
00051     virtual Statement* clone(Statement& stmt) const;
00052
00054     Iterator    getThisInBlock();
00055
00057     Iterator    getComprehBlock();
00058
00060     Block*  getAsBlock();
00061     const Block*    getAsBlock() const;
00062
00064     StmtIf* getAsIf();
00065     const StmtIf* getAsIf() const;
00066
00068     StmtFor* getAsFor();
00069     const StmtFor* getAsFor() const;
00070
00072     StmtWhile* getAsWhile();
00073     const StmtWhile* getAsWhile() const;
00074
00076     StmtDoWhile* getAsDoWhile();
00077     const StmtDoWhile* getAsDoWhile() const;
00078
00080     StmtSwitch* getAsSwitch();
00081     const StmtSwitch* getAsSwitch() const;
00082
00084     StmtGoto* getAsGoto();
00085     const StmtGoto* getAsGoto() const;
00086
00088     StmtEmpty* getAsEmpty();
00089     const StmtEmpty* getAsEmpty() const;
00090
00092     StmtExpr* getAsExpr();
00093     const StmtExpr* getAsExpr() const;
00094
00096     StmtReturn* getAsReturn();
00097     const StmtReturn* getAsReturn() const;
00098
00100     void setParentStmt(Statement& statement);
00101
00103     void setParentStmtNull();
00104
00106     Block*  getParentBlock();
00107     const Block*    getParentBlock() const;
00108
00111     bool hasParentNamespace() const;
00112
00114     Statement* getParentStmt() const;
00115
00117     bool hasParentStmt() const;
00118
00119     NameSubProcIter getStatementParentSubProc() const;
00120
00121 //<< D.N.Cherdantsev
00123     virtual bool isIntBlockValid(int nPos) = 0;
00124
00126     virtual Statement * getIntBlock(int nPos) = 0;
00127
00129     virtual bool isDeepViewNeed() = 0;
00130
00132     virtual int getMaxInt() = 0;
00133 //>>
00134
00135
00136
00138     virtual std::ostream& C_Out(std::ostream& out) const = 0;
00139
00140     OPS_DEFINE_VISITABLE()
00141
00142 protected:
00143     Statement() : m_pParentStmt(0)  {}
00144
00145
00146 private:
00147     Statement   *m_pParentStmt;
00148 };
00149
00151
00155 class Block : public Statement, virtual public OPS::NonCopyableMix
00156 {
00157 public:
00158     virtual ~Block();
00159
00161     static Block*   createEmptyBlock();
00162
00164     static Block*   create(Statement *pParent);
00165
00167     static Block*   create(Namespace& nmspace);
00168
00169     virtual Block* clone() const;
00170
00171     virtual Block* clone(Namespace& nmspace) const;
00172
00173     virtual Block* clone(Statement& stmt) const;
00174
00176     const Namespace& getNamespace() const;
00177
00179     Namespace&  getNamespace();
00180
00182     bool isEmpty() const;
00183
00185     void addFront(Statement *pStmt);
00186
00188     void addBack(Statement *pStmt);
00189
00190
00192
00200     Iterator insertBefore(Iterator it, Statement *pStmt);
00201
00203
00211     Iterator insertAfter(Iterator it, Statement *pStmt);
00212
00213
00215     void        erase(Iterator it);
00216
00218     Statement*  unlink(Iterator it);
00219
00221
00229     Statement*  detach(Iterator it);
00230
00232     Iterator    getFirst();
00233
00235     ConstIterator   getFirst() const;
00236
00238     Iterator    getLast();
00239
00241     ConstIterator   getLast() const;
00242
00244
00252     Iterator    getByStmt(Statement *pStmt);
00253
00254     ConstIterator   getByStmt(Statement *pStmt) const;
00255
00257     void clear();
00258
00259     virtual std::string dumpState() const;
00260
00262     virtual OpsNewIr::ObjTypes getObjType() const;
00263
00264 //<< D.N.Cherdantsev
00266     virtual bool isIntBlockValid(int nPos);
00267
00269     virtual Statement * getIntBlock(int nPos);
00270
00272     virtual bool isDeepViewNeed() { return m_lstStatements.size() > 0 ; };
00273
00275     inline virtual int getMaxInt() { return OPS::Casts::castUnsignedToSigned<int>(m_lstStatements.size()); }
00276 //>>
00277
00279     Statement* operator[] (int num);
00280
00282     int getStatementsCount() const;
00283
00285     virtual std::ostream& C_Out(std::ostream& out) const;
00286
00287     OPS_DEFINE_VISITABLE()
00288
00289 protected:
00290     Block();
00291
00293     Block(Statement &parent, Namespace* pNamespace);
00294
00295     Block(Namespace* pNamespace);
00296
00297
00298     TStmtList   m_lstStatements;
00299     Namespace*  m_pNamespace;
00300 };
00301
00303 class StmtLoop : public Statement, virtual public OPS::NonCopyableMix
00304 {
00305 public:
00306
00307     virtual Block&  getBodyRef();
00308
00309     virtual const Block& getBodyRef() const;
00310
00311     virtual void setNewBody(Block* body);
00312
00313     virtual Namespace& getNamespace();
00314
00315     virtual const Namespace& getNamespace() const;
00316
00317 //<< D.N.Cherdantsev
00319     virtual bool isDeepViewNeed() { return true; };
00320
00322     virtual bool isIntBlockValid(int nPos);
00323
00325     virtual Statement * getIntBlock(int nPos);
00326
00327     virtual int getMaxInt() { return 1 + 1; }
00328 //>>
00329
00330     OPS_DEFINE_VISITABLE()
00331
00332 protected:
00333     StmtLoop();
00334     ~StmtLoop();
00335
00336     Block* m_pBody;
00337 };
00338
00340 class StmtBranch : public Statement, virtual public OPS::NonCopyableMix
00341 {
00342 public:
00343
00344 //<< D.N.Cherdantsev
00346     virtual bool isDeepViewNeed() { return true; };
00347 //>>
00348
00349     OPS_DEFINE_VISITABLE()
00350 };
00351
00352
00354 class StmtFor : public StmtLoop, virtual public OPS::NonCopyableMix
00355 {
00356 public:
00357     ~StmtFor();
00358
00360     static StmtFor* create(ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr);
00361
00363     static StmtFor* create();
00364
00365     virtual StmtFor* clone() const;
00366
00367     virtual StmtFor* clone(Statement& stmt) const;
00368
00369     void setInit(ExprNode *pExpr);
00370     void setCond(ExprNode *pExpr);
00371     void setIncr(ExprNode *pExpr);
00372
00373     ExprNode*   getInit();
00374     ExprNode*   getCond();
00375     ExprNode*   getIncr();
00376
00377     const ExprNode& getInit() const;
00378     const ExprNode& getCond() const;
00379     const ExprNode& getIncr() const;
00380
00381     virtual std::string dumpState() const;
00382
00384     virtual OpsNewIr::ObjTypes getObjType() const;
00385
00387     virtual std::ostream& C_Out(std::ostream& out) const;
00388
00389     OPS_DEFINE_VISITABLE()
00390
00391 protected:
00392     StmtFor(ExprNode *pInit, ExprNode *pCond, ExprNode *pIncr);
00393
00394     ExprNode    *m_pInit;
00395     ExprNode    *m_pCond;
00396     ExprNode    *m_pIncr;
00397 };
00398
00400 class StmtWhile : public StmtLoop, virtual public OPS::NonCopyableMix
00401 {
00402 public:
00403     virtual ~StmtWhile();
00404
00406     static StmtWhile* create(ExprNode *pCondition);
00407
00409     static StmtWhile* create();
00410
00411     virtual StmtWhile* clone() const;
00412
00413     virtual StmtWhile* clone(Statement& stmt) const;
00414
00416     void setCondition(ExprNode *pCondition);
00417
00419     ExprNode* getCondition();
00420
00422     const ExprNode& getCondition() const;
00423
00424     virtual std::string dumpState() const;
00425
00427     virtual OpsNewIr::ObjTypes getObjType() const;
00428
00430     virtual std::ostream& C_Out(std::ostream& out) const;
00431
00432     OPS_DEFINE_VISITABLE()
00433
00434 protected:
00435     StmtWhile(ExprNode *pCond);
00436
00437     ExprNode    *m_pCondition;
00438 };
00439
00441 class StmtDoWhile : public StmtLoop, virtual public OPS::NonCopyableMix
00442 {
00443 public:
00444     virtual ~StmtDoWhile();
00445
00447     static StmtDoWhile* create(ExprNode *pCondition);
00448
00450     static StmtDoWhile* create();
00451
00452     virtual StmtDoWhile* clone() const;
00453
00454     virtual StmtDoWhile* clone(Statement& stmt) const;
00455
00457     void setCondition(ExprNode *pCondition);
00458
00460     ExprNode* getCondition();
00461
00463     const ExprNode& getCondition() const;
00464
00465     virtual std::string dumpState() const;
00466
00468     virtual OpsNewIr::ObjTypes getObjType() const;
00469
00471     virtual std::ostream& C_Out(std::ostream& out) const;
00472
00473     OPS_DEFINE_VISITABLE()
00474
00475 protected:
00476     StmtDoWhile(ExprNode *pCond);
00477
00478
00479     ExprNode    *m_pCondition;
00480 };
00481
00483 class StmtIf : public StmtBranch, virtual public OPS::NonCopyableMix
00484 {
00485 public:
00486     ~StmtIf();
00487
00489     static StmtIf*  create(ExprNode *pCondition);
00490
00491     virtual StmtIf* clone() const;
00492
00493     virtual StmtIf* clone(Statement& stmt) const;
00494
00496     void setCondition(ExprNode *pCondition);
00497
00499     ExprNode* getCondition();
00500
00502     const ExprNode& getCondition() const;
00503
00505     Block&  getThenRef();
00506
00508     Block&  getElseRef();
00509
00511     const Block& getThenRef() const;
00512
00514     const Block& getElseRef() const;
00515
00517     void    setThenBlock(Block *pBlock);
00518
00520     void    setElseBlock(Block *pBlock);
00521
00522     virtual std::string dumpState() const;
00523
00525     virtual OpsNewIr::ObjTypes getObjType() const;
00526
00527 //<< D.N.Cherdantsev
00529     virtual bool isDeepViewNeed() { return true; };
00530
00532     virtual bool isIntBlockValid(int nPos);
00533
00535     virtual Statement * getIntBlock(int nPos);
00536
00538     virtual int getMaxInt() { return 3; };
00539 //>>
00540
00542     virtual std::ostream& C_Out(std::ostream& out) const;
00543
00544     OPS_DEFINE_VISITABLE()
00545
00546 protected:
00547     StmtIf(ExprNode *pCondition);
00548
00549     ExprNode    *m_pCondition;
00550     Block       *m_pThen;
00551     Block       *m_pElse;
00552 };
00553
00555 class StmtSwitch : public StmtBranch, virtual public OPS::NonCopyableMix
00556 {
00557 public:
00558     ~StmtSwitch();
00559
00560     static StmtSwitch* create(ExprNode  *pCondition);
00561
00562     virtual StmtSwitch* clone() const;
00563
00564     virtual StmtSwitch* clone(Statement& stmt) const;
00565
00566     void setCondition(ExprNode *pCondition);
00567
00568     ExprNode* getCondition();
00569
00570     const ExprNode& getCondition() const;
00571
00572     Block& getBlockRef(int nCase);
00573
00574     virtual std::string dumpState() const;
00575
00577     virtual OpsNewIr::ObjTypes getObjType() const;
00578
00579 //<< D.N.Cherdantsev
00581     virtual bool isDeepViewNeed() { return true; };
00582
00584     virtual bool isIntBlockValid(int nPos);
00585
00587     virtual Statement * getIntBlock(int nPos);
00588
00590     inline virtual int getMaxInt()  {   return OPS::Casts::castUnsignedToSigned<int>(m_aCases.size()+1);    }
00591 //>>
00592
00594     virtual std::ostream& C_Out(std::ostream& out) const;
00595
00596     OPS_DEFINE_VISITABLE()
00597
00598 protected:
00599     StmtSwitch(ExprNode *pCondition);
00600
00601     void addCase(int nCase, Block *pBlock);
00602
00603     ExprNode    *m_pCondition;
00604
00605     typedef std::map<int, Block*>   TCases;
00606
00607     TCases  m_aCases;
00608 };
00609
00611 class StmtGoto: public Statement, virtual public OPS::NonCopyableMix
00612 {
00613 public:
00614     ~StmtGoto();
00615
00616     static StmtGoto* create();
00617     static StmtGoto* create(NameLabel   *pLabel);
00618
00619     virtual StmtGoto* clone() const;
00620
00621     void setLabel(NameLabel *pLabel);
00622     NameLabel* getLabel();
00623
00624     const NameLabel& getLabel() const;
00625
00626     virtual std::string dumpState() const;
00627
00629     virtual OpsNewIr::ObjTypes getObjType() const;
00630
00631 //<< D.N.Cherdantsev
00633     virtual bool isIntBlockValid(int /*nPos*/) { return false;  };
00634
00636     virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00637
00639     virtual bool isDeepViewNeed() { return false; };
00640
00642     virtual int getMaxInt() { return 1; };
00643 //>>
00644
00646     virtual std::ostream& C_Out(std::ostream& out) const;
00647
00648     OPS_DEFINE_VISITABLE()
00649
00650 protected:
00651     StmtGoto();
00652     StmtGoto(NameLabel  *pLabel);
00653
00654     NameLabel   *m_pLabel;
00655 };
00656
00658 class StmtEmpty : public Statement, virtual public OPS::NonCopyableMix
00659 {
00660 public:
00662     static StmtEmpty* create();
00663
00664     virtual StmtEmpty* clone() const;
00665
00666     virtual std::string dumpState() const;
00667
00669     virtual OpsNewIr::ObjTypes getObjType() const;
00670
00671 //<< D.N.Cherdantsev
00673     virtual bool isIntBlockValid(int /*nPos*/) { return false;  };
00674
00676     virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00677
00679     virtual bool isDeepViewNeed() { return false; };
00680
00682     virtual int getMaxInt() {   return  1;  }
00683 //>>
00684
00686     virtual std::ostream& C_Out(std::ostream& out) const;
00687
00688     OPS_DEFINE_VISITABLE()
00689
00690 };
00691
00693
00696 class StmtExpr : public Statement, virtual public OPS::NonCopyableMix
00697 {
00698 public:
00699     ~StmtExpr();
00700
00702     static StmtExpr* create(ExprNode *pHostedExpr);
00703
00705     static StmtExpr* createAssign(ExprNode *pLeft, ExprNode *pRight);
00706
00707     virtual StmtExpr* clone() const;
00708
00709     virtual StmtExpr* clone(Statement& stmt) const;
00710
00711     void setExpr(ExprNode *pHostedExpr);
00712     ExprNode*   getExpr();
00713
00714     const ExprNode& getExpr() const;
00715
00716     virtual std::string dumpState() const;
00717
00719     virtual OpsNewIr::ObjTypes getObjType() const;
00720
00721 //<< D.N.Cherdantsev
00723     virtual bool isIntBlockValid(int /*nPos*/) { return false;  };
00724
00726     virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00727
00729     virtual bool isDeepViewNeed()  { return false; };
00730
00732     virtual int getMaxInt() {   return 1;   }
00733 //>>
00734
00736     virtual std::ostream& C_Out(std::ostream& out) const;
00737
00738     OPS_DEFINE_VISITABLE()
00739
00740 protected:
00741     StmtExpr(ExprNode *pHostedExpr);
00742     static StmtExpr* create();
00743
00744     ExprNode    *m_pHostedExpr;
00745 };
00746
00748 class StmtReturn : public Statement, virtual public OPS::NonCopyableMix
00749 {
00750 public:
00751     ~StmtReturn();
00752
00754     static StmtReturn* create(ExprNode *pHostedExpr);
00755
00756     virtual StmtReturn* clone() const;
00757
00758     virtual StmtReturn* clone(Statement& stmt) const;
00759
00760     void setExpr(ExprNode *pHostedExpr);
00761
00762     ExprNode* getExpr();
00763
00764     const ExprNode& getExpr() const;
00765
00766     virtual std::string dumpState() const;
00767
00769     virtual OpsNewIr::ObjTypes getObjType() const;
00770
00771 //<< D.N.Cherdantsev
00773     virtual bool isIntBlockValid(int /*nPos*/) { return false;  };
00774
00776     virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00777
00779     virtual bool isDeepViewNeed() { return false; };
00780
00782     virtual int getMaxInt() {   return 1;   }
00783
00784 //>>
00785
00787     virtual std::ostream& C_Out(std::ostream& out) const;
00788
00789     OPS_DEFINE_VISITABLE()
00790
00791 protected:
00792     inline StmtReturn(ExprNode *pHostedExpr) : m_pHostedExpr(pHostedExpr)   {}
00793
00794     ExprNode    *m_pHostedExpr;
00795 };
00796
00798 class StmtBreak : public Statement, virtual public OPS::NonCopyableMix
00799 {
00800 public:
00802     static StmtBreak* create();
00803
00804     virtual StmtBreak* clone() const;
00805
00806     virtual std::string dumpState() const;
00807
00809     virtual OpsNewIr::ObjTypes getObjType() const;
00810
00811 //<< D.N.Cherdantsev
00813     inline virtual bool isIntBlockValid(int /*nPos*/) { return false;   };
00814
00816     inline virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00817
00819     inline virtual bool isDeepViewNeed() { return false; };
00820
00822     virtual int getMaxInt() {   return 1;   }
00823 //>>
00825     virtual std::ostream& C_Out(std::ostream& out) const;
00826
00827     OPS_DEFINE_VISITABLE()
00828
00829 protected:
00830     StmtBreak() {}
00831
00832 };
00833
00835 class StmtContinue : public Statement, virtual public OPS::NonCopyableMix
00836 {
00837 public:
00839     static StmtContinue* create();
00840
00841     virtual StmtContinue* clone() const;
00842
00843     virtual std::string dumpState() const;
00844
00846     virtual OpsNewIr::ObjTypes getObjType() const;
00847
00848 //<< D.N.Cherdantsev
00850     inline virtual bool isIntBlockValid(int /*nPos*/) { return false;   };
00851
00853     inline virtual Statement * getIntBlock(int /*nPos*/) { return 0;};
00854
00856     inline virtual bool isDeepViewNeed() { return false; };
00857
00859     virtual int getMaxInt() {   return 1;   }
00860 //>>
00862     virtual std::ostream& C_Out(std::ostream& out) const;
00863
00864     OPS_DEFINE_VISITABLE()
00865
00866 protected:
00867     StmtContinue()  {}
00868
00869 };
00870
00871 #endif                      //STATEMENTS_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

ExprOper::OperDescr Cписок членов класса

Полный список членов класса ExprOper::OperDescr, включая наследуемые из базового класса

nArgs | ExprOper::OperDescr
strPrintValue | ExprOper::OperDescr

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:35 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Cписок членов класса

TypeArray::Limits Cписок членов класса

Полный список членов класса TypeArray::Limits, включая наследуемые из базового класса

high (определено в TypeArray::Limits) | TypeArray::Limits |
Limits() | TypeArray::Limits | [inline]
Limits(int aLow, int aHigh) | TypeArray::Limits | [inline]
Limits(int aHigh) | TypeArray::Limits | [inline]
low (определено в TypeArray::Limits) | TypeArray::Limits |
operator!=(const Limits &lim) const (определено в TypeArray::Limits) | TypeArray::Limits | [inline]
operator==(const Limits &lim) const (определено в TypeArray::Limits) | TypeArray::Limits | [inline]

Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:37 2007. Создано системой doxygen 1.5.1-p1


opsnewir: Исходный файл SubProc.h

  • Файлы

SubProc.h

00001 #ifndef _SUBPROC_H_
00002 #define _SUBPROC_H_
00003
00004 #include "IRObject.h"
00005
00006 class TypeData;
00007
00008 class SubProcParam
00009 {
00010 public:
00011     static SubProcParam* create(const std::string& strName, TypeData *pType);
00012
00013     virtual ~SubProcParam();
00014
00015     virtual SubProcParam* clone() const;
00016
00017
00018     std::string&    name()  {   return m_strName;   }
00019
00020     TypeData*   getType() const {   return m_pType; }
00021     void        setType(TypeData *p);
00022
00023     virtual std::string dumpState() const;
00024
00026     virtual std::ostream& C_Out(std::ostream& out) const;
00027 private:
00028     SubProcParam(const std::string& strName, TypeData *pType);
00029
00030     std::string m_strName;
00031     TypeData    *m_pType;
00032
00033 };
00034
00035 typedef std::list<SubProcParam*>        TParams;
00036 typedef ListIter<SubProcParam, TParams> ParamIter;
00037 typedef ConstListIter<SubProcParam, TParams>    ParamConstIter;
00038
00039
00040 class SubProcParams
00041 {
00042 public:
00043     ~SubProcParams();
00044     void addFront(SubProcParam *pParam);
00045     void addBack(SubProcParam *pParam);
00046
00047     void insertBefore(ParamIter it, SubProcParam *pParam);
00048     void insertAfter(ParamIter it, SubProcParam *pParam);
00049
00050     void erase(ParamIter it);
00051     void erase(const std::string& strName);
00052
00053     ParamIter   getFirst();
00054     ParamConstIter  getFirst() const;
00055     ParamIter   getLast();
00056     ParamConstIter  getLast() const;
00057
00058     ParamIter   getByName(const std::string& strName);
00059     ParamConstIter  getByName(const std::string& strName) const;
00060
00061     int getParamsCount() const;
00063     virtual std::ostream& C_Out(std::ostream& out)
00064     {
00065         return out;
00066     }
00067
00068     bool isEqual(const SubProcParams& paramsTo) const;
00069
00070 protected:
00071     TParams m_lstParams;
00072 };
00073
00074
00075
00076 class SubProcModifiers
00077 {
00078 public:
00079
00080     enum MODS
00081     {
00082         M_INLINE,
00083         M_STDCALL,
00084         M_CDECL,
00085         M_PASCAL
00086
00087     };
00088
00089     static std::string dumpMods(MODS md)
00090     {
00091         switch(md)
00092         {
00093             case M_INLINE:
00094                 return "inline";
00095
00096             case M_STDCALL:
00097                 return "stdcall";
00098
00099             case M_CDECL:
00100                 return "cdecl";
00101
00102             case M_PASCAL:
00103                 return "pascal";
00104
00105             default:
00106                 return "(undefined)";
00107         }
00108     }
00109
00111     virtual std::ostream& C_Out(std::ostream& out) const;
00112
00113 };
00114
00115
00116
00117 #endif                      //SUBPROC_H_
Документация по opsnewir. Последние изменения: Mon Jul 2 11:22:34 2007. Создано системой doxygen 1.5.1-p1