Контекст для анализатора
Для реализации модуля создан класс, содержащий вспомогательные структуры данных:
struct SemantizerContext {
std::list<VariablesTable *> variables;
FunctionsTable &functions;
TypeId currentFunctionType;
SemantizerContext(FunctionsTable &functions_);
TypeId findVariable(const Node::Ptr &node);
};
Поля класса:
variables
– двусвязный список, содержащий в себе указатели на таблицы переменных;functions
– ссылка на таблицу функций;currentFunctionType
– тип, содержащий возвращаемое значение анализируемой в данной момент функции.