c_src: update Makefile to compile on MacOSX
[nit.git] / c_src / scope.sep.1.c
1 #include "scope.sep.0.h"
2 /* method scope#ToolContext#scope_phase for (self: ToolContext): Phase */
3 val* scope__ToolContext__scope_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_scope__ToolContext___64dscope_phase].val; /* @scope_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @scope_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method scope#ToolContext#scope_phase for (self: Object): Phase */
17 val* VIRTUAL_scope__ToolContext__scope_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = scope__ToolContext__scope_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method scope#ToolContext#scope_phase= for (self: ToolContext, Phase) */
26 void scope__ToolContext__scope_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_scope__ToolContext___64dscope_phase].val = p0; /* @scope_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method scope#ToolContext#scope_phase= for (self: Object, Phase) */
31 void VIRTUAL_scope__ToolContext__scope_phase_61d(val* self, val* p0) {
32 scope__ToolContext__scope_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method scope#ScopePhase#process_npropdef for (self: ScopePhase, APropdef) */
36 void scope__ScopePhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 val* var /* : ToolContext */;
39 var_npropdef = p0;
40 var = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:ScopePhase>*/;
41 ((void (*)(val*, val*))(var_npropdef->class->vft[COLOR_scope__APropdef__do_scope]))(var_npropdef, var) /* do_scope on <var_npropdef:APropdef>*/;
42 RET_LABEL:;
43 }
44 /* method scope#ScopePhase#process_npropdef for (self: Object, APropdef) */
45 void VIRTUAL_scope__ScopePhase__process_npropdef(val* self, val* p0) {
46 scope__ScopePhase__process_npropdef(self, p0);
47 RET_LABEL:;
48 }
49 /* method scope#Variable#name for (self: Variable): String */
50 val* scope__Variable__name(val* self) {
51 val* var /* : String */;
52 val* var1 /* : String */;
53 var1 = self->attrs[COLOR_scope__Variable___64dname].val; /* @name on <self:Variable> */
54 if (var1 == NULL) {
55 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name");
56 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 36);
57 show_backtrace(1);
58 }
59 var = var1;
60 RET_LABEL:;
61 return var;
62 }
63 /* method scope#Variable#name for (self: Object): String */
64 val* VIRTUAL_scope__Variable__name(val* self) {
65 val* var /* : String */;
66 val* var1 /* : String */;
67 var1 = scope__Variable__name(self);
68 var = var1;
69 RET_LABEL:;
70 return var;
71 }
72 /* method scope#Variable#name= for (self: Variable, String) */
73 void scope__Variable__name_61d(val* self, val* p0) {
74 self->attrs[COLOR_scope__Variable___64dname].val = p0; /* @name on <self:Variable> */
75 RET_LABEL:;
76 }
77 /* method scope#Variable#name= for (self: Object, String) */
78 void VIRTUAL_scope__Variable__name_61d(val* self, val* p0) {
79 scope__Variable__name_61d(self, p0);
80 RET_LABEL:;
81 }
82 /* method scope#Variable#to_s for (self: Variable): String */
83 val* scope__Variable__to_s(val* self) {
84 val* var /* : String */;
85 val* var1 /* : String */;
86 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__Variable__name]))(self) /* name on <self:Variable>*/;
87 var = var1;
88 goto RET_LABEL;
89 RET_LABEL:;
90 return var;
91 }
92 /* method scope#Variable#to_s for (self: Object): String */
93 val* VIRTUAL_scope__Variable__to_s(val* self) {
94 val* var /* : String */;
95 val* var1 /* : String */;
96 var1 = scope__Variable__to_s(self);
97 var = var1;
98 RET_LABEL:;
99 return var;
100 }
101 /* method scope#Variable#init for (self: Variable, String) */
102 void scope__Variable__init(val* self, val* p0) {
103 self->attrs[COLOR_scope__Variable___64dname].val = p0; /* @name on <self:Variable> */
104 RET_LABEL:;
105 }
106 /* method scope#Variable#init for (self: Object, String) */
107 void VIRTUAL_scope__Variable__init(val* self, val* p0) {
108 scope__Variable__init(self, p0);
109 RET_LABEL:;
110 }
111 /* method scope#EscapeMark#name for (self: EscapeMark): nullable String */
112 val* scope__EscapeMark__name(val* self) {
113 val* var /* : nullable String */;
114 val* var1 /* : nullable String */;
115 var1 = self->attrs[COLOR_scope__EscapeMark___64dname].val; /* @name on <self:EscapeMark> */
116 var = var1;
117 RET_LABEL:;
118 return var;
119 }
120 /* method scope#EscapeMark#name for (self: Object): nullable String */
121 val* VIRTUAL_scope__EscapeMark__name(val* self) {
122 val* var /* : nullable String */;
123 val* var1 /* : nullable String */;
124 var1 = scope__EscapeMark__name(self);
125 var = var1;
126 RET_LABEL:;
127 return var;
128 }
129 /* method scope#EscapeMark#name= for (self: EscapeMark, nullable String) */
130 void scope__EscapeMark__name_61d(val* self, val* p0) {
131 self->attrs[COLOR_scope__EscapeMark___64dname].val = p0; /* @name on <self:EscapeMark> */
132 RET_LABEL:;
133 }
134 /* method scope#EscapeMark#name= for (self: Object, nullable String) */
135 void VIRTUAL_scope__EscapeMark__name_61d(val* self, val* p0) {
136 scope__EscapeMark__name_61d(self, p0);
137 RET_LABEL:;
138 }
139 /* method scope#EscapeMark#for_loop for (self: EscapeMark): Bool */
140 short int scope__EscapeMark__for_loop(val* self) {
141 short int var /* : Bool */;
142 short int var1 /* : Bool */;
143 var1 = self->attrs[COLOR_scope__EscapeMark___64dfor_loop].s; /* @for_loop on <self:EscapeMark> */
144 var = var1;
145 RET_LABEL:;
146 return var;
147 }
148 /* method scope#EscapeMark#for_loop for (self: Object): Bool */
149 short int VIRTUAL_scope__EscapeMark__for_loop(val* self) {
150 short int var /* : Bool */;
151 short int var1 /* : Bool */;
152 var1 = scope__EscapeMark__for_loop(self);
153 var = var1;
154 RET_LABEL:;
155 return var;
156 }
157 /* method scope#EscapeMark#for_loop= for (self: EscapeMark, Bool) */
158 void scope__EscapeMark__for_loop_61d(val* self, short int p0) {
159 self->attrs[COLOR_scope__EscapeMark___64dfor_loop].s = p0; /* @for_loop on <self:EscapeMark> */
160 RET_LABEL:;
161 }
162 /* method scope#EscapeMark#for_loop= for (self: Object, Bool) */
163 void VIRTUAL_scope__EscapeMark__for_loop_61d(val* self, short int p0) {
164 scope__EscapeMark__for_loop_61d(self, p0);
165 RET_LABEL:;
166 }
167 /* method scope#EscapeMark#continues for (self: EscapeMark): Array[AContinueExpr] */
168 val* scope__EscapeMark__continues(val* self) {
169 val* var /* : Array[AContinueExpr] */;
170 val* var1 /* : Array[AContinueExpr] */;
171 var1 = self->attrs[COLOR_scope__EscapeMark___64dcontinues].val; /* @continues on <self:EscapeMark> */
172 if (var1 == NULL) {
173 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @continues");
174 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 53);
175 show_backtrace(1);
176 }
177 var = var1;
178 RET_LABEL:;
179 return var;
180 }
181 /* method scope#EscapeMark#continues for (self: Object): Array[AContinueExpr] */
182 val* VIRTUAL_scope__EscapeMark__continues(val* self) {
183 val* var /* : Array[AContinueExpr] */;
184 val* var1 /* : Array[AContinueExpr] */;
185 var1 = scope__EscapeMark__continues(self);
186 var = var1;
187 RET_LABEL:;
188 return var;
189 }
190 /* method scope#EscapeMark#continues= for (self: EscapeMark, Array[AContinueExpr]) */
191 void scope__EscapeMark__continues_61d(val* self, val* p0) {
192 self->attrs[COLOR_scope__EscapeMark___64dcontinues].val = p0; /* @continues on <self:EscapeMark> */
193 RET_LABEL:;
194 }
195 /* method scope#EscapeMark#continues= for (self: Object, Array[AContinueExpr]) */
196 void VIRTUAL_scope__EscapeMark__continues_61d(val* self, val* p0) {
197 scope__EscapeMark__continues_61d(self, p0);
198 RET_LABEL:;
199 }
200 /* method scope#EscapeMark#breaks for (self: EscapeMark): Array[ABreakExpr] */
201 val* scope__EscapeMark__breaks(val* self) {
202 val* var /* : Array[ABreakExpr] */;
203 val* var1 /* : Array[ABreakExpr] */;
204 var1 = self->attrs[COLOR_scope__EscapeMark___64dbreaks].val; /* @breaks on <self:EscapeMark> */
205 if (var1 == NULL) {
206 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @breaks");
207 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 56);
208 show_backtrace(1);
209 }
210 var = var1;
211 RET_LABEL:;
212 return var;
213 }
214 /* method scope#EscapeMark#breaks for (self: Object): Array[ABreakExpr] */
215 val* VIRTUAL_scope__EscapeMark__breaks(val* self) {
216 val* var /* : Array[ABreakExpr] */;
217 val* var1 /* : Array[ABreakExpr] */;
218 var1 = scope__EscapeMark__breaks(self);
219 var = var1;
220 RET_LABEL:;
221 return var;
222 }
223 /* method scope#EscapeMark#breaks= for (self: EscapeMark, Array[ABreakExpr]) */
224 void scope__EscapeMark__breaks_61d(val* self, val* p0) {
225 self->attrs[COLOR_scope__EscapeMark___64dbreaks].val = p0; /* @breaks on <self:EscapeMark> */
226 RET_LABEL:;
227 }
228 /* method scope#EscapeMark#breaks= for (self: Object, Array[ABreakExpr]) */
229 void VIRTUAL_scope__EscapeMark__breaks_61d(val* self, val* p0) {
230 scope__EscapeMark__breaks_61d(self, p0);
231 RET_LABEL:;
232 }
233 /* method scope#EscapeMark#init for (self: EscapeMark, nullable String, Bool) */
234 void scope__EscapeMark__init(val* self, val* p0, short int p1) {
235 self->attrs[COLOR_scope__EscapeMark___64dname].val = p0; /* @name on <self:EscapeMark> */
236 self->attrs[COLOR_scope__EscapeMark___64dfor_loop].s = p1; /* @for_loop on <self:EscapeMark> */
237 RET_LABEL:;
238 }
239 /* method scope#EscapeMark#init for (self: Object, nullable String, Bool) */
240 void VIRTUAL_scope__EscapeMark__init(val* self, val* p0, short int p1) {
241 scope__EscapeMark__init(self, p0, p1);
242 RET_LABEL:;
243 }
244 /* method scope#ScopeVisitor#toolcontext for (self: ScopeVisitor): ToolContext */
245 val* scope__ScopeVisitor__toolcontext(val* self) {
246 val* var /* : ToolContext */;
247 val* var1 /* : ToolContext */;
248 var1 = self->attrs[COLOR_scope__ScopeVisitor___64dtoolcontext].val; /* @toolcontext on <self:ScopeVisitor> */
249 if (var1 == NULL) {
250 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext");
251 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 68);
252 show_backtrace(1);
253 }
254 var = var1;
255 RET_LABEL:;
256 return var;
257 }
258 /* method scope#ScopeVisitor#toolcontext for (self: Object): ToolContext */
259 val* VIRTUAL_scope__ScopeVisitor__toolcontext(val* self) {
260 val* var /* : ToolContext */;
261 val* var1 /* : ToolContext */;
262 var1 = scope__ScopeVisitor__toolcontext(self);
263 var = var1;
264 RET_LABEL:;
265 return var;
266 }
267 /* method scope#ScopeVisitor#toolcontext= for (self: ScopeVisitor, ToolContext) */
268 void scope__ScopeVisitor__toolcontext_61d(val* self, val* p0) {
269 self->attrs[COLOR_scope__ScopeVisitor___64dtoolcontext].val = p0; /* @toolcontext on <self:ScopeVisitor> */
270 RET_LABEL:;
271 }
272 /* method scope#ScopeVisitor#toolcontext= for (self: Object, ToolContext) */
273 void VIRTUAL_scope__ScopeVisitor__toolcontext_61d(val* self, val* p0) {
274 scope__ScopeVisitor__toolcontext_61d(self, p0);
275 RET_LABEL:;
276 }
277 /* method scope#ScopeVisitor#selfvariable for (self: ScopeVisitor): Variable */
278 val* scope__ScopeVisitor__selfvariable(val* self) {
279 val* var /* : Variable */;
280 val* var1 /* : Variable */;
281 var1 = self->attrs[COLOR_scope__ScopeVisitor___64dselfvariable].val; /* @selfvariable on <self:ScopeVisitor> */
282 if (var1 == NULL) {
283 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @selfvariable");
284 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 71);
285 show_backtrace(1);
286 }
287 var = var1;
288 RET_LABEL:;
289 return var;
290 }
291 /* method scope#ScopeVisitor#selfvariable for (self: Object): Variable */
292 val* VIRTUAL_scope__ScopeVisitor__selfvariable(val* self) {
293 val* var /* : Variable */;
294 val* var1 /* : Variable */;
295 var1 = scope__ScopeVisitor__selfvariable(self);
296 var = var1;
297 RET_LABEL:;
298 return var;
299 }
300 /* method scope#ScopeVisitor#selfvariable= for (self: ScopeVisitor, Variable) */
301 void scope__ScopeVisitor__selfvariable_61d(val* self, val* p0) {
302 self->attrs[COLOR_scope__ScopeVisitor___64dselfvariable].val = p0; /* @selfvariable on <self:ScopeVisitor> */
303 RET_LABEL:;
304 }
305 /* method scope#ScopeVisitor#selfvariable= for (self: Object, Variable) */
306 void VIRTUAL_scope__ScopeVisitor__selfvariable_61d(val* self, val* p0) {
307 scope__ScopeVisitor__selfvariable_61d(self, p0);
308 RET_LABEL:;
309 }
310 /* method scope#ScopeVisitor#init for (self: ScopeVisitor, ToolContext) */
311 void scope__ScopeVisitor__init(val* self, val* p0) {
312 val* var_toolcontext /* var toolcontext: ToolContext */;
313 val* var /* : List[Scope] */;
314 val* var1 /* : Scope */;
315 var_toolcontext = p0;
316 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:ScopeVisitor>*/;
317 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on <self:ScopeVisitor>*/;
318 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
319 var1 = NEW_scope__Scope(&type_scope__Scope);
320 ((void (*)(val*))(var1->class->vft[COLOR_scope__Scope__init]))(var1) /* init on <var1:Scope>*/;
321 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var1) /* add on <var:List[Scope]>*/;
322 RET_LABEL:;
323 }
324 /* method scope#ScopeVisitor#init for (self: Object, ToolContext) */
325 void VIRTUAL_scope__ScopeVisitor__init(val* self, val* p0) {
326 scope__ScopeVisitor__init(self, p0);
327 RET_LABEL:;
328 }
329 /* method scope#ScopeVisitor#scopes for (self: ScopeVisitor): List[Scope] */
330 val* scope__ScopeVisitor__scopes(val* self) {
331 val* var /* : List[Scope] */;
332 val* var1 /* : List[Scope] */;
333 var1 = self->attrs[COLOR_scope__ScopeVisitor___64dscopes].val; /* @scopes on <self:ScopeVisitor> */
334 if (var1 == NULL) {
335 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @scopes");
336 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 79);
337 show_backtrace(1);
338 }
339 var = var1;
340 RET_LABEL:;
341 return var;
342 }
343 /* method scope#ScopeVisitor#scopes for (self: Object): List[Scope] */
344 val* VIRTUAL_scope__ScopeVisitor__scopes(val* self) {
345 val* var /* : List[Scope] */;
346 val* var1 /* : List[Scope] */;
347 var1 = scope__ScopeVisitor__scopes(self);
348 var = var1;
349 RET_LABEL:;
350 return var;
351 }
352 /* method scope#ScopeVisitor#scopes= for (self: ScopeVisitor, List[Scope]) */
353 void scope__ScopeVisitor__scopes_61d(val* self, val* p0) {
354 self->attrs[COLOR_scope__ScopeVisitor___64dscopes].val = p0; /* @scopes on <self:ScopeVisitor> */
355 RET_LABEL:;
356 }
357 /* method scope#ScopeVisitor#scopes= for (self: Object, List[Scope]) */
358 void VIRTUAL_scope__ScopeVisitor__scopes_61d(val* self, val* p0) {
359 scope__ScopeVisitor__scopes_61d(self, p0);
360 RET_LABEL:;
361 }
362 /* method scope#ScopeVisitor#register_variable for (self: ScopeVisitor, ANode, Variable): Bool */
363 short int scope__ScopeVisitor__register_variable(val* self, val* p0, val* p1) {
364 short int var /* : Bool */;
365 val* var_node /* var node: ANode */;
366 val* var_variable /* var variable: Variable */;
367 val* var1 /* : String */;
368 val* var_name /* var name: String */;
369 val* var2 /* : nullable Variable */;
370 val* var_found /* var found: nullable Variable */;
371 val* var3 /* : null */;
372 short int var4 /* : Bool */;
373 static val* varonce;
374 val* var5 /* : String */;
375 char* var6 /* : NativeString */;
376 long var7 /* : Int */;
377 val* var8 /* : String */;
378 static val* varonce9;
379 val* var10 /* : String */;
380 char* var11 /* : NativeString */;
381 long var12 /* : Int */;
382 val* var13 /* : String */;
383 val* var14 /* : Array[Object] */;
384 long var15 /* : Int */;
385 val* var16 /* : NativeArray[Object] */;
386 val* var17 /* : String */;
387 short int var18 /* : Bool */;
388 val* var19 /* : List[Scope] */;
389 val* var20 /* : nullable Object */;
390 val* var21 /* : HashMap[String, Variable] */;
391 short int var22 /* : Bool */;
392 var_node = p0;
393 var_variable = p1;
394 var1 = ((val* (*)(val*))(var_variable->class->vft[COLOR_scope__Variable__name]))(var_variable) /* name on <var_variable:Variable>*/;
395 var_name = var1;
396 var2 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__search_variable]))(self, var_name) /* search_variable on <self:ScopeVisitor>*/;
397 var_found = var2;
398 var3 = NULL;
399 if (var_found == NULL) {
400 var4 = 0; /* is null */
401 } else {
402 var4 = 1; /* arg is null and recv is not */
403 }
404 if (var4){
405 if (varonce) {
406 var5 = varonce;
407 } else {
408 var6 = "Error: A variable named `";
409 var7 = 25;
410 var8 = string__NativeString__to_s_with_length(var6, var7);
411 var5 = var8;
412 varonce = var5;
413 }
414 if (varonce9) {
415 var10 = varonce9;
416 } else {
417 var11 = "\' already exists";
418 var12 = 16;
419 var13 = string__NativeString__to_s_with_length(var11, var12);
420 var10 = var13;
421 varonce9 = var10;
422 }
423 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
424 { /* var14 = array_instance Array[Object] */
425 var15 = 3;
426 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
427 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
428 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_name;
429 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
430 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
431 }
432 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
433 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_node, var17) /* error on <self:ScopeVisitor>*/;
434 var18 = 0;
435 var = var18;
436 goto RET_LABEL;
437 } else {
438 }
439 var19 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
440 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__first]))(var19) /* first on <var19:List[Scope]>*/;
441 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_scope__Scope__variables]))(var20) /* variables on <var20:nullable Object(Scope)>*/;
442 ((void (*)(val*, val*, val*))(var21->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var21, var_name, var_variable) /* []= on <var21:HashMap[String, Variable]>*/;
443 var22 = 1;
444 var = var22;
445 goto RET_LABEL;
446 RET_LABEL:;
447 return var;
448 }
449 /* method scope#ScopeVisitor#register_variable for (self: Object, ANode, Variable): Bool */
450 short int VIRTUAL_scope__ScopeVisitor__register_variable(val* self, val* p0, val* p1) {
451 short int var /* : Bool */;
452 short int var1 /* : Bool */;
453 var1 = scope__ScopeVisitor__register_variable(self, p0, p1);
454 var = var1;
455 RET_LABEL:;
456 return var;
457 }
458 /* method scope#ScopeVisitor#search_variable for (self: ScopeVisitor, String): nullable Variable */
459 val* scope__ScopeVisitor__search_variable(val* self, val* p0) {
460 val* var /* : nullable Variable */;
461 val* var_name /* var name: String */;
462 val* var1 /* : List[Scope] */;
463 val* var2 /* : Iterator[nullable Object] */;
464 short int var3 /* : Bool */;
465 val* var4 /* : nullable Object */;
466 val* var_scope /* var scope: Scope */;
467 val* var5 /* : nullable Variable */;
468 val* var_res /* var res: nullable Variable */;
469 val* var6 /* : null */;
470 short int var7 /* : Bool */;
471 val* var8 /* : null */;
472 var_name = p0;
473 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
474 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:List[Scope]>*/;
475 for(;;) {
476 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
477 if(!var3) break;
478 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
479 var_scope = var4;
480 var5 = ((val* (*)(val*, val*))(var_scope->class->vft[COLOR_scope__Scope__get_variable]))(var_scope, var_name) /* get_variable on <var_scope:Scope>*/;
481 var_res = var5;
482 var6 = NULL;
483 if (var_res == NULL) {
484 var7 = 0; /* is null */
485 } else {
486 var7 = 1; /* arg is null and recv is not */
487 }
488 if (var7){
489 var = var_res;
490 goto RET_LABEL;
491 } else {
492 }
493 CONTINUE_label: (void)0;
494 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
495 }
496 BREAK_label: (void)0;
497 var8 = NULL;
498 var = var8;
499 goto RET_LABEL;
500 RET_LABEL:;
501 return var;
502 }
503 /* method scope#ScopeVisitor#search_variable for (self: Object, String): nullable Variable */
504 val* VIRTUAL_scope__ScopeVisitor__search_variable(val* self, val* p0) {
505 val* var /* : nullable Variable */;
506 val* var1 /* : nullable Variable */;
507 var1 = scope__ScopeVisitor__search_variable(self, p0);
508 var = var1;
509 RET_LABEL:;
510 return var;
511 }
512 /* method scope#ScopeVisitor#visit for (self: ScopeVisitor, ANode) */
513 void scope__ScopeVisitor__visit(val* self, val* p0) {
514 val* var_n /* var n: ANode */;
515 var_n = p0;
516 ((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__ANode__accept_scope_visitor]))(var_n, self) /* accept_scope_visitor on <var_n:ANode>*/;
517 RET_LABEL:;
518 }
519 /* method scope#ScopeVisitor#visit for (self: Object, ANode) */
520 void VIRTUAL_scope__ScopeVisitor__visit(val* self, val* p0) {
521 scope__ScopeVisitor__visit(self, p0);
522 RET_LABEL:;
523 }
524 /* method scope#ScopeVisitor#enter_visit_block for (self: ScopeVisitor, nullable AExpr, nullable EscapeMark) */
525 void scope__ScopeVisitor__enter_visit_block(val* self, val* p0, val* p1) {
526 val* var_node /* var node: nullable AExpr */;
527 val* var_escapemark /* var escapemark: nullable EscapeMark */;
528 val* var /* : null */;
529 short int var1 /* : Bool */;
530 val* var2 /* : Scope */;
531 val* var_scope /* var scope: Scope */;
532 val* var3 /* : List[Scope] */;
533 val* var4 /* : List[Scope] */;
534 val* var5 /* : nullable Object */;
535 var_node = p0;
536 var_escapemark = p1;
537 var = NULL;
538 if (var_node == NULL) {
539 var1 = 1; /* is null */
540 } else {
541 var1 = 0; /* arg is null but recv is not */
542 }
543 if (var1){
544 goto RET_LABEL;
545 } else {
546 }
547 var2 = NEW_scope__Scope(&type_scope__Scope);
548 ((void (*)(val*))(var2->class->vft[COLOR_scope__Scope__init]))(var2) /* init on <var2:Scope>*/;
549 var_scope = var2;
550 ((void (*)(val*, val*))(var_scope->class->vft[COLOR_scope__Scope__escapemark_61d]))(var_scope, var_escapemark) /* escapemark= on <var_scope:Scope>*/;
551 var3 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
552 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Sequence__unshift]))(var3, var_scope) /* unshift on <var3:List[Scope]>*/;
553 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(self, var_node) /* enter_visit on <self:ScopeVisitor>*/;
554 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
555 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Sequence__shift]))(var4) /* shift on <var4:List[Scope]>*/;
556 var5;
557 RET_LABEL:;
558 }
559 /* method scope#ScopeVisitor#enter_visit_block for (self: Object, nullable AExpr, nullable EscapeMark) */
560 void VIRTUAL_scope__ScopeVisitor__enter_visit_block(val* self, val* p0, val* p1) {
561 scope__ScopeVisitor__enter_visit_block(self, p0, p1);
562 RET_LABEL:;
563 }
564 /* method scope#ScopeVisitor#search_label for (self: ScopeVisitor, String): nullable EscapeMark */
565 val* scope__ScopeVisitor__search_label(val* self, val* p0) {
566 val* var /* : nullable EscapeMark */;
567 val* var_name /* var name: String */;
568 val* var1 /* : List[Scope] */;
569 val* var2 /* : Iterator[nullable Object] */;
570 short int var3 /* : Bool */;
571 val* var4 /* : nullable Object */;
572 val* var_scope /* var scope: Scope */;
573 val* var5 /* : nullable EscapeMark */;
574 val* var_res /* var res: nullable EscapeMark */;
575 short int var6 /* : Bool */;
576 val* var7 /* : null */;
577 short int var8 /* : Bool */;
578 short int var_ /* var : Bool */;
579 val* var9 /* : nullable String */;
580 short int var10 /* : Bool */;
581 val* var11 /* : null */;
582 var_name = p0;
583 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
584 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:List[Scope]>*/;
585 for(;;) {
586 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
587 if(!var3) break;
588 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
589 var_scope = var4;
590 var5 = ((val* (*)(val*))(var_scope->class->vft[COLOR_scope__Scope__escapemark]))(var_scope) /* escapemark on <var_scope:Scope>*/;
591 var_res = var5;
592 var7 = NULL;
593 if (var_res == NULL) {
594 var8 = 0; /* is null */
595 } else {
596 var8 = 1; /* arg is null and recv is not */
597 }
598 var_ = var8;
599 if (var8){
600 var9 = ((val* (*)(val*))(var_res->class->vft[COLOR_scope__EscapeMark__name]))(var_res) /* name on <var_res:nullable EscapeMark(EscapeMark)>*/;
601 if (var9 == NULL) {
602 var10 = 0; /* <var_name:String> cannot be null */
603 } else {
604 var10 = ((short int (*)(val*, val*))(var9->class->vft[COLOR_kernel__Object___61d_61d]))(var9, var_name) /* == on <var9:nullable String>*/;
605 }
606 var6 = var10;
607 } else {
608 var6 = var_;
609 }
610 if (var6){
611 var = var_res;
612 goto RET_LABEL;
613 } else {
614 }
615 CONTINUE_label: (void)0;
616 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
617 }
618 BREAK_label: (void)0;
619 var11 = NULL;
620 var = var11;
621 goto RET_LABEL;
622 RET_LABEL:;
623 return var;
624 }
625 /* method scope#ScopeVisitor#search_label for (self: Object, String): nullable EscapeMark */
626 val* VIRTUAL_scope__ScopeVisitor__search_label(val* self, val* p0) {
627 val* var /* : nullable EscapeMark */;
628 val* var1 /* : nullable EscapeMark */;
629 var1 = scope__ScopeVisitor__search_label(self, p0);
630 var = var1;
631 RET_LABEL:;
632 return var;
633 }
634 /* method scope#ScopeVisitor#make_escape_mark for (self: ScopeVisitor, nullable ALabel, Bool): EscapeMark */
635 val* scope__ScopeVisitor__make_escape_mark(val* self, val* p0, short int p1) {
636 val* var /* : EscapeMark */;
637 val* var_nlabel /* var nlabel: nullable ALabel */;
638 short int var_for_loop /* var for_loop: Bool */;
639 val* var1 /* : null */;
640 short int var2 /* : Bool */;
641 val* var3 /* : TId */;
642 val* var4 /* : String */;
643 val* var_name /* var name: nullable String */;
644 val* var5 /* : nullable EscapeMark */;
645 val* var_found /* var found: nullable EscapeMark */;
646 val* var6 /* : null */;
647 short int var7 /* : Bool */;
648 static val* varonce;
649 val* var8 /* : String */;
650 char* var9 /* : NativeString */;
651 long var10 /* : Int */;
652 val* var11 /* : String */;
653 static val* varonce12;
654 val* var13 /* : String */;
655 char* var14 /* : NativeString */;
656 long var15 /* : Int */;
657 val* var16 /* : String */;
658 val* var17 /* : Array[Object] */;
659 long var18 /* : Int */;
660 val* var19 /* : NativeArray[Object] */;
661 val* var20 /* : String */;
662 val* var21 /* : null */;
663 val* var22 /* : EscapeMark */;
664 val* var_res /* var res: EscapeMark */;
665 var_nlabel = p0;
666 var_for_loop = p1;
667 var1 = NULL;
668 if (var_nlabel == NULL) {
669 var2 = 0; /* is null */
670 } else {
671 var2 = 1; /* arg is null and recv is not */
672 }
673 if (var2){
674 var3 = ((val* (*)(val*))(var_nlabel->class->vft[COLOR_parser_nodes__ALabel__n_id]))(var_nlabel) /* n_id on <var_nlabel:nullable ALabel(ALabel)>*/;
675 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_parser_nodes__Token__text]))(var3) /* text on <var3:TId>*/;
676 var_name = var4;
677 var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__search_label]))(self, var_name) /* search_label on <self:ScopeVisitor>*/;
678 var_found = var5;
679 var6 = NULL;
680 if (var_found == NULL) {
681 var7 = 0; /* is null */
682 } else {
683 var7 = 1; /* arg is null and recv is not */
684 }
685 if (var7){
686 if (varonce) {
687 var8 = varonce;
688 } else {
689 var9 = "Syntax error: label ";
690 var10 = 20;
691 var11 = string__NativeString__to_s_with_length(var9, var10);
692 var8 = var11;
693 varonce = var8;
694 }
695 if (varonce12) {
696 var13 = varonce12;
697 } else {
698 var14 = " already defined.";
699 var15 = 17;
700 var16 = string__NativeString__to_s_with_length(var14, var15);
701 var13 = var16;
702 varonce12 = var13;
703 }
704 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
705 { /* var17 = array_instance Array[Object] */
706 var18 = 3;
707 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
708 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var8;
709 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_name;
710 ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13;
711 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
712 }
713 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
714 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_nlabel, var20) /* error on <self:ScopeVisitor>*/;
715 } else {
716 }
717 } else {
718 var21 = NULL;
719 var_name = var21;
720 }
721 var22 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
722 ((void (*)(val*, val*, short int))(var22->class->vft[COLOR_scope__EscapeMark__init]))(var22, var_name, var_for_loop) /* init on <var22:EscapeMark>*/;
723 var_res = var22;
724 var = var_res;
725 goto RET_LABEL;
726 RET_LABEL:;
727 return var;
728 }
729 /* method scope#ScopeVisitor#make_escape_mark for (self: Object, nullable ALabel, Bool): EscapeMark */
730 val* VIRTUAL_scope__ScopeVisitor__make_escape_mark(val* self, val* p0, short int p1) {
731 val* var /* : EscapeMark */;
732 val* var1 /* : EscapeMark */;
733 var1 = scope__ScopeVisitor__make_escape_mark(self, p0, p1);
734 var = var1;
735 RET_LABEL:;
736 return var;
737 }
738 /* method scope#ScopeVisitor#get_escapemark for (self: ScopeVisitor, ANode, nullable ALabel): nullable EscapeMark */
739 val* scope__ScopeVisitor__get_escapemark(val* self, val* p0, val* p1) {
740 val* var /* : nullable EscapeMark */;
741 val* var_node /* var node: ANode */;
742 val* var_nlabel /* var nlabel: nullable ALabel */;
743 val* var1 /* : null */;
744 short int var2 /* : Bool */;
745 val* var3 /* : TId */;
746 val* var4 /* : String */;
747 val* var_name /* var name: String */;
748 val* var5 /* : nullable EscapeMark */;
749 val* var_res /* var res: nullable EscapeMark */;
750 val* var6 /* : null */;
751 short int var7 /* : Bool */;
752 static val* varonce;
753 val* var8 /* : String */;
754 char* var9 /* : NativeString */;
755 long var10 /* : Int */;
756 val* var11 /* : String */;
757 static val* varonce12;
758 val* var13 /* : String */;
759 char* var14 /* : NativeString */;
760 long var15 /* : Int */;
761 val* var16 /* : String */;
762 val* var17 /* : Array[Object] */;
763 long var18 /* : Int */;
764 val* var19 /* : NativeArray[Object] */;
765 val* var20 /* : String */;
766 val* var21 /* : null */;
767 val* var22 /* : List[Scope] */;
768 val* var23 /* : Iterator[nullable Object] */;
769 short int var24 /* : Bool */;
770 val* var25 /* : nullable Object */;
771 val* var_scope /* var scope: Scope */;
772 val* var26 /* : nullable EscapeMark */;
773 val* var_res27 /* var res: nullable EscapeMark */;
774 val* var28 /* : null */;
775 short int var29 /* : Bool */;
776 static val* varonce30;
777 val* var31 /* : String */;
778 char* var32 /* : NativeString */;
779 long var33 /* : Int */;
780 val* var34 /* : String */;
781 val* var35 /* : null */;
782 var_node = p0;
783 var_nlabel = p1;
784 var1 = NULL;
785 if (var_nlabel == NULL) {
786 var2 = 0; /* is null */
787 } else {
788 var2 = 1; /* arg is null and recv is not */
789 }
790 if (var2){
791 var3 = ((val* (*)(val*))(var_nlabel->class->vft[COLOR_parser_nodes__ALabel__n_id]))(var_nlabel) /* n_id on <var_nlabel:nullable ALabel(ALabel)>*/;
792 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_parser_nodes__Token__text]))(var3) /* text on <var3:TId>*/;
793 var_name = var4;
794 var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__search_label]))(self, var_name) /* search_label on <self:ScopeVisitor>*/;
795 var_res = var5;
796 var6 = NULL;
797 if (var_res == NULL) {
798 var7 = 1; /* is null */
799 } else {
800 var7 = 0; /* arg is null but recv is not */
801 }
802 if (var7){
803 if (varonce) {
804 var8 = varonce;
805 } else {
806 var9 = "Syntax error: invalid label ";
807 var10 = 28;
808 var11 = string__NativeString__to_s_with_length(var9, var10);
809 var8 = var11;
810 varonce = var8;
811 }
812 if (varonce12) {
813 var13 = varonce12;
814 } else {
815 var14 = ".";
816 var15 = 1;
817 var16 = string__NativeString__to_s_with_length(var14, var15);
818 var13 = var16;
819 varonce12 = var13;
820 }
821 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
822 { /* var17 = array_instance Array[Object] */
823 var18 = 3;
824 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
825 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var8;
826 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_name;
827 ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13;
828 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
829 }
830 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
831 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_nlabel, var20) /* error on <self:ScopeVisitor>*/;
832 var21 = NULL;
833 var = var21;
834 goto RET_LABEL;
835 } else {
836 }
837 var = var_res;
838 goto RET_LABEL;
839 } else {
840 var22 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on <self:ScopeVisitor>*/;
841 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_abstract_collection__Collection__iterator]))(var22) /* iterator on <var22:List[Scope]>*/;
842 for(;;) {
843 var24 = ((short int (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var23) /* is_ok on <var23:Iterator[nullable Object]>*/;
844 if(!var24) break;
845 var25 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__item]))(var23) /* item on <var23:Iterator[nullable Object]>*/;
846 var_scope = var25;
847 var26 = ((val* (*)(val*))(var_scope->class->vft[COLOR_scope__Scope__escapemark]))(var_scope) /* escapemark on <var_scope:Scope>*/;
848 var_res27 = var26;
849 var28 = NULL;
850 if (var_res27 == NULL) {
851 var29 = 0; /* is null */
852 } else {
853 var29 = 1; /* arg is null and recv is not */
854 }
855 if (var29){
856 var = var_res27;
857 goto RET_LABEL;
858 } else {
859 }
860 CONTINUE_label: (void)0;
861 ((void (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__next]))(var23) /* next on <var23:Iterator[nullable Object]>*/;
862 }
863 BREAK_label: (void)0;
864 if (varonce30) {
865 var31 = varonce30;
866 } else {
867 var32 = "Syntax Error: \'break\' statment outside block.";
868 var33 = 45;
869 var34 = string__NativeString__to_s_with_length(var32, var33);
870 var31 = var34;
871 varonce30 = var31;
872 }
873 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_node, var31) /* error on <self:ScopeVisitor>*/;
874 var35 = NULL;
875 var = var35;
876 goto RET_LABEL;
877 }
878 RET_LABEL:;
879 return var;
880 }
881 /* method scope#ScopeVisitor#get_escapemark for (self: Object, ANode, nullable ALabel): nullable EscapeMark */
882 val* VIRTUAL_scope__ScopeVisitor__get_escapemark(val* self, val* p0, val* p1) {
883 val* var /* : nullable EscapeMark */;
884 val* var1 /* : nullable EscapeMark */;
885 var1 = scope__ScopeVisitor__get_escapemark(self, p0, p1);
886 var = var1;
887 RET_LABEL:;
888 return var;
889 }
890 /* method scope#ScopeVisitor#error for (self: ScopeVisitor, ANode, String) */
891 void scope__ScopeVisitor__error(val* self, val* p0, val* p1) {
892 val* var_node /* var node: ANode */;
893 val* var_message /* var message: String */;
894 val* var /* : ToolContext */;
895 val* var1 /* : Location */;
896 var_node = p0;
897 var_message = p1;
898 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__toolcontext]))(self) /* toolcontext on <self:ScopeVisitor>*/;
899 var1 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_node) /* hot_location on <var_node:ANode>*/;
900 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_toolcontext__ToolContext__error]))(var, var1, var_message) /* error on <var:ToolContext>*/;
901 RET_LABEL:;
902 }
903 /* method scope#ScopeVisitor#error for (self: Object, ANode, String) */
904 void VIRTUAL_scope__ScopeVisitor__error(val* self, val* p0, val* p1) {
905 scope__ScopeVisitor__error(self, p0, p1);
906 RET_LABEL:;
907 }
908 /* method scope#Scope#variables for (self: Scope): HashMap[String, Variable] */
909 val* scope__Scope__variables(val* self) {
910 val* var /* : HashMap[String, Variable] */;
911 val* var1 /* : HashMap[String, Variable] */;
912 var1 = self->attrs[COLOR_scope__Scope___64dvariables].val; /* @variables on <self:Scope> */
913 if (var1 == NULL) {
914 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @variables");
915 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 192);
916 show_backtrace(1);
917 }
918 var = var1;
919 RET_LABEL:;
920 return var;
921 }
922 /* method scope#Scope#variables for (self: Object): HashMap[String, Variable] */
923 val* VIRTUAL_scope__Scope__variables(val* self) {
924 val* var /* : HashMap[String, Variable] */;
925 val* var1 /* : HashMap[String, Variable] */;
926 var1 = scope__Scope__variables(self);
927 var = var1;
928 RET_LABEL:;
929 return var;
930 }
931 /* method scope#Scope#variables= for (self: Scope, HashMap[String, Variable]) */
932 void scope__Scope__variables_61d(val* self, val* p0) {
933 self->attrs[COLOR_scope__Scope___64dvariables].val = p0; /* @variables on <self:Scope> */
934 RET_LABEL:;
935 }
936 /* method scope#Scope#variables= for (self: Object, HashMap[String, Variable]) */
937 void VIRTUAL_scope__Scope__variables_61d(val* self, val* p0) {
938 scope__Scope__variables_61d(self, p0);
939 RET_LABEL:;
940 }
941 /* method scope#Scope#escapemark for (self: Scope): nullable EscapeMark */
942 val* scope__Scope__escapemark(val* self) {
943 val* var /* : nullable EscapeMark */;
944 val* var1 /* : nullable EscapeMark */;
945 var1 = self->attrs[COLOR_scope__Scope___64descapemark].val; /* @escapemark on <self:Scope> */
946 var = var1;
947 RET_LABEL:;
948 return var;
949 }
950 /* method scope#Scope#escapemark for (self: Object): nullable EscapeMark */
951 val* VIRTUAL_scope__Scope__escapemark(val* self) {
952 val* var /* : nullable EscapeMark */;
953 val* var1 /* : nullable EscapeMark */;
954 var1 = scope__Scope__escapemark(self);
955 var = var1;
956 RET_LABEL:;
957 return var;
958 }
959 /* method scope#Scope#escapemark= for (self: Scope, nullable EscapeMark) */
960 void scope__Scope__escapemark_61d(val* self, val* p0) {
961 self->attrs[COLOR_scope__Scope___64descapemark].val = p0; /* @escapemark on <self:Scope> */
962 RET_LABEL:;
963 }
964 /* method scope#Scope#escapemark= for (self: Object, nullable EscapeMark) */
965 void VIRTUAL_scope__Scope__escapemark_61d(val* self, val* p0) {
966 scope__Scope__escapemark_61d(self, p0);
967 RET_LABEL:;
968 }
969 /* method scope#Scope#get_variable for (self: Scope, String): nullable Variable */
970 val* scope__Scope__get_variable(val* self, val* p0) {
971 val* var /* : nullable Variable */;
972 val* var_name /* var name: String */;
973 val* var1 /* : HashMap[String, Variable] */;
974 short int var2 /* : Bool */;
975 val* var3 /* : HashMap[String, Variable] */;
976 val* var4 /* : nullable Object */;
977 val* var5 /* : null */;
978 var_name = p0;
979 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__Scope__variables]))(self) /* variables on <self:Scope>*/;
980 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var1, var_name) /* has_key on <var1:HashMap[String, Variable]>*/;
981 if (var2){
982 var3 = ((val* (*)(val*))(self->class->vft[COLOR_scope__Scope__variables]))(self) /* variables on <self:Scope>*/;
983 var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var3, var_name) /* [] on <var3:HashMap[String, Variable]>*/;
984 var = var4;
985 goto RET_LABEL;
986 } else {
987 var5 = NULL;
988 var = var5;
989 goto RET_LABEL;
990 }
991 RET_LABEL:;
992 return var;
993 }
994 /* method scope#Scope#get_variable for (self: Object, String): nullable Variable */
995 val* VIRTUAL_scope__Scope__get_variable(val* self, val* p0) {
996 val* var /* : nullable Variable */;
997 val* var1 /* : nullable Variable */;
998 var1 = scope__Scope__get_variable(self, p0);
999 var = var1;
1000 RET_LABEL:;
1001 return var;
1002 }
1003 /* method scope#Scope#init for (self: Scope) */
1004 void scope__Scope__init(val* self) {
1005 RET_LABEL:;
1006 }
1007 /* method scope#Scope#init for (self: Object) */
1008 void VIRTUAL_scope__Scope__init(val* self) {
1009 scope__Scope__init(self);
1010 RET_LABEL:;
1011 }
1012 /* method scope#ANode#accept_scope_visitor for (self: ANode, ScopeVisitor) */
1013 void scope__ANode__accept_scope_visitor(val* self, val* p0) {
1014 val* var_v /* var v: ScopeVisitor */;
1015 var_v = p0;
1016 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
1017 RET_LABEL:;
1018 }
1019 /* method scope#ANode#accept_scope_visitor for (self: Object, ScopeVisitor) */
1020 void VIRTUAL_scope__ANode__accept_scope_visitor(val* self, val* p0) {
1021 scope__ANode__accept_scope_visitor(self, p0);
1022 RET_LABEL:;
1023 }
1024 /* method scope#APropdef#do_scope for (self: APropdef, ToolContext) */
1025 void scope__APropdef__do_scope(val* self, val* p0) {
1026 val* var_toolcontext /* var toolcontext: ToolContext */;
1027 val* var /* : ScopeVisitor */;
1028 val* var_v /* var v: ScopeVisitor */;
1029 var_toolcontext = p0;
1030 var = NEW_scope__ScopeVisitor(&type_scope__ScopeVisitor);
1031 ((void (*)(val*, val*))(var->class->vft[COLOR_scope__ScopeVisitor__init]))(var, var_toolcontext) /* init on <var:ScopeVisitor>*/;
1032 var_v = var;
1033 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:ScopeVisitor>*/;
1034 RET_LABEL:;
1035 }
1036 /* method scope#APropdef#do_scope for (self: Object, ToolContext) */
1037 void VIRTUAL_scope__APropdef__do_scope(val* self, val* p0) {
1038 scope__APropdef__do_scope(self, p0);
1039 RET_LABEL:;
1040 }
1041 /* method scope#AParam#variable for (self: AParam): nullable Variable */
1042 val* scope__AParam__variable(val* self) {
1043 val* var /* : nullable Variable */;
1044 val* var1 /* : nullable Variable */;
1045 var1 = self->attrs[COLOR_scope__AParam___64dvariable].val; /* @variable on <self:AParam> */
1046 var = var1;
1047 RET_LABEL:;
1048 return var;
1049 }
1050 /* method scope#AParam#variable for (self: Object): nullable Variable */
1051 val* VIRTUAL_scope__AParam__variable(val* self) {
1052 val* var /* : nullable Variable */;
1053 val* var1 /* : nullable Variable */;
1054 var1 = scope__AParam__variable(self);
1055 var = var1;
1056 RET_LABEL:;
1057 return var;
1058 }
1059 /* method scope#AParam#variable= for (self: AParam, nullable Variable) */
1060 void scope__AParam__variable_61d(val* self, val* p0) {
1061 self->attrs[COLOR_scope__AParam___64dvariable].val = p0; /* @variable on <self:AParam> */
1062 RET_LABEL:;
1063 }
1064 /* method scope#AParam#variable= for (self: Object, nullable Variable) */
1065 void VIRTUAL_scope__AParam__variable_61d(val* self, val* p0) {
1066 scope__AParam__variable_61d(self, p0);
1067 RET_LABEL:;
1068 }
1069 /* method scope#AParam#accept_scope_visitor for (self: AParam, ScopeVisitor) */
1070 void scope__AParam__accept_scope_visitor(val* self, val* p0) {
1071 val* var_v /* var v: ScopeVisitor */;
1072 val* var /* : TId */;
1073 val* var_nid /* var nid: TId */;
1074 val* var1 /* : Variable */;
1075 val* var2 /* : String */;
1076 val* var_variable /* var variable: Variable */;
1077 short int var3 /* : Bool */;
1078 var_v = p0;
1079 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AParam__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AParam>*/;
1080 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AParam__n_id]))(self) /* n_id on <self:AParam>*/;
1081 var_nid = var;
1082 var1 = NEW_scope__Variable(&type_scope__Variable);
1083 var2 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on <var_nid:TId>*/;
1084 ((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on <var1:Variable>*/;
1085 var_variable = var1;
1086 var3 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_variable) /* register_variable on <var_v:ScopeVisitor>*/;
1087 var3;
1088 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AParam__variable_61d]))(self, var_variable) /* variable= on <self:AParam>*/;
1089 RET_LABEL:;
1090 }
1091 /* method scope#AParam#accept_scope_visitor for (self: Object, ScopeVisitor) */
1092 void VIRTUAL_scope__AParam__accept_scope_visitor(val* self, val* p0) {
1093 scope__AParam__accept_scope_visitor(self, p0);
1094 RET_LABEL:;
1095 }
1096 /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */
1097 val* scope__AVardeclExpr__variable(val* self) {
1098 val* var /* : nullable Variable */;
1099 val* var1 /* : nullable Variable */;
1100 var1 = self->attrs[COLOR_scope__AVardeclExpr___64dvariable].val; /* @variable on <self:AVardeclExpr> */
1101 var = var1;
1102 RET_LABEL:;
1103 return var;
1104 }
1105 /* method scope#AVardeclExpr#variable for (self: Object): nullable Variable */
1106 val* VIRTUAL_scope__AVardeclExpr__variable(val* self) {
1107 val* var /* : nullable Variable */;
1108 val* var1 /* : nullable Variable */;
1109 var1 = scope__AVardeclExpr__variable(self);
1110 var = var1;
1111 RET_LABEL:;
1112 return var;
1113 }
1114 /* method scope#AVardeclExpr#variable= for (self: AVardeclExpr, nullable Variable) */
1115 void scope__AVardeclExpr__variable_61d(val* self, val* p0) {
1116 self->attrs[COLOR_scope__AVardeclExpr___64dvariable].val = p0; /* @variable on <self:AVardeclExpr> */
1117 RET_LABEL:;
1118 }
1119 /* method scope#AVardeclExpr#variable= for (self: Object, nullable Variable) */
1120 void VIRTUAL_scope__AVardeclExpr__variable_61d(val* self, val* p0) {
1121 scope__AVardeclExpr__variable_61d(self, p0);
1122 RET_LABEL:;
1123 }
1124 /* method scope#AVardeclExpr#accept_scope_visitor for (self: AVardeclExpr, ScopeVisitor) */
1125 void scope__AVardeclExpr__accept_scope_visitor(val* self, val* p0) {
1126 val* var_v /* var v: ScopeVisitor */;
1127 val* var /* : TId */;
1128 val* var_nid /* var nid: TId */;
1129 val* var1 /* : Variable */;
1130 val* var2 /* : String */;
1131 val* var_variable /* var variable: Variable */;
1132 short int var3 /* : Bool */;
1133 var_v = p0;
1134 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVardeclExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AVardeclExpr>*/;
1135 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_id]))(self) /* n_id on <self:AVardeclExpr>*/;
1136 var_nid = var;
1137 var1 = NEW_scope__Variable(&type_scope__Variable);
1138 var2 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on <var_nid:TId>*/;
1139 ((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on <var1:Variable>*/;
1140 var_variable = var1;
1141 var3 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_variable) /* register_variable on <var_v:ScopeVisitor>*/;
1142 var3;
1143 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable_61d]))(self, var_variable) /* variable= on <self:AVardeclExpr>*/;
1144 RET_LABEL:;
1145 }
1146 /* method scope#AVardeclExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1147 void VIRTUAL_scope__AVardeclExpr__accept_scope_visitor(val* self, val* p0) {
1148 scope__AVardeclExpr__accept_scope_visitor(self, p0);
1149 RET_LABEL:;
1150 }
1151 /* method scope#ASelfExpr#variable for (self: ASelfExpr): nullable Variable */
1152 val* scope__ASelfExpr__variable(val* self) {
1153 val* var /* : nullable Variable */;
1154 val* var1 /* : nullable Variable */;
1155 var1 = self->attrs[COLOR_scope__ASelfExpr___64dvariable].val; /* @variable on <self:ASelfExpr> */
1156 var = var1;
1157 RET_LABEL:;
1158 return var;
1159 }
1160 /* method scope#ASelfExpr#variable for (self: Object): nullable Variable */
1161 val* VIRTUAL_scope__ASelfExpr__variable(val* self) {
1162 val* var /* : nullable Variable */;
1163 val* var1 /* : nullable Variable */;
1164 var1 = scope__ASelfExpr__variable(self);
1165 var = var1;
1166 RET_LABEL:;
1167 return var;
1168 }
1169 /* method scope#ASelfExpr#variable= for (self: ASelfExpr, nullable Variable) */
1170 void scope__ASelfExpr__variable_61d(val* self, val* p0) {
1171 self->attrs[COLOR_scope__ASelfExpr___64dvariable].val = p0; /* @variable on <self:ASelfExpr> */
1172 RET_LABEL:;
1173 }
1174 /* method scope#ASelfExpr#variable= for (self: Object, nullable Variable) */
1175 void VIRTUAL_scope__ASelfExpr__variable_61d(val* self, val* p0) {
1176 scope__ASelfExpr__variable_61d(self, p0);
1177 RET_LABEL:;
1178 }
1179 /* method scope#ASelfExpr#accept_scope_visitor for (self: ASelfExpr, ScopeVisitor) */
1180 void scope__ASelfExpr__accept_scope_visitor(val* self, val* p0) {
1181 val* var_v /* var v: ScopeVisitor */;
1182 val* var /* : Variable */;
1183 var_v = p0;
1184 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ASelfExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ASelfExpr>*/;
1185 var = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__selfvariable]))(var_v) /* selfvariable on <var_v:ScopeVisitor>*/;
1186 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ASelfExpr__variable_61d]))(self, var) /* variable= on <self:ASelfExpr>*/;
1187 RET_LABEL:;
1188 }
1189 /* method scope#ASelfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1190 void VIRTUAL_scope__ASelfExpr__accept_scope_visitor(val* self, val* p0) {
1191 scope__ASelfExpr__accept_scope_visitor(self, p0);
1192 RET_LABEL:;
1193 }
1194 /* method scope#AContinueExpr#escapemark for (self: AContinueExpr): nullable EscapeMark */
1195 val* scope__AContinueExpr__escapemark(val* self) {
1196 val* var /* : nullable EscapeMark */;
1197 val* var1 /* : nullable EscapeMark */;
1198 var1 = self->attrs[COLOR_scope__AContinueExpr___64descapemark].val; /* @escapemark on <self:AContinueExpr> */
1199 var = var1;
1200 RET_LABEL:;
1201 return var;
1202 }
1203 /* method scope#AContinueExpr#escapemark for (self: Object): nullable EscapeMark */
1204 val* VIRTUAL_scope__AContinueExpr__escapemark(val* self) {
1205 val* var /* : nullable EscapeMark */;
1206 val* var1 /* : nullable EscapeMark */;
1207 var1 = scope__AContinueExpr__escapemark(self);
1208 var = var1;
1209 RET_LABEL:;
1210 return var;
1211 }
1212 /* method scope#AContinueExpr#escapemark= for (self: AContinueExpr, nullable EscapeMark) */
1213 void scope__AContinueExpr__escapemark_61d(val* self, val* p0) {
1214 self->attrs[COLOR_scope__AContinueExpr___64descapemark].val = p0; /* @escapemark on <self:AContinueExpr> */
1215 RET_LABEL:;
1216 }
1217 /* method scope#AContinueExpr#escapemark= for (self: Object, nullable EscapeMark) */
1218 void VIRTUAL_scope__AContinueExpr__escapemark_61d(val* self, val* p0) {
1219 scope__AContinueExpr__escapemark_61d(self, p0);
1220 RET_LABEL:;
1221 }
1222 /* method scope#AContinueExpr#accept_scope_visitor for (self: AContinueExpr, ScopeVisitor) */
1223 void scope__AContinueExpr__accept_scope_visitor(val* self, val* p0) {
1224 val* var_v /* var v: ScopeVisitor */;
1225 val* var /* : nullable ALabel */;
1226 val* var1 /* : nullable EscapeMark */;
1227 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1228 val* var2 /* : null */;
1229 short int var3 /* : Bool */;
1230 short int var4 /* : Bool */;
1231 short int var5 /* : Bool */;
1232 static val* varonce;
1233 val* var6 /* : String */;
1234 char* var7 /* : NativeString */;
1235 long var8 /* : Int */;
1236 val* var9 /* : String */;
1237 val* var10 /* : Array[AContinueExpr] */;
1238 var_v = p0;
1239 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AContinueExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AContinueExpr>*/;
1240 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:AContinueExpr>*/;
1241 var1 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__get_escapemark]))(var_v, self, var) /* get_escapemark on <var_v:ScopeVisitor>*/;
1242 var_escapemark = var1;
1243 var2 = NULL;
1244 if (var_escapemark == NULL) {
1245 var3 = 1; /* is null */
1246 } else {
1247 var3 = 0; /* arg is null but recv is not */
1248 }
1249 if (var3){
1250 goto RET_LABEL;
1251 } else {
1252 }
1253 var4 = ((short int (*)(val*))(var_escapemark->class->vft[COLOR_scope__EscapeMark__for_loop]))(var_escapemark) /* for_loop on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1254 var5 = !var4;
1255 if (var5){
1256 if (varonce) {
1257 var6 = varonce;
1258 } else {
1259 var7 = "Error: cannot \'continue\', only \'break\'.";
1260 var8 = 39;
1261 var9 = string__NativeString__to_s_with_length(var7, var8);
1262 var6 = var9;
1263 varonce = var6;
1264 }
1265 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__error]))(var_v, self, var6) /* error on <var_v:ScopeVisitor>*/;
1266 } else {
1267 }
1268 var10 = ((val* (*)(val*))(var_escapemark->class->vft[COLOR_scope__EscapeMark__continues]))(var_escapemark) /* continues on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1269 ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, self) /* add on <var10:Array[AContinueExpr]>*/;
1270 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AContinueExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:AContinueExpr>*/;
1271 RET_LABEL:;
1272 }
1273 /* method scope#AContinueExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1274 void VIRTUAL_scope__AContinueExpr__accept_scope_visitor(val* self, val* p0) {
1275 scope__AContinueExpr__accept_scope_visitor(self, p0);
1276 RET_LABEL:;
1277 }
1278 /* method scope#ABreakExpr#escapemark for (self: ABreakExpr): nullable EscapeMark */
1279 val* scope__ABreakExpr__escapemark(val* self) {
1280 val* var /* : nullable EscapeMark */;
1281 val* var1 /* : nullable EscapeMark */;
1282 var1 = self->attrs[COLOR_scope__ABreakExpr___64descapemark].val; /* @escapemark on <self:ABreakExpr> */
1283 var = var1;
1284 RET_LABEL:;
1285 return var;
1286 }
1287 /* method scope#ABreakExpr#escapemark for (self: Object): nullable EscapeMark */
1288 val* VIRTUAL_scope__ABreakExpr__escapemark(val* self) {
1289 val* var /* : nullable EscapeMark */;
1290 val* var1 /* : nullable EscapeMark */;
1291 var1 = scope__ABreakExpr__escapemark(self);
1292 var = var1;
1293 RET_LABEL:;
1294 return var;
1295 }
1296 /* method scope#ABreakExpr#escapemark= for (self: ABreakExpr, nullable EscapeMark) */
1297 void scope__ABreakExpr__escapemark_61d(val* self, val* p0) {
1298 self->attrs[COLOR_scope__ABreakExpr___64descapemark].val = p0; /* @escapemark on <self:ABreakExpr> */
1299 RET_LABEL:;
1300 }
1301 /* method scope#ABreakExpr#escapemark= for (self: Object, nullable EscapeMark) */
1302 void VIRTUAL_scope__ABreakExpr__escapemark_61d(val* self, val* p0) {
1303 scope__ABreakExpr__escapemark_61d(self, p0);
1304 RET_LABEL:;
1305 }
1306 /* method scope#ABreakExpr#accept_scope_visitor for (self: ABreakExpr, ScopeVisitor) */
1307 void scope__ABreakExpr__accept_scope_visitor(val* self, val* p0) {
1308 val* var_v /* var v: ScopeVisitor */;
1309 val* var /* : nullable ALabel */;
1310 val* var1 /* : nullable EscapeMark */;
1311 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1312 val* var2 /* : null */;
1313 short int var3 /* : Bool */;
1314 val* var4 /* : Array[ABreakExpr] */;
1315 var_v = p0;
1316 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ABreakExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ABreakExpr>*/;
1317 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:ABreakExpr>*/;
1318 var1 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__get_escapemark]))(var_v, self, var) /* get_escapemark on <var_v:ScopeVisitor>*/;
1319 var_escapemark = var1;
1320 var2 = NULL;
1321 if (var_escapemark == NULL) {
1322 var3 = 1; /* is null */
1323 } else {
1324 var3 = 0; /* arg is null but recv is not */
1325 }
1326 if (var3){
1327 goto RET_LABEL;
1328 } else {
1329 }
1330 var4 = ((val* (*)(val*))(var_escapemark->class->vft[COLOR_scope__EscapeMark__breaks]))(var_escapemark) /* breaks on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1331 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, self) /* add on <var4:Array[ABreakExpr]>*/;
1332 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ABreakExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ABreakExpr>*/;
1333 RET_LABEL:;
1334 }
1335 /* method scope#ABreakExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1336 void VIRTUAL_scope__ABreakExpr__accept_scope_visitor(val* self, val* p0) {
1337 scope__ABreakExpr__accept_scope_visitor(self, p0);
1338 RET_LABEL:;
1339 }
1340 /* method scope#ADoExpr#escapemark for (self: ADoExpr): nullable EscapeMark */
1341 val* scope__ADoExpr__escapemark(val* self) {
1342 val* var /* : nullable EscapeMark */;
1343 val* var1 /* : nullable EscapeMark */;
1344 var1 = self->attrs[COLOR_scope__ADoExpr___64descapemark].val; /* @escapemark on <self:ADoExpr> */
1345 var = var1;
1346 RET_LABEL:;
1347 return var;
1348 }
1349 /* method scope#ADoExpr#escapemark for (self: Object): nullable EscapeMark */
1350 val* VIRTUAL_scope__ADoExpr__escapemark(val* self) {
1351 val* var /* : nullable EscapeMark */;
1352 val* var1 /* : nullable EscapeMark */;
1353 var1 = scope__ADoExpr__escapemark(self);
1354 var = var1;
1355 RET_LABEL:;
1356 return var;
1357 }
1358 /* method scope#ADoExpr#escapemark= for (self: ADoExpr, nullable EscapeMark) */
1359 void scope__ADoExpr__escapemark_61d(val* self, val* p0) {
1360 self->attrs[COLOR_scope__ADoExpr___64descapemark].val = p0; /* @escapemark on <self:ADoExpr> */
1361 RET_LABEL:;
1362 }
1363 /* method scope#ADoExpr#escapemark= for (self: Object, nullable EscapeMark) */
1364 void VIRTUAL_scope__ADoExpr__escapemark_61d(val* self, val* p0) {
1365 scope__ADoExpr__escapemark_61d(self, p0);
1366 RET_LABEL:;
1367 }
1368 /* method scope#ADoExpr#accept_scope_visitor for (self: ADoExpr, ScopeVisitor) */
1369 void scope__ADoExpr__accept_scope_visitor(val* self, val* p0) {
1370 val* var_v /* var v: ScopeVisitor */;
1371 val* var /* : nullable ALabel */;
1372 short int var1 /* : Bool */;
1373 val* var2 /* : EscapeMark */;
1374 val* var3 /* : nullable AExpr */;
1375 val* var4 /* : nullable EscapeMark */;
1376 var_v = p0;
1377 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:ADoExpr>*/;
1378 var1 = 0;
1379 var2 = ((val* (*)(val*, val*, short int))(var_v->class->vft[COLOR_scope__ScopeVisitor__make_escape_mark]))(var_v, var, var1) /* make_escape_mark on <var_v:ScopeVisitor>*/;
1380 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark_61d]))(self, var2) /* escapemark= on <self:ADoExpr>*/;
1381 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ADoExpr__n_block]))(self) /* n_block on <self:ADoExpr>*/;
1382 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark]))(self) /* escapemark on <self:ADoExpr>*/;
1383 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var3, var4) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1384 RET_LABEL:;
1385 }
1386 /* method scope#ADoExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1387 void VIRTUAL_scope__ADoExpr__accept_scope_visitor(val* self, val* p0) {
1388 scope__ADoExpr__accept_scope_visitor(self, p0);
1389 RET_LABEL:;
1390 }
1391 /* method scope#AIfExpr#accept_scope_visitor for (self: AIfExpr, ScopeVisitor) */
1392 void scope__AIfExpr__accept_scope_visitor(val* self, val* p0) {
1393 val* var_v /* var v: ScopeVisitor */;
1394 val* var /* : AExpr */;
1395 val* var1 /* : nullable AExpr */;
1396 val* var2 /* : null */;
1397 val* var3 /* : nullable AExpr */;
1398 val* var4 /* : null */;
1399 var_v = p0;
1400 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_expr]))(self) /* n_expr on <self:AIfExpr>*/;
1401 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:ScopeVisitor>*/;
1402 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(self) /* n_then on <self:AIfExpr>*/;
1403 var2 = NULL;
1404 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var1, var2) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1405 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(self) /* n_else on <self:AIfExpr>*/;
1406 var4 = NULL;
1407 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var3, var4) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1408 RET_LABEL:;
1409 }
1410 /* method scope#AIfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1411 void VIRTUAL_scope__AIfExpr__accept_scope_visitor(val* self, val* p0) {
1412 scope__AIfExpr__accept_scope_visitor(self, p0);
1413 RET_LABEL:;
1414 }
1415 /* method scope#AWhileExpr#escapemark for (self: AWhileExpr): nullable EscapeMark */
1416 val* scope__AWhileExpr__escapemark(val* self) {
1417 val* var /* : nullable EscapeMark */;
1418 val* var1 /* : nullable EscapeMark */;
1419 var1 = self->attrs[COLOR_scope__AWhileExpr___64descapemark].val; /* @escapemark on <self:AWhileExpr> */
1420 var = var1;
1421 RET_LABEL:;
1422 return var;
1423 }
1424 /* method scope#AWhileExpr#escapemark for (self: Object): nullable EscapeMark */
1425 val* VIRTUAL_scope__AWhileExpr__escapemark(val* self) {
1426 val* var /* : nullable EscapeMark */;
1427 val* var1 /* : nullable EscapeMark */;
1428 var1 = scope__AWhileExpr__escapemark(self);
1429 var = var1;
1430 RET_LABEL:;
1431 return var;
1432 }
1433 /* method scope#AWhileExpr#escapemark= for (self: AWhileExpr, nullable EscapeMark) */
1434 void scope__AWhileExpr__escapemark_61d(val* self, val* p0) {
1435 self->attrs[COLOR_scope__AWhileExpr___64descapemark].val = p0; /* @escapemark on <self:AWhileExpr> */
1436 RET_LABEL:;
1437 }
1438 /* method scope#AWhileExpr#escapemark= for (self: Object, nullable EscapeMark) */
1439 void VIRTUAL_scope__AWhileExpr__escapemark_61d(val* self, val* p0) {
1440 scope__AWhileExpr__escapemark_61d(self, p0);
1441 RET_LABEL:;
1442 }
1443 /* method scope#AWhileExpr#accept_scope_visitor for (self: AWhileExpr, ScopeVisitor) */
1444 void scope__AWhileExpr__accept_scope_visitor(val* self, val* p0) {
1445 val* var_v /* var v: ScopeVisitor */;
1446 val* var /* : nullable ALabel */;
1447 short int var1 /* : Bool */;
1448 val* var2 /* : EscapeMark */;
1449 val* var_escapemark /* var escapemark: EscapeMark */;
1450 val* var3 /* : AExpr */;
1451 val* var4 /* : nullable AExpr */;
1452 var_v = p0;
1453 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:AWhileExpr>*/;
1454 var1 = 1;
1455 var2 = ((val* (*)(val*, val*, short int))(var_v->class->vft[COLOR_scope__ScopeVisitor__make_escape_mark]))(var_v, var, var1) /* make_escape_mark on <var_v:ScopeVisitor>*/;
1456 var_escapemark = var2;
1457 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AWhileExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:AWhileExpr>*/;
1458 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_expr]))(self) /* n_expr on <self:AWhileExpr>*/;
1459 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:ScopeVisitor>*/;
1460 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_block]))(self) /* n_block on <self:AWhileExpr>*/;
1461 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var4, var_escapemark) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1462 RET_LABEL:;
1463 }
1464 /* method scope#AWhileExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1465 void VIRTUAL_scope__AWhileExpr__accept_scope_visitor(val* self, val* p0) {
1466 scope__AWhileExpr__accept_scope_visitor(self, p0);
1467 RET_LABEL:;
1468 }
1469 /* method scope#ALoopExpr#escapemark for (self: ALoopExpr): nullable EscapeMark */
1470 val* scope__ALoopExpr__escapemark(val* self) {
1471 val* var /* : nullable EscapeMark */;
1472 val* var1 /* : nullable EscapeMark */;
1473 var1 = self->attrs[COLOR_scope__ALoopExpr___64descapemark].val; /* @escapemark on <self:ALoopExpr> */
1474 var = var1;
1475 RET_LABEL:;
1476 return var;
1477 }
1478 /* method scope#ALoopExpr#escapemark for (self: Object): nullable EscapeMark */
1479 val* VIRTUAL_scope__ALoopExpr__escapemark(val* self) {
1480 val* var /* : nullable EscapeMark */;
1481 val* var1 /* : nullable EscapeMark */;
1482 var1 = scope__ALoopExpr__escapemark(self);
1483 var = var1;
1484 RET_LABEL:;
1485 return var;
1486 }
1487 /* method scope#ALoopExpr#escapemark= for (self: ALoopExpr, nullable EscapeMark) */
1488 void scope__ALoopExpr__escapemark_61d(val* self, val* p0) {
1489 self->attrs[COLOR_scope__ALoopExpr___64descapemark].val = p0; /* @escapemark on <self:ALoopExpr> */
1490 RET_LABEL:;
1491 }
1492 /* method scope#ALoopExpr#escapemark= for (self: Object, nullable EscapeMark) */
1493 void VIRTUAL_scope__ALoopExpr__escapemark_61d(val* self, val* p0) {
1494 scope__ALoopExpr__escapemark_61d(self, p0);
1495 RET_LABEL:;
1496 }
1497 /* method scope#ALoopExpr#accept_scope_visitor for (self: ALoopExpr, ScopeVisitor) */
1498 void scope__ALoopExpr__accept_scope_visitor(val* self, val* p0) {
1499 val* var_v /* var v: ScopeVisitor */;
1500 val* var /* : nullable ALabel */;
1501 short int var1 /* : Bool */;
1502 val* var2 /* : EscapeMark */;
1503 val* var_escapemark /* var escapemark: EscapeMark */;
1504 val* var3 /* : nullable AExpr */;
1505 var_v = p0;
1506 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:ALoopExpr>*/;
1507 var1 = 1;
1508 var2 = ((val* (*)(val*, val*, short int))(var_v->class->vft[COLOR_scope__ScopeVisitor__make_escape_mark]))(var_v, var, var1) /* make_escape_mark on <var_v:ScopeVisitor>*/;
1509 var_escapemark = var2;
1510 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ALoopExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ALoopExpr>*/;
1511 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALoopExpr__n_block]))(self) /* n_block on <self:ALoopExpr>*/;
1512 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var3, var_escapemark) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1513 RET_LABEL:;
1514 }
1515 /* method scope#ALoopExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1516 void VIRTUAL_scope__ALoopExpr__accept_scope_visitor(val* self, val* p0) {
1517 scope__ALoopExpr__accept_scope_visitor(self, p0);
1518 RET_LABEL:;
1519 }
1520 /* method scope#AForExpr#variables for (self: AForExpr): nullable Array[Variable] */
1521 val* scope__AForExpr__variables(val* self) {
1522 val* var /* : nullable Array[Variable] */;
1523 val* var1 /* : nullable Array[Variable] */;
1524 var1 = self->attrs[COLOR_scope__AForExpr___64dvariables].val; /* @variables on <self:AForExpr> */
1525 var = var1;
1526 RET_LABEL:;
1527 return var;
1528 }
1529 /* method scope#AForExpr#variables for (self: Object): nullable Array[Variable] */
1530 val* VIRTUAL_scope__AForExpr__variables(val* self) {
1531 val* var /* : nullable Array[Variable] */;
1532 val* var1 /* : nullable Array[Variable] */;
1533 var1 = scope__AForExpr__variables(self);
1534 var = var1;
1535 RET_LABEL:;
1536 return var;
1537 }
1538 /* method scope#AForExpr#variables= for (self: AForExpr, nullable Array[Variable]) */
1539 void scope__AForExpr__variables_61d(val* self, val* p0) {
1540 self->attrs[COLOR_scope__AForExpr___64dvariables].val = p0; /* @variables on <self:AForExpr> */
1541 RET_LABEL:;
1542 }
1543 /* method scope#AForExpr#variables= for (self: Object, nullable Array[Variable]) */
1544 void VIRTUAL_scope__AForExpr__variables_61d(val* self, val* p0) {
1545 scope__AForExpr__variables_61d(self, p0);
1546 RET_LABEL:;
1547 }
1548 /* method scope#AForExpr#escapemark for (self: AForExpr): nullable EscapeMark */
1549 val* scope__AForExpr__escapemark(val* self) {
1550 val* var /* : nullable EscapeMark */;
1551 val* var1 /* : nullable EscapeMark */;
1552 var1 = self->attrs[COLOR_scope__AForExpr___64descapemark].val; /* @escapemark on <self:AForExpr> */
1553 var = var1;
1554 RET_LABEL:;
1555 return var;
1556 }
1557 /* method scope#AForExpr#escapemark for (self: Object): nullable EscapeMark */
1558 val* VIRTUAL_scope__AForExpr__escapemark(val* self) {
1559 val* var /* : nullable EscapeMark */;
1560 val* var1 /* : nullable EscapeMark */;
1561 var1 = scope__AForExpr__escapemark(self);
1562 var = var1;
1563 RET_LABEL:;
1564 return var;
1565 }
1566 /* method scope#AForExpr#escapemark= for (self: AForExpr, nullable EscapeMark) */
1567 void scope__AForExpr__escapemark_61d(val* self, val* p0) {
1568 self->attrs[COLOR_scope__AForExpr___64descapemark].val = p0; /* @escapemark on <self:AForExpr> */
1569 RET_LABEL:;
1570 }
1571 /* method scope#AForExpr#escapemark= for (self: Object, nullable EscapeMark) */
1572 void VIRTUAL_scope__AForExpr__escapemark_61d(val* self, val* p0) {
1573 scope__AForExpr__escapemark_61d(self, p0);
1574 RET_LABEL:;
1575 }
1576 /* method scope#AForExpr#accept_scope_visitor for (self: AForExpr, ScopeVisitor) */
1577 void scope__AForExpr__accept_scope_visitor(val* self, val* p0) {
1578 val* var_v /* var v: ScopeVisitor */;
1579 val* var /* : AExpr */;
1580 val* var1 /* : List[Scope] */;
1581 val* var2 /* : Scope */;
1582 val* var3 /* : Array[Variable] */;
1583 val* var_variables /* var variables: Array[Variable] */;
1584 val* var4 /* : ANodes[TId] */;
1585 val* var5 /* : Iterator[nullable Object] */;
1586 short int var6 /* : Bool */;
1587 val* var7 /* : nullable Object */;
1588 val* var_nid /* var nid: TId */;
1589 val* var8 /* : Variable */;
1590 val* var9 /* : String */;
1591 val* var_va /* var va: Variable */;
1592 short int var10 /* : Bool */;
1593 val* var11 /* : nullable ALabel */;
1594 short int var12 /* : Bool */;
1595 val* var13 /* : EscapeMark */;
1596 val* var_escapemark /* var escapemark: EscapeMark */;
1597 val* var14 /* : nullable AExpr */;
1598 val* var15 /* : List[Scope] */;
1599 val* var16 /* : nullable Object */;
1600 var_v = p0;
1601 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_expr]))(self) /* n_expr on <self:AForExpr>*/;
1602 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:ScopeVisitor>*/;
1603 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__scopes]))(var_v) /* scopes on <var_v:ScopeVisitor>*/;
1604 var2 = NEW_scope__Scope(&type_scope__Scope);
1605 ((void (*)(val*))(var2->class->vft[COLOR_scope__Scope__init]))(var2) /* init on <var2:Scope>*/;
1606 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__Sequence__unshift]))(var1, var2) /* unshift on <var1:List[Scope]>*/;
1607 var3 = NEW_array__Array(&type_array__Arrayscope__Variable);
1608 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Variable]>*/;
1609 var_variables = var3;
1610 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AForExpr__variables_61d]))(self, var_variables) /* variables= on <self:AForExpr>*/;
1611 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_ids]))(self) /* n_ids on <self:AForExpr>*/;
1612 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:ANodes[TId]>*/;
1613 for(;;) {
1614 var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
1615 if(!var6) break;
1616 var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
1617 var_nid = var7;
1618 var8 = NEW_scope__Variable(&type_scope__Variable);
1619 var9 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on <var_nid:TId>*/;
1620 ((void (*)(val*, val*))(var8->class->vft[COLOR_scope__Variable__init]))(var8, var9) /* init on <var8:Variable>*/;
1621 var_va = var8;
1622 var10 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_va) /* register_variable on <var_v:ScopeVisitor>*/;
1623 var10;
1624 ((void (*)(val*, val*))(var_variables->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_variables, var_va) /* add on <var_variables:Array[Variable]>*/;
1625 CONTINUE_label: (void)0;
1626 ((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
1627 }
1628 BREAK_label: (void)0;
1629 var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(self) /* n_label on <self:AForExpr>*/;
1630 var12 = 1;
1631 var13 = ((val* (*)(val*, val*, short int))(var_v->class->vft[COLOR_scope__ScopeVisitor__make_escape_mark]))(var_v, var11, var12) /* make_escape_mark on <var_v:ScopeVisitor>*/;
1632 var_escapemark = var13;
1633 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AForExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:AForExpr>*/;
1634 var14 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_block]))(self) /* n_block on <self:AForExpr>*/;
1635 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var14, var_escapemark) /* enter_visit_block on <var_v:ScopeVisitor>*/;
1636 var15 = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__scopes]))(var_v) /* scopes on <var_v:ScopeVisitor>*/;
1637 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Sequence__shift]))(var15) /* shift on <var15:List[Scope]>*/;
1638 var16;
1639 RET_LABEL:;
1640 }
1641 /* method scope#AForExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1642 void VIRTUAL_scope__AForExpr__accept_scope_visitor(val* self, val* p0) {
1643 scope__AForExpr__accept_scope_visitor(self, p0);
1644 RET_LABEL:;
1645 }
1646 /* method scope#AVarFormExpr#variable for (self: AVarFormExpr): nullable Variable */
1647 val* scope__AVarFormExpr__variable(val* self) {
1648 val* var /* : nullable Variable */;
1649 val* var1 /* : nullable Variable */;
1650 var1 = self->attrs[COLOR_scope__AVarFormExpr___64dvariable].val; /* @variable on <self:AVarFormExpr> */
1651 var = var1;
1652 RET_LABEL:;
1653 return var;
1654 }
1655 /* method scope#AVarFormExpr#variable for (self: Object): nullable Variable */
1656 val* VIRTUAL_scope__AVarFormExpr__variable(val* self) {
1657 val* var /* : nullable Variable */;
1658 val* var1 /* : nullable Variable */;
1659 var1 = scope__AVarFormExpr__variable(self);
1660 var = var1;
1661 RET_LABEL:;
1662 return var;
1663 }
1664 /* method scope#AVarFormExpr#variable= for (self: AVarFormExpr, nullable Variable) */
1665 void scope__AVarFormExpr__variable_61d(val* self, val* p0) {
1666 self->attrs[COLOR_scope__AVarFormExpr___64dvariable].val = p0; /* @variable on <self:AVarFormExpr> */
1667 RET_LABEL:;
1668 }
1669 /* method scope#AVarFormExpr#variable= for (self: Object, nullable Variable) */
1670 void VIRTUAL_scope__AVarFormExpr__variable_61d(val* self, val* p0) {
1671 scope__AVarFormExpr__variable_61d(self, p0);
1672 RET_LABEL:;
1673 }
1674 /* method scope#ACallFormExpr#accept_scope_visitor for (self: ACallFormExpr, ScopeVisitor) */
1675 void scope__ACallFormExpr__accept_scope_visitor(val* self, val* p0) {
1676 val* var_v /* var v: ScopeVisitor */;
1677 val* var /* : AExpr */;
1678 short int var1 /* : Bool */;
1679 int cltype;
1680 int idtype;
1681 val* var2 /* : TId */;
1682 val* var3 /* : String */;
1683 val* var_name /* var name: String */;
1684 val* var4 /* : nullable Variable */;
1685 val* var_variable /* var variable: nullable Variable */;
1686 val* var5 /* : null */;
1687 short int var6 /* : Bool */;
1688 short int var7 /* : Bool */;
1689 val* var8 /* : AExprs */;
1690 val* var9 /* : ANodes[AExpr] */;
1691 short int var10 /* : Bool */;
1692 short int var11 /* : Bool */;
1693 val* var12 /* : AExprs */;
1694 short int var13 /* : Bool */;
1695 int cltype14;
1696 int idtype15;
1697 static val* varonce;
1698 val* var16 /* : String */;
1699 char* var17 /* : NativeString */;
1700 long var18 /* : Int */;
1701 val* var19 /* : String */;
1702 static val* varonce20;
1703 val* var21 /* : String */;
1704 char* var22 /* : NativeString */;
1705 long var23 /* : Int */;
1706 val* var24 /* : String */;
1707 val* var25 /* : Array[Object] */;
1708 long var26 /* : Int */;
1709 val* var27 /* : NativeArray[Object] */;
1710 val* var28 /* : String */;
1711 val* var29 /* : AVarFormExpr */;
1712 val* var_n /* var n: AExpr */;
1713 var_v = p0;
1714 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ACallFormExpr>*/;
1715 /* <var:AExpr> isa AImplicitSelfExpr */
1716 cltype = type_parser_nodes__AImplicitSelfExpr.color;
1717 idtype = type_parser_nodes__AImplicitSelfExpr.id;
1718 if(cltype >= var->type->table_size) {
1719 var1 = 0;
1720 } else {
1721 var1 = var->type->type_table[cltype] == idtype;
1722 }
1723 if (var1){
1724 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on <self:ACallFormExpr>*/;
1725 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_parser_nodes__Token__text]))(var2) /* text on <var2:TId>*/;
1726 var_name = var3;
1727 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__search_variable]))(var_v, var_name) /* search_variable on <var_v:ScopeVisitor>*/;
1728 var_variable = var4;
1729 var5 = NULL;
1730 if (var_variable == NULL) {
1731 var6 = 0; /* is null */
1732 } else {
1733 var6 = 1; /* arg is null and recv is not */
1734 }
1735 if (var6){
1736 var8 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on <self:ACallFormExpr>*/;
1737 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var8) /* n_exprs on <var8:AExprs>*/;
1738 var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var9) /* is_empty on <var9:ANodes[AExpr]>*/;
1739 var11 = !var10;
1740 if (var11) {
1741 var7 = 1;
1742 } else {
1743 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on <self:ACallFormExpr>*/;
1744 /* <var12:AExprs> isa AParExprs */
1745 cltype14 = type_parser_nodes__AParExprs.color;
1746 idtype15 = type_parser_nodes__AParExprs.id;
1747 if(cltype14 >= var12->type->table_size) {
1748 var13 = 0;
1749 } else {
1750 var13 = var12->type->type_table[cltype14] == idtype15;
1751 }
1752 var7 = var13;
1753 }
1754 if (var7){
1755 if (varonce) {
1756 var16 = varonce;
1757 } else {
1758 var17 = "Error: ";
1759 var18 = 7;
1760 var19 = string__NativeString__to_s_with_length(var17, var18);
1761 var16 = var19;
1762 varonce = var16;
1763 }
1764 if (varonce20) {
1765 var21 = varonce20;
1766 } else {
1767 var22 = " is variable, not a function.";
1768 var23 = 29;
1769 var24 = string__NativeString__to_s_with_length(var22, var23);
1770 var21 = var24;
1771 varonce20 = var21;
1772 }
1773 var25 = NEW_array__Array(&type_array__Arraykernel__Object);
1774 { /* var25 = array_instance Array[Object] */
1775 var26 = 3;
1776 var27 = NEW_array__NativeArray(var26, &type_array__NativeArraykernel__Object);
1777 ((struct instance_array__NativeArray*)var27)->values[0] = (val*) var16;
1778 ((struct instance_array__NativeArray*)var27)->values[1] = (val*) var_name;
1779 ((struct instance_array__NativeArray*)var27)->values[2] = (val*) var21;
1780 ((void (*)(val*, val*, long))(var25->class->vft[COLOR_array__Array__with_native]))(var25, var27, var26) /* with_native on <var25:Array[Object]>*/;
1781 }
1782 var28 = ((val* (*)(val*))(var25->class->vft[COLOR_string__Object__to_s]))(var25) /* to_s on <var25:Array[Object]>*/;
1783 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__error]))(var_v, self, var28) /* error on <var_v:ScopeVisitor>*/;
1784 goto RET_LABEL;
1785 } else {
1786 }
1787 var29 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__variable_create]))(self, var_variable) /* variable_create on <self:ACallFormExpr>*/;
1788 var_n = var29;
1789 ((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(var_n, var_variable) /* variable= on <var_n:AExpr(AVarFormExpr)>*/;
1790 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_n) /* replace_with on <self:ACallFormExpr>*/;
1791 ((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__ANode__accept_scope_visitor]))(var_n, var_v) /* accept_scope_visitor on <var_n:AExpr(AVarFormExpr)>*/;
1792 goto RET_LABEL;
1793 } else {
1794 }
1795 } else {
1796 }
1797 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ACallFormExpr>*/;
1798 RET_LABEL:;
1799 }
1800 /* method scope#ACallFormExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1801 void VIRTUAL_scope__ACallFormExpr__accept_scope_visitor(val* self, val* p0) {
1802 scope__ACallFormExpr__accept_scope_visitor(self, p0);
1803 RET_LABEL:;
1804 }
1805 /* method scope#ACallFormExpr#variable_create for (self: ACallFormExpr, Variable): AVarFormExpr */
1806 val* scope__ACallFormExpr__variable_create(val* self, val* p0) {
1807 val* var /* : AVarFormExpr */;
1808 const char* var_class_name;
1809 var_class_name = self == NULL ? "null" : self->type->name;
1810 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "variable_create", var_class_name);
1811 fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 389);
1812 show_backtrace(1);
1813 RET_LABEL:;
1814 return var;
1815 }
1816 /* method scope#ACallFormExpr#variable_create for (self: Object, Variable): AVarFormExpr */
1817 val* VIRTUAL_scope__ACallFormExpr__variable_create(val* self, val* p0) {
1818 val* var /* : AVarFormExpr */;
1819 val* var1 /* : AVarFormExpr */;
1820 var1 = scope__ACallFormExpr__variable_create(self, p0);
1821 var = var1;
1822 RET_LABEL:;
1823 return var;
1824 }
1825 /* method scope#ACallExpr#variable_create for (self: ACallExpr, Variable): AVarFormExpr */
1826 val* scope__ACallExpr__variable_create(val* self, val* p0) {
1827 val* var /* : AVarFormExpr */;
1828 val* var_variable /* var variable: Variable */;
1829 val* var1 /* : AVarExpr */;
1830 val* var2 /* : TId */;
1831 var_variable = p0;
1832 var1 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
1833 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on <self:ACallExpr>*/;
1834 ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_prod__AVarExpr__init_avarexpr]))(var1, var2) /* init_avarexpr on <var1:AVarExpr>*/;
1835 var = var1;
1836 goto RET_LABEL;
1837 RET_LABEL:;
1838 return var;
1839 }
1840 /* method scope#ACallExpr#variable_create for (self: Object, Variable): AVarFormExpr */
1841 val* VIRTUAL_scope__ACallExpr__variable_create(val* self, val* p0) {
1842 val* var /* : AVarFormExpr */;
1843 val* var1 /* : AVarFormExpr */;
1844 var1 = scope__ACallExpr__variable_create(self, p0);
1845 var = var1;
1846 RET_LABEL:;
1847 return var;
1848 }
1849 /* method scope#ACallAssignExpr#variable_create for (self: ACallAssignExpr, Variable): AVarFormExpr */
1850 val* scope__ACallAssignExpr__variable_create(val* self, val* p0) {
1851 val* var /* : AVarFormExpr */;
1852 val* var_variable /* var variable: Variable */;
1853 val* var1 /* : AVarAssignExpr */;
1854 val* var2 /* : TId */;
1855 val* var3 /* : TAssign */;
1856 val* var4 /* : AExpr */;
1857 var_variable = p0;
1858 var1 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
1859 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on <self:ACallAssignExpr>*/;
1860 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_assign]))(self) /* n_assign on <self:ACallAssignExpr>*/;
1861 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:ACallAssignExpr>*/;
1862 ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_parser_prod__AVarAssignExpr__init_avarassignexpr]))(var1, var2, var3, var4) /* init_avarassignexpr on <var1:AVarAssignExpr>*/;
1863 var = var1;
1864 goto RET_LABEL;
1865 RET_LABEL:;
1866 return var;
1867 }
1868 /* method scope#ACallAssignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
1869 val* VIRTUAL_scope__ACallAssignExpr__variable_create(val* self, val* p0) {
1870 val* var /* : AVarFormExpr */;
1871 val* var1 /* : AVarFormExpr */;
1872 var1 = scope__ACallAssignExpr__variable_create(self, p0);
1873 var = var1;
1874 RET_LABEL:;
1875 return var;
1876 }
1877 /* method scope#ACallReassignExpr#variable_create for (self: ACallReassignExpr, Variable): AVarFormExpr */
1878 val* scope__ACallReassignExpr__variable_create(val* self, val* p0) {
1879 val* var /* : AVarFormExpr */;
1880 val* var_variable /* var variable: Variable */;
1881 val* var1 /* : AVarReassignExpr */;
1882 val* var2 /* : TId */;
1883 val* var3 /* : AAssignOp */;
1884 val* var4 /* : AExpr */;
1885 var_variable = p0;
1886 var1 = NEW_parser_nodes__AVarReassignExpr(&type_parser_nodes__AVarReassignExpr);
1887 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on <self:ACallReassignExpr>*/;
1888 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_assign_op]))(self) /* n_assign_op on <self:ACallReassignExpr>*/;
1889 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:ACallReassignExpr>*/;
1890 ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_parser_prod__AVarReassignExpr__init_avarreassignexpr]))(var1, var2, var3, var4) /* init_avarreassignexpr on <var1:AVarReassignExpr>*/;
1891 var = var1;
1892 goto RET_LABEL;
1893 RET_LABEL:;
1894 return var;
1895 }
1896 /* method scope#ACallReassignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
1897 val* VIRTUAL_scope__ACallReassignExpr__variable_create(val* self, val* p0) {
1898 val* var /* : AVarFormExpr */;
1899 val* var1 /* : AVarFormExpr */;
1900 var1 = scope__ACallReassignExpr__variable_create(self, p0);
1901 var = var1;
1902 RET_LABEL:;
1903 return var;
1904 }