Create new 'branch' for part 6 of compiler series

This commit is contained in:
2019-10-01 11:05:21 -07:00
parent b065d95804
commit ef86d60bda
19 changed files with 867 additions and 0 deletions

16
06/env.cpp Normal file
View File

@@ -0,0 +1,16 @@
#include "env.hpp"
type_ptr type_env::lookup(const std::string& name) const {
auto it = names.find(name);
if(it != names.end()) return it->second;
if(parent) return parent->lookup(name);
return nullptr;
}
void type_env::bind(const std::string& name, type_ptr t) {
names[name] = t;
}
type_env type_env::scope() const {
return type_env(this);
}