From 9e467b23d7a92d4734108a19346b71ffce7804f7 Mon Sep 17 00:00:00 2001 From: Daniel Kroening Date: Wed, 29 Jan 2025 16:43:45 +0000 Subject: [PATCH] SystemVerilog: create identifier expressions in scanner --- src/hw_cbmc_irep_ids.h | 1 + src/verilog/scanner.l | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hw_cbmc_irep_ids.h b/src/hw_cbmc_irep_ids.h index 8de1e1355..a789a19e4 100644 --- a/src/hw_cbmc_irep_ids.h +++ b/src/hw_cbmc_irep_ids.h @@ -80,6 +80,7 @@ IREP_ID_ONE(verilog_array_range) IREP_ID_ONE(verilog_assignment_pattern) IREP_ID_ONE(verilog_associative_array) IREP_ID_ONE(verilog_declarations) +IREP_ID_ONE(verilog_identifier) IREP_ID_ONE(verilog_lifetime) IREP_ID_ONE(verilog_logical_equality) IREP_ID_ONE(verilog_logical_inequality) diff --git a/src/verilog/scanner.l b/src/verilog/scanner.l index 4885bfe5a..720526e3a 100644 --- a/src/verilog/scanner.l +++ b/src/verilog/scanner.l @@ -64,7 +64,9 @@ static void preprocessor() #define IDENTIFIER(text) \ { newstack(yyveriloglval); \ irep_idt irep_id = text; \ - stack_expr(yyveriloglval).id(irep_id); \ + stack_expr(yyveriloglval).id(ID_verilog_identifier); \ + stack_expr(yyveriloglval).set(ID_base_name, irep_id); \ + PARSER.set_source_location(stack_expr(yyveriloglval)); \ auto name = PARSER.scopes.lookup(irep_id); \ return name == nullptr ? TOK_NON_TYPE_IDENTIFIER : \ name->is_type ? TOK_TYPE_IDENTIFIER : \