From 54e5eb1c3c7dea139401e811564bbf2e9ca91f60 Mon Sep 17 00:00:00 2001 From: Rahul Bhagwat Date: Sat, 8 Nov 2025 23:16:52 +0530 Subject: [PATCH] no use vector --- frontends/verilog/verilog_parser.y | 35 ++++++++++-------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index e6c7f3672..684727d5b 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -428,7 +428,6 @@ #include #include #include - #include #include "frontends/verilog/verilog_frontend.h" struct specify_target { @@ -463,7 +462,6 @@ using string_t = std::unique_ptr; using ast_t = std::unique_ptr; - using ast_list_t = std::vector; using al_t = std::unique_ptr>>; using specify_target_ptr_t = std::unique_ptr; using specify_triple_ptr_t = std::unique_ptr; @@ -559,8 +557,6 @@ %type struct_union %type asgn_binop inc_or_dec_op %type genvar_identifier -%type import_item_list -%type import_item %type specify_target %type specify_triple specify_opt_triple @@ -833,38 +829,31 @@ package_body_stmt: typedef_decl | localparam_decl | param_decl | task_func_decl; import_stmt: - TOK_IMPORT hierarchical_id TOK_PACKAGESEP TOK_ASTER TOK_SEMICOL { - // Create an import node to track specific and wildcard package imports + TOK_IMPORT TOK_ID TOK_PACKAGESEP TOK_ASTER TOK_SEMICOL { + // Create an import node to track wildcard package imports auto import_node = std::make_unique(@$, AST_IMPORT); import_node->str = *$2; extra->ast_stack.back()->children.push_back(std::move(import_node)); } | - TOK_IMPORT hierarchical_id TOK_PACKAGESEP import_item_list TOK_SEMICOL { - // Create an import node to track specific package imports - auto import_node = std::make_unique(@$, AST_IMPORT); + TOK_IMPORT TOK_ID TOK_PACKAGESEP { + // Start a specific import: create and push the AST_IMPORT node + AstNode* import_node = extra->pushChild(std::make_unique(@$, AST_IMPORT)); import_node->str = *$2; - // Move children from import_item_list to import_node - import_node->children = std::move($4); - extra->ast_stack.back()->children.push_back(std::move(import_node)); + } import_item_list TOK_SEMICOL { + // Done collecting specific items, pop the AST_IMPORT node + extra->ast_stack.pop_back(); }; import_item_list: - import_item { - ast_list_t list; - list.push_back(std::move($1)); - $$ = std::move(list); - } | - import_item_list TOK_COMMA import_item { - $1.push_back(std::move($3)); - $$ = std::move($1); - }; + import_item | + import_item_list TOK_COMMA import_item ; import_item: TOK_ID { - // Create a simple node to store the imported item name + // Append this specific import name under the current AST_IMPORT auto item_node = std::make_unique(@$, AST_NONE); item_node->str = *$1; - $$ = std::move(item_node); + extra->ast_stack.back()->children.push_back(std::move(item_node)); }; interface: