File tree Expand file tree Collapse file tree 3 files changed +23
-30
lines changed Expand file tree Collapse file tree 3 files changed +23
-30
lines changed Original file line number Diff line number Diff line change @@ -591,6 +591,7 @@ description:
591
591
| program_declaration
592
592
| package_declaration
593
593
| attribute_instance_brace package_item
594
+ { PARSER.parse_tree.create_package_item(stack_expr($2 )); }
594
595
| attribute_instance_brace bind_directive
595
596
| config_declaration
596
597
;
Original file line number Diff line number Diff line change @@ -29,10 +29,8 @@ void verilog_parse_treet::create_module(
29
29
exprt &ports,
30
30
exprt &module_items)
31
31
{
32
- items.push_back (itemt ());
32
+ items.push_back (itemt (itemt::MODULE ));
33
33
itemt &item=items.back ();
34
-
35
- item.type =itemt::MODULE;
36
34
37
35
verilog_modulet &new_module=item.verilog_module ;
38
36
@@ -135,9 +133,10 @@ void verilog_parse_treet::itemt::show(std::ostream &out) const
135
133
case itemt::MODULE:
136
134
verilog_module.show (out);
137
135
break ;
138
-
139
- case itemt::TYPEDEF:
140
- verilog_typedef.show (out);
136
+
137
+ case itemt::PACKAGE_ITEM:
138
+ out << " Package item:\n " ;
139
+ out << verilog_package_item.pretty () << ' \n ' ;
141
140
break ;
142
141
143
142
default :
Original file line number Diff line number Diff line change @@ -27,37 +27,32 @@ class verilog_parse_treet
27
27
28
28
verilog_standardt standard;
29
29
30
- class verilog_typedeft
30
+ struct itemt
31
31
{
32
32
public:
33
- typet symbol;
34
- typet type;
35
-
36
- void show (std::ostream &out) const
33
+ typedef enum
34
+ {
35
+ MODULE,
36
+ PACKAGE_ITEM
37
+ } item_typet;
38
+ item_typet type;
39
+
40
+ explicit itemt (item_typet __type) : type(__type)
37
41
{
38
- out << " Typedef:\n " ;
39
- out << " \n " ;
40
42
}
41
- };
42
43
43
- struct itemt
44
- {
45
- public:
46
- typedef enum { MODULE, TYPEDEF } item_typet;
47
- item_typet type;
48
-
49
44
verilog_modulet verilog_module;
50
-
51
- verilog_typedeft verilog_typedef ;
52
-
45
+
46
+ exprt verilog_package_item ;
47
+
53
48
bool is_module () const
54
49
{
55
50
return type==MODULE;
56
51
}
57
52
58
- bool is_typedef () const
53
+ bool is_package_item () const
59
54
{
60
- return type==TYPEDEF ;
55
+ return type == PACKAGE_ITEM ;
61
56
}
62
57
63
58
void show (std::ostream &out) const ;
@@ -88,12 +83,10 @@ class verilog_parse_treet
88
83
exprt &ports,
89
84
exprt &statements);
90
85
91
- void create_typedef (irept &declaration )
86
+ void create_package_item (exprt package_item )
92
87
{
93
- items.push_back (itemt ());
94
- items.back ().type =itemt::TYPEDEF;
95
- items.back ().verilog_typedef .symbol .swap (declaration.get_sub ()[0 ]);
96
- items.back ().verilog_typedef .type .swap (declaration.add (ID_type));
88
+ items.push_back (itemt (itemt::PACKAGE_ITEM));
89
+ items.back ().verilog_package_item = std::move (package_item);
97
90
}
98
91
99
92
void swap (verilog_parse_treet &parse_tree)
You can’t perform that action at this time.
0 commit comments