/** ** \file bind/renamer.cc ** \brief Implementation of bind::Renamer. */ #include namespace bind { using namespace ast; // FIXME DONE: Some code was deleted here. void Renamer::operator()(ast::VarDec& e) { if (renames_.find(&e) != renames_.end()) super_type::operator()(e); new_name_(&e); e.name_set(renames_.at(&e)); super_type::operator()(e); } void Renamer::operator()(ast::TypeDec& e) { if (renames_.find(&e) != renames_.end()) super_type::operator()(e); new_name_(&e); e.name_set(renames_.at(&e)); super_type::operator()(e); } void Renamer::operator()(ast::FunctionDec& e) { if (e.body_get() == nullptr || e.name_get() == "_main" || renames_.find(&e) != renames_.end()) { super_type::operator()(e); return; } new_name_(&e); e.name_set(renames_.at(&e)); super_type::operator()(e); } void Renamer::operator()(ast::SimpleVar& e) { if (renames_.find(e.def_get()) != renames_.end()) e.name_set(renames_.at(e.def_get())); } void Renamer::operator()(ast::NameTy& e) { if (renames_.find(e.def_get()) != renames_.end()) e.name_set(renames_.at(e.def_get())); } void Renamer::operator()(ast::CallExp& e) { if (e.def_get() == nullptr || e.def_get()->body_get() == nullptr || e.name_get() == "_main") super_type::operator()(e); else { e.name_set(renames_.at(e.def_get())); super_type::operator()(e); } } } // namespace bind