nitg: frame receiver is a type (not a variable)
[nit.git] / c_src / syntax___scope._sep.c
1 /* This C file is generated by NIT to compile module syntax___scope. */
2 #include "syntax___scope._sep.h"
3 val_t syntax___scope___ScopeContext_____bra(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t REGB2;
8 val_t REGB3;
9 val_t tmp;
10 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11 fra.me.file = LOCATE_syntax___scope;
12 fra.me.line = 45;
13 fra.me.meth = LOCATE_syntax___scope___ScopeContext_____bra;
14 fra.me.has_broke = 0;
15 fra.me.REG_size = 3;
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[0] = p0;
21 fra.me.REG[1] = p1;
22 /* syntax/scope.nit:48 */
23 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
24 if (UNTAG_Bool(REGB0)) {
25 } else {
26 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 48);
27 }
28 fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
29 /* ../lib/standard/collection/array.nit:24 */
30 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
31 if (UNTAG_Bool(REGB0)) {
32 } else {
33 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
34 }
35 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
36 /* syntax/scope.nit:48 */
37 REGB1 = TAG_Int(1);
38 /* ../lib/standard/kernel.nit:237 */
39 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
40 /* syntax/scope.nit:49 */
41 while(1) {
42 REGB0 = TAG_Int(0);
43 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
44 if (UNTAG_Bool(REGB2)) {
45 } else {
46 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
47 }
48 /* ../lib/standard/kernel.nit:233 */
49 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
50 /* syntax/scope.nit:49 */
51 if (UNTAG_Bool(REGB0)) {
52 /* syntax/scope.nit:50 */
53 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
54 if (UNTAG_Bool(REGB0)) {
55 } else {
56 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 50);
57 }
58 fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
59 /* ../lib/standard/collection/array.nit:278 */
60 REGB0 = REGB1;
61 /* ../lib/standard/collection/array.nit:280 */
62 REGB2 = TAG_Int(0);
63 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
64 if (UNTAG_Bool(REGB3)) {
65 } else {
66 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
67 }
68 /* ../lib/standard/kernel.nit:233 */
69 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
70 /* ../lib/standard/collection/array.nit:280 */
71 if (UNTAG_Bool(REGB2)) {
72 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
73 if (UNTAG_Bool(REGB2)) {
74 } else {
75 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
76 }
77 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
78 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
79 if (UNTAG_Bool(REGB3)) {
80 } else {
81 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
82 }
83 /* ../lib/standard/kernel.nit:232 */
84 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
85 } else {
86 /* ../lib/standard/collection/array.nit:280 */
87 REGB3 = TAG_Bool(false);
88 REGB2 = REGB3;
89 }
90 if (UNTAG_Bool(REGB2)) {
91 } else {
92 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
93 }
94 /* ../lib/standard/collection/array.nit:281 */
95 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
96 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
97 if (UNTAG_Bool(REGB2)) {
98 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
99 }
100 /* ../lib/standard/collection/array.nit:718 */
101 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
102 /* ../lib/standard/collection/array.nit:281 */
103 goto label1;
104 label1: while(0);
105 /* syntax/scope.nit:51 */
106 fra.me.REG[2] = CALL_syntax___scope___ScopeBlock___get_variable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
107 /* syntax/scope.nit:52 */
108 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
109 if (UNTAG_Bool(REGB0)) {
110 } else {
111 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
112 if (UNTAG_Bool(REGB2)) {
113 REGB2 = TAG_Bool(false);
114 REGB0 = REGB2;
115 } else {
116 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
117 REGB0 = REGB2;
118 }
119 }
120 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
121 if (UNTAG_Bool(REGB0)) {
122 goto label2;
123 }
124 /* syntax/scope.nit:53 */
125 REGB0 = TAG_Int(1);
126 /* ../lib/standard/kernel.nit:237 */
127 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
128 /* syntax/scope.nit:53 */
129 REGB1 = REGB0;
130 } else {
131 /* syntax/scope.nit:49 */
132 goto label3;
133 }
134 }
135 label3: while(0);
136 /* syntax/scope.nit:55 */
137 fra.me.REG[2] = NIT_NULL;
138 goto label2;
139 label2: while(0);
140 stack_frame_head = fra.me.prev;
141 return fra.me.REG[2];
142 }
143 void syntax___scope___ScopeContext___add_variable(val_t p0, val_t p1){
144 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
145 val_t REGB0;
146 val_t REGB1;
147 val_t tmp;
148 static val_t once_value_1; /* Once value */
149 static val_t once_value_2; /* Once value */
150 static val_t once_value_3; /* Once value */
151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
152 fra.me.file = LOCATE_syntax___scope;
153 fra.me.line = 58;
154 fra.me.meth = LOCATE_syntax___scope___ScopeContext___add_variable;
155 fra.me.has_broke = 0;
156 fra.me.REG_size = 7;
157 fra.me.nitni_local_ref_head = NULL;
158 fra.me.REG[0] = NIT_NULL;
159 fra.me.REG[1] = NIT_NULL;
160 fra.me.REG[2] = NIT_NULL;
161 fra.me.REG[3] = NIT_NULL;
162 fra.me.REG[4] = NIT_NULL;
163 fra.me.REG[5] = NIT_NULL;
164 fra.me.REG[6] = NIT_NULL;
165 fra.me.REG[0] = p0;
166 fra.me.REG[1] = p1;
167 /* syntax/scope.nit:62 */
168 fra.me.REG[2] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]);
169 fra.me.REG[2] = CALL_syntax___scope___ScopeContext_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
170 /* syntax/scope.nit:63 */
171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
172 if (UNTAG_Bool(REGB0)) {
173 } else {
174 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
175 if (UNTAG_Bool(REGB1)) {
176 REGB1 = TAG_Bool(false);
177 REGB0 = REGB1;
178 } else {
179 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
180 REGB0 = REGB1;
181 }
182 }
183 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
184 if (UNTAG_Bool(REGB0)) {
185 /* syntax/scope.nit:64 */
186 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0])!=NIT_NULL);
187 if (UNTAG_Bool(REGB0)) {
188 } else {
189 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___scope, 64);
190 }
191 fra.me.REG[3] = ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0]);
192 fra.me.REG[4] = CALL_syntax___syntax_base___Variable___decl(fra.me.REG[1])(fra.me.REG[1]);
193 REGB0 = TAG_Int(5);
194 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
195 if (!once_value_1) {
196 fra.me.REG[6] = BOX_NativeString("Error: '");
197 REGB0 = TAG_Int(8);
198 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
199 once_value_1 = fra.me.REG[6];
200 register_static_object(&once_value_1);
201 } else fra.me.REG[6] = once_value_1;
202 fra.me.REG[6] = fra.me.REG[6];
203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
204 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
206 if (!once_value_2) {
207 fra.me.REG[6] = BOX_NativeString("' already defined at ");
208 REGB0 = TAG_Int(21);
209 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
210 once_value_2 = fra.me.REG[6];
211 register_static_object(&once_value_2);
212 } else fra.me.REG[6] = once_value_2;
213 fra.me.REG[6] = fra.me.REG[6];
214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
216 if (UNTAG_Bool(REGB0)) {
217 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 64);
218 }
219 fra.me.REG[2] = CALL_syntax___syntax_base___Variable___decl(fra.me.REG[2])(fra.me.REG[2]);
220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
221 if (UNTAG_Bool(REGB0)) {
222 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 64);
223 }
224 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
225 fra.me.REG[6] = CALL_syntax___syntax_base___Variable___decl(fra.me.REG[1])(fra.me.REG[1]);
226 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
227 if (UNTAG_Bool(REGB0)) {
228 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 64);
229 }
230 fra.me.REG[6] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]);
231 fra.me.REG[6] = CALL_location___Location___relative_to(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
233 if (!once_value_3) {
234 fra.me.REG[6] = BOX_NativeString(".");
235 REGB0 = TAG_Int(1);
236 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
237 once_value_3 = fra.me.REG[6];
238 register_static_object(&once_value_3);
239 } else fra.me.REG[6] = once_value_3;
240 fra.me.REG[6] = fra.me.REG[6];
241 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
242 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
243 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
244 }
245 /* syntax/scope.nit:66 */
246 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
247 if (UNTAG_Bool(REGB0)) {
248 } else {
249 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 66);
250 }
251 fra.me.REG[5] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
252 fra.me.REG[5] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[5])(fra.me.REG[5]);
253 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
254 if (UNTAG_Bool(REGB0)) {
255 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 66);
256 }
257 CALL_syntax___scope___ScopeBlock___add_variable(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
258 /* syntax/scope.nit:67 */
259 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____variables(fra.me.REG[0])!=NIT_NULL);
260 if (UNTAG_Bool(REGB0)) {
261 } else {
262 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___scope, 67);
263 }
264 fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____variables(fra.me.REG[0]);
265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
266 stack_frame_head = fra.me.prev;
267 return;
268 }
269 void syntax___scope___ScopeContext___push(val_t p0, val_t p1){
270 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
271 val_t REGB0;
272 val_t tmp;
273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
274 fra.me.file = LOCATE_syntax___scope;
275 fra.me.line = 70;
276 fra.me.meth = LOCATE_syntax___scope___ScopeContext___push;
277 fra.me.has_broke = 0;
278 fra.me.REG_size = 2;
279 fra.me.nitni_local_ref_head = NULL;
280 fra.me.REG[0] = NIT_NULL;
281 fra.me.REG[1] = NIT_NULL;
282 fra.me.REG[0] = p0;
283 fra.me.REG[1] = p1;
284 /* syntax/scope.nit:73 */
285 fra.me.REG[1] = NEW_ScopeBlock_syntax___scope___ScopeBlock___init(fra.me.REG[1]);
286 /* syntax/scope.nit:74 */
287 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
288 if (UNTAG_Bool(REGB0)) {
289 } else {
290 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 74);
291 }
292 fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
293 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
294 stack_frame_head = fra.me.prev;
295 return;
296 }
297 void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2){
298 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
299 val_t REGB0;
300 val_t REGB1;
301 val_t REGB2;
302 val_t tmp;
303 static val_t once_value_1; /* Once value */
304 static val_t once_value_2; /* Once value */
305 static val_t once_value_3; /* Once value */
306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
307 fra.me.file = LOCATE_syntax___scope;
308 fra.me.line = 77;
309 fra.me.meth = LOCATE_syntax___scope___ScopeContext___push_escapable;
310 fra.me.has_broke = 0;
311 fra.me.REG_size = 10;
312 fra.me.nitni_local_ref_head = NULL;
313 fra.me.REG[0] = NIT_NULL;
314 fra.me.REG[1] = NIT_NULL;
315 fra.me.REG[2] = NIT_NULL;
316 fra.me.REG[3] = NIT_NULL;
317 fra.me.REG[4] = NIT_NULL;
318 fra.me.REG[5] = NIT_NULL;
319 fra.me.REG[6] = NIT_NULL;
320 fra.me.REG[7] = NIT_NULL;
321 fra.me.REG[8] = NIT_NULL;
322 fra.me.REG[9] = NIT_NULL;
323 fra.me.REG[0] = p0;
324 fra.me.REG[1] = p1;
325 fra.me.REG[2] = p2;
326 /* syntax/scope.nit:81 */
327 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
328 if (UNTAG_Bool(REGB0)) {
329 } else {
330 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 81);
331 }
332 fra.me.REG[3] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
333 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
334 /* syntax/scope.nit:82 */
335 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
336 if (UNTAG_Bool(REGB0)) {
337 } else {
338 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
339 if (UNTAG_Bool(REGB1)) {
340 REGB1 = TAG_Bool(false);
341 REGB0 = REGB1;
342 } else {
343 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
344 REGB0 = REGB1;
345 }
346 }
347 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
348 if (UNTAG_Bool(REGB0)) {
349 /* syntax/scope.nit:83 */
350 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
351 if (UNTAG_Bool(REGB0)) {
352 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 83);
353 }
354 fra.me.REG[3] = CALL_parser___parser_nodes___ALabel___n_id(fra.me.REG[2])(fra.me.REG[2]);
355 fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
356 /* syntax/scope.nit:84 */
357 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0])!=NIT_NULL);
358 if (UNTAG_Bool(REGB0)) {
359 } else {
360 nit_abort("Uninitialized attribute %s", "_labels", LOCATE_syntax___scope, 84);
361 }
362 fra.me.REG[4] = ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0]);
363 /* ../lib/standard/collection/array.nit:269 */
364 REGB0 = TAG_Int(0);
365 /* ../lib/standard/collection/array.nit:270 */
366 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
367 if (UNTAG_Bool(REGB1)) {
368 } else {
369 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
370 }
371 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
372 /* ../lib/standard/collection/array.nit:271 */
373 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
374 /* ../lib/standard/collection/array.nit:272 */
375 while(1) {
376 /* ../lib/standard/collection/array.nit:24 */
377 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
378 if (UNTAG_Bool(REGB1)) {
379 } else {
380 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
381 }
382 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
383 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
384 if (UNTAG_Bool(REGB2)) {
385 } else {
386 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
387 }
388 /* ../lib/standard/kernel.nit:232 */
389 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
390 /* ../lib/standard/collection/array.nit:272 */
391 if (UNTAG_Bool(REGB1)) {
392 /* ../lib/standard/collection/array.nit:273 */
393 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
394 if (UNTAG_Bool(REGB1)) {
395 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
396 }
397 /* ../lib/standard/collection/array.nit:718 */
398 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
399 /* syntax/scope.nit:85 */
400 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[2]));
401 if (UNTAG_Bool(REGB1)) {
402 } else {
403 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
404 if (UNTAG_Bool(REGB2)) {
405 REGB2 = TAG_Bool(false);
406 REGB1 = REGB2;
407 } else {
408 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
409 REGB1 = REGB2;
410 }
411 }
412 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
413 if (UNTAG_Bool(REGB1)) {
414 fra.me.REG[7] = CALL_parser___parser_nodes___ALabel___n_id(fra.me.REG[6])(fra.me.REG[6]);
415 fra.me.REG[7] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[7])(fra.me.REG[7]);
416 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[7]));
417 if (UNTAG_Bool(REGB1)) {
418 } else {
419 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
420 REGB1 = REGB2;
421 }
422 } else {
423 REGB2 = TAG_Bool(false);
424 REGB1 = REGB2;
425 }
426 if (UNTAG_Bool(REGB1)) {
427 /* syntax/scope.nit:86 */
428 fra.me.REG[7] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
429 REGB1 = TAG_Int(5);
430 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
431 if (!once_value_1) {
432 fra.me.REG[9] = BOX_NativeString("Syntax error: label ");
433 REGB1 = TAG_Int(20);
434 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
435 once_value_1 = fra.me.REG[9];
436 register_static_object(&once_value_1);
437 } else fra.me.REG[9] = once_value_1;
438 fra.me.REG[9] = fra.me.REG[9];
439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
440 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
442 if (!once_value_2) {
443 fra.me.REG[9] = BOX_NativeString(" already defined at ");
444 REGB1 = TAG_Int(20);
445 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
446 once_value_2 = fra.me.REG[9];
447 register_static_object(&once_value_2);
448 } else fra.me.REG[9] = once_value_2;
449 fra.me.REG[9] = fra.me.REG[9];
450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
451 fra.me.REG[6] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]);
452 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
453 if (UNTAG_Bool(REGB1)) {
454 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 86);
455 }
456 fra.me.REG[9] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
457 fra.me.REG[9] = CALL_location___Location___relative_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
459 if (!once_value_3) {
460 fra.me.REG[9] = BOX_NativeString(".");
461 REGB1 = TAG_Int(1);
462 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
463 once_value_3 = fra.me.REG[9];
464 register_static_object(&once_value_3);
465 } else fra.me.REG[9] = once_value_3;
466 fra.me.REG[9] = fra.me.REG[9];
467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
468 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
469 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2], fra.me.REG[8]);
470 /* syntax/scope.nit:87 */
471 goto label4;
472 }
473 /* ../lib/standard/collection/array.nit:274 */
474 REGB1 = TAG_Int(1);
475 /* ../lib/standard/kernel.nit:235 */
476 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
477 /* ../lib/standard/collection/array.nit:274 */
478 REGB0 = REGB1;
479 } else {
480 /* ../lib/standard/collection/array.nit:272 */
481 goto label5;
482 }
483 }
484 label5: while(0);
485 /* syntax/scope.nit:90 */
486 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0])!=NIT_NULL);
487 if (UNTAG_Bool(REGB0)) {
488 } else {
489 nit_abort("Uninitialized attribute %s", "_labels", LOCATE_syntax___scope, 90);
490 }
491 fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0]);
492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
493 /* syntax/scope.nit:91 */
494 ATTR_syntax___scope___EscapableBlock____lab(fra.me.REG[1]) = fra.me.REG[3];
495 }
496 label4: while(0);
497 stack_frame_head = fra.me.prev;
498 return;
499 }
500 val_t syntax___scope___ScopeContext___head(val_t p0){
501 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
502 val_t REGB0;
503 val_t REGB1;
504 val_t REGB2;
505 val_t REGB3;
506 val_t tmp;
507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
508 fra.me.file = LOCATE_syntax___scope;
509 fra.me.line = 95;
510 fra.me.meth = LOCATE_syntax___scope___ScopeContext___head;
511 fra.me.has_broke = 0;
512 fra.me.REG_size = 2;
513 fra.me.nitni_local_ref_head = NULL;
514 fra.me.REG[0] = NIT_NULL;
515 fra.me.REG[1] = NIT_NULL;
516 fra.me.REG[0] = p0;
517 /* syntax/scope.nit:98 */
518 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
519 if (UNTAG_Bool(REGB0)) {
520 } else {
521 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 98);
522 }
523 fra.me.REG[1] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
524 /* ../lib/standard/collection/array.nit:24 */
525 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
526 if (UNTAG_Bool(REGB0)) {
527 } else {
528 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
529 }
530 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
531 /* syntax/scope.nit:98 */
532 REGB1 = TAG_Int(1);
533 /* ../lib/standard/kernel.nit:237 */
534 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
535 /* syntax/scope.nit:99 */
536 while(1) {
537 REGB0 = TAG_Int(0);
538 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
539 if (UNTAG_Bool(REGB2)) {
540 } else {
541 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
542 }
543 /* ../lib/standard/kernel.nit:233 */
544 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
545 /* syntax/scope.nit:99 */
546 if (UNTAG_Bool(REGB0)) {
547 /* syntax/scope.nit:100 */
548 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
549 if (UNTAG_Bool(REGB0)) {
550 } else {
551 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 100);
552 }
553 fra.me.REG[1] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
554 /* ../lib/standard/collection/array.nit:278 */
555 REGB0 = REGB1;
556 /* ../lib/standard/collection/array.nit:280 */
557 REGB2 = TAG_Int(0);
558 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
559 if (UNTAG_Bool(REGB3)) {
560 } else {
561 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
562 }
563 /* ../lib/standard/kernel.nit:233 */
564 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
565 /* ../lib/standard/collection/array.nit:280 */
566 if (UNTAG_Bool(REGB2)) {
567 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
568 if (UNTAG_Bool(REGB2)) {
569 } else {
570 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
571 }
572 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
573 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
574 if (UNTAG_Bool(REGB3)) {
575 } else {
576 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
577 }
578 /* ../lib/standard/kernel.nit:232 */
579 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
580 } else {
581 /* ../lib/standard/collection/array.nit:280 */
582 REGB3 = TAG_Bool(false);
583 REGB2 = REGB3;
584 }
585 if (UNTAG_Bool(REGB2)) {
586 } else {
587 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
588 }
589 /* ../lib/standard/collection/array.nit:281 */
590 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
591 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
592 if (UNTAG_Bool(REGB2)) {
593 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
594 }
595 /* ../lib/standard/collection/array.nit:718 */
596 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
597 /* ../lib/standard/collection/array.nit:281 */
598 goto label1;
599 label1: while(0);
600 /* syntax/scope.nit:101 */
601 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___scope___EscapableBlock, ID_syntax___scope___EscapableBlock)) /*cast EscapableBlock*/;
602 if (UNTAG_Bool(REGB0)) {
603 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___scope___BreakOnlyEscapableBlock, ID_syntax___scope___BreakOnlyEscapableBlock)) /*cast BreakOnlyEscapableBlock*/;
604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
605 } else {
606 REGB2 = TAG_Bool(false);
607 REGB0 = REGB2;
608 }
609 if (UNTAG_Bool(REGB0)) {
610 goto label2;
611 }
612 /* syntax/scope.nit:102 */
613 REGB0 = TAG_Int(1);
614 /* ../lib/standard/kernel.nit:237 */
615 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
616 /* syntax/scope.nit:102 */
617 REGB1 = REGB0;
618 } else {
619 /* syntax/scope.nit:99 */
620 goto label3;
621 }
622 }
623 label3: while(0);
624 /* syntax/scope.nit:104 */
625 fra.me.REG[1] = NIT_NULL;
626 goto label2;
627 label2: while(0);
628 stack_frame_head = fra.me.prev;
629 return fra.me.REG[1];
630 }
631 val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
632 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
633 val_t REGB0;
634 val_t REGB1;
635 val_t REGB2;
636 val_t REGB3;
637 val_t tmp;
638 static val_t once_value_4; /* Once value */
639 static val_t once_value_5; /* Once value */
640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
641 fra.me.file = LOCATE_syntax___scope;
642 fra.me.line = 107;
643 fra.me.meth = LOCATE_syntax___scope___ScopeContext___get_by_label;
644 fra.me.has_broke = 0;
645 fra.me.REG_size = 6;
646 fra.me.nitni_local_ref_head = NULL;
647 fra.me.REG[0] = NIT_NULL;
648 fra.me.REG[1] = NIT_NULL;
649 fra.me.REG[2] = NIT_NULL;
650 fra.me.REG[3] = NIT_NULL;
651 fra.me.REG[4] = NIT_NULL;
652 fra.me.REG[5] = NIT_NULL;
653 fra.me.REG[0] = p0;
654 fra.me.REG[1] = p1;
655 /* syntax/scope.nit:111 */
656 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
657 if (UNTAG_Bool(REGB0)) {
658 } else {
659 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 111);
660 }
661 fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
662 /* ../lib/standard/collection/array.nit:24 */
663 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
664 if (UNTAG_Bool(REGB0)) {
665 } else {
666 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
667 }
668 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
669 /* syntax/scope.nit:111 */
670 REGB1 = TAG_Int(1);
671 /* ../lib/standard/kernel.nit:237 */
672 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
673 /* syntax/scope.nit:112 */
674 fra.me.REG[2] = CALL_parser___parser_nodes___ALabel___n_id(fra.me.REG[1])(fra.me.REG[1]);
675 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
676 /* syntax/scope.nit:113 */
677 while(1) {
678 REGB0 = TAG_Int(0);
679 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
680 if (UNTAG_Bool(REGB2)) {
681 } else {
682 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
683 }
684 /* ../lib/standard/kernel.nit:233 */
685 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
686 /* syntax/scope.nit:113 */
687 if (UNTAG_Bool(REGB0)) {
688 /* syntax/scope.nit:114 */
689 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
690 if (UNTAG_Bool(REGB0)) {
691 } else {
692 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 114);
693 }
694 fra.me.REG[3] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
695 /* ../lib/standard/collection/array.nit:278 */
696 REGB0 = REGB1;
697 /* ../lib/standard/collection/array.nit:280 */
698 REGB2 = TAG_Int(0);
699 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
700 if (UNTAG_Bool(REGB3)) {
701 } else {
702 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
703 }
704 /* ../lib/standard/kernel.nit:233 */
705 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
706 /* ../lib/standard/collection/array.nit:280 */
707 if (UNTAG_Bool(REGB2)) {
708 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
709 if (UNTAG_Bool(REGB2)) {
710 } else {
711 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
712 }
713 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
714 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
715 if (UNTAG_Bool(REGB3)) {
716 } else {
717 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
718 }
719 /* ../lib/standard/kernel.nit:232 */
720 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
721 } else {
722 /* ../lib/standard/collection/array.nit:280 */
723 REGB3 = TAG_Bool(false);
724 REGB2 = REGB3;
725 }
726 if (UNTAG_Bool(REGB2)) {
727 } else {
728 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
729 }
730 /* ../lib/standard/collection/array.nit:281 */
731 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
732 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
733 if (UNTAG_Bool(REGB2)) {
734 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
735 }
736 /* ../lib/standard/collection/array.nit:718 */
737 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
738 /* ../lib/standard/collection/array.nit:281 */
739 goto label1;
740 label1: while(0);
741 /* syntax/scope.nit:115 */
742 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_syntax___scope___EscapableBlock, ID_syntax___scope___EscapableBlock)) /*cast EscapableBlock*/;
743 if (UNTAG_Bool(REGB0)) {
744 fra.me.REG[4] = CALL_syntax___scope___EscapableBlock___lab(fra.me.REG[3])(fra.me.REG[3]);
745 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[2],fra.me.REG[4]));
746 if (UNTAG_Bool(REGB0)) {
747 } else {
748 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
749 if (UNTAG_Bool(REGB2)) {
750 REGB2 = TAG_Bool(false);
751 REGB0 = REGB2;
752 } else {
753 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
754 REGB0 = REGB2;
755 }
756 }
757 } else {
758 REGB2 = TAG_Bool(false);
759 REGB0 = REGB2;
760 }
761 if (UNTAG_Bool(REGB0)) {
762 goto label2;
763 }
764 /* syntax/scope.nit:116 */
765 REGB0 = TAG_Int(1);
766 /* ../lib/standard/kernel.nit:237 */
767 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
768 /* syntax/scope.nit:116 */
769 REGB1 = REGB0;
770 } else {
771 /* syntax/scope.nit:113 */
772 goto label3;
773 }
774 }
775 label3: while(0);
776 /* syntax/scope.nit:118 */
777 fra.me.REG[0] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
778 REGB1 = TAG_Int(3);
779 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
780 if (!once_value_4) {
781 fra.me.REG[5] = BOX_NativeString("Syntax error: invalid label ");
782 REGB1 = TAG_Int(28);
783 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
784 once_value_4 = fra.me.REG[5];
785 register_static_object(&once_value_4);
786 } else fra.me.REG[5] = once_value_4;
787 fra.me.REG[5] = fra.me.REG[5];
788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
789 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
791 if (!once_value_5) {
792 fra.me.REG[2] = BOX_NativeString(".");
793 REGB1 = TAG_Int(1);
794 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
795 once_value_5 = fra.me.REG[2];
796 register_static_object(&once_value_5);
797 } else fra.me.REG[2] = once_value_5;
798 fra.me.REG[2] = fra.me.REG[2];
799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
800 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
801 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
802 /* syntax/scope.nit:119 */
803 fra.me.REG[3] = NIT_NULL;
804 goto label2;
805 label2: while(0);
806 stack_frame_head = fra.me.prev;
807 return fra.me.REG[3];
808 }
809 void syntax___scope___ScopeContext___pop(val_t p0){
810 struct {struct stack_frame_t me;} fra;
811 val_t REGB0;
812 val_t tmp;
813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
814 fra.me.file = LOCATE_syntax___scope;
815 fra.me.line = 122;
816 fra.me.meth = LOCATE_syntax___scope___ScopeContext___pop;
817 fra.me.has_broke = 0;
818 fra.me.REG_size = 1;
819 fra.me.nitni_local_ref_head = NULL;
820 fra.me.REG[0] = NIT_NULL;
821 fra.me.REG[0] = p0;
822 /* syntax/scope.nit:125 */
823 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
824 if (UNTAG_Bool(REGB0)) {
825 } else {
826 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 125);
827 }
828 fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
829 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
830 stack_frame_head = fra.me.prev;
831 return;
832 }
833 val_t syntax___scope___ScopeContext___visitor(val_t p0){
834 struct {struct stack_frame_t me;} fra;
835 val_t REGB0;
836 val_t tmp;
837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
838 fra.me.file = LOCATE_syntax___scope;
839 fra.me.line = 128;
840 fra.me.meth = LOCATE_syntax___scope___ScopeContext___visitor;
841 fra.me.has_broke = 0;
842 fra.me.REG_size = 1;
843 fra.me.nitni_local_ref_head = NULL;
844 fra.me.REG[0] = NIT_NULL;
845 fra.me.REG[0] = p0;
846 /* syntax/scope.nit:128 */
847 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0])!=NIT_NULL);
848 if (UNTAG_Bool(REGB0)) {
849 } else {
850 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___scope, 128);
851 }
852 fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0]);
853 stack_frame_head = fra.me.prev;
854 return fra.me.REG[0];
855 }
856 void syntax___scope___ScopeContext___init(val_t p0, val_t p1, int* init_table){
857 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___scope___ScopeContext].i;
858 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
859 val_t tmp;
860 if (init_table[itpos0]) return;
861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
862 fra.me.file = LOCATE_syntax___scope;
863 fra.me.line = 129;
864 fra.me.meth = LOCATE_syntax___scope___ScopeContext___init;
865 fra.me.has_broke = 0;
866 fra.me.REG_size = 2;
867 fra.me.nitni_local_ref_head = NULL;
868 fra.me.REG[0] = NIT_NULL;
869 fra.me.REG[1] = NIT_NULL;
870 fra.me.REG[0] = p0;
871 fra.me.REG[1] = p1;
872 /* syntax/scope.nit:131 */
873 ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0]) = fra.me.REG[1];
874 stack_frame_head = fra.me.prev;
875 init_table[itpos0] = 1;
876 return;
877 }
878 val_t syntax___scope___ScopeBlock___node(val_t p0){
879 struct {struct stack_frame_t me;} fra;
880 val_t REGB0;
881 val_t tmp;
882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
883 fra.me.file = LOCATE_syntax___scope;
884 fra.me.line = 140;
885 fra.me.meth = LOCATE_syntax___scope___ScopeBlock___node;
886 fra.me.has_broke = 0;
887 fra.me.REG_size = 1;
888 fra.me.nitni_local_ref_head = NULL;
889 fra.me.REG[0] = NIT_NULL;
890 fra.me.REG[0] = p0;
891 /* syntax/scope.nit:140 */
892 REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0])!=NIT_NULL);
893 if (UNTAG_Bool(REGB0)) {
894 } else {
895 nit_abort("Uninitialized attribute %s", "_node", LOCATE_syntax___scope, 140);
896 }
897 fra.me.REG[0] = ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0]);
898 stack_frame_head = fra.me.prev;
899 return fra.me.REG[0];
900 }
901 void syntax___scope___ScopeBlock___add_variable(val_t p0, val_t p1){
902 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
903 val_t REGB0;
904 val_t REGB1;
905 val_t tmp;
906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
907 fra.me.file = LOCATE_syntax___scope;
908 fra.me.line = 147;
909 fra.me.meth = LOCATE_syntax___scope___ScopeBlock___add_variable;
910 fra.me.has_broke = 0;
911 fra.me.REG_size = 4;
912 fra.me.nitni_local_ref_head = NULL;
913 fra.me.REG[0] = NIT_NULL;
914 fra.me.REG[1] = NIT_NULL;
915 fra.me.REG[2] = NIT_NULL;
916 fra.me.REG[3] = NIT_NULL;
917 fra.me.REG[0] = p0;
918 fra.me.REG[1] = p1;
919 /* syntax/scope.nit:149 */
920 fra.me.REG[2] = ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]);
921 /* syntax/scope.nit:150 */
922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
923 if (UNTAG_Bool(REGB0)) {
924 } else {
925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
926 if (UNTAG_Bool(REGB1)) {
927 REGB1 = TAG_Bool(false);
928 REGB0 = REGB1;
929 } else {
930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
931 REGB0 = REGB1;
932 }
933 }
934 if (UNTAG_Bool(REGB0)) {
935 /* syntax/scope.nit:151 */
936 fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
937 fra.me.REG[2] = fra.me.REG[3];
938 /* syntax/scope.nit:152 */
939 ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[2];
940 }
941 /* syntax/scope.nit:154 */
942 fra.me.REG[0] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]);
943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
944 if (UNTAG_Bool(REGB0)) {
945 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 154);
946 }
947 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
948 stack_frame_head = fra.me.prev;
949 return;
950 }
951 val_t syntax___scope___ScopeBlock___get_variable(val_t p0, val_t p1){
952 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
953 val_t REGB0;
954 val_t REGB1;
955 val_t tmp;
956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
957 fra.me.file = LOCATE_syntax___scope;
958 fra.me.line = 157;
959 fra.me.meth = LOCATE_syntax___scope___ScopeBlock___get_variable;
960 fra.me.has_broke = 0;
961 fra.me.REG_size = 3;
962 fra.me.nitni_local_ref_head = NULL;
963 fra.me.REG[0] = NIT_NULL;
964 fra.me.REG[1] = NIT_NULL;
965 fra.me.REG[2] = NIT_NULL;
966 fra.me.REG[0] = p0;
967 fra.me.REG[1] = p1;
968 /* syntax/scope.nit:159 */
969 fra.me.REG[0] = ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]);
970 /* syntax/scope.nit:160 */
971 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
972 if (UNTAG_Bool(REGB0)) {
973 } else {
974 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
975 if (UNTAG_Bool(REGB1)) {
976 REGB1 = TAG_Bool(false);
977 REGB0 = REGB1;
978 } else {
979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
980 REGB0 = REGB1;
981 }
982 }
983 if (UNTAG_Bool(REGB0)) {
984 fra.me.REG[2] = NIT_NULL;
985 goto label1;
986 }
987 /* syntax/scope.nit:161 */
988 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
989 if (UNTAG_Bool(REGB0)) {
990 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 161);
991 }
992 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
993 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
994 if (UNTAG_Bool(REGB0)) {
995 fra.me.REG[2] = NIT_NULL;
996 goto label1;
997 }
998 /* syntax/scope.nit:162 */
999 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1000 if (UNTAG_Bool(REGB0)) {
1001 nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 162);
1002 }
1003 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1004 fra.me.REG[2] = fra.me.REG[1];
1005 goto label1;
1006 label1: while(0);
1007 stack_frame_head = fra.me.prev;
1008 return fra.me.REG[2];
1009 }
1010 void syntax___scope___ScopeBlock___init(val_t p0, val_t p1, int* init_table){
1011 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___scope___ScopeBlock].i;
1012 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1013 val_t tmp;
1014 if (init_table[itpos1]) return;
1015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1016 fra.me.file = LOCATE_syntax___scope;
1017 fra.me.line = 165;
1018 fra.me.meth = LOCATE_syntax___scope___ScopeBlock___init;
1019 fra.me.has_broke = 0;
1020 fra.me.REG_size = 2;
1021 fra.me.nitni_local_ref_head = NULL;
1022 fra.me.REG[0] = NIT_NULL;
1023 fra.me.REG[1] = NIT_NULL;
1024 fra.me.REG[0] = p0;
1025 fra.me.REG[1] = p1;
1026 /* syntax/scope.nit:167 */
1027 ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0]) = fra.me.REG[1];
1028 stack_frame_head = fra.me.prev;
1029 init_table[itpos1] = 1;
1030 return;
1031 }
1032 val_t syntax___scope___EscapableBlock___lab(val_t p0){
1033 struct {struct stack_frame_t me;} fra;
1034 val_t tmp;
1035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1036 fra.me.file = LOCATE_syntax___scope;
1037 fra.me.line = 178;
1038 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___lab;
1039 fra.me.has_broke = 0;
1040 fra.me.REG_size = 1;
1041 fra.me.nitni_local_ref_head = NULL;
1042 fra.me.REG[0] = NIT_NULL;
1043 fra.me.REG[0] = p0;
1044 /* syntax/scope.nit:178 */
1045 fra.me.REG[0] = ATTR_syntax___scope___EscapableBlock____lab(fra.me.REG[0]);
1046 stack_frame_head = fra.me.prev;
1047 return fra.me.REG[0];
1048 }
1049 val_t syntax___scope___EscapableBlock___is_break_block(val_t p0){
1050 struct {struct stack_frame_t me;} fra;
1051 val_t REGB0;
1052 val_t tmp;
1053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1054 fra.me.file = LOCATE_syntax___scope;
1055 fra.me.line = 182;
1056 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___is_break_block;
1057 fra.me.has_broke = 0;
1058 fra.me.REG_size = 1;
1059 fra.me.nitni_local_ref_head = NULL;
1060 fra.me.REG[0] = NIT_NULL;
1061 fra.me.REG[0] = p0;
1062 /* syntax/scope.nit:183 */
1063 REGB0 = TAG_Bool(false);
1064 goto label1;
1065 label1: while(0);
1066 stack_frame_head = fra.me.prev;
1067 return REGB0;
1068 }
1069 val_t syntax___scope___EscapableBlock___break_list(val_t p0){
1070 struct {struct stack_frame_t me;} fra;
1071 val_t tmp;
1072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1073 fra.me.file = LOCATE_syntax___scope;
1074 fra.me.line = 185;
1075 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___break_list;
1076 fra.me.has_broke = 0;
1077 fra.me.REG_size = 1;
1078 fra.me.nitni_local_ref_head = NULL;
1079 fra.me.REG[0] = NIT_NULL;
1080 fra.me.REG[0] = p0;
1081 /* syntax/scope.nit:188 */
1082 fra.me.REG[0] = NIT_NULL;
1083 goto label1;
1084 label1: while(0);
1085 stack_frame_head = fra.me.prev;
1086 return fra.me.REG[0];
1087 }
1088 val_t syntax___scope___EscapableBlock___continue_stype(val_t p0){
1089 struct {struct stack_frame_t me;} fra;
1090 val_t tmp;
1091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1092 fra.me.file = LOCATE_syntax___scope;
1093 fra.me.line = 190;
1094 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___continue_stype;
1095 fra.me.has_broke = 0;
1096 fra.me.REG_size = 1;
1097 fra.me.nitni_local_ref_head = NULL;
1098 fra.me.REG[0] = NIT_NULL;
1099 fra.me.REG[0] = p0;
1100 /* syntax/scope.nit:191 */
1101 fra.me.REG[0] = NIT_NULL;
1102 goto label1;
1103 label1: while(0);
1104 stack_frame_head = fra.me.prev;
1105 return fra.me.REG[0];
1106 }
1107 val_t syntax___scope___EscapableBlock___break_flow_contexts(val_t p0){
1108 struct {struct stack_frame_t me;} fra;
1109 val_t REGB0;
1110 val_t tmp;
1111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1112 fra.me.file = LOCATE_syntax___scope;
1113 fra.me.line = 193;
1114 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___break_flow_contexts;
1115 fra.me.has_broke = 0;
1116 fra.me.REG_size = 1;
1117 fra.me.nitni_local_ref_head = NULL;
1118 fra.me.REG[0] = NIT_NULL;
1119 fra.me.REG[0] = p0;
1120 /* syntax/scope.nit:193 */
1121 REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0])!=NIT_NULL);
1122 if (UNTAG_Bool(REGB0)) {
1123 } else {
1124 nit_abort("Uninitialized attribute %s", "_break_flow_contexts", LOCATE_syntax___scope, 193);
1125 }
1126 fra.me.REG[0] = ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0]);
1127 stack_frame_head = fra.me.prev;
1128 return fra.me.REG[0];
1129 }
1130 void syntax___scope___EscapableBlock___init(val_t p0, val_t p1, int* init_table){
1131 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___scope___EscapableBlock].i;
1132 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1133 val_t tmp;
1134 if (init_table[itpos2]) return;
1135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1136 fra.me.file = LOCATE_syntax___scope;
1137 fra.me.line = 196;
1138 fra.me.meth = LOCATE_syntax___scope___EscapableBlock___init;
1139 fra.me.has_broke = 0;
1140 fra.me.REG_size = 2;
1141 fra.me.nitni_local_ref_head = NULL;
1142 fra.me.REG[0] = NIT_NULL;
1143 fra.me.REG[1] = NIT_NULL;
1144 fra.me.REG[0] = p0;
1145 fra.me.REG[1] = p1;
1146 /* syntax/scope.nit:198 */
1147 CALL_syntax___scope___ScopeBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1148 stack_frame_head = fra.me.prev;
1149 init_table[itpos2] = 1;
1150 return;
1151 }
1152 val_t syntax___scope___BreakOnlyEscapableBlock___is_break_block(val_t p0){
1153 struct {struct stack_frame_t me;} fra;
1154 val_t REGB0;
1155 val_t tmp;
1156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1157 fra.me.file = LOCATE_syntax___scope;
1158 fra.me.line = 205;
1159 fra.me.meth = LOCATE_syntax___scope___BreakOnlyEscapableBlock___is_break_block;
1160 fra.me.has_broke = 0;
1161 fra.me.REG_size = 1;
1162 fra.me.nitni_local_ref_head = NULL;
1163 fra.me.REG[0] = NIT_NULL;
1164 fra.me.REG[0] = p0;
1165 /* syntax/scope.nit:205 */
1166 REGB0 = TAG_Bool(true);
1167 goto label1;
1168 label1: while(0);
1169 stack_frame_head = fra.me.prev;
1170 return REGB0;
1171 }
1172 void syntax___scope___BreakOnlyEscapableBlock___init(val_t p0, val_t p1, int* init_table){
1173 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___scope___BreakOnlyEscapableBlock].i;
1174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1175 val_t tmp;
1176 if (init_table[itpos3]) return;
1177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1178 fra.me.file = LOCATE_syntax___scope;
1179 fra.me.line = 207;
1180 fra.me.meth = LOCATE_syntax___scope___BreakOnlyEscapableBlock___init;
1181 fra.me.has_broke = 0;
1182 fra.me.REG_size = 2;
1183 fra.me.nitni_local_ref_head = NULL;
1184 fra.me.REG[0] = NIT_NULL;
1185 fra.me.REG[1] = NIT_NULL;
1186 fra.me.REG[0] = p0;
1187 fra.me.REG[1] = p1;
1188 /* syntax/scope.nit:207 */
1189 CALL_syntax___scope___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1190 stack_frame_head = fra.me.prev;
1191 init_table[itpos3] = 1;
1192 return;
1193 }
1194 val_t syntax___scope___EscapableClosure___closure(val_t p0){
1195 struct {struct stack_frame_t me;} fra;
1196 val_t REGB0;
1197 val_t tmp;
1198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1199 fra.me.file = LOCATE_syntax___scope;
1200 fra.me.line = 213;
1201 fra.me.meth = LOCATE_syntax___scope___EscapableClosure___closure;
1202 fra.me.has_broke = 0;
1203 fra.me.REG_size = 1;
1204 fra.me.nitni_local_ref_head = NULL;
1205 fra.me.REG[0] = NIT_NULL;
1206 fra.me.REG[0] = p0;
1207 /* syntax/scope.nit:213 */
1208 REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
1209 if (UNTAG_Bool(REGB0)) {
1210 } else {
1211 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_syntax___scope, 213);
1212 }
1213 fra.me.REG[0] = ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0]);
1214 stack_frame_head = fra.me.prev;
1215 return fra.me.REG[0];
1216 }
1217 val_t syntax___scope___EscapableClosure___is_break_block(val_t p0){
1218 struct {struct stack_frame_t me;} fra;
1219 val_t REGB0;
1220 val_t tmp;
1221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1222 fra.me.file = LOCATE_syntax___scope;
1223 fra.me.line = 216;
1224 fra.me.meth = LOCATE_syntax___scope___EscapableClosure___is_break_block;
1225 fra.me.has_broke = 0;
1226 fra.me.REG_size = 1;
1227 fra.me.nitni_local_ref_head = NULL;
1228 fra.me.REG[0] = NIT_NULL;
1229 fra.me.REG[0] = p0;
1230 /* syntax/scope.nit:216 */
1231 REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
1232 if (UNTAG_Bool(REGB0)) {
1233 } else {
1234 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_syntax___scope, 216);
1235 }
1236 fra.me.REG[0] = ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0]);
1237 REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[0])(fra.me.REG[0]);
1238 goto label1;
1239 label1: while(0);
1240 stack_frame_head = fra.me.prev;
1241 return REGB0;
1242 }
1243 val_t syntax___scope___EscapableClosure___break_list(val_t p0){
1244 struct {struct stack_frame_t me;} fra;
1245 val_t tmp;
1246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1247 fra.me.file = LOCATE_syntax___scope;
1248 fra.me.line = 218;
1249 fra.me.meth = LOCATE_syntax___scope___EscapableClosure___break_list;
1250 fra.me.has_broke = 0;
1251 fra.me.REG_size = 1;
1252 fra.me.nitni_local_ref_head = NULL;
1253 fra.me.REG[0] = NIT_NULL;
1254 fra.me.REG[0] = p0;
1255 /* syntax/scope.nit:218 */
1256 fra.me.REG[0] = ATTR_syntax___scope___EscapableClosure____break_list(fra.me.REG[0]);
1257 stack_frame_head = fra.me.prev;
1258 return fra.me.REG[0];
1259 }
1260 val_t syntax___scope___EscapableClosure___continue_stype(val_t p0){
1261 struct {struct stack_frame_t me;} fra;
1262 val_t REGB0;
1263 val_t tmp;
1264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1265 fra.me.file = LOCATE_syntax___scope;
1266 fra.me.line = 220;
1267 fra.me.meth = LOCATE_syntax___scope___EscapableClosure___continue_stype;
1268 fra.me.has_broke = 0;
1269 fra.me.REG_size = 1;
1270 fra.me.nitni_local_ref_head = NULL;
1271 fra.me.REG[0] = NIT_NULL;
1272 fra.me.REG[0] = p0;
1273 /* syntax/scope.nit:220 */
1274 REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
1275 if (UNTAG_Bool(REGB0)) {
1276 } else {
1277 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_syntax___scope, 220);
1278 }
1279 fra.me.REG[0] = ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0]);
1280 fra.me.REG[0] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
1281 fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
1282 goto label1;
1283 label1: while(0);
1284 stack_frame_head = fra.me.prev;
1285 return fra.me.REG[0];
1286 }
1287 void syntax___scope___EscapableClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1288 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___scope___EscapableClosure].i;
1289 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1290 val_t tmp;
1291 if (init_table[itpos4]) return;
1292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1293 fra.me.file = LOCATE_syntax___scope;
1294 fra.me.line = 222;
1295 fra.me.meth = LOCATE_syntax___scope___EscapableClosure___init;
1296 fra.me.has_broke = 0;
1297 fra.me.REG_size = 5;
1298 fra.me.nitni_local_ref_head = NULL;
1299 fra.me.REG[0] = NIT_NULL;
1300 fra.me.REG[1] = NIT_NULL;
1301 fra.me.REG[2] = NIT_NULL;
1302 fra.me.REG[3] = NIT_NULL;
1303 fra.me.REG[4] = NIT_NULL;
1304 fra.me.REG[0] = p0;
1305 fra.me.REG[1] = p1;
1306 fra.me.REG[2] = p2;
1307 fra.me.REG[3] = p3;
1308 /* syntax/scope.nit:222 */
1309 fra.me.REG[4] = fra.me.REG[0];
1310 /* syntax/scope.nit:224 */
1311 CALL_syntax___scope___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1312 /* syntax/scope.nit:225 */
1313 ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[4]) = fra.me.REG[2];
1314 /* syntax/scope.nit:226 */
1315 ATTR_syntax___scope___EscapableClosure____break_list(fra.me.REG[4]) = fra.me.REG[3];
1316 stack_frame_head = fra.me.prev;
1317 init_table[itpos4] = 1;
1318 return;
1319 }
1320 val_t syntax___scope___AEscapeExpr___escapable(val_t p0){
1321 struct {struct stack_frame_t me;} fra;
1322 val_t tmp;
1323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1324 fra.me.file = LOCATE_syntax___scope;
1325 fra.me.line = 234;
1326 fra.me.meth = LOCATE_syntax___scope___AEscapeExpr___escapable;
1327 fra.me.has_broke = 0;
1328 fra.me.REG_size = 1;
1329 fra.me.nitni_local_ref_head = NULL;
1330 fra.me.REG[0] = NIT_NULL;
1331 fra.me.REG[0] = p0;
1332 /* syntax/scope.nit:234 */
1333 fra.me.REG[0] = ATTR_syntax___scope___AEscapeExpr____escapable(fra.me.REG[0]);
1334 stack_frame_head = fra.me.prev;
1335 return fra.me.REG[0];
1336 }
1337 val_t syntax___scope___AEscapeExpr___kwname(val_t p0){
1338 struct {struct stack_frame_t me;} fra;
1339 val_t tmp;
1340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1341 fra.me.file = LOCATE_syntax___scope;
1342 fra.me.line = 237;
1343 fra.me.meth = LOCATE_syntax___scope___AEscapeExpr___kwname;
1344 fra.me.has_broke = 0;
1345 fra.me.REG_size = 0;
1346 fra.me.nitni_local_ref_head = NULL;
1347 /* syntax/scope.nit:237 */
1348 nit_abort("Deferred method called", NULL, LOCATE_syntax___scope, 237);
1349 stack_frame_head = fra.me.prev;
1350 return NIT_NULL;
1351 }
1352 val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1){
1353 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1354 val_t REGB0;
1355 val_t REGB1;
1356 val_t tmp;
1357 static val_t once_value_1; /* Once value */
1358 static val_t once_value_2; /* Once value */
1359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1360 fra.me.file = LOCATE_syntax___scope;
1361 fra.me.line = 240;
1362 fra.me.meth = LOCATE_syntax___scope___AEscapeExpr___compute_escapable_block;
1363 fra.me.has_broke = 0;
1364 fra.me.REG_size = 5;
1365 fra.me.nitni_local_ref_head = NULL;
1366 fra.me.REG[0] = NIT_NULL;
1367 fra.me.REG[1] = NIT_NULL;
1368 fra.me.REG[2] = NIT_NULL;
1369 fra.me.REG[3] = NIT_NULL;
1370 fra.me.REG[4] = NIT_NULL;
1371 fra.me.REG[0] = p0;
1372 fra.me.REG[1] = p1;
1373 /* syntax/scope.nit:244 */
1374 fra.me.REG[2] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
1375 /* syntax/scope.nit:245 */
1376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1377 if (UNTAG_Bool(REGB0)) {
1378 } else {
1379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1380 if (UNTAG_Bool(REGB1)) {
1381 REGB1 = TAG_Bool(false);
1382 REGB0 = REGB1;
1383 } else {
1384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1385 REGB0 = REGB1;
1386 }
1387 }
1388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1389 if (UNTAG_Bool(REGB0)) {
1390 /* syntax/scope.nit:246 */
1391 fra.me.REG[2] = CALL_syntax___scope___ScopeContext___get_by_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1392 } else {
1393 /* syntax/scope.nit:248 */
1394 fra.me.REG[3] = CALL_syntax___scope___ScopeContext___head(fra.me.REG[1])(fra.me.REG[1]);
1395 fra.me.REG[2] = fra.me.REG[3];
1396 /* syntax/scope.nit:249 */
1397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1398 if (UNTAG_Bool(REGB0)) {
1399 } else {
1400 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1401 if (UNTAG_Bool(REGB1)) {
1402 REGB1 = TAG_Bool(false);
1403 REGB0 = REGB1;
1404 } else {
1405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1406 REGB0 = REGB1;
1407 }
1408 }
1409 if (UNTAG_Bool(REGB0)) {
1410 /* syntax/scope.nit:250 */
1411 fra.me.REG[1] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
1412 REGB0 = TAG_Int(3);
1413 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1414 if (!once_value_1) {
1415 fra.me.REG[4] = BOX_NativeString("Syntax Error: '");
1416 REGB0 = TAG_Int(15);
1417 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1418 once_value_1 = fra.me.REG[4];
1419 register_static_object(&once_value_1);
1420 } else fra.me.REG[4] = once_value_1;
1421 fra.me.REG[4] = fra.me.REG[4];
1422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1423 fra.me.REG[4] = CALL_syntax___scope___AEscapeExpr___kwname(fra.me.REG[0])(fra.me.REG[0]);
1424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1425 if (!once_value_2) {
1426 fra.me.REG[4] = BOX_NativeString("' statment outside block.");
1427 REGB0 = TAG_Int(25);
1428 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1429 once_value_2 = fra.me.REG[4];
1430 register_static_object(&once_value_2);
1431 } else fra.me.REG[4] = once_value_2;
1432 fra.me.REG[4] = fra.me.REG[4];
1433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1434 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1435 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
1436 }
1437 }
1438 /* syntax/scope.nit:253 */
1439 ATTR_syntax___scope___AEscapeExpr____escapable(fra.me.REG[0]) = fra.me.REG[2];
1440 /* syntax/scope.nit:254 */
1441 goto label3;
1442 label3: while(0);
1443 stack_frame_head = fra.me.prev;
1444 return fra.me.REG[2];
1445 }
1446 val_t syntax___scope___AContinueExpr___kwname(val_t p0){
1447 struct {struct stack_frame_t me;} fra;
1448 val_t REGB0;
1449 val_t tmp;
1450 static val_t once_value_1; /* Once value */
1451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1452 fra.me.file = LOCATE_syntax___scope;
1453 fra.me.line = 260;
1454 fra.me.meth = LOCATE_syntax___scope___AContinueExpr___kwname;
1455 fra.me.has_broke = 0;
1456 fra.me.REG_size = 1;
1457 fra.me.nitni_local_ref_head = NULL;
1458 fra.me.REG[0] = NIT_NULL;
1459 fra.me.REG[0] = p0;
1460 /* syntax/scope.nit:260 */
1461 if (!once_value_1) {
1462 fra.me.REG[0] = BOX_NativeString("continue");
1463 REGB0 = TAG_Int(8);
1464 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1465 once_value_1 = fra.me.REG[0];
1466 register_static_object(&once_value_1);
1467 } else fra.me.REG[0] = once_value_1;
1468 fra.me.REG[0] = fra.me.REG[0];
1469 goto label2;
1470 label2: while(0);
1471 stack_frame_head = fra.me.prev;
1472 return fra.me.REG[0];
1473 }
1474 val_t syntax___scope___ABreakExpr___kwname(val_t p0){
1475 struct {struct stack_frame_t me;} fra;
1476 val_t REGB0;
1477 val_t tmp;
1478 static val_t once_value_1; /* Once value */
1479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1480 fra.me.file = LOCATE_syntax___scope;
1481 fra.me.line = 265;
1482 fra.me.meth = LOCATE_syntax___scope___ABreakExpr___kwname;
1483 fra.me.has_broke = 0;
1484 fra.me.REG_size = 1;
1485 fra.me.nitni_local_ref_head = NULL;
1486 fra.me.REG[0] = NIT_NULL;
1487 fra.me.REG[0] = p0;
1488 /* syntax/scope.nit:265 */
1489 if (!once_value_1) {
1490 fra.me.REG[0] = BOX_NativeString("break");
1491 REGB0 = TAG_Int(5);
1492 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1493 once_value_1 = fra.me.REG[0];
1494 register_static_object(&once_value_1);
1495 } else fra.me.REG[0] = once_value_1;
1496 fra.me.REG[0] = fra.me.REG[0];
1497 goto label2;
1498 label2: while(0);
1499 stack_frame_head = fra.me.prev;
1500 return fra.me.REG[0];
1501 }