1 /* This C file is generated by NIT to compile module flow. */
3 void flow___FlowContext___check_is_set(val_t p0
, val_t p1
, val_t p2
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
8 static val_t once_value_1
; /* Once value */
9 static val_t once_value_2
; /* Once value */
10 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11 fra
.me
.file
= LOCATE_flow
;
13 fra
.me
.meth
= LOCATE_flow___FlowContext___check_is_set
;
16 fra
.me
.REG
[0] = NIT_NULL
;
17 fra
.me
.REG
[1] = NIT_NULL
;
18 fra
.me
.REG
[2] = NIT_NULL
;
19 fra
.me
.REG
[3] = NIT_NULL
;
20 fra
.me
.REG
[4] = NIT_NULL
;
24 /* ./syntax//flow.nit:37 */
25 REGB0
= CALL_flow___Variable___must_be_set(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
26 if (UNTAG_Bool(REGB0
)) {
27 REGB0
= CALL_flow___FlowContext___is_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
28 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
30 REGB1
= TAG_Bool(false);
33 if (UNTAG_Bool(REGB0
)) {
34 /* ./syntax//flow.nit:38 */
35 REGB0
= TAG_Bool(ATTR_flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
36 if (UNTAG_Bool(REGB0
)) {
38 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_flow
, 38);
40 fra
.me
.REG
[0] = ATTR_flow___FlowContext____visitor(fra
.me
.REG
[0]);
42 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
44 fra
.me
.REG
[4] = BOX_NativeString("Error: variable '");
46 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
47 once_value_1
= fra
.me
.REG
[4];
48 register_static_object(&once_value_1
);
49 } else fra
.me
.REG
[4] = once_value_1
;
50 fra
.me
.REG
[4] = fra
.me
.REG
[4];
51 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
52 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
53 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
55 fra
.me
.REG
[2] = BOX_NativeString("' is possibly unset.");
57 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
58 once_value_2
= fra
.me
.REG
[2];
59 register_static_object(&once_value_2
);
60 } else fra
.me
.REG
[2] = once_value_2
;
61 fra
.me
.REG
[2] = fra
.me
.REG
[2];
62 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
63 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
64 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
66 stack_frame_head
= fra
.me
.prev
;
69 val_t
flow___FlowContext___stype(val_t p0
, val_t p1
){
70 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
72 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
73 fra
.me
.file
= LOCATE_flow
;
75 fra
.me
.meth
= LOCATE_flow___FlowContext___stype
;
78 fra
.me
.REG
[0] = NIT_NULL
;
79 fra
.me
.REG
[1] = NIT_NULL
;
82 /* ./syntax//flow.nit:46 */
83 fra
.me
.REG
[1] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
86 stack_frame_head
= fra
.me
.prev
;
89 val_t
flow___FlowContext___sub_setvariable(val_t p0
, val_t p1
){
90 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
93 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
94 fra
.me
.file
= LOCATE_flow
;
96 fra
.me
.meth
= LOCATE_flow___FlowContext___sub_setvariable
;
99 fra
.me
.REG
[0] = NIT_NULL
;
100 fra
.me
.REG
[1] = NIT_NULL
;
101 fra
.me
.REG
[2] = NIT_NULL
;
104 /* ./syntax//flow.nit:52 */
105 fra
.me
.REG
[2] = CALL_flow___FlowContext___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
106 fra
.me
.REG
[2] = NEW_SubFlowContext_flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[2]);
107 /* ./syntax//flow.nit:53 */
108 REGB0
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[2])!=NIT_NULL
);
109 if (UNTAG_Bool(REGB0
)) {
111 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 53);
113 fra
.me
.REG
[0] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[2]);
114 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
115 /* ./syntax//flow.nit:54 */
118 stack_frame_head
= fra
.me
.prev
;
119 return fra
.me
.REG
[2];
121 val_t
flow___FlowContext___sub_unreash(val_t p0
, val_t p1
){
122 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
126 fra
.me
.file
= LOCATE_flow
;
128 fra
.me
.meth
= LOCATE_flow___FlowContext___sub_unreash
;
129 fra
.me
.has_broke
= 0;
131 fra
.me
.REG
[0] = NIT_NULL
;
132 fra
.me
.REG
[1] = NIT_NULL
;
135 /* ./syntax//flow.nit:60 */
136 fra
.me
.REG
[1] = NEW_SubFlowContext_flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[1]);
137 /* ./syntax//flow.nit:61 */
138 REGB0
= TAG_Bool(true);
139 ATTR_flow___FlowContext____unreash(fra
.me
.REG
[1]) = REGB0
;
140 /* ./syntax//flow.nit:62 */
143 stack_frame_head
= fra
.me
.prev
;
144 return fra
.me
.REG
[1];
146 val_t
flow___FlowContext___sub_with(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
147 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
150 fra
.me
.file
= LOCATE_flow
;
152 fra
.me
.meth
= LOCATE_flow___FlowContext___sub_with
;
153 fra
.me
.has_broke
= 0;
155 fra
.me
.REG
[0] = NIT_NULL
;
156 fra
.me
.REG
[1] = NIT_NULL
;
157 fra
.me
.REG
[2] = NIT_NULL
;
158 fra
.me
.REG
[3] = NIT_NULL
;
163 /* ./syntax//flow.nit:68 */
164 fra
.me
.REG
[3] = NEW_CastFlowContext_flow___CastFlowContext___init(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
167 stack_frame_head
= fra
.me
.prev
;
168 return fra
.me
.REG
[3];
170 val_t
flow___FlowContext___merge(val_t p0
, val_t p1
, val_t p2
){
171 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
177 fra
.me
.file
= LOCATE_flow
;
179 fra
.me
.meth
= LOCATE_flow___FlowContext___merge
;
180 fra
.me
.has_broke
= 0;
182 fra
.me
.REG
[0] = NIT_NULL
;
183 fra
.me
.REG
[1] = NIT_NULL
;
184 fra
.me
.REG
[2] = NIT_NULL
;
185 fra
.me
.REG
[3] = NIT_NULL
;
186 fra
.me
.REG
[4] = NIT_NULL
;
187 fra
.me
.REG
[5] = NIT_NULL
;
191 /* ./../lib/standard//collection//array.nit:231 */
192 fra
.me
.REG
[3] = fra
.me
.REG
[2];
193 /* ./../lib/standard//collection//array.nit:234 */
195 /* ./../lib/standard//collection//array.nit:235 */
196 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
197 if (UNTAG_Bool(REGB1
)) {
199 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
201 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
202 /* ./../lib/standard//collection//array.nit:236 */
203 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[3]);
204 /* ./../lib/standard//collection//array.nit:237 */
206 /* ./../lib/standard//collection//array.nit:23 */
207 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
208 if (UNTAG_Bool(REGB1
)) {
210 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
212 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
213 /* ./../lib/standard//kernel.nit:212 */
214 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
215 /* ./../lib/standard//collection//array.nit:237 */
216 if (UNTAG_Bool(REGB1
)) {
217 /* ./../lib/standard//collection//array.nit:238 */
218 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
219 if (UNTAG_Bool(REGB1
)) {
220 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
222 /* ./../lib/standard//collection//array.nit:654 */
223 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
224 /* ./syntax//flow.nit:76 */
225 REGB1
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
226 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
227 if (UNTAG_Bool(REGB1
)) {
229 nit_abort("Assert failed", NULL
, LOCATE_flow
, 76);
231 /* ./../lib/standard//collection//array.nit:239 */
233 /* ./../lib/standard//kernel.nit:215 */
234 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
235 /* ./../lib/standard//collection//array.nit:239 */
238 /* ./../lib/standard//collection//array.nit:237 */
243 /* ./../lib/standard//collection//array.nit:23 */
244 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
245 if (UNTAG_Bool(REGB0
)) {
247 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
249 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
250 /* ./syntax//flow.nit:77 */
252 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
253 if (UNTAG_Bool(REGB2
)) {
255 /* ./../lib/standard//kernel.nit:207 */
256 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
257 /* ./syntax//flow.nit:77 */
260 if (UNTAG_Bool(REGB2
)) {
261 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
264 /* ./syntax//flow.nit:78 */
265 fra
.me
.REG
[2] = NEW_MergeFlowContext_flow___MergeFlowContext___init(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
266 fra
.me
.REG
[4] = fra
.me
.REG
[2];
269 stack_frame_head
= fra
.me
.prev
;
270 return fra
.me
.REG
[4];
272 val_t
flow___FlowContext___merge_reash(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
273 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
278 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
279 fra
.me
.file
= LOCATE_flow
;
281 fra
.me
.meth
= LOCATE_flow___FlowContext___merge_reash
;
282 fra
.me
.has_broke
= 0;
284 fra
.me
.REG
[0] = NIT_NULL
;
285 fra
.me
.REG
[1] = NIT_NULL
;
286 fra
.me
.REG
[2] = NIT_NULL
;
287 fra
.me
.REG
[3] = NIT_NULL
;
288 fra
.me
.REG
[4] = NIT_NULL
;
289 fra
.me
.REG
[5] = NIT_NULL
;
294 /* ./syntax//flow.nit:86 */
295 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
296 if (UNTAG_Bool(REGB0
)) {
297 /* ./syntax//flow.nit:87 */
298 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
299 if (UNTAG_Bool(REGB0
)) {
300 /* ./syntax//flow.nit:88 */
301 fra
.me
.REG
[4] = CALL_flow___FlowContext___sub_unreash(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
304 /* ./syntax//flow.nit:90 */
305 fra
.me
.REG
[5] = fra
.me
.REG
[3];
306 /* ./syntax//flow.nit:91 */
307 fra
.me
.REG
[3] = fra
.me
.REG
[2];
308 /* ./syntax//flow.nit:92 */
309 fra
.me
.REG
[2] = fra
.me
.REG
[5];
312 /* ./syntax//flow.nit:96 */
313 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
314 if (UNTAG_Bool(REGB0
)) {
315 REGB0
= TAG_Bool(true);
317 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
318 if (UNTAG_Bool(REGB1
)) {
320 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
325 if (UNTAG_Bool(REGB0
)) {
326 /* ./syntax//flow.nit:97 */
327 fra
.me
.REG
[4] = fra
.me
.REG
[2];
330 /* ./syntax//flow.nit:104 */
332 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
333 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
334 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
335 fra
.me
.REG
[5] = CALL_flow___FlowContext___merge(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
336 fra
.me
.REG
[4] = fra
.me
.REG
[5];
340 stack_frame_head
= fra
.me
.prev
;
341 return fra
.me
.REG
[4];
343 val_t
flow___FlowContext___node(val_t p0
){
344 struct {struct stack_frame_t me
;} fra
;
347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
348 fra
.me
.file
= LOCATE_flow
;
350 fra
.me
.meth
= LOCATE_flow___FlowContext___node
;
351 fra
.me
.has_broke
= 0;
353 fra
.me
.REG
[0] = NIT_NULL
;
355 /* ./syntax//flow.nit:111 */
356 REGB0
= TAG_Bool(ATTR_flow___FlowContext____node(fra
.me
.REG
[0])!=NIT_NULL
);
357 if (UNTAG_Bool(REGB0
)) {
359 nit_abort("Uninitialized attribute %s", "_node", LOCATE_flow
, 111);
361 fra
.me
.REG
[0] = ATTR_flow___FlowContext____node(fra
.me
.REG
[0]);
362 stack_frame_head
= fra
.me
.prev
;
363 return fra
.me
.REG
[0];
365 void flow___FlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
366 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_FlowContext
].i
;
367 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
369 if (init_table
[itpos0
]) return;
370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
371 fra
.me
.file
= LOCATE_flow
;
373 fra
.me
.meth
= LOCATE_flow___FlowContext___init
;
374 fra
.me
.has_broke
= 0;
376 fra
.me
.REG
[0] = NIT_NULL
;
377 fra
.me
.REG
[1] = NIT_NULL
;
378 fra
.me
.REG
[2] = NIT_NULL
;
382 /* ./syntax//flow.nit:116 */
383 ATTR_flow___FlowContext____visitor(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
384 /* ./syntax//flow.nit:117 */
385 ATTR_flow___FlowContext____node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
386 stack_frame_head
= fra
.me
.prev
;
387 init_table
[itpos0
] = 1;
390 val_t
flow___FlowContext___unreash(val_t p0
){
391 struct {struct stack_frame_t me
;} fra
;
394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
395 fra
.me
.file
= LOCATE_flow
;
397 fra
.me
.meth
= LOCATE_flow___FlowContext___unreash
;
398 fra
.me
.has_broke
= 0;
400 fra
.me
.REG
[0] = NIT_NULL
;
402 /* ./syntax//flow.nit:120 */
403 REGB0
= TAG_Bool(ATTR_flow___FlowContext____unreash(fra
.me
.REG
[0])!=NIT_NULL
);
404 if (UNTAG_Bool(REGB0
)) {
406 nit_abort("Uninitialized attribute %s", "_unreash", LOCATE_flow
, 120);
408 REGB0
= ATTR_flow___FlowContext____unreash(fra
.me
.REG
[0]);
409 stack_frame_head
= fra
.me
.prev
;
412 val_t
flow___FlowContext___already_unreash(val_t p0
){
413 struct {struct stack_frame_t me
;} fra
;
416 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
417 fra
.me
.file
= LOCATE_flow
;
419 fra
.me
.meth
= LOCATE_flow___FlowContext___already_unreash
;
420 fra
.me
.has_broke
= 0;
422 fra
.me
.REG
[0] = NIT_NULL
;
424 /* ./syntax//flow.nit:123 */
425 REGB0
= TAG_Bool(ATTR_flow___FlowContext____already_unreash(fra
.me
.REG
[0])!=NIT_NULL
);
426 if (UNTAG_Bool(REGB0
)) {
428 nit_abort("Uninitialized attribute %s", "_already_unreash", LOCATE_flow
, 123);
430 REGB0
= ATTR_flow___FlowContext____already_unreash(fra
.me
.REG
[0]);
431 stack_frame_head
= fra
.me
.prev
;
434 void flow___FlowContext___already_unreash__eq(val_t p0
, val_t p1
){
435 struct {struct stack_frame_t me
;} fra
;
438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
439 fra
.me
.file
= LOCATE_flow
;
441 fra
.me
.meth
= LOCATE_flow___FlowContext___already_unreash__eq
;
442 fra
.me
.has_broke
= 0;
444 fra
.me
.REG
[0] = NIT_NULL
;
447 /* ./syntax//flow.nit:123 */
448 ATTR_flow___FlowContext____already_unreash(fra
.me
.REG
[0]) = REGB0
;
449 stack_frame_head
= fra
.me
.prev
;
452 val_t
flow___FlowContext___set_variables(val_t p0
){
453 struct {struct stack_frame_t me
;} fra
;
456 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
457 fra
.me
.file
= LOCATE_flow
;
459 fra
.me
.meth
= LOCATE_flow___FlowContext___set_variables
;
460 fra
.me
.has_broke
= 0;
462 fra
.me
.REG
[0] = NIT_NULL
;
464 /* ./syntax//flow.nit:127 */
465 REGB0
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
466 if (UNTAG_Bool(REGB0
)) {
468 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 127);
470 fra
.me
.REG
[0] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0]);
471 stack_frame_head
= fra
.me
.prev
;
472 return fra
.me
.REG
[0];
474 val_t
flow___FlowContext___is_set(val_t p0
, val_t p1
){
475 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
479 fra
.me
.file
= LOCATE_flow
;
481 fra
.me
.meth
= LOCATE_flow___FlowContext___is_set
;
482 fra
.me
.has_broke
= 0;
484 fra
.me
.REG
[0] = NIT_NULL
;
485 fra
.me
.REG
[1] = NIT_NULL
;
488 /* ./syntax//flow.nit:133 */
489 REGB0
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
490 if (UNTAG_Bool(REGB0
)) {
492 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 133);
494 fra
.me
.REG
[0] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0]);
495 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
498 stack_frame_head
= fra
.me
.prev
;
501 void flow___RootFlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
502 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_RootFlowContext
].i
;
503 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
505 if (init_table
[itpos1
]) return;
506 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
507 fra
.me
.file
= LOCATE_flow
;
509 fra
.me
.meth
= LOCATE_flow___RootFlowContext___init
;
510 fra
.me
.has_broke
= 0;
512 fra
.me
.REG
[0] = NIT_NULL
;
513 fra
.me
.REG
[1] = NIT_NULL
;
514 fra
.me
.REG
[2] = NIT_NULL
;
518 /* ./syntax//flow.nit:142 */
519 CALL_flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
520 stack_frame_head
= fra
.me
.prev
;
521 init_table
[itpos1
] = 1;
524 val_t
flow___SubFlowContext___prev(val_t p0
){
525 struct {struct stack_frame_t me
;} fra
;
528 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
529 fra
.me
.file
= LOCATE_flow
;
531 fra
.me
.meth
= LOCATE_flow___SubFlowContext___prev
;
532 fra
.me
.has_broke
= 0;
534 fra
.me
.REG
[0] = NIT_NULL
;
536 /* ./syntax//flow.nit:149 */
537 REGB0
= TAG_Bool(ATTR_flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
538 if (UNTAG_Bool(REGB0
)) {
540 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_flow
, 149);
542 fra
.me
.REG
[0] = ATTR_flow___SubFlowContext____prev(fra
.me
.REG
[0]);
543 stack_frame_head
= fra
.me
.prev
;
544 return fra
.me
.REG
[0];
546 val_t
flow___SubFlowContext___is_set(val_t p0
, val_t p1
){
547 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
551 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
552 fra
.me
.file
= LOCATE_flow
;
554 fra
.me
.meth
= LOCATE_flow___SubFlowContext___is_set
;
555 fra
.me
.has_broke
= 0;
557 fra
.me
.REG
[0] = NIT_NULL
;
558 fra
.me
.REG
[1] = NIT_NULL
;
559 fra
.me
.REG
[2] = NIT_NULL
;
562 /* ./syntax//flow.nit:153 */
563 REGB0
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
564 if (UNTAG_Bool(REGB0
)) {
566 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 153);
568 fra
.me
.REG
[2] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0]);
569 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
570 if (UNTAG_Bool(REGB0
)) {
571 REGB0
= TAG_Bool(true);
573 REGB1
= TAG_Bool(ATTR_flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
574 if (UNTAG_Bool(REGB1
)) {
576 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_flow
, 153);
578 fra
.me
.REG
[0] = ATTR_flow___SubFlowContext____prev(fra
.me
.REG
[0]);
579 REGB1
= CALL_flow___FlowContext___is_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
584 stack_frame_head
= fra
.me
.prev
;
587 val_t
flow___SubFlowContext___stype(val_t p0
, val_t p1
){
588 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
590 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
591 fra
.me
.file
= LOCATE_flow
;
593 fra
.me
.meth
= LOCATE_flow___SubFlowContext___stype
;
594 fra
.me
.has_broke
= 0;
596 fra
.me
.REG
[0] = NIT_NULL
;
597 fra
.me
.REG
[1] = NIT_NULL
;
600 /* ./syntax//flow.nit:158 */
601 fra
.me
.REG
[0] = CALL_flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
602 fra
.me
.REG
[1] = CALL_flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
605 stack_frame_head
= fra
.me
.prev
;
606 return fra
.me
.REG
[1];
608 void flow___SubFlowContext___with_prev(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
609 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_SubFlowContext
].i
;
610 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
613 if (init_table
[itpos2
]) return;
614 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
615 fra
.me
.file
= LOCATE_flow
;
617 fra
.me
.meth
= LOCATE_flow___SubFlowContext___with_prev
;
618 fra
.me
.has_broke
= 0;
620 fra
.me
.REG
[0] = NIT_NULL
;
621 fra
.me
.REG
[1] = NIT_NULL
;
622 fra
.me
.REG
[2] = NIT_NULL
;
623 fra
.me
.REG
[3] = NIT_NULL
;
627 /* ./syntax//flow.nit:163 */
628 REGB0
= TAG_Bool(ATTR_flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
629 if (UNTAG_Bool(REGB0
)) {
631 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_flow
, 163);
633 fra
.me
.REG
[3] = ATTR_flow___FlowContext____visitor(fra
.me
.REG
[1]);
634 CALL_flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2], init_table
);
635 /* ./syntax//flow.nit:164 */
636 ATTR_flow___SubFlowContext____prev(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
637 stack_frame_head
= fra
.me
.prev
;
638 init_table
[itpos2
] = 1;
641 val_t
flow___CastFlowContext___stype(val_t p0
, val_t p1
){
642 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
646 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
647 fra
.me
.file
= LOCATE_flow
;
649 fra
.me
.meth
= LOCATE_flow___CastFlowContext___stype
;
650 fra
.me
.has_broke
= 0;
652 fra
.me
.REG
[0] = NIT_NULL
;
653 fra
.me
.REG
[1] = NIT_NULL
;
654 fra
.me
.REG
[2] = NIT_NULL
;
657 /* ./syntax//flow.nit:179 */
658 REGB0
= TAG_Bool(ATTR_flow___CastFlowContext____variable(fra
.me
.REG
[0])!=NIT_NULL
);
659 if (UNTAG_Bool(REGB0
)) {
661 nit_abort("Uninitialized attribute %s", "_variable", LOCATE_flow
, 179);
663 fra
.me
.REG
[2] = ATTR_flow___CastFlowContext____variable(fra
.me
.REG
[0]);
664 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
665 if (UNTAG_Bool(REGB0
)) {
667 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
670 if (UNTAG_Bool(REGB0
)) {
671 /* ./syntax//flow.nit:180 */
672 fra
.me
.REG
[2] = ATTR_flow___CastFlowContext____stype(fra
.me
.REG
[0]);
675 /* ./syntax//flow.nit:182 */
676 fra
.me
.REG
[0] = CALL_flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
677 fra
.me
.REG
[1] = CALL_flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
678 fra
.me
.REG
[2] = fra
.me
.REG
[1];
682 stack_frame_head
= fra
.me
.prev
;
683 return fra
.me
.REG
[2];
685 void flow___CastFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, int* init_table
){
686 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_CastFlowContext
].i
;
687 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
689 if (init_table
[itpos3
]) return;
690 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
691 fra
.me
.file
= LOCATE_flow
;
693 fra
.me
.meth
= LOCATE_flow___CastFlowContext___init
;
694 fra
.me
.has_broke
= 0;
696 fra
.me
.REG
[0] = NIT_NULL
;
697 fra
.me
.REG
[1] = NIT_NULL
;
698 fra
.me
.REG
[2] = NIT_NULL
;
699 fra
.me
.REG
[3] = NIT_NULL
;
700 fra
.me
.REG
[4] = NIT_NULL
;
706 /* ./syntax//flow.nit:188 */
707 CALL_flow___SubFlowContext___with_prev(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
708 /* ./syntax//flow.nit:189 */
709 ATTR_flow___CastFlowContext____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
710 /* ./syntax//flow.nit:190 */
711 ATTR_flow___CastFlowContext____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
712 stack_frame_head
= fra
.me
.prev
;
713 init_table
[itpos3
] = 1;
716 void flow___MergeFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
717 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_MergeFlowContext
].i
;
718 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
721 if (init_table
[itpos4
]) return;
722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
723 fra
.me
.file
= LOCATE_flow
;
725 fra
.me
.meth
= LOCATE_flow___MergeFlowContext___init
;
726 fra
.me
.has_broke
= 0;
728 fra
.me
.REG
[0] = NIT_NULL
;
729 fra
.me
.REG
[1] = NIT_NULL
;
730 fra
.me
.REG
[2] = NIT_NULL
;
731 fra
.me
.REG
[3] = NIT_NULL
;
732 fra
.me
.REG
[4] = NIT_NULL
;
733 fra
.me
.REG
[5] = NIT_NULL
;
738 /* ./syntax//flow.nit:204 */
739 fra
.me
.REG
[4] = fra
.me
.REG
[0];
740 /* ./syntax//flow.nit:206 */
741 REGB0
= TAG_Bool(ATTR_flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
742 if (UNTAG_Bool(REGB0
)) {
744 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_flow
, 206);
746 fra
.me
.REG
[5] = ATTR_flow___FlowContext____visitor(fra
.me
.REG
[1]);
747 CALL_flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
748 /* ./syntax//flow.nit:207 */
749 ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
750 /* ./syntax//flow.nit:208 */
751 ATTR_flow___MergeFlowContext____base(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
752 stack_frame_head
= fra
.me
.prev
;
753 init_table
[itpos4
] = 1;
756 val_t
flow___MergeFlowContext___stype(val_t p0
, val_t p1
){
757 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
760 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
761 fra
.me
.file
= LOCATE_flow
;
763 fra
.me
.meth
= LOCATE_flow___MergeFlowContext___stype
;
764 fra
.me
.has_broke
= 0;
766 fra
.me
.REG
[0] = NIT_NULL
;
767 fra
.me
.REG
[1] = NIT_NULL
;
768 fra
.me
.REG
[2] = NIT_NULL
;
769 fra
.me
.REG
[3] = NIT_NULL
;
772 /* ./syntax//flow.nit:213 */
773 REGB0
= TAG_Bool(ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
774 if (UNTAG_Bool(REGB0
)) {
776 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_flow
, 213);
778 fra
.me
.REG
[2] = ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
779 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
780 if (UNTAG_Bool(REGB0
)) {
781 /* ./syntax//flow.nit:214 */
782 REGB0
= TAG_Bool(ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
783 if (UNTAG_Bool(REGB0
)) {
785 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_flow
, 214);
787 fra
.me
.REG
[2] = ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
788 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
791 /* ./syntax//flow.nit:216 */
792 fra
.me
.REG
[3] = CALL_flow___MergeFlowContext___merge_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
793 /* ./syntax//flow.nit:217 */
794 REGB0
= TAG_Bool(ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
795 if (UNTAG_Bool(REGB0
)) {
797 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_flow
, 217);
799 fra
.me
.REG
[0] = ATTR_flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
800 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
801 /* ./syntax//flow.nit:218 */
802 fra
.me
.REG
[2] = fra
.me
.REG
[3];
806 stack_frame_head
= fra
.me
.prev
;
807 return fra
.me
.REG
[2];
809 val_t
flow___MergeFlowContext___merge_stype(val_t p0
, val_t p1
){
810 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
816 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
817 fra
.me
.file
= LOCATE_flow
;
819 fra
.me
.meth
= LOCATE_flow___MergeFlowContext___merge_stype
;
820 fra
.me
.has_broke
= 0;
822 fra
.me
.REG
[0] = NIT_NULL
;
823 fra
.me
.REG
[1] = NIT_NULL
;
824 fra
.me
.REG
[2] = NIT_NULL
;
825 fra
.me
.REG
[3] = NIT_NULL
;
826 fra
.me
.REG
[4] = NIT_NULL
;
827 fra
.me
.REG
[5] = NIT_NULL
;
828 fra
.me
.REG
[6] = NIT_NULL
;
829 fra
.me
.REG
[7] = NIT_NULL
;
830 fra
.me
.REG
[8] = NIT_NULL
;
833 /* ./syntax//flow.nit:224 */
834 fra
.me
.REG
[2] = NIT_NULL
;
835 /* ./syntax//flow.nit:225 */
836 REGB0
= TAG_Bool(false);
837 /* ./syntax//flow.nit:226 */
838 REGB1
= TAG_Bool(ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
839 if (UNTAG_Bool(REGB1
)) {
841 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_flow
, 226);
843 fra
.me
.REG
[3] = ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
844 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
845 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
846 if (UNTAG_Bool(REGB1
)) {
847 nit_abort("Reciever is null", NULL
, LOCATE_flow
, 226);
849 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
850 /* ./syntax//flow.nit:227 */
851 REGB1
= TAG_Bool(ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
852 if (UNTAG_Bool(REGB1
)) {
854 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_flow
, 227);
856 fra
.me
.REG
[4] = ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
857 /* ./../lib/standard//collection//array.nit:234 */
859 /* ./../lib/standard//collection//array.nit:235 */
860 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
861 if (UNTAG_Bool(REGB2
)) {
863 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
865 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
866 /* ./../lib/standard//collection//array.nit:236 */
867 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[4]);
868 /* ./../lib/standard//collection//array.nit:237 */
870 /* ./../lib/standard//collection//array.nit:23 */
871 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
872 if (UNTAG_Bool(REGB2
)) {
874 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
876 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
877 /* ./../lib/standard//kernel.nit:212 */
878 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
879 /* ./../lib/standard//collection//array.nit:237 */
880 if (UNTAG_Bool(REGB2
)) {
881 /* ./../lib/standard//collection//array.nit:238 */
882 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
883 if (UNTAG_Bool(REGB2
)) {
884 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
886 /* ./../lib/standard//collection//array.nit:654 */
887 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB1
)];
888 /* ./syntax//flow.nit:228 */
889 fra
.me
.REG
[6] = CALL_flow___FlowContext___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
890 /* ./syntax//flow.nit:229 */
891 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
892 if (UNTAG_Bool(REGB2
)) {
894 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
895 if (UNTAG_Bool(REGB3
)) {
896 REGB3
= TAG_Bool(false);
899 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
903 if (UNTAG_Bool(REGB2
)) {
904 /* ./syntax//flow.nit:230 */
905 fra
.me
.REG
[7] = NIT_NULL
;
908 /* ./syntax//flow.nit:232 */
909 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[6],fra
.me
.REG
[3]));
910 if (UNTAG_Bool(REGB2
)) {
912 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
913 if (UNTAG_Bool(REGB3
)) {
914 REGB3
= TAG_Bool(false);
917 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
921 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
922 if (UNTAG_Bool(REGB2
)) {
923 /* ./syntax//flow.nit:233 */
924 fra
.me
.REG
[3] = NIT_NULL
;
926 /* ./syntax//flow.nit:235 */
927 REGB2
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
928 if (UNTAG_Bool(REGB2
)) {
929 /* ./syntax//flow.nit:236 */
930 REGB2
= TAG_Bool(true);
932 /* ./syntax//flow.nit:237 */
935 /* ./syntax//flow.nit:239 */
936 REGB2
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
937 if (UNTAG_Bool(REGB2
)) {
938 /* ./syntax//flow.nit:240 */
939 REGB2
= TAG_Bool(true);
941 /* ./syntax//flow.nit:241 */
942 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
943 if (UNTAG_Bool(REGB2
)) {
944 nit_abort("Reciever is null", NULL
, LOCATE_flow
, 241);
946 fra
.me
.REG
[8] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
947 fra
.me
.REG
[6] = fra
.me
.REG
[8];
949 /* ./syntax//flow.nit:243 */
950 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
951 if (UNTAG_Bool(REGB2
)) {
953 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
954 if (UNTAG_Bool(REGB3
)) {
955 REGB3
= TAG_Bool(false);
958 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
962 if (UNTAG_Bool(REGB2
)) {
963 REGB2
= TAG_Bool(true);
965 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
966 if (UNTAG_Bool(REGB3
)) {
967 nit_abort("Reciever is null", NULL
, LOCATE_flow
, 243);
969 REGB3
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
972 if (UNTAG_Bool(REGB2
)) {
973 /* ./syntax//flow.nit:244 */
974 fra
.me
.REG
[2] = fra
.me
.REG
[6];
977 /* ./../lib/standard//collection//array.nit:239 */
979 /* ./../lib/standard//kernel.nit:215 */
980 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
981 /* ./../lib/standard//collection//array.nit:239 */
984 /* ./../lib/standard//collection//array.nit:237 */
989 /* ./syntax//flow.nit:247 */
990 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
991 if (UNTAG_Bool(REGB1
)) {
993 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
994 if (UNTAG_Bool(REGB2
)) {
995 REGB2
= TAG_Bool(false);
998 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1002 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1003 if (UNTAG_Bool(REGB1
)) {
1004 /* ./syntax//flow.nit:248 */
1005 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1008 /* ./syntax//flow.nit:250 */
1009 if (UNTAG_Bool(REGB0
)) {
1010 /* ./syntax//flow.nit:251 */
1011 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1012 if (UNTAG_Bool(REGB0
)) {
1014 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1015 if (UNTAG_Bool(REGB1
)) {
1016 REGB1
= TAG_Bool(false);
1019 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1023 if (UNTAG_Bool(REGB0
)) {
1024 /* ./syntax//flow.nit:252 */
1025 REGB0
= TAG_Bool(ATTR_flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
1026 if (UNTAG_Bool(REGB0
)) {
1028 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_flow
, 252);
1030 fra
.me
.REG
[3] = ATTR_flow___FlowContext____visitor(fra
.me
.REG
[0]);
1031 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1032 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1035 /* ./syntax//flow.nit:254 */
1036 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1037 if (UNTAG_Bool(REGB0
)) {
1038 nit_abort("Reciever is null", NULL
, LOCATE_flow
, 254);
1040 fra
.me
.REG
[3] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1041 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1044 /* ./syntax//flow.nit:257 */
1045 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1046 if (UNTAG_Bool(REGB0
)) {
1048 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1049 if (UNTAG_Bool(REGB1
)) {
1050 REGB1
= TAG_Bool(false);
1053 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1057 if (UNTAG_Bool(REGB0
)) {
1058 /* ./syntax//flow.nit:258 */
1059 REGB0
= TAG_Bool(ATTR_flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1060 if (UNTAG_Bool(REGB0
)) {
1062 nit_abort("Uninitialized attribute %s", "_base", LOCATE_flow
, 258);
1064 fra
.me
.REG
[3] = ATTR_flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1065 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1066 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1069 /* ./syntax//flow.nit:260 */
1070 REGB0
= TAG_Bool(ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1071 if (UNTAG_Bool(REGB0
)) {
1073 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_flow
, 260);
1075 fra
.me
.REG
[3] = ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1076 /* ./../lib/standard//collection//array.nit:234 */
1078 /* ./../lib/standard//collection//array.nit:235 */
1079 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1080 if (UNTAG_Bool(REGB1
)) {
1082 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
1084 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1085 /* ./../lib/standard//collection//array.nit:236 */
1086 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[3]);
1087 /* ./../lib/standard//collection//array.nit:237 */
1089 /* ./../lib/standard//collection//array.nit:23 */
1090 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1091 if (UNTAG_Bool(REGB1
)) {
1093 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1095 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1096 /* ./../lib/standard//kernel.nit:212 */
1097 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1098 /* ./../lib/standard//collection//array.nit:237 */
1099 if (UNTAG_Bool(REGB1
)) {
1100 /* ./../lib/standard//collection//array.nit:238 */
1101 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1102 if (UNTAG_Bool(REGB1
)) {
1103 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
1105 /* ./../lib/standard//collection//array.nit:654 */
1106 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1107 /* ./syntax//flow.nit:261 */
1108 fra
.me
.REG
[4] = CALL_flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1109 /* ./syntax//flow.nit:262 */
1110 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1111 if (UNTAG_Bool(REGB1
)) {
1112 nit_abort("Reciever is null", NULL
, LOCATE_flow
, 262);
1114 REGB1
= CALL_static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1115 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1116 if (UNTAG_Bool(REGB1
)) {
1117 /* ./syntax//flow.nit:263 */
1118 REGB1
= TAG_Bool(ATTR_flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1119 if (UNTAG_Bool(REGB1
)) {
1121 nit_abort("Uninitialized attribute %s", "_base", LOCATE_flow
, 263);
1123 fra
.me
.REG
[4] = ATTR_flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1124 fra
.me
.REG
[4] = CALL_flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1125 fra
.me
.REG
[7] = fra
.me
.REG
[4];
1128 /* ./../lib/standard//collection//array.nit:239 */
1130 /* ./../lib/standard//kernel.nit:215 */
1131 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1132 /* ./../lib/standard//collection//array.nit:239 */
1135 /* ./../lib/standard//collection//array.nit:237 */
1141 /* ./syntax//flow.nit:267 */
1142 fra
.me
.REG
[7] = fra
.me
.REG
[2];
1145 stack_frame_head
= fra
.me
.prev
;
1146 return fra
.me
.REG
[7];
1148 val_t
flow___MergeFlowContext___is_set(val_t p0
, val_t p1
){
1149 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1155 fra
.me
.file
= LOCATE_flow
;
1157 fra
.me
.meth
= LOCATE_flow___MergeFlowContext___is_set
;
1158 fra
.me
.has_broke
= 0;
1159 fra
.me
.REG_size
= 5;
1160 fra
.me
.REG
[0] = NIT_NULL
;
1161 fra
.me
.REG
[1] = NIT_NULL
;
1162 fra
.me
.REG
[2] = NIT_NULL
;
1163 fra
.me
.REG
[3] = NIT_NULL
;
1164 fra
.me
.REG
[4] = NIT_NULL
;
1167 /* ./syntax//flow.nit:272 */
1168 REGB0
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1169 if (UNTAG_Bool(REGB0
)) {
1171 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 272);
1173 fra
.me
.REG
[2] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1174 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1175 if (UNTAG_Bool(REGB0
)) {
1176 /* ./syntax//flow.nit:273 */
1177 REGB0
= TAG_Bool(true);
1180 /* ./syntax//flow.nit:275 */
1181 REGB1
= TAG_Bool(ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1182 if (UNTAG_Bool(REGB1
)) {
1184 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_flow
, 275);
1186 fra
.me
.REG
[2] = ATTR_flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1187 /* ./../lib/standard//collection//array.nit:234 */
1189 /* ./../lib/standard//collection//array.nit:235 */
1190 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1191 if (UNTAG_Bool(REGB2
)) {
1193 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
1195 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1196 /* ./../lib/standard//collection//array.nit:236 */
1197 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[2]);
1198 /* ./../lib/standard//collection//array.nit:237 */
1200 /* ./../lib/standard//collection//array.nit:23 */
1201 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1202 if (UNTAG_Bool(REGB2
)) {
1204 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1206 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1207 /* ./../lib/standard//kernel.nit:212 */
1208 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
1209 /* ./../lib/standard//collection//array.nit:237 */
1210 if (UNTAG_Bool(REGB2
)) {
1211 /* ./../lib/standard//collection//array.nit:238 */
1212 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1213 if (UNTAG_Bool(REGB2
)) {
1214 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
1216 /* ./../lib/standard//collection//array.nit:654 */
1217 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
1218 /* ./syntax//flow.nit:276 */
1219 REGB2
= CALL_flow___FlowContext___is_set(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1220 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1221 if (UNTAG_Bool(REGB2
)) {
1222 /* ./syntax//flow.nit:277 */
1223 REGB2
= TAG_Bool(false);
1227 /* ./../lib/standard//collection//array.nit:239 */
1229 /* ./../lib/standard//kernel.nit:215 */
1230 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1231 /* ./../lib/standard//collection//array.nit:239 */
1234 /* ./../lib/standard//collection//array.nit:237 */
1239 /* ./syntax//flow.nit:280 */
1240 REGB1
= TAG_Bool(ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1241 if (UNTAG_Bool(REGB1
)) {
1243 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_flow
, 280);
1245 fra
.me
.REG
[0] = ATTR_flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1246 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1247 /* ./syntax//flow.nit:281 */
1248 REGB1
= TAG_Bool(true);
1253 stack_frame_head
= fra
.me
.prev
;
1256 val_t
flow___Variable___must_be_set(val_t p0
){
1257 struct {struct stack_frame_t me
;} fra
;
1260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1261 fra
.me
.file
= LOCATE_flow
;
1263 fra
.me
.meth
= LOCATE_flow___Variable___must_be_set
;
1264 fra
.me
.has_broke
= 0;
1265 fra
.me
.REG_size
= 1;
1266 fra
.me
.REG
[0] = NIT_NULL
;
1268 /* ./syntax//flow.nit:289 */
1269 REGB0
= TAG_Bool(false);
1272 stack_frame_head
= fra
.me
.prev
;
1275 val_t
flow___VarVariable___must_be_set(val_t p0
){
1276 struct {struct stack_frame_t me
;} fra
;
1279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1280 fra
.me
.file
= LOCATE_flow
;
1282 fra
.me
.meth
= LOCATE_flow___VarVariable___must_be_set
;
1283 fra
.me
.has_broke
= 0;
1284 fra
.me
.REG_size
= 1;
1285 fra
.me
.REG
[0] = NIT_NULL
;
1287 /* ./syntax//flow.nit:293 */
1288 REGB0
= TAG_Bool(true);
1291 stack_frame_head
= fra
.me
.prev
;