1 ///////////////////////////////////////////////////////////////////////////////
5 ///////////////////////////////////////////////////////////////////////////////
8 ///////////////////////////////////////////////////////////////////////////////
10 // Constructor and destructor
12 ///////////////////////////////////////////////////////////////////////////////
13 Env::Env() : env(string_hash,string_equal) {}
14 Env::Env(const Env& E) : env(string_hash,string_equal)
15 { foreach_entry(i,E.env) env.insert(i->k,i->v); }
18 ///////////////////////////////////////////////////////////////////////////////
22 ///////////////////////////////////////////////////////////////////////////////
23 Ty Env::operator () (Id id) const
24 { HashTable::Entry * e = env.lookup(id);
25 if (e) return (Ty)(e->v); else return NOty;
28 ///////////////////////////////////////////////////////////////////////////////
30 // Insert a new entry to the environment
32 ///////////////////////////////////////////////////////////////////////////////
33 void Env::bind(Id id, Ty ty) { env.insert(id,ty); }