243 GlobalObjects::iterator found = find(name.begin());
244 VariablePair * exist = (found != end()) ? &found->second :
nullptr;
253 name.begin(), exist->
term->toString().c_str());
265 insert_or_assign(name.begin(),
VariablePair{term, var});
289 auto found = find(name.begin());
290 if (found == end()) {
291 std::string glob_name(
"::");
292 glob_name.append(name.begin());
293 found = find(glob_name);
304 if (found != end()) {
309 return &found->second;
317 for (
auto &elem : *
this) {
323 if (!filter.empty()) {
325 result += elem.second.var.is_undefined() ?
"undefined" : elem.second.var.GetValueAsObject()->toString();
330 if (!filter.empty()) {
332 result.insert(0, filter.begin());
333 result.insert(0,
"Apply filter: '");
bool RegisterObject(bool only_new, const std::string_view name, TermPtr term, Variable var)
std::string Dump(const std::string_view filter="", const char delim=';')
VariablePair * FindObject(const std::string_view name)
bool MatchesName(const std::string &name) const
static bool CheckTermEq(const TermPtr &term, const TermPtr &proto, bool type=false, RuntimePtr rt=nullptr)
bool is_undefined() const
#define ASSERT(condition)
std::shared_ptr< Term > TermPtr
#define NL_MESSAGE(level, term, format,...)