diff options
Diffstat (limited to 'var.cpp')
-rw-r--r-- | var.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -33,6 +33,23 @@ Var Var::lookup(const std::string& name, int skip) return {}; } +void Var::rename(const std::string& old, const std::string& neww, int skip) +{ + for (auto sc = vars.rbegin(); sc != vars.rend(); ++sc) { + if (skip > 0) { + --skip; + continue; + } + if (sc->contains(old)) { + auto it = sc->find(old); + (*sc)[neww] = it->second; + //it->second.value->setName(neww); + sc->erase(it); + break; + } + } +} + Var Var::lookupLocal(const std::string& name) { return vars.back().contains(name) ? vars.back()[name] : Var(); |