#include "env.hpp"

int env_var::get_offset(const std::string& name) const {
    if(name == this->name) return 0;
    if(parent) return parent->get_offset(name) + 1;
    throw 0;
}

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 {
    if(parent) return parent->get_offset(name) + offset;
    throw 0;
}

bool env_offset::has_variable(const std::string& name) const {
    if(parent) return parent->has_variable(name);
    return false;
}