16
16
17
17
#include " jsil_parse_tree.h"
18
18
19
- class jsil_convertt : public messaget
19
+ class jsil_convertt
20
20
{
21
21
public:
22
- jsil_convertt (
23
- symbol_tablet &_symbol_table,
24
- message_handlert &_message_handler):
25
- messaget (_message_handler),
26
- symbol_table (_symbol_table)
22
+ jsil_convertt (symbol_tablet &_symbol_table) : symbol_table(_symbol_table)
27
23
{
28
24
}
29
25
30
- bool operator ()(const jsil_parse_treet &parse_tree);
26
+ bool operator ()(const jsil_parse_treet &parse_tree, message_handlert & );
31
27
32
28
protected:
33
29
symbol_tablet &symbol_table;
34
30
35
31
bool convert_code (const symbolt &symbol, codet &code);
36
32
};
37
33
38
- bool jsil_convertt::operator ()(const jsil_parse_treet &parse_tree)
34
+ bool jsil_convertt::operator ()(
35
+ const jsil_parse_treet &parse_tree,
36
+ message_handlert &message_handler)
39
37
{
40
38
for (jsil_parse_treet::itemst::const_iterator
41
39
it=parse_tree.items .begin ();
@@ -58,7 +56,8 @@ bool jsil_convertt::operator()(const jsil_parse_treet &parse_tree)
58
56
}
59
57
if (symbol_table.add (new_symbol))
60
58
{
61
- error () << " duplicate symbol " << new_symbol.name << eom;
59
+ messaget log{message_handler};
60
+ log.error () << " duplicate symbol " << new_symbol.name << messaget::eom;
62
61
throw 0 ;
63
62
}
64
63
}
@@ -118,11 +117,11 @@ bool jsil_convert(
118
117
symbol_tablet &symbol_table,
119
118
message_handlert &message_handler)
120
119
{
121
- jsil_convertt jsil_convert ( symbol_table, message_handler) ;
120
+ jsil_convertt jsil_convert{ symbol_table} ;
122
121
123
122
try
124
123
{
125
- return jsil_convert (parse_tree);
124
+ return jsil_convert (parse_tree, message_handler );
126
125
}
127
126
128
127
catch (int )
@@ -131,12 +130,14 @@ bool jsil_convert(
131
130
132
131
catch (const char *e)
133
132
{
134
- jsil_convert.error () << e << messaget::eom;
133
+ messaget log{message_handler};
134
+ log.error () << e << messaget::eom;
135
135
}
136
136
137
137
catch (const std::string &e)
138
138
{
139
- jsil_convert.error () << e << messaget::eom;
139
+ messaget log{message_handler};
140
+ log.error () << e << messaget::eom;
140
141
}
141
142
142
143
return true ;
0 commit comments