1 /* This C file is generated by NIT to compile module control_flow. */
2 #include "control_flow._sep.h"
3 void control_flow___MMSrcModule___do_control_flow(val_t self
, val_t param0
) {
4 struct trace_t trace
= {NULL
, NULL
, 23, LOCATE_control_flow___MMSrcModule___do_control_flow
};
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_control_flow
;
11 variable
[4] = variable
[0];
12 variable
[5] = NEW_ControlFlowVisitor_control_flow___ControlFlowVisitor___init( variable
[1] /*tc*/, variable
[4]); /*new ControlFlowVisitor*/
13 variable
[4] = variable
[5];
14 variable
[3] = variable
[4];
15 variable
[4] = variable
[0];
16 variable
[4] = ((syntax_base___MMSrcModule___node_t
)CALL(variable
[4],COLOR_syntax_base___MMSrcModule___node
))(variable
[4]) /*MMSrcModule::node*/;
17 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable
[3] /*tv*/,COLOR_parser_prod___Visitor___visit
))( variable
[3] /*tv*/, variable
[4]) /*ControlFlowVisitor::visit*/;
18 return_label0
: while(false);
19 tracehead
= trace
.prev
;
22 val_t
control_flow___Variable___must_be_set(val_t self
) {
23 struct trace_t trace
= {NULL
, NULL
, 33, LOCATE_control_flow___Variable___must_be_set
};
25 void **closurevariable
= NULL
;
26 trace
.prev
= tracehead
; tracehead
= &trace
;
27 trace
.file
= LOCATE_control_flow
;
29 variable
[1] = TAG_Bool(false);
31 return_label1
: while(false);
32 tracehead
= trace
.prev
;
35 val_t
control_flow___VarVariable___must_be_set(val_t self
) {
36 struct trace_t trace
= {NULL
, NULL
, 38, LOCATE_control_flow___VarVariable___must_be_set
};
38 void **closurevariable
= NULL
;
39 trace
.prev
= tracehead
; tracehead
= &trace
;
40 trace
.file
= LOCATE_control_flow
;
42 variable
[1] = TAG_Bool(true);
44 return_label2
: while(false);
45 tracehead
= trace
.prev
;
48 void control_flow___ControlFlowVisitor___visit(val_t self
, val_t param0
) {
49 struct trace_t trace
= {NULL
, NULL
, 49, LOCATE_control_flow___ControlFlowVisitor___visit
};
51 void **closurevariable
= NULL
;
52 trace
.prev
= tracehead
; tracehead
= &trace
;
53 trace
.file
= LOCATE_control_flow
;
56 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*n*/ == NIT_NULL
/*null*/) || (( variable
[1] /*n*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[1] /*n*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[1] /*n*/,COLOR_kernel___Object_____eqeq
))( variable
[1] /*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
57 if (UNTAG_Bool(variable
[3])) { /*if*/
58 variable
[3] = variable
[0];
59 ((control_flow___PNode___accept_control_flow_t
)CALL( variable
[1] /*n*/,COLOR_control_flow___PNode___accept_control_flow
))( variable
[1] /*n*/, variable
[3]) /*PNode::accept_control_flow*/;
61 return_label3
: while(false);
62 tracehead
= trace
.prev
;
65 val_t
control_flow___ControlFlowVisitor___once_count(val_t self
) {
66 struct trace_t trace
= {NULL
, NULL
, 54, LOCATE_control_flow___ControlFlowVisitor___once_count
};
67 val_t
*variable
= NULL
;
68 void **closurevariable
= NULL
;
69 trace
.prev
= tracehead
; tracehead
= &trace
;
70 trace
.file
= LOCATE_control_flow
;
71 tracehead
= trace
.prev
;
72 return ATTR_control_flow___ControlFlowVisitor____once_count( self
) /*ControlFlowVisitor::_once_count*/;
74 void control_flow___ControlFlowVisitor___once_count__eq(val_t self
, val_t param0
) {
75 struct trace_t trace
= {NULL
, NULL
, 54, LOCATE_control_flow___ControlFlowVisitor___once_count__eq
};
76 val_t
*variable
= NULL
;
77 void **closurevariable
= NULL
;
78 trace
.prev
= tracehead
; tracehead
= &trace
;
79 trace
.file
= LOCATE_control_flow
;
80 ATTR_control_flow___ControlFlowVisitor____once_count( self
) /*ControlFlowVisitor::_once_count*/ = param0
;
81 tracehead
= trace
.prev
;
84 val_t
control_flow___ControlFlowVisitor___control_flow_ctx(val_t self
) {
85 struct trace_t trace
= {NULL
, NULL
, 57, LOCATE_control_flow___ControlFlowVisitor___control_flow_ctx
};
86 val_t
*variable
= NULL
;
87 void **closurevariable
= NULL
;
88 trace
.prev
= tracehead
; tracehead
= &trace
;
89 trace
.file
= LOCATE_control_flow
;
90 tracehead
= trace
.prev
;
91 return ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self
) /*ControlFlowVisitor::_control_flow_ctx*/;
93 void control_flow___ControlFlowVisitor___control_flow_ctx__eq(val_t self
, val_t param0
) {
94 struct trace_t trace
= {NULL
, NULL
, 57, LOCATE_control_flow___ControlFlowVisitor___control_flow_ctx__eq
};
95 val_t
*variable
= NULL
;
96 void **closurevariable
= NULL
;
97 trace
.prev
= tracehead
; tracehead
= &trace
;
98 trace
.file
= LOCATE_control_flow
;
99 ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self
) /*ControlFlowVisitor::_control_flow_ctx*/ = param0
;
100 tracehead
= trace
.prev
;
103 void control_flow___ControlFlowVisitor___check_is_set(val_t self
, val_t param0
, val_t param1
) {
104 struct trace_t trace
= {NULL
, NULL
, 60, LOCATE_control_flow___ControlFlowVisitor___check_is_set
};
106 void **closurevariable
= NULL
;
107 trace
.prev
= tracehead
; tracehead
= &trace
;
108 trace
.file
= LOCATE_control_flow
;
110 variable
[1] = param0
;
111 variable
[2] = param1
;
112 variable
[4] = ((control_flow___Variable___must_be_set_t
)CALL( variable
[2] /*v*/,COLOR_control_flow___Variable___must_be_set
))( variable
[2] /*v*/) /*Variable::must_be_set*/;
113 variable
[5] = variable
[4];
114 if (UNTAG_Bool(variable
[5])) { /* and */
115 variable
[5] = variable
[0];
116 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))(variable
[5]) /*ControlFlowVisitor::control_flow_ctx*/;
117 variable
[5] = ((control_flow___ControlFlowContext___is_set_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowContext___is_set
))(variable
[5], variable
[2] /*v*/) /*ControlFlowContext::is_set*/;
118 variable
[5] = TAG_Bool(!UNTAG_Bool(variable
[5]));
120 variable
[4] = variable
[5];
121 if (UNTAG_Bool(variable
[4])) { /*if*/
122 variable
[4] = variable
[0];
123 variable
[5] = NEW_String_string___String___init(); /*new String*/
124 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: variable '"), TAG_Int(17)); /*new String*/
125 variable
[7] = variable
[6];
126 ((string___String___append_t
)CALL(variable
[5],COLOR_abstract_collection___IndexedCollection___append
))(variable
[5], variable
[7]) /*String::append*/;
127 variable
[8] = variable
[2] /*v*/;
128 variable
[8] = ((string___String___to_s_t
)CALL(variable
[8],COLOR_string___Object___to_s
))(variable
[8]) /*String::to_s*/;
129 ((string___String___append_t
)CALL(variable
[5],COLOR_abstract_collection___IndexedCollection___append
))(variable
[5], variable
[8]) /*String::append*/;
130 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("' is possibly unset."), TAG_Int(20)); /*new String*/
131 variable
[10] = variable
[9];
132 ((string___String___append_t
)CALL(variable
[5],COLOR_abstract_collection___IndexedCollection___append
))(variable
[5], variable
[10]) /*String::append*/;
133 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL(variable
[4],COLOR_syntax_base___AbsSyntaxVisitor___error
))(variable
[4], variable
[1] /*n*/, variable
[5]) /*AbsSyntaxVisitor::error*/;
134 variable
[5] = variable
[0];
135 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))(variable
[5]) /*ControlFlowVisitor::control_flow_ctx*/;
136 variable
[4] = variable
[5];
137 while (true) { /*while*/
138 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*cfc*/ == NIT_NULL
/*null*/) || (( variable
[4] /*cfc*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[4] /*cfc*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cfc*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[4] /*cfc*/,COLOR_kernel___Object_____eqeq
))( variable
[4] /*cfc*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
139 if (!UNTAG_Bool(variable
[5])) break; /* while*/
140 variable
[5] = variable
[0];
141 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("cfc: "), TAG_Int(5)); /*new String*/
142 variable
[7] = ((control_flow___ControlFlowContext___set_variables_t
)CALL( variable
[4] /*cfc*/,COLOR_control_flow___ControlFlowContext___set_variables
))( variable
[4] /*cfc*/) /*ControlFlowContext::set_variables*/;
143 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
144 variable
[7] = ((string___Collection___join_t
)CALL(variable
[7],COLOR_string___Collection___join
))(variable
[7], variable
[8]) /*Collection::join*/;
145 variable
[6] = ((string___String_____plus_t
)CALL(variable
[6],COLOR_string___String_____plus
))(variable
[6], variable
[7]) /*String::+*/;
146 ((file___Object___print_t
)CALL(variable
[5],COLOR_file___Object___print
))(variable
[5], variable
[6]) /*Object::print*/;
147 variable
[5] = ((control_flow___ControlFlowContext___prev_t
)CALL( variable
[4] /*cfc*/,COLOR_control_flow___ControlFlowContext___prev
))( variable
[4] /*cfc*/) /*ControlFlowContext::prev*/;
148 variable
[4] = variable
[5] /*cfc=*/;
149 continue_5
: while(0);
153 return_label4
: while(false);
154 tracehead
= trace
.prev
;
157 void control_flow___ControlFlowVisitor___mark_is_set(val_t self
, val_t param0
) {
158 struct trace_t trace
= {NULL
, NULL
, 72, LOCATE_control_flow___ControlFlowVisitor___mark_is_set
};
160 void **closurevariable
= NULL
;
161 trace
.prev
= tracehead
; tracehead
= &trace
;
162 trace
.file
= LOCATE_control_flow
;
164 variable
[1] = param0
;
165 variable
[3] = variable
[0];
166 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))(variable
[3]) /*ControlFlowVisitor::control_flow_ctx*/;
167 variable
[3] = ((control_flow___ControlFlowContext___set_variables_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___set_variables
))(variable
[3]) /*ControlFlowContext::set_variables*/;
168 ((hash___HashSet___add_t
)CALL(variable
[3],COLOR_abstract_collection___SimpleCollection___add
))(variable
[3], variable
[1] /*v*/) /*HashSet::add*/;
169 return_label6
: while(false);
170 tracehead
= trace
.prev
;
173 void control_flow___ControlFlowVisitor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
174 struct trace_t trace
= {NULL
, NULL
, 77, LOCATE_control_flow___ControlFlowVisitor___init
};
176 void **closurevariable
= NULL
;
177 trace
.prev
= tracehead
; tracehead
= &trace
;
178 trace
.file
= LOCATE_control_flow
;
180 variable
[1] = param0
;
181 variable
[2] = param1
;
182 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowVisitor
].i
]) return;
183 ((syntax_base___AbsSyntaxVisitor___init_t
)CALL(variable
[0],COLOR_syntax_base___AbsSyntaxVisitor___init
))(variable
[0], variable
[1], variable
[2], init_table
/*YYY*/) /*AbsSyntaxVisitor::init*/;
184 return_label7
: while(false);
185 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowVisitor
].i
] = 1;
186 tracehead
= trace
.prev
;
189 val_t
control_flow___ControlFlowContext___prev(val_t self
) {
190 struct trace_t trace
= {NULL
, NULL
, 81, LOCATE_control_flow___ControlFlowContext___prev
};
191 val_t
*variable
= NULL
;
192 void **closurevariable
= NULL
;
193 trace
.prev
= tracehead
; tracehead
= &trace
;
194 trace
.file
= LOCATE_control_flow
;
195 tracehead
= trace
.prev
;
196 return ATTR_control_flow___ControlFlowContext____prev( self
) /*ControlFlowContext::_prev*/;
198 val_t
control_flow___ControlFlowContext___unreash(val_t self
) {
199 struct trace_t trace
= {NULL
, NULL
, 84, LOCATE_control_flow___ControlFlowContext___unreash
};
200 val_t
*variable
= NULL
;
201 void **closurevariable
= NULL
;
202 trace
.prev
= tracehead
; tracehead
= &trace
;
203 trace
.file
= LOCATE_control_flow
;
204 tracehead
= trace
.prev
;
205 return ATTR_control_flow___ControlFlowContext____unreash( self
) /*ControlFlowContext::_unreash*/;
207 void control_flow___ControlFlowContext___unreash__eq(val_t self
, val_t param0
) {
208 struct trace_t trace
= {NULL
, NULL
, 84, LOCATE_control_flow___ControlFlowContext___unreash__eq
};
209 val_t
*variable
= NULL
;
210 void **closurevariable
= NULL
;
211 trace
.prev
= tracehead
; tracehead
= &trace
;
212 trace
.file
= LOCATE_control_flow
;
213 ATTR_control_flow___ControlFlowContext____unreash( self
) /*ControlFlowContext::_unreash*/ = param0
;
214 tracehead
= trace
.prev
;
217 val_t
control_flow___ControlFlowContext___already_unreash(val_t self
) {
218 struct trace_t trace
= {NULL
, NULL
, 87, LOCATE_control_flow___ControlFlowContext___already_unreash
};
219 val_t
*variable
= NULL
;
220 void **closurevariable
= NULL
;
221 trace
.prev
= tracehead
; tracehead
= &trace
;
222 trace
.file
= LOCATE_control_flow
;
223 tracehead
= trace
.prev
;
224 return ATTR_control_flow___ControlFlowContext____already_unreash( self
) /*ControlFlowContext::_already_unreash*/;
226 void control_flow___ControlFlowContext___already_unreash__eq(val_t self
, val_t param0
) {
227 struct trace_t trace
= {NULL
, NULL
, 87, LOCATE_control_flow___ControlFlowContext___already_unreash__eq
};
228 val_t
*variable
= NULL
;
229 void **closurevariable
= NULL
;
230 trace
.prev
= tracehead
; tracehead
= &trace
;
231 trace
.file
= LOCATE_control_flow
;
232 ATTR_control_flow___ControlFlowContext____already_unreash( self
) /*ControlFlowContext::_already_unreash*/ = param0
;
233 tracehead
= trace
.prev
;
236 val_t
control_flow___ControlFlowContext___base_block(val_t self
) {
237 struct trace_t trace
= {NULL
, NULL
, 91, LOCATE_control_flow___ControlFlowContext___base_block
};
238 val_t
*variable
= NULL
;
239 void **closurevariable
= NULL
;
240 trace
.prev
= tracehead
; tracehead
= &trace
;
241 trace
.file
= LOCATE_control_flow
;
242 tracehead
= trace
.prev
;
243 return ATTR_control_flow___ControlFlowContext____base_block( self
) /*ControlFlowContext::_base_block*/;
245 void control_flow___ControlFlowContext___base_block__eq(val_t self
, val_t param0
) {
246 struct trace_t trace
= {NULL
, NULL
, 91, LOCATE_control_flow___ControlFlowContext___base_block__eq
};
247 val_t
*variable
= NULL
;
248 void **closurevariable
= NULL
;
249 trace
.prev
= tracehead
; tracehead
= &trace
;
250 trace
.file
= LOCATE_control_flow
;
251 ATTR_control_flow___ControlFlowContext____base_block( self
) /*ControlFlowContext::_base_block*/ = param0
;
252 tracehead
= trace
.prev
;
255 val_t
control_flow___ControlFlowContext___set_variables(val_t self
) {
256 struct trace_t trace
= {NULL
, NULL
, 94, LOCATE_control_flow___ControlFlowContext___set_variables
};
257 val_t
*variable
= NULL
;
258 void **closurevariable
= NULL
;
259 trace
.prev
= tracehead
; tracehead
= &trace
;
260 trace
.file
= LOCATE_control_flow
;
261 tracehead
= trace
.prev
;
262 return ATTR_control_flow___ControlFlowContext____set_variables( self
) /*ControlFlowContext::_set_variables*/;
264 val_t
control_flow___ControlFlowContext___is_set(val_t self
, val_t param0
) {
265 struct trace_t trace
= {NULL
, NULL
, 97, LOCATE_control_flow___ControlFlowContext___is_set
};
267 void **closurevariable
= NULL
;
268 trace
.prev
= tracehead
; tracehead
= &trace
;
269 trace
.file
= LOCATE_control_flow
;
271 variable
[1] = param0
;
272 variable
[3] = variable
[0];
273 variable
[3] = ATTR_control_flow___ControlFlowContext____set_variables(variable
[3]) /*ControlFlowContext::_set_variables*/;
274 variable
[3] = ((hash___HashSet___has_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___has
))(variable
[3], variable
[1] /*v*/) /*HashSet::has*/;
275 variable
[4] = variable
[3];
276 if (!UNTAG_Bool(variable
[4])) { /* or */
277 variable
[4] = variable
[0];
278 variable
[4] = ATTR_control_flow___ControlFlowContext____prev(variable
[4]) /*ControlFlowContext::_prev*/;
279 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
280 variable
[5] = variable
[4];
281 if (UNTAG_Bool(variable
[5])) { /* and */
282 variable
[5] = variable
[0];
283 variable
[5] = ATTR_control_flow___ControlFlowContext____prev(variable
[5]) /*ControlFlowContext::_prev*/;
284 variable
[5] = ((control_flow___ControlFlowContext___is_set_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowContext___is_set
))(variable
[5], variable
[1] /*v*/) /*ControlFlowContext::is_set*/;
286 variable
[4] = variable
[5];
288 variable
[3] = variable
[4];
289 variable
[2] = variable
[3];
291 return_label8
: while(false);
292 tracehead
= trace
.prev
;
295 val_t
control_flow___ControlFlowContext___sub(val_t self
) {
296 struct trace_t trace
= {NULL
, NULL
, 103, LOCATE_control_flow___ControlFlowContext___sub
};
298 void **closurevariable
= NULL
;
299 trace
.prev
= tracehead
; tracehead
= &trace
;
300 trace
.file
= LOCATE_control_flow
;
302 variable
[2] = variable
[0];
303 variable
[3] = NEW_ControlFlowContext_control_flow___ControlFlowContext___with_prev(variable
[2]); /*new ControlFlowContext*/
304 variable
[2] = variable
[3];
305 variable
[1] = variable
[2];
307 return_label9
: while(false);
308 tracehead
= trace
.prev
;
311 void control_flow___ControlFlowContext___init(val_t self
, int* init_table
) {
312 struct trace_t trace
= {NULL
, NULL
, 108, LOCATE_control_flow___ControlFlowContext___init
};
314 void **closurevariable
= NULL
;
315 trace
.prev
= tracehead
; tracehead
= &trace
;
316 trace
.file
= LOCATE_control_flow
;
318 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowContext
].i
]) return;
319 return_label10
: while(false);
320 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowContext
].i
] = 1;
321 tracehead
= trace
.prev
;
324 void control_flow___ControlFlowContext___with_prev(val_t self
, val_t param0
, int* init_table
) {
325 struct trace_t trace
= {NULL
, NULL
, 112, LOCATE_control_flow___ControlFlowContext___with_prev
};
327 void **closurevariable
= NULL
;
328 trace
.prev
= tracehead
; tracehead
= &trace
;
329 trace
.file
= LOCATE_control_flow
;
331 variable
[1] = param0
;
332 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowContext
].i
]) return;
333 variable
[3] = variable
[0];
334 ATTR_control_flow___ControlFlowContext____prev(variable
[3]) /*ControlFlowContext::_prev*/ = variable
[1] /*p*/;
335 variable
[3] = variable
[0];
336 variable
[4] = ((control_flow___ControlFlowContext___unreash_t
)CALL( variable
[1] /*p*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable
[1] /*p*/) /*ControlFlowContext::unreash*/;
337 ATTR_control_flow___ControlFlowContext____unreash(variable
[3]) /*ControlFlowContext::_unreash*/ = variable
[4];
338 variable
[3] = variable
[0];
339 variable
[4] = ((control_flow___ControlFlowContext___already_unreash_t
)CALL( variable
[1] /*p*/,COLOR_control_flow___ControlFlowContext___already_unreash
))( variable
[1] /*p*/) /*ControlFlowContext::already_unreash*/;
340 ATTR_control_flow___ControlFlowContext____already_unreash(variable
[3]) /*ControlFlowContext::_already_unreash*/ = variable
[4];
341 variable
[3] = variable
[0];
342 variable
[4] = ((control_flow___ControlFlowContext___base_block_t
)CALL( variable
[1] /*p*/,COLOR_control_flow___ControlFlowContext___base_block
))( variable
[1] /*p*/) /*ControlFlowContext::base_block*/;
343 ATTR_control_flow___ControlFlowContext____base_block(variable
[3]) /*ControlFlowContext::_base_block*/ = variable
[4];
344 return_label11
: while(false);
345 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ControlFlowContext
].i
] = 1;
346 tracehead
= trace
.prev
;
349 void control_flow___PNode___accept_control_flow(val_t self
, val_t param0
) {
350 struct trace_t trace
= {NULL
, NULL
, 124, LOCATE_control_flow___PNode___accept_control_flow
};
352 void **closurevariable
= NULL
;
353 trace
.prev
= tracehead
; tracehead
= &trace
;
354 trace
.file
= LOCATE_control_flow
;
356 variable
[1] = param0
;
357 variable
[3] = variable
[0];
358 ((syntax_base___PNode___accept_abs_syntax_visitor_t
)CALL(variable
[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor
))(variable
[3], variable
[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
359 return_label12
: while(false);
360 tracehead
= trace
.prev
;
363 void control_flow___AMethPropdef___accept_control_flow(val_t self
, val_t param0
) {
364 struct trace_t trace
= {NULL
, NULL
, 131, LOCATE_control_flow___AMethPropdef___accept_control_flow
};
366 void **closurevariable
= NULL
;
367 trace
.prev
= tracehead
; tracehead
= &trace
;
368 trace
.file
= LOCATE_control_flow
;
370 variable
[1] = param0
;
371 variable
[3] = NEW_ControlFlowContext_control_flow___ControlFlowContext___init(); /*new ControlFlowContext*/
372 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::control_flow_ctx=*/;
373 ((control_flow___AMethPropdef___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow
))(variable
[0], variable
[1]) /*super AMethPropdef::accept_control_flow*/;
374 return_label13
: while(false);
375 tracehead
= trace
.prev
;
378 void control_flow___AConcreteMethPropdef___accept_control_flow(val_t self
, val_t param0
) {
379 struct trace_t trace
= {NULL
, NULL
, 139, LOCATE_control_flow___AConcreteMethPropdef___accept_control_flow
};
381 void **closurevariable
= NULL
;
382 trace
.prev
= tracehead
; tracehead
= &trace
;
383 trace
.file
= LOCATE_control_flow
;
385 variable
[1] = param0
;
386 ((control_flow___AConcreteMethPropdef___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow
))(variable
[0], variable
[1]) /*super AConcreteMethPropdef::accept_control_flow*/;
387 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
388 variable
[3] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[3]) /*ControlFlowContext::unreash*/;
389 variable
[3] = TAG_Bool((variable
[3])==( TAG_Bool(false)));
390 variable
[4] = variable
[3];
391 if (UNTAG_Bool(variable
[4])) { /* and */
392 variable
[4] = variable
[0];
393 variable
[4] = ((syntax_base___AMethPropdef___method_t
)CALL(variable
[4],COLOR_syntax_base___AMethPropdef___method
))(variable
[4]) /*AMethPropdef::method*/;
394 variable
[4] = ((static_type___MMLocalProperty___signature_t
)CALL(variable
[4],COLOR_static_type___MMLocalProperty___signature
))(variable
[4]) /*MMLocalProperty::signature*/;
395 variable
[4] = ((static_type___MMSignature___return_type_t
)CALL(variable
[4],COLOR_static_type___MMSignature___return_type
))(variable
[4]) /*MMSignature::return_type*/;
396 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
398 variable
[3] = variable
[4];
399 if (UNTAG_Bool(variable
[3])) { /*if*/
400 variable
[3] = variable
[0];
401 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected)."), TAG_Int(78)); /*new String*/
402 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
404 return_label14
: while(false);
405 tracehead
= trace
.prev
;
408 void control_flow___AVardeclExpr___accept_control_flow(val_t self
, val_t param0
) {
409 struct trace_t trace
= {NULL
, NULL
, 149, LOCATE_control_flow___AVardeclExpr___accept_control_flow
};
411 void **closurevariable
= NULL
;
412 trace
.prev
= tracehead
; tracehead
= &trace
;
413 trace
.file
= LOCATE_control_flow
;
415 variable
[1] = param0
;
416 ((control_flow___AVardeclExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AVardeclExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AVardeclExpr::accept_control_flow*/;
417 variable
[3] = variable
[0];
418 variable
[3] = ((parser_nodes___AVardeclExpr___n_expr_t
)CALL(variable
[3],COLOR_parser_nodes___AVardeclExpr___n_expr
))(variable
[3]) /*AVardeclExpr::n_expr*/;
419 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
420 if (UNTAG_Bool(variable
[3])) { /*if*/
421 variable
[3] = variable
[0];
422 variable
[3] = ((syntax_base___AVardeclExpr___variable_t
)CALL(variable
[3],COLOR_syntax_base___AVardeclExpr___variable
))(variable
[3]) /*AVardeclExpr::variable*/;
423 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::mark_is_set*/;
425 return_label15
: while(false);
426 tracehead
= trace
.prev
;
429 void control_flow___ABlockExpr___accept_control_flow(val_t self
, val_t param0
) {
430 struct trace_t trace
= {NULL
, NULL
, 157, LOCATE_control_flow___ABlockExpr___accept_control_flow
};
432 void **closurevariable
= NULL
;
433 trace
.prev
= tracehead
; tracehead
= &trace
;
434 trace
.file
= LOCATE_control_flow
;
436 variable
[1] = param0
;
437 variable
[3] = variable
[0];
438 variable
[3] = ((parser_nodes___ABlockExpr___n_expr_t
)CALL(variable
[3],COLOR_parser_nodes___ABlockExpr___n_expr
))(variable
[3]) /*ABlockExpr::n_expr*/;
439 variable
[3] = ((list___List___iterator_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___iterator
))(variable
[3]) /*List::iterator*/;
440 while (true) { /*for*/
441 variable
[4] = ((list___ListIterator___is_ok_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___is_ok
))(variable
[3]) /*ListIterator::is_ok*/;
442 if (!UNTAG_Bool(variable
[4])) break; /*for*/
443 variable
[4] = ((list___ListIterator___item_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___item
))(variable
[3]) /*ListIterator::item*/;
444 variable
[5] = variable
[4];
445 variable
[6] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
446 variable
[6] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[6],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[6]) /*ControlFlowContext::unreash*/;
447 variable
[7] = variable
[6];
448 if (UNTAG_Bool(variable
[7])) { /* and */
449 variable
[7] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
450 variable
[7] = ((control_flow___ControlFlowContext___already_unreash_t
)CALL(variable
[7],COLOR_control_flow___ControlFlowContext___already_unreash
))(variable
[7]) /*ControlFlowContext::already_unreash*/;
451 variable
[7] = TAG_Bool(!UNTAG_Bool(variable
[7]));
453 variable
[6] = variable
[7];
454 if (UNTAG_Bool(variable
[6])) { /*if*/
455 variable
[6] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
456 ((control_flow___ControlFlowContext___already_unreash__eq_t
)CALL(variable
[6],COLOR_control_flow___ControlFlowContext___already_unreash__eq
))(variable
[6], TAG_Bool(true)) /*ControlFlowContext::already_unreash=*/;
457 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Warning: unreachable statement."), TAG_Int(31)); /*new String*/
458 ((syntax_base___AbsSyntaxVisitor___warning_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning
))( variable
[1] /*v*/, variable
[5] /*e*/, variable
[6]) /*AbsSyntaxVisitor::warning*/;
460 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable
[1] /*v*/,COLOR_parser_prod___Visitor___visit
))( variable
[1] /*v*/, variable
[5] /*e*/) /*ControlFlowVisitor::visit*/;
461 continue_17
: while(0);
462 ((list___ListIterator___next_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___next
))(variable
[3]) /*ListIterator::next*/;
465 return_label16
: while(false);
466 tracehead
= trace
.prev
;
469 void control_flow___AReturnExpr___accept_control_flow(val_t self
, val_t param0
) {
470 struct trace_t trace
= {NULL
, NULL
, 170, LOCATE_control_flow___AReturnExpr___accept_control_flow
};
472 void **closurevariable
= NULL
;
473 trace
.prev
= tracehead
; tracehead
= &trace
;
474 trace
.file
= LOCATE_control_flow
;
476 variable
[1] = param0
;
477 ((control_flow___AReturnExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AReturnExpr::accept_control_flow*/;
478 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
479 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable
[3], TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
480 return_label18
: while(false);
481 tracehead
= trace
.prev
;
484 val_t
control_flow___ABlockControler___block(val_t self
) {
485 struct trace_t trace
= {NULL
, NULL
, 179, LOCATE_control_flow___ABlockControler___block
};
486 val_t
*variable
= NULL
;
487 void **closurevariable
= NULL
;
488 trace
.prev
= tracehead
; tracehead
= &trace
;
489 trace
.file
= LOCATE_control_flow
;
490 tracehead
= trace
.prev
;
491 return ATTR_control_flow___ABlockControler____block( self
) /*ABlockControler::_block*/;
493 void control_flow___ABreakExpr___accept_control_flow(val_t self
, val_t param0
) {
494 struct trace_t trace
= {NULL
, NULL
, 184, LOCATE_control_flow___ABreakExpr___accept_control_flow
};
496 void **closurevariable
= NULL
;
497 trace
.prev
= tracehead
; tracehead
= &trace
;
498 trace
.file
= LOCATE_control_flow
;
500 variable
[1] = param0
;
501 ((control_flow___ABreakExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super ABreakExpr::accept_control_flow*/;
502 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
503 variable
[4] = ((control_flow___ControlFlowContext___base_block_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___base_block
))(variable
[4]) /*ControlFlowContext::base_block*/;
504 variable
[3] = variable
[4];
505 variable
[4] = TAG_Bool(( variable
[3] /*block*/ == NIT_NULL
/*null*/) || (( variable
[3] /*block*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[3] /*block*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*block*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[3] /*block*/,COLOR_kernel___Object_____eqeq
))( variable
[3] /*block*/, NIT_NULL
/*null*/) /*Object::==*/)))));
506 if (UNTAG_Bool(variable
[4])) { /*if*/
507 variable
[4] = variable
[0];
508 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'break' statment outside block."), TAG_Int(45)); /*new String*/
509 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
512 variable
[4] = variable
[0];
513 ATTR_control_flow___ABlockControler____block(variable
[4]) /*ABlockControler::_block*/ = variable
[3] /*block*/;
514 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
515 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable
[4], TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
516 return_label19
: while(false);
517 tracehead
= trace
.prev
;
520 void control_flow___AContinueExpr___accept_control_flow(val_t self
, val_t param0
) {
521 struct trace_t trace
= {NULL
, NULL
, 198, LOCATE_control_flow___AContinueExpr___accept_control_flow
};
523 void **closurevariable
= NULL
;
524 trace
.prev
= tracehead
; tracehead
= &trace
;
525 trace
.file
= LOCATE_control_flow
;
527 variable
[1] = param0
;
528 ((control_flow___AContinueExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AContinueExpr::accept_control_flow*/;
529 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
530 variable
[4] = ((control_flow___ControlFlowContext___base_block_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___base_block
))(variable
[4]) /*ControlFlowContext::base_block*/;
531 variable
[3] = variable
[4];
532 variable
[4] = TAG_Bool(( variable
[3] /*block*/ == NIT_NULL
/*null*/) || (( variable
[3] /*block*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[3] /*block*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*block*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[3] /*block*/,COLOR_kernel___Object_____eqeq
))( variable
[3] /*block*/, NIT_NULL
/*null*/) /*Object::==*/)))));
533 if (UNTAG_Bool(variable
[4])) { /*if*/
534 variable
[4] = variable
[0];
535 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'continue' outside block."), TAG_Int(39)); /*new String*/
536 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
539 variable
[4] = variable
[0];
540 ATTR_control_flow___ABlockControler____block(variable
[4]) /*ABlockControler::_block*/ = variable
[3] /*block*/;
541 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
542 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable
[4], TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
543 return_label20
: while(false);
544 tracehead
= trace
.prev
;
547 void control_flow___AAbortExpr___accept_control_flow(val_t self
, val_t param0
) {
548 struct trace_t trace
= {NULL
, NULL
, 212, LOCATE_control_flow___AAbortExpr___accept_control_flow
};
550 void **closurevariable
= NULL
;
551 trace
.prev
= tracehead
; tracehead
= &trace
;
552 trace
.file
= LOCATE_control_flow
;
554 variable
[1] = param0
;
555 ((control_flow___AAbortExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AAbortExpr::accept_control_flow*/;
556 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
557 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable
[3], TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
558 return_label21
: while(false);
559 tracehead
= trace
.prev
;
562 void control_flow___AClosureCallExpr___accept_control_flow(val_t self
, val_t param0
) {
563 struct trace_t trace
= {NULL
, NULL
, 220, LOCATE_control_flow___AClosureCallExpr___accept_control_flow
};
565 void **closurevariable
= NULL
;
566 trace
.prev
= tracehead
; tracehead
= &trace
;
567 trace
.file
= LOCATE_control_flow
;
569 variable
[1] = param0
;
570 ((control_flow___AClosureCallExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AClosureCallExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AClosureCallExpr::accept_control_flow*/;
571 variable
[3] = variable
[0];
572 variable
[3] = ((syntax_base___AClosureCallExpr___variable_t
)CALL(variable
[3],COLOR_syntax_base___AClosureCallExpr___variable
))(variable
[3]) /*AClosureCallExpr::variable*/;
573 variable
[3] = ((syntax_base___ClosureVariable___closure_t
)CALL(variable
[3],COLOR_syntax_base___ClosureVariable___closure
))(variable
[3]) /*ClosureVariable::closure*/;
574 variable
[3] = ((static_type___MMClosure___is_break_t
)CALL(variable
[3],COLOR_static_type___MMClosure___is_break
))(variable
[3]) /*MMClosure::is_break*/;
575 if (UNTAG_Bool(variable
[3])) { /*if*/
576 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
577 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable
[3], TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
579 return_label22
: while(false);
580 tracehead
= trace
.prev
;
583 void control_flow___AIfExpr___accept_control_flow(val_t self
, val_t param0
) {
584 struct trace_t trace
= {NULL
, NULL
, 228, LOCATE_control_flow___AIfExpr___accept_control_flow
};
586 void **closurevariable
= NULL
;
587 trace
.prev
= tracehead
; tracehead
= &trace
;
588 trace
.file
= LOCATE_control_flow
;
590 variable
[1] = param0
;
591 variable
[3] = variable
[0];
592 variable
[3] = ((parser_nodes___AIfExpr___n_expr_t
)CALL(variable
[3],COLOR_parser_nodes___AIfExpr___n_expr
))(variable
[3]) /*AIfExpr::n_expr*/;
593 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable
[1] /*v*/,COLOR_parser_prod___Visitor___visit
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::visit*/;
594 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
595 variable
[3] = variable
[4];
596 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
597 variable
[4] = ((control_flow___ControlFlowContext___sub_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___sub
))(variable
[4]) /*ControlFlowContext::sub*/;
598 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
599 variable
[4] = variable
[0];
600 variable
[4] = ((parser_nodes___AIfExpr___n_then_t
)CALL(variable
[4],COLOR_parser_nodes___AIfExpr___n_then
))(variable
[4]) /*AIfExpr::n_then*/;
601 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable
[1] /*v*/,COLOR_parser_prod___Visitor___visit
))( variable
[1] /*v*/, variable
[4]) /*ControlFlowVisitor::visit*/;
602 variable
[4] = variable
[0];
603 variable
[4] = ((parser_nodes___AIfExpr___n_else_t
)CALL(variable
[4],COLOR_parser_nodes___AIfExpr___n_else
))(variable
[4]) /*AIfExpr::n_else*/;
604 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
605 if (UNTAG_Bool(variable
[4])) { /*if*/
606 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
608 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
609 variable
[4] = variable
[5];
610 variable
[5] = ((control_flow___ControlFlowContext___sub_t
)CALL( variable
[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___sub
))( variable
[3] /*old_control_flow_ctx*/) /*ControlFlowContext::sub*/;
611 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[5]) /*ControlFlowVisitor::control_flow_ctx=*/;
612 variable
[5] = variable
[0];
613 variable
[5] = ((parser_nodes___AIfExpr___n_else_t
)CALL(variable
[5],COLOR_parser_nodes___AIfExpr___n_else
))(variable
[5]) /*AIfExpr::n_else*/;
614 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable
[1] /*v*/,COLOR_parser_prod___Visitor___visit
))( variable
[1] /*v*/, variable
[5]) /*ControlFlowVisitor::visit*/;
615 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
616 variable
[5] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[5]) /*ControlFlowContext::unreash*/;
617 variable
[6] = variable
[5];
618 if (UNTAG_Bool(variable
[6])) { /* and */
619 variable
[6] = ((control_flow___ControlFlowContext___unreash_t
)CALL( variable
[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable
[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
621 variable
[5] = variable
[6];
622 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL( variable
[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash__eq
))( variable
[3] /*old_control_flow_ctx*/, variable
[5]) /*ControlFlowContext::unreash=*/;
623 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
624 variable
[5] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[5]) /*ControlFlowContext::unreash*/;
625 if (UNTAG_Bool(variable
[5])) { /*if*/
626 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[4] /*then_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
628 variable
[5] = ((control_flow___ControlFlowContext___unreash_t
)CALL( variable
[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable
[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
629 if (UNTAG_Bool(variable
[5])) { /*if*/
630 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
631 variable
[4] = variable
[5] /*then_control_flow_ctx=*/;
633 variable
[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
634 variable
[5] = ((control_flow___ControlFlowContext___set_variables_t
)CALL(variable
[5],COLOR_control_flow___ControlFlowContext___set_variables
))(variable
[5]) /*ControlFlowContext::set_variables*/;
635 variable
[5] = ((hash___HashSet___iterator_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___iterator
))(variable
[5]) /*HashSet::iterator*/;
636 while (true) { /*for*/
637 variable
[6] = ((abstract_collection___Iterator___is_ok_t
)CALL(variable
[5],COLOR_abstract_collection___Iterator___is_ok
))(variable
[5]) /*Iterator::is_ok*/;
638 if (!UNTAG_Bool(variable
[6])) break; /*for*/
639 variable
[6] = ((abstract_collection___Iterator___item_t
)CALL(variable
[5],COLOR_abstract_collection___Iterator___item
))(variable
[5]) /*Iterator::item*/;
640 variable
[7] = variable
[6];
641 variable
[8] = ((control_flow___ControlFlowContext___is_set_t
)CALL( variable
[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___is_set
))( variable
[4] /*then_control_flow_ctx*/, variable
[7] /*variable*/) /*ControlFlowContext::is_set*/;
642 if (UNTAG_Bool(variable
[8])) { /*if*/
643 variable
[8] = ((control_flow___ControlFlowContext___set_variables_t
)CALL( variable
[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___set_variables
))( variable
[3] /*old_control_flow_ctx*/) /*ControlFlowContext::set_variables*/;
644 ((hash___HashSet___add_t
)CALL(variable
[8],COLOR_abstract_collection___SimpleCollection___add
))(variable
[8], variable
[7] /*variable*/) /*HashSet::add*/;
646 continue_24
: while(0);
647 ((abstract_collection___Iterator___next_t
)CALL(variable
[5],COLOR_abstract_collection___Iterator___next
))(variable
[5]) /*Iterator::next*/;
650 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
652 return_label23
: while(false);
653 tracehead
= trace
.prev
;
656 void control_flow___AControlableBlock___accept_control_flow(val_t self
, val_t param0
) {
657 struct trace_t trace
= {NULL
, NULL
, 265, LOCATE_control_flow___AControlableBlock___accept_control_flow
};
659 void **closurevariable
= NULL
;
660 trace
.prev
= tracehead
; tracehead
= &trace
;
661 trace
.file
= LOCATE_control_flow
;
663 variable
[1] = param0
;
664 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
665 variable
[3] = variable
[4];
666 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
667 variable
[4] = ((control_flow___ControlFlowContext___sub_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___sub
))(variable
[4]) /*ControlFlowContext::sub*/;
668 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
669 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
670 variable
[5] = variable
[0];
671 ((control_flow___ControlFlowContext___base_block__eq_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___base_block__eq
))(variable
[4], variable
[5]) /*ControlFlowContext::base_block=*/;
672 ((control_flow___AControlableBlock___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow
))(variable
[0], variable
[1]) /*super AControlableBlock::accept_control_flow*/;
673 variable
[4] = variable
[0];
674 ((control_flow___AControlableBlock___check_control_flow_t
)CALL(variable
[4],COLOR_control_flow___AControlableBlock___check_control_flow
))(variable
[4], variable
[1] /*v*/) /*AControlableBlock::check_control_flow*/;
675 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
676 return_label25
: while(false);
677 tracehead
= trace
.prev
;
680 void control_flow___AControlableBlock___check_control_flow(val_t self
, val_t param0
) {
681 struct trace_t trace
= {NULL
, NULL
, 283, LOCATE_control_flow___AControlableBlock___check_control_flow
};
683 void **closurevariable
= NULL
;
684 trace
.prev
= tracehead
; tracehead
= &trace
;
685 trace
.file
= LOCATE_control_flow
;
687 variable
[1] = param0
;
688 return_label26
: while(false);
689 tracehead
= trace
.prev
;
692 void control_flow___AVarExpr___accept_control_flow(val_t self
, val_t param0
) {
693 struct trace_t trace
= {NULL
, NULL
, 295, LOCATE_control_flow___AVarExpr___accept_control_flow
};
695 void **closurevariable
= NULL
;
696 trace
.prev
= tracehead
; tracehead
= &trace
;
697 trace
.file
= LOCATE_control_flow
;
699 variable
[1] = param0
;
700 ((control_flow___AVarExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AVarExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AVarExpr::accept_control_flow*/;
701 variable
[3] = variable
[0];
702 variable
[4] = variable
[0];
703 variable
[4] = ((syntax_base___AVarFormExpr___variable_t
)CALL(variable
[4],COLOR_syntax_base___AVarFormExpr___variable
))(variable
[4]) /*AVarFormExpr::variable*/;
704 ((control_flow___ControlFlowVisitor___check_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*ControlFlowVisitor::check_is_set*/;
705 return_label27
: while(false);
706 tracehead
= trace
.prev
;
709 void control_flow___AVarAssignExpr___accept_control_flow(val_t self
, val_t param0
) {
710 struct trace_t trace
= {NULL
, NULL
, 303, LOCATE_control_flow___AVarAssignExpr___accept_control_flow
};
712 void **closurevariable
= NULL
;
713 trace
.prev
= tracehead
; tracehead
= &trace
;
714 trace
.file
= LOCATE_control_flow
;
716 variable
[1] = param0
;
717 ((control_flow___AVarAssignExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AVarAssignExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AVarAssignExpr::accept_control_flow*/;
718 variable
[3] = variable
[0];
719 variable
[3] = ((syntax_base___AVarFormExpr___variable_t
)CALL(variable
[3],COLOR_syntax_base___AVarFormExpr___variable
))(variable
[3]) /*AVarFormExpr::variable*/;
720 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::mark_is_set*/;
721 return_label28
: while(false);
722 tracehead
= trace
.prev
;
725 void control_flow___AVarReassignExpr___accept_control_flow(val_t self
, val_t param0
) {
726 struct trace_t trace
= {NULL
, NULL
, 311, LOCATE_control_flow___AVarReassignExpr___accept_control_flow
};
728 void **closurevariable
= NULL
;
729 trace
.prev
= tracehead
; tracehead
= &trace
;
730 trace
.file
= LOCATE_control_flow
;
732 variable
[1] = param0
;
733 ((control_flow___AVarReassignExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AVarReassignExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AVarReassignExpr::accept_control_flow*/;
734 variable
[3] = variable
[0];
735 variable
[4] = variable
[0];
736 variable
[4] = ((syntax_base___AVarFormExpr___variable_t
)CALL(variable
[4],COLOR_syntax_base___AVarFormExpr___variable
))(variable
[4]) /*AVarFormExpr::variable*/;
737 ((control_flow___ControlFlowVisitor___check_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*ControlFlowVisitor::check_is_set*/;
738 variable
[3] = variable
[0];
739 variable
[3] = ((syntax_base___AVarFormExpr___variable_t
)CALL(variable
[3],COLOR_syntax_base___AVarFormExpr___variable
))(variable
[3]) /*AVarFormExpr::variable*/;
740 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::mark_is_set*/;
741 return_label29
: while(false);
742 tracehead
= trace
.prev
;
745 void control_flow___AClosureDecl___accept_control_flow(val_t self
, val_t param0
) {
746 struct trace_t trace
= {NULL
, NULL
, 320, LOCATE_control_flow___AClosureDecl___accept_control_flow
};
748 void **closurevariable
= NULL
;
749 trace
.prev
= tracehead
; tracehead
= &trace
;
750 trace
.file
= LOCATE_control_flow
;
752 variable
[1] = param0
;
753 variable
[3] = variable
[0];
754 variable
[3] = ((parser_nodes___AClosureDecl___n_expr_t
)CALL(variable
[3],COLOR_parser_nodes___AClosureDecl___n_expr
))(variable
[3]) /*AClosureDecl::n_expr*/;
755 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
756 if (UNTAG_Bool(variable
[3])) { /*if*/
757 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
758 variable
[3] = variable
[4];
759 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
760 variable
[4] = ((control_flow___ControlFlowContext___sub_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___sub
))(variable
[4]) /*ControlFlowContext::sub*/;
761 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
762 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
763 variable
[5] = variable
[0];
764 variable
[5] = ((parser_nodes___AClosureDecl___n_expr_t
)CALL(variable
[5],COLOR_parser_nodes___AClosureDecl___n_expr
))(variable
[5]) /*AClosureDecl::n_expr*/;
765 ((control_flow___ControlFlowContext___base_block__eq_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___base_block__eq
))(variable
[4], variable
[5]) /*ControlFlowContext::base_block=*/;
766 ((control_flow___AClosureDecl___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AClosureDecl___accept_control_flow
))(variable
[0], variable
[1]) /*super AClosureDecl::accept_control_flow*/;
767 variable
[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
768 variable
[4] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[4],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[4]) /*ControlFlowContext::unreash*/;
769 variable
[4] = TAG_Bool((variable
[4])==( TAG_Bool(false)));
770 if (UNTAG_Bool(variable
[4])) { /*if*/
771 variable
[4] = variable
[0];
772 variable
[4] = ((syntax_base___PClosureDecl___variable_t
)CALL(variable
[4],COLOR_syntax_base___PClosureDecl___variable
))(variable
[4]) /*PClosureDecl::variable*/;
773 variable
[4] = ((syntax_base___ClosureVariable___closure_t
)CALL(variable
[4],COLOR_syntax_base___ClosureVariable___closure
))(variable
[4]) /*ClosureVariable::closure*/;
774 variable
[4] = ((static_type___MMClosure___signature_t
)CALL(variable
[4],COLOR_static_type___MMClosure___signature
))(variable
[4]) /*MMClosure::signature*/;
775 variable
[4] = ((static_type___MMSignature___return_type_t
)CALL(variable
[4],COLOR_static_type___MMSignature___return_type
))(variable
[4]) /*MMSignature::return_type*/;
776 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
777 if (UNTAG_Bool(variable
[4])) { /*if*/
778 variable
[4] = variable
[0];
779 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of bloc (a 'continue' with a value was expected)."), TAG_Int(76)); /*new String*/
780 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
782 variable
[4] = variable
[0];
783 variable
[4] = ((syntax_base___PClosureDecl___variable_t
)CALL(variable
[4],COLOR_syntax_base___PClosureDecl___variable
))(variable
[4]) /*PClosureDecl::variable*/;
784 variable
[4] = ((syntax_base___ClosureVariable___closure_t
)CALL(variable
[4],COLOR_syntax_base___ClosureVariable___closure
))(variable
[4]) /*ClosureVariable::closure*/;
785 variable
[4] = ((static_type___MMClosure___is_break_t
)CALL(variable
[4],COLOR_static_type___MMClosure___is_break
))(variable
[4]) /*MMClosure::is_break*/;
786 if (UNTAG_Bool(variable
[4])) { /*if*/
787 variable
[4] = variable
[0];
788 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break bloc (an 'abort' was expected)."), TAG_Int(67)); /*new String*/
789 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
793 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable
[1] /*v*/, variable
[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
795 return_label30
: while(false);
796 tracehead
= trace
.prev
;
799 void control_flow___AClosureDef___accept_control_flow(val_t self
, val_t param0
) {
800 struct trace_t trace
= {NULL
, NULL
, 345, LOCATE_control_flow___AClosureDef___accept_control_flow
};
802 void **closurevariable
= NULL
;
803 trace
.prev
= tracehead
; tracehead
= &trace
;
804 trace
.file
= LOCATE_control_flow
;
806 variable
[1] = param0
;
807 variable
[3] = variable
[0];
808 variable
[3] = ((syntax_base___PClosureDef___variables_t
)CALL(variable
[3],COLOR_syntax_base___PClosureDef___variables
))(variable
[3]) /*PClosureDef::variables*/;
809 variable
[3] = ((array___AbstractArray___iterator_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___iterator
))(variable
[3]) /*AbstractArray::iterator*/;
810 while (true) { /*for*/
811 variable
[4] = ((array___ArrayIterator___is_ok_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___is_ok
))(variable
[3]) /*ArrayIterator::is_ok*/;
812 if (!UNTAG_Bool(variable
[4])) break; /*for*/
813 variable
[4] = ((array___ArrayIterator___item_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___item
))(variable
[3]) /*ArrayIterator::item*/;
814 variable
[5] = variable
[4];
815 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable
[1] /*v*/, variable
[5] /*va*/) /*ControlFlowVisitor::mark_is_set*/;
816 continue_32
: while(0);
817 ((array___ArrayIterator___next_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___next
))(variable
[3]) /*ArrayIterator::next*/;
820 ((control_flow___AClosureDef___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AClosureDef___accept_control_flow
))(variable
[0], variable
[1]) /*super AClosureDef::accept_control_flow*/;
821 return_label31
: while(false);
822 tracehead
= trace
.prev
;
825 void control_flow___AClosureDef___check_control_flow(val_t self
, val_t param0
) {
826 struct trace_t trace
= {NULL
, NULL
, 351, LOCATE_control_flow___AClosureDef___check_control_flow
};
828 void **closurevariable
= NULL
;
829 trace
.prev
= tracehead
; tracehead
= &trace
;
830 trace
.file
= LOCATE_control_flow
;
832 variable
[1] = param0
;
833 variable
[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable
[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
834 variable
[3] = ((control_flow___ControlFlowContext___unreash_t
)CALL(variable
[3],COLOR_control_flow___ControlFlowContext___unreash
))(variable
[3]) /*ControlFlowContext::unreash*/;
835 variable
[3] = TAG_Bool((variable
[3])==( TAG_Bool(false)));
836 if (UNTAG_Bool(variable
[3])) { /*if*/
837 variable
[3] = variable
[0];
838 variable
[3] = ((syntax_base___PClosureDef___closure_t
)CALL(variable
[3],COLOR_syntax_base___PClosureDef___closure
))(variable
[3]) /*PClosureDef::closure*/;
839 variable
[3] = ((static_type___MMClosure___signature_t
)CALL(variable
[3],COLOR_static_type___MMClosure___signature
))(variable
[3]) /*MMClosure::signature*/;
840 variable
[3] = ((static_type___MMSignature___return_type_t
)CALL(variable
[3],COLOR_static_type___MMSignature___return_type
))(variable
[3]) /*MMSignature::return_type*/;
841 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[3],COLOR_kernel___Object_____eqeq
))(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
842 if (UNTAG_Bool(variable
[3])) { /*if*/
843 variable
[3] = variable
[0];
844 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of bloc (a 'continue' with a value was expected)."), TAG_Int(76)); /*new String*/
845 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
847 variable
[3] = variable
[0];
848 variable
[3] = ((syntax_base___PClosureDef___closure_t
)CALL(variable
[3],COLOR_syntax_base___PClosureDef___closure
))(variable
[3]) /*PClosureDef::closure*/;
849 variable
[3] = ((static_type___MMClosure___is_break_t
)CALL(variable
[3],COLOR_static_type___MMClosure___is_break
))(variable
[3]) /*MMClosure::is_break*/;
850 if (UNTAG_Bool(variable
[3])) { /*if*/
851 variable
[3] = variable
[0];
852 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break bloc (a 'break' was expected)."), TAG_Int(66)); /*new String*/
853 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
857 return_label33
: while(false);
858 tracehead
= trace
.prev
;
861 void control_flow___AOnceExpr___accept_control_flow(val_t self
, val_t param0
) {
862 struct trace_t trace
= {NULL
, NULL
, 364, LOCATE_control_flow___AOnceExpr___accept_control_flow
};
864 void **closurevariable
= NULL
;
865 trace
.prev
= tracehead
; tracehead
= &trace
;
866 trace
.file
= LOCATE_control_flow
;
868 variable
[1] = param0
;
869 variable
[3] = ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable
[1] /*v*/) /*ControlFlowVisitor::once_count*/;
870 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>UNTAG_Int( TAG_Int(0)));
871 if (UNTAG_Bool(variable
[3])) { /*if*/
872 variable
[3] = variable
[0];
873 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Useless once in a once expression."), TAG_Int(34)); /*new String*/
874 ((syntax_base___AbsSyntaxVisitor___warning_t
)CALL( variable
[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning
))( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::warning*/;
876 variable
[3] = ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable
[1] /*v*/) /*ControlFlowVisitor::once_count*/;
877 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1)));
878 ((control_flow___ControlFlowVisitor___once_count__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::once_count=*/;
879 ((control_flow___AOnceExpr___accept_control_flow_t
)CALL(variable
[0],COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow
))(variable
[0], variable
[1]) /*super AOnceExpr::accept_control_flow*/;
880 variable
[3] = ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable
[1] /*v*/) /*ControlFlowVisitor::once_count*/;
881 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1)));
882 ((control_flow___ControlFlowVisitor___once_count__eq_t
)CALL( variable
[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq
))( variable
[1] /*v*/, variable
[3]) /*ControlFlowVisitor::once_count=*/;
883 return_label34
: while(false);
884 tracehead
= trace
.prev
;