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