@@ -13,11 +13,10 @@ Author: Daniel Kroening, kroening@kroening.com
1313
1414#include < algorithm>
1515#include < iostream>
16- #include < memory>
17-
18- #include < langapi/language.h>
19- #include < langapi/mode.h>
16+ #include < sstream>
2017
18+ #include < util/format_expr.h>
19+ #include < util/format_type.h>
2120#include < util/json_irep.h>
2221
2322#include " goto_model.h"
@@ -44,23 +43,12 @@ void show_symbol_table_brief_plain(
4443 {
4544 const symbolt &symbol=ns.lookup (id);
4645
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 ;
5947
6048 if (symbol.type .is_not_nil ())
61- ptr-> from_type (symbol.type , type_str, ns );
49+ out << ' ' << format (symbol.type );
6250
63- out << symbol. name << " " << type_str << ' \n ' ;
51+ out << ' \n ' ;
6452 }
6553}
6654
@@ -84,35 +72,19 @@ void show_symbol_table_plain(
8472 {
8573 const symbolt &symbol=ns.lookup (id);
8674
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-
10975 out << " Symbol......: " << symbol.name << ' \n ' << std::flush;
11076 out << " Pretty name.: " << symbol.pretty_name << ' \n ' ;
11177 out << " Module......: " << symbol.module << ' \n ' ;
11278 out << " Base name...: " << symbol.base_name << ' \n ' ;
11379 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 ' ;
11688 out << " Flags.......:" ;
11789
11890 if (symbol.is_lvalue )
@@ -172,36 +144,22 @@ static void show_symbol_table_json_ui(
172144 {
173145 const symbolt &symbol = id_and_symbol.second ;
174146
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-
197147 json_objectt symbol_json;
198148 symbol_json[" prettyName" ] = json_stringt (symbol.pretty_name );
199149 symbol_json[" baseName" ] = json_stringt (symbol.base_name );
200150 symbol_json[" mode" ] = json_stringt (symbol.mode );
201151 symbol_json[" module" ] = json_stringt (symbol.module );
202152
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 ());
205163
206164 symbol_json[" type" ] = irep_converter.convert_from_irep (symbol.type );
207165 symbol_json[" value" ] = irep_converter.convert_from_irep (symbol.value );
@@ -247,32 +205,18 @@ static void show_symbol_table_brief_json_ui(
247205 {
248206 const symbolt &symbol = id_and_symbol.second ;
249207
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;
265209
266210 if (symbol.type .is_not_nil ())
267- ptr-> from_type (symbol.type , type_str, ns );
211+ type_str << format (symbol.type );
268212
269213 json_objectt symbol_json;
270214 symbol_json[" prettyName" ] = json_stringt (symbol.pretty_name );
271215 symbol_json[" baseName" ] = json_stringt (symbol.base_name );
272216 symbol_json[" mode" ] = json_stringt (symbol.mode );
273217 symbol_json[" module" ] = json_stringt (symbol.module );
274218
275- symbol_json[" prettyType" ] = json_stringt (type_str);
219+ symbol_json[" prettyType" ] = json_stringt (type_str. str () );
276220
277221 symbol_json[" type" ] = irep_converter.convert_from_irep (symbol.type );
278222
0 commit comments