@@ -29,8 +29,6 @@ void verilog_parse_treet::create_module(
29
29
exprt &ports,
30
30
exprt &module_items)
31
31
{
32
- items.push_back (itemt (itemt::MODULE));
33
-
34
32
if (ports.get_sub ().size ()==1 &&
35
33
ports.get_sub ().front ().is_nil ())
36
34
ports.clear ();
@@ -43,10 +41,10 @@ void verilog_parse_treet::create_module(
43
41
((const exprt &)module_keyword).source_location ();
44
42
new_module.add (ID_module_items) = std::move (module_items);
45
43
46
- items. back (). verilog_module = std::move (new_module);
44
+ auto &new_item = add_item ( std::move (new_module) );
47
45
48
46
// add to module map
49
- module_map[name.id ()] = --items. end ( );
47
+ module_map[name.id ()] = & to_verilog_module_source (new_item );
50
48
}
51
49
52
50
/* ******************************************************************\
@@ -64,12 +62,12 @@ Function: verilog_parse_treet::modules_provided
64
62
void verilog_parse_treet::modules_provided (
65
63
std::set<std::string> &module_set) const
66
64
{
67
- for (itemst::const_iterator it= items. begin ();
68
- it!=items. end ();
69
- it++ )
70
- if (it-> is_module ())
71
- module_set. insert (
72
- id2string ( verilog_module_symbol (it-> verilog_module . base_name ())));
65
+ for (auto &item : items)
66
+ {
67
+ if (item. id () == ID_verilog_module )
68
+ module_set. insert ( id2string (
69
+ verilog_module_symbol ( to_verilog_module_source (item). base_name ())));
70
+ }
73
71
}
74
72
75
73
/* ******************************************************************\
@@ -88,11 +86,14 @@ void verilog_parse_treet::build_module_map()
88
86
{
89
87
module_map.clear ();
90
88
91
- for (itemst::iterator it=items.begin ();
92
- it!=items.end ();
93
- it++)
94
- if (it->is_module ())
95
- module_map[it->verilog_module .base_name ()] = it;
89
+ for (const auto &item : items)
90
+ {
91
+ if (item.id () == ID_verilog_module)
92
+ {
93
+ auto &verilog_module = to_verilog_module_source (item);
94
+ module_map[verilog_module.base_name ()] = &verilog_module;
95
+ }
96
+ }
96
97
}
97
98
98
99
/* ******************************************************************\
@@ -109,15 +110,13 @@ Function: verilog_parse_treet::show
109
110
110
111
void verilog_parse_treet::show (std::ostream &out) const
111
112
{
112
- for (itemst::const_iterator it=items.begin ();
113
- it!=items.end ();
114
- it++)
115
- it->show (out);
113
+ for (const auto &item : items)
114
+ show (item, out);
116
115
}
117
116
118
117
/* ******************************************************************\
119
118
120
- Function: verilog_parse_treet::itemt:: show
119
+ Function: verilog_parse_treet::show
121
120
122
121
Inputs:
123
122
@@ -127,8 +126,10 @@ Function: verilog_parse_treet::itemt::show
127
126
128
127
\*******************************************************************/
129
128
130
- void verilog_parse_treet::itemt::show (std::ostream &out) const
129
+ void verilog_parse_treet::show (const itemt &item, std::ostream &out)
130
+ const
131
131
{
132
+ /*
132
133
switch(type)
133
134
{
134
135
case itemt::MODULE:
@@ -137,10 +138,11 @@ void verilog_parse_treet::itemt::show(std::ostream &out) const
137
138
138
139
case itemt::PACKAGE_ITEM:
139
140
out << "Package item:\n";
140
- out << verilog_package_item .pretty () << ' \n ' ;
141
+ out << verilog_item .pretty() << '\n';
141
142
break;
142
143
143
144
default:
144
145
PRECONDITION(false);
145
146
}
147
+ */
146
148
}
0 commit comments