@@ -23,19 +23,55 @@ void show_symbol_table_xml_ui()
23
23
{
24
24
}
25
25
26
+ void show_symbol_table_brief_plain (
27
+ const symbol_tablet &symbol_table,
28
+ std::ostream &out)
29
+ {
30
+ // we want to sort alphabetically
31
+ std::set<std::string> symbols;
32
+
33
+ forall_symbols (it, symbol_table.symbols )
34
+ symbols.insert (id2string (it->first ));
35
+
36
+ const namespacet ns (symbol_table);
37
+
38
+ for (const std::string &id : symbols)
39
+ {
40
+ const symbolt &symbol=ns.lookup (id);
41
+
42
+ std::unique_ptr<languaget> ptr;
43
+
44
+ if (symbol.mode ==" " )
45
+ ptr=get_default_language ();
46
+ else
47
+ {
48
+ ptr=get_language_from_mode (symbol.mode );
49
+ if (ptr==nullptr )
50
+ throw " symbol " +id2string (symbol.name )+" has unknown mode" ;
51
+ }
52
+
53
+ std::string type_str;
54
+
55
+ if (symbol.type .is_not_nil ())
56
+ ptr->from_type (symbol.type , type_str, ns);
57
+
58
+ out << symbol.name << " " << type_str << ' \n ' ;
59
+ }
60
+ }
61
+
26
62
void show_symbol_table_plain (
27
- const goto_modelt &goto_model ,
63
+ const symbol_tablet &symbol_table ,
28
64
std::ostream &out)
29
65
{
30
66
out << ' \n ' << " Symbols:" << ' \n ' << ' \n ' ;
31
67
32
68
// we want to sort alphabetically
33
69
std::set<std::string> symbols;
34
70
35
- forall_symbols (it, goto_model. symbol_table .symbols )
71
+ forall_symbols (it, symbol_table.symbols )
36
72
symbols.insert (id2string (it->first ));
37
73
38
- const namespacet ns (goto_model. symbol_table );
74
+ const namespacet ns (symbol_table);
39
75
40
76
for (const std::string &id : symbols)
41
77
{
@@ -112,14 +148,40 @@ void show_symbol_table_plain(
112
148
}
113
149
}
114
150
151
+ void show_symbol_table (
152
+ const symbol_tablet &symbol_table,
153
+ ui_message_handlert::uit ui)
154
+ {
155
+ switch (ui)
156
+ {
157
+ case ui_message_handlert::uit::PLAIN:
158
+ show_symbol_table_plain (symbol_table, std::cout);
159
+ break ;
160
+
161
+ case ui_message_handlert::uit::XML_UI:
162
+ show_symbol_table_xml_ui ();
163
+ break ;
164
+
165
+ default :
166
+ break ;
167
+ }
168
+ }
169
+
115
170
void show_symbol_table (
116
171
const goto_modelt &goto_model,
117
172
ui_message_handlert::uit ui)
173
+ {
174
+ show_symbol_table (goto_model.symbol_table , ui);
175
+ }
176
+
177
+ void show_symbol_table_brief (
178
+ const symbol_tablet &symbol_table,
179
+ ui_message_handlert::uit ui)
118
180
{
119
181
switch (ui)
120
182
{
121
183
case ui_message_handlert::uit::PLAIN:
122
- show_symbol_table_plain (goto_model , std::cout);
184
+ show_symbol_table_brief_plain (symbol_table , std::cout);
123
185
break ;
124
186
125
187
case ui_message_handlert::uit::XML_UI:
@@ -130,3 +192,10 @@ void show_symbol_table(
130
192
break ;
131
193
}
132
194
}
195
+
196
+ void show_symbol_table_brief (
197
+ const goto_modelt &goto_model,
198
+ ui_message_handlert::uit ui)
199
+ {
200
+ show_symbol_table_brief (goto_model.symbol_table , ui);
201
+ }
0 commit comments