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