Skip to content

Commit a27ed2d

Browse files
committed
Changing namespacet to take symbol_table_baset instead of symbol_tablet
1 parent a46e348 commit a27ed2d

File tree

3 files changed

+30
-28
lines changed

3 files changed

+30
-28
lines changed

src/jsil/jsil_typecheck.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ Author: Michael Tautschnig, tautschn@amazon.com
1414

1515
#include <unordered_set>
1616

17-
#include <util/typecheck.h>
1817
#include <util/namespace.h>
1918
#include <util/std_code.h>
19+
#include <util/symbol_table_base.h>
20+
#include <util/typecheck.h>
2021

2122
class symbol_exprt;
2223
class codet;
@@ -34,12 +35,12 @@ class jsil_typecheckt:public typecheckt
3435
{
3536
public:
3637
jsil_typecheckt(
37-
symbol_tablet &_symbol_table,
38-
message_handlert &_message_handler):
39-
typecheckt(_message_handler),
40-
symbol_table(_symbol_table),
41-
ns(symbol_table),
42-
proc_name()
38+
symbol_table_baset &_symbol_table,
39+
message_handlert &_message_handler)
40+
: typecheckt(_message_handler),
41+
symbol_table(_symbol_table),
42+
ns(symbol_table),
43+
proc_name()
4344
{
4445
}
4546

@@ -49,7 +50,7 @@ class jsil_typecheckt:public typecheckt
4950
virtual void typecheck_expr(exprt &expr);
5051

5152
protected:
52-
symbol_tablet &symbol_table;
53+
symbol_table_baset &symbol_table;
5354
const namespacet ns;
5455
// prefix to variables which is set in typecheck_declaration
5556
irep_idt proc_name;

src/linking/linking_class.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ class linkingt:public typecheckt
2828
{
2929
public:
3030
linkingt(
31-
symbol_tablet &_main_symbol_table,
32-
symbol_tablet &_src_symbol_table,
33-
message_handlert &_message_handler):
34-
typecheckt(_message_handler),
35-
main_symbol_table(_main_symbol_table),
36-
src_symbol_table(_src_symbol_table),
37-
ns(_main_symbol_table)
31+
symbol_table_baset &_main_symbol_table,
32+
symbol_table_baset &_src_symbol_table,
33+
message_handlert &_message_handler)
34+
: typecheckt(_message_handler),
35+
main_symbol_table(_main_symbol_table),
36+
src_symbol_table(_src_symbol_table),
37+
ns(_main_symbol_table)
3838
{
3939
}
4040

@@ -167,8 +167,8 @@ class linkingt:public typecheckt
167167
const struct_typet &old_type,
168168
const struct_typet &new_type);
169169

170-
symbol_tablet &main_symbol_table;
171-
symbol_tablet &src_symbol_table;
170+
symbol_table_baset &main_symbol_table;
171+
symbol_table_baset &src_symbol_table;
172172

173173
namespacet ns;
174174

src/util/namespace.h

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class c_enum_typet;
2626
class union_tag_typet;
2727
class struct_tag_typet;
2828
class c_enum_tag_typet;
29+
class symbol_table_baset;
2930

3031
/// Basic interface for a namespace. This is not used
3132
/// in practice, as the one being used is \ref namespacet
@@ -93,20 +94,20 @@ class namespacet:public namespace_baset
9394
{
9495
public:
9596
// constructors
96-
explicit namespacet(const symbol_tablet &_symbol_table)
97+
explicit namespacet(const symbol_table_baset &_symbol_table)
9798
{ symbol_table1=&_symbol_table; symbol_table2=nullptr; }
9899

99100
namespacet(
100-
const symbol_tablet &_symbol_table1,
101-
const symbol_tablet &_symbol_table2)
101+
const symbol_table_baset &_symbol_table1,
102+
const symbol_table_baset &_symbol_table2)
102103
{
103104
symbol_table1=&_symbol_table1;
104105
symbol_table2=&_symbol_table2;
105106
}
106107

107108
namespacet(
108-
const symbol_tablet *_symbol_table1,
109-
const symbol_tablet *_symbol_table2)
109+
const symbol_table_baset *_symbol_table1,
110+
const symbol_table_baset *_symbol_table2)
110111
{
111112
symbol_table1=_symbol_table1;
112113
symbol_table2=_symbol_table2;
@@ -122,13 +123,13 @@ class namespacet:public namespace_baset
122123
std::size_t smallest_unused_suffix(const std::string &prefix) const override;
123124

124125
/// Return first symbol table registered with the namespace.
125-
const symbol_tablet &get_symbol_table() const
126+
const symbol_table_baset &get_symbol_table() const
126127
{
127128
return *symbol_table1;
128129
}
129130

130131
protected:
131-
const symbol_tablet *symbol_table1, *symbol_table2;
132+
const symbol_table_baset *symbol_table1, *symbol_table2;
132133
};
133134

134135
/// A multi namespace is essentially a namespace,
@@ -143,8 +144,8 @@ class multi_namespacet:public namespacet
143144
{
144145
}
145146

146-
explicit multi_namespacet(
147-
const symbol_tablet &symbol_table):namespacet(nullptr, nullptr)
147+
explicit multi_namespacet(const symbol_table_baset &symbol_table)
148+
: namespacet(nullptr, nullptr)
148149
{
149150
add(symbol_table);
150151
}
@@ -161,13 +162,13 @@ class multi_namespacet:public namespacet
161162
/// is working with.
162163
/// \param symbol_table: Reference to the symbol table to be added to this
163164
/// namespace.
164-
void add(const symbol_tablet &symbol_table)
165+
void add(const symbol_table_baset &symbol_table)
165166
{
166167
symbol_table_list.push_back(&symbol_table);
167168
}
168169

169170
protected:
170-
typedef std::vector<const symbol_tablet *> symbol_table_listt;
171+
typedef std::vector<const symbol_table_baset *> symbol_table_listt;
171172
symbol_table_listt symbol_table_list;
172173
};
173174

0 commit comments

Comments
 (0)