25 lines
630 B
C++
25 lines
630 B
C++
#include "env.hpp"
|
|
#include <cassert>
|
|
|
|
int env_var::get_offset(const std::string& name) const {
|
|
if(name == this->name) return 0;
|
|
assert(parent);
|
|
return parent->get_offset(name) + 1;
|
|
}
|
|
|
|
bool env_var::has_variable(const std::string& name) const {
|
|
if(name == this->name) return true;
|
|
if(parent) return parent->has_variable(name);
|
|
return false;
|
|
}
|
|
|
|
int env_offset::get_offset(const std::string& name) const {
|
|
assert(parent);
|
|
return parent->get_offset(name) + offset;
|
|
}
|
|
|
|
bool env_offset::has_variable(const std::string& name) const {
|
|
if(parent) return parent->has_variable(name);
|
|
return false;
|
|
}
|