misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__scope.sep.1.c
1 #include "nit__scope.sep.0.h"
2 /* method scope#ToolContext#scope_phase for (self: ToolContext): Phase */
3 val* nit__scope___ToolContext___scope_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nit__scope__ToolContext___scope_phase].val; /* _scope_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scope_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method scope#ScopePhase#process_npropdef for (self: ScopePhase, APropdef) */
17 void nit__scope___nit__scope__ScopePhase___nit__phase__Phase__process_npropdef(val* self, val* p0) {
18 val* var_npropdef /* var npropdef: APropdef */;
19 val* var /* : ToolContext */;
20 val* var2 /* : ToolContext */;
21 var_npropdef = p0;
22 {
23 { /* Inline phase#Phase#toolcontext (self) on <self:ScopePhase> */
24 var2 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:ScopePhase> */
25 if (unlikely(var2 == NULL)) {
26 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
27 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
28 show_backtrace(1);
29 }
30 var = var2;
31 RET_LABEL1:(void)0;
32 }
33 }
34 {
35 nit__scope___APropdef___do_scope(var_npropdef, var); /* Direct call scope#APropdef#do_scope on <var_npropdef:APropdef>*/
36 }
37 RET_LABEL:;
38 }
39 /* method scope#Variable#name for (self: Variable): String */
40 val* nit___nit__Variable___name(val* self) {
41 val* var /* : String */;
42 val* var1 /* : String */;
43 var1 = self->attrs[COLOR_nit__scope__Variable___name].val; /* _name on <self:Variable> */
44 if (unlikely(var1 == NULL)) {
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
46 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 35);
47 show_backtrace(1);
48 }
49 var = var1;
50 RET_LABEL:;
51 return var;
52 }
53 /* method scope#Variable#name= for (self: Variable, String) */
54 void nit___nit__Variable___name_61d(val* self, val* p0) {
55 self->attrs[COLOR_nit__scope__Variable___name].val = p0; /* _name on <self:Variable> */
56 RET_LABEL:;
57 }
58 /* method scope#Variable#to_s for (self: Variable): String */
59 val* nit___nit__Variable___standard__string__Object__to_s(val* self) {
60 val* var /* : String */;
61 val* var1 /* : String */;
62 val* var3 /* : String */;
63 {
64 { /* Inline scope#Variable#name (self) on <self:Variable> */
65 var3 = self->attrs[COLOR_nit__scope__Variable___name].val; /* _name on <self:Variable> */
66 if (unlikely(var3 == NULL)) {
67 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
68 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 35);
69 show_backtrace(1);
70 }
71 var1 = var3;
72 RET_LABEL2:(void)0;
73 }
74 }
75 var = var1;
76 goto RET_LABEL;
77 RET_LABEL:;
78 return var;
79 }
80 /* method scope#Variable#location for (self: Variable): nullable Location */
81 val* nit___nit__Variable___location(val* self) {
82 val* var /* : nullable Location */;
83 val* var1 /* : nullable Location */;
84 var1 = self->attrs[COLOR_nit__scope__Variable___location].val; /* _location on <self:Variable> */
85 var = var1;
86 RET_LABEL:;
87 return var;
88 }
89 /* method scope#Variable#location= for (self: Variable, nullable Location) */
90 void nit___nit__Variable___location_61d(val* self, val* p0) {
91 self->attrs[COLOR_nit__scope__Variable___location].val = p0; /* _location on <self:Variable> */
92 RET_LABEL:;
93 }
94 /* method scope#Variable#warn_unread for (self: Variable): Bool */
95 short int nit___nit__Variable___warn_unread(val* self) {
96 short int var /* : Bool */;
97 short int var1 /* : Bool */;
98 var1 = self->attrs[COLOR_nit__scope__Variable___warn_unread].s; /* _warn_unread on <self:Variable> */
99 var = var1;
100 RET_LABEL:;
101 return var;
102 }
103 /* method scope#Variable#warn_unread= for (self: Variable, Bool) */
104 void nit___nit__Variable___warn_unread_61d(val* self, short int p0) {
105 self->attrs[COLOR_nit__scope__Variable___warn_unread].s = p0; /* _warn_unread on <self:Variable> */
106 RET_LABEL:;
107 }
108 /* method scope#Variable#init for (self: Variable) */
109 void nit___nit__Variable___standard__kernel__Object__init(val* self) {
110 {
111 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__Variable___standard__kernel__Object__init]))(self) /* init on <self:Variable>*/;
112 }
113 RET_LABEL:;
114 }
115 /* method scope#EscapeMark#name for (self: EscapeMark): nullable String */
116 val* nit___nit__EscapeMark___name(val* self) {
117 val* var /* : nullable String */;
118 val* var1 /* : nullable String */;
119 var1 = self->attrs[COLOR_nit__scope__EscapeMark___name].val; /* _name on <self:EscapeMark> */
120 var = var1;
121 RET_LABEL:;
122 return var;
123 }
124 /* method scope#EscapeMark#name= for (self: EscapeMark, nullable String) */
125 void nit___nit__EscapeMark___name_61d(val* self, val* p0) {
126 self->attrs[COLOR_nit__scope__EscapeMark___name].val = p0; /* _name on <self:EscapeMark> */
127 RET_LABEL:;
128 }
129 /* method scope#EscapeMark#continue_mark for (self: EscapeMark): nullable EscapeMark */
130 val* nit___nit__EscapeMark___continue_mark(val* self) {
131 val* var /* : nullable EscapeMark */;
132 val* var1 /* : nullable EscapeMark */;
133 var1 = self->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val; /* _continue_mark on <self:EscapeMark> */
134 var = var1;
135 RET_LABEL:;
136 return var;
137 }
138 /* method scope#EscapeMark#continue_mark= for (self: EscapeMark, nullable EscapeMark) */
139 void nit___nit__EscapeMark___continue_mark_61d(val* self, val* p0) {
140 self->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val = p0; /* _continue_mark on <self:EscapeMark> */
141 RET_LABEL:;
142 }
143 /* method scope#EscapeMark#escapes for (self: EscapeMark): Array[AEscapeExpr] */
144 val* nit___nit__EscapeMark___escapes(val* self) {
145 val* var /* : Array[AEscapeExpr] */;
146 val* var1 /* : Array[AEscapeExpr] */;
147 var1 = self->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <self:EscapeMark> */
148 if (unlikely(var1 == NULL)) {
149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
150 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
151 show_backtrace(1);
152 }
153 var = var1;
154 RET_LABEL:;
155 return var;
156 }
157 /* method scope#EscapeMark#init for (self: EscapeMark) */
158 void nit___nit__EscapeMark___standard__kernel__Object__init(val* self) {
159 {
160 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__EscapeMark___standard__kernel__Object__init]))(self) /* init on <self:EscapeMark>*/;
161 }
162 RET_LABEL:;
163 }
164 /* method scope#ScopeVisitor#toolcontext for (self: ScopeVisitor): ToolContext */
165 val* nit__scope___nit__scope__ScopeVisitor___toolcontext(val* self) {
166 val* var /* : ToolContext */;
167 val* var1 /* : ToolContext */;
168 var1 = self->attrs[COLOR_nit__scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
169 if (unlikely(var1 == NULL)) {
170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 70);
172 show_backtrace(1);
173 }
174 var = var1;
175 RET_LABEL:;
176 return var;
177 }
178 /* method scope#ScopeVisitor#toolcontext= for (self: ScopeVisitor, ToolContext) */
179 void nit__scope___nit__scope__ScopeVisitor___toolcontext_61d(val* self, val* p0) {
180 self->attrs[COLOR_nit__scope__ScopeVisitor___toolcontext].val = p0; /* _toolcontext on <self:ScopeVisitor> */
181 RET_LABEL:;
182 }
183 /* method scope#ScopeVisitor#selfvariable for (self: ScopeVisitor): Variable */
184 val* nit__scope___nit__scope__ScopeVisitor___selfvariable(val* self) {
185 val* var /* : Variable */;
186 val* var1 /* : Variable */;
187 var1 = self->attrs[COLOR_nit__scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <self:ScopeVisitor> */
188 if (unlikely(var1 == NULL)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 73);
191 show_backtrace(1);
192 }
193 var = var1;
194 RET_LABEL:;
195 return var;
196 }
197 /* method scope#ScopeVisitor#init for (self: ScopeVisitor) */
198 void nit__scope___nit__scope__ScopeVisitor___standard__kernel__Object__init(val* self) {
199 val* var /* : List[Scope] */;
200 val* var2 /* : List[Scope] */;
201 val* var3 /* : Scope */;
202 {
203 ((void (*)(val* self))(self->class->vft[COLOR_nit__scope___nit__scope__ScopeVisitor___standard__kernel__Object__init]))(self) /* init on <self:ScopeVisitor>*/;
204 }
205 {
206 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
207 var2 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
208 if (unlikely(var2 == NULL)) {
209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
211 show_backtrace(1);
212 }
213 var = var2;
214 RET_LABEL1:(void)0;
215 }
216 }
217 var3 = NEW_nit__scope__Scope(&type_nit__scope__Scope);
218 {
219 { /* Inline kernel#Object#init (var3) on <var3:Scope> */
220 RET_LABEL4:(void)0;
221 }
222 }
223 {
224 standard___standard__Sequence___SimpleCollection__add(var, var3); /* Direct call abstract_collection#Sequence#add on <var:List[Scope]>*/
225 }
226 RET_LABEL:;
227 }
228 /* method scope#ScopeVisitor#scopes for (self: ScopeVisitor): List[Scope] */
229 val* nit__scope___nit__scope__ScopeVisitor___scopes(val* self) {
230 val* var /* : List[Scope] */;
231 val* var1 /* : List[Scope] */;
232 var1 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
233 if (unlikely(var1 == NULL)) {
234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
235 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
236 show_backtrace(1);
237 }
238 var = var1;
239 RET_LABEL:;
240 return var;
241 }
242 /* method scope#ScopeVisitor#shift_scope for (self: ScopeVisitor) */
243 void nit__scope___nit__scope__ScopeVisitor___shift_scope(val* self) {
244 val* var /* : List[Scope] */;
245 val* var2 /* : List[Scope] */;
246 short int var3 /* : Bool */;
247 short int var4 /* : Bool */;
248 val* var5 /* : List[Scope] */;
249 val* var7 /* : List[Scope] */;
250 val* var8 /* : nullable Object */;
251 val* var_scope /* var scope: Scope */;
252 val* var9 /* : HashMap[String, Variable] */;
253 val* var11 /* : HashMap[String, Variable] */;
254 val* var12 /* : RemovableCollection[nullable Object] */;
255 val* var14 /* : RemovableCollection[nullable Object] */;
256 val* var_ /* var : RemovableCollection[Variable] */;
257 val* var15 /* : Iterator[nullable Object] */;
258 val* var_16 /* var : Iterator[Variable] */;
259 short int var17 /* : Bool */;
260 val* var18 /* : nullable Object */;
261 val* var_v /* var v: Variable */;
262 short int var19 /* : Bool */;
263 short int var21 /* : Bool */;
264 val* var22 /* : ToolContext */;
265 val* var24 /* : ToolContext */;
266 val* var25 /* : nullable Location */;
267 val* var27 /* : nullable Location */;
268 static val* varonce;
269 val* var28 /* : String */;
270 char* var29 /* : NativeString */;
271 long var30 /* : Int */;
272 val* var31 /* : FlatString */;
273 static val* varonce32;
274 val* var33 /* : String */;
275 char* var34 /* : NativeString */;
276 long var35 /* : Int */;
277 val* var36 /* : FlatString */;
278 val* var37 /* : String */;
279 val* var39 /* : String */;
280 static val* varonce40;
281 val* var41 /* : String */;
282 char* var42 /* : NativeString */;
283 long var43 /* : Int */;
284 val* var44 /* : FlatString */;
285 val* var45 /* : Array[Object] */;
286 long var46 /* : Int */;
287 val* var47 /* : NativeArray[Object] */;
288 val* var48 /* : String */;
289 {
290 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
291 var2 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
292 if (unlikely(var2 == NULL)) {
293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
295 show_backtrace(1);
296 }
297 var = var2;
298 RET_LABEL1:(void)0;
299 }
300 }
301 {
302 var3 = standard___standard__List___standard__abstract_collection__Collection__is_empty(var);
303 }
304 var4 = !var3;
305 if (unlikely(!var4)) {
306 PRINT_ERROR("Runtime error: %s", "Assert failed");
307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 86);
308 show_backtrace(1);
309 }
310 {
311 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
312 var7 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
313 if (unlikely(var7 == NULL)) {
314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
315 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
316 show_backtrace(1);
317 }
318 var5 = var7;
319 RET_LABEL6:(void)0;
320 }
321 }
322 {
323 var8 = standard___standard__List___standard__abstract_collection__Sequence__shift(var5);
324 }
325 var_scope = var8;
326 {
327 { /* Inline scope#Scope#variables (var_scope) on <var_scope:Scope> */
328 var11 = var_scope->attrs[COLOR_nit__scope__Scope___variables].val; /* _variables on <var_scope:Scope> */
329 if (unlikely(var11 == NULL)) {
330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
331 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 225);
332 show_backtrace(1);
333 }
334 var9 = var11;
335 RET_LABEL10:(void)0;
336 }
337 }
338 {
339 { /* Inline hash_collection#HashMap#values (var9) on <var9:HashMap[String, Variable]> */
340 var14 = var9->attrs[COLOR_standard__hash_collection__HashMap___values].val; /* _values on <var9:HashMap[String, Variable]> */
341 if (unlikely(var14 == NULL)) {
342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
343 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 276);
344 show_backtrace(1);
345 }
346 var12 = var14;
347 RET_LABEL13:(void)0;
348 }
349 }
350 var_ = var12;
351 {
352 var15 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:RemovableCollection[Variable]>*/;
353 }
354 var_16 = var15;
355 for(;;) {
356 {
357 var17 = ((short int (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_16) /* is_ok on <var_16:Iterator[Variable]>*/;
358 }
359 if (var17){
360 {
361 var18 = ((val* (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_16) /* item on <var_16:Iterator[Variable]>*/;
362 }
363 var_v = var18;
364 {
365 { /* Inline scope#Variable#warn_unread (var_v) on <var_v:Variable> */
366 var21 = var_v->attrs[COLOR_nit__scope__Variable___warn_unread].s; /* _warn_unread on <var_v:Variable> */
367 var19 = var21;
368 RET_LABEL20:(void)0;
369 }
370 }
371 if (var19){
372 {
373 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
374 var24 = self->attrs[COLOR_nit__scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
375 if (unlikely(var24 == NULL)) {
376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
377 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 70);
378 show_backtrace(1);
379 }
380 var22 = var24;
381 RET_LABEL23:(void)0;
382 }
383 }
384 {
385 { /* Inline scope#Variable#location (var_v) on <var_v:Variable> */
386 var27 = var_v->attrs[COLOR_nit__scope__Variable___location].val; /* _location on <var_v:Variable> */
387 var25 = var27;
388 RET_LABEL26:(void)0;
389 }
390 }
391 if (varonce) {
392 var28 = varonce;
393 } else {
394 var29 = "unread-variable";
395 var30 = 15;
396 var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
397 var28 = var31;
398 varonce = var28;
399 }
400 if (varonce32) {
401 var33 = varonce32;
402 } else {
403 var34 = "Warning: local variable ";
404 var35 = 24;
405 var36 = standard___standard__NativeString___to_s_with_length(var34, var35);
406 var33 = var36;
407 varonce32 = var33;
408 }
409 {
410 { /* Inline scope#Variable#name (var_v) on <var_v:Variable> */
411 var39 = var_v->attrs[COLOR_nit__scope__Variable___name].val; /* _name on <var_v:Variable> */
412 if (unlikely(var39 == NULL)) {
413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
414 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 35);
415 show_backtrace(1);
416 }
417 var37 = var39;
418 RET_LABEL38:(void)0;
419 }
420 }
421 if (varonce40) {
422 var41 = varonce40;
423 } else {
424 var42 = " is never read.";
425 var43 = 15;
426 var44 = standard___standard__NativeString___to_s_with_length(var42, var43);
427 var41 = var44;
428 varonce40 = var41;
429 }
430 var45 = NEW_standard__Array(&type_standard__Array__standard__Object);
431 { /* var45 = array_instance Array[Object] */
432 var46 = 3;
433 var47 = NEW_standard__NativeArray(var46, &type_standard__NativeArray__standard__Object);
434 ((struct instance_standard__NativeArray*)var47)->values[0] = (val*) var33;
435 ((struct instance_standard__NativeArray*)var47)->values[1] = (val*) var37;
436 ((struct instance_standard__NativeArray*)var47)->values[2] = (val*) var41;
437 {
438 ((void (*)(val* self, val* p0, long p1))(var45->class->vft[COLOR_standard__array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Object]>*/;
439 }
440 }
441 {
442 var48 = ((val* (*)(val* self))(var45->class->vft[COLOR_standard__string__Object__to_s]))(var45) /* to_s on <var45:Array[Object]>*/;
443 }
444 {
445 nit___nit__ToolContext___advice(var22, var25, var28, var48); /* Direct call toolcontext#ToolContext#advice on <var22:ToolContext>*/
446 }
447 } else {
448 }
449 {
450 ((void (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_16) /* next on <var_16:Iterator[Variable]>*/;
451 }
452 } else {
453 goto BREAK_label;
454 }
455 }
456 BREAK_label: (void)0;
457 {
458 { /* Inline abstract_collection#Iterator#finish (var_16) on <var_16:Iterator[Variable]> */
459 RET_LABEL49:(void)0;
460 }
461 }
462 RET_LABEL:;
463 }
464 /* method scope#ScopeVisitor#register_variable for (self: ScopeVisitor, ANode, Variable): Bool */
465 short int nit__scope___nit__scope__ScopeVisitor___register_variable(val* self, val* p0, val* p1) {
466 short int var /* : Bool */;
467 val* var_node /* var node: ANode */;
468 val* var_variable /* var variable: Variable */;
469 val* var1 /* : String */;
470 val* var3 /* : String */;
471 val* var_name /* var name: String */;
472 val* var4 /* : nullable Variable */;
473 val* var_found /* var found: nullable Variable */;
474 val* var5 /* : null */;
475 short int var6 /* : Bool */;
476 short int var7 /* : Bool */;
477 val* var_other /* var other: nullable Object */;
478 short int var9 /* : Bool */;
479 short int var10 /* : Bool */;
480 static val* varonce;
481 val* var11 /* : String */;
482 char* var12 /* : NativeString */;
483 long var13 /* : Int */;
484 val* var14 /* : FlatString */;
485 static val* varonce15;
486 val* var16 /* : String */;
487 char* var17 /* : NativeString */;
488 long var18 /* : Int */;
489 val* var19 /* : FlatString */;
490 val* var20 /* : Array[Object] */;
491 long var21 /* : Int */;
492 val* var22 /* : NativeArray[Object] */;
493 val* var23 /* : String */;
494 short int var24 /* : Bool */;
495 val* var25 /* : List[Scope] */;
496 val* var27 /* : List[Scope] */;
497 val* var28 /* : nullable Object */;
498 val* var29 /* : HashMap[String, Variable] */;
499 val* var31 /* : HashMap[String, Variable] */;
500 val* var32 /* : Location */;
501 val* var34 /* : Location */;
502 short int var36 /* : Bool */;
503 var_node = p0;
504 var_variable = p1;
505 {
506 { /* Inline scope#Variable#name (var_variable) on <var_variable:Variable> */
507 var3 = var_variable->attrs[COLOR_nit__scope__Variable___name].val; /* _name on <var_variable:Variable> */
508 if (unlikely(var3 == NULL)) {
509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
510 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 35);
511 show_backtrace(1);
512 }
513 var1 = var3;
514 RET_LABEL2:(void)0;
515 }
516 }
517 var_name = var1;
518 {
519 var4 = nit__scope___nit__scope__ScopeVisitor___search_variable(self, var_name);
520 }
521 var_found = var4;
522 var5 = NULL;
523 if (var_found == NULL) {
524 var6 = 0; /* is null */
525 } else {
526 var6 = 1; /* arg is null and recv is not */
527 }
528 if (0) {
529 { /* Inline kernel#Object#!= (var_found,var5) on <var_found:nullable Variable> */
530 var_other = var5;
531 {
532 var9 = ((short int (*)(val* self, val* p0))(var_found->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_found, var_other) /* == on <var_found:nullable Variable(Variable)>*/;
533 }
534 var10 = !var9;
535 var7 = var10;
536 goto RET_LABEL8;
537 RET_LABEL8:(void)0;
538 }
539 var6 = var7;
540 }
541 if (var6){
542 if (varonce) {
543 var11 = varonce;
544 } else {
545 var12 = "Error: A variable named `";
546 var13 = 25;
547 var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
548 var11 = var14;
549 varonce = var11;
550 }
551 if (varonce15) {
552 var16 = varonce15;
553 } else {
554 var17 = "\' already exists";
555 var18 = 16;
556 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
557 var16 = var19;
558 varonce15 = var16;
559 }
560 var20 = NEW_standard__Array(&type_standard__Array__standard__Object);
561 { /* var20 = array_instance Array[Object] */
562 var21 = 3;
563 var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object);
564 ((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var11;
565 ((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var_name;
566 ((struct instance_standard__NativeArray*)var22)->values[2] = (val*) var16;
567 {
568 ((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on <var20:Array[Object]>*/;
569 }
570 }
571 {
572 var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on <var20:Array[Object]>*/;
573 }
574 {
575 nit__scope___nit__scope__ScopeVisitor___error(self, var_node, var23); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
576 }
577 var24 = 0;
578 var = var24;
579 goto RET_LABEL;
580 } else {
581 }
582 {
583 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
584 var27 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
585 if (unlikely(var27 == NULL)) {
586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
588 show_backtrace(1);
589 }
590 var25 = var27;
591 RET_LABEL26:(void)0;
592 }
593 }
594 {
595 var28 = standard___standard__List___standard__abstract_collection__Collection__first(var25);
596 }
597 {
598 { /* Inline scope#Scope#variables (var28) on <var28:nullable Object(Scope)> */
599 var31 = var28->attrs[COLOR_nit__scope__Scope___variables].val; /* _variables on <var28:nullable Object(Scope)> */
600 if (unlikely(var31 == NULL)) {
601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 225);
603 show_backtrace(1);
604 }
605 var29 = var31;
606 RET_LABEL30:(void)0;
607 }
608 }
609 {
610 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var29, var_name, var_variable); /* Direct call hash_collection#HashMap#[]= on <var29:HashMap[String, Variable]>*/
611 }
612 {
613 { /* Inline parser_nodes#ANode#location (var_node) on <var_node:ANode> */
614 var34 = var_node->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_node:ANode> */
615 if (unlikely(var34 == NULL)) {
616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
617 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
618 show_backtrace(1);
619 }
620 var32 = var34;
621 RET_LABEL33:(void)0;
622 }
623 }
624 {
625 { /* Inline scope#Variable#location= (var_variable,var32) on <var_variable:Variable> */
626 var_variable->attrs[COLOR_nit__scope__Variable___location].val = var32; /* _location on <var_variable:Variable> */
627 RET_LABEL35:(void)0;
628 }
629 }
630 var36 = 1;
631 var = var36;
632 goto RET_LABEL;
633 RET_LABEL:;
634 return var;
635 }
636 /* method scope#ScopeVisitor#search_variable for (self: ScopeVisitor, String): nullable Variable */
637 val* nit__scope___nit__scope__ScopeVisitor___search_variable(val* self, val* p0) {
638 val* var /* : nullable Variable */;
639 val* var_name /* var name: String */;
640 val* var1 /* : List[Scope] */;
641 val* var3 /* : List[Scope] */;
642 val* var_ /* var : List[Scope] */;
643 val* var4 /* : ListIterator[nullable Object] */;
644 val* var_5 /* var : ListIterator[Scope] */;
645 short int var6 /* : Bool */;
646 val* var7 /* : nullable Object */;
647 val* var_scope /* var scope: Scope */;
648 val* var8 /* : nullable Variable */;
649 val* var_res /* var res: nullable Variable */;
650 val* var9 /* : null */;
651 short int var10 /* : Bool */;
652 short int var11 /* : Bool */;
653 val* var_other /* var other: nullable Object */;
654 short int var13 /* : Bool */;
655 short int var14 /* : Bool */;
656 val* var16 /* : null */;
657 var_name = p0;
658 {
659 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
660 var3 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
661 if (unlikely(var3 == NULL)) {
662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
663 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
664 show_backtrace(1);
665 }
666 var1 = var3;
667 RET_LABEL2:(void)0;
668 }
669 }
670 var_ = var1;
671 {
672 var4 = standard___standard__List___standard__abstract_collection__Collection__iterator(var_);
673 }
674 var_5 = var4;
675 for(;;) {
676 {
677 var6 = standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(var_5);
678 }
679 if (var6){
680 {
681 var7 = standard___standard__ListIterator___standard__abstract_collection__Iterator__item(var_5);
682 }
683 var_scope = var7;
684 {
685 var8 = nit__scope___nit__scope__Scope___get_variable(var_scope, var_name);
686 }
687 var_res = var8;
688 var9 = NULL;
689 if (var_res == NULL) {
690 var10 = 0; /* is null */
691 } else {
692 var10 = 1; /* arg is null and recv is not */
693 }
694 if (0) {
695 { /* Inline kernel#Object#!= (var_res,var9) on <var_res:nullable Variable> */
696 var_other = var9;
697 {
698 var13 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable Variable(Variable)>*/;
699 }
700 var14 = !var13;
701 var11 = var14;
702 goto RET_LABEL12;
703 RET_LABEL12:(void)0;
704 }
705 var10 = var11;
706 }
707 if (var10){
708 var = var_res;
709 goto RET_LABEL;
710 } else {
711 }
712 {
713 standard___standard__ListIterator___standard__abstract_collection__Iterator__next(var_5); /* Direct call list#ListIterator#next on <var_5:ListIterator[Scope]>*/
714 }
715 } else {
716 goto BREAK_label;
717 }
718 }
719 BREAK_label: (void)0;
720 {
721 { /* Inline abstract_collection#Iterator#finish (var_5) on <var_5:ListIterator[Scope]> */
722 RET_LABEL15:(void)0;
723 }
724 }
725 var16 = NULL;
726 var = var16;
727 goto RET_LABEL;
728 RET_LABEL:;
729 return var;
730 }
731 /* method scope#ScopeVisitor#visit for (self: ScopeVisitor, ANode) */
732 void nit__scope___nit__scope__ScopeVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
733 val* var_n /* var n: ANode */;
734 var_n = p0;
735 {
736 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__scope__ANode__accept_scope_visitor]))(var_n, self) /* accept_scope_visitor on <var_n:ANode>*/;
737 }
738 RET_LABEL:;
739 }
740 /* method scope#ScopeVisitor#enter_visit_block for (self: ScopeVisitor, nullable AExpr, nullable EscapeMark) */
741 void nit__scope___nit__scope__ScopeVisitor___enter_visit_block(val* self, val* p0, val* p1) {
742 val* var_node /* var node: nullable AExpr */;
743 val* var_escapemark /* var escapemark: nullable EscapeMark */;
744 val* var /* : null */;
745 short int var1 /* : Bool */;
746 short int var2 /* : Bool */;
747 val* var_other /* var other: nullable Object */;
748 short int var4 /* : Bool */;
749 short int var6 /* : Bool */;
750 val* var7 /* : Scope */;
751 val* var_scope /* var scope: Scope */;
752 val* var10 /* : List[Scope] */;
753 val* var12 /* : List[Scope] */;
754 var_node = p0;
755 var_escapemark = p1;
756 var = NULL;
757 if (var_node == NULL) {
758 var1 = 1; /* is null */
759 } else {
760 var1 = 0; /* arg is null but recv is not */
761 }
762 if (0) {
763 { /* Inline kernel#Object#== (var_node,var) on <var_node:nullable AExpr> */
764 var_other = var;
765 {
766 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable AExpr(AExpr)> */
767 var6 = var_node == var_other;
768 var4 = var6;
769 goto RET_LABEL5;
770 RET_LABEL5:(void)0;
771 }
772 }
773 var2 = var4;
774 goto RET_LABEL3;
775 RET_LABEL3:(void)0;
776 }
777 var1 = var2;
778 }
779 if (var1){
780 goto RET_LABEL;
781 } else {
782 }
783 var7 = NEW_nit__scope__Scope(&type_nit__scope__Scope);
784 {
785 { /* Inline kernel#Object#init (var7) on <var7:Scope> */
786 RET_LABEL8:(void)0;
787 }
788 }
789 var_scope = var7;
790 {
791 { /* Inline scope#Scope#escapemark= (var_scope,var_escapemark) on <var_scope:Scope> */
792 var_scope->attrs[COLOR_nit__scope__Scope___escapemark].val = var_escapemark; /* _escapemark on <var_scope:Scope> */
793 RET_LABEL9:(void)0;
794 }
795 }
796 {
797 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
798 var12 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
799 if (unlikely(var12 == NULL)) {
800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
801 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
802 show_backtrace(1);
803 }
804 var10 = var12;
805 RET_LABEL11:(void)0;
806 }
807 }
808 {
809 standard___standard__List___standard__abstract_collection__Sequence__unshift(var10, var_scope); /* Direct call list#List#unshift on <var10:List[Scope]>*/
810 }
811 {
812 nit___nit__Visitor___enter_visit(self, var_node); /* Direct call parser_nodes#Visitor#enter_visit on <self:ScopeVisitor>*/
813 }
814 {
815 nit__scope___nit__scope__ScopeVisitor___shift_scope(self); /* Direct call scope#ScopeVisitor#shift_scope on <self:ScopeVisitor>*/
816 }
817 RET_LABEL:;
818 }
819 /* method scope#ScopeVisitor#search_label for (self: ScopeVisitor, String): nullable EscapeMark */
820 val* nit__scope___nit__scope__ScopeVisitor___search_label(val* self, val* p0) {
821 val* var /* : nullable EscapeMark */;
822 val* var_name /* var name: String */;
823 val* var1 /* : List[Scope] */;
824 val* var3 /* : List[Scope] */;
825 val* var_ /* var : List[Scope] */;
826 val* var4 /* : ListIterator[nullable Object] */;
827 val* var_5 /* var : ListIterator[Scope] */;
828 short int var6 /* : Bool */;
829 val* var7 /* : nullable Object */;
830 val* var_scope /* var scope: Scope */;
831 val* var8 /* : nullable EscapeMark */;
832 val* var10 /* : nullable EscapeMark */;
833 val* var_res /* var res: nullable EscapeMark */;
834 short int var11 /* : Bool */;
835 val* var12 /* : null */;
836 short int var13 /* : Bool */;
837 short int var14 /* : Bool */;
838 val* var_other /* var other: nullable Object */;
839 short int var16 /* : Bool */;
840 short int var17 /* : Bool */;
841 short int var_18 /* var : Bool */;
842 val* var19 /* : nullable String */;
843 val* var21 /* : nullable String */;
844 short int var22 /* : Bool */;
845 short int var23 /* : Bool */;
846 val* var25 /* : null */;
847 var_name = p0;
848 {
849 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
850 var3 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
851 if (unlikely(var3 == NULL)) {
852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
853 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
854 show_backtrace(1);
855 }
856 var1 = var3;
857 RET_LABEL2:(void)0;
858 }
859 }
860 var_ = var1;
861 {
862 var4 = standard___standard__List___standard__abstract_collection__Collection__iterator(var_);
863 }
864 var_5 = var4;
865 for(;;) {
866 {
867 var6 = standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(var_5);
868 }
869 if (var6){
870 {
871 var7 = standard___standard__ListIterator___standard__abstract_collection__Iterator__item(var_5);
872 }
873 var_scope = var7;
874 {
875 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
876 var10 = var_scope->attrs[COLOR_nit__scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
877 var8 = var10;
878 RET_LABEL9:(void)0;
879 }
880 }
881 var_res = var8;
882 var12 = NULL;
883 if (var_res == NULL) {
884 var13 = 0; /* is null */
885 } else {
886 var13 = 1; /* arg is null and recv is not */
887 }
888 if (0) {
889 { /* Inline kernel#Object#!= (var_res,var12) on <var_res:nullable EscapeMark> */
890 var_other = var12;
891 {
892 var16 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
893 }
894 var17 = !var16;
895 var14 = var17;
896 goto RET_LABEL15;
897 RET_LABEL15:(void)0;
898 }
899 var13 = var14;
900 }
901 var_18 = var13;
902 if (var13){
903 {
904 { /* Inline scope#EscapeMark#name (var_res) on <var_res:nullable EscapeMark(EscapeMark)> */
905 var21 = var_res->attrs[COLOR_nit__scope__EscapeMark___name].val; /* _name on <var_res:nullable EscapeMark(EscapeMark)> */
906 var19 = var21;
907 RET_LABEL20:(void)0;
908 }
909 }
910 if (var19 == NULL) {
911 var22 = 0; /* <var_name:String> cannot be null */
912 } else {
913 var23 = ((short int (*)(val* self, val* p0))(var19->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var19, var_name) /* == on <var19:nullable String>*/;
914 var22 = var23;
915 }
916 var11 = var22;
917 } else {
918 var11 = var_18;
919 }
920 if (var11){
921 var = var_res;
922 goto RET_LABEL;
923 } else {
924 }
925 {
926 standard___standard__ListIterator___standard__abstract_collection__Iterator__next(var_5); /* Direct call list#ListIterator#next on <var_5:ListIterator[Scope]>*/
927 }
928 } else {
929 goto BREAK_label;
930 }
931 }
932 BREAK_label: (void)0;
933 {
934 { /* Inline abstract_collection#Iterator#finish (var_5) on <var_5:ListIterator[Scope]> */
935 RET_LABEL24:(void)0;
936 }
937 }
938 var25 = NULL;
939 var = var25;
940 goto RET_LABEL;
941 RET_LABEL:;
942 return var;
943 }
944 /* method scope#ScopeVisitor#make_escape_mark for (self: ScopeVisitor, nullable ALabel, Bool): EscapeMark */
945 val* nit__scope___nit__scope__ScopeVisitor___make_escape_mark(val* self, val* p0, short int p1) {
946 val* var /* : EscapeMark */;
947 val* var_nlabel /* var nlabel: nullable ALabel */;
948 short int var_for_loop /* var for_loop: Bool */;
949 val* var1 /* : null */;
950 short int var2 /* : Bool */;
951 short int var3 /* : Bool */;
952 val* var_other /* var other: nullable Object */;
953 short int var5 /* : Bool */;
954 short int var6 /* : Bool */;
955 val* var7 /* : nullable TId */;
956 val* var9 /* : nullable TId */;
957 val* var_nid /* var nid: nullable TId */;
958 val* var10 /* : null */;
959 short int var11 /* : Bool */;
960 short int var12 /* : Bool */;
961 val* var_other14 /* var other: nullable Object */;
962 short int var15 /* : Bool */;
963 short int var17 /* : Bool */;
964 static val* varonce;
965 val* var18 /* : String */;
966 char* var19 /* : NativeString */;
967 long var20 /* : Int */;
968 val* var21 /* : FlatString */;
969 val* var22 /* : nullable EscapeMark */;
970 val* var_res /* var res: nullable EscapeMark */;
971 val* var23 /* : null */;
972 short int var24 /* : Bool */;
973 short int var25 /* : Bool */;
974 short int var27 /* : Bool */;
975 short int var28 /* : Bool */;
976 static val* varonce29;
977 val* var30 /* : String */;
978 char* var31 /* : NativeString */;
979 long var32 /* : Int */;
980 val* var33 /* : FlatString */;
981 static val* varonce34;
982 val* var35 /* : String */;
983 char* var36 /* : NativeString */;
984 long var37 /* : Int */;
985 val* var38 /* : FlatString */;
986 val* var_name /* var name: nullable String */;
987 val* var39 /* : String */;
988 val* var40 /* : nullable EscapeMark */;
989 val* var_found /* var found: nullable EscapeMark */;
990 val* var41 /* : null */;
991 short int var42 /* : Bool */;
992 short int var43 /* : Bool */;
993 short int var45 /* : Bool */;
994 short int var46 /* : Bool */;
995 static val* varonce47;
996 val* var48 /* : String */;
997 char* var49 /* : NativeString */;
998 long var50 /* : Int */;
999 val* var51 /* : FlatString */;
1000 static val* varonce52;
1001 val* var53 /* : String */;
1002 char* var54 /* : NativeString */;
1003 long var55 /* : Int */;
1004 val* var56 /* : FlatString */;
1005 val* var57 /* : Array[Object] */;
1006 long var58 /* : Int */;
1007 val* var59 /* : NativeArray[Object] */;
1008 val* var60 /* : String */;
1009 val* var61 /* : null */;
1010 val* var62 /* : EscapeMark */;
1011 val* var_res63 /* var res: EscapeMark */;
1012 val* var64 /* : EscapeMark */;
1013 var_nlabel = p0;
1014 var_for_loop = p1;
1015 var1 = NULL;
1016 if (var_nlabel == NULL) {
1017 var2 = 0; /* is null */
1018 } else {
1019 var2 = 1; /* arg is null and recv is not */
1020 }
1021 if (0) {
1022 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1023 var_other = var1;
1024 {
1025 var5 = ((short int (*)(val* self, val* p0))(var_nlabel->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nlabel, var_other) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1026 }
1027 var6 = !var5;
1028 var3 = var6;
1029 goto RET_LABEL4;
1030 RET_LABEL4:(void)0;
1031 }
1032 var2 = var3;
1033 }
1034 if (var2){
1035 {
1036 { /* Inline parser_nodes#ALabel#n_id (var_nlabel) on <var_nlabel:nullable ALabel(ALabel)> */
1037 var9 = var_nlabel->attrs[COLOR_nit__parser_nodes__ALabel___n_id].val; /* _n_id on <var_nlabel:nullable ALabel(ALabel)> */
1038 var7 = var9;
1039 RET_LABEL8:(void)0;
1040 }
1041 }
1042 var_nid = var7;
1043 var10 = NULL;
1044 if (var_nid == NULL) {
1045 var11 = 1; /* is null */
1046 } else {
1047 var11 = 0; /* arg is null but recv is not */
1048 }
1049 if (0) {
1050 { /* Inline kernel#Object#== (var_nid,var10) on <var_nid:nullable TId> */
1051 var_other14 = var10;
1052 {
1053 { /* Inline kernel#Object#is_same_instance (var_nid,var_other14) on <var_nid:nullable TId(TId)> */
1054 var17 = var_nid == var_other14;
1055 var15 = var17;
1056 goto RET_LABEL16;
1057 RET_LABEL16:(void)0;
1058 }
1059 }
1060 var12 = var15;
1061 goto RET_LABEL13;
1062 RET_LABEL13:(void)0;
1063 }
1064 var11 = var12;
1065 }
1066 if (var11){
1067 if (varonce) {
1068 var18 = varonce;
1069 } else {
1070 var19 = "";
1071 var20 = 0;
1072 var21 = standard___standard__NativeString___to_s_with_length(var19, var20);
1073 var18 = var21;
1074 varonce = var18;
1075 }
1076 {
1077 var22 = nit__scope___nit__scope__ScopeVisitor___search_label(self, var18);
1078 }
1079 var_res = var22;
1080 var23 = NULL;
1081 if (var_res == NULL) {
1082 var24 = 0; /* is null */
1083 } else {
1084 var24 = 1; /* arg is null and recv is not */
1085 }
1086 if (0) {
1087 { /* Inline kernel#Object#!= (var_res,var23) on <var_res:nullable EscapeMark> */
1088 var_other = var23;
1089 {
1090 var27 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
1091 }
1092 var28 = !var27;
1093 var25 = var28;
1094 goto RET_LABEL26;
1095 RET_LABEL26:(void)0;
1096 }
1097 var24 = var25;
1098 }
1099 if (var24){
1100 if (varonce29) {
1101 var30 = varonce29;
1102 } else {
1103 var31 = "Syntax error: anonymous label already defined.";
1104 var32 = 46;
1105 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
1106 var30 = var33;
1107 varonce29 = var30;
1108 }
1109 {
1110 nit__scope___nit__scope__ScopeVisitor___error(self, var_nlabel, var30); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1111 }
1112 } else {
1113 }
1114 if (varonce34) {
1115 var35 = varonce34;
1116 } else {
1117 var36 = "";
1118 var37 = 0;
1119 var38 = standard___standard__NativeString___to_s_with_length(var36, var37);
1120 var35 = var38;
1121 varonce34 = var35;
1122 }
1123 var_name = var35;
1124 } else {
1125 {
1126 var39 = nit__lexer_work___Token___text(var_nid);
1127 }
1128 var_name = var39;
1129 {
1130 var40 = nit__scope___nit__scope__ScopeVisitor___search_label(self, var_name);
1131 }
1132 var_found = var40;
1133 var41 = NULL;
1134 if (var_found == NULL) {
1135 var42 = 0; /* is null */
1136 } else {
1137 var42 = 1; /* arg is null and recv is not */
1138 }
1139 if (0) {
1140 { /* Inline kernel#Object#!= (var_found,var41) on <var_found:nullable EscapeMark> */
1141 var_other = var41;
1142 {
1143 var45 = ((short int (*)(val* self, val* p0))(var_found->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_found, var_other) /* == on <var_found:nullable EscapeMark(EscapeMark)>*/;
1144 }
1145 var46 = !var45;
1146 var43 = var46;
1147 goto RET_LABEL44;
1148 RET_LABEL44:(void)0;
1149 }
1150 var42 = var43;
1151 }
1152 if (var42){
1153 if (varonce47) {
1154 var48 = varonce47;
1155 } else {
1156 var49 = "Syntax error: label ";
1157 var50 = 20;
1158 var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
1159 var48 = var51;
1160 varonce47 = var48;
1161 }
1162 if (varonce52) {
1163 var53 = varonce52;
1164 } else {
1165 var54 = " already defined.";
1166 var55 = 17;
1167 var56 = standard___standard__NativeString___to_s_with_length(var54, var55);
1168 var53 = var56;
1169 varonce52 = var53;
1170 }
1171 var57 = NEW_standard__Array(&type_standard__Array__standard__Object);
1172 { /* var57 = array_instance Array[Object] */
1173 var58 = 3;
1174 var59 = NEW_standard__NativeArray(var58, &type_standard__NativeArray__standard__Object);
1175 ((struct instance_standard__NativeArray*)var59)->values[0] = (val*) var48;
1176 ((struct instance_standard__NativeArray*)var59)->values[1] = (val*) var_name;
1177 ((struct instance_standard__NativeArray*)var59)->values[2] = (val*) var53;
1178 {
1179 ((void (*)(val* self, val* p0, long p1))(var57->class->vft[COLOR_standard__array__Array__with_native]))(var57, var59, var58) /* with_native on <var57:Array[Object]>*/;
1180 }
1181 }
1182 {
1183 var60 = ((val* (*)(val* self))(var57->class->vft[COLOR_standard__string__Object__to_s]))(var57) /* to_s on <var57:Array[Object]>*/;
1184 }
1185 {
1186 nit__scope___nit__scope__ScopeVisitor___error(self, var_nlabel, var60); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1187 }
1188 } else {
1189 }
1190 }
1191 } else {
1192 var61 = NULL;
1193 var_name = var61;
1194 }
1195 var62 = NEW_nit__EscapeMark(&type_nit__EscapeMark);
1196 {
1197 ((void (*)(val* self, val* p0))(var62->class->vft[COLOR_nit__scope__EscapeMark__name_61d]))(var62, var_name) /* name= on <var62:EscapeMark>*/;
1198 }
1199 {
1200 ((void (*)(val* self))(var62->class->vft[COLOR_standard__kernel__Object__init]))(var62) /* init on <var62:EscapeMark>*/;
1201 }
1202 var_res63 = var62;
1203 if (var_for_loop){
1204 var64 = NEW_nit__EscapeMark(&type_nit__EscapeMark);
1205 {
1206 ((void (*)(val* self, val* p0))(var64->class->vft[COLOR_nit__scope__EscapeMark__name_61d]))(var64, var_name) /* name= on <var64:EscapeMark>*/;
1207 }
1208 {
1209 ((void (*)(val* self))(var64->class->vft[COLOR_standard__kernel__Object__init]))(var64) /* init on <var64:EscapeMark>*/;
1210 }
1211 {
1212 { /* Inline scope#EscapeMark#continue_mark= (var_res63,var64) on <var_res63:EscapeMark> */
1213 var_res63->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val = var64; /* _continue_mark on <var_res63:EscapeMark> */
1214 RET_LABEL65:(void)0;
1215 }
1216 }
1217 } else {
1218 }
1219 var = var_res63;
1220 goto RET_LABEL;
1221 RET_LABEL:;
1222 return var;
1223 }
1224 /* method scope#ScopeVisitor#get_escapemark for (self: ScopeVisitor, ANode, nullable ALabel): nullable EscapeMark */
1225 val* nit__scope___nit__scope__ScopeVisitor___get_escapemark(val* self, val* p0, val* p1) {
1226 val* var /* : nullable EscapeMark */;
1227 val* var_node /* var node: ANode */;
1228 val* var_nlabel /* var nlabel: nullable ALabel */;
1229 val* var1 /* : null */;
1230 short int var2 /* : Bool */;
1231 short int var3 /* : Bool */;
1232 val* var_other /* var other: nullable Object */;
1233 short int var5 /* : Bool */;
1234 short int var6 /* : Bool */;
1235 val* var7 /* : nullable TId */;
1236 val* var9 /* : nullable TId */;
1237 val* var_nid /* var nid: nullable TId */;
1238 val* var10 /* : null */;
1239 short int var11 /* : Bool */;
1240 short int var12 /* : Bool */;
1241 val* var_other14 /* var other: nullable Object */;
1242 short int var15 /* : Bool */;
1243 short int var17 /* : Bool */;
1244 static val* varonce;
1245 val* var18 /* : String */;
1246 char* var19 /* : NativeString */;
1247 long var20 /* : Int */;
1248 val* var21 /* : FlatString */;
1249 val* var22 /* : nullable EscapeMark */;
1250 val* var_res /* var res: nullable EscapeMark */;
1251 val* var23 /* : null */;
1252 short int var24 /* : Bool */;
1253 short int var25 /* : Bool */;
1254 short int var27 /* : Bool */;
1255 short int var29 /* : Bool */;
1256 static val* varonce30;
1257 val* var31 /* : String */;
1258 char* var32 /* : NativeString */;
1259 long var33 /* : Int */;
1260 val* var34 /* : FlatString */;
1261 val* var35 /* : null */;
1262 val* var36 /* : String */;
1263 val* var_name /* var name: String */;
1264 val* var37 /* : nullable EscapeMark */;
1265 val* var_res38 /* var res: nullable EscapeMark */;
1266 val* var39 /* : null */;
1267 short int var40 /* : Bool */;
1268 short int var41 /* : Bool */;
1269 short int var43 /* : Bool */;
1270 short int var45 /* : Bool */;
1271 static val* varonce46;
1272 val* var47 /* : String */;
1273 char* var48 /* : NativeString */;
1274 long var49 /* : Int */;
1275 val* var50 /* : FlatString */;
1276 static val* varonce51;
1277 val* var52 /* : String */;
1278 char* var53 /* : NativeString */;
1279 long var54 /* : Int */;
1280 val* var55 /* : FlatString */;
1281 val* var56 /* : Array[Object] */;
1282 long var57 /* : Int */;
1283 val* var58 /* : NativeArray[Object] */;
1284 val* var59 /* : String */;
1285 val* var60 /* : null */;
1286 val* var61 /* : List[Scope] */;
1287 val* var63 /* : List[Scope] */;
1288 val* var_ /* var : List[Scope] */;
1289 val* var64 /* : ListIterator[nullable Object] */;
1290 val* var_65 /* var : ListIterator[Scope] */;
1291 short int var66 /* : Bool */;
1292 val* var67 /* : nullable Object */;
1293 val* var_scope /* var scope: Scope */;
1294 val* var68 /* : nullable EscapeMark */;
1295 val* var70 /* : nullable EscapeMark */;
1296 val* var_res71 /* var res: nullable EscapeMark */;
1297 val* var72 /* : null */;
1298 short int var73 /* : Bool */;
1299 short int var74 /* : Bool */;
1300 short int var76 /* : Bool */;
1301 short int var77 /* : Bool */;
1302 static val* varonce79;
1303 val* var80 /* : String */;
1304 char* var81 /* : NativeString */;
1305 long var82 /* : Int */;
1306 val* var83 /* : FlatString */;
1307 val* var84 /* : null */;
1308 var_node = p0;
1309 var_nlabel = p1;
1310 var1 = NULL;
1311 if (var_nlabel == NULL) {
1312 var2 = 0; /* is null */
1313 } else {
1314 var2 = 1; /* arg is null and recv is not */
1315 }
1316 if (0) {
1317 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1318 var_other = var1;
1319 {
1320 var5 = ((short int (*)(val* self, val* p0))(var_nlabel->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nlabel, var_other) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1321 }
1322 var6 = !var5;
1323 var3 = var6;
1324 goto RET_LABEL4;
1325 RET_LABEL4:(void)0;
1326 }
1327 var2 = var3;
1328 }
1329 if (var2){
1330 {
1331 { /* Inline parser_nodes#ALabel#n_id (var_nlabel) on <var_nlabel:nullable ALabel(ALabel)> */
1332 var9 = var_nlabel->attrs[COLOR_nit__parser_nodes__ALabel___n_id].val; /* _n_id on <var_nlabel:nullable ALabel(ALabel)> */
1333 var7 = var9;
1334 RET_LABEL8:(void)0;
1335 }
1336 }
1337 var_nid = var7;
1338 var10 = NULL;
1339 if (var_nid == NULL) {
1340 var11 = 1; /* is null */
1341 } else {
1342 var11 = 0; /* arg is null but recv is not */
1343 }
1344 if (0) {
1345 { /* Inline kernel#Object#== (var_nid,var10) on <var_nid:nullable TId> */
1346 var_other14 = var10;
1347 {
1348 { /* Inline kernel#Object#is_same_instance (var_nid,var_other14) on <var_nid:nullable TId(TId)> */
1349 var17 = var_nid == var_other14;
1350 var15 = var17;
1351 goto RET_LABEL16;
1352 RET_LABEL16:(void)0;
1353 }
1354 }
1355 var12 = var15;
1356 goto RET_LABEL13;
1357 RET_LABEL13:(void)0;
1358 }
1359 var11 = var12;
1360 }
1361 if (var11){
1362 if (varonce) {
1363 var18 = varonce;
1364 } else {
1365 var19 = "";
1366 var20 = 0;
1367 var21 = standard___standard__NativeString___to_s_with_length(var19, var20);
1368 var18 = var21;
1369 varonce = var18;
1370 }
1371 {
1372 var22 = nit__scope___nit__scope__ScopeVisitor___search_label(self, var18);
1373 }
1374 var_res = var22;
1375 var23 = NULL;
1376 if (var_res == NULL) {
1377 var24 = 1; /* is null */
1378 } else {
1379 var24 = 0; /* arg is null but recv is not */
1380 }
1381 if (0) {
1382 { /* Inline kernel#Object#== (var_res,var23) on <var_res:nullable EscapeMark> */
1383 var_other14 = var23;
1384 {
1385 { /* Inline kernel#Object#is_same_instance (var_res,var_other14) on <var_res:nullable EscapeMark(EscapeMark)> */
1386 var29 = var_res == var_other14;
1387 var27 = var29;
1388 goto RET_LABEL28;
1389 RET_LABEL28:(void)0;
1390 }
1391 }
1392 var25 = var27;
1393 goto RET_LABEL26;
1394 RET_LABEL26:(void)0;
1395 }
1396 var24 = var25;
1397 }
1398 if (var24){
1399 if (varonce30) {
1400 var31 = varonce30;
1401 } else {
1402 var32 = "Syntax error: invalid anonymous label.";
1403 var33 = 38;
1404 var34 = standard___standard__NativeString___to_s_with_length(var32, var33);
1405 var31 = var34;
1406 varonce30 = var31;
1407 }
1408 {
1409 nit__scope___nit__scope__ScopeVisitor___error(self, var_nlabel, var31); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1410 }
1411 var35 = NULL;
1412 var = var35;
1413 goto RET_LABEL;
1414 } else {
1415 }
1416 var = var_res;
1417 goto RET_LABEL;
1418 } else {
1419 }
1420 {
1421 var36 = nit__lexer_work___Token___text(var_nid);
1422 }
1423 var_name = var36;
1424 {
1425 var37 = nit__scope___nit__scope__ScopeVisitor___search_label(self, var_name);
1426 }
1427 var_res38 = var37;
1428 var39 = NULL;
1429 if (var_res38 == NULL) {
1430 var40 = 1; /* is null */
1431 } else {
1432 var40 = 0; /* arg is null but recv is not */
1433 }
1434 if (0) {
1435 { /* Inline kernel#Object#== (var_res38,var39) on <var_res38:nullable EscapeMark> */
1436 var_other14 = var39;
1437 {
1438 { /* Inline kernel#Object#is_same_instance (var_res38,var_other14) on <var_res38:nullable EscapeMark(EscapeMark)> */
1439 var45 = var_res38 == var_other14;
1440 var43 = var45;
1441 goto RET_LABEL44;
1442 RET_LABEL44:(void)0;
1443 }
1444 }
1445 var41 = var43;
1446 goto RET_LABEL42;
1447 RET_LABEL42:(void)0;
1448 }
1449 var40 = var41;
1450 }
1451 if (var40){
1452 if (varonce46) {
1453 var47 = varonce46;
1454 } else {
1455 var48 = "Syntax error: invalid label ";
1456 var49 = 28;
1457 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
1458 var47 = var50;
1459 varonce46 = var47;
1460 }
1461 if (varonce51) {
1462 var52 = varonce51;
1463 } else {
1464 var53 = ".";
1465 var54 = 1;
1466 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
1467 var52 = var55;
1468 varonce51 = var52;
1469 }
1470 var56 = NEW_standard__Array(&type_standard__Array__standard__Object);
1471 { /* var56 = array_instance Array[Object] */
1472 var57 = 3;
1473 var58 = NEW_standard__NativeArray(var57, &type_standard__NativeArray__standard__Object);
1474 ((struct instance_standard__NativeArray*)var58)->values[0] = (val*) var47;
1475 ((struct instance_standard__NativeArray*)var58)->values[1] = (val*) var_name;
1476 ((struct instance_standard__NativeArray*)var58)->values[2] = (val*) var52;
1477 {
1478 ((void (*)(val* self, val* p0, long p1))(var56->class->vft[COLOR_standard__array__Array__with_native]))(var56, var58, var57) /* with_native on <var56:Array[Object]>*/;
1479 }
1480 }
1481 {
1482 var59 = ((val* (*)(val* self))(var56->class->vft[COLOR_standard__string__Object__to_s]))(var56) /* to_s on <var56:Array[Object]>*/;
1483 }
1484 {
1485 nit__scope___nit__scope__ScopeVisitor___error(self, var_nlabel, var59); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1486 }
1487 var60 = NULL;
1488 var = var60;
1489 goto RET_LABEL;
1490 } else {
1491 }
1492 var = var_res38;
1493 goto RET_LABEL;
1494 } else {
1495 {
1496 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1497 var63 = self->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
1498 if (unlikely(var63 == NULL)) {
1499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
1501 show_backtrace(1);
1502 }
1503 var61 = var63;
1504 RET_LABEL62:(void)0;
1505 }
1506 }
1507 var_ = var61;
1508 {
1509 var64 = standard___standard__List___standard__abstract_collection__Collection__iterator(var_);
1510 }
1511 var_65 = var64;
1512 for(;;) {
1513 {
1514 var66 = standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(var_65);
1515 }
1516 if (var66){
1517 {
1518 var67 = standard___standard__ListIterator___standard__abstract_collection__Iterator__item(var_65);
1519 }
1520 var_scope = var67;
1521 {
1522 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
1523 var70 = var_scope->attrs[COLOR_nit__scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
1524 var68 = var70;
1525 RET_LABEL69:(void)0;
1526 }
1527 }
1528 var_res71 = var68;
1529 var72 = NULL;
1530 if (var_res71 == NULL) {
1531 var73 = 0; /* is null */
1532 } else {
1533 var73 = 1; /* arg is null and recv is not */
1534 }
1535 if (0) {
1536 { /* Inline kernel#Object#!= (var_res71,var72) on <var_res71:nullable EscapeMark> */
1537 var_other = var72;
1538 {
1539 var76 = ((short int (*)(val* self, val* p0))(var_res71->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res71, var_other) /* == on <var_res71:nullable EscapeMark(EscapeMark)>*/;
1540 }
1541 var77 = !var76;
1542 var74 = var77;
1543 goto RET_LABEL75;
1544 RET_LABEL75:(void)0;
1545 }
1546 var73 = var74;
1547 }
1548 if (var73){
1549 var = var_res71;
1550 goto RET_LABEL;
1551 } else {
1552 }
1553 {
1554 standard___standard__ListIterator___standard__abstract_collection__Iterator__next(var_65); /* Direct call list#ListIterator#next on <var_65:ListIterator[Scope]>*/
1555 }
1556 } else {
1557 goto BREAK_label;
1558 }
1559 }
1560 BREAK_label: (void)0;
1561 {
1562 { /* Inline abstract_collection#Iterator#finish (var_65) on <var_65:ListIterator[Scope]> */
1563 RET_LABEL78:(void)0;
1564 }
1565 }
1566 if (varonce79) {
1567 var80 = varonce79;
1568 } else {
1569 var81 = "Syntax Error: \'break\' statement outside block.";
1570 var82 = 46;
1571 var83 = standard___standard__NativeString___to_s_with_length(var81, var82);
1572 var80 = var83;
1573 varonce79 = var80;
1574 }
1575 {
1576 nit__scope___nit__scope__ScopeVisitor___error(self, var_node, var80); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1577 }
1578 var84 = NULL;
1579 var = var84;
1580 goto RET_LABEL;
1581 }
1582 RET_LABEL:;
1583 return var;
1584 }
1585 /* method scope#ScopeVisitor#error for (self: ScopeVisitor, ANode, String) */
1586 void nit__scope___nit__scope__ScopeVisitor___error(val* self, val* p0, val* p1) {
1587 val* var_node /* var node: ANode */;
1588 val* var_message /* var message: String */;
1589 val* var /* : ToolContext */;
1590 val* var2 /* : ToolContext */;
1591 val* var3 /* : Location */;
1592 var_node = p0;
1593 var_message = p1;
1594 {
1595 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
1596 var2 = self->attrs[COLOR_nit__scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
1597 if (unlikely(var2 == NULL)) {
1598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1599 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 70);
1600 show_backtrace(1);
1601 }
1602 var = var2;
1603 RET_LABEL1:(void)0;
1604 }
1605 }
1606 {
1607 var3 = ((val* (*)(val* self))(var_node->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_node) /* hot_location on <var_node:ANode>*/;
1608 }
1609 {
1610 nit___nit__ToolContext___error(var, var3, var_message); /* Direct call toolcontext#ToolContext#error on <var:ToolContext>*/
1611 }
1612 RET_LABEL:;
1613 }
1614 /* method scope#Scope#variables for (self: Scope): HashMap[String, Variable] */
1615 val* nit__scope___nit__scope__Scope___variables(val* self) {
1616 val* var /* : HashMap[String, Variable] */;
1617 val* var1 /* : HashMap[String, Variable] */;
1618 var1 = self->attrs[COLOR_nit__scope__Scope___variables].val; /* _variables on <self:Scope> */
1619 if (unlikely(var1 == NULL)) {
1620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 225);
1622 show_backtrace(1);
1623 }
1624 var = var1;
1625 RET_LABEL:;
1626 return var;
1627 }
1628 /* method scope#Scope#escapemark for (self: Scope): nullable EscapeMark */
1629 val* nit__scope___nit__scope__Scope___escapemark(val* self) {
1630 val* var /* : nullable EscapeMark */;
1631 val* var1 /* : nullable EscapeMark */;
1632 var1 = self->attrs[COLOR_nit__scope__Scope___escapemark].val; /* _escapemark on <self:Scope> */
1633 var = var1;
1634 RET_LABEL:;
1635 return var;
1636 }
1637 /* method scope#Scope#escapemark= for (self: Scope, nullable EscapeMark) */
1638 void nit__scope___nit__scope__Scope___escapemark_61d(val* self, val* p0) {
1639 self->attrs[COLOR_nit__scope__Scope___escapemark].val = p0; /* _escapemark on <self:Scope> */
1640 RET_LABEL:;
1641 }
1642 /* method scope#Scope#get_variable for (self: Scope, String): nullable Variable */
1643 val* nit__scope___nit__scope__Scope___get_variable(val* self, val* p0) {
1644 val* var /* : nullable Variable */;
1645 val* var_name /* var name: String */;
1646 val* var1 /* : HashMap[String, Variable] */;
1647 val* var3 /* : HashMap[String, Variable] */;
1648 short int var4 /* : Bool */;
1649 val* var5 /* : HashMap[String, Variable] */;
1650 val* var7 /* : HashMap[String, Variable] */;
1651 val* var8 /* : nullable Object */;
1652 val* var9 /* : null */;
1653 var_name = p0;
1654 {
1655 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1656 var3 = self->attrs[COLOR_nit__scope__Scope___variables].val; /* _variables on <self:Scope> */
1657 if (unlikely(var3 == NULL)) {
1658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1659 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 225);
1660 show_backtrace(1);
1661 }
1662 var1 = var3;
1663 RET_LABEL2:(void)0;
1664 }
1665 }
1666 {
1667 var4 = standard___standard__MapRead___has_key(var1, var_name);
1668 }
1669 if (var4){
1670 {
1671 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1672 var7 = self->attrs[COLOR_nit__scope__Scope___variables].val; /* _variables on <self:Scope> */
1673 if (unlikely(var7 == NULL)) {
1674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1675 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 225);
1676 show_backtrace(1);
1677 }
1678 var5 = var7;
1679 RET_LABEL6:(void)0;
1680 }
1681 }
1682 {
1683 var8 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var5, var_name);
1684 }
1685 var = var8;
1686 goto RET_LABEL;
1687 } else {
1688 var9 = NULL;
1689 var = var9;
1690 goto RET_LABEL;
1691 }
1692 RET_LABEL:;
1693 return var;
1694 }
1695 /* method scope#ANode#accept_scope_visitor for (self: ANode, ScopeVisitor) */
1696 void nit__scope___ANode___accept_scope_visitor(val* self, val* p0) {
1697 val* var_v /* var v: ScopeVisitor */;
1698 var_v = p0;
1699 {
1700 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
1701 }
1702 RET_LABEL:;
1703 }
1704 /* method scope#APropdef#do_scope for (self: APropdef, ToolContext) */
1705 void nit__scope___APropdef___do_scope(val* self, val* p0) {
1706 val* var_toolcontext /* var toolcontext: ToolContext */;
1707 val* var /* : ScopeVisitor */;
1708 val* var_v /* var v: ScopeVisitor */;
1709 var_toolcontext = p0;
1710 var = NEW_nit__scope__ScopeVisitor(&type_nit__scope__ScopeVisitor);
1711 {
1712 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__scope__ScopeVisitor__toolcontext_61d]))(var, var_toolcontext) /* toolcontext= on <var:ScopeVisitor>*/;
1713 }
1714 {
1715 ((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on <var:ScopeVisitor>*/;
1716 }
1717 var_v = var;
1718 {
1719 nit___nit__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
1720 }
1721 {
1722 nit__scope___nit__scope__ScopeVisitor___shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
1723 }
1724 RET_LABEL:;
1725 }
1726 /* method scope#AParam#variable for (self: AParam): nullable Variable */
1727 val* nit__scope___AParam___variable(val* self) {
1728 val* var /* : nullable Variable */;
1729 val* var1 /* : nullable Variable */;
1730 var1 = self->attrs[COLOR_nit__scope__AParam___variable].val; /* _variable on <self:AParam> */
1731 var = var1;
1732 RET_LABEL:;
1733 return var;
1734 }
1735 /* method scope#AParam#variable= for (self: AParam, nullable Variable) */
1736 void nit__scope___AParam___variable_61d(val* self, val* p0) {
1737 self->attrs[COLOR_nit__scope__AParam___variable].val = p0; /* _variable on <self:AParam> */
1738 RET_LABEL:;
1739 }
1740 /* method scope#AParam#accept_scope_visitor for (self: AParam, ScopeVisitor) */
1741 void nit__scope___AParam___ANode__accept_scope_visitor(val* self, val* p0) {
1742 val* var_v /* var v: ScopeVisitor */;
1743 val* var /* : TId */;
1744 val* var2 /* : TId */;
1745 val* var_nid /* var nid: TId */;
1746 val* var3 /* : Variable */;
1747 val* var4 /* : String */;
1748 val* var_variable /* var variable: Variable */;
1749 short int var5 /* : Bool */;
1750 var_v = p0;
1751 {
1752 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___AParam___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AParam>*/;
1753 }
1754 {
1755 { /* Inline parser_nodes#AParam#n_id (self) on <self:AParam> */
1756 var2 = self->attrs[COLOR_nit__parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
1757 if (unlikely(var2 == NULL)) {
1758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1520);
1760 show_backtrace(1);
1761 }
1762 var = var2;
1763 RET_LABEL1:(void)0;
1764 }
1765 }
1766 var_nid = var;
1767 var3 = NEW_nit__Variable(&type_nit__Variable);
1768 {
1769 var4 = nit__lexer_work___Token___text(var_nid);
1770 }
1771 {
1772 ((void (*)(val* self, val* p0))(var3->class->vft[COLOR_nit__scope__Variable__name_61d]))(var3, var4) /* name= on <var3:Variable>*/;
1773 }
1774 {
1775 ((void (*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3) /* init on <var3:Variable>*/;
1776 }
1777 var_variable = var3;
1778 {
1779 var5 = nit__scope___nit__scope__ScopeVisitor___register_variable(var_v, var_nid, var_variable);
1780 }
1781 {
1782 { /* Inline scope#AParam#variable= (self,var_variable) on <self:AParam> */
1783 self->attrs[COLOR_nit__scope__AParam___variable].val = var_variable; /* _variable on <self:AParam> */
1784 RET_LABEL6:(void)0;
1785 }
1786 }
1787 RET_LABEL:;
1788 }
1789 /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */
1790 val* nit__scope___AVardeclExpr___variable(val* self) {
1791 val* var /* : nullable Variable */;
1792 val* var1 /* : nullable Variable */;
1793 var1 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
1794 var = var1;
1795 RET_LABEL:;
1796 return var;
1797 }
1798 /* method scope#AVardeclExpr#variable= for (self: AVardeclExpr, nullable Variable) */
1799 void nit__scope___AVardeclExpr___variable_61d(val* self, val* p0) {
1800 self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val = p0; /* _variable on <self:AVardeclExpr> */
1801 RET_LABEL:;
1802 }
1803 /* method scope#AVardeclExpr#accept_scope_visitor for (self: AVardeclExpr, ScopeVisitor) */
1804 void nit__scope___AVardeclExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1805 val* var_v /* var v: ScopeVisitor */;
1806 val* var /* : TId */;
1807 val* var2 /* : TId */;
1808 val* var_nid /* var nid: TId */;
1809 val* var3 /* : Variable */;
1810 val* var4 /* : String */;
1811 val* var_variable /* var variable: Variable */;
1812 short int var5 /* : Bool */;
1813 short int var6 /* : Bool */;
1814 var_v = p0;
1815 {
1816 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___AVardeclExpr___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AVardeclExpr>*/;
1817 }
1818 {
1819 { /* Inline parser_nodes#AVardeclExpr#n_id (self) on <self:AVardeclExpr> */
1820 var2 = self->attrs[COLOR_nit__parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
1821 if (unlikely(var2 == NULL)) {
1822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1823 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1580);
1824 show_backtrace(1);
1825 }
1826 var = var2;
1827 RET_LABEL1:(void)0;
1828 }
1829 }
1830 var_nid = var;
1831 var3 = NEW_nit__Variable(&type_nit__Variable);
1832 {
1833 var4 = nit__lexer_work___Token___text(var_nid);
1834 }
1835 {
1836 ((void (*)(val* self, val* p0))(var3->class->vft[COLOR_nit__scope__Variable__name_61d]))(var3, var4) /* name= on <var3:Variable>*/;
1837 }
1838 {
1839 ((void (*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3) /* init on <var3:Variable>*/;
1840 }
1841 var_variable = var3;
1842 {
1843 var5 = nit__scope___nit__scope__ScopeVisitor___register_variable(var_v, var_nid, var_variable);
1844 }
1845 var6 = 1;
1846 {
1847 { /* Inline scope#Variable#warn_unread= (var_variable,var6) on <var_variable:Variable> */
1848 var_variable->attrs[COLOR_nit__scope__Variable___warn_unread].s = var6; /* _warn_unread on <var_variable:Variable> */
1849 RET_LABEL7:(void)0;
1850 }
1851 }
1852 {
1853 { /* Inline scope#AVardeclExpr#variable= (self,var_variable) on <self:AVardeclExpr> */
1854 self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val = var_variable; /* _variable on <self:AVardeclExpr> */
1855 RET_LABEL8:(void)0;
1856 }
1857 }
1858 RET_LABEL:;
1859 }
1860 /* method scope#ASelfExpr#variable= for (self: ASelfExpr, nullable Variable) */
1861 void nit__scope___ASelfExpr___variable_61d(val* self, val* p0) {
1862 self->attrs[COLOR_nit__scope__ASelfExpr___variable].val = p0; /* _variable on <self:ASelfExpr> */
1863 RET_LABEL:;
1864 }
1865 /* method scope#ASelfExpr#accept_scope_visitor for (self: ASelfExpr, ScopeVisitor) */
1866 void nit__scope___ASelfExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1867 val* var_v /* var v: ScopeVisitor */;
1868 val* var /* : Variable */;
1869 val* var2 /* : Variable */;
1870 var_v = p0;
1871 {
1872 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___ASelfExpr___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ASelfExpr>*/;
1873 }
1874 {
1875 { /* Inline scope#ScopeVisitor#selfvariable (var_v) on <var_v:ScopeVisitor> */
1876 var2 = var_v->attrs[COLOR_nit__scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <var_v:ScopeVisitor> */
1877 if (unlikely(var2 == NULL)) {
1878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
1879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 73);
1880 show_backtrace(1);
1881 }
1882 var = var2;
1883 RET_LABEL1:(void)0;
1884 }
1885 }
1886 {
1887 { /* Inline scope#ASelfExpr#variable= (self,var) on <self:ASelfExpr> */
1888 self->attrs[COLOR_nit__scope__ASelfExpr___variable].val = var; /* _variable on <self:ASelfExpr> */
1889 RET_LABEL3:(void)0;
1890 }
1891 }
1892 RET_LABEL:;
1893 }
1894 /* method scope#AEscapeExpr#escapemark for (self: AEscapeExpr): nullable EscapeMark */
1895 val* nit__scope___AEscapeExpr___escapemark(val* self) {
1896 val* var /* : nullable EscapeMark */;
1897 val* var1 /* : nullable EscapeMark */;
1898 var1 = self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
1899 var = var1;
1900 RET_LABEL:;
1901 return var;
1902 }
1903 /* method scope#AEscapeExpr#escapemark= for (self: AEscapeExpr, nullable EscapeMark) */
1904 void nit__scope___AEscapeExpr___escapemark_61d(val* self, val* p0) {
1905 self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val = p0; /* _escapemark on <self:AEscapeExpr> */
1906 RET_LABEL:;
1907 }
1908 /* method scope#AContinueExpr#accept_scope_visitor for (self: AContinueExpr, ScopeVisitor) */
1909 void nit__scope___AContinueExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1910 val* var_v /* var v: ScopeVisitor */;
1911 val* var /* : nullable ALabel */;
1912 val* var2 /* : nullable ALabel */;
1913 val* var3 /* : nullable EscapeMark */;
1914 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1915 val* var4 /* : null */;
1916 short int var5 /* : Bool */;
1917 short int var6 /* : Bool */;
1918 val* var_other /* var other: nullable Object */;
1919 short int var8 /* : Bool */;
1920 short int var10 /* : Bool */;
1921 val* var11 /* : nullable EscapeMark */;
1922 val* var13 /* : nullable EscapeMark */;
1923 val* var14 /* : null */;
1924 short int var15 /* : Bool */;
1925 short int var16 /* : Bool */;
1926 short int var18 /* : Bool */;
1927 short int var20 /* : Bool */;
1928 static val* varonce;
1929 val* var21 /* : String */;
1930 char* var22 /* : NativeString */;
1931 long var23 /* : Int */;
1932 val* var24 /* : FlatString */;
1933 val* var25 /* : Array[AEscapeExpr] */;
1934 val* var27 /* : Array[AEscapeExpr] */;
1935 var_v = p0;
1936 {
1937 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___AContinueExpr___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AContinueExpr>*/;
1938 }
1939 {
1940 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AContinueExpr> */
1941 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
1942 var = var2;
1943 RET_LABEL1:(void)0;
1944 }
1945 }
1946 {
1947 var3 = nit__scope___nit__scope__ScopeVisitor___get_escapemark(var_v, self, var);
1948 }
1949 var_escapemark = var3;
1950 var4 = NULL;
1951 if (var_escapemark == NULL) {
1952 var5 = 1; /* is null */
1953 } else {
1954 var5 = 0; /* arg is null but recv is not */
1955 }
1956 if (0) {
1957 { /* Inline kernel#Object#== (var_escapemark,var4) on <var_escapemark:nullable EscapeMark> */
1958 var_other = var4;
1959 {
1960 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1961 var10 = var_escapemark == var_other;
1962 var8 = var10;
1963 goto RET_LABEL9;
1964 RET_LABEL9:(void)0;
1965 }
1966 }
1967 var6 = var8;
1968 goto RET_LABEL7;
1969 RET_LABEL7:(void)0;
1970 }
1971 var5 = var6;
1972 }
1973 if (var5){
1974 goto RET_LABEL;
1975 } else {
1976 }
1977 {
1978 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1979 var13 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1980 var11 = var13;
1981 RET_LABEL12:(void)0;
1982 }
1983 }
1984 var_escapemark = var11;
1985 var14 = NULL;
1986 if (var_escapemark == NULL) {
1987 var15 = 1; /* is null */
1988 } else {
1989 var15 = 0; /* arg is null but recv is not */
1990 }
1991 if (0) {
1992 { /* Inline kernel#Object#== (var_escapemark,var14) on <var_escapemark:nullable EscapeMark> */
1993 var_other = var14;
1994 {
1995 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1996 var20 = var_escapemark == var_other;
1997 var18 = var20;
1998 goto RET_LABEL19;
1999 RET_LABEL19:(void)0;
2000 }
2001 }
2002 var16 = var18;
2003 goto RET_LABEL17;
2004 RET_LABEL17:(void)0;
2005 }
2006 var15 = var16;
2007 }
2008 if (var15){
2009 if (varonce) {
2010 var21 = varonce;
2011 } else {
2012 var22 = "Error: cannot \'continue\', only \'break\'.";
2013 var23 = 39;
2014 var24 = standard___standard__NativeString___to_s_with_length(var22, var23);
2015 var21 = var24;
2016 varonce = var21;
2017 }
2018 {
2019 nit__scope___nit__scope__ScopeVisitor___error(var_v, self, var21); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2020 }
2021 goto RET_LABEL;
2022 } else {
2023 }
2024 {
2025 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2026 var27 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2027 if (unlikely(var27 == NULL)) {
2028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
2030 show_backtrace(1);
2031 }
2032 var25 = var27;
2033 RET_LABEL26:(void)0;
2034 }
2035 }
2036 {
2037 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var25, self); /* Direct call array#Array#add on <var25:Array[AEscapeExpr]>*/
2038 }
2039 {
2040 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:AContinueExpr> */
2041 self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:AContinueExpr> */
2042 RET_LABEL28:(void)0;
2043 }
2044 }
2045 RET_LABEL:;
2046 }
2047 /* method scope#ABreakExpr#accept_scope_visitor for (self: ABreakExpr, ScopeVisitor) */
2048 void nit__scope___ABreakExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2049 val* var_v /* var v: ScopeVisitor */;
2050 val* var /* : nullable ALabel */;
2051 val* var2 /* : nullable ALabel */;
2052 val* var3 /* : nullable EscapeMark */;
2053 val* var_escapemark /* var escapemark: nullable EscapeMark */;
2054 val* var4 /* : null */;
2055 short int var5 /* : Bool */;
2056 short int var6 /* : Bool */;
2057 val* var_other /* var other: nullable Object */;
2058 short int var8 /* : Bool */;
2059 short int var10 /* : Bool */;
2060 val* var11 /* : Array[AEscapeExpr] */;
2061 val* var13 /* : Array[AEscapeExpr] */;
2062 var_v = p0;
2063 {
2064 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___ABreakExpr___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ABreakExpr>*/;
2065 }
2066 {
2067 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ABreakExpr> */
2068 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
2069 var = var2;
2070 RET_LABEL1:(void)0;
2071 }
2072 }
2073 {
2074 var3 = nit__scope___nit__scope__ScopeVisitor___get_escapemark(var_v, self, var);
2075 }
2076 var_escapemark = var3;
2077 var4 = NULL;
2078 if (var_escapemark == NULL) {
2079 var5 = 1; /* is null */
2080 } else {
2081 var5 = 0; /* arg is null but recv is not */
2082 }
2083 if (0) {
2084 { /* Inline kernel#Object#== (var_escapemark,var4) on <var_escapemark:nullable EscapeMark> */
2085 var_other = var4;
2086 {
2087 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2088 var10 = var_escapemark == var_other;
2089 var8 = var10;
2090 goto RET_LABEL9;
2091 RET_LABEL9:(void)0;
2092 }
2093 }
2094 var6 = var8;
2095 goto RET_LABEL7;
2096 RET_LABEL7:(void)0;
2097 }
2098 var5 = var6;
2099 }
2100 if (var5){
2101 goto RET_LABEL;
2102 } else {
2103 }
2104 {
2105 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2106 var13 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2107 if (unlikely(var13 == NULL)) {
2108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2109 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
2110 show_backtrace(1);
2111 }
2112 var11 = var13;
2113 RET_LABEL12:(void)0;
2114 }
2115 }
2116 {
2117 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var11, self); /* Direct call array#Array#add on <var11:Array[AEscapeExpr]>*/
2118 }
2119 {
2120 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
2121 self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:ABreakExpr> */
2122 RET_LABEL14:(void)0;
2123 }
2124 }
2125 RET_LABEL:;
2126 }
2127 /* method scope#ADoExpr#break_mark for (self: ADoExpr): nullable EscapeMark */
2128 val* nit__scope___ADoExpr___break_mark(val* self) {
2129 val* var /* : nullable EscapeMark */;
2130 val* var1 /* : nullable EscapeMark */;
2131 var1 = self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2132 var = var1;
2133 RET_LABEL:;
2134 return var;
2135 }
2136 /* method scope#ADoExpr#break_mark= for (self: ADoExpr, nullable EscapeMark) */
2137 void nit__scope___ADoExpr___break_mark_61d(val* self, val* p0) {
2138 self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val = p0; /* _break_mark on <self:ADoExpr> */
2139 RET_LABEL:;
2140 }
2141 /* method scope#ADoExpr#accept_scope_visitor for (self: ADoExpr, ScopeVisitor) */
2142 void nit__scope___ADoExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2143 val* var_v /* var v: ScopeVisitor */;
2144 val* var /* : nullable ALabel */;
2145 val* var2 /* : nullable ALabel */;
2146 short int var3 /* : Bool */;
2147 val* var4 /* : EscapeMark */;
2148 val* var6 /* : nullable AExpr */;
2149 val* var8 /* : nullable AExpr */;
2150 val* var9 /* : nullable EscapeMark */;
2151 val* var11 /* : nullable EscapeMark */;
2152 var_v = p0;
2153 {
2154 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ADoExpr> */
2155 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
2156 var = var2;
2157 RET_LABEL1:(void)0;
2158 }
2159 }
2160 var3 = 0;
2161 {
2162 var4 = nit__scope___nit__scope__ScopeVisitor___make_escape_mark(var_v, var, var3);
2163 }
2164 {
2165 { /* Inline scope#ADoExpr#break_mark= (self,var4) on <self:ADoExpr> */
2166 self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val = var4; /* _break_mark on <self:ADoExpr> */
2167 RET_LABEL5:(void)0;
2168 }
2169 }
2170 {
2171 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
2172 var8 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
2173 var6 = var8;
2174 RET_LABEL7:(void)0;
2175 }
2176 }
2177 {
2178 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
2179 var11 = self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2180 var9 = var11;
2181 RET_LABEL10:(void)0;
2182 }
2183 }
2184 {
2185 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var6, var9); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2186 }
2187 RET_LABEL:;
2188 }
2189 /* method scope#AIfExpr#accept_scope_visitor for (self: AIfExpr, ScopeVisitor) */
2190 void nit__scope___AIfExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2191 val* var_v /* var v: ScopeVisitor */;
2192 val* var /* : AExpr */;
2193 val* var2 /* : AExpr */;
2194 val* var3 /* : nullable AExpr */;
2195 val* var5 /* : nullable AExpr */;
2196 val* var6 /* : null */;
2197 val* var7 /* : nullable AExpr */;
2198 val* var9 /* : nullable AExpr */;
2199 val* var10 /* : null */;
2200 var_v = p0;
2201 {
2202 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
2203 var2 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
2204 if (unlikely(var2 == NULL)) {
2205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1664);
2207 show_backtrace(1);
2208 }
2209 var = var2;
2210 RET_LABEL1:(void)0;
2211 }
2212 }
2213 {
2214 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2215 }
2216 {
2217 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2218 var5 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2219 var3 = var5;
2220 RET_LABEL4:(void)0;
2221 }
2222 }
2223 var6 = NULL;
2224 {
2225 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var3, var6); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2226 }
2227 {
2228 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2229 var9 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
2230 var7 = var9;
2231 RET_LABEL8:(void)0;
2232 }
2233 }
2234 var10 = NULL;
2235 {
2236 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var7, var10); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2237 }
2238 RET_LABEL:;
2239 }
2240 /* method scope#AWhileExpr#break_mark for (self: AWhileExpr): nullable EscapeMark */
2241 val* nit__scope___AWhileExpr___break_mark(val* self) {
2242 val* var /* : nullable EscapeMark */;
2243 val* var1 /* : nullable EscapeMark */;
2244 var1 = self->attrs[COLOR_nit__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
2245 var = var1;
2246 RET_LABEL:;
2247 return var;
2248 }
2249 /* method scope#AWhileExpr#break_mark= for (self: AWhileExpr, nullable EscapeMark) */
2250 void nit__scope___AWhileExpr___break_mark_61d(val* self, val* p0) {
2251 self->attrs[COLOR_nit__scope__AWhileExpr___break_mark].val = p0; /* _break_mark on <self:AWhileExpr> */
2252 RET_LABEL:;
2253 }
2254 /* method scope#AWhileExpr#continue_mark for (self: AWhileExpr): nullable EscapeMark */
2255 val* nit__scope___AWhileExpr___continue_mark(val* self) {
2256 val* var /* : nullable EscapeMark */;
2257 val* var1 /* : nullable EscapeMark */;
2258 var1 = self->attrs[COLOR_nit__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
2259 var = var1;
2260 RET_LABEL:;
2261 return var;
2262 }
2263 /* method scope#AWhileExpr#continue_mark= for (self: AWhileExpr, nullable EscapeMark) */
2264 void nit__scope___AWhileExpr___continue_mark_61d(val* self, val* p0) {
2265 self->attrs[COLOR_nit__scope__AWhileExpr___continue_mark].val = p0; /* _continue_mark on <self:AWhileExpr> */
2266 RET_LABEL:;
2267 }
2268 /* method scope#AWhileExpr#accept_scope_visitor for (self: AWhileExpr, ScopeVisitor) */
2269 void nit__scope___AWhileExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2270 val* var_v /* var v: ScopeVisitor */;
2271 val* var /* : nullable ALabel */;
2272 val* var2 /* : nullable ALabel */;
2273 short int var3 /* : Bool */;
2274 val* var4 /* : EscapeMark */;
2275 val* var_escapemark /* var escapemark: EscapeMark */;
2276 val* var6 /* : nullable EscapeMark */;
2277 val* var8 /* : nullable EscapeMark */;
2278 val* var10 /* : AExpr */;
2279 val* var12 /* : AExpr */;
2280 val* var13 /* : nullable AExpr */;
2281 val* var15 /* : nullable AExpr */;
2282 var_v = p0;
2283 {
2284 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AWhileExpr> */
2285 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
2286 var = var2;
2287 RET_LABEL1:(void)0;
2288 }
2289 }
2290 var3 = 1;
2291 {
2292 var4 = nit__scope___nit__scope__ScopeVisitor___make_escape_mark(var_v, var, var3);
2293 }
2294 var_escapemark = var4;
2295 {
2296 { /* Inline scope#AWhileExpr#break_mark= (self,var_escapemark) on <self:AWhileExpr> */
2297 self->attrs[COLOR_nit__scope__AWhileExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AWhileExpr> */
2298 RET_LABEL5:(void)0;
2299 }
2300 }
2301 {
2302 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2303 var8 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2304 var6 = var8;
2305 RET_LABEL7:(void)0;
2306 }
2307 }
2308 {
2309 { /* Inline scope#AWhileExpr#continue_mark= (self,var6) on <self:AWhileExpr> */
2310 self->attrs[COLOR_nit__scope__AWhileExpr___continue_mark].val = var6; /* _continue_mark on <self:AWhileExpr> */
2311 RET_LABEL9:(void)0;
2312 }
2313 }
2314 {
2315 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2316 var12 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
2317 if (unlikely(var12 == NULL)) {
2318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1705);
2320 show_backtrace(1);
2321 }
2322 var10 = var12;
2323 RET_LABEL11:(void)0;
2324 }
2325 }
2326 {
2327 nit___nit__Visitor___enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2328 }
2329 {
2330 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2331 var15 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
2332 var13 = var15;
2333 RET_LABEL14:(void)0;
2334 }
2335 }
2336 {
2337 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var13, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2338 }
2339 RET_LABEL:;
2340 }
2341 /* method scope#ALoopExpr#break_mark for (self: ALoopExpr): nullable EscapeMark */
2342 val* nit__scope___ALoopExpr___break_mark(val* self) {
2343 val* var /* : nullable EscapeMark */;
2344 val* var1 /* : nullable EscapeMark */;
2345 var1 = self->attrs[COLOR_nit__scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
2346 var = var1;
2347 RET_LABEL:;
2348 return var;
2349 }
2350 /* method scope#ALoopExpr#break_mark= for (self: ALoopExpr, nullable EscapeMark) */
2351 void nit__scope___ALoopExpr___break_mark_61d(val* self, val* p0) {
2352 self->attrs[COLOR_nit__scope__ALoopExpr___break_mark].val = p0; /* _break_mark on <self:ALoopExpr> */
2353 RET_LABEL:;
2354 }
2355 /* method scope#ALoopExpr#continue_mark for (self: ALoopExpr): nullable EscapeMark */
2356 val* nit__scope___ALoopExpr___continue_mark(val* self) {
2357 val* var /* : nullable EscapeMark */;
2358 val* var1 /* : nullable EscapeMark */;
2359 var1 = self->attrs[COLOR_nit__scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
2360 var = var1;
2361 RET_LABEL:;
2362 return var;
2363 }
2364 /* method scope#ALoopExpr#continue_mark= for (self: ALoopExpr, nullable EscapeMark) */
2365 void nit__scope___ALoopExpr___continue_mark_61d(val* self, val* p0) {
2366 self->attrs[COLOR_nit__scope__ALoopExpr___continue_mark].val = p0; /* _continue_mark on <self:ALoopExpr> */
2367 RET_LABEL:;
2368 }
2369 /* method scope#ALoopExpr#accept_scope_visitor for (self: ALoopExpr, ScopeVisitor) */
2370 void nit__scope___ALoopExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2371 val* var_v /* var v: ScopeVisitor */;
2372 val* var /* : nullable ALabel */;
2373 val* var2 /* : nullable ALabel */;
2374 short int var3 /* : Bool */;
2375 val* var4 /* : EscapeMark */;
2376 val* var_escapemark /* var escapemark: EscapeMark */;
2377 val* var6 /* : nullable EscapeMark */;
2378 val* var8 /* : nullable EscapeMark */;
2379 val* var10 /* : nullable AExpr */;
2380 val* var12 /* : nullable AExpr */;
2381 var_v = p0;
2382 {
2383 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ALoopExpr> */
2384 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
2385 var = var2;
2386 RET_LABEL1:(void)0;
2387 }
2388 }
2389 var3 = 1;
2390 {
2391 var4 = nit__scope___nit__scope__ScopeVisitor___make_escape_mark(var_v, var, var3);
2392 }
2393 var_escapemark = var4;
2394 {
2395 { /* Inline scope#ALoopExpr#break_mark= (self,var_escapemark) on <self:ALoopExpr> */
2396 self->attrs[COLOR_nit__scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on <self:ALoopExpr> */
2397 RET_LABEL5:(void)0;
2398 }
2399 }
2400 {
2401 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2402 var8 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2403 var6 = var8;
2404 RET_LABEL7:(void)0;
2405 }
2406 }
2407 {
2408 { /* Inline scope#ALoopExpr#continue_mark= (self,var6) on <self:ALoopExpr> */
2409 self->attrs[COLOR_nit__scope__ALoopExpr___continue_mark].val = var6; /* _continue_mark on <self:ALoopExpr> */
2410 RET_LABEL9:(void)0;
2411 }
2412 }
2413 {
2414 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2415 var12 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
2416 var10 = var12;
2417 RET_LABEL11:(void)0;
2418 }
2419 }
2420 {
2421 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var10, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2422 }
2423 RET_LABEL:;
2424 }
2425 /* method scope#AForExpr#variables for (self: AForExpr): nullable Array[Variable] */
2426 val* nit__scope___AForExpr___variables(val* self) {
2427 val* var /* : nullable Array[Variable] */;
2428 val* var1 /* : nullable Array[Variable] */;
2429 var1 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on <self:AForExpr> */
2430 var = var1;
2431 RET_LABEL:;
2432 return var;
2433 }
2434 /* method scope#AForExpr#variables= for (self: AForExpr, nullable Array[Variable]) */
2435 void nit__scope___AForExpr___variables_61d(val* self, val* p0) {
2436 self->attrs[COLOR_nit__scope__AForExpr___variables].val = p0; /* _variables on <self:AForExpr> */
2437 RET_LABEL:;
2438 }
2439 /* method scope#AForExpr#break_mark for (self: AForExpr): nullable EscapeMark */
2440 val* nit__scope___AForExpr___break_mark(val* self) {
2441 val* var /* : nullable EscapeMark */;
2442 val* var1 /* : nullable EscapeMark */;
2443 var1 = self->attrs[COLOR_nit__scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
2444 var = var1;
2445 RET_LABEL:;
2446 return var;
2447 }
2448 /* method scope#AForExpr#break_mark= for (self: AForExpr, nullable EscapeMark) */
2449 void nit__scope___AForExpr___break_mark_61d(val* self, val* p0) {
2450 self->attrs[COLOR_nit__scope__AForExpr___break_mark].val = p0; /* _break_mark on <self:AForExpr> */
2451 RET_LABEL:;
2452 }
2453 /* method scope#AForExpr#continue_mark for (self: AForExpr): nullable EscapeMark */
2454 val* nit__scope___AForExpr___continue_mark(val* self) {
2455 val* var /* : nullable EscapeMark */;
2456 val* var1 /* : nullable EscapeMark */;
2457 var1 = self->attrs[COLOR_nit__scope__AForExpr___continue_mark].val; /* _continue_mark on <self:AForExpr> */
2458 var = var1;
2459 RET_LABEL:;
2460 return var;
2461 }
2462 /* method scope#AForExpr#continue_mark= for (self: AForExpr, nullable EscapeMark) */
2463 void nit__scope___AForExpr___continue_mark_61d(val* self, val* p0) {
2464 self->attrs[COLOR_nit__scope__AForExpr___continue_mark].val = p0; /* _continue_mark on <self:AForExpr> */
2465 RET_LABEL:;
2466 }
2467 /* method scope#AForExpr#accept_scope_visitor for (self: AForExpr, ScopeVisitor) */
2468 void nit__scope___AForExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2469 val* var_v /* var v: ScopeVisitor */;
2470 val* var /* : AExpr */;
2471 val* var2 /* : AExpr */;
2472 val* var3 /* : List[Scope] */;
2473 val* var5 /* : List[Scope] */;
2474 val* var6 /* : Scope */;
2475 val* var8 /* : Array[Variable] */;
2476 val* var_variables /* var variables: Array[Variable] */;
2477 val* var10 /* : ANodes[TId] */;
2478 val* var12 /* : ANodes[TId] */;
2479 val* var_ /* var : ANodes[TId] */;
2480 val* var13 /* : Iterator[ANode] */;
2481 val* var_14 /* var : Iterator[TId] */;
2482 short int var15 /* : Bool */;
2483 val* var16 /* : nullable Object */;
2484 val* var_nid /* var nid: TId */;
2485 val* var17 /* : Variable */;
2486 val* var18 /* : String */;
2487 val* var_va /* var va: Variable */;
2488 short int var19 /* : Bool */;
2489 val* var21 /* : nullable ALabel */;
2490 val* var23 /* : nullable ALabel */;
2491 short int var24 /* : Bool */;
2492 val* var25 /* : EscapeMark */;
2493 val* var_escapemark /* var escapemark: EscapeMark */;
2494 val* var27 /* : nullable EscapeMark */;
2495 val* var29 /* : nullable EscapeMark */;
2496 val* var31 /* : nullable AExpr */;
2497 val* var33 /* : nullable AExpr */;
2498 var_v = p0;
2499 {
2500 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
2501 var2 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
2502 if (unlikely(var2 == NULL)) {
2503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1738);
2505 show_backtrace(1);
2506 }
2507 var = var2;
2508 RET_LABEL1:(void)0;
2509 }
2510 }
2511 {
2512 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2513 }
2514 {
2515 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
2516 var5 = var_v->attrs[COLOR_nit__scope__ScopeVisitor___scopes].val; /* _scopes on <var_v:ScopeVisitor> */
2517 if (unlikely(var5 == NULL)) {
2518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
2519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 80);
2520 show_backtrace(1);
2521 }
2522 var3 = var5;
2523 RET_LABEL4:(void)0;
2524 }
2525 }
2526 var6 = NEW_nit__scope__Scope(&type_nit__scope__Scope);
2527 {
2528 { /* Inline kernel#Object#init (var6) on <var6:Scope> */
2529 RET_LABEL7:(void)0;
2530 }
2531 }
2532 {
2533 standard___standard__List___standard__abstract_collection__Sequence__unshift(var3, var6); /* Direct call list#List#unshift on <var3:List[Scope]>*/
2534 }
2535 var8 = NEW_standard__Array(&type_standard__Array__nit__Variable);
2536 {
2537 standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on <var8:Array[Variable]>*/
2538 }
2539 var_variables = var8;
2540 {
2541 { /* Inline scope#AForExpr#variables= (self,var_variables) on <self:AForExpr> */
2542 self->attrs[COLOR_nit__scope__AForExpr___variables].val = var_variables; /* _variables on <self:AForExpr> */
2543 RET_LABEL9:(void)0;
2544 }
2545 }
2546 {
2547 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
2548 var12 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
2549 if (unlikely(var12 == NULL)) {
2550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
2551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1735);
2552 show_backtrace(1);
2553 }
2554 var10 = var12;
2555 RET_LABEL11:(void)0;
2556 }
2557 }
2558 var_ = var10;
2559 {
2560 var13 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
2561 }
2562 var_14 = var13;
2563 for(;;) {
2564 {
2565 var15 = ((short int (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_14) /* is_ok on <var_14:Iterator[TId]>*/;
2566 }
2567 if (var15){
2568 {
2569 var16 = ((val* (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_14) /* item on <var_14:Iterator[TId]>*/;
2570 }
2571 var_nid = var16;
2572 var17 = NEW_nit__Variable(&type_nit__Variable);
2573 {
2574 var18 = nit__lexer_work___Token___text(var_nid);
2575 }
2576 {
2577 ((void (*)(val* self, val* p0))(var17->class->vft[COLOR_nit__scope__Variable__name_61d]))(var17, var18) /* name= on <var17:Variable>*/;
2578 }
2579 {
2580 ((void (*)(val* self))(var17->class->vft[COLOR_standard__kernel__Object__init]))(var17) /* init on <var17:Variable>*/;
2581 }
2582 var_va = var17;
2583 {
2584 var19 = nit__scope___nit__scope__ScopeVisitor___register_variable(var_v, var_nid, var_va);
2585 }
2586 {
2587 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_variables, var_va); /* Direct call array#Array#add on <var_variables:Array[Variable]>*/
2588 }
2589 {
2590 ((void (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_14) /* next on <var_14:Iterator[TId]>*/;
2591 }
2592 } else {
2593 goto BREAK_label;
2594 }
2595 }
2596 BREAK_label: (void)0;
2597 {
2598 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:Iterator[TId]> */
2599 RET_LABEL20:(void)0;
2600 }
2601 }
2602 {
2603 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AForExpr> */
2604 var23 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
2605 var21 = var23;
2606 RET_LABEL22:(void)0;
2607 }
2608 }
2609 var24 = 1;
2610 {
2611 var25 = nit__scope___nit__scope__ScopeVisitor___make_escape_mark(var_v, var21, var24);
2612 }
2613 var_escapemark = var25;
2614 {
2615 { /* Inline scope#AForExpr#break_mark= (self,var_escapemark) on <self:AForExpr> */
2616 self->attrs[COLOR_nit__scope__AForExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AForExpr> */
2617 RET_LABEL26:(void)0;
2618 }
2619 }
2620 {
2621 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2622 var29 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2623 var27 = var29;
2624 RET_LABEL28:(void)0;
2625 }
2626 }
2627 {
2628 { /* Inline scope#AForExpr#continue_mark= (self,var27) on <self:AForExpr> */
2629 self->attrs[COLOR_nit__scope__AForExpr___continue_mark].val = var27; /* _continue_mark on <self:AForExpr> */
2630 RET_LABEL30:(void)0;
2631 }
2632 }
2633 {
2634 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
2635 var33 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
2636 var31 = var33;
2637 RET_LABEL32:(void)0;
2638 }
2639 }
2640 {
2641 nit__scope___nit__scope__ScopeVisitor___enter_visit_block(var_v, var31, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2642 }
2643 {
2644 nit__scope___nit__scope__ScopeVisitor___shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
2645 }
2646 RET_LABEL:;
2647 }
2648 /* method scope#AVarFormExpr#variable for (self: AVarFormExpr): nullable Variable */
2649 val* nit__scope___AVarFormExpr___variable(val* self) {
2650 val* var /* : nullable Variable */;
2651 val* var1 /* : nullable Variable */;
2652 var1 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarFormExpr> */
2653 var = var1;
2654 RET_LABEL:;
2655 return var;
2656 }
2657 /* method scope#AVarFormExpr#variable= for (self: AVarFormExpr, nullable Variable) */
2658 void nit__scope___AVarFormExpr___variable_61d(val* self, val* p0) {
2659 self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = p0; /* _variable on <self:AVarFormExpr> */
2660 RET_LABEL:;
2661 }
2662 /* method scope#ACallFormExpr#accept_scope_visitor for (self: ACallFormExpr, ScopeVisitor) */
2663 void nit__scope___ACallFormExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2664 val* var_v /* var v: ScopeVisitor */;
2665 val* var /* : AExpr */;
2666 val* var2 /* : AExpr */;
2667 short int var3 /* : Bool */;
2668 int cltype;
2669 int idtype;
2670 val* var4 /* : TId */;
2671 val* var6 /* : TId */;
2672 val* var7 /* : String */;
2673 val* var_name /* var name: String */;
2674 val* var8 /* : nullable Variable */;
2675 val* var_variable /* var variable: nullable Variable */;
2676 val* var9 /* : null */;
2677 short int var10 /* : Bool */;
2678 short int var11 /* : Bool */;
2679 val* var_other /* var other: nullable Object */;
2680 short int var13 /* : Bool */;
2681 short int var14 /* : Bool */;
2682 short int var15 /* : Bool */;
2683 val* var16 /* : AExprs */;
2684 val* var18 /* : AExprs */;
2685 val* var19 /* : ANodes[AExpr] */;
2686 val* var21 /* : ANodes[AExpr] */;
2687 short int var22 /* : Bool */;
2688 short int var23 /* : Bool */;
2689 short int var_ /* var : Bool */;
2690 val* var24 /* : AExprs */;
2691 val* var26 /* : AExprs */;
2692 short int var27 /* : Bool */;
2693 int cltype28;
2694 int idtype29;
2695 static val* varonce;
2696 val* var30 /* : String */;
2697 char* var31 /* : NativeString */;
2698 long var32 /* : Int */;
2699 val* var33 /* : FlatString */;
2700 static val* varonce34;
2701 val* var35 /* : String */;
2702 char* var36 /* : NativeString */;
2703 long var37 /* : Int */;
2704 val* var38 /* : FlatString */;
2705 val* var39 /* : Array[Object] */;
2706 long var40 /* : Int */;
2707 val* var41 /* : NativeArray[Object] */;
2708 val* var42 /* : String */;
2709 val* var43 /* : AVarFormExpr */;
2710 val* var_n /* var n: AExpr */;
2711 var_v = p0;
2712 {
2713 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ACallFormExpr> */
2714 var2 = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallFormExpr> */
2715 if (unlikely(var2 == NULL)) {
2716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2717 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1802);
2718 show_backtrace(1);
2719 }
2720 var = var2;
2721 RET_LABEL1:(void)0;
2722 }
2723 }
2724 /* <var:AExpr> isa AImplicitSelfExpr */
2725 cltype = type_nit__AImplicitSelfExpr.color;
2726 idtype = type_nit__AImplicitSelfExpr.id;
2727 if(cltype >= var->type->table_size) {
2728 var3 = 0;
2729 } else {
2730 var3 = var->type->type_table[cltype] == idtype;
2731 }
2732 if (var3){
2733 {
2734 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallFormExpr> */
2735 var6 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallFormExpr> */
2736 if (unlikely(var6 == NULL)) {
2737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2738 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1999);
2739 show_backtrace(1);
2740 }
2741 var4 = var6;
2742 RET_LABEL5:(void)0;
2743 }
2744 }
2745 {
2746 var7 = nit__lexer_work___Token___text(var4);
2747 }
2748 var_name = var7;
2749 {
2750 var8 = nit__scope___nit__scope__ScopeVisitor___search_variable(var_v, var_name);
2751 }
2752 var_variable = var8;
2753 var9 = NULL;
2754 if (var_variable == NULL) {
2755 var10 = 0; /* is null */
2756 } else {
2757 var10 = 1; /* arg is null and recv is not */
2758 }
2759 if (0) {
2760 { /* Inline kernel#Object#!= (var_variable,var9) on <var_variable:nullable Variable> */
2761 var_other = var9;
2762 {
2763 var13 = ((short int (*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other) /* == on <var_variable:nullable Variable(Variable)>*/;
2764 }
2765 var14 = !var13;
2766 var11 = var14;
2767 goto RET_LABEL12;
2768 RET_LABEL12:(void)0;
2769 }
2770 var10 = var11;
2771 }
2772 if (var10){
2773 {
2774 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
2775 var18 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
2776 if (unlikely(var18 == NULL)) {
2777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2778 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2002);
2779 show_backtrace(1);
2780 }
2781 var16 = var18;
2782 RET_LABEL17:(void)0;
2783 }
2784 }
2785 {
2786 { /* Inline parser_nodes#AExprs#n_exprs (var16) on <var16:AExprs> */
2787 var21 = var16->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var16:AExprs> */
2788 if (unlikely(var21 == NULL)) {
2789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2790 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408);
2791 show_backtrace(1);
2792 }
2793 var19 = var21;
2794 RET_LABEL20:(void)0;
2795 }
2796 }
2797 {
2798 var22 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var19);
2799 }
2800 var23 = !var22;
2801 var_ = var23;
2802 if (var23){
2803 var15 = var_;
2804 } else {
2805 {
2806 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
2807 var26 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
2808 if (unlikely(var26 == NULL)) {
2809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2002);
2811 show_backtrace(1);
2812 }
2813 var24 = var26;
2814 RET_LABEL25:(void)0;
2815 }
2816 }
2817 /* <var24:AExprs> isa AParExprs */
2818 cltype28 = type_nit__AParExprs.color;
2819 idtype29 = type_nit__AParExprs.id;
2820 if(cltype28 >= var24->type->table_size) {
2821 var27 = 0;
2822 } else {
2823 var27 = var24->type->type_table[cltype28] == idtype29;
2824 }
2825 var15 = var27;
2826 }
2827 if (var15){
2828 if (varonce) {
2829 var30 = varonce;
2830 } else {
2831 var31 = "Error: ";
2832 var32 = 7;
2833 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
2834 var30 = var33;
2835 varonce = var30;
2836 }
2837 if (varonce34) {
2838 var35 = varonce34;
2839 } else {
2840 var36 = " is variable, not a function.";
2841 var37 = 29;
2842 var38 = standard___standard__NativeString___to_s_with_length(var36, var37);
2843 var35 = var38;
2844 varonce34 = var35;
2845 }
2846 var39 = NEW_standard__Array(&type_standard__Array__standard__Object);
2847 { /* var39 = array_instance Array[Object] */
2848 var40 = 3;
2849 var41 = NEW_standard__NativeArray(var40, &type_standard__NativeArray__standard__Object);
2850 ((struct instance_standard__NativeArray*)var41)->values[0] = (val*) var30;
2851 ((struct instance_standard__NativeArray*)var41)->values[1] = (val*) var_name;
2852 ((struct instance_standard__NativeArray*)var41)->values[2] = (val*) var35;
2853 {
2854 ((void (*)(val* self, val* p0, long p1))(var39->class->vft[COLOR_standard__array__Array__with_native]))(var39, var41, var40) /* with_native on <var39:Array[Object]>*/;
2855 }
2856 }
2857 {
2858 var42 = ((val* (*)(val* self))(var39->class->vft[COLOR_standard__string__Object__to_s]))(var39) /* to_s on <var39:Array[Object]>*/;
2859 }
2860 {
2861 nit__scope___nit__scope__ScopeVisitor___error(var_v, self, var42); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2862 }
2863 goto RET_LABEL;
2864 } else {
2865 }
2866 {
2867 var43 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope__ACallFormExpr__variable_create]))(self, var_variable) /* variable_create on <self:ACallFormExpr>*/;
2868 }
2869 var_n = var43;
2870 {
2871 { /* Inline scope#AVarFormExpr#variable= (var_n,var_variable) on <var_n:AExpr(AVarFormExpr)> */
2872 var_n->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = var_variable; /* _variable on <var_n:AExpr(AVarFormExpr)> */
2873 RET_LABEL44:(void)0;
2874 }
2875 }
2876 {
2877 nit___nit__Prod___ANode__replace_with(self, var_n); /* Direct call parser_nodes#Prod#replace_with on <self:ACallFormExpr>*/
2878 }
2879 {
2880 nit__scope___ANode___accept_scope_visitor(var_n, var_v); /* Direct call scope#ANode#accept_scope_visitor on <var_n:AExpr(AVarFormExpr)>*/
2881 }
2882 goto RET_LABEL;
2883 } else {
2884 }
2885 } else {
2886 }
2887 {
2888 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__scope___ACallFormExpr___ANode__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ACallFormExpr>*/;
2889 }
2890 RET_LABEL:;
2891 }
2892 /* method scope#ACallExpr#variable_create for (self: ACallExpr, Variable): AVarFormExpr */
2893 val* nit__scope___ACallExpr___ACallFormExpr__variable_create(val* self, val* p0) {
2894 val* var /* : AVarFormExpr */;
2895 val* var_variable /* var variable: Variable */;
2896 short int var1 /* : Bool */;
2897 val* var3 /* : AVarExpr */;
2898 val* var4 /* : TId */;
2899 val* var6 /* : TId */;
2900 var_variable = p0;
2901 var1 = 0;
2902 {
2903 { /* Inline scope#Variable#warn_unread= (var_variable,var1) on <var_variable:Variable> */
2904 var_variable->attrs[COLOR_nit__scope__Variable___warn_unread].s = var1; /* _warn_unread on <var_variable:Variable> */
2905 RET_LABEL2:(void)0;
2906 }
2907 }
2908 var3 = NEW_nit__AVarExpr(&type_nit__AVarExpr);
2909 {
2910 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallExpr> */
2911 var6 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
2912 if (unlikely(var6 == NULL)) {
2913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2914 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1999);
2915 show_backtrace(1);
2916 }
2917 var4 = var6;
2918 RET_LABEL5:(void)0;
2919 }
2920 }
2921 {
2922 nit__parser_prod___AVarExpr___init_avarexpr(var3, var4); /* Direct call parser_prod#AVarExpr#init_avarexpr on <var3:AVarExpr>*/
2923 }
2924 var = var3;
2925 goto RET_LABEL;
2926 RET_LABEL:;
2927 return var;
2928 }
2929 /* method scope#ACallAssignExpr#variable_create for (self: ACallAssignExpr, Variable): AVarFormExpr */
2930 val* nit__scope___ACallAssignExpr___ACallFormExpr__variable_create(val* self, val* p0) {
2931 val* var /* : AVarFormExpr */;
2932 val* var_variable /* var variable: Variable */;
2933 val* var1 /* : AVarAssignExpr */;
2934 val* var2 /* : TId */;
2935 val* var4 /* : TId */;
2936 val* var5 /* : TAssign */;
2937 val* var7 /* : TAssign */;
2938 val* var8 /* : AExpr */;
2939 val* var10 /* : AExpr */;
2940 var_variable = p0;
2941 var1 = NEW_nit__AVarAssignExpr(&type_nit__AVarAssignExpr);
2942 {
2943 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallAssignExpr> */
2944 var4 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
2945 if (unlikely(var4 == NULL)) {
2946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2947 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1999);
2948 show_backtrace(1);
2949 }
2950 var2 = var4;
2951 RET_LABEL3:(void)0;
2952 }
2953 }
2954 {
2955 { /* Inline parser_nodes#AAssignFormExpr#n_assign (self) on <self:ACallAssignExpr> */
2956 var7 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
2957 if (unlikely(var7 == NULL)) {
2958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
2959 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1769);
2960 show_backtrace(1);
2961 }
2962 var5 = var7;
2963 RET_LABEL6:(void)0;
2964 }
2965 }
2966 {
2967 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:ACallAssignExpr> */
2968 var10 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
2969 if (unlikely(var10 == NULL)) {
2970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2971 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1772);
2972 show_backtrace(1);
2973 }
2974 var8 = var10;
2975 RET_LABEL9:(void)0;
2976 }
2977 }
2978 {
2979 nit__parser_prod___AVarAssignExpr___init_avarassignexpr(var1, var2, var5, var8); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <var1:AVarAssignExpr>*/
2980 }
2981 var = var1;
2982 goto RET_LABEL;
2983 RET_LABEL:;
2984 return var;
2985 }
2986 /* method scope#ACallReassignExpr#variable_create for (self: ACallReassignExpr, Variable): AVarFormExpr */
2987 val* nit__scope___ACallReassignExpr___ACallFormExpr__variable_create(val* self, val* p0) {
2988 val* var /* : AVarFormExpr */;
2989 val* var_variable /* var variable: Variable */;
2990 short int var1 /* : Bool */;
2991 val* var3 /* : AVarReassignExpr */;
2992 val* var4 /* : TId */;
2993 val* var6 /* : TId */;
2994 val* var7 /* : AAssignOp */;
2995 val* var9 /* : AAssignOp */;
2996 val* var10 /* : AExpr */;
2997 val* var12 /* : AExpr */;
2998 var_variable = p0;
2999 var1 = 0;
3000 {
3001 { /* Inline scope#Variable#warn_unread= (var_variable,var1) on <var_variable:Variable> */
3002 var_variable->attrs[COLOR_nit__scope__Variable___warn_unread].s = var1; /* _warn_unread on <var_variable:Variable> */
3003 RET_LABEL2:(void)0;
3004 }
3005 }
3006 var3 = NEW_nit__AVarReassignExpr(&type_nit__AVarReassignExpr);
3007 {
3008 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallReassignExpr> */
3009 var6 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
3010 if (unlikely(var6 == NULL)) {
3011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3012 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1999);
3013 show_backtrace(1);
3014 }
3015 var4 = var6;
3016 RET_LABEL5:(void)0;
3017 }
3018 }
3019 {
3020 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:ACallReassignExpr> */
3021 var9 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
3022 if (unlikely(var9 == NULL)) {
3023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
3024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1780);
3025 show_backtrace(1);
3026 }
3027 var7 = var9;
3028 RET_LABEL8:(void)0;
3029 }
3030 }
3031 {
3032 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ACallReassignExpr> */
3033 var12 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
3034 if (unlikely(var12 == NULL)) {
3035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3036 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1783);
3037 show_backtrace(1);
3038 }
3039 var10 = var12;
3040 RET_LABEL11:(void)0;
3041 }
3042 }
3043 {
3044 nit__parser_prod___AVarReassignExpr___init_avarreassignexpr(var3, var4, var7, var10); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <var3:AVarReassignExpr>*/
3045 }
3046 var = var3;
3047 goto RET_LABEL;
3048 RET_LABEL:;
3049 return var;
3050 }