@@ -22,6 +22,7 @@ Author: Daniel Kroening, dkr@amazon.com
2222#include < langapi/language_util.h>
2323#include < trans-word-level/show_module_hierarchy.h>
2424
25+ #include " verilog_elaborate_compilation_unit.h"
2526#include " verilog_language.h"
2627#include " verilog_parser.h"
2728#include " verilog_preprocessor.h"
@@ -412,25 +413,16 @@ show_modules(const verilog_ebmc_languaget::parse_treest &parse_trees)
412413 return result;
413414}
414415
415- void verilog_ebmc_languaget::copy_parse_tree (
416- const parse_treet &parse_tree,
417- symbol_tablet &dest)
416+ symbol_tablet verilog_ebmc_languaget::elaborate_compilation_units (
417+ const parse_treest &parse_trees)
418418{
419- for (auto &item : parse_tree.items )
420- {
421- if (item.id () == ID_verilog_module || item.id () == ID_verilog_checker)
422- {
423- auto identifier =
424- verilog_module_symbol (to_verilog_module_source (item).base_name ());
425- copy_module_source (item, identifier, dest);
426- }
427- else if (item.id () == ID_verilog_package)
428- {
429- auto identifier =
430- verilog_package_identifier (to_verilog_module_source (item).base_name ());
431- copy_module_source (item, identifier, dest);
432- }
433- }
419+ symbol_tablet symbol_table;
420+
421+ for (auto &parse_tree : parse_trees)
422+ verilog_elaborate_compilation_unit (
423+ parse_tree, symbol_table, message_handler);
424+
425+ return symbol_table;
434426}
435427
436428std::optional<transition_systemt> verilog_ebmc_languaget::transition_system ()
@@ -481,10 +473,7 @@ std::optional<transition_systemt> verilog_ebmc_languaget::transition_system()
481473 //
482474 // copy the parse trees into the symbol table
483475 //
484- symbol_tablet symbol_table;
485-
486- for (auto &parse_tree : parse_trees)
487- copy_parse_tree (parse_tree, symbol_table);
476+ symbol_tablet symbol_table = elaborate_compilation_units (parse_trees);
488477
489478 //
490479 // type checking
0 commit comments