1 /* This C file is generated by NIT to compile module syntax___flow. */
2 #include "syntax___flow._sep.h"
3 void syntax___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_syntax___flow
;
13 fra
.me
.meth
= LOCATE_syntax___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_syntax___flow___Variable___must_be_set(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
26 if (UNTAG_Bool(REGB0
)) {
27 REGB0
= CALL_syntax___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_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
36 if (UNTAG_Bool(REGB0
)) {
38 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 38);
40 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]);
42 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
44 fra
.me
.REG
[4] = BOX_NativeString("Error: variable '");
46 fra
.me
.REG
[4] = NEW_String_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
52 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
53 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
63 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
64 CALL_syntax___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
syntax___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_syntax___flow
;
75 fra
.me
.meth
= LOCATE_syntax___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___syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
86 stack_frame_head
= fra
.me
.prev
;
89 val_t
syntax___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_syntax___flow
;
96 fra
.me
.meth
= LOCATE_syntax___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_syntax___flow___FlowContext___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
106 fra
.me
.REG
[2] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[2]);
107 /* ./syntax//flow.nit:53 */
108 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[2])!=NIT_NULL
);
109 if (UNTAG_Bool(REGB0
)) {
111 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 53);
113 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[2]);
114 CALL_standard___collection___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
syntax___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_syntax___flow
;
128 fra
.me
.meth
= LOCATE_syntax___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_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[1]);
137 /* ./syntax//flow.nit:61 */
138 REGB0
= TAG_Bool(true);
139 ATTR_syntax___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
syntax___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_syntax___flow
;
152 fra
.me
.meth
= LOCATE_syntax___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_syntax___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
syntax___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_syntax___flow
;
179 fra
.me
.meth
= LOCATE_syntax___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:229 */
192 fra
.me
.REG
[3] = fra
.me
.REG
[2];
193 /* ./../lib/standard//collection//array.nit:232 */
195 /* ./../lib/standard//collection//array.nit:233 */
196 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
197 if (UNTAG_Bool(REGB1
)) {
199 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
201 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
202 /* ./../lib/standard//collection//array.nit:234 */
203 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
204 /* ./../lib/standard//collection//array.nit:235 */
206 /* ./../lib/standard//collection//array.nit:23 */
207 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
208 if (UNTAG_Bool(REGB1
)) {
210 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
212 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
213 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
214 if (UNTAG_Bool(REGB2
)) {
216 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
218 /* ./../lib/standard//kernel.nit:215 */
219 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
220 /* ./../lib/standard//collection//array.nit:235 */
221 if (UNTAG_Bool(REGB1
)) {
222 /* ./../lib/standard//collection//array.nit:236 */
223 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
224 if (UNTAG_Bool(REGB1
)) {
225 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
227 /* ./../lib/standard//collection//array.nit:652 */
228 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
229 /* ./syntax//flow.nit:76 */
230 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
231 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
232 if (UNTAG_Bool(REGB1
)) {
234 nit_abort("Assert failed", NULL
, LOCATE_syntax___flow
, 76);
236 /* ./../lib/standard//collection//array.nit:237 */
238 /* ./../lib/standard//kernel.nit:218 */
239 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
240 /* ./../lib/standard//collection//array.nit:237 */
243 /* ./../lib/standard//collection//array.nit:235 */
248 /* ./../lib/standard//collection//array.nit:23 */
249 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
250 if (UNTAG_Bool(REGB0
)) {
252 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
254 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
255 /* ./syntax//flow.nit:77 */
257 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
258 if (UNTAG_Bool(REGB2
)) {
260 /* ./../lib/standard//kernel.nit:210 */
261 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
262 /* ./syntax//flow.nit:77 */
265 if (UNTAG_Bool(REGB2
)) {
266 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
269 /* ./syntax//flow.nit:78 */
270 fra
.me
.REG
[2] = NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
271 fra
.me
.REG
[4] = fra
.me
.REG
[2];
274 stack_frame_head
= fra
.me
.prev
;
275 return fra
.me
.REG
[4];
277 val_t
syntax___flow___FlowContext___merge_reash(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
278 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
283 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
284 fra
.me
.file
= LOCATE_syntax___flow
;
286 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___merge_reash
;
287 fra
.me
.has_broke
= 0;
289 fra
.me
.REG
[0] = NIT_NULL
;
290 fra
.me
.REG
[1] = NIT_NULL
;
291 fra
.me
.REG
[2] = NIT_NULL
;
292 fra
.me
.REG
[3] = NIT_NULL
;
293 fra
.me
.REG
[4] = NIT_NULL
;
294 fra
.me
.REG
[5] = NIT_NULL
;
299 /* ./syntax//flow.nit:86 */
300 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
301 if (UNTAG_Bool(REGB0
)) {
302 /* ./syntax//flow.nit:87 */
303 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
304 if (UNTAG_Bool(REGB0
)) {
305 /* ./syntax//flow.nit:88 */
306 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
309 /* ./syntax//flow.nit:90 */
310 fra
.me
.REG
[5] = fra
.me
.REG
[3];
311 /* ./syntax//flow.nit:91 */
312 fra
.me
.REG
[3] = fra
.me
.REG
[2];
313 /* ./syntax//flow.nit:92 */
314 fra
.me
.REG
[2] = fra
.me
.REG
[5];
317 /* ./syntax//flow.nit:96 */
318 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
319 if (UNTAG_Bool(REGB0
)) {
320 REGB0
= TAG_Bool(true);
322 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
323 if (UNTAG_Bool(REGB1
)) {
325 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
330 if (UNTAG_Bool(REGB0
)) {
331 /* ./syntax//flow.nit:97 */
332 fra
.me
.REG
[4] = fra
.me
.REG
[2];
335 /* ./syntax//flow.nit:104 */
337 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
340 fra
.me
.REG
[5] = CALL_syntax___flow___FlowContext___merge(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
341 fra
.me
.REG
[4] = fra
.me
.REG
[5];
345 stack_frame_head
= fra
.me
.prev
;
346 return fra
.me
.REG
[4];
348 val_t
syntax___flow___FlowContext___node(val_t p0
){
349 struct {struct stack_frame_t me
;} fra
;
352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
353 fra
.me
.file
= LOCATE_syntax___flow
;
355 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___node
;
356 fra
.me
.has_broke
= 0;
358 fra
.me
.REG
[0] = NIT_NULL
;
360 /* ./syntax//flow.nit:111 */
361 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0])!=NIT_NULL
);
362 if (UNTAG_Bool(REGB0
)) {
364 nit_abort("Uninitialized attribute %s", "_node", LOCATE_syntax___flow
, 111);
366 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0]);
367 stack_frame_head
= fra
.me
.prev
;
368 return fra
.me
.REG
[0];
370 void syntax___flow___FlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
371 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___FlowContext
].i
;
372 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
374 if (init_table
[itpos0
]) return;
375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
376 fra
.me
.file
= LOCATE_syntax___flow
;
378 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___init
;
379 fra
.me
.has_broke
= 0;
381 fra
.me
.REG
[0] = NIT_NULL
;
382 fra
.me
.REG
[1] = NIT_NULL
;
383 fra
.me
.REG
[2] = NIT_NULL
;
387 /* ./syntax//flow.nit:116 */
388 ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
389 /* ./syntax//flow.nit:117 */
390 ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
391 stack_frame_head
= fra
.me
.prev
;
392 init_table
[itpos0
] = 1;
395 val_t
syntax___flow___FlowContext___unreash(val_t p0
){
396 struct {struct stack_frame_t me
;} fra
;
399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
400 fra
.me
.file
= LOCATE_syntax___flow
;
402 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___unreash
;
403 fra
.me
.has_broke
= 0;
405 fra
.me
.REG
[0] = NIT_NULL
;
407 /* ./syntax//flow.nit:120 */
408 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____unreash(fra
.me
.REG
[0])!=NIT_NULL
);
409 if (UNTAG_Bool(REGB0
)) {
411 nit_abort("Uninitialized attribute %s", "_unreash", LOCATE_syntax___flow
, 120);
413 REGB0
= ATTR_syntax___flow___FlowContext____unreash(fra
.me
.REG
[0]);
414 stack_frame_head
= fra
.me
.prev
;
417 val_t
syntax___flow___FlowContext___already_unreash(val_t p0
){
418 struct {struct stack_frame_t me
;} fra
;
421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
422 fra
.me
.file
= LOCATE_syntax___flow
;
424 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___already_unreash
;
425 fra
.me
.has_broke
= 0;
427 fra
.me
.REG
[0] = NIT_NULL
;
429 /* ./syntax//flow.nit:123 */
430 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0])!=NIT_NULL
);
431 if (UNTAG_Bool(REGB0
)) {
433 nit_abort("Uninitialized attribute %s", "_already_unreash", LOCATE_syntax___flow
, 123);
435 REGB0
= ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0]);
436 stack_frame_head
= fra
.me
.prev
;
439 void syntax___flow___FlowContext___already_unreash__eq(val_t p0
, val_t p1
){
440 struct {struct stack_frame_t me
;} fra
;
443 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
444 fra
.me
.file
= LOCATE_syntax___flow
;
446 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___already_unreash__eq
;
447 fra
.me
.has_broke
= 0;
449 fra
.me
.REG
[0] = NIT_NULL
;
452 /* ./syntax//flow.nit:123 */
453 ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0]) = REGB0
;
454 stack_frame_head
= fra
.me
.prev
;
457 val_t
syntax___flow___FlowContext___set_variables(val_t p0
){
458 struct {struct stack_frame_t me
;} fra
;
461 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
462 fra
.me
.file
= LOCATE_syntax___flow
;
464 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___set_variables
;
465 fra
.me
.has_broke
= 0;
467 fra
.me
.REG
[0] = NIT_NULL
;
469 /* ./syntax//flow.nit:127 */
470 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
471 if (UNTAG_Bool(REGB0
)) {
473 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 127);
475 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
476 stack_frame_head
= fra
.me
.prev
;
477 return fra
.me
.REG
[0];
479 val_t
syntax___flow___FlowContext___is_set(val_t p0
, val_t p1
){
480 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
484 fra
.me
.file
= LOCATE_syntax___flow
;
486 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___is_set
;
487 fra
.me
.has_broke
= 0;
489 fra
.me
.REG
[0] = NIT_NULL
;
490 fra
.me
.REG
[1] = NIT_NULL
;
493 /* ./syntax//flow.nit:133 */
494 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
495 if (UNTAG_Bool(REGB0
)) {
497 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 133);
499 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
500 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
503 stack_frame_head
= fra
.me
.prev
;
506 void syntax___flow___RootFlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
507 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___RootFlowContext
].i
;
508 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
510 if (init_table
[itpos1
]) return;
511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
512 fra
.me
.file
= LOCATE_syntax___flow
;
514 fra
.me
.meth
= LOCATE_syntax___flow___RootFlowContext___init
;
515 fra
.me
.has_broke
= 0;
517 fra
.me
.REG
[0] = NIT_NULL
;
518 fra
.me
.REG
[1] = NIT_NULL
;
519 fra
.me
.REG
[2] = NIT_NULL
;
523 /* ./syntax//flow.nit:142 */
524 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
525 stack_frame_head
= fra
.me
.prev
;
526 init_table
[itpos1
] = 1;
529 val_t
syntax___flow___SubFlowContext___prev(val_t p0
){
530 struct {struct stack_frame_t me
;} fra
;
533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
534 fra
.me
.file
= LOCATE_syntax___flow
;
536 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___prev
;
537 fra
.me
.has_broke
= 0;
539 fra
.me
.REG
[0] = NIT_NULL
;
541 /* ./syntax//flow.nit:149 */
542 REGB0
= TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
543 if (UNTAG_Bool(REGB0
)) {
545 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow
, 149);
547 fra
.me
.REG
[0] = ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]);
548 stack_frame_head
= fra
.me
.prev
;
549 return fra
.me
.REG
[0];
551 val_t
syntax___flow___SubFlowContext___is_set(val_t p0
, val_t p1
){
552 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
557 fra
.me
.file
= LOCATE_syntax___flow
;
559 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___is_set
;
560 fra
.me
.has_broke
= 0;
562 fra
.me
.REG
[0] = NIT_NULL
;
563 fra
.me
.REG
[1] = NIT_NULL
;
564 fra
.me
.REG
[2] = NIT_NULL
;
567 /* ./syntax//flow.nit:153 */
568 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
569 if (UNTAG_Bool(REGB0
)) {
571 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 153);
573 fra
.me
.REG
[2] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
574 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
575 if (UNTAG_Bool(REGB0
)) {
576 REGB0
= TAG_Bool(true);
578 REGB1
= TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
579 if (UNTAG_Bool(REGB1
)) {
581 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow
, 153);
583 fra
.me
.REG
[0] = ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]);
584 REGB1
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
589 stack_frame_head
= fra
.me
.prev
;
592 val_t
syntax___flow___SubFlowContext___stype(val_t p0
, val_t p1
){
593 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
595 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
596 fra
.me
.file
= LOCATE_syntax___flow
;
598 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___stype
;
599 fra
.me
.has_broke
= 0;
601 fra
.me
.REG
[0] = NIT_NULL
;
602 fra
.me
.REG
[1] = NIT_NULL
;
605 /* ./syntax//flow.nit:158 */
606 fra
.me
.REG
[0] = CALL_syntax___flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
607 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
610 stack_frame_head
= fra
.me
.prev
;
611 return fra
.me
.REG
[1];
613 void syntax___flow___SubFlowContext___with_prev(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
614 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___SubFlowContext
].i
;
615 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
618 if (init_table
[itpos2
]) return;
619 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
620 fra
.me
.file
= LOCATE_syntax___flow
;
622 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___with_prev
;
623 fra
.me
.has_broke
= 0;
625 fra
.me
.REG
[0] = NIT_NULL
;
626 fra
.me
.REG
[1] = NIT_NULL
;
627 fra
.me
.REG
[2] = NIT_NULL
;
628 fra
.me
.REG
[3] = NIT_NULL
;
632 /* ./syntax//flow.nit:163 */
633 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
634 if (UNTAG_Bool(REGB0
)) {
636 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 163);
638 fra
.me
.REG
[3] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1]);
639 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2], init_table
);
640 /* ./syntax//flow.nit:164 */
641 ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
642 stack_frame_head
= fra
.me
.prev
;
643 init_table
[itpos2
] = 1;
646 val_t
syntax___flow___CastFlowContext___stype(val_t p0
, val_t p1
){
647 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
652 fra
.me
.file
= LOCATE_syntax___flow
;
654 fra
.me
.meth
= LOCATE_syntax___flow___CastFlowContext___stype
;
655 fra
.me
.has_broke
= 0;
657 fra
.me
.REG
[0] = NIT_NULL
;
658 fra
.me
.REG
[1] = NIT_NULL
;
659 fra
.me
.REG
[2] = NIT_NULL
;
662 /* ./syntax//flow.nit:179 */
663 REGB0
= TAG_Bool(ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0])!=NIT_NULL
);
664 if (UNTAG_Bool(REGB0
)) {
666 nit_abort("Uninitialized attribute %s", "_variable", LOCATE_syntax___flow
, 179);
668 fra
.me
.REG
[2] = ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0]);
669 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
670 if (UNTAG_Bool(REGB0
)) {
672 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
675 if (UNTAG_Bool(REGB0
)) {
676 /* ./syntax//flow.nit:180 */
677 fra
.me
.REG
[2] = ATTR_syntax___flow___CastFlowContext____stype(fra
.me
.REG
[0]);
680 /* ./syntax//flow.nit:182 */
681 fra
.me
.REG
[0] = CALL_syntax___flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
682 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
683 fra
.me
.REG
[2] = fra
.me
.REG
[1];
687 stack_frame_head
= fra
.me
.prev
;
688 return fra
.me
.REG
[2];
690 void syntax___flow___CastFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, int* init_table
){
691 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___CastFlowContext
].i
;
692 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
694 if (init_table
[itpos3
]) return;
695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
696 fra
.me
.file
= LOCATE_syntax___flow
;
698 fra
.me
.meth
= LOCATE_syntax___flow___CastFlowContext___init
;
699 fra
.me
.has_broke
= 0;
701 fra
.me
.REG
[0] = NIT_NULL
;
702 fra
.me
.REG
[1] = NIT_NULL
;
703 fra
.me
.REG
[2] = NIT_NULL
;
704 fra
.me
.REG
[3] = NIT_NULL
;
705 fra
.me
.REG
[4] = NIT_NULL
;
711 /* ./syntax//flow.nit:188 */
712 CALL_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
713 /* ./syntax//flow.nit:189 */
714 ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
715 /* ./syntax//flow.nit:190 */
716 ATTR_syntax___flow___CastFlowContext____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
717 stack_frame_head
= fra
.me
.prev
;
718 init_table
[itpos3
] = 1;
721 void syntax___flow___MergeFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
722 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___MergeFlowContext
].i
;
723 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
726 if (init_table
[itpos4
]) return;
727 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
728 fra
.me
.file
= LOCATE_syntax___flow
;
730 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___init
;
731 fra
.me
.has_broke
= 0;
733 fra
.me
.REG
[0] = NIT_NULL
;
734 fra
.me
.REG
[1] = NIT_NULL
;
735 fra
.me
.REG
[2] = NIT_NULL
;
736 fra
.me
.REG
[3] = NIT_NULL
;
737 fra
.me
.REG
[4] = NIT_NULL
;
738 fra
.me
.REG
[5] = NIT_NULL
;
743 /* ./syntax//flow.nit:204 */
744 fra
.me
.REG
[4] = fra
.me
.REG
[0];
745 /* ./syntax//flow.nit:206 */
746 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
747 if (UNTAG_Bool(REGB0
)) {
749 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 206);
751 fra
.me
.REG
[5] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1]);
752 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
753 /* ./syntax//flow.nit:207 */
754 ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
755 /* ./syntax//flow.nit:208 */
756 ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
757 stack_frame_head
= fra
.me
.prev
;
758 init_table
[itpos4
] = 1;
761 val_t
syntax___flow___MergeFlowContext___stype(val_t p0
, val_t p1
){
762 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
765 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
766 fra
.me
.file
= LOCATE_syntax___flow
;
768 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___stype
;
769 fra
.me
.has_broke
= 0;
771 fra
.me
.REG
[0] = NIT_NULL
;
772 fra
.me
.REG
[1] = NIT_NULL
;
773 fra
.me
.REG
[2] = NIT_NULL
;
774 fra
.me
.REG
[3] = NIT_NULL
;
777 /* ./syntax//flow.nit:213 */
778 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
779 if (UNTAG_Bool(REGB0
)) {
781 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 213);
783 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
784 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
785 if (UNTAG_Bool(REGB0
)) {
786 /* ./syntax//flow.nit:214 */
787 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
788 if (UNTAG_Bool(REGB0
)) {
790 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 214);
792 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
793 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
796 /* ./syntax//flow.nit:216 */
797 fra
.me
.REG
[3] = CALL_syntax___flow___MergeFlowContext___merge_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
798 /* ./syntax//flow.nit:217 */
799 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
800 if (UNTAG_Bool(REGB0
)) {
802 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 217);
804 fra
.me
.REG
[0] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
805 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
806 /* ./syntax//flow.nit:218 */
807 fra
.me
.REG
[2] = fra
.me
.REG
[3];
811 stack_frame_head
= fra
.me
.prev
;
812 return fra
.me
.REG
[2];
814 val_t
syntax___flow___MergeFlowContext___merge_stype(val_t p0
, val_t p1
){
815 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
821 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
822 fra
.me
.file
= LOCATE_syntax___flow
;
824 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___merge_stype
;
825 fra
.me
.has_broke
= 0;
827 fra
.me
.REG
[0] = NIT_NULL
;
828 fra
.me
.REG
[1] = NIT_NULL
;
829 fra
.me
.REG
[2] = NIT_NULL
;
830 fra
.me
.REG
[3] = NIT_NULL
;
831 fra
.me
.REG
[4] = NIT_NULL
;
832 fra
.me
.REG
[5] = NIT_NULL
;
833 fra
.me
.REG
[6] = NIT_NULL
;
834 fra
.me
.REG
[7] = NIT_NULL
;
835 fra
.me
.REG
[8] = NIT_NULL
;
838 /* ./syntax//flow.nit:224 */
839 fra
.me
.REG
[2] = NIT_NULL
;
840 /* ./syntax//flow.nit:225 */
841 REGB0
= TAG_Bool(false);
842 /* ./syntax//flow.nit:226 */
843 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
844 if (UNTAG_Bool(REGB1
)) {
846 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 226);
848 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
849 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
850 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
851 if (UNTAG_Bool(REGB1
)) {
852 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 226);
854 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
855 /* ./syntax//flow.nit:227 */
856 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
857 if (UNTAG_Bool(REGB1
)) {
859 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 227);
861 fra
.me
.REG
[4] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
862 /* ./../lib/standard//collection//array.nit:232 */
864 /* ./../lib/standard//collection//array.nit:233 */
865 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
866 if (UNTAG_Bool(REGB2
)) {
868 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
870 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
871 /* ./../lib/standard//collection//array.nit:234 */
872 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
873 /* ./../lib/standard//collection//array.nit:235 */
875 /* ./../lib/standard//collection//array.nit:23 */
876 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
877 if (UNTAG_Bool(REGB2
)) {
879 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
881 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
882 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
883 if (UNTAG_Bool(REGB3
)) {
885 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
887 /* ./../lib/standard//kernel.nit:215 */
888 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
889 /* ./../lib/standard//collection//array.nit:235 */
890 if (UNTAG_Bool(REGB2
)) {
891 /* ./../lib/standard//collection//array.nit:236 */
892 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
893 if (UNTAG_Bool(REGB2
)) {
894 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
896 /* ./../lib/standard//collection//array.nit:652 */
897 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB1
)];
898 /* ./syntax//flow.nit:228 */
899 fra
.me
.REG
[6] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
900 /* ./syntax//flow.nit:229 */
901 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
902 if (UNTAG_Bool(REGB2
)) {
904 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
905 if (UNTAG_Bool(REGB3
)) {
906 REGB3
= TAG_Bool(false);
909 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
913 if (UNTAG_Bool(REGB2
)) {
914 /* ./syntax//flow.nit:230 */
915 fra
.me
.REG
[7] = NIT_NULL
;
918 /* ./syntax//flow.nit:232 */
919 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[6],fra
.me
.REG
[3]));
920 if (UNTAG_Bool(REGB2
)) {
922 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
923 if (UNTAG_Bool(REGB3
)) {
924 REGB3
= TAG_Bool(false);
927 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
931 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
932 if (UNTAG_Bool(REGB2
)) {
933 /* ./syntax//flow.nit:233 */
934 fra
.me
.REG
[3] = NIT_NULL
;
936 /* ./syntax//flow.nit:235 */
937 REGB2
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
938 if (UNTAG_Bool(REGB2
)) {
939 /* ./syntax//flow.nit:236 */
940 REGB2
= TAG_Bool(true);
942 /* ./syntax//flow.nit:237 */
945 /* ./syntax//flow.nit:239 */
946 REGB2
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
947 if (UNTAG_Bool(REGB2
)) {
948 /* ./syntax//flow.nit:240 */
949 REGB2
= TAG_Bool(true);
951 /* ./syntax//flow.nit:241 */
952 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
953 if (UNTAG_Bool(REGB2
)) {
954 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 241);
956 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
957 fra
.me
.REG
[6] = fra
.me
.REG
[8];
959 /* ./syntax//flow.nit:243 */
960 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
961 if (UNTAG_Bool(REGB2
)) {
963 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
964 if (UNTAG_Bool(REGB3
)) {
965 REGB3
= TAG_Bool(false);
968 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
972 if (UNTAG_Bool(REGB2
)) {
973 REGB2
= TAG_Bool(true);
975 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
976 if (UNTAG_Bool(REGB3
)) {
977 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 243);
979 REGB3
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
982 if (UNTAG_Bool(REGB2
)) {
983 /* ./syntax//flow.nit:244 */
984 fra
.me
.REG
[2] = fra
.me
.REG
[6];
987 /* ./../lib/standard//collection//array.nit:237 */
989 /* ./../lib/standard//kernel.nit:218 */
990 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
991 /* ./../lib/standard//collection//array.nit:237 */
994 /* ./../lib/standard//collection//array.nit:235 */
999 /* ./syntax//flow.nit:247 */
1000 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1001 if (UNTAG_Bool(REGB1
)) {
1003 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1004 if (UNTAG_Bool(REGB2
)) {
1005 REGB2
= TAG_Bool(false);
1008 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1012 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1013 if (UNTAG_Bool(REGB1
)) {
1014 /* ./syntax//flow.nit:248 */
1015 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1018 /* ./syntax//flow.nit:250 */
1019 if (UNTAG_Bool(REGB0
)) {
1020 /* ./syntax//flow.nit:251 */
1021 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1022 if (UNTAG_Bool(REGB0
)) {
1024 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1025 if (UNTAG_Bool(REGB1
)) {
1026 REGB1
= TAG_Bool(false);
1029 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1033 if (UNTAG_Bool(REGB0
)) {
1034 /* ./syntax//flow.nit:252 */
1035 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
1036 if (UNTAG_Bool(REGB0
)) {
1038 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 252);
1040 fra
.me
.REG
[3] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]);
1041 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1042 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1045 /* ./syntax//flow.nit:254 */
1046 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1047 if (UNTAG_Bool(REGB0
)) {
1048 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 254);
1050 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1051 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1054 /* ./syntax//flow.nit:257 */
1055 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1056 if (UNTAG_Bool(REGB0
)) {
1058 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1059 if (UNTAG_Bool(REGB1
)) {
1060 REGB1
= TAG_Bool(false);
1063 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1067 if (UNTAG_Bool(REGB0
)) {
1068 /* ./syntax//flow.nit:258 */
1069 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1070 if (UNTAG_Bool(REGB0
)) {
1072 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow
, 258);
1074 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1075 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1076 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1079 /* ./syntax//flow.nit:260 */
1080 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1081 if (UNTAG_Bool(REGB0
)) {
1083 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 260);
1085 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1086 /* ./../lib/standard//collection//array.nit:232 */
1088 /* ./../lib/standard//collection//array.nit:233 */
1089 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1090 if (UNTAG_Bool(REGB1
)) {
1092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
1094 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1095 /* ./../lib/standard//collection//array.nit:234 */
1096 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1097 /* ./../lib/standard//collection//array.nit:235 */
1099 /* ./../lib/standard//collection//array.nit:23 */
1100 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1101 if (UNTAG_Bool(REGB1
)) {
1103 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1105 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1106 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1107 if (UNTAG_Bool(REGB2
)) {
1109 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1111 /* ./../lib/standard//kernel.nit:215 */
1112 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1113 /* ./../lib/standard//collection//array.nit:235 */
1114 if (UNTAG_Bool(REGB1
)) {
1115 /* ./../lib/standard//collection//array.nit:236 */
1116 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1117 if (UNTAG_Bool(REGB1
)) {
1118 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
1120 /* ./../lib/standard//collection//array.nit:652 */
1121 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1122 /* ./syntax//flow.nit:261 */
1123 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1124 /* ./syntax//flow.nit:262 */
1125 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1126 if (UNTAG_Bool(REGB1
)) {
1127 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 262);
1129 REGB1
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1130 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1131 if (UNTAG_Bool(REGB1
)) {
1132 /* ./syntax//flow.nit:263 */
1133 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1134 if (UNTAG_Bool(REGB1
)) {
1136 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow
, 263);
1138 fra
.me
.REG
[4] = ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1139 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1140 fra
.me
.REG
[7] = fra
.me
.REG
[4];
1143 /* ./../lib/standard//collection//array.nit:237 */
1145 /* ./../lib/standard//kernel.nit:218 */
1146 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1147 /* ./../lib/standard//collection//array.nit:237 */
1150 /* ./../lib/standard//collection//array.nit:235 */
1156 /* ./syntax//flow.nit:267 */
1157 fra
.me
.REG
[7] = fra
.me
.REG
[2];
1160 stack_frame_head
= fra
.me
.prev
;
1161 return fra
.me
.REG
[7];
1163 val_t
syntax___flow___MergeFlowContext___is_set(val_t p0
, val_t p1
){
1164 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1170 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1171 fra
.me
.file
= LOCATE_syntax___flow
;
1173 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___is_set
;
1174 fra
.me
.has_broke
= 0;
1175 fra
.me
.REG_size
= 5;
1176 fra
.me
.REG
[0] = NIT_NULL
;
1177 fra
.me
.REG
[1] = NIT_NULL
;
1178 fra
.me
.REG
[2] = NIT_NULL
;
1179 fra
.me
.REG
[3] = NIT_NULL
;
1180 fra
.me
.REG
[4] = NIT_NULL
;
1183 /* ./syntax//flow.nit:272 */
1184 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1185 if (UNTAG_Bool(REGB0
)) {
1187 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 272);
1189 fra
.me
.REG
[2] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1190 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1191 if (UNTAG_Bool(REGB0
)) {
1192 /* ./syntax//flow.nit:273 */
1193 REGB0
= TAG_Bool(true);
1196 /* ./syntax//flow.nit:275 */
1197 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1198 if (UNTAG_Bool(REGB1
)) {
1200 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 275);
1202 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1203 /* ./../lib/standard//collection//array.nit:232 */
1205 /* ./../lib/standard//collection//array.nit:233 */
1206 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1207 if (UNTAG_Bool(REGB2
)) {
1209 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
1211 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1212 /* ./../lib/standard//collection//array.nit:234 */
1213 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1214 /* ./../lib/standard//collection//array.nit:235 */
1216 /* ./../lib/standard//collection//array.nit:23 */
1217 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1218 if (UNTAG_Bool(REGB2
)) {
1220 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1222 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1223 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
1224 if (UNTAG_Bool(REGB3
)) {
1226 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1228 /* ./../lib/standard//kernel.nit:215 */
1229 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
1230 /* ./../lib/standard//collection//array.nit:235 */
1231 if (UNTAG_Bool(REGB2
)) {
1232 /* ./../lib/standard//collection//array.nit:236 */
1233 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1234 if (UNTAG_Bool(REGB2
)) {
1235 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
1237 /* ./../lib/standard//collection//array.nit:652 */
1238 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
1239 /* ./syntax//flow.nit:276 */
1240 REGB2
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1241 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1242 if (UNTAG_Bool(REGB2
)) {
1243 /* ./syntax//flow.nit:277 */
1244 REGB2
= TAG_Bool(false);
1248 /* ./../lib/standard//collection//array.nit:237 */
1250 /* ./../lib/standard//kernel.nit:218 */
1251 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1252 /* ./../lib/standard//collection//array.nit:237 */
1255 /* ./../lib/standard//collection//array.nit:235 */
1260 /* ./syntax//flow.nit:280 */
1261 REGB1
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1262 if (UNTAG_Bool(REGB1
)) {
1264 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 280);
1266 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1268 /* ./syntax//flow.nit:281 */
1269 REGB1
= TAG_Bool(true);
1274 stack_frame_head
= fra
.me
.prev
;
1277 val_t
syntax___flow___Variable___must_be_set(val_t p0
){
1278 struct {struct stack_frame_t me
;} fra
;
1281 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1282 fra
.me
.file
= LOCATE_syntax___flow
;
1284 fra
.me
.meth
= LOCATE_syntax___flow___Variable___must_be_set
;
1285 fra
.me
.has_broke
= 0;
1286 fra
.me
.REG_size
= 1;
1287 fra
.me
.REG
[0] = NIT_NULL
;
1289 /* ./syntax//flow.nit:289 */
1290 REGB0
= TAG_Bool(false);
1293 stack_frame_head
= fra
.me
.prev
;
1296 val_t
syntax___flow___VarVariable___must_be_set(val_t p0
){
1297 struct {struct stack_frame_t me
;} fra
;
1300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1301 fra
.me
.file
= LOCATE_syntax___flow
;
1303 fra
.me
.meth
= LOCATE_syntax___flow___VarVariable___must_be_set
;
1304 fra
.me
.has_broke
= 0;
1305 fra
.me
.REG_size
= 1;
1306 fra
.me
.REG
[0] = NIT_NULL
;
1308 /* ./syntax//flow.nit:293 */
1309 REGB0
= TAG_Bool(true);
1312 stack_frame_head
= fra
.me
.prev
;