c_src: update
[nit.git] / c_src / syntax___flow._sep.c
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;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
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;
12 fra.me.line = 34;
13 fra.me.meth = LOCATE_syntax___flow___FlowContext___check_is_set;
14 fra.me.has_broke = 0;
15 fra.me.REG_size = 5;
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;
22 fra.me.REG[0] = p0;
23 fra.me.REG[1] = p1;
24 fra.me.REG[2] = p2;
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));
30 } else {
31 REGB1 = TAG_Bool(false);
32 REGB0 = REGB1;
33 }
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)) {
38 } else {
39 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 38);
40 }
41 fra.me.REG[0] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0]);
42 REGB0 = TAG_Int(3);
43 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
44 if (!once_value_1) {
45 fra.me.REG[4] = BOX_NativeString("Error: variable '");
46 REGB0 = TAG_Int(17);
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]);
55 if (!once_value_2) {
56 fra.me.REG[2] = BOX_NativeString("' is possibly unset.");
57 REGB0 = TAG_Int(20);
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]);
66 }
67 stack_frame_head = fra.me.prev;
68 return;
69 }
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;
72 val_t tmp;
73 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
74 fra.me.file = LOCATE_syntax___flow;
75 fra.me.line = 42;
76 fra.me.meth = LOCATE_syntax___flow___FlowContext___stype;
77 fra.me.has_broke = 0;
78 fra.me.REG_size = 2;
79 fra.me.nitni_local_ref_head = NULL;
80 fra.me.REG[0] = NIT_NULL;
81 fra.me.REG[1] = NIT_NULL;
82 fra.me.REG[0] = p0;
83 fra.me.REG[1] = p1;
84 /* syntax/flow.nit:46 */
85 fra.me.REG[1] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[1])(fra.me.REG[1]);
86 goto label1;
87 label1: while(0);
88 stack_frame_head = fra.me.prev;
89 return fra.me.REG[1];
90 }
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;
93 val_t REGB0;
94 val_t tmp;
95 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
96 fra.me.file = LOCATE_syntax___flow;
97 fra.me.line = 49;
98 fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_setvariable;
99 fra.me.has_broke = 0;
100 fra.me.REG_size = 3;
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;
105 fra.me.REG[0] = p0;
106 fra.me.REG[1] = p1;
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)) {
113 } else {
114 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 53);
115 }
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 */
119 goto label1;
120 label1: while(0);
121 stack_frame_head = fra.me.prev;
122 return fra.me.REG[2];
123 }
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;
126 val_t REGB0;
127 val_t tmp;
128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
129 fra.me.file = LOCATE_syntax___flow;
130 fra.me.line = 57;
131 fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_unreash;
132 fra.me.has_broke = 0;
133 fra.me.REG_size = 2;
134 fra.me.nitni_local_ref_head = NULL;
135 fra.me.REG[0] = NIT_NULL;
136 fra.me.REG[1] = NIT_NULL;
137 fra.me.REG[0] = p0;
138 fra.me.REG[1] = p1;
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 */
145 goto label1;
146 label1: while(0);
147 stack_frame_head = fra.me.prev;
148 return fra.me.REG[1];
149 }
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;
152 val_t tmp;
153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
154 fra.me.file = LOCATE_syntax___flow;
155 fra.me.line = 65;
156 fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_with;
157 fra.me.has_broke = 0;
158 fra.me.REG_size = 4;
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;
164 fra.me.REG[0] = p0;
165 fra.me.REG[1] = p1;
166 fra.me.REG[2] = p2;
167 fra.me.REG[3] = p3;
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]);
170 goto label1;
171 label1: while(0);
172 stack_frame_head = fra.me.prev;
173 return fra.me.REG[3];
174 }
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;
177 val_t REGB0;
178 val_t REGB1;
179 val_t REGB2;
180 val_t tmp;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_syntax___flow;
183 fra.me.line = 71;
184 fra.me.meth = LOCATE_syntax___flow___FlowContext___merge;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 6;
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;
194 fra.me.REG[0] = p0;
195 fra.me.REG[1] = p1;
196 fra.me.REG[2] = p2;
197 /* ../lib/standard/collection/array.nit:266 */
198 fra.me.REG[3] = fra.me.REG[2];
199 /* ../lib/standard/collection/array.nit:269 */
200 REGB0 = TAG_Int(0);
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)) {
204 } else {
205 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
206 }
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 */
211 while(1) {
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)) {
215 } else {
216 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
217 }
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)) {
221 } else {
222 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
223 }
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);
232 }
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)) {
239 } else {
240 nit_abort("Assert failed", NULL, LOCATE_syntax___flow, 76);
241 }
242 /* ../lib/standard/collection/array.nit:274 */
243 REGB1 = TAG_Int(1);
244 /* ../lib/standard/kernel.nit:235 */
245 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
246 /* ../lib/standard/collection/array.nit:274 */
247 REGB0 = REGB1;
248 } else {
249 /* ../lib/standard/collection/array.nit:272 */
250 goto label1;
251 }
252 }
253 label1: while(0);
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)) {
257 } else {
258 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
259 }
260 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
261 /* syntax/flow.nit:77 */
262 REGB1 = TAG_Int(1);
263 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
264 if (UNTAG_Bool(REGB2)) {
265 } else {
266 /* ../lib/standard/kernel.nit:227 */
267 REGB1 = TAG_Bool((REGB0)==(REGB1));
268 /* syntax/flow.nit:77 */
269 REGB2 = REGB1;
270 }
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]);
273 goto label2;
274 }
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];
278 goto label2;
279 label2: while(0);
280 stack_frame_head = fra.me.prev;
281 return fra.me.REG[4];
282 }
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;
285 val_t REGB0;
286 val_t REGB1;
287 val_t REGB2;
288 val_t tmp;
289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
290 fra.me.file = LOCATE_syntax___flow;
291 fra.me.line = 81;
292 fra.me.meth = LOCATE_syntax___flow___FlowContext___merge_reash;
293 fra.me.has_broke = 0;
294 fra.me.REG_size = 6;
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;
302 fra.me.REG[0] = p0;
303 fra.me.REG[1] = p1;
304 fra.me.REG[2] = p2;
305 fra.me.REG[3] = p3;
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]);
314 goto label1;
315 } else {
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];
322 }
323 }
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);
328 } else {
329 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
330 if (UNTAG_Bool(REGB1)) {
331 } else {
332 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
333 REGB1 = REGB2;
334 }
335 REGB0 = REGB1;
336 }
337 if (UNTAG_Bool(REGB0)) {
338 /* syntax/flow.nit:97 */
339 fra.me.REG[4] = fra.me.REG[2];
340 goto label1;
341 } else {
342 /* syntax/flow.nit:104 */
343 REGB0 = TAG_Int(2);
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];
349 goto label1;
350 }
351 label1: while(0);
352 stack_frame_head = fra.me.prev;
353 return fra.me.REG[4];
354 }
355 val_t syntax___flow___FlowContext___node(val_t p0){
356 struct {struct stack_frame_t me;} fra;
357 val_t REGB0;
358 val_t tmp;
359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
360 fra.me.file = LOCATE_syntax___flow;
361 fra.me.line = 111;
362 fra.me.meth = LOCATE_syntax___flow___FlowContext___node;
363 fra.me.has_broke = 0;
364 fra.me.REG_size = 1;
365 fra.me.nitni_local_ref_head = NULL;
366 fra.me.REG[0] = NIT_NULL;
367 fra.me.REG[0] = p0;
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)) {
371 } else {
372 nit_abort("Uninitialized attribute %s", "_node", LOCATE_syntax___flow, 111);
373 }
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];
377 }
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;
381 val_t tmp;
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;
385 fra.me.line = 114;
386 fra.me.meth = LOCATE_syntax___flow___FlowContext___init;
387 fra.me.has_broke = 0;
388 fra.me.REG_size = 3;
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;
393 fra.me.REG[0] = p0;
394 fra.me.REG[1] = p1;
395 fra.me.REG[2] = p2;
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;
402 return;
403 }
404 val_t syntax___flow___FlowContext___unreash(val_t p0){
405 struct {struct stack_frame_t me;} fra;
406 val_t REGB0;
407 val_t tmp;
408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
409 fra.me.file = LOCATE_syntax___flow;
410 fra.me.line = 120;
411 fra.me.meth = LOCATE_syntax___flow___FlowContext___unreash;
412 fra.me.has_broke = 0;
413 fra.me.REG_size = 1;
414 fra.me.nitni_local_ref_head = NULL;
415 fra.me.REG[0] = NIT_NULL;
416 fra.me.REG[0] = p0;
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)) {
420 } else {
421 nit_abort("Uninitialized attribute %s", "_unreash", LOCATE_syntax___flow, 120);
422 }
423 REGB0 = ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]);
424 stack_frame_head = fra.me.prev;
425 return REGB0;
426 }
427 val_t syntax___flow___FlowContext___already_unreash(val_t p0){
428 struct {struct stack_frame_t me;} fra;
429 val_t REGB0;
430 val_t tmp;
431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
432 fra.me.file = LOCATE_syntax___flow;
433 fra.me.line = 123;
434 fra.me.meth = LOCATE_syntax___flow___FlowContext___already_unreash;
435 fra.me.has_broke = 0;
436 fra.me.REG_size = 1;
437 fra.me.nitni_local_ref_head = NULL;
438 fra.me.REG[0] = NIT_NULL;
439 fra.me.REG[0] = p0;
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)) {
443 } else {
444 nit_abort("Uninitialized attribute %s", "_already_unreash", LOCATE_syntax___flow, 123);
445 }
446 REGB0 = ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]);
447 stack_frame_head = fra.me.prev;
448 return REGB0;
449 }
450 void syntax___flow___FlowContext___already_unreash__eq(val_t p0, val_t p1){
451 struct {struct stack_frame_t me;} fra;
452 val_t REGB0;
453 val_t tmp;
454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
455 fra.me.file = LOCATE_syntax___flow;
456 fra.me.line = 123;
457 fra.me.meth = LOCATE_syntax___flow___FlowContext___already_unreash__eq;
458 fra.me.has_broke = 0;
459 fra.me.REG_size = 1;
460 fra.me.nitni_local_ref_head = NULL;
461 fra.me.REG[0] = NIT_NULL;
462 fra.me.REG[0] = p0;
463 REGB0 = p1;
464 /* syntax/flow.nit:123 */
465 ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
466 stack_frame_head = fra.me.prev;
467 return;
468 }
469 val_t syntax___flow___FlowContext___set_variables(val_t p0){
470 struct {struct stack_frame_t me;} fra;
471 val_t REGB0;
472 val_t tmp;
473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
474 fra.me.file = LOCATE_syntax___flow;
475 fra.me.line = 127;
476 fra.me.meth = LOCATE_syntax___flow___FlowContext___set_variables;
477 fra.me.has_broke = 0;
478 fra.me.REG_size = 1;
479 fra.me.nitni_local_ref_head = NULL;
480 fra.me.REG[0] = NIT_NULL;
481 fra.me.REG[0] = p0;
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)) {
485 } else {
486 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 127);
487 }
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];
491 }
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;
494 val_t REGB0;
495 val_t tmp;
496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
497 fra.me.file = LOCATE_syntax___flow;
498 fra.me.line = 130;
499 fra.me.meth = LOCATE_syntax___flow___FlowContext___is_set;
500 fra.me.has_broke = 0;
501 fra.me.REG_size = 2;
502 fra.me.nitni_local_ref_head = NULL;
503 fra.me.REG[0] = NIT_NULL;
504 fra.me.REG[1] = NIT_NULL;
505 fra.me.REG[0] = p0;
506 fra.me.REG[1] = p1;
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)) {
510 } else {
511 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 133);
512 }
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]);
515 goto label1;
516 label1: while(0);
517 stack_frame_head = fra.me.prev;
518 return REGB0;
519 }
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;
523 val_t tmp;
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;
527 fra.me.line = 140;
528 fra.me.meth = LOCATE_syntax___flow___RootFlowContext___init;
529 fra.me.has_broke = 0;
530 fra.me.REG_size = 3;
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;
535 fra.me.REG[0] = p0;
536 fra.me.REG[1] = p1;
537 fra.me.REG[2] = p2;
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;
542 return;
543 }
544 val_t syntax___flow___SubFlowContext___prev(val_t p0){
545 struct {struct stack_frame_t me;} fra;
546 val_t REGB0;
547 val_t tmp;
548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
549 fra.me.file = LOCATE_syntax___flow;
550 fra.me.line = 149;
551 fra.me.meth = LOCATE_syntax___flow___SubFlowContext___prev;
552 fra.me.has_broke = 0;
553 fra.me.REG_size = 1;
554 fra.me.nitni_local_ref_head = NULL;
555 fra.me.REG[0] = NIT_NULL;
556 fra.me.REG[0] = p0;
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)) {
560 } else {
561 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow, 149);
562 }
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];
566 }
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;
569 val_t REGB0;
570 val_t REGB1;
571 val_t tmp;
572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
573 fra.me.file = LOCATE_syntax___flow;
574 fra.me.line = 151;
575 fra.me.meth = LOCATE_syntax___flow___SubFlowContext___is_set;
576 fra.me.has_broke = 0;
577 fra.me.REG_size = 3;
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;
582 fra.me.REG[0] = p0;
583 fra.me.REG[1] = p1;
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)) {
587 } else {
588 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 153);
589 }
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);
594 } else {
595 REGB1 = TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0])!=NIT_NULL);
596 if (UNTAG_Bool(REGB1)) {
597 } else {
598 nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow, 153);
599 }
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]);
602 REGB0 = REGB1;
603 }
604 goto label1;
605 label1: while(0);
606 stack_frame_head = fra.me.prev;
607 return REGB0;
608 }
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;
611 val_t tmp;
612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
613 fra.me.file = LOCATE_syntax___flow;
614 fra.me.line = 156;
615 fra.me.meth = LOCATE_syntax___flow___SubFlowContext___stype;
616 fra.me.has_broke = 0;
617 fra.me.REG_size = 2;
618 fra.me.nitni_local_ref_head = NULL;
619 fra.me.REG[0] = NIT_NULL;
620 fra.me.REG[1] = NIT_NULL;
621 fra.me.REG[0] = p0;
622 fra.me.REG[1] = p1;
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]);
626 goto label1;
627 label1: while(0);
628 stack_frame_head = fra.me.prev;
629 return fra.me.REG[1];
630 }
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;
634 val_t REGB0;
635 val_t tmp;
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;
639 fra.me.line = 161;
640 fra.me.meth = LOCATE_syntax___flow___SubFlowContext___with_prev;
641 fra.me.has_broke = 0;
642 fra.me.REG_size = 4;
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;
648 fra.me.REG[0] = p0;
649 fra.me.REG[1] = p1;
650 fra.me.REG[2] = p2;
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)) {
654 } else {
655 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 163);
656 }
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;
663 return;
664 }
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;
667 val_t REGB0;
668 val_t REGB1;
669 val_t tmp;
670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
671 fra.me.file = LOCATE_syntax___flow;
672 fra.me.line = 177;
673 fra.me.meth = LOCATE_syntax___flow___CastFlowContext___stype;
674 fra.me.has_broke = 0;
675 fra.me.REG_size = 3;
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;
680 fra.me.REG[0] = p0;
681 fra.me.REG[1] = p1;
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)) {
685 } else {
686 nit_abort("Uninitialized attribute %s", "_variable", LOCATE_syntax___flow, 179);
687 }
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)) {
691 } else {
692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
693 REGB0 = REGB1;
694 }
695 if (UNTAG_Bool(REGB0)) {
696 /* syntax/flow.nit:180 */
697 fra.me.REG[2] = ATTR_syntax___flow___CastFlowContext____stype(fra.me.REG[0]);
698 goto label1;
699 } else {
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];
704 goto label1;
705 }
706 label1: while(0);
707 stack_frame_head = fra.me.prev;
708 return fra.me.REG[2];
709 }
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;
713 val_t tmp;
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;
717 fra.me.line = 186;
718 fra.me.meth = LOCATE_syntax___flow___CastFlowContext___init;
719 fra.me.has_broke = 0;
720 fra.me.REG_size = 5;
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;
727 fra.me.REG[0] = p0;
728 fra.me.REG[1] = p1;
729 fra.me.REG[2] = p2;
730 fra.me.REG[3] = p3;
731 fra.me.REG[4] = p4;
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;
740 return;
741 }
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;
745 val_t REGB0;
746 val_t tmp;
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;
750 fra.me.line = 204;
751 fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___init;
752 fra.me.has_broke = 0;
753 fra.me.REG_size = 6;
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;
761 fra.me.REG[0] = p0;
762 fra.me.REG[1] = p1;
763 fra.me.REG[2] = p2;
764 fra.me.REG[3] = p3;
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)) {
770 } else {
771 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 206);
772 }
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;
781 return;
782 }
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;
785 val_t REGB0;
786 val_t tmp;
787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
788 fra.me.file = LOCATE_syntax___flow;
789 fra.me.line = 211;
790 fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___stype;
791 fra.me.has_broke = 0;
792 fra.me.REG_size = 4;
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;
798 fra.me.REG[0] = p0;
799 fra.me.REG[1] = p1;
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)) {
803 } else {
804 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 213);
805 }
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)) {
812 } else {
813 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 214);
814 }
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]);
817 goto label1;
818 } else {
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)) {
824 } else {
825 nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 217);
826 }
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];
831 goto label1;
832 }
833 label1: while(0);
834 stack_frame_head = fra.me.prev;
835 return fra.me.REG[2];
836 }
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;
839 val_t REGB0;
840 val_t REGB1;
841 val_t REGB2;
842 val_t REGB3;
843 val_t tmp;
844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
845 fra.me.file = LOCATE_syntax___flow;
846 fra.me.line = 222;
847 fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___merge_stype;
848 fra.me.has_broke = 0;
849 fra.me.REG_size = 9;
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;
860 fra.me.REG[0] = p0;
861 fra.me.REG[1] = p1;
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)) {
869 } else {
870 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 226);
871 }
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);
877 }
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)) {
882 } else {
883 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 227);
884 }
885 fra.me.REG[4] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
886 /* ../lib/standard/collection/array.nit:269 */
887 REGB1 = TAG_Int(0);
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)) {
891 } else {
892 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
893 }
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 */
898 while(1) {
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)) {
902 } else {
903 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
904 }
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)) {
908 } else {
909 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
910 }
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);
919 }
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)) {
927 } else {
928 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
929 if (UNTAG_Bool(REGB3)) {
930 REGB3 = TAG_Bool(false);
931 REGB2 = REGB3;
932 } else {
933 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
934 REGB2 = REGB3;
935 }
936 }
937 if (UNTAG_Bool(REGB2)) {
938 /* syntax/flow.nit:230 */
939 fra.me.REG[7] = NIT_NULL;
940 goto label1;
941 }
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)) {
945 } else {
946 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
947 if (UNTAG_Bool(REGB3)) {
948 REGB3 = TAG_Bool(false);
949 REGB2 = REGB3;
950 } else {
951 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
952 REGB2 = REGB3;
953 }
954 }
955 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
956 if (UNTAG_Bool(REGB2)) {
957 /* syntax/flow.nit:233 */
958 fra.me.REG[3] = NIT_NULL;
959 }
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);
965 REGB0 = REGB2;
966 /* syntax/flow.nit:237 */
967 goto label2;
968 }
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);
974 REGB0 = REGB2;
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);
979 }
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];
982 }
983 /* syntax/flow.nit:243 */
984 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
985 if (UNTAG_Bool(REGB2)) {
986 } else {
987 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
988 if (UNTAG_Bool(REGB3)) {
989 REGB3 = TAG_Bool(false);
990 REGB2 = REGB3;
991 } else {
992 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
993 REGB2 = REGB3;
994 }
995 }
996 if (UNTAG_Bool(REGB2)) {
997 REGB2 = TAG_Bool(true);
998 } else {
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);
1002 }
1003 REGB3 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
1004 REGB2 = REGB3;
1005 }
1006 if (UNTAG_Bool(REGB2)) {
1007 /* syntax/flow.nit:244 */
1008 fra.me.REG[2] = fra.me.REG[6];
1009 }
1010 label2: while(0);
1011 /* ../lib/standard/collection/array.nit:274 */
1012 REGB2 = TAG_Int(1);
1013 /* ../lib/standard/kernel.nit:235 */
1014 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1015 /* ../lib/standard/collection/array.nit:274 */
1016 REGB1 = REGB2;
1017 } else {
1018 /* ../lib/standard/collection/array.nit:272 */
1019 goto label3;
1020 }
1021 }
1022 label3: while(0);
1023 /* syntax/flow.nit:247 */
1024 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1025 if (UNTAG_Bool(REGB1)) {
1026 } else {
1027 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1028 if (UNTAG_Bool(REGB2)) {
1029 REGB2 = TAG_Bool(false);
1030 REGB1 = REGB2;
1031 } else {
1032 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1033 REGB1 = REGB2;
1034 }
1035 }
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];
1040 goto label1;
1041 }
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)) {
1047 } else {
1048 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1049 if (UNTAG_Bool(REGB1)) {
1050 REGB1 = TAG_Bool(false);
1051 REGB0 = REGB1;
1052 } else {
1053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1054 REGB0 = REGB1;
1055 }
1056 }
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)) {
1061 } else {
1062 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 252);
1063 }
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];
1067 goto label1;
1068 } else {
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);
1073 }
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];
1076 }
1077 }
1078 /* syntax/flow.nit:257 */
1079 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1080 if (UNTAG_Bool(REGB0)) {
1081 } else {
1082 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1083 if (UNTAG_Bool(REGB1)) {
1084 REGB1 = TAG_Bool(false);
1085 REGB0 = REGB1;
1086 } else {
1087 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1088 REGB0 = REGB1;
1089 }
1090 }
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)) {
1095 } else {
1096 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow, 258);
1097 }
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];
1101 goto label1;
1102 } else {
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)) {
1106 } else {
1107 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 260);
1108 }
1109 fra.me.REG[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
1110 /* ../lib/standard/collection/array.nit:269 */
1111 REGB0 = TAG_Int(0);
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)) {
1115 } else {
1116 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1117 }
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 */
1122 while(1) {
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)) {
1126 } else {
1127 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1128 }
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)) {
1132 } else {
1133 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1134 }
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);
1143 }
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);
1152 }
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)) {
1159 } else {
1160 nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow, 263);
1161 }
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];
1165 goto label1;
1166 }
1167 /* ../lib/standard/collection/array.nit:274 */
1168 REGB1 = TAG_Int(1);
1169 /* ../lib/standard/kernel.nit:235 */
1170 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1171 /* ../lib/standard/collection/array.nit:274 */
1172 REGB0 = REGB1;
1173 } else {
1174 /* ../lib/standard/collection/array.nit:272 */
1175 goto label4;
1176 }
1177 }
1178 label4: while(0);
1179 }
1180 /* syntax/flow.nit:267 */
1181 fra.me.REG[7] = fra.me.REG[2];
1182 goto label1;
1183 label1: while(0);
1184 stack_frame_head = fra.me.prev;
1185 return fra.me.REG[7];
1186 }
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;
1189 val_t REGB0;
1190 val_t REGB1;
1191 val_t REGB2;
1192 val_t REGB3;
1193 val_t tmp;
1194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1195 fra.me.file = LOCATE_syntax___flow;
1196 fra.me.line = 270;
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;
1206 fra.me.REG[0] = p0;
1207 fra.me.REG[1] = p1;
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)) {
1211 } else {
1212 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 272);
1213 }
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);
1219 goto label1;
1220 } else {
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)) {
1224 } else {
1225 nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 275);
1226 }
1227 fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
1228 /* ../lib/standard/collection/array.nit:269 */
1229 REGB1 = TAG_Int(0);
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)) {
1233 } else {
1234 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1235 }
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 */
1240 while(1) {
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)) {
1244 } else {
1245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1246 }
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)) {
1250 } else {
1251 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1252 }
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);
1261 }
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);
1270 REGB0 = REGB2;
1271 goto label1;
1272 }
1273 /* ../lib/standard/collection/array.nit:274 */
1274 REGB2 = TAG_Int(1);
1275 /* ../lib/standard/kernel.nit:235 */
1276 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1277 /* ../lib/standard/collection/array.nit:274 */
1278 REGB1 = REGB2;
1279 } else {
1280 /* ../lib/standard/collection/array.nit:272 */
1281 goto label2;
1282 }
1283 }
1284 label2: while(0);
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)) {
1288 } else {
1289 nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 280);
1290 }
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);
1295 REGB0 = REGB1;
1296 goto label1;
1297 }
1298 label1: while(0);
1299 stack_frame_head = fra.me.prev;
1300 return REGB0;
1301 }
1302 val_t syntax___flow___Variable___must_be_set(val_t p0){
1303 struct {struct stack_frame_t me;} fra;
1304 val_t REGB0;
1305 val_t tmp;
1306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1307 fra.me.file = LOCATE_syntax___flow;
1308 fra.me.line = 288;
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;
1314 fra.me.REG[0] = p0;
1315 /* syntax/flow.nit:289 */
1316 REGB0 = TAG_Bool(false);
1317 goto label1;
1318 label1: while(0);
1319 stack_frame_head = fra.me.prev;
1320 return REGB0;
1321 }
1322 val_t syntax___flow___VarVariable___must_be_set(val_t p0){
1323 struct {struct stack_frame_t me;} fra;
1324 val_t REGB0;
1325 val_t tmp;
1326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1327 fra.me.file = LOCATE_syntax___flow;
1328 fra.me.line = 293;
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;
1334 fra.me.REG[0] = p0;
1335 /* syntax/flow.nit:293 */
1336 REGB0 = TAG_Bool(true);
1337 goto label1;
1338 label1: while(0);
1339 stack_frame_head = fra.me.prev;
1340 return REGB0;
1341 }