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