blob: 1f13de0be5f99a27c56f2bd742fa2cad06da1a06 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/**
** \file bind/renamer.cc
** \brief Implementation of bind::Renamer.
*/
#include <bind/renamer.hh>
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
|