File tree Expand file tree Collapse file tree 4 files changed +14
-10
lines changed Expand file tree Collapse file tree 4 files changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -614,6 +614,7 @@ description_brace:
614
614
615
615
description :
616
616
module_declaration
617
+ { PARSER.parse_tree.add_item(stack_expr($1 )); }
617
618
| udp_declaration
618
619
| interface_declaration
619
620
| program_declaration
@@ -672,7 +673,8 @@ module_ansi_header:
672
673
module_declaration :
673
674
module_nonansi_header module_item_brace TOK_ENDMODULE endmodule_identifier_opt
674
675
{
675
- PARSER.parse_tree.create_module(
676
+ init ($$);
677
+ stack_expr ($$) = PARSER.parse_tree.create_module(
676
678
stack_expr ($1 ).operands()[0],
677
679
stack_expr($1 ).operands()[1],
678
680
stack_expr($1 ).operands()[2],
@@ -685,7 +687,8 @@ module_declaration:
685
687
}
686
688
| module_ansi_header module_item_brace TOK_ENDMODULE endmodule_identifier_opt
687
689
{
688
- PARSER.parse_tree.create_module(
690
+ init ($$);
691
+ stack_expr ($$) = PARSER.parse_tree .create_module (
689
692
stack_expr ($1 ).operands ()[0 ],
690
693
stack_expr ($1 ).operands ()[1 ],
691
694
stack_expr ($1 ).operands ()[2 ],
@@ -697,9 +700,11 @@ module_declaration:
697
700
pop_scope ();
698
701
}
699
702
| TOK_EXTERN module_nonansi_header
700
- /* ignored for now */
703
+ /* ignored for now */
704
+ { init ($$); }
701
705
| TOK_EXTERN module_ansi_header
702
- /* ignored for now */
706
+ /* ignored for now */
707
+ { init ($$); }
703
708
;
704
709
705
710
module_keyword:
Original file line number Diff line number Diff line change @@ -83,6 +83,8 @@ bool verilog_languaget::parse(
83
83
84
84
parse_tree.swap (verilog_parser.parse_tree );
85
85
86
+ parse_tree.build_module_map ();
87
+
86
88
return result;
87
89
}
88
90
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ Function: verilog_parse_treet::create_module
21
21
22
22
\*******************************************************************/
23
23
24
- void verilog_parse_treet::create_module (
24
+ exprt verilog_parse_treet::create_module (
25
25
irept &attributes,
26
26
irept &module_keyword,
27
27
exprt &name,
@@ -41,10 +41,7 @@ void verilog_parse_treet::create_module(
41
41
((const exprt &)module_keyword).source_location ();
42
42
new_module.add (ID_module_items) = std::move (module_items);
43
43
44
- auto &new_item = add_item (std::move (new_module));
45
-
46
- // add to module map
47
- module_map[name.id ()] = &to_verilog_module_source (new_item);
44
+ return static_cast <exprt &>(static_cast <irept &>(new_module));
48
45
}
49
46
50
47
/* ******************************************************************\
Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ class verilog_parse_treet
48
48
return module_map.count (name)!=0 ;
49
49
}
50
50
51
- void create_module (
51
+ static exprt create_module (
52
52
irept &attributes,
53
53
irept &module_keyword,
54
54
exprt &name,
You can’t perform that action at this time.
0 commit comments