diff options
author | David Shah <dave@ds0.me> | 2020-03-30 21:14:51 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2020-04-01 18:47:20 +0100 |
commit | c3997c77a571ec4373aaeb1d263d2dacabf1c028 (patch) | |
tree | e4fbe9c29d4522af1f1afc85e739e70e4f34c7fd | |
parent | 0d878ca256750614fb436018dc1ef70e20e5c9e6 (diff) | |
download | yosys-c3997c77a571ec4373aaeb1d263d2dacabf1c028.tar.gz yosys-c3997c77a571ec4373aaeb1d263d2dacabf1c028.tar.bz2 yosys-c3997c77a571ec4373aaeb1d263d2dacabf1c028.zip |
verilog: Add location info for generate constructs
Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r-- | frontends/verilog/verilog_parser.y | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index be2872e59..3f28f828d 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -2522,6 +2522,7 @@ gen_stmt: } simple_behavioral_stmt ';' expr { ast_stack.back()->children.push_back($6); } ';' simple_behavioral_stmt ')' gen_stmt_block { + SET_AST_NODE_LOC(ast_stack.back(), @1, @11); ast_stack.pop_back(); } | TOK_IF '(' expr ')' { @@ -2530,6 +2531,7 @@ gen_stmt: ast_stack.push_back(node); ast_stack.back()->children.push_back($3); } gen_stmt_block opt_gen_else { + SET_AST_NODE_LOC(ast_stack.back(), @1, @7); ast_stack.pop_back(); } | case_type '(' expr ')' { @@ -2538,6 +2540,7 @@ gen_stmt: ast_stack.push_back(node); } gen_case_body TOK_ENDCASE { case_type_stack.pop_back(); + SET_AST_NODE_LOC(ast_stack.back(), @1, @7); ast_stack.pop_back(); } | TOK_BEGIN { @@ -2551,6 +2554,7 @@ gen_stmt: exitTypeScope(); delete $3; delete $7; + SET_AST_NODE_LOC(ast_stack.back(), @1, @7); ast_stack.pop_back(); } | TOK_MSG_TASKS { @@ -2560,6 +2564,7 @@ gen_stmt: ast_stack.back()->children.push_back(node); ast_stack.push_back(node); } opt_arg_list ';'{ + SET_AST_NODE_LOC(ast_stack.back(), @1, @3); ast_stack.pop_back(); }; @@ -2569,6 +2574,7 @@ gen_stmt_block: ast_stack.back()->children.push_back(node); ast_stack.push_back(node); } gen_stmt_or_module_body_stmt { + SET_AST_NODE_LOC(ast_stack.back(), @2, @2); ast_stack.pop_back(); }; |