aboutsummaryrefslogtreecommitdiffstats
path: root/typing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'typing.cpp')
-rw-r--r--typing.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/typing.cpp b/typing.cpp
index 80bc568..4e3fce5 100644
--- a/typing.cpp
+++ b/typing.cpp
@@ -185,15 +185,15 @@ substitute(ATuple* tup, AST* from, AST* to)
substitute(dynamic_cast<ATuple*>(tup->at(i)), from, to);
}
-TSubst
-compose(const TSubst& delta, const TSubst& gamma) // TAPL 22.1.1
+TEnv::Subst
+compose(const TEnv::Subst& delta, const TEnv::Subst& gamma) // TAPL 22.1.1
{
- TSubst r;
- for (TSubst::const_iterator g = gamma.begin(); g != gamma.end(); ++g) {
- TSubst::const_iterator d = delta.find(g->second);
+ TEnv::Subst r;
+ for (TEnv::Subst::const_iterator g = gamma.begin(); g != gamma.end(); ++g) {
+ TEnv::Subst::const_iterator d = delta.find(g->second);
r.insert(make_pair(g->first, ((d != delta.end()) ? d : g)->second));
}
- for (TSubst::const_iterator d = delta.begin(); d != delta.end(); ++d) {
+ for (TEnv::Subst::const_iterator d = delta.begin(); d != delta.end(); ++d) {
if (gamma.find(d->first) == gamma.end())
r.insert(*d);
}
@@ -213,10 +213,10 @@ substConstraints(TEnv::Constraints& constraints, AType* s, AType* t)
}
}
-TSubst
+TEnv::Subst
TEnv::unify(const Constraints& constraints) // TAPL 22.4
{
- if (constraints.empty()) return TSubst();
+ if (constraints.empty()) return Subst();
AType* s = constraints.begin()->first;
AType* t = constraints.begin()->second;
Constraints cp = constraints;
@@ -226,10 +226,10 @@ TEnv::unify(const Constraints& constraints) // TAPL 22.4
return unify(cp);
} else if (s->var() && !t->contains(s)) {
substConstraints(cp, s, t);
- return compose(unify(cp), TSubst(s, t));
+ return compose(unify(cp), Subst(s, t));
} else if (t->var() && !s->contains(t)) {
substConstraints(cp, t, s);
- return compose(unify(cp), TSubst(t, s));
+ return compose(unify(cp), Subst(t, s));
} else if (s->kind == AType::EXPR && s->kind == t->kind && s->size() == t->size()) {
for (size_t i = 0; i < s->size(); ++i) {
AType* si = dynamic_cast<AType*>(s->at(i));
@@ -245,9 +245,9 @@ TEnv::unify(const Constraints& constraints) // TAPL 22.4
}
void
-TEnv::apply(const TSubst& substs)
+TEnv::apply(const TEnv::Subst& substs)
{
- FOREACH(TSubst::const_iterator, s, substs)
+ FOREACH(Subst::const_iterator, s, substs)
FOREACH(Frame::iterator, t, front())
if (*t->second == *s->first)
t->second = s->second;