Skip to content

Commit 15f8eea

Browse files
authored
Merge pull request #1261 from diffblue/identifier_token
Verilog: extract `verilog_scopet::identifier_token()`
2 parents ff7d947 + 7ee197a commit 15f8eea

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

src/verilog/verilog_scope.cpp

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,28 @@ void verilog_scopet::print_rec(std::size_t indent, std::ostream &out) const
3636
scope_it.second.print_rec(indent + 2, out);
3737
}
3838

39+
unsigned verilog_scopet::identifier_token() const
40+
{
41+
switch(kind)
42+
{
43+
// clang-format off
44+
case verilog_scopet::GLOBAL: return TOK_NON_TYPE_IDENTIFIER;
45+
case verilog_scopet::FILE: return TOK_NON_TYPE_IDENTIFIER;
46+
case verilog_scopet::PACKAGE: return TOK_PACKAGE_IDENTIFIER;
47+
case verilog_scopet::MODULE: return TOK_NON_TYPE_IDENTIFIER;
48+
case verilog_scopet::CLASS: return TOK_CLASS_IDENTIFIER;
49+
case verilog_scopet::BLOCK: return TOK_NON_TYPE_IDENTIFIER;
50+
case verilog_scopet::ENUM_NAME: return TOK_NON_TYPE_IDENTIFIER;
51+
case verilog_scopet::TASK: return TOK_NON_TYPE_IDENTIFIER;
52+
case verilog_scopet::FUNCTION: return TOK_NON_TYPE_IDENTIFIER;
53+
case verilog_scopet::TYPEDEF: return TOK_TYPE_IDENTIFIER;
54+
case verilog_scopet::OTHER: return TOK_NON_TYPE_IDENTIFIER;
55+
// clang-format on
56+
}
57+
58+
UNREACHABLE;
59+
}
60+
3961
void verilog_scopest::enter_package_scope(irep_idt base_name)
4062
{
4163
// look in the global scope
@@ -55,23 +77,6 @@ unsigned verilog_scopest::identifier_token(irep_idt base_name) const
5577
}
5678
else
5779
{
58-
switch(scope->kind)
59-
{
60-
// clang-format off
61-
case verilog_scopet::GLOBAL: return TOK_NON_TYPE_IDENTIFIER;
62-
case verilog_scopet::FILE: return TOK_NON_TYPE_IDENTIFIER;
63-
case verilog_scopet::PACKAGE: return TOK_PACKAGE_IDENTIFIER;
64-
case verilog_scopet::MODULE: return TOK_NON_TYPE_IDENTIFIER;
65-
case verilog_scopet::CLASS: return TOK_CLASS_IDENTIFIER;
66-
case verilog_scopet::BLOCK: return TOK_NON_TYPE_IDENTIFIER;
67-
case verilog_scopet::ENUM_NAME: return TOK_NON_TYPE_IDENTIFIER;
68-
case verilog_scopet::TASK: return TOK_NON_TYPE_IDENTIFIER;
69-
case verilog_scopet::FUNCTION: return TOK_NON_TYPE_IDENTIFIER;
70-
case verilog_scopet::TYPEDEF: return TOK_TYPE_IDENTIFIER;
71-
case verilog_scopet::OTHER: return TOK_NON_TYPE_IDENTIFIER;
72-
// clang-format on
73-
}
74-
75-
UNREACHABLE;
80+
return scope->identifier_token();
7681
}
7782
}

src/verilog/verilog_scope.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ struct verilog_scopet
7373
// sub-scopes
7474
using scope_mapt = std::map<irep_idt, verilog_scopet>;
7575
scope_mapt scope_map;
76+
77+
//.the scanner token number
78+
unsigned identifier_token() const;
7679
};
7780

7881
class verilog_scopest

0 commit comments

Comments
 (0)