NewLang Project
Yet another programm language
|
#include <types.h>
Public Types | |
typedef std::pair< std::string, VariablePair > | PairType |
Public Member Functions | |
bool | RegisterObject (bool only_new, const std::string_view name, TermPtr term, Variable var) |
VariablePair * | FindObject (const std::string_view name) |
size_t | size () |
bool | AppendModule (ModulePtr module) |
std::string | Dump (const std::string_view filter="", const char delim=';') |
Public Attributes | |
ModulePtr | m_curr_module |
std::map< std::string, ModulePtr > | m_modules |
typedef std::pair<std::string, VariablePair> newlang::GlobalObjects::PairType |
bool GlobalObjects::RegisterObject | ( | bool | only_new, |
const std::string_view | name, | ||
TermPtr | term, | ||
Variable | var ) |
Регистрирует глобальный объект
only_new | - Признак создания нового объекта (использован оператор '::=') |
name | - Имя объекта |
term | - Термин в исходном коде (может не быть, если модуль скомпилирован или оптимизирован) |
var | - Скомпилированный объект (может не быть, если идет анализ AST) |
Definition at line 239 of file types.cpp.
References ASSERT, newlang::Term::CheckTermEq(), newlang::Variable::is_undefined(), LOG_LEVEL_INFO, NL_MESSAGE, newlang::VariablePair::term, and newlang::VariablePair::var.
Referenced by newlang::NameLookupStack::AddName(), newlang::Context::EvalLeftVars_(), newlang::RunTime::RegisterBuildinFunc(), newlang::RunTime::RegisterBuildinType(), and newlang::RunTime::RegisterSystemFunc().
VariablePair * GlobalObjects::FindObject | ( | const std::string_view | name | ) |
Definition at line 287 of file types.cpp.
Referenced by newlang::NameLookupStack::FindInternalName(), newlang::Context::FindObject(), and newlang::AstAnalysis::LookupName().
bool newlang::GlobalObjects::AppendModule | ( | ModulePtr | module | ) |
std::string GlobalObjects::Dump | ( | const std::string_view | filter = "", |
const char | delim = ';' ) |
Definition at line 314 of file types.cpp.
References newlang::StringMatcher::MatchesName(), and result.
Referenced by newlang::AstAnalysis::LookupName().
std::map<std::string, ModulePtr> newlang::GlobalObjects::m_modules |