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
.nitni_local_ref_head
= NULL
;
17 fra
.me
.REG
[0] = NIT_NULL
;
18 fra
.me
.REG
[1] = NIT_NULL
;
19 fra
.me
.REG
[2] = NIT_NULL
;
20 fra
.me
.REG
[3] = NIT_NULL
;
21 fra
.me
.REG
[4] = NIT_NULL
;
25 /* syntax/flow.nit:37 */
26 REGB0
= CALL_syntax___flow___Variable___must_be_set(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
27 if (UNTAG_Bool(REGB0
)) {
28 REGB0
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
29 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
31 REGB1
= TAG_Bool(false);
34 if (UNTAG_Bool(REGB0
)) {
35 /* syntax/flow.nit:38 */
36 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
37 if (UNTAG_Bool(REGB0
)) {
39 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 38);
41 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]);
43 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
45 fra
.me
.REG
[4] = BOX_NativeString("Error: variable '");
47 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
48 once_value_1
= fra
.me
.REG
[4];
49 register_static_object(&once_value_1
);
50 } else fra
.me
.REG
[4] = once_value_1
;
51 fra
.me
.REG
[4] = fra
.me
.REG
[4];
52 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
53 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
54 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
56 fra
.me
.REG
[2] = BOX_NativeString("' is possibly unset.");
58 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
59 once_value_2
= fra
.me
.REG
[2];
60 register_static_object(&once_value_2
);
61 } else fra
.me
.REG
[2] = once_value_2
;
62 fra
.me
.REG
[2] = fra
.me
.REG
[2];
63 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
64 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
65 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
67 stack_frame_head
= fra
.me
.prev
;
70 val_t
syntax___flow___FlowContext___stype(val_t p0
, val_t p1
){
71 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
73 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
74 fra
.me
.file
= LOCATE_syntax___flow
;
76 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___stype
;
79 fra
.me
.nitni_local_ref_head
= NULL
;
80 fra
.me
.REG
[0] = NIT_NULL
;
81 fra
.me
.REG
[1] = NIT_NULL
;
84 /* syntax/flow.nit:46 */
85 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
88 stack_frame_head
= fra
.me
.prev
;
91 val_t
syntax___flow___FlowContext___sub_setvariable(val_t p0
, val_t p1
){
92 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
95 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
96 fra
.me
.file
= LOCATE_syntax___flow
;
98 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___sub_setvariable
;
101 fra
.me
.nitni_local_ref_head
= NULL
;
102 fra
.me
.REG
[0] = NIT_NULL
;
103 fra
.me
.REG
[1] = NIT_NULL
;
104 fra
.me
.REG
[2] = NIT_NULL
;
107 /* syntax/flow.nit:52 */
108 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
109 fra
.me
.REG
[2] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[2]);
110 /* syntax/flow.nit:53 */
111 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[2])!=NIT_NULL
);
112 if (UNTAG_Bool(REGB0
)) {
114 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 53);
116 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[2]);
117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
118 /* syntax/flow.nit:54 */
121 stack_frame_head
= fra
.me
.prev
;
122 return fra
.me
.REG
[2];
124 val_t
syntax___flow___FlowContext___sub_unreash(val_t p0
, val_t p1
){
125 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
128 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
129 fra
.me
.file
= LOCATE_syntax___flow
;
131 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___sub_unreash
;
132 fra
.me
.has_broke
= 0;
134 fra
.me
.nitni_local_ref_head
= NULL
;
135 fra
.me
.REG
[0] = NIT_NULL
;
136 fra
.me
.REG
[1] = NIT_NULL
;
139 /* syntax/flow.nit:60 */
140 fra
.me
.REG
[1] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0], fra
.me
.REG
[1]);
141 /* syntax/flow.nit:61 */
142 REGB0
= TAG_Bool(true);
143 ATTR_syntax___flow___FlowContext____unreash(fra
.me
.REG
[1]) = REGB0
;
144 /* syntax/flow.nit:62 */
147 stack_frame_head
= fra
.me
.prev
;
148 return fra
.me
.REG
[1];
150 val_t
syntax___flow___FlowContext___sub_with(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
151 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
154 fra
.me
.file
= LOCATE_syntax___flow
;
156 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___sub_with
;
157 fra
.me
.has_broke
= 0;
159 fra
.me
.nitni_local_ref_head
= NULL
;
160 fra
.me
.REG
[0] = NIT_NULL
;
161 fra
.me
.REG
[1] = NIT_NULL
;
162 fra
.me
.REG
[2] = NIT_NULL
;
163 fra
.me
.REG
[3] = NIT_NULL
;
168 /* syntax/flow.nit:68 */
169 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]);
172 stack_frame_head
= fra
.me
.prev
;
173 return fra
.me
.REG
[3];
175 val_t
syntax___flow___FlowContext___merge(val_t p0
, val_t p1
, val_t p2
){
176 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
181 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
182 fra
.me
.file
= LOCATE_syntax___flow
;
184 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___merge
;
185 fra
.me
.has_broke
= 0;
187 fra
.me
.nitni_local_ref_head
= NULL
;
188 fra
.me
.REG
[0] = NIT_NULL
;
189 fra
.me
.REG
[1] = NIT_NULL
;
190 fra
.me
.REG
[2] = NIT_NULL
;
191 fra
.me
.REG
[3] = NIT_NULL
;
192 fra
.me
.REG
[4] = NIT_NULL
;
193 fra
.me
.REG
[5] = NIT_NULL
;
197 /* ../lib/standard/collection/array.nit:266 */
198 fra
.me
.REG
[3] = fra
.me
.REG
[2];
199 /* ../lib/standard/collection/array.nit:269 */
201 /* ../lib/standard/collection/array.nit:270 */
202 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
203 if (UNTAG_Bool(REGB1
)) {
205 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
207 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
208 /* ../lib/standard/collection/array.nit:271 */
209 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
210 /* ../lib/standard/collection/array.nit:272 */
212 /* ../lib/standard/collection/array.nit:24 */
213 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
214 if (UNTAG_Bool(REGB1
)) {
216 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
218 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
219 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
220 if (UNTAG_Bool(REGB2
)) {
222 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
224 /* ../lib/standard/kernel.nit:232 */
225 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
226 /* ../lib/standard/collection/array.nit:272 */
227 if (UNTAG_Bool(REGB1
)) {
228 /* ../lib/standard/collection/array.nit:273 */
229 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
230 if (UNTAG_Bool(REGB1
)) {
231 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
233 /* ../lib/standard/collection/array.nit:718 */
234 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
235 /* syntax/flow.nit:76 */
236 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
237 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
238 if (UNTAG_Bool(REGB1
)) {
240 nit_abort("Assert failed", NULL
, LOCATE_syntax___flow
, 76);
242 /* ../lib/standard/collection/array.nit:274 */
244 /* ../lib/standard/kernel.nit:235 */
245 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
246 /* ../lib/standard/collection/array.nit:274 */
249 /* ../lib/standard/collection/array.nit:272 */
254 /* ../lib/standard/collection/array.nit:24 */
255 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
256 if (UNTAG_Bool(REGB0
)) {
258 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
260 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
261 /* syntax/flow.nit:77 */
263 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
264 if (UNTAG_Bool(REGB2
)) {
266 /* ../lib/standard/kernel.nit:227 */
267 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
268 /* syntax/flow.nit:77 */
271 if (UNTAG_Bool(REGB2
)) {
272 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
275 /* syntax/flow.nit:78 */
276 fra
.me
.REG
[2] = NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
277 fra
.me
.REG
[4] = fra
.me
.REG
[2];
280 stack_frame_head
= fra
.me
.prev
;
281 return fra
.me
.REG
[4];
283 val_t
syntax___flow___FlowContext___merge_reash(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
284 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
290 fra
.me
.file
= LOCATE_syntax___flow
;
292 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___merge_reash
;
293 fra
.me
.has_broke
= 0;
295 fra
.me
.nitni_local_ref_head
= NULL
;
296 fra
.me
.REG
[0] = NIT_NULL
;
297 fra
.me
.REG
[1] = NIT_NULL
;
298 fra
.me
.REG
[2] = NIT_NULL
;
299 fra
.me
.REG
[3] = NIT_NULL
;
300 fra
.me
.REG
[4] = NIT_NULL
;
301 fra
.me
.REG
[5] = NIT_NULL
;
306 /* syntax/flow.nit:86 */
307 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
308 if (UNTAG_Bool(REGB0
)) {
309 /* syntax/flow.nit:87 */
310 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
311 if (UNTAG_Bool(REGB0
)) {
312 /* syntax/flow.nit:88 */
313 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
316 /* syntax/flow.nit:90 */
317 fra
.me
.REG
[5] = fra
.me
.REG
[3];
318 /* syntax/flow.nit:91 */
319 fra
.me
.REG
[3] = fra
.me
.REG
[2];
320 /* syntax/flow.nit:92 */
321 fra
.me
.REG
[2] = fra
.me
.REG
[5];
324 /* syntax/flow.nit:96 */
325 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
326 if (UNTAG_Bool(REGB0
)) {
327 REGB0
= TAG_Bool(true);
329 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
330 if (UNTAG_Bool(REGB1
)) {
332 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
337 if (UNTAG_Bool(REGB0
)) {
338 /* syntax/flow.nit:97 */
339 fra
.me
.REG
[4] = fra
.me
.REG
[2];
342 /* syntax/flow.nit:104 */
344 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
347 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]);
348 fra
.me
.REG
[4] = fra
.me
.REG
[5];
352 stack_frame_head
= fra
.me
.prev
;
353 return fra
.me
.REG
[4];
355 val_t
syntax___flow___FlowContext___node(val_t p0
){
356 struct {struct stack_frame_t me
;} fra
;
359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
360 fra
.me
.file
= LOCATE_syntax___flow
;
362 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___node
;
363 fra
.me
.has_broke
= 0;
365 fra
.me
.nitni_local_ref_head
= NULL
;
366 fra
.me
.REG
[0] = NIT_NULL
;
368 /* syntax/flow.nit:111 */
369 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0])!=NIT_NULL
);
370 if (UNTAG_Bool(REGB0
)) {
372 nit_abort("Uninitialized attribute %s", "_node", LOCATE_syntax___flow
, 111);
374 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0]);
375 stack_frame_head
= fra
.me
.prev
;
376 return fra
.me
.REG
[0];
378 void syntax___flow___FlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
379 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___FlowContext
].i
;
380 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
382 if (init_table
[itpos0
]) return;
383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
384 fra
.me
.file
= LOCATE_syntax___flow
;
386 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___init
;
387 fra
.me
.has_broke
= 0;
389 fra
.me
.nitni_local_ref_head
= NULL
;
390 fra
.me
.REG
[0] = NIT_NULL
;
391 fra
.me
.REG
[1] = NIT_NULL
;
392 fra
.me
.REG
[2] = NIT_NULL
;
396 /* syntax/flow.nit:116 */
397 ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
398 /* syntax/flow.nit:117 */
399 ATTR_syntax___flow___FlowContext____node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
400 stack_frame_head
= fra
.me
.prev
;
401 init_table
[itpos0
] = 1;
404 val_t
syntax___flow___FlowContext___unreash(val_t p0
){
405 struct {struct stack_frame_t me
;} fra
;
408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
409 fra
.me
.file
= LOCATE_syntax___flow
;
411 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___unreash
;
412 fra
.me
.has_broke
= 0;
414 fra
.me
.nitni_local_ref_head
= NULL
;
415 fra
.me
.REG
[0] = NIT_NULL
;
417 /* syntax/flow.nit:120 */
418 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____unreash(fra
.me
.REG
[0])!=NIT_NULL
);
419 if (UNTAG_Bool(REGB0
)) {
421 nit_abort("Uninitialized attribute %s", "_unreash", LOCATE_syntax___flow
, 120);
423 REGB0
= ATTR_syntax___flow___FlowContext____unreash(fra
.me
.REG
[0]);
424 stack_frame_head
= fra
.me
.prev
;
427 val_t
syntax___flow___FlowContext___already_unreash(val_t p0
){
428 struct {struct stack_frame_t me
;} fra
;
431 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
432 fra
.me
.file
= LOCATE_syntax___flow
;
434 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___already_unreash
;
435 fra
.me
.has_broke
= 0;
437 fra
.me
.nitni_local_ref_head
= NULL
;
438 fra
.me
.REG
[0] = NIT_NULL
;
440 /* syntax/flow.nit:123 */
441 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0])!=NIT_NULL
);
442 if (UNTAG_Bool(REGB0
)) {
444 nit_abort("Uninitialized attribute %s", "_already_unreash", LOCATE_syntax___flow
, 123);
446 REGB0
= ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0]);
447 stack_frame_head
= fra
.me
.prev
;
450 void syntax___flow___FlowContext___already_unreash__eq(val_t p0
, val_t p1
){
451 struct {struct stack_frame_t me
;} fra
;
454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
455 fra
.me
.file
= LOCATE_syntax___flow
;
457 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___already_unreash__eq
;
458 fra
.me
.has_broke
= 0;
460 fra
.me
.nitni_local_ref_head
= NULL
;
461 fra
.me
.REG
[0] = NIT_NULL
;
464 /* syntax/flow.nit:123 */
465 ATTR_syntax___flow___FlowContext____already_unreash(fra
.me
.REG
[0]) = REGB0
;
466 stack_frame_head
= fra
.me
.prev
;
469 val_t
syntax___flow___FlowContext___set_variables(val_t p0
){
470 struct {struct stack_frame_t me
;} fra
;
473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
474 fra
.me
.file
= LOCATE_syntax___flow
;
476 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___set_variables
;
477 fra
.me
.has_broke
= 0;
479 fra
.me
.nitni_local_ref_head
= NULL
;
480 fra
.me
.REG
[0] = NIT_NULL
;
482 /* syntax/flow.nit:127 */
483 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
484 if (UNTAG_Bool(REGB0
)) {
486 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 127);
488 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
489 stack_frame_head
= fra
.me
.prev
;
490 return fra
.me
.REG
[0];
492 val_t
syntax___flow___FlowContext___is_set(val_t p0
, val_t p1
){
493 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
496 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
497 fra
.me
.file
= LOCATE_syntax___flow
;
499 fra
.me
.meth
= LOCATE_syntax___flow___FlowContext___is_set
;
500 fra
.me
.has_broke
= 0;
502 fra
.me
.nitni_local_ref_head
= NULL
;
503 fra
.me
.REG
[0] = NIT_NULL
;
504 fra
.me
.REG
[1] = NIT_NULL
;
507 /* syntax/flow.nit:133 */
508 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
509 if (UNTAG_Bool(REGB0
)) {
511 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 133);
513 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
514 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
517 stack_frame_head
= fra
.me
.prev
;
520 void syntax___flow___RootFlowContext___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
521 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___RootFlowContext
].i
;
522 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
524 if (init_table
[itpos1
]) return;
525 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
526 fra
.me
.file
= LOCATE_syntax___flow
;
528 fra
.me
.meth
= LOCATE_syntax___flow___RootFlowContext___init
;
529 fra
.me
.has_broke
= 0;
531 fra
.me
.nitni_local_ref_head
= NULL
;
532 fra
.me
.REG
[0] = NIT_NULL
;
533 fra
.me
.REG
[1] = NIT_NULL
;
534 fra
.me
.REG
[2] = NIT_NULL
;
538 /* syntax/flow.nit:142 */
539 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
540 stack_frame_head
= fra
.me
.prev
;
541 init_table
[itpos1
] = 1;
544 val_t
syntax___flow___SubFlowContext___prev(val_t p0
){
545 struct {struct stack_frame_t me
;} fra
;
548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
549 fra
.me
.file
= LOCATE_syntax___flow
;
551 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___prev
;
552 fra
.me
.has_broke
= 0;
554 fra
.me
.nitni_local_ref_head
= NULL
;
555 fra
.me
.REG
[0] = NIT_NULL
;
557 /* syntax/flow.nit:149 */
558 REGB0
= TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
559 if (UNTAG_Bool(REGB0
)) {
561 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow
, 149);
563 fra
.me
.REG
[0] = ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]);
564 stack_frame_head
= fra
.me
.prev
;
565 return fra
.me
.REG
[0];
567 val_t
syntax___flow___SubFlowContext___is_set(val_t p0
, val_t p1
){
568 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
573 fra
.me
.file
= LOCATE_syntax___flow
;
575 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___is_set
;
576 fra
.me
.has_broke
= 0;
578 fra
.me
.nitni_local_ref_head
= NULL
;
579 fra
.me
.REG
[0] = NIT_NULL
;
580 fra
.me
.REG
[1] = NIT_NULL
;
581 fra
.me
.REG
[2] = NIT_NULL
;
584 /* syntax/flow.nit:153 */
585 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
586 if (UNTAG_Bool(REGB0
)) {
588 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 153);
590 fra
.me
.REG
[2] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
591 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
592 if (UNTAG_Bool(REGB0
)) {
593 REGB0
= TAG_Bool(true);
595 REGB1
= TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0])!=NIT_NULL
);
596 if (UNTAG_Bool(REGB1
)) {
598 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow
, 153);
600 fra
.me
.REG
[0] = ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]);
601 REGB1
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
606 stack_frame_head
= fra
.me
.prev
;
609 val_t
syntax___flow___SubFlowContext___stype(val_t p0
, val_t p1
){
610 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
613 fra
.me
.file
= LOCATE_syntax___flow
;
615 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___stype
;
616 fra
.me
.has_broke
= 0;
618 fra
.me
.nitni_local_ref_head
= NULL
;
619 fra
.me
.REG
[0] = NIT_NULL
;
620 fra
.me
.REG
[1] = NIT_NULL
;
623 /* syntax/flow.nit:158 */
624 fra
.me
.REG
[0] = CALL_syntax___flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
625 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
628 stack_frame_head
= fra
.me
.prev
;
629 return fra
.me
.REG
[1];
631 void syntax___flow___SubFlowContext___with_prev(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
632 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___SubFlowContext
].i
;
633 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
636 if (init_table
[itpos2
]) return;
637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
638 fra
.me
.file
= LOCATE_syntax___flow
;
640 fra
.me
.meth
= LOCATE_syntax___flow___SubFlowContext___with_prev
;
641 fra
.me
.has_broke
= 0;
643 fra
.me
.nitni_local_ref_head
= NULL
;
644 fra
.me
.REG
[0] = NIT_NULL
;
645 fra
.me
.REG
[1] = NIT_NULL
;
646 fra
.me
.REG
[2] = NIT_NULL
;
647 fra
.me
.REG
[3] = NIT_NULL
;
651 /* syntax/flow.nit:163 */
652 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
653 if (UNTAG_Bool(REGB0
)) {
655 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 163);
657 fra
.me
.REG
[3] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1]);
658 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2], init_table
);
659 /* syntax/flow.nit:164 */
660 ATTR_syntax___flow___SubFlowContext____prev(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
661 stack_frame_head
= fra
.me
.prev
;
662 init_table
[itpos2
] = 1;
665 val_t
syntax___flow___CastFlowContext___stype(val_t p0
, val_t p1
){
666 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
670 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
671 fra
.me
.file
= LOCATE_syntax___flow
;
673 fra
.me
.meth
= LOCATE_syntax___flow___CastFlowContext___stype
;
674 fra
.me
.has_broke
= 0;
676 fra
.me
.nitni_local_ref_head
= NULL
;
677 fra
.me
.REG
[0] = NIT_NULL
;
678 fra
.me
.REG
[1] = NIT_NULL
;
679 fra
.me
.REG
[2] = NIT_NULL
;
682 /* syntax/flow.nit:179 */
683 REGB0
= TAG_Bool(ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0])!=NIT_NULL
);
684 if (UNTAG_Bool(REGB0
)) {
686 nit_abort("Uninitialized attribute %s", "_variable", LOCATE_syntax___flow
, 179);
688 fra
.me
.REG
[2] = ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0]);
689 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
690 if (UNTAG_Bool(REGB0
)) {
692 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
695 if (UNTAG_Bool(REGB0
)) {
696 /* syntax/flow.nit:180 */
697 fra
.me
.REG
[2] = ATTR_syntax___flow___CastFlowContext____stype(fra
.me
.REG
[0]);
700 /* syntax/flow.nit:182 */
701 fra
.me
.REG
[0] = CALL_syntax___flow___SubFlowContext___prev(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
702 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
703 fra
.me
.REG
[2] = fra
.me
.REG
[1];
707 stack_frame_head
= fra
.me
.prev
;
708 return fra
.me
.REG
[2];
710 void syntax___flow___CastFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, int* init_table
){
711 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___CastFlowContext
].i
;
712 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
714 if (init_table
[itpos3
]) return;
715 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
716 fra
.me
.file
= LOCATE_syntax___flow
;
718 fra
.me
.meth
= LOCATE_syntax___flow___CastFlowContext___init
;
719 fra
.me
.has_broke
= 0;
721 fra
.me
.nitni_local_ref_head
= NULL
;
722 fra
.me
.REG
[0] = NIT_NULL
;
723 fra
.me
.REG
[1] = NIT_NULL
;
724 fra
.me
.REG
[2] = NIT_NULL
;
725 fra
.me
.REG
[3] = NIT_NULL
;
726 fra
.me
.REG
[4] = NIT_NULL
;
732 /* syntax/flow.nit:188 */
733 CALL_syntax___flow___SubFlowContext___with_prev(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
734 /* syntax/flow.nit:189 */
735 ATTR_syntax___flow___CastFlowContext____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
736 /* syntax/flow.nit:190 */
737 ATTR_syntax___flow___CastFlowContext____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
738 stack_frame_head
= fra
.me
.prev
;
739 init_table
[itpos3
] = 1;
742 void syntax___flow___MergeFlowContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
743 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___flow___MergeFlowContext
].i
;
744 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
747 if (init_table
[itpos4
]) return;
748 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
749 fra
.me
.file
= LOCATE_syntax___flow
;
751 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___init
;
752 fra
.me
.has_broke
= 0;
754 fra
.me
.nitni_local_ref_head
= NULL
;
755 fra
.me
.REG
[0] = NIT_NULL
;
756 fra
.me
.REG
[1] = NIT_NULL
;
757 fra
.me
.REG
[2] = NIT_NULL
;
758 fra
.me
.REG
[3] = NIT_NULL
;
759 fra
.me
.REG
[4] = NIT_NULL
;
760 fra
.me
.REG
[5] = NIT_NULL
;
765 /* syntax/flow.nit:204 */
766 fra
.me
.REG
[4] = fra
.me
.REG
[0];
767 /* syntax/flow.nit:206 */
768 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1])!=NIT_NULL
);
769 if (UNTAG_Bool(REGB0
)) {
771 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 206);
773 fra
.me
.REG
[5] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[1]);
774 CALL_syntax___flow___FlowContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
775 /* syntax/flow.nit:207 */
776 ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
777 /* syntax/flow.nit:208 */
778 ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
779 stack_frame_head
= fra
.me
.prev
;
780 init_table
[itpos4
] = 1;
783 val_t
syntax___flow___MergeFlowContext___stype(val_t p0
, val_t p1
){
784 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
787 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
788 fra
.me
.file
= LOCATE_syntax___flow
;
790 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___stype
;
791 fra
.me
.has_broke
= 0;
793 fra
.me
.nitni_local_ref_head
= NULL
;
794 fra
.me
.REG
[0] = NIT_NULL
;
795 fra
.me
.REG
[1] = NIT_NULL
;
796 fra
.me
.REG
[2] = NIT_NULL
;
797 fra
.me
.REG
[3] = NIT_NULL
;
800 /* syntax/flow.nit:213 */
801 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
802 if (UNTAG_Bool(REGB0
)) {
804 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 213);
806 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
807 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
808 if (UNTAG_Bool(REGB0
)) {
809 /* syntax/flow.nit:214 */
810 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
811 if (UNTAG_Bool(REGB0
)) {
813 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 214);
815 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
816 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
819 /* syntax/flow.nit:216 */
820 fra
.me
.REG
[3] = CALL_syntax___flow___MergeFlowContext___merge_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
821 /* syntax/flow.nit:217 */
822 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0])!=NIT_NULL
);
823 if (UNTAG_Bool(REGB0
)) {
825 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow
, 217);
827 fra
.me
.REG
[0] = ATTR_syntax___flow___MergeFlowContext____stypes(fra
.me
.REG
[0]);
828 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
829 /* syntax/flow.nit:218 */
830 fra
.me
.REG
[2] = fra
.me
.REG
[3];
834 stack_frame_head
= fra
.me
.prev
;
835 return fra
.me
.REG
[2];
837 val_t
syntax___flow___MergeFlowContext___merge_stype(val_t p0
, val_t p1
){
838 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
844 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
845 fra
.me
.file
= LOCATE_syntax___flow
;
847 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___merge_stype
;
848 fra
.me
.has_broke
= 0;
850 fra
.me
.nitni_local_ref_head
= NULL
;
851 fra
.me
.REG
[0] = NIT_NULL
;
852 fra
.me
.REG
[1] = NIT_NULL
;
853 fra
.me
.REG
[2] = NIT_NULL
;
854 fra
.me
.REG
[3] = NIT_NULL
;
855 fra
.me
.REG
[4] = NIT_NULL
;
856 fra
.me
.REG
[5] = NIT_NULL
;
857 fra
.me
.REG
[6] = NIT_NULL
;
858 fra
.me
.REG
[7] = NIT_NULL
;
859 fra
.me
.REG
[8] = NIT_NULL
;
862 /* syntax/flow.nit:224 */
863 fra
.me
.REG
[2] = NIT_NULL
;
864 /* syntax/flow.nit:225 */
865 REGB0
= TAG_Bool(false);
866 /* syntax/flow.nit:226 */
867 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
868 if (UNTAG_Bool(REGB1
)) {
870 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 226);
872 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
873 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
874 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
875 if (UNTAG_Bool(REGB1
)) {
876 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 226);
878 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
879 /* syntax/flow.nit:227 */
880 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
881 if (UNTAG_Bool(REGB1
)) {
883 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 227);
885 fra
.me
.REG
[4] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
886 /* ../lib/standard/collection/array.nit:269 */
888 /* ../lib/standard/collection/array.nit:270 */
889 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
890 if (UNTAG_Bool(REGB2
)) {
892 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
894 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
895 /* ../lib/standard/collection/array.nit:271 */
896 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
897 /* ../lib/standard/collection/array.nit:272 */
899 /* ../lib/standard/collection/array.nit:24 */
900 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
901 if (UNTAG_Bool(REGB2
)) {
903 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
905 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
906 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
907 if (UNTAG_Bool(REGB3
)) {
909 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
911 /* ../lib/standard/kernel.nit:232 */
912 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
913 /* ../lib/standard/collection/array.nit:272 */
914 if (UNTAG_Bool(REGB2
)) {
915 /* ../lib/standard/collection/array.nit:273 */
916 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
917 if (UNTAG_Bool(REGB2
)) {
918 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
920 /* ../lib/standard/collection/array.nit:718 */
921 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB1
)];
922 /* syntax/flow.nit:228 */
923 fra
.me
.REG
[6] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
924 /* syntax/flow.nit:229 */
925 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
926 if (UNTAG_Bool(REGB2
)) {
928 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
929 if (UNTAG_Bool(REGB3
)) {
930 REGB3
= TAG_Bool(false);
933 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
937 if (UNTAG_Bool(REGB2
)) {
938 /* syntax/flow.nit:230 */
939 fra
.me
.REG
[7] = NIT_NULL
;
942 /* syntax/flow.nit:232 */
943 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[6],fra
.me
.REG
[3]));
944 if (UNTAG_Bool(REGB2
)) {
946 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
947 if (UNTAG_Bool(REGB3
)) {
948 REGB3
= TAG_Bool(false);
951 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
955 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
956 if (UNTAG_Bool(REGB2
)) {
957 /* syntax/flow.nit:233 */
958 fra
.me
.REG
[3] = NIT_NULL
;
960 /* syntax/flow.nit:235 */
961 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*/;
962 if (UNTAG_Bool(REGB2
)) {
963 /* syntax/flow.nit:236 */
964 REGB2
= TAG_Bool(true);
966 /* syntax/flow.nit:237 */
969 /* syntax/flow.nit:239 */
970 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*/;
971 if (UNTAG_Bool(REGB2
)) {
972 /* syntax/flow.nit:240 */
973 REGB2
= TAG_Bool(true);
975 /* syntax/flow.nit:241 */
976 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
977 if (UNTAG_Bool(REGB2
)) {
978 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 241);
980 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
981 fra
.me
.REG
[6] = fra
.me
.REG
[8];
983 /* syntax/flow.nit:243 */
984 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
985 if (UNTAG_Bool(REGB2
)) {
987 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
988 if (UNTAG_Bool(REGB3
)) {
989 REGB3
= TAG_Bool(false);
992 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
996 if (UNTAG_Bool(REGB2
)) {
997 REGB2
= TAG_Bool(true);
999 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1000 if (UNTAG_Bool(REGB3
)) {
1001 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 243);
1003 REGB3
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
1006 if (UNTAG_Bool(REGB2
)) {
1007 /* syntax/flow.nit:244 */
1008 fra
.me
.REG
[2] = fra
.me
.REG
[6];
1011 /* ../lib/standard/collection/array.nit:274 */
1013 /* ../lib/standard/kernel.nit:235 */
1014 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1015 /* ../lib/standard/collection/array.nit:274 */
1018 /* ../lib/standard/collection/array.nit:272 */
1023 /* syntax/flow.nit:247 */
1024 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1025 if (UNTAG_Bool(REGB1
)) {
1027 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1028 if (UNTAG_Bool(REGB2
)) {
1029 REGB2
= TAG_Bool(false);
1032 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1036 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1037 if (UNTAG_Bool(REGB1
)) {
1038 /* syntax/flow.nit:248 */
1039 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1042 /* syntax/flow.nit:250 */
1043 if (UNTAG_Bool(REGB0
)) {
1044 /* syntax/flow.nit:251 */
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_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1057 if (UNTAG_Bool(REGB0
)) {
1058 /* syntax/flow.nit:252 */
1059 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
1060 if (UNTAG_Bool(REGB0
)) {
1062 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow
, 252);
1064 fra
.me
.REG
[3] = ATTR_syntax___flow___FlowContext____visitor(fra
.me
.REG
[0]);
1065 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1066 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1069 /* syntax/flow.nit:254 */
1070 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1071 if (UNTAG_Bool(REGB0
)) {
1072 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 254);
1074 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1075 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1078 /* syntax/flow.nit:257 */
1079 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1080 if (UNTAG_Bool(REGB0
)) {
1082 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1083 if (UNTAG_Bool(REGB1
)) {
1084 REGB1
= TAG_Bool(false);
1087 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1091 if (UNTAG_Bool(REGB0
)) {
1092 /* syntax/flow.nit:258 */
1093 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1094 if (UNTAG_Bool(REGB0
)) {
1096 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow
, 258);
1098 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1099 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1100 fra
.me
.REG
[7] = fra
.me
.REG
[3];
1103 /* syntax/flow.nit:260 */
1104 REGB0
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1105 if (UNTAG_Bool(REGB0
)) {
1107 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 260);
1109 fra
.me
.REG
[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1110 /* ../lib/standard/collection/array.nit:269 */
1112 /* ../lib/standard/collection/array.nit:270 */
1113 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1114 if (UNTAG_Bool(REGB1
)) {
1116 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1118 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1119 /* ../lib/standard/collection/array.nit:271 */
1120 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1121 /* ../lib/standard/collection/array.nit:272 */
1123 /* ../lib/standard/collection/array.nit:24 */
1124 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1125 if (UNTAG_Bool(REGB1
)) {
1127 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1129 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1130 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1131 if (UNTAG_Bool(REGB2
)) {
1133 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1135 /* ../lib/standard/kernel.nit:232 */
1136 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1137 /* ../lib/standard/collection/array.nit:272 */
1138 if (UNTAG_Bool(REGB1
)) {
1139 /* ../lib/standard/collection/array.nit:273 */
1140 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1141 if (UNTAG_Bool(REGB1
)) {
1142 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1144 /* ../lib/standard/collection/array.nit:718 */
1145 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1146 /* syntax/flow.nit:261 */
1147 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1148 /* syntax/flow.nit:262 */
1149 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1150 if (UNTAG_Bool(REGB1
)) {
1151 nit_abort("Reciever is null", NULL
, LOCATE_syntax___flow
, 262);
1153 REGB1
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1154 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1155 if (UNTAG_Bool(REGB1
)) {
1156 /* syntax/flow.nit:263 */
1157 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0])!=NIT_NULL
);
1158 if (UNTAG_Bool(REGB1
)) {
1160 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow
, 263);
1162 fra
.me
.REG
[4] = ATTR_syntax___flow___MergeFlowContext____base(fra
.me
.REG
[0]);
1163 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1164 fra
.me
.REG
[7] = fra
.me
.REG
[4];
1167 /* ../lib/standard/collection/array.nit:274 */
1169 /* ../lib/standard/kernel.nit:235 */
1170 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1171 /* ../lib/standard/collection/array.nit:274 */
1174 /* ../lib/standard/collection/array.nit:272 */
1180 /* syntax/flow.nit:267 */
1181 fra
.me
.REG
[7] = fra
.me
.REG
[2];
1184 stack_frame_head
= fra
.me
.prev
;
1185 return fra
.me
.REG
[7];
1187 val_t
syntax___flow___MergeFlowContext___is_set(val_t p0
, val_t p1
){
1188 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1195 fra
.me
.file
= LOCATE_syntax___flow
;
1197 fra
.me
.meth
= LOCATE_syntax___flow___MergeFlowContext___is_set
;
1198 fra
.me
.has_broke
= 0;
1199 fra
.me
.REG_size
= 5;
1200 fra
.me
.nitni_local_ref_head
= NULL
;
1201 fra
.me
.REG
[0] = NIT_NULL
;
1202 fra
.me
.REG
[1] = NIT_NULL
;
1203 fra
.me
.REG
[2] = NIT_NULL
;
1204 fra
.me
.REG
[3] = NIT_NULL
;
1205 fra
.me
.REG
[4] = NIT_NULL
;
1208 /* syntax/flow.nit:272 */
1209 REGB0
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1210 if (UNTAG_Bool(REGB0
)) {
1212 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 272);
1214 fra
.me
.REG
[2] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1215 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1216 if (UNTAG_Bool(REGB0
)) {
1217 /* syntax/flow.nit:273 */
1218 REGB0
= TAG_Bool(true);
1221 /* syntax/flow.nit:275 */
1222 REGB1
= TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0])!=NIT_NULL
);
1223 if (UNTAG_Bool(REGB1
)) {
1225 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow
, 275);
1227 fra
.me
.REG
[2] = ATTR_syntax___flow___MergeFlowContext____alts(fra
.me
.REG
[0]);
1228 /* ../lib/standard/collection/array.nit:269 */
1230 /* ../lib/standard/collection/array.nit:270 */
1231 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1232 if (UNTAG_Bool(REGB2
)) {
1234 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1236 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1237 /* ../lib/standard/collection/array.nit:271 */
1238 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1239 /* ../lib/standard/collection/array.nit:272 */
1241 /* ../lib/standard/collection/array.nit:24 */
1242 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1243 if (UNTAG_Bool(REGB2
)) {
1245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1247 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1248 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
1249 if (UNTAG_Bool(REGB3
)) {
1251 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1253 /* ../lib/standard/kernel.nit:232 */
1254 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
1255 /* ../lib/standard/collection/array.nit:272 */
1256 if (UNTAG_Bool(REGB2
)) {
1257 /* ../lib/standard/collection/array.nit:273 */
1258 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1259 if (UNTAG_Bool(REGB2
)) {
1260 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1262 /* ../lib/standard/collection/array.nit:718 */
1263 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
1264 /* syntax/flow.nit:276 */
1265 REGB2
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1266 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1267 if (UNTAG_Bool(REGB2
)) {
1268 /* syntax/flow.nit:277 */
1269 REGB2
= TAG_Bool(false);
1273 /* ../lib/standard/collection/array.nit:274 */
1275 /* ../lib/standard/kernel.nit:235 */
1276 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1277 /* ../lib/standard/collection/array.nit:274 */
1280 /* ../lib/standard/collection/array.nit:272 */
1285 /* syntax/flow.nit:280 */
1286 REGB1
= TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0])!=NIT_NULL
);
1287 if (UNTAG_Bool(REGB1
)) {
1289 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow
, 280);
1291 fra
.me
.REG
[0] = ATTR_syntax___flow___FlowContext____set_variables(fra
.me
.REG
[0]);
1292 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1293 /* syntax/flow.nit:281 */
1294 REGB1
= TAG_Bool(true);
1299 stack_frame_head
= fra
.me
.prev
;
1302 val_t
syntax___flow___Variable___must_be_set(val_t p0
){
1303 struct {struct stack_frame_t me
;} fra
;
1306 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1307 fra
.me
.file
= LOCATE_syntax___flow
;
1309 fra
.me
.meth
= LOCATE_syntax___flow___Variable___must_be_set
;
1310 fra
.me
.has_broke
= 0;
1311 fra
.me
.REG_size
= 1;
1312 fra
.me
.nitni_local_ref_head
= NULL
;
1313 fra
.me
.REG
[0] = NIT_NULL
;
1315 /* syntax/flow.nit:289 */
1316 REGB0
= TAG_Bool(false);
1319 stack_frame_head
= fra
.me
.prev
;
1322 val_t
syntax___flow___VarVariable___must_be_set(val_t p0
){
1323 struct {struct stack_frame_t me
;} fra
;
1326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1327 fra
.me
.file
= LOCATE_syntax___flow
;
1329 fra
.me
.meth
= LOCATE_syntax___flow___VarVariable___must_be_set
;
1330 fra
.me
.has_broke
= 0;
1331 fra
.me
.REG_size
= 1;
1332 fra
.me
.nitni_local_ref_head
= NULL
;
1333 fra
.me
.REG
[0] = NIT_NULL
;
1335 /* syntax/flow.nit:293 */
1336 REGB0
= TAG_Bool(true);
1339 stack_frame_head
= fra
.me
.prev
;