Skip to content

Commit fc89115

Browse files
committed
SMV: cleanup ports/parameters in parse tree
The parse tree has both a ports and a parameters member. This removes the ports member, and changes the type of the parameters member to a list of identifiers.
1 parent 01ccf33 commit fc89115

File tree

4 files changed

+12
-20
lines changed

4 files changed

+12
-20
lines changed

src/smvlang/parser.y

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,13 @@ module_name: IDENTIFIER_Token
360360
| STRING_Token
361361
;
362362

363-
module_head: MODULE_Token module_name { new_module($2); }
363+
module_head: MODULE_Token module_name
364+
{
365+
new_module($2);
366+
}
364367
| MODULE_Token module_name '(' module_parameters_opt ')'
365368
{
366-
auto &module = new_module($2);
367-
module.parameters = stack_expr($4);
369+
new_module($2);
368370
}
369371
;
370372

@@ -579,24 +581,16 @@ var_list : var_decl
579581

580582
module_parameter: identifier
581583
{
582-
const irep_idt &identifier=stack_expr($1).get(ID_identifier);
584+
const irep_idt &identifier=stack_expr($1).id();
583585
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
584586
var.var_class=smv_parse_treet::mc_vart::ARGUMENT;
585-
PARSER.module->ports.push_back(identifier);
587+
PARSER.module->parameters.push_back(identifier);
586588
}
587589
;
588590

589591
module_parameters:
590592
module_parameter
591-
{
592-
init($$);
593-
mto($$, $1);
594-
}
595593
| module_parameters ',' module_parameter
596-
{
597-
$$ = $1;
598-
mto($$, $3);
599-
}
600594
;
601595

602596
module_parameters_opt:

src/smvlang/smv_language.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ void smv_languaget::show_parse(std::ostream &out, message_handlert &)
136136

137137
out << " PARAMETERS:\n";
138138

139-
for(auto &parameter : module.parameters.get_sub())
140-
out << " " << parameter.id() << '\n';
139+
for(auto &parameter : module.parameters)
140+
out << " " << parameter << '\n';
141141

142142
out << '\n';
143143

src/smvlang/smv_parse_tree.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class smv_parse_treet
3737
struct modulet
3838
{
3939
irep_idt name, base_name;
40-
irept parameters;
40+
std::list<irep_idt> parameters;
4141

4242
struct itemt
4343
{
@@ -288,8 +288,6 @@ class smv_parse_treet
288288

289289
mc_varst vars;
290290
enum_sett enum_set;
291-
292-
std::list<irep_idt> ports;
293291
};
294292

295293
typedef std::unordered_map<irep_idt, modulet, irep_id_hash> modulest;

src/smvlang/smv_typecheck.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ void smv_typecheckt::convert_ports(
169169
{
170170
irept::subt &ports=dest.add(ID_ports).get_sub();
171171

172-
ports.reserve(smv_module.ports.size());
172+
ports.reserve(smv_module.parameters.size());
173173

174-
for(const auto &port_name : smv_module.ports)
174+
for(const auto &port_name : smv_module.parameters)
175175
{
176176
ports.push_back(exprt(ID_symbol));
177177
ports.back().set(

0 commit comments

Comments
 (0)