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
};
8 trace
.prev
= tracehead
; tracehead
= &trace
;
9 trace
.file
= LOCATE_control_flow
;
11 variable2
= NEW_ControlFlowVisitor_control_flow___ControlFlowVisitor___init( variable0
/*tc*/, self
); /*new ControlFlowVisitor*/
12 variable1
= variable2
;
13 variable2
= ((syntax_base___MMSrcModule___node_t
)CALL( self
,COLOR_syntax_base___MMSrcModule___node
))( self
) /*MMSrcModule::node*/;
14 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable1
/*tv*/,COLOR_parser_prod___Visitor___visit
))( variable1
/*tv*/, variable2
) /*ControlFlowVisitor::visit*/;
15 tracehead
= trace
.prev
;
18 void control_flow___ControlFlowVisitor___visit(val_t self
, val_t param0
) {
19 struct trace_t trace
= {NULL
, NULL
, 38, LOCATE_control_flow___ControlFlowVisitor___visit
};
22 trace
.prev
= tracehead
; tracehead
= &trace
;
23 trace
.file
= LOCATE_control_flow
;
25 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*n*/ == NIT_NULL
/*null*/) || (( variable0
/*n*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*n*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*n*/,COLOR_kernel___Object_____eqeq
))( variable0
/*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
26 if (UNTAG_Bool(variable1
)) { /*if*/
27 ((control_flow___PNode___accept_control_flow_t
)CALL( variable0
/*n*/,COLOR_control_flow___PNode___accept_control_flow
))( variable0
/*n*/, self
) /*PNode::accept_control_flow*/;
29 tracehead
= trace
.prev
;
32 val_t
control_flow___ControlFlowVisitor___once_count(val_t self
) {
33 struct trace_t trace
= {NULL
, NULL
, 43, LOCATE_control_flow___ControlFlowVisitor___once_count
};
34 trace
.prev
= tracehead
; tracehead
= &trace
;
35 trace
.file
= LOCATE_control_flow
;
36 tracehead
= trace
.prev
;
37 return ATTR_control_flow___ControlFlowVisitor____once_count( self
) /*ControlFlowVisitor::_once_count*/;
39 void control_flow___ControlFlowVisitor___once_count__eq(val_t self
, val_t param0
) {
40 struct trace_t trace
= {NULL
, NULL
, 43, LOCATE_control_flow___ControlFlowVisitor___once_count__eq
};
41 trace
.prev
= tracehead
; tracehead
= &trace
;
42 trace
.file
= LOCATE_control_flow
;
43 ATTR_control_flow___ControlFlowVisitor____once_count( self
) /*ControlFlowVisitor::_once_count*/ = param0
;
44 tracehead
= trace
.prev
;
47 val_t
control_flow___ControlFlowVisitor___control_flow_ctx(val_t self
) {
48 struct trace_t trace
= {NULL
, NULL
, 46, LOCATE_control_flow___ControlFlowVisitor___control_flow_ctx
};
49 trace
.prev
= tracehead
; tracehead
= &trace
;
50 trace
.file
= LOCATE_control_flow
;
51 tracehead
= trace
.prev
;
52 return ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self
) /*ControlFlowVisitor::_control_flow_ctx*/;
54 void control_flow___ControlFlowVisitor___control_flow_ctx__eq(val_t self
, val_t param0
) {
55 struct trace_t trace
= {NULL
, NULL
, 46, LOCATE_control_flow___ControlFlowVisitor___control_flow_ctx__eq
};
56 trace
.prev
= tracehead
; tracehead
= &trace
;
57 trace
.file
= LOCATE_control_flow
;
58 ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self
) /*ControlFlowVisitor::_control_flow_ctx*/ = param0
;
59 tracehead
= trace
.prev
;
62 void control_flow___ControlFlowVisitor___check_is_set(val_t self
, val_t param0
, val_t param1
) {
63 struct trace_t trace
= {NULL
, NULL
, 49, LOCATE_control_flow___ControlFlowVisitor___check_is_set
};
72 trace
.prev
= tracehead
; tracehead
= &trace
;
73 trace
.file
= LOCATE_control_flow
;
76 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( self
,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( self
) /*ControlFlowVisitor::control_flow_ctx*/;
77 variable2
= ((control_flow___ControlFlowContext___is_set_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___is_set
))(variable2
, variable1
/*v*/) /*ControlFlowContext::is_set*/;
78 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2
)))) { /*if*/
79 variable2
= NEW_String_string___String___init(); /*new String*/
80 variable3
= NEW_String_string___String___with_native(BOX_NativeString("Error: variable '"), TAG_Int(17)); /*new String*/
81 variable4
= variable3
;
82 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable4
) /*String::append*/;
83 variable5
= variable1
/*v*/;
84 variable5
= ((string___String___to_s_t
)CALL(variable5
,COLOR_string___Object___to_s
))(variable5
) /*String::to_s*/;
85 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable5
) /*String::append*/;
86 variable6
= NEW_String_string___String___with_native(BOX_NativeString("' is possibly unset."), TAG_Int(20)); /*new String*/
87 variable7
= variable6
;
88 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable7
) /*String::append*/;
89 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( self
,COLOR_syntax_base___AbsSyntaxVisitor___error
))( self
, variable0
/*n*/, variable2
) /*AbsSyntaxVisitor::error*/;
90 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( self
,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( self
) /*ControlFlowVisitor::control_flow_ctx*/;
91 variable2
= variable3
;
92 while (true) { /*while*/
93 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*cfc*/ == NIT_NULL
/*null*/) || (( variable2
/*cfc*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*cfc*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*cfc*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*cfc*/,COLOR_kernel___Object_____eqeq
))( variable2
/*cfc*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
94 if (!UNTAG_Bool(variable3
)) break; /* while*/
95 variable3
= NEW_String_string___String___with_native(BOX_NativeString("cfc: "), TAG_Int(5)); /*new String*/
96 variable4
= ((control_flow___ControlFlowContext___set_variables_t
)CALL( variable2
/*cfc*/,COLOR_control_flow___ControlFlowContext___set_variables
))( variable2
/*cfc*/) /*ControlFlowContext::set_variables*/;
97 variable5
= NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
98 variable4
= ((string___Collection___join_t
)CALL(variable4
,COLOR_string___Collection___join
))(variable4
, variable5
) /*Collection::join*/;
99 variable3
= ((string___String_____plus_t
)CALL(variable3
,COLOR_string___String_____plus
))(variable3
, variable4
) /*String::+*/;
100 ((file___Object___print_t
)CALL( self
,COLOR_file___Object___print
))( self
, variable3
) /*Object::print*/;
101 variable3
= ((control_flow___ControlFlowContext___prev_t
)CALL( variable2
/*cfc*/,COLOR_control_flow___ControlFlowContext___prev
))( variable2
/*cfc*/) /*ControlFlowContext::prev*/;
102 variable2
= variable3
/*cfc=*/;
103 continue_3
: while(0);
107 tracehead
= trace
.prev
;
110 void control_flow___ControlFlowVisitor___mark_is_set(val_t self
, val_t param0
) {
111 struct trace_t trace
= {NULL
, NULL
, 61, LOCATE_control_flow___ControlFlowVisitor___mark_is_set
};
114 trace
.prev
= tracehead
; tracehead
= &trace
;
115 trace
.file
= LOCATE_control_flow
;
117 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( self
,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( self
) /*ControlFlowVisitor::control_flow_ctx*/;
118 variable1
= ((control_flow___ControlFlowContext___set_variables_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___set_variables
))(variable1
) /*ControlFlowContext::set_variables*/;
119 ((hash___HashSet___add_t
)CALL(variable1
,COLOR_abstract_collection___SimpleCollection___add
))(variable1
, variable0
/*v*/) /*HashSet::add*/;
120 tracehead
= trace
.prev
;
123 void control_flow___ControlFlowVisitor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
124 struct trace_t trace
= {NULL
, NULL
, 66, LOCATE_control_flow___ControlFlowVisitor___init
};
127 trace
.prev
= tracehead
; tracehead
= &trace
;
128 trace
.file
= LOCATE_control_flow
;
131 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowVisitor
].i
]) return;
132 ((syntax_base___AbsSyntaxVisitor___init_t
)CALL( self
,COLOR_syntax_base___AbsSyntaxVisitor___init
))( self
, param0
, param1
, init_table
/*YYY*/) /*AbsSyntaxVisitor::init*/;
133 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowVisitor
].i
] = 1;
134 tracehead
= trace
.prev
;
137 val_t
control_flow___ControlFlowContext___prev(val_t self
) {
138 struct trace_t trace
= {NULL
, NULL
, 70, LOCATE_control_flow___ControlFlowContext___prev
};
139 trace
.prev
= tracehead
; tracehead
= &trace
;
140 trace
.file
= LOCATE_control_flow
;
141 tracehead
= trace
.prev
;
142 return ATTR_control_flow___ControlFlowContext____prev( self
) /*ControlFlowContext::_prev*/;
144 val_t
control_flow___ControlFlowContext___has_return(val_t self
) {
145 struct trace_t trace
= {NULL
, NULL
, 73, LOCATE_control_flow___ControlFlowContext___has_return
};
146 trace
.prev
= tracehead
; tracehead
= &trace
;
147 trace
.file
= LOCATE_control_flow
;
148 tracehead
= trace
.prev
;
149 return ATTR_control_flow___ControlFlowContext____has_return( self
) /*ControlFlowContext::_has_return*/;
151 void control_flow___ControlFlowContext___has_return__eq(val_t self
, val_t param0
) {
152 struct trace_t trace
= {NULL
, NULL
, 73, LOCATE_control_flow___ControlFlowContext___has_return__eq
};
153 trace
.prev
= tracehead
; tracehead
= &trace
;
154 trace
.file
= LOCATE_control_flow
;
155 ATTR_control_flow___ControlFlowContext____has_return( self
) /*ControlFlowContext::_has_return*/ = param0
;
156 tracehead
= trace
.prev
;
159 val_t
control_flow___ControlFlowContext___unreash(val_t self
) {
160 struct trace_t trace
= {NULL
, NULL
, 76, LOCATE_control_flow___ControlFlowContext___unreash
};
161 trace
.prev
= tracehead
; tracehead
= &trace
;
162 trace
.file
= LOCATE_control_flow
;
163 tracehead
= trace
.prev
;
164 return ATTR_control_flow___ControlFlowContext____unreash( self
) /*ControlFlowContext::_unreash*/;
166 void control_flow___ControlFlowContext___unreash__eq(val_t self
, val_t param0
) {
167 struct trace_t trace
= {NULL
, NULL
, 76, LOCATE_control_flow___ControlFlowContext___unreash__eq
};
168 trace
.prev
= tracehead
; tracehead
= &trace
;
169 trace
.file
= LOCATE_control_flow
;
170 ATTR_control_flow___ControlFlowContext____unreash( self
) /*ControlFlowContext::_unreash*/ = param0
;
171 tracehead
= trace
.prev
;
174 val_t
control_flow___ControlFlowContext___already_unreash(val_t self
) {
175 struct trace_t trace
= {NULL
, NULL
, 79, LOCATE_control_flow___ControlFlowContext___already_unreash
};
176 trace
.prev
= tracehead
; tracehead
= &trace
;
177 trace
.file
= LOCATE_control_flow
;
178 tracehead
= trace
.prev
;
179 return ATTR_control_flow___ControlFlowContext____already_unreash( self
) /*ControlFlowContext::_already_unreash*/;
181 void control_flow___ControlFlowContext___already_unreash__eq(val_t self
, val_t param0
) {
182 struct trace_t trace
= {NULL
, NULL
, 79, LOCATE_control_flow___ControlFlowContext___already_unreash__eq
};
183 trace
.prev
= tracehead
; tracehead
= &trace
;
184 trace
.file
= LOCATE_control_flow
;
185 ATTR_control_flow___ControlFlowContext____already_unreash( self
) /*ControlFlowContext::_already_unreash*/ = param0
;
186 tracehead
= trace
.prev
;
189 val_t
control_flow___ControlFlowContext___base_block(val_t self
) {
190 struct trace_t trace
= {NULL
, NULL
, 83, LOCATE_control_flow___ControlFlowContext___base_block
};
191 trace
.prev
= tracehead
; tracehead
= &trace
;
192 trace
.file
= LOCATE_control_flow
;
193 tracehead
= trace
.prev
;
194 return ATTR_control_flow___ControlFlowContext____base_block( self
) /*ControlFlowContext::_base_block*/;
196 void control_flow___ControlFlowContext___base_block__eq(val_t self
, val_t param0
) {
197 struct trace_t trace
= {NULL
, NULL
, 83, LOCATE_control_flow___ControlFlowContext___base_block__eq
};
198 trace
.prev
= tracehead
; tracehead
= &trace
;
199 trace
.file
= LOCATE_control_flow
;
200 ATTR_control_flow___ControlFlowContext____base_block( self
) /*ControlFlowContext::_base_block*/ = param0
;
201 tracehead
= trace
.prev
;
204 val_t
control_flow___ControlFlowContext___set_variables(val_t self
) {
205 struct trace_t trace
= {NULL
, NULL
, 86, LOCATE_control_flow___ControlFlowContext___set_variables
};
206 trace
.prev
= tracehead
; tracehead
= &trace
;
207 trace
.file
= LOCATE_control_flow
;
208 tracehead
= trace
.prev
;
209 return ATTR_control_flow___ControlFlowContext____set_variables( self
) /*ControlFlowContext::_set_variables*/;
211 val_t
control_flow___ControlFlowContext___is_set(val_t self
, val_t param0
) {
212 struct trace_t trace
= {NULL
, NULL
, 89, LOCATE_control_flow___ControlFlowContext___is_set
};
217 trace
.prev
= tracehead
; tracehead
= &trace
;
218 trace
.file
= LOCATE_control_flow
;
220 variable1
= ATTR_control_flow___ControlFlowContext____set_variables( self
) /*ControlFlowContext::_set_variables*/;
221 variable1
= ((hash___HashSet___has_t
)CALL(variable1
,COLOR_abstract_collection___Collection___has
))(variable1
, variable0
/*v*/) /*HashSet::has*/;
222 variable2
= variable1
;
223 if (!UNTAG_Bool(variable2
)) { /* or */
224 variable2
= ATTR_control_flow___ControlFlowContext____prev( self
) /*ControlFlowContext::_prev*/;
225 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2
== NIT_NULL
/*null*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, NIT_NULL
/*null*/) /*Object::==*/)))))));
226 variable3
= variable2
;
227 if (UNTAG_Bool(variable3
)) { /* and */
228 variable3
= ATTR_control_flow___ControlFlowContext____prev( self
) /*ControlFlowContext::_prev*/;
229 variable3
= ((control_flow___ControlFlowContext___is_set_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___is_set
))(variable3
, variable0
/*v*/) /*ControlFlowContext::is_set*/;
231 variable2
= variable3
;
233 variable1
= variable2
;
235 return_label6
: while(false);
236 tracehead
= trace
.prev
;
239 val_t
control_flow___ControlFlowContext___sub(val_t self
) {
240 struct trace_t trace
= {NULL
, NULL
, 95, LOCATE_control_flow___ControlFlowContext___sub
};
242 trace
.prev
= tracehead
; tracehead
= &trace
;
243 trace
.file
= LOCATE_control_flow
;
244 variable0
= NEW_ControlFlowContext_control_flow___ControlFlowContext___with( self
); /*new ControlFlowContext*/
246 return_label7
: while(false);
247 tracehead
= trace
.prev
;
250 void control_flow___ControlFlowContext___init(val_t self
, int* init_table
) {
251 struct trace_t trace
= {NULL
, NULL
, 100, LOCATE_control_flow___ControlFlowContext___init
};
252 trace
.prev
= tracehead
; tracehead
= &trace
;
253 trace
.file
= LOCATE_control_flow
;
254 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowContext
].i
]) return;
255 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowContext
].i
] = 1;
256 tracehead
= trace
.prev
;
259 void control_flow___ControlFlowContext___with(val_t self
, val_t param0
, int* init_table
) {
260 struct trace_t trace
= {NULL
, NULL
, 104, LOCATE_control_flow___ControlFlowContext___with
};
263 trace
.prev
= tracehead
; tracehead
= &trace
;
264 trace
.file
= LOCATE_control_flow
;
266 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowContext
].i
]) return;
267 ATTR_control_flow___ControlFlowContext____prev( self
) /*ControlFlowContext::_prev*/ = variable0
/*p*/;
268 variable1
= ((control_flow___ControlFlowContext___has_return_t
)CALL( variable0
/*p*/,COLOR_control_flow___ControlFlowContext___has_return
))( variable0
/*p*/) /*ControlFlowContext::has_return*/;
269 ATTR_control_flow___ControlFlowContext____has_return( self
) /*ControlFlowContext::_has_return*/ = variable1
;
270 variable1
= ((control_flow___ControlFlowContext___unreash_t
)CALL( variable0
/*p*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable0
/*p*/) /*ControlFlowContext::unreash*/;
271 ATTR_control_flow___ControlFlowContext____unreash( self
) /*ControlFlowContext::_unreash*/ = variable1
;
272 variable1
= ((control_flow___ControlFlowContext___already_unreash_t
)CALL( variable0
/*p*/,COLOR_control_flow___ControlFlowContext___already_unreash
))( variable0
/*p*/) /*ControlFlowContext::already_unreash*/;
273 ATTR_control_flow___ControlFlowContext____already_unreash( self
) /*ControlFlowContext::_already_unreash*/ = variable1
;
274 variable1
= ((control_flow___ControlFlowContext___base_block_t
)CALL( variable0
/*p*/,COLOR_control_flow___ControlFlowContext___base_block
))( variable0
/*p*/) /*ControlFlowContext::base_block*/;
275 ATTR_control_flow___ControlFlowContext____base_block( self
) /*ControlFlowContext::_base_block*/ = variable1
;
276 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ControlFlowContext
].i
] = 1;
277 tracehead
= trace
.prev
;
280 void control_flow___PNode___accept_control_flow(val_t self
, val_t param0
) {
281 struct trace_t trace
= {NULL
, NULL
, 117, LOCATE_control_flow___PNode___accept_control_flow
};
283 trace
.prev
= tracehead
; tracehead
= &trace
;
284 trace
.file
= LOCATE_control_flow
;
286 ((syntax_base___PNode___accept_abs_syntax_visitor_t
)CALL( self
,COLOR_syntax_base___PNode___accept_abs_syntax_visitor
))( self
, variable0
/*v*/) /*PNode::accept_abs_syntax_visitor*/;
287 tracehead
= trace
.prev
;
290 void control_flow___AMethPropdef___accept_control_flow(val_t self
, val_t param0
) {
291 struct trace_t trace
= {NULL
, NULL
, 124, LOCATE_control_flow___AMethPropdef___accept_control_flow
};
294 trace
.prev
= tracehead
; tracehead
= &trace
;
295 trace
.file
= LOCATE_control_flow
;
297 variable1
= NEW_ControlFlowContext_control_flow___ControlFlowContext___init(); /*new ControlFlowContext*/
298 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::control_flow_ctx=*/;
299 ((control_flow___AMethPropdef___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow
))( self
, param0
) /*super AMethPropdef::accept_control_flow*/;
300 tracehead
= trace
.prev
;
303 void control_flow___AConcreteMethPropdef___accept_control_flow(val_t self
, val_t param0
) {
304 struct trace_t trace
= {NULL
, NULL
, 132, LOCATE_control_flow___AConcreteMethPropdef___accept_control_flow
};
308 trace
.prev
= tracehead
; tracehead
= &trace
;
309 trace
.file
= LOCATE_control_flow
;
311 ((control_flow___AConcreteMethPropdef___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow
))( self
, param0
) /*super AConcreteMethPropdef::accept_control_flow*/;
312 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
313 variable1
= ((control_flow___ControlFlowContext___has_return_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___has_return
))(variable1
) /*ControlFlowContext::has_return*/;
314 variable1
= TAG_Bool((variable1
)==( TAG_Bool(false)));
315 variable2
= variable1
;
316 if (UNTAG_Bool(variable2
)) { /* and */
317 variable2
= ((syntax_base___AMethPropdef___method_t
)CALL( self
,COLOR_syntax_base___AMethPropdef___method
))( self
) /*AMethPropdef::method*/;
318 variable2
= ((static_type___MMLocalProperty___signature_t
)CALL(variable2
,COLOR_static_type___MMLocalProperty___signature
))(variable2
) /*MMLocalProperty::signature*/;
319 variable2
= ((static_type___MMSignature___return_type_t
)CALL(variable2
,COLOR_static_type___MMSignature___return_type
))(variable2
) /*MMSignature::return_type*/;
320 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2
== NIT_NULL
/*null*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, NIT_NULL
/*null*/) /*Object::==*/)))))));
322 variable1
= variable2
;
323 if (UNTAG_Bool(variable1
)) { /*if*/
324 variable1
= NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of function."), TAG_Int(39)); /*new String*/
325 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable0
/*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable0
/*v*/, self
, variable1
) /*AbsSyntaxVisitor::error*/;
327 tracehead
= trace
.prev
;
330 void control_flow___PParam___accept_control_flow(val_t self
, val_t param0
) {
331 struct trace_t trace
= {NULL
, NULL
, 142, LOCATE_control_flow___PParam___accept_control_flow
};
334 trace
.prev
= tracehead
; tracehead
= &trace
;
335 trace
.file
= LOCATE_control_flow
;
337 ((control_flow___PParam___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___PParam___accept_control_flow
))( self
, param0
) /*super PParam::accept_control_flow*/;
338 variable1
= ((syntax_base___PParam___variable_t
)CALL( self
,COLOR_syntax_base___PParam___variable
))( self
) /*PParam::variable*/;
339 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::mark_is_set*/;
340 tracehead
= trace
.prev
;
343 void control_flow___AVardeclExpr___accept_control_flow(val_t self
, val_t param0
) {
344 struct trace_t trace
= {NULL
, NULL
, 150, LOCATE_control_flow___AVardeclExpr___accept_control_flow
};
347 trace
.prev
= tracehead
; tracehead
= &trace
;
348 trace
.file
= LOCATE_control_flow
;
350 ((control_flow___AVardeclExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AVardeclExpr___accept_control_flow
))( self
, param0
) /*super AVardeclExpr::accept_control_flow*/;
351 variable1
= ((parser_nodes___AVardeclExpr___n_expr_t
)CALL( self
,COLOR_parser_nodes___AVardeclExpr___n_expr
))( self
) /*AVardeclExpr::n_expr*/;
352 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1
== NIT_NULL
/*null*/) || ((variable1
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable1
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))(variable1
, NIT_NULL
/*null*/) /*Object::==*/)))))));
353 if (UNTAG_Bool(variable1
)) { /*if*/
354 variable1
= ((syntax_base___AVardeclExpr___variable_t
)CALL( self
,COLOR_syntax_base___AVardeclExpr___variable
))( self
) /*AVardeclExpr::variable*/;
355 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::mark_is_set*/;
357 tracehead
= trace
.prev
;
360 void control_flow___ABlockExpr___accept_control_flow(val_t self
, val_t param0
) {
361 struct trace_t trace
= {NULL
, NULL
, 158, LOCATE_control_flow___ABlockExpr___accept_control_flow
};
367 trace
.prev
= tracehead
; tracehead
= &trace
;
368 trace
.file
= LOCATE_control_flow
;
370 variable1
= ((parser_nodes___ABlockExpr___n_expr_t
)CALL( self
,COLOR_parser_nodes___ABlockExpr___n_expr
))( self
) /*ABlockExpr::n_expr*/;
371 variable1
= ((list___List___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*List::iterator*/;
372 while (true) { /*for*/
373 variable2
= ((list___ListIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ListIterator::is_ok*/;
374 if (!UNTAG_Bool(variable2
)) break; /*for*/
375 variable2
= ((list___ListIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ListIterator::item*/;
376 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
377 variable3
= ((control_flow___ControlFlowContext___unreash_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___unreash
))(variable3
) /*ControlFlowContext::unreash*/;
378 variable4
= variable3
;
379 if (UNTAG_Bool(variable4
)) { /* and */
380 variable4
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
381 variable4
= ((control_flow___ControlFlowContext___already_unreash_t
)CALL(variable4
,COLOR_control_flow___ControlFlowContext___already_unreash
))(variable4
) /*ControlFlowContext::already_unreash*/;
382 variable4
= TAG_Bool(!UNTAG_Bool(variable4
));
384 variable3
= variable4
;
385 if (UNTAG_Bool(variable3
)) { /*if*/
386 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
387 ((control_flow___ControlFlowContext___already_unreash__eq_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___already_unreash__eq
))(variable3
, TAG_Bool(true)) /*ControlFlowContext::already_unreash=*/;
388 variable3
= NEW_String_string___String___with_native(BOX_NativeString("Warning: unreachable statement."), TAG_Int(31)); /*new String*/
389 ((syntax_base___AbsSyntaxVisitor___warning_t
)CALL( variable0
/*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning
))( variable0
/*v*/, variable2
/*e*/, variable3
) /*AbsSyntaxVisitor::warning*/;
391 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable0
/*v*/,COLOR_parser_prod___Visitor___visit
))( variable0
/*v*/, variable2
/*e*/) /*ControlFlowVisitor::visit*/;
392 continue_16
: while(0);
393 ((list___ListIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ListIterator::next*/;
396 tracehead
= trace
.prev
;
399 void control_flow___AReturnExpr___accept_control_flow(val_t self
, val_t param0
) {
400 struct trace_t trace
= {NULL
, NULL
, 171, LOCATE_control_flow___AReturnExpr___accept_control_flow
};
403 trace
.prev
= tracehead
; tracehead
= &trace
;
404 trace
.file
= LOCATE_control_flow
;
406 ((control_flow___AReturnExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow
))( self
, param0
) /*super AReturnExpr::accept_control_flow*/;
407 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
408 ((control_flow___ControlFlowContext___has_return__eq_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___has_return__eq
))(variable1
, TAG_Bool(true)) /*ControlFlowContext::has_return=*/;
409 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
410 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable1
, TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
411 tracehead
= trace
.prev
;
414 val_t
control_flow___ABlockControler___block(val_t self
) {
415 struct trace_t trace
= {NULL
, NULL
, 181, LOCATE_control_flow___ABlockControler___block
};
416 trace
.prev
= tracehead
; tracehead
= &trace
;
417 trace
.file
= LOCATE_control_flow
;
418 tracehead
= trace
.prev
;
419 return ATTR_control_flow___ABlockControler____block( self
) /*ABlockControler::_block*/;
421 void control_flow___ABreakExpr___accept_control_flow(val_t self
, val_t param0
) {
422 struct trace_t trace
= {NULL
, NULL
, 186, LOCATE_control_flow___ABreakExpr___accept_control_flow
};
426 trace
.prev
= tracehead
; tracehead
= &trace
;
427 trace
.file
= LOCATE_control_flow
;
429 ((control_flow___ABreakExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow
))( self
, param0
) /*super ABreakExpr::accept_control_flow*/;
430 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
431 variable2
= ((control_flow___ControlFlowContext___base_block_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___base_block
))(variable2
) /*ControlFlowContext::base_block*/;
432 variable1
= variable2
;
433 variable2
= TAG_Bool(( variable1
/*block*/ == NIT_NULL
/*null*/) || (( variable1
/*block*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable1
/*block*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable1
/*block*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable1
/*block*/,COLOR_kernel___Object_____eqeq
))( variable1
/*block*/, NIT_NULL
/*null*/) /*Object::==*/)))));
434 if (UNTAG_Bool(variable2
)) { /*if*/
435 variable2
= NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'break' statment outside block."), TAG_Int(45)); /*new String*/
436 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable0
/*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable0
/*v*/, self
, variable2
) /*AbsSyntaxVisitor::error*/;
439 ATTR_control_flow___ABlockControler____block( self
) /*ABlockControler::_block*/ = variable1
/*block*/;
440 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
441 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable2
, TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
442 return_label18
: while(false);
443 tracehead
= trace
.prev
;
446 void control_flow___AContinueExpr___accept_control_flow(val_t self
, val_t param0
) {
447 struct trace_t trace
= {NULL
, NULL
, 200, LOCATE_control_flow___AContinueExpr___accept_control_flow
};
451 trace
.prev
= tracehead
; tracehead
= &trace
;
452 trace
.file
= LOCATE_control_flow
;
454 ((control_flow___AContinueExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow
))( self
, param0
) /*super AContinueExpr::accept_control_flow*/;
455 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
456 variable2
= ((control_flow___ControlFlowContext___base_block_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___base_block
))(variable2
) /*ControlFlowContext::base_block*/;
457 variable1
= variable2
;
458 variable2
= TAG_Bool(( variable1
/*block*/ == NIT_NULL
/*null*/) || (( variable1
/*block*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable1
/*block*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable1
/*block*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable1
/*block*/,COLOR_kernel___Object_____eqeq
))( variable1
/*block*/, NIT_NULL
/*null*/) /*Object::==*/)))));
459 if (UNTAG_Bool(variable2
)) { /*if*/
460 variable2
= NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'continue' outside block."), TAG_Int(39)); /*new String*/
461 ((syntax_base___AbsSyntaxVisitor___error_t
)CALL( variable0
/*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error
))( variable0
/*v*/, self
, variable2
) /*AbsSyntaxVisitor::error*/;
464 ATTR_control_flow___ABlockControler____block( self
) /*ABlockControler::_block*/ = variable1
/*block*/;
465 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
466 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable2
, TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
467 return_label19
: while(false);
468 tracehead
= trace
.prev
;
471 void control_flow___AAbortExpr___accept_control_flow(val_t self
, val_t param0
) {
472 struct trace_t trace
= {NULL
, NULL
, 214, LOCATE_control_flow___AAbortExpr___accept_control_flow
};
475 trace
.prev
= tracehead
; tracehead
= &trace
;
476 trace
.file
= LOCATE_control_flow
;
478 ((control_flow___AAbortExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow
))( self
, param0
) /*super AAbortExpr::accept_control_flow*/;
479 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
480 ((control_flow___ControlFlowContext___has_return__eq_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___has_return__eq
))(variable1
, TAG_Bool(true)) /*ControlFlowContext::has_return=*/;
481 variable1
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
482 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL(variable1
,COLOR_control_flow___ControlFlowContext___unreash__eq
))(variable1
, TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
483 tracehead
= trace
.prev
;
486 void control_flow___AIfExpr___accept_control_flow(val_t self
, val_t param0
) {
487 struct trace_t trace
= {NULL
, NULL
, 223, LOCATE_control_flow___AIfExpr___accept_control_flow
};
494 trace
.prev
= tracehead
; tracehead
= &trace
;
495 trace
.file
= LOCATE_control_flow
;
497 variable1
= ((parser_nodes___AIfExpr___n_expr_t
)CALL( self
,COLOR_parser_nodes___AIfExpr___n_expr
))( self
) /*AIfExpr::n_expr*/;
498 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable0
/*v*/,COLOR_parser_prod___Visitor___visit
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::visit*/;
499 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
500 variable1
= variable2
;
501 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
502 variable2
= ((control_flow___ControlFlowContext___sub_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___sub
))(variable2
) /*ControlFlowContext::sub*/;
503 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable2
) /*ControlFlowVisitor::control_flow_ctx=*/;
504 variable2
= ((parser_nodes___AIfExpr___n_then_t
)CALL( self
,COLOR_parser_nodes___AIfExpr___n_then
))( self
) /*AIfExpr::n_then*/;
505 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable0
/*v*/,COLOR_parser_prod___Visitor___visit
))( variable0
/*v*/, variable2
) /*ControlFlowVisitor::visit*/;
506 variable2
= ((parser_nodes___AIfExpr___n_else_t
)CALL( self
,COLOR_parser_nodes___AIfExpr___n_else
))( self
) /*AIfExpr::n_else*/;
507 variable2
= TAG_Bool((variable2
== NIT_NULL
/*null*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, NIT_NULL
/*null*/) /*Object::==*/)))));
508 if (UNTAG_Bool(variable2
)) { /*if*/
509 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable1
/*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
511 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
512 variable2
= variable3
;
513 variable3
= ((control_flow___ControlFlowContext___sub_t
)CALL( variable1
/*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___sub
))( variable1
/*old_control_flow_ctx*/) /*ControlFlowContext::sub*/;
514 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable3
) /*ControlFlowVisitor::control_flow_ctx=*/;
515 variable3
= ((parser_nodes___AIfExpr___n_else_t
)CALL( self
,COLOR_parser_nodes___AIfExpr___n_else
))( self
) /*AIfExpr::n_else*/;
516 ((control_flow___ControlFlowVisitor___visit_t
)CALL( variable0
/*v*/,COLOR_parser_prod___Visitor___visit
))( variable0
/*v*/, variable3
) /*ControlFlowVisitor::visit*/;
517 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
518 variable3
= ((control_flow___ControlFlowContext___has_return_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___has_return
))(variable3
) /*ControlFlowContext::has_return*/;
519 variable4
= variable3
;
520 if (UNTAG_Bool(variable4
)) { /* and */
521 variable4
= ((control_flow___ControlFlowContext___has_return_t
)CALL( variable2
/*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___has_return
))( variable2
/*then_control_flow_ctx*/) /*ControlFlowContext::has_return*/;
523 variable3
= variable4
;
524 ((control_flow___ControlFlowContext___has_return__eq_t
)CALL( variable1
/*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___has_return__eq
))( variable1
/*old_control_flow_ctx*/, variable3
) /*ControlFlowContext::has_return=*/;
525 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
526 variable3
= ((control_flow___ControlFlowContext___unreash_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___unreash
))(variable3
) /*ControlFlowContext::unreash*/;
527 variable4
= variable3
;
528 if (UNTAG_Bool(variable4
)) { /* and */
529 variable4
= ((control_flow___ControlFlowContext___unreash_t
)CALL( variable2
/*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable2
/*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
531 variable3
= variable4
;
532 ((control_flow___ControlFlowContext___unreash__eq_t
)CALL( variable1
/*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash__eq
))( variable1
/*old_control_flow_ctx*/, variable3
) /*ControlFlowContext::unreash=*/;
533 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
534 variable3
= ((control_flow___ControlFlowContext___unreash_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___unreash
))(variable3
) /*ControlFlowContext::unreash*/;
535 if (UNTAG_Bool(variable3
)) { /*if*/
536 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable2
/*then_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
538 variable3
= ((control_flow___ControlFlowContext___unreash_t
)CALL( variable2
/*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash
))( variable2
/*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
539 if (UNTAG_Bool(variable3
)) { /*if*/
540 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
541 variable2
= variable3
/*then_control_flow_ctx=*/;
543 variable3
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
544 variable3
= ((control_flow___ControlFlowContext___set_variables_t
)CALL(variable3
,COLOR_control_flow___ControlFlowContext___set_variables
))(variable3
) /*ControlFlowContext::set_variables*/;
545 variable3
= ((hash___HashSet___iterator_t
)CALL(variable3
,COLOR_abstract_collection___Collection___iterator
))(variable3
) /*HashSet::iterator*/;
546 while (true) { /*for*/
547 variable4
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___is_ok
))(variable3
) /*Iterator::is_ok*/;
548 if (!UNTAG_Bool(variable4
)) break; /*for*/
549 variable4
= ((abstract_collection___Iterator___item_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___item
))(variable3
) /*Iterator::item*/;
550 variable5
= ((control_flow___ControlFlowContext___is_set_t
)CALL( variable2
/*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___is_set
))( variable2
/*then_control_flow_ctx*/, variable4
/*variable*/) /*ControlFlowContext::is_set*/;
551 if (UNTAG_Bool(variable5
)) { /*if*/
552 variable5
= ((control_flow___ControlFlowContext___set_variables_t
)CALL( variable1
/*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___set_variables
))( variable1
/*old_control_flow_ctx*/) /*ControlFlowContext::set_variables*/;
553 ((hash___HashSet___add_t
)CALL(variable5
,COLOR_abstract_collection___SimpleCollection___add
))(variable5
, variable4
/*variable*/) /*HashSet::add*/;
555 continue_22
: while(0);
556 ((abstract_collection___Iterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*Iterator::next*/;
559 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable1
/*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
561 tracehead
= trace
.prev
;
564 void control_flow___AControlableBlock___accept_control_flow(val_t self
, val_t param0
) {
565 struct trace_t trace
= {NULL
, NULL
, 261, LOCATE_control_flow___AControlableBlock___accept_control_flow
};
569 trace
.prev
= tracehead
; tracehead
= &trace
;
570 trace
.file
= LOCATE_control_flow
;
572 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
573 variable1
= variable2
;
574 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
575 variable2
= ((control_flow___ControlFlowContext___sub_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___sub
))(variable2
) /*ControlFlowContext::sub*/;
576 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable2
) /*ControlFlowVisitor::control_flow_ctx=*/;
577 variable2
= ((control_flow___ControlFlowVisitor___control_flow_ctx_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx
))( variable0
/*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
578 ((control_flow___ControlFlowContext___base_block__eq_t
)CALL(variable2
,COLOR_control_flow___ControlFlowContext___base_block__eq
))(variable2
, self
) /*ControlFlowContext::base_block=*/;
579 ((control_flow___AControlableBlock___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow
))( self
, param0
) /*super AControlableBlock::accept_control_flow*/;
580 ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq
))( variable0
/*v*/, variable1
/*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
581 tracehead
= trace
.prev
;
584 void control_flow___AForVardeclExpr___accept_control_flow(val_t self
, val_t param0
) {
585 struct trace_t trace
= {NULL
, NULL
, 286, LOCATE_control_flow___AForVardeclExpr___accept_control_flow
};
588 trace
.prev
= tracehead
; tracehead
= &trace
;
589 trace
.file
= LOCATE_control_flow
;
591 ((control_flow___AForVardeclExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AForVardeclExpr___accept_control_flow
))( self
, param0
) /*super AForVardeclExpr::accept_control_flow*/;
592 variable1
= ((syntax_base___AForVardeclExpr___variable_t
)CALL( self
,COLOR_syntax_base___AForVardeclExpr___variable
))( self
) /*AForVardeclExpr::variable*/;
593 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::mark_is_set*/;
594 tracehead
= trace
.prev
;
597 void control_flow___AVarExpr___accept_control_flow(val_t self
, val_t param0
) {
598 struct trace_t trace
= {NULL
, NULL
, 295, LOCATE_control_flow___AVarExpr___accept_control_flow
};
601 trace
.prev
= tracehead
; tracehead
= &trace
;
602 trace
.file
= LOCATE_control_flow
;
604 ((control_flow___AVarExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AVarExpr___accept_control_flow
))( self
, param0
) /*super AVarExpr::accept_control_flow*/;
605 variable1
= ((syntax_base___AVarFormExpr___variable_t
)CALL( self
,COLOR_syntax_base___AVarFormExpr___variable
))( self
) /*AVarFormExpr::variable*/;
606 ((control_flow___ControlFlowVisitor___check_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set
))( variable0
/*v*/, self
, variable1
) /*ControlFlowVisitor::check_is_set*/;
607 tracehead
= trace
.prev
;
610 void control_flow___AVarAssignExpr___accept_control_flow(val_t self
, val_t param0
) {
611 struct trace_t trace
= {NULL
, NULL
, 303, LOCATE_control_flow___AVarAssignExpr___accept_control_flow
};
614 trace
.prev
= tracehead
; tracehead
= &trace
;
615 trace
.file
= LOCATE_control_flow
;
617 ((control_flow___AVarAssignExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AVarAssignExpr___accept_control_flow
))( self
, param0
) /*super AVarAssignExpr::accept_control_flow*/;
618 variable1
= ((syntax_base___AVarFormExpr___variable_t
)CALL( self
,COLOR_syntax_base___AVarFormExpr___variable
))( self
) /*AVarFormExpr::variable*/;
619 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::mark_is_set*/;
620 tracehead
= trace
.prev
;
623 void control_flow___AVarReassignExpr___accept_control_flow(val_t self
, val_t param0
) {
624 struct trace_t trace
= {NULL
, NULL
, 311, LOCATE_control_flow___AVarReassignExpr___accept_control_flow
};
627 trace
.prev
= tracehead
; tracehead
= &trace
;
628 trace
.file
= LOCATE_control_flow
;
630 ((control_flow___AVarReassignExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AVarReassignExpr___accept_control_flow
))( self
, param0
) /*super AVarReassignExpr::accept_control_flow*/;
631 variable1
= ((syntax_base___AVarFormExpr___variable_t
)CALL( self
,COLOR_syntax_base___AVarFormExpr___variable
))( self
) /*AVarFormExpr::variable*/;
632 ((control_flow___ControlFlowVisitor___check_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set
))( variable0
/*v*/, self
, variable1
) /*ControlFlowVisitor::check_is_set*/;
633 variable1
= ((syntax_base___AVarFormExpr___variable_t
)CALL( self
,COLOR_syntax_base___AVarFormExpr___variable
))( self
) /*AVarFormExpr::variable*/;
634 ((control_flow___ControlFlowVisitor___mark_is_set_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::mark_is_set*/;
635 tracehead
= trace
.prev
;
638 void control_flow___AOnceExpr___accept_control_flow(val_t self
, val_t param0
) {
639 struct trace_t trace
= {NULL
, NULL
, 321, LOCATE_control_flow___AOnceExpr___accept_control_flow
};
642 trace
.prev
= tracehead
; tracehead
= &trace
;
643 trace
.file
= LOCATE_control_flow
;
645 variable1
= ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable0
/*v*/) /*ControlFlowVisitor::once_count*/;
646 variable1
= TAG_Bool(UNTAG_Int(variable1
)>UNTAG_Int( TAG_Int(0)));
647 if (UNTAG_Bool(variable1
)) { /*if*/
648 variable1
= NEW_String_string___String___with_native(BOX_NativeString("Useless once in a once expression."), TAG_Int(34)); /*new String*/
649 ((syntax_base___AbsSyntaxVisitor___warning_t
)CALL( variable0
/*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning
))( variable0
/*v*/, self
, variable1
) /*AbsSyntaxVisitor::warning*/;
651 variable1
= ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable0
/*v*/) /*ControlFlowVisitor::once_count*/;
652 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1)));
653 ((control_flow___ControlFlowVisitor___once_count__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::once_count=*/;
654 ((control_flow___AOnceExpr___accept_control_flow_t
)CALL( self
,COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow
))( self
, param0
) /*super AOnceExpr::accept_control_flow*/;
655 variable1
= ((control_flow___ControlFlowVisitor___once_count_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___once_count
))( variable0
/*v*/) /*ControlFlowVisitor::once_count*/;
656 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
657 ((control_flow___ControlFlowVisitor___once_count__eq_t
)CALL( variable0
/*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq
))( variable0
/*v*/, variable1
) /*ControlFlowVisitor::once_count=*/;
658 tracehead
= trace
.prev
;