Skip to content

Commit 91f0773

Browse files
committed
SMV: remove vars member in parse tree
The variables are now stored as items, in the order in the source file, and this auxiliary member is no longer needed.
1 parent 8f417e6 commit 91f0773

File tree

2 files changed

+0
-39
lines changed

2 files changed

+0
-39
lines changed

src/smvlang/parser.y

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -553,18 +553,6 @@ ltl_specification:
553553
;
554554

555555
extern_var : variable_identifier EQUAL_Token STRING_Token
556-
{
557-
const irep_idt &identifier=stack_expr($1).get(ID_identifier);
558-
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
559-
560-
if(var.identifier!=irep_idt())
561-
{
562-
yyerror("variable `"+id2string(identifier)+"' already declared extern");
563-
YYERROR;
564-
}
565-
else
566-
var.identifier=stack_expr($3).id_string();
567-
}
568556
;
569557

570558
var_list : var_decl
@@ -574,8 +562,6 @@ var_list : var_decl
574562
module_parameter: identifier
575563
{
576564
const irep_idt &identifier=stack_expr($1).id();
577-
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
578-
var.var_class=smv_parse_treet::mc_vart::ARGUMENT;
579565
PARSER.module->parameters.push_back(identifier);
580566
}
581567
;
@@ -684,9 +670,6 @@ enum_element: IDENTIFIER_Token
684670

685671
var_decl : variable_identifier ':' type_specifier ';'
686672
{
687-
const irep_idt &identifier=stack_expr($1).get(ID_identifier);
688-
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
689-
(void)var;
690673
PARSER.module->add_var(stack_expr($1), stack_type($3));
691674
}
692675
;
@@ -708,9 +691,6 @@ assignment : assignment_head '(' assignment_var ')' BECOMES_Token formula ';'
708691
}
709692
| assignment_var BECOMES_Token formula ';'
710693
{
711-
const irep_idt &identifier=stack_expr($1).get(ID_identifier);
712-
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
713-
(void)var;
714694
PARSER.module->add_assign_current(std::move(stack_expr($1)), std::move(stack_expr($3)));
715695
}
716696
;
@@ -729,9 +709,6 @@ defines: define
729709

730710
define : assignment_var BECOMES_Token formula ';'
731711
{
732-
const irep_idt &identifier=stack_expr($1).get(ID_identifier);
733-
smv_parse_treet::mc_vart &var=PARSER.module->vars[identifier];
734-
(void)var;
735712
PARSER.module->add_define(std::move(stack_expr($1)), std::move(stack_expr($3)));
736713
}
737714
;
@@ -939,7 +916,6 @@ variable_identifier: complex_identifier
939916

940917
init($$, ID_smv_identifier);
941918
stack_expr($$).set(ID_identifier, id);
942-
PARSER.module->vars[id];
943919
}
944920
;
945921

src/smvlang/smv_parse_tree.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,6 @@ Author: Daniel Kroening, kroening@kroening.com
1818
class smv_parse_treet
1919
{
2020
public:
21-
22-
struct mc_vart
23-
{
24-
typedef enum { UNKNOWN, DECLARED, DEFINED, ARGUMENT } var_classt;
25-
var_classt var_class;
26-
typet type;
27-
irep_idt identifier;
28-
29-
mc_vart():var_class(UNKNOWN), type(typet(ID_bool))
30-
{
31-
}
32-
};
33-
34-
typedef std::unordered_map<irep_idt, mc_vart, irep_id_hash> mc_varst;
3521
typedef std::unordered_set<irep_idt, irep_id_hash> enum_sett;
3622

3723
struct modulet
@@ -286,7 +272,6 @@ class smv_parse_treet
286272
items.emplace_back(itemt::ENUM, std::move(expr), std::move(location));
287273
}
288274

289-
mc_varst vars;
290275
enum_sett enum_set;
291276
};
292277

0 commit comments

Comments
 (0)