diff --git a/src/item.cc b/src/item.cc index 5262d1db..17d46652 100644 --- a/src/item.cc +++ b/src/item.cc @@ -398,6 +398,13 @@ value_t get_comment(item_t& item) } } +void item_t::define(const symbol_t::kind_t, const string& name, + expr_t::ptr_op_t def) +{ + bind_scope_t bound_scope(*scope_t::default_scope, *this); + set_tag(name, def->calc(bound_scope)); +} + expr_t::ptr_op_t item_t::lookup(const symbol_t::kind_t kind, const string& name) { diff --git a/src/item.h b/src/item.h index c56fba27..8d9a79ee 100644 --- a/src/item.h +++ b/src/item.h @@ -216,6 +216,8 @@ public: return _state; } + virtual void define(const symbol_t::kind_t, const string&, + expr_t::ptr_op_t); virtual expr_t::ptr_op_t lookup(const symbol_t::kind_t kind, const string& name);