diff options
Diffstat (limited to 'src/tuplr.hpp')
-rw-r--r-- | src/tuplr.hpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/tuplr.hpp b/src/tuplr.hpp index 6f79e8c..ada5412 100644 --- a/src/tuplr.hpp +++ b/src/tuplr.hpp @@ -628,15 +628,11 @@ struct CEnv { ~CEnv() { Object::pool.collect(GC::Roots()); } - typedef Env<const AST*, CVal> Vals; + typedef Env<const ASymbol*, CVal> Vals; Engine* engine() { return _engine; } void push() { tenv.push(); vals.push(); } void pop() { tenv.pop(); vals.pop(); } - CVal compile(AST* obj) { - CVal* v = vals.ref(obj); - return (v && *v) ? *v : vals.def(obj, obj->compile(*this)); - } void lock(AST* ast) { Object::pool.addRoot(ast); Object::pool.addRoot(type(ast)); } AType* type(AST* ast, const Subst& subst = Subst()) const { ASymbol* sym = ast->to<ASymbol*>(); @@ -649,13 +645,12 @@ struct CEnv { vals.def(sym, v); } - ostream& out; - ostream& err; - PEnv& penv; - TEnv& tenv; - Vals vals; - - Subst tsubst; + ostream& out; + ostream& err; + PEnv& penv; + TEnv& tenv; + Vals vals; + Subst tsubst; map<string,string> args; |