summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/item.cc7
-rw-r--r--src/item.h2
2 files changed, 9 insertions, 0 deletions
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);