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:
591591 | program_declaration
592592 | package_declaration
593593 | attribute_instance_brace package_item
594+ { PARSER.parse_tree.create_package_item(stack_expr($2 )); }
594595 | attribute_instance_brace bind_directive
595596 | config_declaration
596597 ;
Original file line number Diff line number Diff line change @@ -29,10 +29,8 @@ void verilog_parse_treet::create_module(
2929 exprt &ports,
3030 exprt &module_items)
3131{
32- items.push_back (itemt ());
32+ items.push_back (itemt (itemt::MODULE ));
3333 itemt &item=items.back ();
34-
35- item.type =itemt::MODULE;
3634
3735 verilog_modulet &new_module=item.verilog_module ;
3836
@@ -135,9 +133,10 @@ void verilog_parse_treet::itemt::show(std::ostream &out) const
135133 case itemt::MODULE:
136134 verilog_module.show (out);
137135 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 ' ;
141140 break ;
142141
143142 default :
Original file line number Diff line number Diff line change @@ -27,37 +27,32 @@ class verilog_parse_treet
2727
2828 verilog_standardt standard;
2929
30- class verilog_typedeft
30+ struct itemt
3131 {
3232 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)
3741 {
38- out << " Typedef:\n " ;
39- out << " \n " ;
4042 }
41- };
4243
43- struct itemt
44- {
45- public:
46- typedef enum { MODULE, TYPEDEF } item_typet;
47- item_typet type;
48-
4944 verilog_modulet verilog_module;
50-
51- verilog_typedeft verilog_typedef ;
52-
45+
46+ exprt verilog_package_item ;
47+
5348 bool is_module () const
5449 {
5550 return type==MODULE;
5651 }
5752
58- bool is_typedef () const
53+ bool is_package_item () const
5954 {
60- return type==TYPEDEF ;
55+ return type == PACKAGE_ITEM ;
6156 }
6257
6358 void show (std::ostream &out) const ;
@@ -88,12 +83,10 @@ class verilog_parse_treet
8883 exprt &ports,
8984 exprt &statements);
9085
91- void create_typedef (irept &declaration )
86+ void create_package_item (exprt package_item )
9287 {
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);
9790 }
9891
9992 void swap (verilog_parse_treet &parse_tree)
You can’t perform that action at this time.
0 commit comments