NOTICE: Update author list and years
[nit.git] / c_src / nitc__scope.sep.1.c
1 #include "nitc__scope.sep.0.h"
2 /* method scope#ToolContext#scope_phase for (self: ToolContext): Phase */
3 val* nitc__scope___ToolContext___scope_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 24);
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 nitc__scope___nitc__scope__ScopePhase___nitc__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_nitc__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_nitc__phase, 200);
28 fatal_exit(1);
29 }
30 var = var2;
31 RET_LABEL1:(void)0;
32 }
33 }
34 {
35 nitc__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* nitc___nitc__Variable___name(val* self) {
41 val* var /* : String */;
42 val* var1 /* : String */;
43 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 36);
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 nitc___nitc__Variable___name_61d(val* self, val* p0) {
55 self->attrs[COLOR_nitc__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* nitc___nitc__Variable___core__abstract_text__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_nitc__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_nitc__scope, 36);
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* nitc___nitc__Variable___location(val* self) {
82 val* var /* : nullable Location */;
83 val* var1 /* : nullable Location */;
84 var1 = self->attrs[COLOR_nitc__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 nitc___nitc__Variable___location_61d(val* self, val* p0) {
91 self->attrs[COLOR_nitc__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 nitc___nitc__Variable___warn_unread(val* self) {
96 short int var /* : Bool */;
97 short int var1 /* : Bool */;
98 var1 = self->attrs[COLOR_nitc__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 nitc___nitc__Variable___warn_unread_61d(val* self, short int p0) {
105 self->attrs[COLOR_nitc__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 nitc___nitc__Variable___core__kernel__Object__init(val* self) {
110 {
111 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__Variable___core__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* nitc___nitc__EscapeMark___name(val* self) {
117 val* var /* : nullable String */;
118 val* var1 /* : nullable String */;
119 var1 = self->attrs[COLOR_nitc__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 nitc___nitc__EscapeMark___name_61d(val* self, val* p0) {
126 self->attrs[COLOR_nitc__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* nitc___nitc__EscapeMark___continue_mark(val* self) {
131 val* var /* : nullable EscapeMark */;
132 val* var1 /* : nullable EscapeMark */;
133 var1 = self->attrs[COLOR_nitc__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 nitc___nitc__EscapeMark___continue_mark_61d(val* self, val* p0) {
140 self->attrs[COLOR_nitc__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* nitc___nitc__EscapeMark___escapes(val* self) {
145 val* var /* : Array[AEscapeExpr] */;
146 val* var1 /* : Array[AEscapeExpr] */;
147 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 59);
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 nitc___nitc__EscapeMark___core__kernel__Object__init(val* self) {
159 {
160 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__EscapeMark___core__kernel__Object__init]))(self); /* init on <self:EscapeMark>*/
161 }
162 RET_LABEL:;
163 }
164 /* method scope#ScopeVisitor#toolcontext for (self: ScopeVisitor): ToolContext */
165 val* nitc__scope___nitc__scope__ScopeVisitor___toolcontext(val* self) {
166 val* var /* : ToolContext */;
167 val* var1 /* : ToolContext */;
168 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 71);
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 nitc__scope___nitc__scope__ScopeVisitor___toolcontext_61d(val* self, val* p0) {
180 self->attrs[COLOR_nitc__scope__ScopeVisitor___toolcontext].val = p0; /* _toolcontext on <self:ScopeVisitor> */
181 RET_LABEL:;
182 }
183 /* method scope#ScopeVisitor#selfvariable for (self: ScopeVisitor): Variable */
184 val* nitc__scope___nitc__scope__ScopeVisitor___selfvariable(val* self) {
185 val* var /* : Variable */;
186 val* var1 /* : Variable */;
187 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 74);
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 nitc__scope___nitc__scope__ScopeVisitor___core__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_nitc__scope___nitc__scope__ScopeVisitor___core__kernel__Object__init]))(self); /* init on <self:ScopeVisitor>*/
204 }
205 {
206 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
207 var2 = self->attrs[COLOR_nitc__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_nitc__scope, 81);
211 fatal_exit(1);
212 }
213 var = var2;
214 RET_LABEL1:(void)0;
215 }
216 }
217 var3 = NEW_nitc__scope__Scope(&type_nitc__scope__Scope);
218 {
219 { /* Inline kernel#Object#init (var3) on <var3:Scope> */
220 RET_LABEL4:(void)0;
221 }
222 }
223 {
224 core___core__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* nitc__scope___nitc__scope__ScopeVisitor___scopes(val* self) {
230 val* var /* : List[Scope] */;
231 val* var1 /* : List[Scope] */;
232 var1 = self->attrs[COLOR_nitc__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_nitc__scope, 81);
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 nitc__scope___nitc__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 /* : String */;
271 val* var30 /* : NativeArray[String] */;
272 static val* varonce29;
273 static val* varonce31;
274 val* var32 /* : String */;
275 char* var33 /* : NativeString */;
276 val* var34 /* : String */;
277 static val* varonce35;
278 val* var36 /* : String */;
279 char* var37 /* : NativeString */;
280 val* var38 /* : String */;
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_nitc__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_nitc__scope, 81);
291 fatal_exit(1);
292 }
293 var = var2;
294 RET_LABEL1:(void)0;
295 }
296 }
297 {
298 var3 = core___core__List___core__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_nitc__scope, 87);
304 fatal_exit(1);
305 }
306 {
307 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
308 var7 = self->attrs[COLOR_nitc__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_nitc__scope, 81);
312 fatal_exit(1);
313 }
314 var5 = var7;
315 RET_LABEL6:(void)0;
316 }
317 }
318 {
319 var8 = core___core__List___core__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_nitc__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_nitc__scope, 229);
328 fatal_exit(1);
329 }
330 var9 = var11;
331 RET_LABEL10:(void)0;
332 }
333 }
334 {
335 var12 = core___core__HashMap___core__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_core__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_core__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on <var_14:Iterator[Variable]>*/
345 }
346 if (var15){
347 } else {
348 goto BREAK_label;
349 }
350 {
351 var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_14); /* item on <var_14:Iterator[Variable]>*/
352 }
353 var_v = var16;
354 {
355 { /* Inline scope#Variable#warn_unread (var_v) on <var_v:Variable> */
356 var19 = var_v->attrs[COLOR_nitc__scope__Variable___warn_unread].s; /* _warn_unread on <var_v:Variable> */
357 var17 = var19;
358 RET_LABEL18:(void)0;
359 }
360 }
361 if (var17){
362 {
363 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
364 var22 = self->attrs[COLOR_nitc__scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
365 if (unlikely(var22 == NULL)) {
366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 71);
368 fatal_exit(1);
369 }
370 var20 = var22;
371 RET_LABEL21:(void)0;
372 }
373 }
374 {
375 { /* Inline scope#Variable#location (var_v) on <var_v:Variable> */
376 var25 = var_v->attrs[COLOR_nitc__scope__Variable___location].val; /* _location on <var_v:Variable> */
377 var23 = var25;
378 RET_LABEL24:(void)0;
379 }
380 }
381 if (likely(varonce!=NULL)) {
382 var26 = varonce;
383 } else {
384 var27 = "unread-variable";
385 var28 = core__flat___NativeString___to_s_full(var27, 15l, 15l);
386 var26 = var28;
387 varonce = var26;
388 }
389 if (unlikely(varonce29==NULL)) {
390 var30 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
391 if (likely(varonce31!=NULL)) {
392 var32 = varonce31;
393 } else {
394 var33 = "Warning: local variable ";
395 var34 = core__flat___NativeString___to_s_full(var33, 24l, 24l);
396 var32 = var34;
397 varonce31 = var32;
398 }
399 ((struct instance_core__NativeArray*)var30)->values[0]=var32;
400 if (likely(varonce35!=NULL)) {
401 var36 = varonce35;
402 } else {
403 var37 = " is never read.";
404 var38 = core__flat___NativeString___to_s_full(var37, 15l, 15l);
405 var36 = var38;
406 varonce35 = var36;
407 }
408 ((struct instance_core__NativeArray*)var30)->values[2]=var36;
409 } else {
410 var30 = varonce29;
411 varonce29 = NULL;
412 }
413 {
414 { /* Inline scope#Variable#name (var_v) on <var_v:Variable> */
415 var41 = var_v->attrs[COLOR_nitc__scope__Variable___name].val; /* _name on <var_v:Variable> */
416 if (unlikely(var41 == NULL)) {
417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 36);
419 fatal_exit(1);
420 }
421 var39 = var41;
422 RET_LABEL40:(void)0;
423 }
424 }
425 ((struct instance_core__NativeArray*)var30)->values[1]=var39;
426 {
427 var42 = ((val*(*)(val* self))(var30->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var30); /* native_to_s on <var30:NativeArray[String]>*/
428 }
429 varonce29 = var30;
430 {
431 var43 = nitc___nitc__ToolContext___advice(var20, var23, var26, var42);
432 }
433 } else {
434 }
435 {
436 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_14); /* next on <var_14:Iterator[Variable]>*/
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_core__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 nitc__scope___nitc__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 /* : String */;
466 static val* varonce15;
467 val* var16 /* : String */;
468 char* var17 /* : NativeString */;
469 val* var18 /* : String */;
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_nitc__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_nitc__scope, 36);
486 fatal_exit(1);
487 }
488 var1 = var3;
489 RET_LABEL2:(void)0;
490 }
491 }
492 var_name = var1;
493 {
494 var4 = nitc__scope___nitc__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_core__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_core__NativeArray(3l, &type_core__NativeArray__core__String);
518 if (likely(varonce11!=NULL)) {
519 var12 = varonce11;
520 } else {
521 var13 = "Error: a variable named `";
522 var14 = core__flat___NativeString___to_s_full(var13, 25l, 25l);
523 var12 = var14;
524 varonce11 = var12;
525 }
526 ((struct instance_core__NativeArray*)var10)->values[0]=var12;
527 if (likely(varonce15!=NULL)) {
528 var16 = varonce15;
529 } else {
530 var17 = "` already exists.";
531 var18 = core__flat___NativeString___to_s_full(var17, 17l, 17l);
532 var16 = var18;
533 varonce15 = var16;
534 }
535 ((struct instance_core__NativeArray*)var10)->values[2]=var16;
536 } else {
537 var10 = varonce;
538 varonce = NULL;
539 }
540 ((struct instance_core__NativeArray*)var10)->values[1]=var_name;
541 {
542 var19 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var10); /* native_to_s on <var10:NativeArray[String]>*/
543 }
544 varonce = var10;
545 {
546 nitc__scope___nitc__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_nitc__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_nitc__scope, 81);
558 fatal_exit(1);
559 }
560 var20 = var22;
561 RET_LABEL21:(void)0;
562 }
563 }
564 {
565 var23 = core___core__List___core__abstract_collection__Collection__first(var20);
566 }
567 {
568 { /* Inline scope#Scope#variables (var23) on <var23:nullable Object(Scope)> */
569 var26 = var23->attrs[COLOR_nitc__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_nitc__scope, 229);
573 fatal_exit(1);
574 }
575 var24 = var26;
576 RET_LABEL25:(void)0;
577 }
578 }
579 {
580 core___core__HashMap___core__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_nitc__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_nitc__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_nitc__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* nitc__scope___nitc__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_nitc__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_nitc__scope, 81);
631 fatal_exit(1);
632 }
633 var1 = var3;
634 RET_LABEL2:(void)0;
635 }
636 }
637 var_ = var1;
638 {
639 var4 = core___core__List___core__abstract_collection__Collection__iterator(var_);
640 }
641 var_5 = var4;
642 for(;;) {
643 {
644 var6 = core___core__ListIterator___core__abstract_collection__Iterator__is_ok(var_5);
645 }
646 if (var6){
647 } else {
648 goto BREAK_label;
649 }
650 {
651 var7 = core___core__ListIterator___core__abstract_collection__Iterator__item(var_5);
652 }
653 var_scope = var7;
654 {
655 var8 = nitc__scope___nitc__scope__Scope___get_variable(var_scope, var_name);
656 }
657 var_res = var8;
658 if (var_res == NULL) {
659 var9 = 0; /* is null */
660 } else {
661 var9 = 1; /* arg is null and recv is not */
662 }
663 if (0) {
664 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable Variable> */
665 var_other = ((val*)NULL);
666 {
667 var12 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable Variable(Variable)>*/
668 }
669 var13 = !var12;
670 var10 = var13;
671 goto RET_LABEL11;
672 RET_LABEL11:(void)0;
673 }
674 var9 = var10;
675 }
676 if (var9){
677 var = var_res;
678 goto RET_LABEL;
679 } else {
680 }
681 {
682 ((void(*)(val* self))(var_5->class->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:ListIterator[Scope]>*/
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 nitc__scope___nitc__scope__ScopeVisitor___nitc__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_nitc__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 nitc__scope___nitc__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_nitc__scope__Scope(&type_nitc__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_nitc__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_nitc__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_nitc__scope, 81);
765 fatal_exit(1);
766 }
767 var9 = var11;
768 RET_LABEL10:(void)0;
769 }
770 }
771 {
772 core___core__List___core__abstract_collection__Sequence__unshift(var9, var_scope); /* Direct call list#List#unshift on <var9:List[Scope]>*/
773 }
774 {
775 nitc___nitc__Visitor___enter_visit(self, var_node); /* Direct call parser_nodes#Visitor#enter_visit on <self:ScopeVisitor>*/
776 }
777 {
778 nitc__scope___nitc__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* nitc__scope___nitc__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_nitc__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_nitc__scope, 81);
815 fatal_exit(1);
816 }
817 var1 = var3;
818 RET_LABEL2:(void)0;
819 }
820 }
821 var_ = var1;
822 {
823 var4 = core___core__List___core__abstract_collection__Collection__iterator(var_);
824 }
825 var_5 = var4;
826 for(;;) {
827 {
828 var6 = core___core__ListIterator___core__abstract_collection__Iterator__is_ok(var_5);
829 }
830 if (var6){
831 } else {
832 goto BREAK_label;
833 }
834 {
835 var7 = core___core__ListIterator___core__abstract_collection__Iterator__item(var_5);
836 }
837 var_scope = var7;
838 {
839 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
840 var10 = var_scope->attrs[COLOR_nitc__scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
841 var8 = var10;
842 RET_LABEL9:(void)0;
843 }
844 }
845 var_res = var8;
846 if (var_res == NULL) {
847 var12 = 0; /* is null */
848 } else {
849 var12 = 1; /* arg is null and recv is not */
850 }
851 if (0) {
852 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable EscapeMark> */
853 var_other = ((val*)NULL);
854 {
855 var15 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable EscapeMark(EscapeMark)>*/
856 }
857 var16 = !var15;
858 var13 = var16;
859 goto RET_LABEL14;
860 RET_LABEL14:(void)0;
861 }
862 var12 = var13;
863 }
864 var_17 = var12;
865 if (var12){
866 {
867 { /* Inline scope#EscapeMark#name (var_res) on <var_res:nullable EscapeMark(EscapeMark)> */
868 var20 = var_res->attrs[COLOR_nitc__scope__EscapeMark___name].val; /* _name on <var_res:nullable EscapeMark(EscapeMark)> */
869 var18 = var20;
870 RET_LABEL19:(void)0;
871 }
872 }
873 if (var18 == NULL) {
874 var21 = 0; /* <var_name:String> cannot be null */
875 } else {
876 var22 = ((short int(*)(val* self, val* p0))(var18->class->vft[COLOR_core__kernel__Object___61d_61d]))(var18, var_name); /* == on <var18:nullable String>*/
877 var21 = var22;
878 }
879 var11 = var21;
880 } else {
881 var11 = var_17;
882 }
883 if (var11){
884 var = var_res;
885 goto RET_LABEL;
886 } else {
887 }
888 {
889 ((void(*)(val* self))(var_5->class->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:ListIterator[Scope]>*/
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* nitc__scope___nitc__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 /* : String */;
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 /* : String */;
935 static val* varonce29;
936 val* var30 /* : String */;
937 char* var31 /* : NativeString */;
938 val* var32 /* : String */;
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 /* : String */;
953 static val* varonce46;
954 val* var47 /* : String */;
955 char* var48 /* : NativeString */;
956 val* var49 /* : String */;
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_core__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_nitc__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 = core__flat___NativeString___to_s_full(var17, 0l, 0l);
1018 var16 = var18;
1019 varonce = var16;
1020 }
1021 {
1022 var19 = nitc__scope___nitc__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_core__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 = core__flat___NativeString___to_s_full(var27, 46l, 46l);
1049 var26 = var28;
1050 varonce25 = var26;
1051 }
1052 {
1053 nitc__scope___nitc__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 = core__flat___NativeString___to_s_full(var31, 0l, 0l);
1062 var30 = var32;
1063 varonce29 = var30;
1064 }
1065 var_name = var30;
1066 } else {
1067 {
1068 var33 = nitc__lexer_work___Token___text(var_nid);
1069 }
1070 var_name = var33;
1071 {
1072 var34 = nitc__scope___nitc__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_core__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_core__NativeArray(3l, &type_core__NativeArray__core__String);
1096 if (likely(varonce42!=NULL)) {
1097 var43 = varonce42;
1098 } else {
1099 var44 = "Syntax Error: label `";
1100 var45 = core__flat___NativeString___to_s_full(var44, 21l, 21l);
1101 var43 = var45;
1102 varonce42 = var43;
1103 }
1104 ((struct instance_core__NativeArray*)var41)->values[0]=var43;
1105 if (likely(varonce46!=NULL)) {
1106 var47 = varonce46;
1107 } else {
1108 var48 = "` already defined.";
1109 var49 = core__flat___NativeString___to_s_full(var48, 18l, 18l);
1110 var47 = var49;
1111 varonce46 = var47;
1112 }
1113 ((struct instance_core__NativeArray*)var41)->values[2]=var47;
1114 } else {
1115 var41 = varonce40;
1116 varonce40 = NULL;
1117 }
1118 ((struct instance_core__NativeArray*)var41)->values[1]=var_name;
1119 {
1120 var50 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
1121 }
1122 varonce40 = var41;
1123 {
1124 nitc__scope___nitc__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_nitc__EscapeMark(&type_nitc__EscapeMark);
1133 {
1134 ((void(*)(val* self, val* p0))(var51->class->vft[COLOR_nitc__scope__EscapeMark__name_61d]))(var51, var_name); /* name= on <var51:EscapeMark>*/
1135 }
1136 {
1137 ((void(*)(val* self))(var51->class->vft[COLOR_core__kernel__Object__init]))(var51); /* init on <var51:EscapeMark>*/
1138 }
1139 var_res52 = var51;
1140 if (var_for_loop){
1141 var53 = NEW_nitc__EscapeMark(&type_nitc__EscapeMark);
1142 {
1143 ((void(*)(val* self, val* p0))(var53->class->vft[COLOR_nitc__scope__EscapeMark__name_61d]))(var53, var_name); /* name= on <var53:EscapeMark>*/
1144 }
1145 {
1146 ((void(*)(val* self))(var53->class->vft[COLOR_core__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_nitc__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* nitc__scope___nitc__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 /* : String */;
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 /* : String */;
1193 val* var31 /* : String */;
1194 val* var_name /* var name: String */;
1195 val* var32 /* : nullable EscapeMark */;
1196 val* var_res33 /* var res: nullable EscapeMark */;
1197 short int var34 /* : Bool */;
1198 short int var35 /* : Bool */;
1199 short int var37 /* : Bool */;
1200 short int var39 /* : Bool */;
1201 val* var41 /* : NativeArray[String] */;
1202 static val* varonce40;
1203 static val* varonce42;
1204 val* var43 /* : String */;
1205 char* var44 /* : NativeString */;
1206 val* var45 /* : String */;
1207 static val* varonce46;
1208 val* var47 /* : String */;
1209 char* var48 /* : NativeString */;
1210 val* var49 /* : String */;
1211 val* var50 /* : String */;
1212 val* var52 /* : List[Scope] */;
1213 val* var54 /* : List[Scope] */;
1214 val* var_ /* var : List[Scope] */;
1215 val* var55 /* : ListIterator[nullable Object] */;
1216 val* var_56 /* var : ListIterator[Scope] */;
1217 short int var57 /* : Bool */;
1218 val* var58 /* : nullable Object */;
1219 val* var_scope /* var scope: Scope */;
1220 val* var59 /* : nullable EscapeMark */;
1221 val* var61 /* : nullable EscapeMark */;
1222 val* var_res62 /* var res: nullable EscapeMark */;
1223 short int var63 /* : Bool */;
1224 short int var64 /* : Bool */;
1225 short int var66 /* : Bool */;
1226 short int var67 /* : Bool */;
1227 static val* varonce69;
1228 val* var70 /* : String */;
1229 char* var71 /* : NativeString */;
1230 val* var72 /* : String */;
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_core__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_nitc__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 = core__flat___NativeString___to_s_full(var17, 0l, 0l);
1288 var16 = var18;
1289 varonce = var16;
1290 }
1291 {
1292 var19 = nitc__scope___nitc__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 = core__flat___NativeString___to_s_full(var28, 38l, 38l);
1323 var27 = var29;
1324 varonce26 = var27;
1325 }
1326 {
1327 nitc__scope___nitc__scope__ScopeVisitor___error(self, var_nlabel, var27); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1328 }
1329 {
1330 { /* Inline modelbuilder_base#ANode#is_broken= (var_node,1) on <var_node:ANode> */
1331 var_node->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_node:ANode> */
1332 RET_LABEL30:(void)0;
1333 }
1334 }
1335 var = ((val*)NULL);
1336 goto RET_LABEL;
1337 } else {
1338 }
1339 var = var_res;
1340 goto RET_LABEL;
1341 } else {
1342 }
1343 {
1344 var31 = nitc__lexer_work___Token___text(var_nid);
1345 }
1346 var_name = var31;
1347 {
1348 var32 = nitc__scope___nitc__scope__ScopeVisitor___search_label(self, var_name);
1349 }
1350 var_res33 = var32;
1351 if (var_res33 == NULL) {
1352 var34 = 1; /* is null */
1353 } else {
1354 var34 = 0; /* arg is null but recv is not */
1355 }
1356 if (0) {
1357 { /* Inline kernel#Object#== (var_res33,((val*)NULL)) on <var_res33:nullable EscapeMark> */
1358 var_other12 = ((val*)NULL);
1359 {
1360 { /* Inline kernel#Object#is_same_instance (var_res33,var_other12) on <var_res33:nullable EscapeMark(EscapeMark)> */
1361 var39 = var_res33 == var_other12;
1362 var37 = var39;
1363 goto RET_LABEL38;
1364 RET_LABEL38:(void)0;
1365 }
1366 }
1367 var35 = var37;
1368 goto RET_LABEL36;
1369 RET_LABEL36:(void)0;
1370 }
1371 var34 = var35;
1372 }
1373 if (var34){
1374 if (unlikely(varonce40==NULL)) {
1375 var41 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
1376 if (likely(varonce42!=NULL)) {
1377 var43 = varonce42;
1378 } else {
1379 var44 = "Syntax Error: invalid label `";
1380 var45 = core__flat___NativeString___to_s_full(var44, 29l, 29l);
1381 var43 = var45;
1382 varonce42 = var43;
1383 }
1384 ((struct instance_core__NativeArray*)var41)->values[0]=var43;
1385 if (likely(varonce46!=NULL)) {
1386 var47 = varonce46;
1387 } else {
1388 var48 = "`.";
1389 var49 = core__flat___NativeString___to_s_full(var48, 2l, 2l);
1390 var47 = var49;
1391 varonce46 = var47;
1392 }
1393 ((struct instance_core__NativeArray*)var41)->values[2]=var47;
1394 } else {
1395 var41 = varonce40;
1396 varonce40 = NULL;
1397 }
1398 ((struct instance_core__NativeArray*)var41)->values[1]=var_name;
1399 {
1400 var50 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
1401 }
1402 varonce40 = var41;
1403 {
1404 nitc__scope___nitc__scope__ScopeVisitor___error(self, var_nlabel, var50); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1405 }
1406 {
1407 { /* Inline modelbuilder_base#ANode#is_broken= (var_node,1) on <var_node:ANode> */
1408 var_node->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_node:ANode> */
1409 RET_LABEL51:(void)0;
1410 }
1411 }
1412 var = ((val*)NULL);
1413 goto RET_LABEL;
1414 } else {
1415 }
1416 var = var_res33;
1417 goto RET_LABEL;
1418 } else {
1419 {
1420 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1421 var54 = self->attrs[COLOR_nitc__scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
1422 if (unlikely(var54 == NULL)) {
1423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 81);
1425 fatal_exit(1);
1426 }
1427 var52 = var54;
1428 RET_LABEL53:(void)0;
1429 }
1430 }
1431 var_ = var52;
1432 {
1433 var55 = core___core__List___core__abstract_collection__Collection__iterator(var_);
1434 }
1435 var_56 = var55;
1436 for(;;) {
1437 {
1438 var57 = core___core__ListIterator___core__abstract_collection__Iterator__is_ok(var_56);
1439 }
1440 if (var57){
1441 } else {
1442 goto BREAK_label;
1443 }
1444 {
1445 var58 = core___core__ListIterator___core__abstract_collection__Iterator__item(var_56);
1446 }
1447 var_scope = var58;
1448 {
1449 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
1450 var61 = var_scope->attrs[COLOR_nitc__scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
1451 var59 = var61;
1452 RET_LABEL60:(void)0;
1453 }
1454 }
1455 var_res62 = var59;
1456 if (var_res62 == NULL) {
1457 var63 = 0; /* is null */
1458 } else {
1459 var63 = 1; /* arg is null and recv is not */
1460 }
1461 if (0) {
1462 { /* Inline kernel#Object#!= (var_res62,((val*)NULL)) on <var_res62:nullable EscapeMark> */
1463 var_other = ((val*)NULL);
1464 {
1465 var66 = ((short int(*)(val* self, val* p0))(var_res62->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res62, var_other); /* == on <var_res62:nullable EscapeMark(EscapeMark)>*/
1466 }
1467 var67 = !var66;
1468 var64 = var67;
1469 goto RET_LABEL65;
1470 RET_LABEL65:(void)0;
1471 }
1472 var63 = var64;
1473 }
1474 if (var63){
1475 var = var_res62;
1476 goto RET_LABEL;
1477 } else {
1478 }
1479 {
1480 ((void(*)(val* self))(var_56->class->vft[COLOR_core__abstract_collection__Iterator__next]))(var_56); /* next on <var_56:ListIterator[Scope]>*/
1481 }
1482 }
1483 BREAK_label: (void)0;
1484 {
1485 { /* Inline abstract_collection#Iterator#finish (var_56) on <var_56:ListIterator[Scope]> */
1486 RET_LABEL68:(void)0;
1487 }
1488 }
1489 if (likely(varonce69!=NULL)) {
1490 var70 = varonce69;
1491 } else {
1492 var71 = "Syntax Error: `break` statement outside block.";
1493 var72 = core__flat___NativeString___to_s_full(var71, 46l, 46l);
1494 var70 = var72;
1495 varonce69 = var70;
1496 }
1497 {
1498 nitc__scope___nitc__scope__ScopeVisitor___error(self, var_node, var70); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1499 }
1500 var = ((val*)NULL);
1501 goto RET_LABEL;
1502 }
1503 RET_LABEL:;
1504 return var;
1505 }
1506 /* method scope#ScopeVisitor#error for (self: ScopeVisitor, ANode, String) */
1507 void nitc__scope___nitc__scope__ScopeVisitor___error(val* self, val* p0, val* p1) {
1508 val* var_node /* var node: ANode */;
1509 val* var_message /* var message: String */;
1510 val* var /* : ToolContext */;
1511 val* var2 /* : ToolContext */;
1512 val* var3 /* : Location */;
1513 val* var4 /* : Message */;
1514 var_node = p0;
1515 var_message = p1;
1516 {
1517 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
1518 var2 = self->attrs[COLOR_nitc__scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
1519 if (unlikely(var2 == NULL)) {
1520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 71);
1522 fatal_exit(1);
1523 }
1524 var = var2;
1525 RET_LABEL1:(void)0;
1526 }
1527 }
1528 {
1529 var3 = ((val*(*)(val* self))(var_node->class->vft[COLOR_nitc__parser_nodes__ANode__hot_location]))(var_node); /* hot_location on <var_node:ANode>*/
1530 }
1531 {
1532 var4 = nitc___nitc__ToolContext___error(var, var3, var_message);
1533 }
1534 {
1535 { /* Inline modelbuilder_base#ANode#is_broken= (var_node,1) on <var_node:ANode> */
1536 var_node->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_node:ANode> */
1537 RET_LABEL5:(void)0;
1538 }
1539 }
1540 RET_LABEL:;
1541 }
1542 /* method scope#Scope#variables for (self: Scope): HashMap[String, Variable] */
1543 val* nitc__scope___nitc__scope__Scope___variables(val* self) {
1544 val* var /* : HashMap[String, Variable] */;
1545 val* var1 /* : HashMap[String, Variable] */;
1546 var1 = self->attrs[COLOR_nitc__scope__Scope___variables].val; /* _variables on <self:Scope> */
1547 if (unlikely(var1 == NULL)) {
1548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1549 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 229);
1550 fatal_exit(1);
1551 }
1552 var = var1;
1553 RET_LABEL:;
1554 return var;
1555 }
1556 /* method scope#Scope#escapemark for (self: Scope): nullable EscapeMark */
1557 val* nitc__scope___nitc__scope__Scope___escapemark(val* self) {
1558 val* var /* : nullable EscapeMark */;
1559 val* var1 /* : nullable EscapeMark */;
1560 var1 = self->attrs[COLOR_nitc__scope__Scope___escapemark].val; /* _escapemark on <self:Scope> */
1561 var = var1;
1562 RET_LABEL:;
1563 return var;
1564 }
1565 /* method scope#Scope#escapemark= for (self: Scope, nullable EscapeMark) */
1566 void nitc__scope___nitc__scope__Scope___escapemark_61d(val* self, val* p0) {
1567 self->attrs[COLOR_nitc__scope__Scope___escapemark].val = p0; /* _escapemark on <self:Scope> */
1568 RET_LABEL:;
1569 }
1570 /* method scope#Scope#get_variable for (self: Scope, String): nullable Variable */
1571 val* nitc__scope___nitc__scope__Scope___get_variable(val* self, val* p0) {
1572 val* var /* : nullable Variable */;
1573 val* var_name /* var name: String */;
1574 val* var1 /* : HashMap[String, Variable] */;
1575 val* var3 /* : HashMap[String, Variable] */;
1576 short int var4 /* : Bool */;
1577 val* var5 /* : HashMap[String, Variable] */;
1578 val* var7 /* : HashMap[String, Variable] */;
1579 val* var8 /* : nullable Object */;
1580 var_name = p0;
1581 {
1582 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1583 var3 = self->attrs[COLOR_nitc__scope__Scope___variables].val; /* _variables on <self:Scope> */
1584 if (unlikely(var3 == NULL)) {
1585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1586 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 229);
1587 fatal_exit(1);
1588 }
1589 var1 = var3;
1590 RET_LABEL2:(void)0;
1591 }
1592 }
1593 {
1594 var4 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var1, var_name);
1595 }
1596 if (var4){
1597 {
1598 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1599 var7 = self->attrs[COLOR_nitc__scope__Scope___variables].val; /* _variables on <self:Scope> */
1600 if (unlikely(var7 == NULL)) {
1601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 229);
1603 fatal_exit(1);
1604 }
1605 var5 = var7;
1606 RET_LABEL6:(void)0;
1607 }
1608 }
1609 {
1610 var8 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5, var_name);
1611 }
1612 var = var8;
1613 goto RET_LABEL;
1614 } else {
1615 var = ((val*)NULL);
1616 goto RET_LABEL;
1617 }
1618 RET_LABEL:;
1619 return var;
1620 }
1621 /* method scope#ANode#accept_scope_visitor for (self: ANode, ScopeVisitor) */
1622 void nitc__scope___ANode___accept_scope_visitor(val* self, val* p0) {
1623 val* var_v /* var v: ScopeVisitor */;
1624 var_v = p0;
1625 {
1626 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(self, var_v); /* visit_all on <self:ANode>*/
1627 }
1628 RET_LABEL:;
1629 }
1630 /* method scope#APropdef#do_scope for (self: APropdef, ToolContext) */
1631 void nitc__scope___APropdef___do_scope(val* self, val* p0) {
1632 val* var_toolcontext /* var toolcontext: ToolContext */;
1633 val* var /* : ScopeVisitor */;
1634 val* var_v /* var v: ScopeVisitor */;
1635 var_toolcontext = p0;
1636 var = NEW_nitc__scope__ScopeVisitor(&type_nitc__scope__ScopeVisitor);
1637 {
1638 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nitc__scope__ScopeVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on <var:ScopeVisitor>*/
1639 }
1640 {
1641 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:ScopeVisitor>*/
1642 }
1643 var_v = var;
1644 {
1645 nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
1646 }
1647 {
1648 nitc__scope___nitc__scope__ScopeVisitor___shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
1649 }
1650 RET_LABEL:;
1651 }
1652 /* method scope#AParam#variable for (self: AParam): nullable Variable */
1653 val* nitc__scope___AParam___variable(val* self) {
1654 val* var /* : nullable Variable */;
1655 val* var1 /* : nullable Variable */;
1656 var1 = self->attrs[COLOR_nitc__scope__AParam___variable].val; /* _variable on <self:AParam> */
1657 var = var1;
1658 RET_LABEL:;
1659 return var;
1660 }
1661 /* method scope#AParam#variable= for (self: AParam, nullable Variable) */
1662 void nitc__scope___AParam___variable_61d(val* self, val* p0) {
1663 self->attrs[COLOR_nitc__scope__AParam___variable].val = p0; /* _variable on <self:AParam> */
1664 RET_LABEL:;
1665 }
1666 /* method scope#AParam#accept_scope_visitor for (self: AParam, ScopeVisitor) */
1667 void nitc__scope___AParam___ANode__accept_scope_visitor(val* self, val* p0) {
1668 val* var_v /* var v: ScopeVisitor */;
1669 val* var /* : TId */;
1670 val* var2 /* : TId */;
1671 val* var_nid /* var nid: TId */;
1672 val* var3 /* : Variable */;
1673 val* var4 /* : String */;
1674 val* var_variable /* var variable: Variable */;
1675 short int var5 /* : Bool */;
1676 var_v = p0;
1677 {
1678 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___AParam___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:AParam>*/
1679 }
1680 {
1681 { /* Inline parser_nodes#AParam#n_id (self) on <self:AParam> */
1682 var2 = self->attrs[COLOR_nitc__parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
1683 if (unlikely(var2 == NULL)) {
1684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1693);
1686 fatal_exit(1);
1687 }
1688 var = var2;
1689 RET_LABEL1:(void)0;
1690 }
1691 }
1692 var_nid = var;
1693 var3 = NEW_nitc__Variable(&type_nitc__Variable);
1694 {
1695 var4 = nitc__lexer_work___Token___text(var_nid);
1696 }
1697 {
1698 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__scope__Variable__name_61d]))(var3, var4); /* name= on <var3:Variable>*/
1699 }
1700 {
1701 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:Variable>*/
1702 }
1703 var_variable = var3;
1704 {
1705 var5 = nitc__scope___nitc__scope__ScopeVisitor___register_variable(var_v, var_nid, var_variable);
1706 }
1707 {
1708 { /* Inline scope#AParam#variable= (self,var_variable) on <self:AParam> */
1709 self->attrs[COLOR_nitc__scope__AParam___variable].val = var_variable; /* _variable on <self:AParam> */
1710 RET_LABEL6:(void)0;
1711 }
1712 }
1713 RET_LABEL:;
1714 }
1715 /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */
1716 val* nitc__scope___AVardeclExpr___variable(val* self) {
1717 val* var /* : nullable Variable */;
1718 val* var1 /* : nullable Variable */;
1719 var1 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
1720 var = var1;
1721 RET_LABEL:;
1722 return var;
1723 }
1724 /* method scope#AVardeclExpr#variable= for (self: AVardeclExpr, nullable Variable) */
1725 void nitc__scope___AVardeclExpr___variable_61d(val* self, val* p0) {
1726 self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val = p0; /* _variable on <self:AVardeclExpr> */
1727 RET_LABEL:;
1728 }
1729 /* method scope#AVardeclExpr#accept_scope_visitor for (self: AVardeclExpr, ScopeVisitor) */
1730 void nitc__scope___AVardeclExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1731 val* var_v /* var v: ScopeVisitor */;
1732 val* var /* : TId */;
1733 val* var2 /* : TId */;
1734 val* var_nid /* var nid: TId */;
1735 val* var3 /* : Variable */;
1736 val* var4 /* : String */;
1737 val* var_variable /* var variable: Variable */;
1738 short int var5 /* : Bool */;
1739 var_v = p0;
1740 {
1741 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___AVardeclExpr___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:AVardeclExpr>*/
1742 }
1743 {
1744 { /* Inline parser_nodes#AVardeclExpr#n_id (self) on <self:AVardeclExpr> */
1745 var2 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
1746 if (unlikely(var2 == NULL)) {
1747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1748 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1759);
1749 fatal_exit(1);
1750 }
1751 var = var2;
1752 RET_LABEL1:(void)0;
1753 }
1754 }
1755 var_nid = var;
1756 var3 = NEW_nitc__Variable(&type_nitc__Variable);
1757 {
1758 var4 = nitc__lexer_work___Token___text(var_nid);
1759 }
1760 {
1761 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__scope__Variable__name_61d]))(var3, var4); /* name= on <var3:Variable>*/
1762 }
1763 {
1764 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:Variable>*/
1765 }
1766 var_variable = var3;
1767 {
1768 var5 = nitc__scope___nitc__scope__ScopeVisitor___register_variable(var_v, var_nid, var_variable);
1769 }
1770 {
1771 { /* Inline scope#Variable#warn_unread= (var_variable,1) on <var_variable:Variable> */
1772 var_variable->attrs[COLOR_nitc__scope__Variable___warn_unread].s = 1; /* _warn_unread on <var_variable:Variable> */
1773 RET_LABEL6:(void)0;
1774 }
1775 }
1776 {
1777 { /* Inline scope#AVardeclExpr#variable= (self,var_variable) on <self:AVardeclExpr> */
1778 self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val = var_variable; /* _variable on <self:AVardeclExpr> */
1779 RET_LABEL7:(void)0;
1780 }
1781 }
1782 RET_LABEL:;
1783 }
1784 /* method scope#ASelfExpr#variable= for (self: ASelfExpr, nullable Variable) */
1785 void nitc__scope___ASelfExpr___variable_61d(val* self, val* p0) {
1786 self->attrs[COLOR_nitc__scope__ASelfExpr___variable].val = p0; /* _variable on <self:ASelfExpr> */
1787 RET_LABEL:;
1788 }
1789 /* method scope#ASelfExpr#accept_scope_visitor for (self: ASelfExpr, ScopeVisitor) */
1790 void nitc__scope___ASelfExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1791 val* var_v /* var v: ScopeVisitor */;
1792 val* var /* : Variable */;
1793 val* var2 /* : Variable */;
1794 var_v = p0;
1795 {
1796 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___ASelfExpr___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:ASelfExpr>*/
1797 }
1798 {
1799 { /* Inline scope#ScopeVisitor#selfvariable (var_v) on <var_v:ScopeVisitor> */
1800 var2 = var_v->attrs[COLOR_nitc__scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <var_v:ScopeVisitor> */
1801 if (unlikely(var2 == NULL)) {
1802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
1803 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 74);
1804 fatal_exit(1);
1805 }
1806 var = var2;
1807 RET_LABEL1:(void)0;
1808 }
1809 }
1810 {
1811 { /* Inline scope#ASelfExpr#variable= (self,var) on <self:ASelfExpr> */
1812 self->attrs[COLOR_nitc__scope__ASelfExpr___variable].val = var; /* _variable on <self:ASelfExpr> */
1813 RET_LABEL3:(void)0;
1814 }
1815 }
1816 RET_LABEL:;
1817 }
1818 /* method scope#AEscapeExpr#escapemark for (self: AEscapeExpr): nullable EscapeMark */
1819 val* nitc__scope___AEscapeExpr___escapemark(val* self) {
1820 val* var /* : nullable EscapeMark */;
1821 val* var1 /* : nullable EscapeMark */;
1822 var1 = self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
1823 var = var1;
1824 RET_LABEL:;
1825 return var;
1826 }
1827 /* method scope#AEscapeExpr#escapemark= for (self: AEscapeExpr, nullable EscapeMark) */
1828 void nitc__scope___AEscapeExpr___escapemark_61d(val* self, val* p0) {
1829 self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val = p0; /* _escapemark on <self:AEscapeExpr> */
1830 RET_LABEL:;
1831 }
1832 /* method scope#AContinueExpr#accept_scope_visitor for (self: AContinueExpr, ScopeVisitor) */
1833 void nitc__scope___AContinueExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1834 val* var_v /* var v: ScopeVisitor */;
1835 val* var /* : nullable ALabel */;
1836 val* var2 /* : nullable ALabel */;
1837 val* var3 /* : nullable EscapeMark */;
1838 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1839 short int var4 /* : Bool */;
1840 short int var5 /* : Bool */;
1841 val* var_other /* var other: nullable Object */;
1842 short int var7 /* : Bool */;
1843 short int var9 /* : Bool */;
1844 val* var10 /* : nullable EscapeMark */;
1845 val* var12 /* : nullable EscapeMark */;
1846 short int var13 /* : Bool */;
1847 short int var14 /* : Bool */;
1848 short int var16 /* : Bool */;
1849 short int var18 /* : Bool */;
1850 static val* varonce;
1851 val* var19 /* : String */;
1852 char* var20 /* : NativeString */;
1853 val* var21 /* : String */;
1854 val* var22 /* : Array[AEscapeExpr] */;
1855 val* var24 /* : Array[AEscapeExpr] */;
1856 var_v = p0;
1857 {
1858 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___AContinueExpr___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:AContinueExpr>*/
1859 }
1860 {
1861 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AContinueExpr> */
1862 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
1863 var = var2;
1864 RET_LABEL1:(void)0;
1865 }
1866 }
1867 {
1868 var3 = nitc__scope___nitc__scope__ScopeVisitor___get_escapemark(var_v, self, var);
1869 }
1870 var_escapemark = var3;
1871 if (var_escapemark == NULL) {
1872 var4 = 1; /* is null */
1873 } else {
1874 var4 = 0; /* arg is null but recv is not */
1875 }
1876 if (0) {
1877 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1878 var_other = ((val*)NULL);
1879 {
1880 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1881 var9 = var_escapemark == var_other;
1882 var7 = var9;
1883 goto RET_LABEL8;
1884 RET_LABEL8:(void)0;
1885 }
1886 }
1887 var5 = var7;
1888 goto RET_LABEL6;
1889 RET_LABEL6:(void)0;
1890 }
1891 var4 = var5;
1892 }
1893 if (var4){
1894 goto RET_LABEL;
1895 } else {
1896 }
1897 {
1898 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1899 var12 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1900 var10 = var12;
1901 RET_LABEL11:(void)0;
1902 }
1903 }
1904 var_escapemark = var10;
1905 if (var_escapemark == NULL) {
1906 var13 = 1; /* is null */
1907 } else {
1908 var13 = 0; /* arg is null but recv is not */
1909 }
1910 if (0) {
1911 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1912 var_other = ((val*)NULL);
1913 {
1914 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1915 var18 = var_escapemark == var_other;
1916 var16 = var18;
1917 goto RET_LABEL17;
1918 RET_LABEL17:(void)0;
1919 }
1920 }
1921 var14 = var16;
1922 goto RET_LABEL15;
1923 RET_LABEL15:(void)0;
1924 }
1925 var13 = var14;
1926 }
1927 if (var13){
1928 if (likely(varonce!=NULL)) {
1929 var19 = varonce;
1930 } else {
1931 var20 = "Error: cannot \'continue\', only \'break\'.";
1932 var21 = core__flat___NativeString___to_s_full(var20, 39l, 39l);
1933 var19 = var21;
1934 varonce = var19;
1935 }
1936 {
1937 nitc__scope___nitc__scope__ScopeVisitor___error(var_v, self, var19); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
1938 }
1939 goto RET_LABEL;
1940 } else {
1941 }
1942 {
1943 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1944 var24 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1945 if (unlikely(var24 == NULL)) {
1946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 59);
1948 fatal_exit(1);
1949 }
1950 var22 = var24;
1951 RET_LABEL23:(void)0;
1952 }
1953 }
1954 {
1955 core___core__Array___core__abstract_collection__SimpleCollection__add(var22, self); /* Direct call array#Array#add on <var22:Array[AEscapeExpr]>*/
1956 }
1957 {
1958 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:AContinueExpr> */
1959 self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:AContinueExpr> */
1960 RET_LABEL25:(void)0;
1961 }
1962 }
1963 RET_LABEL:;
1964 }
1965 /* method scope#ABreakExpr#accept_scope_visitor for (self: ABreakExpr, ScopeVisitor) */
1966 void nitc__scope___ABreakExpr___ANode__accept_scope_visitor(val* self, val* p0) {
1967 val* var_v /* var v: ScopeVisitor */;
1968 val* var /* : nullable ALabel */;
1969 val* var2 /* : nullable ALabel */;
1970 val* var3 /* : nullable EscapeMark */;
1971 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1972 short int var4 /* : Bool */;
1973 short int var5 /* : Bool */;
1974 val* var_other /* var other: nullable Object */;
1975 short int var7 /* : Bool */;
1976 short int var9 /* : Bool */;
1977 val* var10 /* : Array[AEscapeExpr] */;
1978 val* var12 /* : Array[AEscapeExpr] */;
1979 var_v = p0;
1980 {
1981 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___ABreakExpr___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:ABreakExpr>*/
1982 }
1983 {
1984 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ABreakExpr> */
1985 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
1986 var = var2;
1987 RET_LABEL1:(void)0;
1988 }
1989 }
1990 {
1991 var3 = nitc__scope___nitc__scope__ScopeVisitor___get_escapemark(var_v, self, var);
1992 }
1993 var_escapemark = var3;
1994 if (var_escapemark == NULL) {
1995 var4 = 1; /* is null */
1996 } else {
1997 var4 = 0; /* arg is null but recv is not */
1998 }
1999 if (0) {
2000 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
2001 var_other = ((val*)NULL);
2002 {
2003 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2004 var9 = var_escapemark == var_other;
2005 var7 = var9;
2006 goto RET_LABEL8;
2007 RET_LABEL8:(void)0;
2008 }
2009 }
2010 var5 = var7;
2011 goto RET_LABEL6;
2012 RET_LABEL6:(void)0;
2013 }
2014 var4 = var5;
2015 }
2016 if (var4){
2017 goto RET_LABEL;
2018 } else {
2019 }
2020 {
2021 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2022 var12 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2023 if (unlikely(var12 == NULL)) {
2024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2025 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 59);
2026 fatal_exit(1);
2027 }
2028 var10 = var12;
2029 RET_LABEL11:(void)0;
2030 }
2031 }
2032 {
2033 core___core__Array___core__abstract_collection__SimpleCollection__add(var10, self); /* Direct call array#Array#add on <var10:Array[AEscapeExpr]>*/
2034 }
2035 {
2036 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
2037 self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:ABreakExpr> */
2038 RET_LABEL13:(void)0;
2039 }
2040 }
2041 RET_LABEL:;
2042 }
2043 /* method scope#ADoExpr#break_mark for (self: ADoExpr): nullable EscapeMark */
2044 val* nitc__scope___ADoExpr___break_mark(val* self) {
2045 val* var /* : nullable EscapeMark */;
2046 val* var1 /* : nullable EscapeMark */;
2047 var1 = self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2048 var = var1;
2049 RET_LABEL:;
2050 return var;
2051 }
2052 /* method scope#ADoExpr#break_mark= for (self: ADoExpr, nullable EscapeMark) */
2053 void nitc__scope___ADoExpr___break_mark_61d(val* self, val* p0) {
2054 self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val = p0; /* _break_mark on <self:ADoExpr> */
2055 RET_LABEL:;
2056 }
2057 /* method scope#ADoExpr#accept_scope_visitor for (self: ADoExpr, ScopeVisitor) */
2058 void nitc__scope___ADoExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2059 val* var_v /* var v: ScopeVisitor */;
2060 val* var /* : nullable ALabel */;
2061 val* var2 /* : nullable ALabel */;
2062 val* var3 /* : EscapeMark */;
2063 val* var5 /* : nullable AExpr */;
2064 val* var7 /* : nullable AExpr */;
2065 val* var8 /* : nullable EscapeMark */;
2066 val* var10 /* : nullable EscapeMark */;
2067 var_v = p0;
2068 {
2069 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ADoExpr> */
2070 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
2071 var = var2;
2072 RET_LABEL1:(void)0;
2073 }
2074 }
2075 {
2076 var3 = nitc__scope___nitc__scope__ScopeVisitor___make_escape_mark(var_v, var, 0);
2077 }
2078 {
2079 { /* Inline scope#ADoExpr#break_mark= (self,var3) on <self:ADoExpr> */
2080 self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val = var3; /* _break_mark on <self:ADoExpr> */
2081 RET_LABEL4:(void)0;
2082 }
2083 }
2084 {
2085 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
2086 var7 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
2087 var5 = var7;
2088 RET_LABEL6:(void)0;
2089 }
2090 }
2091 {
2092 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
2093 var10 = self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2094 var8 = var10;
2095 RET_LABEL9:(void)0;
2096 }
2097 }
2098 {
2099 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var5, var8); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2100 }
2101 RET_LABEL:;
2102 }
2103 /* method scope#AIfExpr#accept_scope_visitor for (self: AIfExpr, ScopeVisitor) */
2104 void nitc__scope___AIfExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2105 val* var_v /* var v: ScopeVisitor */;
2106 val* var /* : AExpr */;
2107 val* var2 /* : AExpr */;
2108 val* var3 /* : nullable AExpr */;
2109 val* var5 /* : nullable AExpr */;
2110 val* var6 /* : nullable AExpr */;
2111 val* var8 /* : nullable AExpr */;
2112 var_v = p0;
2113 {
2114 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
2115 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
2116 if (unlikely(var2 == NULL)) {
2117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2118 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1843);
2119 fatal_exit(1);
2120 }
2121 var = var2;
2122 RET_LABEL1:(void)0;
2123 }
2124 }
2125 {
2126 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2127 }
2128 {
2129 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2130 var5 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2131 var3 = var5;
2132 RET_LABEL4:(void)0;
2133 }
2134 }
2135 {
2136 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var3, ((val*)NULL)); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2137 }
2138 {
2139 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2140 var8 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
2141 var6 = var8;
2142 RET_LABEL7:(void)0;
2143 }
2144 }
2145 {
2146 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var6, ((val*)NULL)); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2147 }
2148 RET_LABEL:;
2149 }
2150 /* method scope#AWhileExpr#break_mark for (self: AWhileExpr): nullable EscapeMark */
2151 val* nitc__scope___AWhileExpr___break_mark(val* self) {
2152 val* var /* : nullable EscapeMark */;
2153 val* var1 /* : nullable EscapeMark */;
2154 var1 = self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
2155 var = var1;
2156 RET_LABEL:;
2157 return var;
2158 }
2159 /* method scope#AWhileExpr#break_mark= for (self: AWhileExpr, nullable EscapeMark) */
2160 void nitc__scope___AWhileExpr___break_mark_61d(val* self, val* p0) {
2161 self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val = p0; /* _break_mark on <self:AWhileExpr> */
2162 RET_LABEL:;
2163 }
2164 /* method scope#AWhileExpr#continue_mark for (self: AWhileExpr): nullable EscapeMark */
2165 val* nitc__scope___AWhileExpr___continue_mark(val* self) {
2166 val* var /* : nullable EscapeMark */;
2167 val* var1 /* : nullable EscapeMark */;
2168 var1 = self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
2169 var = var1;
2170 RET_LABEL:;
2171 return var;
2172 }
2173 /* method scope#AWhileExpr#continue_mark= for (self: AWhileExpr, nullable EscapeMark) */
2174 void nitc__scope___AWhileExpr___continue_mark_61d(val* self, val* p0) {
2175 self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val = p0; /* _continue_mark on <self:AWhileExpr> */
2176 RET_LABEL:;
2177 }
2178 /* method scope#AWhileExpr#accept_scope_visitor for (self: AWhileExpr, ScopeVisitor) */
2179 void nitc__scope___AWhileExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2180 val* var_v /* var v: ScopeVisitor */;
2181 val* var /* : nullable ALabel */;
2182 val* var2 /* : nullable ALabel */;
2183 val* var3 /* : EscapeMark */;
2184 val* var_escapemark /* var escapemark: EscapeMark */;
2185 val* var5 /* : nullable EscapeMark */;
2186 val* var7 /* : nullable EscapeMark */;
2187 val* var9 /* : AExpr */;
2188 val* var11 /* : AExpr */;
2189 val* var12 /* : nullable AExpr */;
2190 val* var14 /* : nullable AExpr */;
2191 var_v = p0;
2192 {
2193 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AWhileExpr> */
2194 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
2195 var = var2;
2196 RET_LABEL1:(void)0;
2197 }
2198 }
2199 {
2200 var3 = nitc__scope___nitc__scope__ScopeVisitor___make_escape_mark(var_v, var, 1);
2201 }
2202 var_escapemark = var3;
2203 {
2204 { /* Inline scope#AWhileExpr#break_mark= (self,var_escapemark) on <self:AWhileExpr> */
2205 self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AWhileExpr> */
2206 RET_LABEL4:(void)0;
2207 }
2208 }
2209 {
2210 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2211 var7 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2212 var5 = var7;
2213 RET_LABEL6:(void)0;
2214 }
2215 }
2216 {
2217 { /* Inline scope#AWhileExpr#continue_mark= (self,var5) on <self:AWhileExpr> */
2218 self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val = var5; /* _continue_mark on <self:AWhileExpr> */
2219 RET_LABEL8:(void)0;
2220 }
2221 }
2222 {
2223 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2224 var11 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
2225 if (unlikely(var11 == NULL)) {
2226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1890);
2228 fatal_exit(1);
2229 }
2230 var9 = var11;
2231 RET_LABEL10:(void)0;
2232 }
2233 }
2234 {
2235 nitc___nitc__Visitor___enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2236 }
2237 {
2238 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2239 var14 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
2240 var12 = var14;
2241 RET_LABEL13:(void)0;
2242 }
2243 }
2244 {
2245 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var12, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2246 }
2247 RET_LABEL:;
2248 }
2249 /* method scope#ALoopExpr#break_mark for (self: ALoopExpr): nullable EscapeMark */
2250 val* nitc__scope___ALoopExpr___break_mark(val* self) {
2251 val* var /* : nullable EscapeMark */;
2252 val* var1 /* : nullable EscapeMark */;
2253 var1 = self->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
2254 var = var1;
2255 RET_LABEL:;
2256 return var;
2257 }
2258 /* method scope#ALoopExpr#break_mark= for (self: ALoopExpr, nullable EscapeMark) */
2259 void nitc__scope___ALoopExpr___break_mark_61d(val* self, val* p0) {
2260 self->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val = p0; /* _break_mark on <self:ALoopExpr> */
2261 RET_LABEL:;
2262 }
2263 /* method scope#ALoopExpr#continue_mark for (self: ALoopExpr): nullable EscapeMark */
2264 val* nitc__scope___ALoopExpr___continue_mark(val* self) {
2265 val* var /* : nullable EscapeMark */;
2266 val* var1 /* : nullable EscapeMark */;
2267 var1 = self->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
2268 var = var1;
2269 RET_LABEL:;
2270 return var;
2271 }
2272 /* method scope#ALoopExpr#continue_mark= for (self: ALoopExpr, nullable EscapeMark) */
2273 void nitc__scope___ALoopExpr___continue_mark_61d(val* self, val* p0) {
2274 self->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val = p0; /* _continue_mark on <self:ALoopExpr> */
2275 RET_LABEL:;
2276 }
2277 /* method scope#ALoopExpr#accept_scope_visitor for (self: ALoopExpr, ScopeVisitor) */
2278 void nitc__scope___ALoopExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2279 val* var_v /* var v: ScopeVisitor */;
2280 val* var /* : nullable ALabel */;
2281 val* var2 /* : nullable ALabel */;
2282 val* var3 /* : EscapeMark */;
2283 val* var_escapemark /* var escapemark: EscapeMark */;
2284 val* var5 /* : nullable EscapeMark */;
2285 val* var7 /* : nullable EscapeMark */;
2286 val* var9 /* : nullable AExpr */;
2287 val* var11 /* : nullable AExpr */;
2288 var_v = p0;
2289 {
2290 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ALoopExpr> */
2291 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
2292 var = var2;
2293 RET_LABEL1:(void)0;
2294 }
2295 }
2296 {
2297 var3 = nitc__scope___nitc__scope__ScopeVisitor___make_escape_mark(var_v, var, 1);
2298 }
2299 var_escapemark = var3;
2300 {
2301 { /* Inline scope#ALoopExpr#break_mark= (self,var_escapemark) on <self:ALoopExpr> */
2302 self->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on <self:ALoopExpr> */
2303 RET_LABEL4:(void)0;
2304 }
2305 }
2306 {
2307 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2308 var7 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2309 var5 = var7;
2310 RET_LABEL6:(void)0;
2311 }
2312 }
2313 {
2314 { /* Inline scope#ALoopExpr#continue_mark= (self,var5) on <self:ALoopExpr> */
2315 self->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val = var5; /* _continue_mark on <self:ALoopExpr> */
2316 RET_LABEL8:(void)0;
2317 }
2318 }
2319 {
2320 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2321 var11 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
2322 var9 = var11;
2323 RET_LABEL10:(void)0;
2324 }
2325 }
2326 {
2327 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var9, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2328 }
2329 RET_LABEL:;
2330 }
2331 /* method scope#AForExpr#break_mark for (self: AForExpr): nullable EscapeMark */
2332 val* nitc__scope___AForExpr___break_mark(val* self) {
2333 val* var /* : nullable EscapeMark */;
2334 val* var1 /* : nullable EscapeMark */;
2335 var1 = self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
2336 var = var1;
2337 RET_LABEL:;
2338 return var;
2339 }
2340 /* method scope#AForExpr#break_mark= for (self: AForExpr, nullable EscapeMark) */
2341 void nitc__scope___AForExpr___break_mark_61d(val* self, val* p0) {
2342 self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val = p0; /* _break_mark on <self:AForExpr> */
2343 RET_LABEL:;
2344 }
2345 /* method scope#AForExpr#continue_mark for (self: AForExpr): nullable EscapeMark */
2346 val* nitc__scope___AForExpr___continue_mark(val* self) {
2347 val* var /* : nullable EscapeMark */;
2348 val* var1 /* : nullable EscapeMark */;
2349 var1 = self->attrs[COLOR_nitc__scope__AForExpr___continue_mark].val; /* _continue_mark on <self:AForExpr> */
2350 var = var1;
2351 RET_LABEL:;
2352 return var;
2353 }
2354 /* method scope#AForExpr#continue_mark= for (self: AForExpr, nullable EscapeMark) */
2355 void nitc__scope___AForExpr___continue_mark_61d(val* self, val* p0) {
2356 self->attrs[COLOR_nitc__scope__AForExpr___continue_mark].val = p0; /* _continue_mark on <self:AForExpr> */
2357 RET_LABEL:;
2358 }
2359 /* method scope#AForExpr#accept_scope_visitor for (self: AForExpr, ScopeVisitor) */
2360 void nitc__scope___AForExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2361 val* var_v /* var v: ScopeVisitor */;
2362 val* var /* : ANodes[AForGroup] */;
2363 val* var2 /* : ANodes[AForGroup] */;
2364 val* var_ /* var : ANodes[AForGroup] */;
2365 val* var3 /* : Iterator[ANode] */;
2366 val* var_4 /* var : Iterator[AForGroup] */;
2367 short int var5 /* : Bool */;
2368 val* var6 /* : nullable Object */;
2369 val* var_g /* var g: AForGroup */;
2370 val* var7 /* : AExpr */;
2371 val* var9 /* : AExpr */;
2372 val* var10 /* : List[Scope] */;
2373 val* var12 /* : List[Scope] */;
2374 val* var13 /* : Scope */;
2375 val* var15 /* : ANodes[AForGroup] */;
2376 val* var17 /* : ANodes[AForGroup] */;
2377 val* var_18 /* var : ANodes[AForGroup] */;
2378 val* var19 /* : Iterator[ANode] */;
2379 val* var_20 /* var : Iterator[AForGroup] */;
2380 short int var21 /* : Bool */;
2381 val* var23 /* : nullable Object */;
2382 val* var_g24 /* var g: AForGroup */;
2383 val* var25 /* : Array[Variable] */;
2384 val* var_variables /* var variables: Array[Variable] */;
2385 val* var27 /* : ANodes[TId] */;
2386 val* var29 /* : ANodes[TId] */;
2387 val* var_30 /* var : ANodes[TId] */;
2388 val* var31 /* : Iterator[ANode] */;
2389 val* var_32 /* var : Iterator[TId] */;
2390 short int var33 /* : Bool */;
2391 val* var35 /* : nullable Object */;
2392 val* var_nid /* var nid: TId */;
2393 val* var36 /* : Variable */;
2394 val* var37 /* : String */;
2395 val* var_va /* var va: Variable */;
2396 short int var38 /* : Bool */;
2397 val* var39 /* : nullable ALabel */;
2398 val* var41 /* : nullable ALabel */;
2399 val* var42 /* : EscapeMark */;
2400 val* var_escapemark /* var escapemark: EscapeMark */;
2401 val* var44 /* : nullable EscapeMark */;
2402 val* var46 /* : nullable EscapeMark */;
2403 val* var48 /* : nullable AExpr */;
2404 val* var50 /* : nullable AExpr */;
2405 var_v = p0;
2406 {
2407 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
2408 var2 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
2409 if (unlikely(var2 == NULL)) {
2410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
2412 fatal_exit(1);
2413 }
2414 var = var2;
2415 RET_LABEL1:(void)0;
2416 }
2417 }
2418 var_ = var;
2419 {
2420 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2421 }
2422 var_4 = var3;
2423 for(;;) {
2424 {
2425 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AForGroup]>*/
2426 }
2427 if (var5){
2428 } else {
2429 goto BREAK_label;
2430 }
2431 {
2432 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AForGroup]>*/
2433 }
2434 var_g = var6;
2435 {
2436 { /* Inline parser_nodes#AForGroup#n_expr (var_g) on <var_g:AForGroup> */
2437 var9 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <var_g:AForGroup> */
2438 if (unlikely(var9 == NULL)) {
2439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2440 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943);
2441 fatal_exit(1);
2442 }
2443 var7 = var9;
2444 RET_LABEL8:(void)0;
2445 }
2446 }
2447 {
2448 nitc___nitc__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2449 }
2450 {
2451 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AForGroup]>*/
2452 }
2453 }
2454 BREAK_label: (void)0;
2455 {
2456 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AForGroup]>*/
2457 }
2458 {
2459 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
2460 var12 = var_v->attrs[COLOR_nitc__scope__ScopeVisitor___scopes].val; /* _scopes on <var_v:ScopeVisitor> */
2461 if (unlikely(var12 == NULL)) {
2462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
2463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 81);
2464 fatal_exit(1);
2465 }
2466 var10 = var12;
2467 RET_LABEL11:(void)0;
2468 }
2469 }
2470 var13 = NEW_nitc__scope__Scope(&type_nitc__scope__Scope);
2471 {
2472 { /* Inline kernel#Object#init (var13) on <var13:Scope> */
2473 RET_LABEL14:(void)0;
2474 }
2475 }
2476 {
2477 core___core__List___core__abstract_collection__Sequence__unshift(var10, var13); /* Direct call list#List#unshift on <var10:List[Scope]>*/
2478 }
2479 {
2480 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
2481 var17 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
2482 if (unlikely(var17 == NULL)) {
2483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2484 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
2485 fatal_exit(1);
2486 }
2487 var15 = var17;
2488 RET_LABEL16:(void)0;
2489 }
2490 }
2491 var_18 = var15;
2492 {
2493 var19 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_18);
2494 }
2495 var_20 = var19;
2496 for(;;) {
2497 {
2498 var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:Iterator[AForGroup]>*/
2499 }
2500 if (var21){
2501 } else {
2502 goto BREAK_label22;
2503 }
2504 {
2505 var23 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:Iterator[AForGroup]>*/
2506 }
2507 var_g24 = var23;
2508 var25 = NEW_core__Array(&type_core__Array__nitc__Variable);
2509 {
2510 core___core__Array___core__kernel__Object__init(var25); /* Direct call array#Array#init on <var25:Array[Variable]>*/
2511 }
2512 var_variables = var25;
2513 {
2514 { /* Inline scope#AForGroup#variables= (var_g24,var_variables) on <var_g24:AForGroup> */
2515 var_g24->attrs[COLOR_nitc__scope__AForGroup___variables].val = var_variables; /* _variables on <var_g24:AForGroup> */
2516 RET_LABEL26:(void)0;
2517 }
2518 }
2519 {
2520 { /* Inline parser_nodes#AForGroup#n_ids (var_g24) on <var_g24:AForGroup> */
2521 var29 = var_g24->attrs[COLOR_nitc__parser_nodes__AForGroup___n_ids].val; /* _n_ids on <var_g24:AForGroup> */
2522 if (unlikely(var29 == NULL)) {
2523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
2524 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1937);
2525 fatal_exit(1);
2526 }
2527 var27 = var29;
2528 RET_LABEL28:(void)0;
2529 }
2530 }
2531 var_30 = var27;
2532 {
2533 var31 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_30);
2534 }
2535 var_32 = var31;
2536 for(;;) {
2537 {
2538 var33 = ((short int(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_32); /* is_ok on <var_32:Iterator[TId]>*/
2539 }
2540 if (var33){
2541 } else {
2542 goto BREAK_label34;
2543 }
2544 {
2545 var35 = ((val*(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_32); /* item on <var_32:Iterator[TId]>*/
2546 }
2547 var_nid = var35;
2548 var36 = NEW_nitc__Variable(&type_nitc__Variable);
2549 {
2550 var37 = nitc__lexer_work___Token___text(var_nid);
2551 }
2552 {
2553 ((void(*)(val* self, val* p0))(var36->class->vft[COLOR_nitc__scope__Variable__name_61d]))(var36, var37); /* name= on <var36:Variable>*/
2554 }
2555 {
2556 ((void(*)(val* self))(var36->class->vft[COLOR_core__kernel__Object__init]))(var36); /* init on <var36:Variable>*/
2557 }
2558 var_va = var36;
2559 {
2560 var38 = nitc__scope___nitc__scope__ScopeVisitor___register_variable(var_v, var_nid, var_va);
2561 }
2562 {
2563 core___core__Array___core__abstract_collection__SimpleCollection__add(var_variables, var_va); /* Direct call array#Array#add on <var_variables:Array[Variable]>*/
2564 }
2565 {
2566 ((void(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_32); /* next on <var_32:Iterator[TId]>*/
2567 }
2568 }
2569 BREAK_label34: (void)0;
2570 {
2571 ((void(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_32); /* finish on <var_32:Iterator[TId]>*/
2572 }
2573 {
2574 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:Iterator[AForGroup]>*/
2575 }
2576 }
2577 BREAK_label22: (void)0;
2578 {
2579 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:Iterator[AForGroup]>*/
2580 }
2581 {
2582 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AForExpr> */
2583 var41 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
2584 var39 = var41;
2585 RET_LABEL40:(void)0;
2586 }
2587 }
2588 {
2589 var42 = nitc__scope___nitc__scope__ScopeVisitor___make_escape_mark(var_v, var39, 1);
2590 }
2591 var_escapemark = var42;
2592 {
2593 { /* Inline scope#AForExpr#break_mark= (self,var_escapemark) on <self:AForExpr> */
2594 self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AForExpr> */
2595 RET_LABEL43:(void)0;
2596 }
2597 }
2598 {
2599 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2600 var46 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2601 var44 = var46;
2602 RET_LABEL45:(void)0;
2603 }
2604 }
2605 {
2606 { /* Inline scope#AForExpr#continue_mark= (self,var44) on <self:AForExpr> */
2607 self->attrs[COLOR_nitc__scope__AForExpr___continue_mark].val = var44; /* _continue_mark on <self:AForExpr> */
2608 RET_LABEL47:(void)0;
2609 }
2610 }
2611 {
2612 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
2613 var50 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
2614 var48 = var50;
2615 RET_LABEL49:(void)0;
2616 }
2617 }
2618 {
2619 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var48, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2620 }
2621 {
2622 nitc__scope___nitc__scope__ScopeVisitor___shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
2623 }
2624 RET_LABEL:;
2625 }
2626 /* method scope#AForGroup#variables for (self: AForGroup): nullable Array[Variable] */
2627 val* nitc__scope___AForGroup___variables(val* self) {
2628 val* var /* : nullable Array[Variable] */;
2629 val* var1 /* : nullable Array[Variable] */;
2630 var1 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2631 var = var1;
2632 RET_LABEL:;
2633 return var;
2634 }
2635 /* method scope#AForGroup#variables= for (self: AForGroup, nullable Array[Variable]) */
2636 void nitc__scope___AForGroup___variables_61d(val* self, val* p0) {
2637 self->attrs[COLOR_nitc__scope__AForGroup___variables].val = p0; /* _variables on <self:AForGroup> */
2638 RET_LABEL:;
2639 }
2640 /* method scope#AWithExpr#break_mark for (self: AWithExpr): nullable EscapeMark */
2641 val* nitc__scope___AWithExpr___break_mark(val* self) {
2642 val* var /* : nullable EscapeMark */;
2643 val* var1 /* : nullable EscapeMark */;
2644 var1 = self->attrs[COLOR_nitc__scope__AWithExpr___break_mark].val; /* _break_mark on <self:AWithExpr> */
2645 var = var1;
2646 RET_LABEL:;
2647 return var;
2648 }
2649 /* method scope#AWithExpr#break_mark= for (self: AWithExpr, nullable EscapeMark) */
2650 void nitc__scope___AWithExpr___break_mark_61d(val* self, val* p0) {
2651 self->attrs[COLOR_nitc__scope__AWithExpr___break_mark].val = p0; /* _break_mark on <self:AWithExpr> */
2652 RET_LABEL:;
2653 }
2654 /* method scope#AWithExpr#accept_scope_visitor for (self: AWithExpr, ScopeVisitor) */
2655 void nitc__scope___AWithExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2656 val* var_v /* var v: ScopeVisitor */;
2657 val* var /* : List[Scope] */;
2658 val* var2 /* : List[Scope] */;
2659 val* var3 /* : Scope */;
2660 val* var5 /* : nullable ALabel */;
2661 val* var7 /* : nullable ALabel */;
2662 val* var8 /* : EscapeMark */;
2663 val* var_escapemark /* var escapemark: EscapeMark */;
2664 val* var10 /* : AExpr */;
2665 val* var12 /* : AExpr */;
2666 val* var13 /* : nullable AExpr */;
2667 val* var15 /* : nullable AExpr */;
2668 var_v = p0;
2669 {
2670 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
2671 var2 = var_v->attrs[COLOR_nitc__scope__ScopeVisitor___scopes].val; /* _scopes on <var_v:ScopeVisitor> */
2672 if (unlikely(var2 == NULL)) {
2673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
2674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 81);
2675 fatal_exit(1);
2676 }
2677 var = var2;
2678 RET_LABEL1:(void)0;
2679 }
2680 }
2681 var3 = NEW_nitc__scope__Scope(&type_nitc__scope__Scope);
2682 {
2683 { /* Inline kernel#Object#init (var3) on <var3:Scope> */
2684 RET_LABEL4:(void)0;
2685 }
2686 }
2687 {
2688 core___core__List___core__abstract_collection__Sequence__unshift(var, var3); /* Direct call list#List#unshift on <var:List[Scope]>*/
2689 }
2690 {
2691 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AWithExpr> */
2692 var7 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWithExpr> */
2693 var5 = var7;
2694 RET_LABEL6:(void)0;
2695 }
2696 }
2697 {
2698 var8 = nitc__scope___nitc__scope__ScopeVisitor___make_escape_mark(var_v, var5, 1);
2699 }
2700 var_escapemark = var8;
2701 {
2702 { /* Inline scope#AWithExpr#break_mark= (self,var_escapemark) on <self:AWithExpr> */
2703 self->attrs[COLOR_nitc__scope__AWithExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AWithExpr> */
2704 RET_LABEL9:(void)0;
2705 }
2706 }
2707 {
2708 { /* Inline parser_nodes#AWithExpr#n_expr (self) on <self:AWithExpr> */
2709 var12 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2710 if (unlikely(var12 == NULL)) {
2711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2712 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1955);
2713 fatal_exit(1);
2714 }
2715 var10 = var12;
2716 RET_LABEL11:(void)0;
2717 }
2718 }
2719 {
2720 nitc___nitc__Visitor___enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2721 }
2722 {
2723 { /* Inline parser_nodes#AWithExpr#n_block (self) on <self:AWithExpr> */
2724 var15 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2725 var13 = var15;
2726 RET_LABEL14:(void)0;
2727 }
2728 }
2729 {
2730 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var13, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2731 }
2732 {
2733 nitc__scope___nitc__scope__ScopeVisitor___shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
2734 }
2735 RET_LABEL:;
2736 }
2737 /* method scope#AAssertExpr#accept_scope_visitor for (self: AAssertExpr, ScopeVisitor) */
2738 void nitc__scope___AAssertExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2739 val* var_v /* var v: ScopeVisitor */;
2740 val* var /* : AExpr */;
2741 val* var2 /* : AExpr */;
2742 val* var3 /* : nullable AExpr */;
2743 val* var5 /* : nullable AExpr */;
2744 var_v = p0;
2745 {
2746 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
2747 var2 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
2748 if (unlikely(var2 == NULL)) {
2749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1975);
2751 fatal_exit(1);
2752 }
2753 var = var2;
2754 RET_LABEL1:(void)0;
2755 }
2756 }
2757 {
2758 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2759 }
2760 {
2761 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
2762 var5 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
2763 var3 = var5;
2764 RET_LABEL4:(void)0;
2765 }
2766 }
2767 {
2768 nitc__scope___nitc__scope__ScopeVisitor___enter_visit_block(var_v, var3, ((val*)NULL)); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2769 }
2770 RET_LABEL:;
2771 }
2772 /* method scope#AVarFormExpr#variable for (self: AVarFormExpr): nullable Variable */
2773 val* nitc__scope___AVarFormExpr___variable(val* self) {
2774 val* var /* : nullable Variable */;
2775 val* var1 /* : nullable Variable */;
2776 var1 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarFormExpr> */
2777 var = var1;
2778 RET_LABEL:;
2779 return var;
2780 }
2781 /* method scope#AVarFormExpr#variable= for (self: AVarFormExpr, nullable Variable) */
2782 void nitc__scope___AVarFormExpr___variable_61d(val* self, val* p0) {
2783 self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val = p0; /* _variable on <self:AVarFormExpr> */
2784 RET_LABEL:;
2785 }
2786 /* method scope#ACallFormExpr#accept_scope_visitor for (self: ACallFormExpr, ScopeVisitor) */
2787 void nitc__scope___ACallFormExpr___ANode__accept_scope_visitor(val* self, val* p0) {
2788 val* var_v /* var v: ScopeVisitor */;
2789 val* var /* : AExpr */;
2790 val* var2 /* : AExpr */;
2791 short int var3 /* : Bool */;
2792 int cltype;
2793 int idtype;
2794 val* var4 /* : AQid */;
2795 val* var6 /* : AQid */;
2796 val* var7 /* : TId */;
2797 val* var9 /* : TId */;
2798 val* var10 /* : String */;
2799 val* var_name /* var name: String */;
2800 val* var11 /* : nullable Variable */;
2801 val* var_variable /* var variable: nullable Variable */;
2802 short int var12 /* : Bool */;
2803 short int var13 /* : Bool */;
2804 val* var_other /* var other: nullable Object */;
2805 short int var15 /* : Bool */;
2806 short int var16 /* : Bool */;
2807 short int var17 /* : Bool */;
2808 val* var18 /* : AExprs */;
2809 val* var20 /* : AExprs */;
2810 val* var21 /* : ANodes[AExpr] */;
2811 val* var23 /* : ANodes[AExpr] */;
2812 short int var24 /* : Bool */;
2813 short int var25 /* : Bool */;
2814 short int var_ /* var : Bool */;
2815 val* var26 /* : AExprs */;
2816 val* var28 /* : AExprs */;
2817 short int var29 /* : Bool */;
2818 int cltype30;
2819 int idtype31;
2820 val* var32 /* : NativeArray[String] */;
2821 static val* varonce;
2822 static val* varonce33;
2823 val* var34 /* : String */;
2824 char* var35 /* : NativeString */;
2825 val* var36 /* : String */;
2826 static val* varonce37;
2827 val* var38 /* : String */;
2828 char* var39 /* : NativeString */;
2829 val* var40 /* : String */;
2830 val* var41 /* : String */;
2831 val* var42 /* : AVarFormExpr */;
2832 val* var_n /* var n: AExpr */;
2833 var_v = p0;
2834 {
2835 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ACallFormExpr> */
2836 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallFormExpr> */
2837 if (unlikely(var2 == NULL)) {
2838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
2840 fatal_exit(1);
2841 }
2842 var = var2;
2843 RET_LABEL1:(void)0;
2844 }
2845 }
2846 /* <var:AExpr> isa AImplicitSelfExpr */
2847 cltype = type_nitc__AImplicitSelfExpr.color;
2848 idtype = type_nitc__AImplicitSelfExpr.id;
2849 if(cltype >= var->type->table_size) {
2850 var3 = 0;
2851 } else {
2852 var3 = var->type->type_table[cltype] == idtype;
2853 }
2854 if (var3){
2855 {
2856 { /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:ACallFormExpr> */
2857 var6 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallFormExpr> */
2858 if (unlikely(var6 == NULL)) {
2859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2860 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296);
2861 fatal_exit(1);
2862 }
2863 var4 = var6;
2864 RET_LABEL5:(void)0;
2865 }
2866 }
2867 {
2868 { /* Inline parser_nodes#AQid#n_id (var4) on <var4:AQid> */
2869 var9 = var4->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var4:AQid> */
2870 if (unlikely(var9 == NULL)) {
2871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658);
2873 fatal_exit(1);
2874 }
2875 var7 = var9;
2876 RET_LABEL8:(void)0;
2877 }
2878 }
2879 {
2880 var10 = nitc__lexer_work___Token___text(var7);
2881 }
2882 var_name = var10;
2883 {
2884 var11 = nitc__scope___nitc__scope__ScopeVisitor___search_variable(var_v, var_name);
2885 }
2886 var_variable = var11;
2887 if (var_variable == NULL) {
2888 var12 = 0; /* is null */
2889 } else {
2890 var12 = 1; /* arg is null and recv is not */
2891 }
2892 if (0) {
2893 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
2894 var_other = ((val*)NULL);
2895 {
2896 var15 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
2897 }
2898 var16 = !var15;
2899 var13 = var16;
2900 goto RET_LABEL14;
2901 RET_LABEL14:(void)0;
2902 }
2903 var12 = var13;
2904 }
2905 if (var12){
2906 {
2907 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
2908 var20 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
2909 if (unlikely(var20 == NULL)) {
2910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299);
2912 fatal_exit(1);
2913 }
2914 var18 = var20;
2915 RET_LABEL19:(void)0;
2916 }
2917 }
2918 {
2919 { /* Inline parser_nodes#AExprs#n_exprs (var18) on <var18:AExprs> */
2920 var23 = var18->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var18:AExprs> */
2921 if (unlikely(var23 == NULL)) {
2922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
2924 fatal_exit(1);
2925 }
2926 var21 = var23;
2927 RET_LABEL22:(void)0;
2928 }
2929 }
2930 {
2931 var24 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var21);
2932 }
2933 var25 = !var24;
2934 var_ = var25;
2935 if (var25){
2936 var17 = var_;
2937 } else {
2938 {
2939 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
2940 var28 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
2941 if (unlikely(var28 == NULL)) {
2942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2943 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299);
2944 fatal_exit(1);
2945 }
2946 var26 = var28;
2947 RET_LABEL27:(void)0;
2948 }
2949 }
2950 /* <var26:AExprs> isa AParExprs */
2951 cltype30 = type_nitc__AParExprs.color;
2952 idtype31 = type_nitc__AParExprs.id;
2953 if(cltype30 >= var26->type->table_size) {
2954 var29 = 0;
2955 } else {
2956 var29 = var26->type->type_table[cltype30] == idtype31;
2957 }
2958 var17 = var29;
2959 }
2960 if (var17){
2961 if (unlikely(varonce==NULL)) {
2962 var32 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2963 if (likely(varonce33!=NULL)) {
2964 var34 = varonce33;
2965 } else {
2966 var35 = "Error: `";
2967 var36 = core__flat___NativeString___to_s_full(var35, 8l, 8l);
2968 var34 = var36;
2969 varonce33 = var34;
2970 }
2971 ((struct instance_core__NativeArray*)var32)->values[0]=var34;
2972 if (likely(varonce37!=NULL)) {
2973 var38 = varonce37;
2974 } else {
2975 var39 = "` is a variable, not a method.";
2976 var40 = core__flat___NativeString___to_s_full(var39, 30l, 30l);
2977 var38 = var40;
2978 varonce37 = var38;
2979 }
2980 ((struct instance_core__NativeArray*)var32)->values[2]=var38;
2981 } else {
2982 var32 = varonce;
2983 varonce = NULL;
2984 }
2985 ((struct instance_core__NativeArray*)var32)->values[1]=var_name;
2986 {
2987 var41 = ((val*(*)(val* self))(var32->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var32); /* native_to_s on <var32:NativeArray[String]>*/
2988 }
2989 varonce = var32;
2990 {
2991 nitc__scope___nitc__scope__ScopeVisitor___error(var_v, self, var41); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2992 }
2993 goto RET_LABEL;
2994 } else {
2995 }
2996 {
2997 var42 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope__ACallFormExpr__variable_create]))(self, var_variable); /* variable_create on <self:ACallFormExpr>*/
2998 }
2999 var_n = var42;
3000 {
3001 { /* Inline scope#AVarFormExpr#variable= (var_n,var_variable) on <var_n:AExpr(AVarFormExpr)> */
3002 var_n->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val = var_variable; /* _variable on <var_n:AExpr(AVarFormExpr)> */
3003 RET_LABEL43:(void)0;
3004 }
3005 }
3006 {
3007 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_n); /* Direct call transform#AExpr#replace_with on <self:ACallFormExpr>*/
3008 }
3009 {
3010 nitc__scope___ANode___accept_scope_visitor(var_n, var_v); /* Direct call scope#ANode#accept_scope_visitor on <var_n:AExpr(AVarFormExpr)>*/
3011 }
3012 goto RET_LABEL;
3013 } else {
3014 }
3015 } else {
3016 }
3017 {
3018 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__scope___ACallFormExpr___ANode__accept_scope_visitor]))(self, p0); /* accept_scope_visitor on <self:ACallFormExpr>*/
3019 }
3020 RET_LABEL:;
3021 }
3022 /* method scope#ACallExpr#variable_create for (self: ACallExpr, Variable): AVarFormExpr */
3023 val* nitc__scope___ACallExpr___ACallFormExpr__variable_create(val* self, val* p0) {
3024 val* var /* : AVarFormExpr */;
3025 val* var_variable /* var variable: Variable */;
3026 val* var2 /* : AVarExpr */;
3027 val* var3 /* : AQid */;
3028 val* var5 /* : AQid */;
3029 val* var6 /* : TId */;
3030 val* var8 /* : TId */;
3031 var_variable = p0;
3032 {
3033 { /* Inline scope#Variable#warn_unread= (var_variable,0) on <var_variable:Variable> */
3034 var_variable->attrs[COLOR_nitc__scope__Variable___warn_unread].s = 0; /* _warn_unread on <var_variable:Variable> */
3035 RET_LABEL1:(void)0;
3036 }
3037 }
3038 var2 = NEW_nitc__AVarExpr(&type_nitc__AVarExpr);
3039 {
3040 { /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:ACallExpr> */
3041 var5 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallExpr> */
3042 if (unlikely(var5 == NULL)) {
3043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
3044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296);
3045 fatal_exit(1);
3046 }
3047 var3 = var5;
3048 RET_LABEL4:(void)0;
3049 }
3050 }
3051 {
3052 { /* Inline parser_nodes#AQid#n_id (var3) on <var3:AQid> */
3053 var8 = var3->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var3:AQid> */
3054 if (unlikely(var8 == NULL)) {
3055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658);
3057 fatal_exit(1);
3058 }
3059 var6 = var8;
3060 RET_LABEL7:(void)0;
3061 }
3062 }
3063 {
3064 nitc__parser_prod___AVarExpr___init_avarexpr(var2, var6); /* Direct call parser_prod#AVarExpr#init_avarexpr on <var2:AVarExpr>*/
3065 }
3066 var = var2;
3067 goto RET_LABEL;
3068 RET_LABEL:;
3069 return var;
3070 }
3071 /* method scope#ACallAssignExpr#variable_create for (self: ACallAssignExpr, Variable): AVarFormExpr */
3072 val* nitc__scope___ACallAssignExpr___ACallFormExpr__variable_create(val* self, val* p0) {
3073 val* var /* : AVarFormExpr */;
3074 val* var_variable /* var variable: Variable */;
3075 val* var1 /* : AVarAssignExpr */;
3076 val* var2 /* : AQid */;
3077 val* var4 /* : AQid */;
3078 val* var5 /* : TId */;
3079 val* var7 /* : TId */;
3080 val* var8 /* : TAssign */;
3081 val* var10 /* : TAssign */;
3082 val* var11 /* : AExpr */;
3083 val* var13 /* : AExpr */;
3084 var_variable = p0;
3085 var1 = NEW_nitc__AVarAssignExpr(&type_nitc__AVarAssignExpr);
3086 {
3087 { /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:ACallAssignExpr> */
3088 var4 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallAssignExpr> */
3089 if (unlikely(var4 == NULL)) {
3090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
3091 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296);
3092 fatal_exit(1);
3093 }
3094 var2 = var4;
3095 RET_LABEL3:(void)0;
3096 }
3097 }
3098 {
3099 { /* Inline parser_nodes#AQid#n_id (var2) on <var2:AQid> */
3100 var7 = var2->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var2:AQid> */
3101 if (unlikely(var7 == NULL)) {
3102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658);
3104 fatal_exit(1);
3105 }
3106 var5 = var7;
3107 RET_LABEL6:(void)0;
3108 }
3109 }
3110 {
3111 { /* Inline parser_nodes#AAssignFormExpr#n_assign (self) on <self:ACallAssignExpr> */
3112 var10 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
3113 if (unlikely(var10 == NULL)) {
3114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
3115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1989);
3116 fatal_exit(1);
3117 }
3118 var8 = var10;
3119 RET_LABEL9:(void)0;
3120 }
3121 }
3122 {
3123 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:ACallAssignExpr> */
3124 var13 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
3125 if (unlikely(var13 == NULL)) {
3126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992);
3128 fatal_exit(1);
3129 }
3130 var11 = var13;
3131 RET_LABEL12:(void)0;
3132 }
3133 }
3134 {
3135 nitc__parser_prod___AVarAssignExpr___init_avarassignexpr(var1, var5, var8, var11); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <var1:AVarAssignExpr>*/
3136 }
3137 var = var1;
3138 goto RET_LABEL;
3139 RET_LABEL:;
3140 return var;
3141 }
3142 /* method scope#ACallReassignExpr#variable_create for (self: ACallReassignExpr, Variable): AVarFormExpr */
3143 val* nitc__scope___ACallReassignExpr___ACallFormExpr__variable_create(val* self, val* p0) {
3144 val* var /* : AVarFormExpr */;
3145 val* var_variable /* var variable: Variable */;
3146 val* var2 /* : AVarReassignExpr */;
3147 val* var3 /* : AQid */;
3148 val* var5 /* : AQid */;
3149 val* var6 /* : TId */;
3150 val* var8 /* : TId */;
3151 val* var9 /* : AAssignOp */;
3152 val* var11 /* : AAssignOp */;
3153 val* var12 /* : AExpr */;
3154 val* var14 /* : AExpr */;
3155 var_variable = p0;
3156 {
3157 { /* Inline scope#Variable#warn_unread= (var_variable,0) on <var_variable:Variable> */
3158 var_variable->attrs[COLOR_nitc__scope__Variable___warn_unread].s = 0; /* _warn_unread on <var_variable:Variable> */
3159 RET_LABEL1:(void)0;
3160 }
3161 }
3162 var2 = NEW_nitc__AVarReassignExpr(&type_nitc__AVarReassignExpr);
3163 {
3164 { /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:ACallReassignExpr> */
3165 var5 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallReassignExpr> */
3166 if (unlikely(var5 == NULL)) {
3167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
3168 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296);
3169 fatal_exit(1);
3170 }
3171 var3 = var5;
3172 RET_LABEL4:(void)0;
3173 }
3174 }
3175 {
3176 { /* Inline parser_nodes#AQid#n_id (var3) on <var3:AQid> */
3177 var8 = var3->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var3:AQid> */
3178 if (unlikely(var8 == NULL)) {
3179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3180 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658);
3181 fatal_exit(1);
3182 }
3183 var6 = var8;
3184 RET_LABEL7:(void)0;
3185 }
3186 }
3187 {
3188 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:ACallReassignExpr> */
3189 var11 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
3190 if (unlikely(var11 == NULL)) {
3191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
3192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2000);
3193 fatal_exit(1);
3194 }
3195 var9 = var11;
3196 RET_LABEL10:(void)0;
3197 }
3198 }
3199 {
3200 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ACallReassignExpr> */
3201 var14 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
3202 if (unlikely(var14 == NULL)) {
3203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3204 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
3205 fatal_exit(1);
3206 }
3207 var12 = var14;
3208 RET_LABEL13:(void)0;
3209 }
3210 }
3211 {
3212 nitc__parser_prod___AVarReassignExpr___init_avarreassignexpr(var2, var6, var9, var12); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <var2:AVarReassignExpr>*/
3213 }
3214 var = var2;
3215 goto RET_LABEL;
3216 RET_LABEL:;
3217 return var;
3218 }