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