13
13
14
14
#include < algorithm>
15
15
#include < iostream>
16
- #include < memory>
17
-
18
- #include < langapi/language.h>
19
- #include < langapi/mode.h>
16
+ #include < sstream>
20
17
18
+ #include < util/format_expr.h>
19
+ #include < util/format_type.h>
21
20
#include < util/json_irep.h>
22
21
23
22
#include " goto_model.h"
@@ -44,23 +43,12 @@ void show_symbol_table_brief_plain(
44
43
{
45
44
const symbolt &symbol=ns.lookup (id);
46
45
47
- std::unique_ptr<languaget> ptr;
48
-
49
- if (symbol.mode ==" " )
50
- ptr=get_default_language ();
51
- else
52
- {
53
- ptr=get_language_from_mode (symbol.mode );
54
- if (ptr==nullptr )
55
- throw " symbol " +id2string (symbol.name )+" has unknown mode" ;
56
- }
57
-
58
- std::string type_str;
46
+ out << symbol.name ;
59
47
60
48
if (symbol.type .is_not_nil ())
61
- ptr-> from_type (symbol.type , type_str, ns );
49
+ out << ' ' << format (symbol.type );
62
50
63
- out << symbol. name << " " << type_str << ' \n ' ;
51
+ out << ' \n ' ;
64
52
}
65
53
}
66
54
@@ -84,35 +72,19 @@ void show_symbol_table_plain(
84
72
{
85
73
const symbolt &symbol=ns.lookup (id);
86
74
87
- std::unique_ptr<languaget> ptr;
88
-
89
- if (symbol.mode ==" " )
90
- {
91
- ptr=get_default_language ();
92
- }
93
- else
94
- {
95
- ptr=get_language_from_mode (symbol.mode );
96
- }
97
-
98
- if (!ptr)
99
- throw " symbol " +id2string (symbol.name )+" has unknown mode" ;
100
-
101
- std::string type_str, value_str;
102
-
103
- if (symbol.type .is_not_nil ())
104
- ptr->from_type (symbol.type , type_str, ns);
105
-
106
- if (symbol.value .is_not_nil ())
107
- ptr->from_expr (symbol.value , value_str, ns);
108
-
109
75
out << " Symbol......: " << symbol.name << ' \n ' << std::flush;
110
76
out << " Pretty name.: " << symbol.pretty_name << ' \n ' ;
111
77
out << " Module......: " << symbol.module << ' \n ' ;
112
78
out << " Base name...: " << symbol.base_name << ' \n ' ;
113
79
out << " Mode........: " << symbol.mode << ' \n ' ;
114
- out << " Type........: " << type_str << ' \n ' ;
115
- out << " Value.......: " << value_str << ' \n ' ;
80
+ out << " Type........: " ;
81
+ if (symbol.type .is_not_nil ())
82
+ out << format (symbol.type );
83
+ out << ' \n ' ;
84
+ out << " Value.......: " ;
85
+ if (symbol.value .is_not_nil ())
86
+ out << format (symbol.value );
87
+ out << ' \n ' ;
116
88
out << " Flags.......:" ;
117
89
118
90
if (symbol.is_lvalue )
@@ -172,36 +144,22 @@ static void show_symbol_table_json_ui(
172
144
{
173
145
const symbolt &symbol = id_and_symbol.second ;
174
146
175
- std::unique_ptr<languaget> ptr;
176
-
177
- if (symbol.mode ==" " )
178
- {
179
- ptr=get_default_language ();
180
- }
181
- else
182
- {
183
- ptr=get_language_from_mode (symbol.mode );
184
- }
185
-
186
- if (!ptr)
187
- throw " symbol " +id2string (symbol.name )+" has unknown mode" ;
188
-
189
- std::string type_str, value_str;
190
-
191
- if (symbol.type .is_not_nil ())
192
- ptr->from_type (symbol.type , type_str, ns);
193
-
194
- if (symbol.value .is_not_nil ())
195
- ptr->from_expr (symbol.value , value_str, ns);
196
-
197
147
json_objectt symbol_json;
198
148
symbol_json[" prettyName" ] = json_stringt (symbol.pretty_name );
199
149
symbol_json[" baseName" ] = json_stringt (symbol.base_name );
200
150
symbol_json[" mode" ] = json_stringt (symbol.mode );
201
151
symbol_json[" module" ] = json_stringt (symbol.module );
202
152
203
- symbol_json[" prettyType" ] = json_stringt (type_str);
204
- symbol_json[" prettyValue" ] = json_stringt (value_str);
153
+ std::ostringstream type_str, value_str;
154
+
155
+ if (symbol.type .is_not_nil ())
156
+ type_str << format (symbol.type );
157
+
158
+ if (symbol.value .is_not_nil ())
159
+ value_str << format (symbol.value );
160
+
161
+ symbol_json[" prettyType" ] = json_stringt (type_str.str ());
162
+ symbol_json[" prettyValue" ] = json_stringt (value_str.str ());
205
163
206
164
symbol_json[" type" ] = irep_converter.convert_from_irep (symbol.type );
207
165
symbol_json[" value" ] = irep_converter.convert_from_irep (symbol.value );
@@ -247,35 +205,21 @@ static void show_symbol_table_brief_json_ui(
247
205
{
248
206
const symbolt &symbol = id_and_symbol.second ;
249
207
250
- std::unique_ptr<languaget> ptr;
251
-
252
- if (symbol.mode ==" " )
253
- {
254
- ptr=get_default_language ();
255
- }
256
- else
257
- {
258
- ptr=get_language_from_mode (symbol.mode );
259
- }
260
-
261
- if (!ptr)
262
- throw " symbol " +id2string (symbol.name )+" has unknown mode" ;
263
-
264
- std::string type_str, value_str;
208
+ std::ostringstream type_str, value_str;
265
209
266
210
if (symbol.type .is_not_nil ())
267
- ptr-> from_type (symbol.type , type_str, ns );
211
+ type_str << format (symbol.type );
268
212
269
213
if (symbol.value .is_not_nil ())
270
- ptr-> from_expr (symbol.value , value_str, ns );
214
+ value_str << format (symbol.value );
271
215
272
216
json_objectt symbol_json;
273
217
symbol_json[" prettyName" ] = json_stringt (symbol.pretty_name );
274
218
symbol_json[" baseName" ] = json_stringt (symbol.base_name );
275
219
symbol_json[" mode" ] = json_stringt (symbol.mode );
276
220
symbol_json[" module" ] = json_stringt (symbol.module );
277
221
278
- symbol_json[" prettyType" ] = json_stringt (type_str);
222
+ symbol_json[" prettyType" ] = json_stringt (type_str. str () );
279
223
280
224
symbol_json[" type" ] = irep_converter.convert_from_irep (symbol.type );
281
225
0 commit comments