1 /* This C file is generated by NIT to compile module control_flow. */
2 #include "control_flow._sep.h"
3 val_t
control_flow___VariableContext___to_s(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 183, LOCATE_control_flow___VariableContext___to_s
};
5 static val_t once_value_2
= NIT_NULL
; /* Once value for string variable[8]*/
6 static val_t once_value_3
= NIT_NULL
; /* Once value for string variable[8]*/
7 static val_t once_value_4
= NIT_NULL
; /* Once value for string variable[8]*/
9 struct WBT_
**closurevariable
= NULL
;
10 trace
.prev
= tracehead
; tracehead
= &trace
;
11 trace
.file
= LOCATE_control_flow
;
12 /* Register variable[0]: Local variable */
14 /* Register variable[1]: Method return value and escape marker */
15 /* Register variable[2]: Local variable */
16 /* Register variable[3]: Result */
17 variable
[3] = NEW_Buffer_string___Buffer___init() /*new Buffer*/;
18 variable
[2] = variable
[3];
19 /* Register variable[3]: Result */
20 variable
[3] = CALL_control_flow___VariableContext___node(variable
[0])(variable
[0]) /*VariableContext::node*/;
21 /* Register variable[3]: Result */
22 variable
[3] = CALL_parser_prod___PNode___locate(variable
[3])(variable
[3]) /*PNode::locate*/;
23 CALL_abstract_collection___IndexedCollection___append( variable
[2] /*s*/)( variable
[2] /*s*/, variable
[3]) /*Buffer::append*/;
24 /* Register variable[3]: Result */
25 variable
[3] = ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/;
26 /* Register variable[3]: For iterator */
27 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
28 while (true) { /*for*/
29 /* Register variable[4]: For 'is_ok' result */
30 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
31 if (!UNTAG_Bool(variable
[4])) break; /*for*/
32 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/ /* Ensure var: For item*/;
33 /* Register variable[5]: Local variable */
34 variable
[5] = variable
[4];
35 /* Register variable[6]: Local variable */
36 /* Register variable[7]: Result */
37 variable
[7] = CALL_control_flow___VariableContext___stype(variable
[0])(variable
[0], variable
[5] /*v*/) /*VariableContext::stype*/;
38 variable
[6] = variable
[7];
39 /* Register variable[7]: Result */
40 variable
[7] = TAG_Bool(( variable
[6] /*t*/ == NIT_NULL
/*null*/) || (( variable
[6] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*t*/)( variable
[6] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
41 if (UNTAG_Bool(variable
[7])) { /*if*/
44 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
45 /* Register variable[8]: Once String constant */
46 if (once_value_2
!= NIT_NULL
) variable
[8] = once_value_2
;
48 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/;
49 once_value_2
= variable
[8];
51 /* Register variable[8]: Result */
52 /* Ensure var variable[8]: super-string element*/
53 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
54 variable
[8] = variable
[5] /*v*/ /* Ensure var: super-string element*/;
55 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
56 /* Register variable[8]: Once String constant */
57 if (once_value_3
!= NIT_NULL
) variable
[8] = once_value_3
;
59 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)) /*new String*/;
60 once_value_3
= variable
[8];
62 /* Register variable[8]: Result */
63 /* Ensure var variable[8]: super-string element*/
64 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
65 variable
[8] = variable
[6] /*t*/ /* Ensure var: super-string element*/;
66 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
67 /* Register variable[8]: Once String constant */
68 if (once_value_4
!= NIT_NULL
) variable
[8] = once_value_4
;
70 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
71 once_value_4
= variable
[8];
73 /* Register variable[8]: Result */
74 /* Ensure var variable[8]: super-string element*/
75 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
76 /* Register variable[7]: Result */
77 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
78 CALL_abstract_collection___IndexedCollection___append( variable
[2] /*s*/)( variable
[2] /*s*/, variable
[7]) /*Buffer::append*/;
80 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
83 /* Register variable[3]: Result */
84 variable
[3] = CALL_string___Object___to_s( variable
[2] /*s*/)( variable
[2] /*s*/) /*Buffer::to_s*/;
85 variable
[1] = variable
[3];
87 return_label0
: while(false);
88 tracehead
= trace
.prev
;
91 val_t
control_flow___VariableContext_____bra(val_t self
, val_t param0
) {
92 struct trace_t trace
= {NULL
, NULL
, 25, LOCATE_control_flow___VariableContext_____bra
};
94 struct WBT_
**closurevariable
= NULL
;
95 trace
.prev
= tracehead
; tracehead
= &trace
;
96 trace
.file
= LOCATE_control_flow
;
97 /* Register variable[0]: Local variable */
99 /* Register variable[1]: Local variable */
100 variable
[1] = param0
;
101 /* Register variable[2]: Method return value and escape marker */
102 /* Register variable[3]: Result */
103 variable
[3] = ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/;
104 /* Register variable[3]: Result */
105 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*s*/) /*MapRead::has_key*/;
106 if (UNTAG_Bool(variable
[3])) { /*if*/
107 /* Register variable[3]: Result */
108 variable
[3] = ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/;
109 /* Register variable[3]: Result */
110 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*MapRead::[]*/;
111 variable
[2] = variable
[3];
114 variable
[2] = NIT_NULL
/*null*/;
117 return_label5
: while(false);
118 tracehead
= trace
.prev
;
121 void control_flow___VariableContext___add(val_t self
, val_t param0
) {
122 struct trace_t trace
= {NULL
, NULL
, 36, LOCATE_control_flow___VariableContext___add
};
124 struct WBT_
**closurevariable
= NULL
;
125 trace
.prev
= tracehead
; tracehead
= &trace
;
126 trace
.file
= LOCATE_control_flow
;
127 /* Register variable[0]: Local variable */
129 /* Register variable[1]: Local variable */
130 variable
[1] = param0
;
131 /* Register variable[2]: Method return value and escape marker */
132 /* Register variable[3]: Result */
133 variable
[3] = ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/;
134 /* Register variable[4]: Result */
135 variable
[4] = CALL_syntax_base___Variable___name( variable
[1] /*v*/)( variable
[1] /*v*/) /*Variable::name*/;
136 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*v*/) /*Map::[]=*/;
137 /* Register variable[3]: Result */
138 variable
[3] = ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/;
139 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[1] /*v*/) /*SimpleCollection::add*/;
140 return_label6
: while(false);
141 tracehead
= trace
.prev
;
144 void control_flow___VariableContext___mark_is_set(val_t self
, val_t param0
) {
145 struct trace_t trace
= {NULL
, NULL
, 43, LOCATE_control_flow___VariableContext___mark_is_set
};
147 struct WBT_
**closurevariable
= NULL
;
148 trace
.prev
= tracehead
; tracehead
= &trace
;
149 trace
.file
= LOCATE_control_flow
;
150 /* Register variable[0]: Local variable */
152 /* Register variable[1]: Local variable */
153 variable
[1] = param0
;
154 /* Register variable[2]: Method return value and escape marker */
155 /* Register variable[3]: Result */
156 variable
[3] = ATTR_control_flow___VariableContext____set_variables(variable
[0]) /*VariableContext::_set_variables*/;
157 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[1] /*v*/) /*HashSet::add*/;
158 return_label7
: while(false);
159 tracehead
= trace
.prev
;
162 void control_flow___VariableContext___check_is_set(val_t self
, val_t param0
, val_t param1
) {
163 struct trace_t trace
= {NULL
, NULL
, 48, LOCATE_control_flow___VariableContext___check_is_set
};
164 static val_t once_value_9
= NIT_NULL
; /* Once value for string variable[6]*/
165 static val_t once_value_10
= NIT_NULL
; /* Once value for string variable[6]*/
166 static val_t once_value_12
= NIT_NULL
; /* Once value for string variable[6]*/
167 static val_t once_value_13
= NIT_NULL
; /* Once value for string variable[6]*/
168 static val_t once_value_14
= NIT_NULL
; /* Once value for string variable[7]*/
169 static val_t once_value_15
= NIT_NULL
; /* Once value for string variable[6]*/
170 static val_t once_value_16
= NIT_NULL
; /* Once value for string variable[7]*/
171 static val_t once_value_17
= NIT_NULL
; /* Once value for string variable[6]*/
173 struct WBT_
**closurevariable
= NULL
;
174 trace
.prev
= tracehead
; tracehead
= &trace
;
175 trace
.file
= LOCATE_control_flow
;
176 /* Register variable[0]: Local variable */
178 /* Register variable[1]: Local variable */
179 variable
[1] = param0
;
180 /* Register variable[2]: Local variable */
181 variable
[2] = param1
;
182 /* Register variable[3]: Method return value and escape marker */
183 /* Register variable[4]: Result */
184 variable
[4] = CALL_control_flow___Variable___must_be_set( variable
[2] /*v*/)( variable
[2] /*v*/) /*Variable::must_be_set*/;
185 /* Ensure var variable[4]: Left 'and' operand*/
186 if (UNTAG_Bool(variable
[4])) { /* and */
187 /* Register variable[4]: Result */
188 variable
[4] = CALL_control_flow___VariableContext___is_set(variable
[0])(variable
[0], variable
[2] /*v*/) /*VariableContext::is_set*/;
189 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
191 /* Register variable[4]: Result */
192 if (UNTAG_Bool(variable
[4])) { /*if*/
193 /* Register variable[4]: Result */
194 variable
[4] = ATTR_control_flow___VariableContext____visitor(variable
[0]) /*VariableContext::_visitor*/;
195 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
196 /* Register variable[6]: Once String constant */
197 if (once_value_9
!= NIT_NULL
) variable
[6] = once_value_9
;
199 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: variable '"), TAG_Int(17)) /*new String*/;
200 once_value_9
= variable
[6];
202 /* Register variable[6]: Result */
203 /* Ensure var variable[6]: super-string element*/
204 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
205 variable
[6] = variable
[2] /*v*/ /* Ensure var: super-string element*/;
206 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
207 /* Register variable[6]: Once String constant */
208 if (once_value_10
!= NIT_NULL
) variable
[6] = once_value_10
;
210 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("' is possibly unset."), TAG_Int(20)) /*new String*/;
211 once_value_10
= variable
[6];
213 /* Register variable[6]: Result */
214 /* Ensure var variable[6]: super-string element*/
215 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
216 /* Register variable[5]: Result */
217 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
218 CALL_syntax_base___AbsSyntaxVisitor___error(variable
[4])(variable
[4], variable
[1] /*n*/, variable
[5]) /*AbsSyntaxVisitor::error*/;
219 /* Register variable[4]: Local variable */
220 variable
[4] = variable
[0];
221 while (true) { /*while*/
222 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
223 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
224 /* Register variable[6]: Once String constant */
225 if (once_value_12
!= NIT_NULL
) variable
[6] = once_value_12
;
227 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)) /*new String*/;
228 once_value_12
= variable
[6];
230 /* Register variable[6]: Result */
231 /* Ensure var variable[6]: super-string element*/
232 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
233 /* Register variable[6]: Result */
234 variable
[6] = CALL_control_flow___VariableContext___node( variable
[4] /*x*/)( variable
[4] /*x*/) /*VariableContext::node*/;
235 /* Register variable[6]: Result */
236 variable
[6] = CALL_parser_prod___PNode___locate(variable
[6])(variable
[6]) /*PNode::locate*/;
237 /* Ensure var variable[6]: super-string element*/
238 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
239 /* Register variable[6]: Once String constant */
240 if (once_value_13
!= NIT_NULL
) variable
[6] = once_value_13
;
242 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
243 once_value_13
= variable
[6];
245 /* Register variable[6]: Result */
246 /* Ensure var variable[6]: super-string element*/
247 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
248 /* Register variable[6]: Result */
249 variable
[6] = ATTR_control_flow___VariableContext____set_variables( variable
[4] /*x*/) /*VariableContext::_set_variables*/;
250 /* Register variable[7]: Once String constant */
251 if (once_value_14
!= NIT_NULL
) variable
[7] = once_value_14
;
253 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
254 once_value_14
= variable
[7];
256 /* Register variable[7]: Result */
257 /* Register variable[6]: Result */
258 variable
[6] = CALL_string___Collection___join(variable
[6])(variable
[6], variable
[7]) /*Collection::join*/;
259 /* Ensure var variable[6]: super-string element*/
260 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
261 /* Register variable[6]: Once String constant */
262 if (once_value_15
!= NIT_NULL
) variable
[6] = once_value_15
;
264 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" ; "), TAG_Int(3)) /*new String*/;
265 once_value_15
= variable
[6];
267 /* Register variable[6]: Result */
268 /* Ensure var variable[6]: super-string element*/
269 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
270 /* Register variable[6]: Result */
271 variable
[6] = ATTR_control_flow___VariableContext____dico( variable
[4] /*x*/) /*VariableContext::_dico*/;
272 /* Register variable[7]: Once String constant */
273 if (once_value_16
!= NIT_NULL
) variable
[7] = once_value_16
;
275 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
276 once_value_16
= variable
[7];
278 /* Register variable[7]: Result */
279 /* Register variable[6]: Result */
280 variable
[6] = CALL_string___Collection___join(variable
[6])(variable
[6], variable
[7]) /*Collection::join*/;
281 /* Ensure var variable[6]: super-string element*/
282 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
283 /* Register variable[6]: Once String constant */
284 if (once_value_17
!= NIT_NULL
) variable
[6] = once_value_17
;
286 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
287 once_value_17
= variable
[6];
289 /* Register variable[6]: Result */
290 /* Ensure var variable[6]: super-string element*/
291 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
292 /* Register variable[5]: Result */
293 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
294 CALL_file___Object___print(variable
[0])(variable
[0], variable
[5]) /*Object::print*/;
295 /* Register variable[5]: Local variable */
296 variable
[5] = variable
[4] /*x*/;
297 /* Register variable[6]: Result */
298 variable
[6] = TAG_Bool(( variable
[5] /*x0*/==NIT_NULL
) || VAL_ISA( variable
[5] /*x0*/, COLOR_SubVariableContext
, ID_SubVariableContext
)) /*cast SubVariableContext*/;
299 if (UNTAG_Bool(variable
[6])) { /*if*/
300 /* Register variable[6]: Result */
301 variable
[6] = CALL_control_flow___SubVariableContext___prev( variable
[5] /*x0*/)( variable
[5] /*x0*/) /*SubVariableContext::prev*/;
302 variable
[4] = variable
[6] /*x=*/;
306 continue_11
: while(0);
310 return_label8
: while(false);
311 tracehead
= trace
.prev
;
314 val_t
control_flow___VariableContext___stype(val_t self
, val_t param0
) {
315 struct trace_t trace
= {NULL
, NULL
, 65, LOCATE_control_flow___VariableContext___stype
};
317 struct WBT_
**closurevariable
= NULL
;
318 trace
.prev
= tracehead
; tracehead
= &trace
;
319 trace
.file
= LOCATE_control_flow
;
320 /* Register variable[0]: Local variable */
322 /* Register variable[1]: Local variable */
323 variable
[1] = param0
;
324 /* Register variable[2]: Method return value and escape marker */
325 /* Register variable[3]: Result */
326 variable
[3] = ATTR_control_flow___VariableContext____stypes(variable
[0]) /*VariableContext::_stypes*/;
327 /* Register variable[3]: Result */
328 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*v*/) /*MapRead::has_key*/;
329 if (UNTAG_Bool(variable
[3])) { /*if*/
330 /* Register variable[3]: Result */
331 variable
[3] = ATTR_control_flow___VariableContext____stypes(variable
[0]) /*VariableContext::_stypes*/;
332 /* Register variable[3]: Result */
333 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*v*/) /*MapRead::[]*/;
334 variable
[2] = variable
[3];
337 /* Register variable[3]: Result */
338 variable
[3] = CALL_syntax_base___Variable___stype( variable
[1] /*v*/)( variable
[1] /*v*/) /*Variable::stype*/;
339 variable
[2] = variable
[3];
342 return_label18
: while(false);
343 tracehead
= trace
.prev
;
346 void control_flow___VariableContext___stype__eq(val_t self
, val_t param0
, val_t param1
) {
347 struct trace_t trace
= {NULL
, NULL
, 76, LOCATE_control_flow___VariableContext___stype__eq
};
349 struct WBT_
**closurevariable
= NULL
;
350 trace
.prev
= tracehead
; tracehead
= &trace
;
351 trace
.file
= LOCATE_control_flow
;
352 /* Register variable[0]: Local variable */
354 /* Register variable[1]: Local variable */
355 variable
[1] = param0
;
356 /* Register variable[2]: Local variable */
357 variable
[2] = param1
;
358 /* Register variable[3]: Method return value and escape marker */
359 /* Register variable[4]: Result */
360 variable
[4] = ATTR_control_flow___VariableContext____stypes(variable
[0]) /*VariableContext::_stypes*/;
361 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], variable
[1] /*v*/, variable
[2] /*t*/) /*Map::[]=*/;
362 return_label19
: while(false);
363 tracehead
= trace
.prev
;
366 val_t
control_flow___VariableContext___sub(val_t self
, val_t param0
) {
367 struct trace_t trace
= {NULL
, NULL
, 92, LOCATE_control_flow___VariableContext___sub
};
369 struct WBT_
**closurevariable
= NULL
;
370 trace
.prev
= tracehead
; tracehead
= &trace
;
371 trace
.file
= LOCATE_control_flow
;
372 /* Register variable[0]: Local variable */
374 /* Register variable[1]: Local variable */
375 variable
[1] = param0
;
376 /* Register variable[2]: Method return value and escape marker */
377 /* Register variable[3]: Result */
378 variable
[3] = NEW_SubVariableContext_control_flow___SubVariableContext___with_prev(variable
[0], variable
[1] /*node*/) /*new SubVariableContext*/;
379 variable
[2] = variable
[3];
381 return_label20
: while(false);
382 tracehead
= trace
.prev
;
385 val_t
control_flow___VariableContext___sub_with(val_t self
, val_t param0
, val_t param1
, val_t param2
) {
386 struct trace_t trace
= {NULL
, NULL
, 98, LOCATE_control_flow___VariableContext___sub_with
};
388 struct WBT_
**closurevariable
= NULL
;
389 trace
.prev
= tracehead
; tracehead
= &trace
;
390 trace
.file
= LOCATE_control_flow
;
391 /* Register variable[0]: Local variable */
393 /* Register variable[1]: Local variable */
394 variable
[1] = param0
;
395 /* Register variable[2]: Local variable */
396 variable
[2] = param1
;
397 /* Register variable[3]: Local variable */
398 variable
[3] = param2
;
399 /* Register variable[4]: Method return value and escape marker */
400 /* Register variable[5]: Local variable */
401 /* Register variable[6]: Result */
402 variable
[6] = CALL_control_flow___VariableContext___sub(variable
[0])(variable
[0], variable
[1] /*node*/) /*VariableContext::sub*/;
403 variable
[5] = variable
[6];
404 CALL_control_flow___VariableContext___stype__eq( variable
[5] /*ctx*/)( variable
[5] /*ctx*/, variable
[2] /*v*/, variable
[3] /*t*/) /*VariableContext::stype=*/;
405 variable
[4] = variable
[5] /*ctx*/;
407 return_label21
: while(false);
408 tracehead
= trace
.prev
;
411 val_t
control_flow___VariableContext___node(val_t self
) {
412 struct trace_t trace
= {NULL
, NULL
, 109, LOCATE_control_flow___VariableContext___node
};
413 val_t
*variable
= NULL
;
414 struct WBT_
**closurevariable
= NULL
;
415 trace
.prev
= tracehead
; tracehead
= &trace
;
416 trace
.file
= LOCATE_control_flow
;
417 tracehead
= trace
.prev
;
418 return ATTR_control_flow___VariableContext____node( self
) /*VariableContext::_node*/;
420 void control_flow___VariableContext___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
421 struct trace_t trace
= {NULL
, NULL
, 112, LOCATE_control_flow___VariableContext___init
};
423 struct WBT_
**closurevariable
= NULL
;
424 trace
.prev
= tracehead
; tracehead
= &trace
;
425 trace
.file
= LOCATE_control_flow
;
426 /* Register variable[0]: Local variable */
428 /* Register variable[1]: Local variable */
429 variable
[1] = param0
;
430 /* Register variable[2]: Local variable */
431 variable
[2] = param1
;
432 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_VariableContext
].i
]) return;
433 /* Register variable[3]: Method return value and escape marker */
434 ATTR_control_flow___VariableContext____visitor(variable
[0]) /*VariableContext::_visitor*/ = variable
[1] /*visitor*/;
435 ATTR_control_flow___VariableContext____node(variable
[0]) /*VariableContext::_node*/ = variable
[2] /*node*/;
436 /* Register variable[4]: Result */
437 variable
[4] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Symbol, Variable]*/;
438 ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/ = variable
[4];
439 return_label22
: while(false);
440 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_VariableContext
].i
] = 1;
441 tracehead
= trace
.prev
;
444 val_t
control_flow___VariableContext___unreash(val_t self
) {
445 struct trace_t trace
= {NULL
, NULL
, 119, LOCATE_control_flow___VariableContext___unreash
};
446 val_t
*variable
= NULL
;
447 struct WBT_
**closurevariable
= NULL
;
448 trace
.prev
= tracehead
; tracehead
= &trace
;
449 trace
.file
= LOCATE_control_flow
;
450 tracehead
= trace
.prev
;
451 return ATTR_control_flow___VariableContext____unreash( self
) /*VariableContext::_unreash*/;
453 void control_flow___VariableContext___unreash__eq(val_t self
, val_t param0
) {
454 struct trace_t trace
= {NULL
, NULL
, 119, LOCATE_control_flow___VariableContext___unreash__eq
};
455 val_t
*variable
= NULL
;
456 struct WBT_
**closurevariable
= NULL
;
457 trace
.prev
= tracehead
; tracehead
= &trace
;
458 trace
.file
= LOCATE_control_flow
;
459 ATTR_control_flow___VariableContext____unreash( self
) /*VariableContext::_unreash*/ = param0
;
460 tracehead
= trace
.prev
;
463 val_t
control_flow___VariableContext___already_unreash(val_t self
) {
464 struct trace_t trace
= {NULL
, NULL
, 122, LOCATE_control_flow___VariableContext___already_unreash
};
465 val_t
*variable
= NULL
;
466 struct WBT_
**closurevariable
= NULL
;
467 trace
.prev
= tracehead
; tracehead
= &trace
;
468 trace
.file
= LOCATE_control_flow
;
469 tracehead
= trace
.prev
;
470 return ATTR_control_flow___VariableContext____already_unreash( self
) /*VariableContext::_already_unreash*/;
472 void control_flow___VariableContext___already_unreash__eq(val_t self
, val_t param0
) {
473 struct trace_t trace
= {NULL
, NULL
, 122, LOCATE_control_flow___VariableContext___already_unreash__eq
};
474 val_t
*variable
= NULL
;
475 struct WBT_
**closurevariable
= NULL
;
476 trace
.prev
= tracehead
; tracehead
= &trace
;
477 trace
.file
= LOCATE_control_flow
;
478 ATTR_control_flow___VariableContext____already_unreash( self
) /*VariableContext::_already_unreash*/ = param0
;
479 tracehead
= trace
.prev
;
482 val_t
control_flow___VariableContext___set_variables(val_t self
) {
483 struct trace_t trace
= {NULL
, NULL
, 126, LOCATE_control_flow___VariableContext___set_variables
};
484 val_t
*variable
= NULL
;
485 struct WBT_
**closurevariable
= NULL
;
486 trace
.prev
= tracehead
; tracehead
= &trace
;
487 trace
.file
= LOCATE_control_flow
;
488 tracehead
= trace
.prev
;
489 return ATTR_control_flow___VariableContext____set_variables( self
) /*VariableContext::_set_variables*/;
491 val_t
control_flow___VariableContext___is_set(val_t self
, val_t param0
) {
492 struct trace_t trace
= {NULL
, NULL
, 129, LOCATE_control_flow___VariableContext___is_set
};
494 struct WBT_
**closurevariable
= NULL
;
495 trace
.prev
= tracehead
; tracehead
= &trace
;
496 trace
.file
= LOCATE_control_flow
;
497 /* Register variable[0]: Local variable */
499 /* Register variable[1]: Local variable */
500 variable
[1] = param0
;
501 /* Register variable[2]: Method return value and escape marker */
502 /* Register variable[3]: Result */
503 variable
[3] = ATTR_control_flow___VariableContext____set_variables(variable
[0]) /*VariableContext::_set_variables*/;
504 /* Register variable[3]: Result */
505 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*v*/) /*HashSet::has*/;
506 variable
[2] = variable
[3];
508 return_label23
: while(false);
509 tracehead
= trace
.prev
;
512 void control_flow___VariableContext___merge(val_t self
, val_t param0
) {
513 struct trace_t trace
= {NULL
, NULL
, 135, LOCATE_control_flow___VariableContext___merge
};
515 struct WBT_
**closurevariable
= NULL
;
516 trace
.prev
= tracehead
; tracehead
= &trace
;
517 trace
.file
= LOCATE_control_flow
;
518 /* Register variable[0]: Local variable */
520 /* Register variable[1]: Local variable */
521 variable
[1] = param0
;
522 /* Register variable[2]: Method return value and escape marker */
523 /* Register variable[3]: Result */
524 variable
[3] = CALL_control_flow___VariableContext___unreash( variable
[1] /*ctx*/)( variable
[1] /*ctx*/) /*VariableContext::unreash*/;
525 if (UNTAG_Bool(variable
[3])) { /*if*/
526 CALL_control_flow___VariableContext___unreash__eq(variable
[0])(variable
[0], TAG_Bool(true)) /*VariableContext::unreash=*/;
527 /* Register variable[3]: Result */
528 variable
[3] = CALL_control_flow___VariableContext___already_unreash( variable
[1] /*ctx*/)( variable
[1] /*ctx*/) /*VariableContext::already_unreash*/;
529 if (UNTAG_Bool(variable
[3])) { /*if*/
530 CALL_control_flow___VariableContext___already_unreash__eq(variable
[0])(variable
[0], TAG_Bool(true)) /*VariableContext::already_unreash=*/;
534 /* Register variable[3]: Result */
535 variable
[3] = ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/;
536 /* Register variable[3]: For iterator */
537 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
538 while (true) { /*for*/
539 /* Register variable[4]: For 'is_ok' result */
540 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
541 if (!UNTAG_Bool(variable
[4])) break; /*for*/
542 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/ /* Ensure var: For item*/;
543 /* Register variable[5]: Local variable */
544 variable
[5] = variable
[4];
545 /* Register variable[6]: Result */
546 variable
[6] = CALL_control_flow___VariableContext___is_set(variable
[0])(variable
[0], variable
[5] /*v*/) /*VariableContext::is_set*/;
547 variable
[6] = TAG_Bool(!UNTAG_Bool(variable
[6])) /* Ensure var: Left 'and' operand*/;
548 if (UNTAG_Bool(variable
[6])) { /* and */
549 /* Register variable[6]: Result */
550 variable
[6] = CALL_control_flow___VariableContext___is_set( variable
[1] /*ctx*/)( variable
[1] /*ctx*/, variable
[5] /*v*/) /*VariableContext::is_set*/;
552 /* Register variable[6]: Result */
553 if (UNTAG_Bool(variable
[6])) { /*if*/
554 CALL_control_flow___VariableContext___mark_is_set(variable
[0])(variable
[0], variable
[5] /*v*/) /*VariableContext::mark_is_set*/;
556 /* Register variable[6]: Local variable */
557 /* Register variable[7]: Result */
558 variable
[7] = CALL_control_flow___VariableContext___stype(variable
[0])(variable
[0], variable
[5] /*v*/) /*VariableContext::stype*/;
559 variable
[6] = variable
[7];
560 /* Register variable[7]: Local variable */
561 /* Register variable[8]: Result */
562 variable
[8] = CALL_control_flow___VariableContext___stype( variable
[1] /*ctx*/)( variable
[1] /*ctx*/, variable
[5] /*v*/) /*VariableContext::stype*/;
563 variable
[7] = variable
[8];
564 /* Register variable[8]: Result */
565 variable
[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[7] /*s1*/ == variable
[6] /*s*/) || (( variable
[7] /*s1*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[7] /*s1*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[7] /*s1*/, variable
[6] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[7] /*s1*/)( variable
[7] /*s1*/, variable
[6] /*s*/) /*Object::==*/)))))));
566 if (UNTAG_Bool(variable
[8])) { /*if*/
567 CALL_control_flow___VariableContext___stype__eq(variable
[0])(variable
[0], variable
[5] /*v*/, variable
[7] /*s1*/) /*VariableContext::stype=*/;
569 continue_25
: while(0);
570 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
573 return_label24
: while(false);
574 tracehead
= trace
.prev
;
577 void control_flow___VariableContext___merge2(val_t self
, val_t param0
, val_t param1
, val_t param2
) {
578 struct trace_t trace
= {NULL
, NULL
, 153, LOCATE_control_flow___VariableContext___merge2
};
580 struct WBT_
**closurevariable
= NULL
;
581 trace
.prev
= tracehead
; tracehead
= &trace
;
582 trace
.file
= LOCATE_control_flow
;
583 /* Register variable[0]: Local variable */
585 /* Register variable[1]: Local variable */
586 variable
[1] = param0
;
587 /* Register variable[2]: Local variable */
588 variable
[2] = param1
;
589 /* Register variable[3]: Local variable */
590 variable
[3] = param2
;
591 /* Register variable[4]: Method return value and escape marker */
592 /* Register variable[5]: Result */
593 variable
[5] = CALL_control_flow___VariableContext___unreash( variable
[1] /*ctx1*/)( variable
[1] /*ctx1*/) /*VariableContext::unreash*/;
594 if (UNTAG_Bool(variable
[5])) { /*if*/
595 CALL_control_flow___VariableContext___merge(variable
[0])(variable
[0], variable
[2] /*ctx2*/) /*VariableContext::merge*/;
597 /* Register variable[5]: Result */
598 variable
[5] = CALL_control_flow___VariableContext___unreash( variable
[2] /*ctx2*/)( variable
[2] /*ctx2*/) /*VariableContext::unreash*/;
599 if (UNTAG_Bool(variable
[5])) { /*if*/
600 CALL_control_flow___VariableContext___merge(variable
[0])(variable
[0], variable
[1] /*ctx1*/) /*VariableContext::merge*/;
603 /* Register variable[5]: Result */
604 variable
[5] = ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/;
605 /* Register variable[5]: For iterator */
606 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*Collection::iterator*/;
607 while (true) { /*for*/
608 /* Register variable[6]: For 'is_ok' result */
609 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*Iterator::is_ok*/;
610 if (!UNTAG_Bool(variable
[6])) break; /*for*/
611 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*Iterator::item*/ /* Ensure var: For item*/;
612 /* Register variable[7]: Local variable */
613 variable
[7] = variable
[6];
614 /* Register variable[8]: Result */
615 variable
[8] = CALL_control_flow___VariableContext___is_set(variable
[0])(variable
[0], variable
[7] /*v*/) /*VariableContext::is_set*/;
616 variable
[8] = TAG_Bool(!UNTAG_Bool(variable
[8])) /* Ensure var: Left 'and' operand*/;
617 if (UNTAG_Bool(variable
[8])) { /* and */
618 /* Register variable[8]: Result */
619 variable
[8] = CALL_control_flow___VariableContext___is_set( variable
[1] /*ctx1*/)( variable
[1] /*ctx1*/, variable
[7] /*v*/) /*VariableContext::is_set*/;
621 /* Register variable[8]: Result */
622 /* Ensure var variable[8]: Left 'and' operand*/
623 if (UNTAG_Bool(variable
[8])) { /* and */
624 /* Register variable[8]: Result */
625 variable
[8] = CALL_control_flow___VariableContext___is_set( variable
[2] /*ctx2*/)( variable
[2] /*ctx2*/, variable
[7] /*v*/) /*VariableContext::is_set*/;
627 /* Register variable[8]: Result */
628 if (UNTAG_Bool(variable
[8])) { /*if*/
629 CALL_control_flow___VariableContext___mark_is_set(variable
[0])(variable
[0], variable
[7] /*v*/) /*VariableContext::mark_is_set*/;
631 /* Register variable[8]: Local variable */
632 /* Register variable[9]: Result */
633 variable
[9] = CALL_control_flow___VariableContext___stype(variable
[0])(variable
[0], variable
[7] /*v*/) /*VariableContext::stype*/;
634 variable
[8] = variable
[9];
635 /* Register variable[9]: Local variable */
636 /* Register variable[10]: Result */
637 variable
[10] = CALL_control_flow___VariableContext___stype( variable
[1] /*ctx1*/)( variable
[1] /*ctx1*/, variable
[7] /*v*/) /*VariableContext::stype*/;
638 variable
[9] = variable
[10];
639 /* Register variable[10]: Local variable */
640 /* Register variable[11]: Result */
641 variable
[11] = CALL_control_flow___VariableContext___stype( variable
[2] /*ctx2*/)( variable
[2] /*ctx2*/, variable
[7] /*v*/) /*VariableContext::stype*/;
642 variable
[10] = variable
[11];
643 /* Register variable[11]: Result */
644 variable
[11] = TAG_Bool(( variable
[9] /*s1*/ == variable
[8] /*s*/) || (( variable
[9] /*s1*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*s1*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*s1*/, variable
[8] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*s1*/)( variable
[9] /*s1*/, variable
[8] /*s*/) /*Object::==*/)))));
645 /* Ensure var variable[11]: Left 'and' operand*/
646 if (UNTAG_Bool(variable
[11])) { /* and */
647 /* Register variable[11]: Result */
648 variable
[11] = TAG_Bool(( variable
[10] /*s2*/ == variable
[8] /*s*/) || (( variable
[10] /*s2*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*s2*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*s2*/, variable
[8] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*s2*/)( variable
[10] /*s2*/, variable
[8] /*s*/) /*Object::==*/)))));
650 /* Register variable[11]: Result */
651 if (UNTAG_Bool(variable
[11])) { /*if*/
653 /* Register variable[11]: Result */
654 variable
[11] = TAG_Bool(( variable
[9] /*s1*/ == variable
[10] /*s2*/) || (( variable
[9] /*s1*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*s1*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*s1*/, variable
[10] /*s2*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*s1*/)( variable
[9] /*s1*/, variable
[10] /*s2*/) /*Object::==*/)))));
655 if (UNTAG_Bool(variable
[11])) { /*if*/
656 CALL_control_flow___VariableContext___stype__eq(variable
[0])(variable
[0], variable
[7] /*v*/, variable
[9] /*s1*/) /*VariableContext::stype=*/;
658 /* Register variable[11]: Result */
659 variable
[11] = CALL_static_type___MMType_____l( variable
[9] /*s1*/)( variable
[9] /*s1*/, variable
[10] /*s2*/) /*MMType::<*/;
660 if (UNTAG_Bool(variable
[11])) { /*if*/
661 CALL_control_flow___VariableContext___stype__eq(variable
[0])(variable
[0], variable
[7] /*v*/, variable
[10] /*s2*/) /*VariableContext::stype=*/;
663 /* Register variable[11]: Result */
664 variable
[11] = CALL_static_type___MMType_____l( variable
[10] /*s2*/)( variable
[10] /*s2*/, variable
[9] /*s1*/) /*MMType::<*/;
665 if (UNTAG_Bool(variable
[11])) { /*if*/
666 CALL_control_flow___VariableContext___stype__eq(variable
[0])(variable
[0], variable
[7] /*v*/, variable
[9] /*s1*/) /*VariableContext::stype=*/;
668 /* Register variable[11]: Result */
669 variable
[11] = CALL_control_flow___VariableContext___stype( variable
[3] /*basectx*/)( variable
[3] /*basectx*/, variable
[7] /*v*/) /*VariableContext::stype*/;
670 CALL_control_flow___VariableContext___stype__eq(variable
[0])(variable
[0], variable
[7] /*v*/, variable
[11]) /*VariableContext::stype=*/;
675 continue_27
: while(0);
676 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*Iterator::next*/;
679 return_label26
: while(false);
680 tracehead
= trace
.prev
;
683 void control_flow___RootVariableContext___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
684 struct trace_t trace
= {NULL
, NULL
, 198, LOCATE_control_flow___RootVariableContext___init
};
686 struct WBT_
**closurevariable
= NULL
;
687 trace
.prev
= tracehead
; tracehead
= &trace
;
688 trace
.file
= LOCATE_control_flow
;
689 /* Register variable[0]: Local variable */
691 /* Register variable[1]: Local variable */
692 variable
[1] = param0
;
693 /* Register variable[2]: Local variable */
694 variable
[2] = param1
;
695 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_RootVariableContext
].i
]) return;
696 /* Register variable[3]: Method return value and escape marker */
697 CALL_control_flow___VariableContext___init(variable
[0])(variable
[0], variable
[1] /*visitor*/, variable
[2] /*node*/, init_table
/*YYY*/) /*VariableContext::init*/;
698 /* Register variable[4]: Result */
699 variable
[4] = NEW_HashSet_hash___HashSet___init() /*new HashSet[Variable]*/;
700 ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/ = variable
[4];
701 return_label28
: while(false);
702 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_RootVariableContext
].i
] = 1;
703 tracehead
= trace
.prev
;
706 val_t
control_flow___SubVariableContext_____bra(val_t self
, val_t param0
) {
707 struct trace_t trace
= {NULL
, NULL
, 209, LOCATE_control_flow___SubVariableContext_____bra
};
709 struct WBT_
**closurevariable
= NULL
;
710 trace
.prev
= tracehead
; tracehead
= &trace
;
711 trace
.file
= LOCATE_control_flow
;
712 /* Register variable[0]: Local variable */
714 /* Register variable[1]: Local variable */
715 variable
[1] = param0
;
716 /* Register variable[2]: Method return value and escape marker */
717 /* Register variable[3]: Result */
718 variable
[3] = ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/;
719 /* Register variable[3]: Result */
720 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*s*/) /*MapRead::has_key*/;
721 if (UNTAG_Bool(variable
[3])) { /*if*/
722 /* Register variable[3]: Result */
723 variable
[3] = ATTR_control_flow___VariableContext____dico(variable
[0]) /*VariableContext::_dico*/;
724 /* Register variable[3]: Result */
725 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*MapRead::[]*/;
726 variable
[2] = variable
[3];
729 /* Register variable[3]: Result */
730 variable
[3] = CALL_control_flow___SubVariableContext___prev(variable
[0])(variable
[0]) /*SubVariableContext::prev*/;
731 /* Register variable[3]: Result */
732 variable
[3] = CALL_control_flow___VariableContext_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*VariableContext::[]*/;
733 variable
[2] = variable
[3];
736 return_label29
: while(false);
737 tracehead
= trace
.prev
;
740 val_t
control_flow___SubVariableContext___stype(val_t self
, val_t param0
) {
741 struct trace_t trace
= {NULL
, NULL
, 218, LOCATE_control_flow___SubVariableContext___stype
};
743 struct WBT_
**closurevariable
= NULL
;
744 trace
.prev
= tracehead
; tracehead
= &trace
;
745 trace
.file
= LOCATE_control_flow
;
746 /* Register variable[0]: Local variable */
748 /* Register variable[1]: Local variable */
749 variable
[1] = param0
;
750 /* Register variable[2]: Method return value and escape marker */
751 /* Register variable[3]: Result */
752 variable
[3] = ATTR_control_flow___VariableContext____stypes(variable
[0]) /*VariableContext::_stypes*/;
753 /* Register variable[3]: Result */
754 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*v*/) /*MapRead::has_key*/;
755 if (UNTAG_Bool(variable
[3])) { /*if*/
756 /* Register variable[3]: Result */
757 variable
[3] = ATTR_control_flow___VariableContext____stypes(variable
[0]) /*VariableContext::_stypes*/;
758 /* Register variable[3]: Result */
759 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*v*/) /*MapRead::[]*/;
760 variable
[2] = variable
[3];
763 /* Register variable[3]: Result */
764 variable
[3] = CALL_control_flow___SubVariableContext___prev(variable
[0])(variable
[0]) /*SubVariableContext::prev*/;
765 /* Register variable[3]: Result */
766 variable
[3] = CALL_control_flow___VariableContext___stype(variable
[3])(variable
[3], variable
[1] /*v*/) /*VariableContext::stype*/;
767 variable
[2] = variable
[3];
770 return_label30
: while(false);
771 tracehead
= trace
.prev
;
774 val_t
control_flow___SubVariableContext___is_set(val_t self
, val_t param0
) {
775 struct trace_t trace
= {NULL
, NULL
, 234, LOCATE_control_flow___SubVariableContext___is_set
};
777 struct WBT_
**closurevariable
= NULL
;
778 trace
.prev
= tracehead
; tracehead
= &trace
;
779 trace
.file
= LOCATE_control_flow
;
780 /* Register variable[0]: Local variable */
782 /* Register variable[1]: Local variable */
783 variable
[1] = param0
;
784 /* Register variable[2]: Method return value and escape marker */
785 /* Register variable[3]: Result */
786 variable
[3] = ATTR_control_flow___VariableContext____set_variables(variable
[0]) /*VariableContext::_set_variables*/;
787 /* Register variable[3]: Result */
788 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*v*/) /*HashSet::has*/;
789 /* Ensure var variable[3]: Left 'or' operand*/
790 if (!UNTAG_Bool(variable
[3])) { /* or */
791 /* Register variable[3]: Result */
792 variable
[3] = ATTR_control_flow___SubVariableContext____prev(variable
[0]) /*SubVariableContext::_prev*/;
793 /* Register variable[3]: Result */
794 variable
[3] = CALL_control_flow___VariableContext___is_set(variable
[3])(variable
[3], variable
[1] /*v*/) /*VariableContext::is_set*/;
796 /* Register variable[3]: Result */
797 variable
[2] = variable
[3];
799 return_label31
: while(false);
800 tracehead
= trace
.prev
;
803 val_t
control_flow___SubVariableContext___prev(val_t self
) {
804 struct trace_t trace
= {NULL
, NULL
, 207, LOCATE_control_flow___SubVariableContext___prev
};
805 val_t
*variable
= NULL
;
806 struct WBT_
**closurevariable
= NULL
;
807 trace
.prev
= tracehead
; tracehead
= &trace
;
808 trace
.file
= LOCATE_control_flow
;
809 tracehead
= trace
.prev
;
810 return ATTR_control_flow___SubVariableContext____prev( self
) /*SubVariableContext::_prev*/;
812 void control_flow___SubVariableContext___with_prev(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
813 struct trace_t trace
= {NULL
, NULL
, 227, LOCATE_control_flow___SubVariableContext___with_prev
};
815 struct WBT_
**closurevariable
= NULL
;
816 trace
.prev
= tracehead
; tracehead
= &trace
;
817 trace
.file
= LOCATE_control_flow
;
818 /* Register variable[0]: Local variable */
820 /* Register variable[1]: Local variable */
821 variable
[1] = param0
;
822 /* Register variable[2]: Local variable */
823 variable
[2] = param1
;
824 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_SubVariableContext
].i
]) return;
825 /* Register variable[3]: Method return value and escape marker */
826 /* Register variable[4]: Result */
827 variable
[4] = ATTR_control_flow___VariableContext____visitor( variable
[1] /*p*/) /*VariableContext::_visitor*/;
828 CALL_control_flow___VariableContext___init(variable
[0])(variable
[0], variable
[4], variable
[2] /*node*/, init_table
/*YYY*/) /*VariableContext::init*/;
829 ATTR_control_flow___SubVariableContext____prev(variable
[0]) /*SubVariableContext::_prev*/ = variable
[1] /*p*/;
830 /* Register variable[4]: Result */
831 variable
[4] = ATTR_control_flow___VariableContext____all_variables( variable
[1] /*p*/) /*VariableContext::_all_variables*/;
832 ATTR_control_flow___VariableContext____all_variables(variable
[0]) /*VariableContext::_all_variables*/ = variable
[4];
833 return_label32
: while(false);
834 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_SubVariableContext
].i
] = 1;
835 tracehead
= trace
.prev
;
838 val_t
control_flow___Variable___must_be_set(val_t self
) {
839 struct trace_t trace
= {NULL
, NULL
, 241, LOCATE_control_flow___Variable___must_be_set
};
841 struct WBT_
**closurevariable
= NULL
;
842 trace
.prev
= tracehead
; tracehead
= &trace
;
843 trace
.file
= LOCATE_control_flow
;
844 /* Register variable[0]: Local variable */
846 /* Register variable[1]: Method return value and escape marker */
847 variable
[1] = TAG_Bool(false);
849 return_label33
: while(false);
850 tracehead
= trace
.prev
;
853 val_t
control_flow___VarVariable___must_be_set(val_t self
) {
854 struct trace_t trace
= {NULL
, NULL
, 246, LOCATE_control_flow___VarVariable___must_be_set
};
856 struct WBT_
**closurevariable
= NULL
;
857 trace
.prev
= tracehead
; tracehead
= &trace
;
858 trace
.file
= LOCATE_control_flow
;
859 /* Register variable[0]: Local variable */
861 /* Register variable[1]: Method return value and escape marker */
862 variable
[1] = TAG_Bool(true);
864 return_label34
: while(false);
865 tracehead
= trace
.prev
;