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___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", "src/scope.nit", 25);
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 val
* var3
/* : Phase */;
21 { /* Inline scope#ToolContext#scope_phase (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_scope__ToolContext___scope_phase
].val
; /* _scope_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scope_phase");
25 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 25);
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 val
* var2
/* : ToolContext */;
42 { /* Inline phase#Phase#toolcontext (self) on <self:ScopePhase> */
43 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ScopePhase> */
44 if (unlikely(var2
== NULL
)) {
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
46 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
54 scope__APropdef__do_scope(var_npropdef
, var
); /* Direct call scope#APropdef#do_scope on <var_npropdef:APropdef>*/
58 /* method scope#ScopePhase#process_npropdef for (self: Object, APropdef) */
59 void VIRTUAL_scope__ScopePhase__process_npropdef(val
* self
, val
* p0
) {
60 scope__ScopePhase__process_npropdef(self
, p0
); /* Direct call scope#ScopePhase#process_npropdef on <self:Object(ScopePhase)>*/
63 /* method scope#Variable#name for (self: Variable): String */
64 val
* scope__Variable__name(val
* self
) {
65 val
* var
/* : String */;
66 val
* var1
/* : String */;
67 var1
= self
->attrs
[COLOR_scope__Variable___name
].val
; /* _name on <self:Variable> */
68 if (unlikely(var1
== NULL
)) {
69 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
70 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 36);
77 /* method scope#Variable#name for (self: Object): String */
78 val
* VIRTUAL_scope__Variable__name(val
* self
) {
79 val
* var
/* : String */;
80 val
* var1
/* : String */;
81 val
* var3
/* : String */;
82 { /* Inline scope#Variable#name (self) on <self:Object(Variable)> */
83 var3
= self
->attrs
[COLOR_scope__Variable___name
].val
; /* _name on <self:Object(Variable)> */
84 if (unlikely(var3
== NULL
)) {
85 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
86 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 36);
96 /* method scope#Variable#to_s for (self: Variable): String */
97 val
* scope__Variable__to_s(val
* self
) {
98 val
* var
/* : String */;
99 val
* var1
/* : String */;
100 val
* var3
/* : String */;
102 { /* Inline scope#Variable#name (self) on <self:Variable> */
103 var3
= self
->attrs
[COLOR_scope__Variable___name
].val
; /* _name on <self:Variable> */
104 if (unlikely(var3
== NULL
)) {
105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
106 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 36);
118 /* method scope#Variable#to_s for (self: Object): String */
119 val
* VIRTUAL_scope__Variable__to_s(val
* self
) {
120 val
* var
/* : String */;
121 val
* var1
/* : String */;
122 var1
= scope__Variable__to_s(self
);
127 /* method scope#Variable#init for (self: Variable, String) */
128 void scope__Variable__init(val
* self
, val
* p0
) {
129 self
->attrs
[COLOR_scope__Variable___name
].val
= p0
; /* _name on <self:Variable> */
132 /* method scope#Variable#init for (self: Object, String) */
133 void VIRTUAL_scope__Variable__init(val
* self
, val
* p0
) {
134 { /* Inline scope#Variable#init (self,p0) on <self:Object(Variable)> */
135 self
->attrs
[COLOR_scope__Variable___name
].val
= p0
; /* _name on <self:Object(Variable)> */
140 /* method scope#EscapeMark#name for (self: EscapeMark): nullable String */
141 val
* scope__EscapeMark__name(val
* self
) {
142 val
* var
/* : nullable String */;
143 val
* var1
/* : nullable String */;
144 var1
= self
->attrs
[COLOR_scope__EscapeMark___name
].val
; /* _name on <self:EscapeMark> */
149 /* method scope#EscapeMark#name for (self: Object): nullable String */
150 val
* VIRTUAL_scope__EscapeMark__name(val
* self
) {
151 val
* var
/* : nullable String */;
152 val
* var1
/* : nullable String */;
153 val
* var3
/* : nullable String */;
154 { /* Inline scope#EscapeMark#name (self) on <self:Object(EscapeMark)> */
155 var3
= self
->attrs
[COLOR_scope__EscapeMark___name
].val
; /* _name on <self:Object(EscapeMark)> */
163 /* method scope#EscapeMark#for_loop for (self: EscapeMark): Bool */
164 short int scope__EscapeMark__for_loop(val
* self
) {
165 short int var
/* : Bool */;
166 short int var1
/* : Bool */;
167 var1
= self
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
; /* _for_loop on <self:EscapeMark> */
172 /* method scope#EscapeMark#for_loop for (self: Object): Bool */
173 short int VIRTUAL_scope__EscapeMark__for_loop(val
* self
) {
174 short int var
/* : Bool */;
175 short int var1
/* : Bool */;
176 short int var3
/* : Bool */;
177 { /* Inline scope#EscapeMark#for_loop (self) on <self:Object(EscapeMark)> */
178 var3
= self
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
; /* _for_loop on <self:Object(EscapeMark)> */
186 /* method scope#EscapeMark#continues for (self: EscapeMark): Array[AContinueExpr] */
187 val
* scope__EscapeMark__continues(val
* self
) {
188 val
* var
/* : Array[AContinueExpr] */;
189 val
* var1
/* : Array[AContinueExpr] */;
190 var1
= self
->attrs
[COLOR_scope__EscapeMark___continues
].val
; /* _continues on <self:EscapeMark> */
191 if (unlikely(var1
== NULL
)) {
192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _continues");
193 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 53);
200 /* method scope#EscapeMark#continues for (self: Object): Array[AContinueExpr] */
201 val
* VIRTUAL_scope__EscapeMark__continues(val
* self
) {
202 val
* var
/* : Array[AContinueExpr] */;
203 val
* var1
/* : Array[AContinueExpr] */;
204 val
* var3
/* : Array[AContinueExpr] */;
205 { /* Inline scope#EscapeMark#continues (self) on <self:Object(EscapeMark)> */
206 var3
= self
->attrs
[COLOR_scope__EscapeMark___continues
].val
; /* _continues on <self:Object(EscapeMark)> */
207 if (unlikely(var3
== NULL
)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _continues");
209 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 53);
219 /* method scope#EscapeMark#breaks for (self: EscapeMark): Array[ABreakExpr] */
220 val
* scope__EscapeMark__breaks(val
* self
) {
221 val
* var
/* : Array[ABreakExpr] */;
222 val
* var1
/* : Array[ABreakExpr] */;
223 var1
= self
->attrs
[COLOR_scope__EscapeMark___breaks
].val
; /* _breaks on <self:EscapeMark> */
224 if (unlikely(var1
== NULL
)) {
225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _breaks");
226 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 56);
233 /* method scope#EscapeMark#breaks for (self: Object): Array[ABreakExpr] */
234 val
* VIRTUAL_scope__EscapeMark__breaks(val
* self
) {
235 val
* var
/* : Array[ABreakExpr] */;
236 val
* var1
/* : Array[ABreakExpr] */;
237 val
* var3
/* : Array[ABreakExpr] */;
238 { /* Inline scope#EscapeMark#breaks (self) on <self:Object(EscapeMark)> */
239 var3
= self
->attrs
[COLOR_scope__EscapeMark___breaks
].val
; /* _breaks on <self:Object(EscapeMark)> */
240 if (unlikely(var3
== NULL
)) {
241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _breaks");
242 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 56);
252 /* method scope#EscapeMark#init for (self: EscapeMark, nullable String, Bool) */
253 void scope__EscapeMark__init(val
* self
, val
* p0
, short int p1
) {
254 self
->attrs
[COLOR_scope__EscapeMark___name
].val
= p0
; /* _name on <self:EscapeMark> */
255 self
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
= p1
; /* _for_loop on <self:EscapeMark> */
258 /* method scope#EscapeMark#init for (self: Object, nullable String, Bool) */
259 void VIRTUAL_scope__EscapeMark__init(val
* self
, val
* p0
, short int p1
) {
260 { /* Inline scope#EscapeMark#init (self,p0,p1) on <self:Object(EscapeMark)> */
261 self
->attrs
[COLOR_scope__EscapeMark___name
].val
= p0
; /* _name on <self:Object(EscapeMark)> */
262 self
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
= p1
; /* _for_loop on <self:Object(EscapeMark)> */
267 /* method scope#ScopeVisitor#toolcontext for (self: ScopeVisitor): ToolContext */
268 val
* scope__ScopeVisitor__toolcontext(val
* self
) {
269 val
* var
/* : ToolContext */;
270 val
* var1
/* : ToolContext */;
271 var1
= self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
; /* _toolcontext on <self:ScopeVisitor> */
272 if (unlikely(var1
== NULL
)) {
273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
274 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 68);
281 /* method scope#ScopeVisitor#toolcontext for (self: Object): ToolContext */
282 val
* VIRTUAL_scope__ScopeVisitor__toolcontext(val
* self
) {
283 val
* var
/* : ToolContext */;
284 val
* var1
/* : ToolContext */;
285 val
* var3
/* : ToolContext */;
286 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:Object(ScopeVisitor)> */
287 var3
= self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
; /* _toolcontext on <self:Object(ScopeVisitor)> */
288 if (unlikely(var3
== NULL
)) {
289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
290 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 68);
300 /* method scope#ScopeVisitor#toolcontext= for (self: ScopeVisitor, ToolContext) */
301 void scope__ScopeVisitor__toolcontext_61d(val
* self
, val
* p0
) {
302 self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:ScopeVisitor> */
305 /* method scope#ScopeVisitor#toolcontext= for (self: Object, ToolContext) */
306 void VIRTUAL_scope__ScopeVisitor__toolcontext_61d(val
* self
, val
* p0
) {
307 { /* Inline scope#ScopeVisitor#toolcontext= (self,p0) on <self:Object(ScopeVisitor)> */
308 self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:Object(ScopeVisitor)> */
313 /* method scope#ScopeVisitor#selfvariable for (self: ScopeVisitor): Variable */
314 val
* scope__ScopeVisitor__selfvariable(val
* self
) {
315 val
* var
/* : Variable */;
316 val
* var1
/* : Variable */;
317 var1
= self
->attrs
[COLOR_scope__ScopeVisitor___selfvariable
].val
; /* _selfvariable on <self:ScopeVisitor> */
318 if (unlikely(var1
== NULL
)) {
319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
320 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 71);
327 /* method scope#ScopeVisitor#selfvariable for (self: Object): Variable */
328 val
* VIRTUAL_scope__ScopeVisitor__selfvariable(val
* self
) {
329 val
* var
/* : Variable */;
330 val
* var1
/* : Variable */;
331 val
* var3
/* : Variable */;
332 { /* Inline scope#ScopeVisitor#selfvariable (self) on <self:Object(ScopeVisitor)> */
333 var3
= self
->attrs
[COLOR_scope__ScopeVisitor___selfvariable
].val
; /* _selfvariable on <self:Object(ScopeVisitor)> */
334 if (unlikely(var3
== NULL
)) {
335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
336 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 71);
346 /* method scope#ScopeVisitor#init for (self: ScopeVisitor, ToolContext) */
347 void scope__ScopeVisitor__init(val
* self
, val
* p0
) {
348 val
* var_toolcontext
/* var toolcontext: ToolContext */;
349 val
* var
/* : List[Scope] */;
350 val
* var4
/* : List[Scope] */;
351 val
* var5
/* : Scope */;
353 { /* Inline parser_nodes#Visitor#init (self) on <self:ScopeVisitor> */
357 var_toolcontext
= p0
;
359 { /* Inline scope#ScopeVisitor#toolcontext= (self,var_toolcontext) on <self:ScopeVisitor> */
360 self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
= var_toolcontext
; /* _toolcontext on <self:ScopeVisitor> */
365 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
366 var4
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
367 if (unlikely(var4
== NULL
)) {
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
369 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
376 var5
= NEW_scope__Scope(&type_scope__Scope
);
378 { /* Inline scope#Scope#init (var5) on <var5:Scope> */
383 abstract_collection__Sequence__add(var
, var5
); /* Direct call abstract_collection#Sequence#add on <var:List[Scope]>*/
387 /* method scope#ScopeVisitor#init for (self: Object, ToolContext) */
388 void VIRTUAL_scope__ScopeVisitor__init(val
* self
, val
* p0
) {
389 scope__ScopeVisitor__init(self
, p0
); /* Direct call scope#ScopeVisitor#init on <self:Object(ScopeVisitor)>*/
392 /* method scope#ScopeVisitor#scopes for (self: ScopeVisitor): List[Scope] */
393 val
* scope__ScopeVisitor__scopes(val
* self
) {
394 val
* var
/* : List[Scope] */;
395 val
* var1
/* : List[Scope] */;
396 var1
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
397 if (unlikely(var1
== NULL
)) {
398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
399 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
406 /* method scope#ScopeVisitor#scopes for (self: Object): List[Scope] */
407 val
* VIRTUAL_scope__ScopeVisitor__scopes(val
* self
) {
408 val
* var
/* : List[Scope] */;
409 val
* var1
/* : List[Scope] */;
410 val
* var3
/* : List[Scope] */;
411 { /* Inline scope#ScopeVisitor#scopes (self) on <self:Object(ScopeVisitor)> */
412 var3
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:Object(ScopeVisitor)> */
413 if (unlikely(var3
== NULL
)) {
414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
415 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
425 /* method scope#ScopeVisitor#register_variable for (self: ScopeVisitor, ANode, Variable): Bool */
426 short int scope__ScopeVisitor__register_variable(val
* self
, val
* p0
, val
* p1
) {
427 short int var
/* : Bool */;
428 val
* var_node
/* var node: ANode */;
429 val
* var_variable
/* var variable: Variable */;
430 val
* var1
/* : String */;
431 val
* var3
/* : String */;
432 val
* var_name
/* var name: String */;
433 val
* var4
/* : nullable Variable */;
434 val
* var_found
/* var found: nullable Variable */;
435 val
* var5
/* : null */;
436 short int var6
/* : Bool */;
437 short int var7
/* : Bool */;
438 val
* var_other
/* var other: nullable Object */;
439 short int var9
/* : Bool */;
440 short int var10
/* : Bool */;
441 short int var11
/* : Bool */;
443 val
* var12
/* : String */;
444 char* var13
/* : NativeString */;
445 long var14
/* : Int */;
446 val
* var15
/* : FlatString */;
447 static val
* varonce16
;
448 val
* var17
/* : String */;
449 char* var18
/* : NativeString */;
450 long var19
/* : Int */;
451 val
* var20
/* : FlatString */;
452 val
* var21
/* : Array[Object] */;
453 long var22
/* : Int */;
454 val
* var23
/* : NativeArray[Object] */;
455 val
* var24
/* : String */;
456 short int var25
/* : Bool */;
457 val
* var26
/* : List[Scope] */;
458 val
* var28
/* : List[Scope] */;
459 val
* var29
/* : nullable Object */;
460 val
* var30
/* : HashMap[String, Variable] */;
461 val
* var32
/* : HashMap[String, Variable] */;
462 short int var33
/* : Bool */;
466 { /* Inline scope#Variable#name (var_variable) on <var_variable:Variable> */
467 var3
= var_variable
->attrs
[COLOR_scope__Variable___name
].val
; /* _name on <var_variable:Variable> */
468 if (unlikely(var3
== NULL
)) {
469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
470 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 36);
479 var4
= scope__ScopeVisitor__search_variable(self
, var_name
);
483 if (var_found
== NULL
) {
484 var6
= 0; /* is null */
486 var6
= 1; /* arg is null and recv is not */
489 { /* Inline kernel#Object#!= (var_found,var5) on <var_found:nullable Variable> */
492 var10
= ((short int (*)(val
*, val
*))(var_found
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_found
, var_other
) /* == on <var_found:nullable Variable(Variable)>*/;
506 var13
= "Error: A variable named `";
508 var15
= string__NativeString__to_s_with_length(var13
, var14
);
515 var18
= "\' already exists";
517 var20
= string__NativeString__to_s_with_length(var18
, var19
);
521 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
522 { /* var21 = array_instance Array[Object] */
524 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
525 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var12
;
526 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var_name
;
527 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var17
;
529 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
533 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
536 scope__ScopeVisitor__error(self
, var_node
, var24
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
544 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
545 var28
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
546 if (unlikely(var28
== NULL
)) {
547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
548 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
556 var29
= list__List__first(var26
);
559 { /* Inline scope#Scope#variables (var29) on <var29:nullable Object(Scope)> */
560 var32
= var29
->attrs
[COLOR_scope__Scope___variables
].val
; /* _variables on <var29:nullable Object(Scope)> */
561 if (unlikely(var32
== NULL
)) {
562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
563 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 210);
571 hash_collection__HashMap___91d_93d_61d(var30
, var_name
, var_variable
); /* Direct call hash_collection#HashMap#[]= on <var30:HashMap[String, Variable]>*/
579 /* method scope#ScopeVisitor#register_variable for (self: Object, ANode, Variable): Bool */
580 short int VIRTUAL_scope__ScopeVisitor__register_variable(val
* self
, val
* p0
, val
* p1
) {
581 short int var
/* : Bool */;
582 short int var1
/* : Bool */;
583 var1
= scope__ScopeVisitor__register_variable(self
, p0
, p1
);
588 /* method scope#ScopeVisitor#search_variable for (self: ScopeVisitor, String): nullable Variable */
589 val
* scope__ScopeVisitor__search_variable(val
* self
, val
* p0
) {
590 val
* var
/* : nullable Variable */;
591 val
* var_name
/* var name: String */;
592 val
* var1
/* : List[Scope] */;
593 val
* var3
/* : List[Scope] */;
594 val
* var4
/* : ListIterator[nullable Object] */;
595 short int var5
/* : Bool */;
596 val
* var6
/* : nullable Object */;
597 val
* var_scope
/* var scope: Scope */;
598 val
* var7
/* : nullable Variable */;
599 val
* var_res
/* var res: nullable Variable */;
600 val
* var8
/* : null */;
601 short int var9
/* : Bool */;
602 short int var10
/* : Bool */;
603 val
* var_other
/* var other: nullable Object */;
604 short int var12
/* : Bool */;
605 short int var13
/* : Bool */;
606 short int var14
/* : Bool */;
607 val
* var15
/* : null */;
610 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
611 var3
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
612 if (unlikely(var3
== NULL
)) {
613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
614 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
622 var4
= list__List__iterator(var1
);
626 var5
= list__ListIterator__is_ok(var4
);
630 var6
= list__ListIterator__item(var4
);
634 var7
= scope__Scope__get_variable(var_scope
, var_name
);
638 if (var_res
== NULL
) {
639 var9
= 0; /* is null */
641 var9
= 1; /* arg is null and recv is not */
644 { /* Inline kernel#Object#!= (var_res,var8) on <var_res:nullable Variable> */
647 var13
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable Variable(Variable)>*/;
662 CONTINUE_label
: (void)0;
664 list__ListIterator__next(var4
); /* Direct call list#ListIterator#next on <var4:ListIterator[nullable Object]>*/
667 BREAK_label
: (void)0;
674 /* method scope#ScopeVisitor#search_variable for (self: Object, String): nullable Variable */
675 val
* VIRTUAL_scope__ScopeVisitor__search_variable(val
* self
, val
* p0
) {
676 val
* var
/* : nullable Variable */;
677 val
* var1
/* : nullable Variable */;
678 var1
= scope__ScopeVisitor__search_variable(self
, p0
);
683 /* method scope#ScopeVisitor#visit for (self: ScopeVisitor, ANode) */
684 void scope__ScopeVisitor__visit(val
* self
, val
* p0
) {
685 val
* var_n
/* var n: ANode */;
688 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_scope__ANode__accept_scope_visitor
]))(var_n
, self
) /* accept_scope_visitor on <var_n:ANode>*/;
692 /* method scope#ScopeVisitor#visit for (self: Object, ANode) */
693 void VIRTUAL_scope__ScopeVisitor__visit(val
* self
, val
* p0
) {
694 scope__ScopeVisitor__visit(self
, p0
); /* Direct call scope#ScopeVisitor#visit on <self:Object(ScopeVisitor)>*/
697 /* method scope#ScopeVisitor#enter_visit_block for (self: ScopeVisitor, nullable AExpr, nullable EscapeMark) */
698 void scope__ScopeVisitor__enter_visit_block(val
* self
, val
* p0
, val
* p1
) {
699 val
* var_node
/* var node: nullable AExpr */;
700 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
701 val
* var
/* : null */;
702 short int var1
/* : Bool */;
703 short int var2
/* : Bool */;
704 val
* var_other
/* var other: nullable Object */;
705 short int var4
/* : Bool */;
706 short int var6
/* : Bool */;
707 val
* var7
/* : Scope */;
708 val
* var_scope
/* var scope: Scope */;
709 val
* var10
/* : List[Scope] */;
710 val
* var12
/* : List[Scope] */;
711 val
* var13
/* : List[Scope] */;
712 val
* var15
/* : List[Scope] */;
713 val
* var16
/* : nullable Object */;
717 if (var_node
== NULL
) {
718 var1
= 1; /* is null */
720 var1
= 0; /* arg is null but recv is not */
723 { /* Inline kernel#Object#== (var_node,var) on <var_node:nullable AExpr> */
726 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable AExpr(AExpr)> */
727 var6
= var_node
== var_other
;
743 var7
= NEW_scope__Scope(&type_scope__Scope
);
745 { /* Inline scope#Scope#init (var7) on <var7:Scope> */
751 { /* Inline scope#Scope#escapemark= (var_scope,var_escapemark) on <var_scope:Scope> */
752 var_scope
->attrs
[COLOR_scope__Scope___escapemark
].val
= var_escapemark
; /* _escapemark on <var_scope:Scope> */
757 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
758 var12
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
759 if (unlikely(var12
== NULL
)) {
760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
761 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
769 list__List__unshift(var10
, var_scope
); /* Direct call list#List#unshift on <var10:List[Scope]>*/
772 parser_nodes__Visitor__enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:ScopeVisitor>*/
775 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
776 var15
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
777 if (unlikely(var15
== NULL
)) {
778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
779 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
787 var16
= list__List__shift(var13
);
792 /* method scope#ScopeVisitor#enter_visit_block for (self: Object, nullable AExpr, nullable EscapeMark) */
793 void VIRTUAL_scope__ScopeVisitor__enter_visit_block(val
* self
, val
* p0
, val
* p1
) {
794 scope__ScopeVisitor__enter_visit_block(self
, p0
, p1
); /* Direct call scope#ScopeVisitor#enter_visit_block on <self:Object(ScopeVisitor)>*/
797 /* method scope#ScopeVisitor#search_label for (self: ScopeVisitor, String): nullable EscapeMark */
798 val
* scope__ScopeVisitor__search_label(val
* self
, val
* p0
) {
799 val
* var
/* : nullable EscapeMark */;
800 val
* var_name
/* var name: String */;
801 val
* var1
/* : List[Scope] */;
802 val
* var3
/* : List[Scope] */;
803 val
* var4
/* : ListIterator[nullable Object] */;
804 short int var5
/* : Bool */;
805 val
* var6
/* : nullable Object */;
806 val
* var_scope
/* var scope: Scope */;
807 val
* var7
/* : nullable EscapeMark */;
808 val
* var9
/* : nullable EscapeMark */;
809 val
* var_res
/* var res: nullable EscapeMark */;
810 short int var10
/* : Bool */;
811 val
* var11
/* : null */;
812 short int var12
/* : Bool */;
813 short int var13
/* : Bool */;
814 val
* var_other
/* var other: nullable Object */;
815 short int var15
/* : Bool */;
816 short int var16
/* : Bool */;
817 short int var17
/* : Bool */;
818 short int var_
/* var : Bool */;
819 val
* var18
/* : nullable String */;
820 val
* var20
/* : nullable String */;
821 short int var21
/* : Bool */;
822 short int var22
/* : Bool */;
823 val
* var23
/* : null */;
826 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
827 var3
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
828 if (unlikely(var3
== NULL
)) {
829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
830 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
838 var4
= list__List__iterator(var1
);
842 var5
= list__ListIterator__is_ok(var4
);
846 var6
= list__ListIterator__item(var4
);
850 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
851 var9
= var_scope
->attrs
[COLOR_scope__Scope___escapemark
].val
; /* _escapemark on <var_scope:Scope> */
858 if (var_res
== NULL
) {
859 var12
= 0; /* is null */
861 var12
= 1; /* arg is null and recv is not */
864 { /* Inline kernel#Object#!= (var_res,var11) on <var_res:nullable EscapeMark> */
867 var16
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
880 { /* Inline scope#EscapeMark#name (var_res) on <var_res:nullable EscapeMark(EscapeMark)> */
881 var20
= var_res
->attrs
[COLOR_scope__EscapeMark___name
].val
; /* _name on <var_res:nullable EscapeMark(EscapeMark)> */
887 var21
= 0; /* <var_name:String> cannot be null */
889 var22
= string__FlatString___61d_61d(var18
, var_name
);
901 CONTINUE_label
: (void)0;
903 list__ListIterator__next(var4
); /* Direct call list#ListIterator#next on <var4:ListIterator[nullable Object]>*/
906 BREAK_label
: (void)0;
913 /* method scope#ScopeVisitor#search_label for (self: Object, String): nullable EscapeMark */
914 val
* VIRTUAL_scope__ScopeVisitor__search_label(val
* self
, val
* p0
) {
915 val
* var
/* : nullable EscapeMark */;
916 val
* var1
/* : nullable EscapeMark */;
917 var1
= scope__ScopeVisitor__search_label(self
, p0
);
922 /* method scope#ScopeVisitor#make_escape_mark for (self: ScopeVisitor, nullable ALabel, Bool): EscapeMark */
923 val
* scope__ScopeVisitor__make_escape_mark(val
* self
, val
* p0
, short int p1
) {
924 val
* var
/* : EscapeMark */;
925 val
* var_nlabel
/* var nlabel: nullable ALabel */;
926 short int var_for_loop
/* var for_loop: Bool */;
927 val
* var1
/* : null */;
928 short int var2
/* : Bool */;
929 short int var3
/* : Bool */;
930 val
* var_other
/* var other: nullable Object */;
931 short int var5
/* : Bool */;
932 short int var6
/* : Bool */;
933 short int var7
/* : Bool */;
934 val
* var8
/* : nullable TId */;
935 val
* var_nid
/* var nid: nullable TId */;
936 val
* var9
/* : null */;
937 short int var10
/* : Bool */;
938 short int var11
/* : Bool */;
939 val
* var_other13
/* var other: nullable Object */;
940 short int var14
/* : Bool */;
941 short int var16
/* : Bool */;
943 val
* var17
/* : String */;
944 char* var18
/* : NativeString */;
945 long var19
/* : Int */;
946 val
* var20
/* : FlatString */;
947 val
* var21
/* : nullable EscapeMark */;
948 val
* var_res
/* var res: nullable EscapeMark */;
949 val
* var22
/* : null */;
950 short int var23
/* : Bool */;
951 short int var24
/* : Bool */;
952 short int var26
/* : Bool */;
953 short int var27
/* : Bool */;
954 short int var28
/* : Bool */;
955 static val
* varonce29
;
956 val
* var30
/* : String */;
957 char* var31
/* : NativeString */;
958 long var32
/* : Int */;
959 val
* var33
/* : FlatString */;
960 static val
* varonce34
;
961 val
* var35
/* : String */;
962 char* var36
/* : NativeString */;
963 long var37
/* : Int */;
964 val
* var38
/* : FlatString */;
965 val
* var_name
/* var name: nullable String */;
966 val
* var39
/* : String */;
967 val
* var40
/* : nullable EscapeMark */;
968 val
* var_found
/* var found: nullable EscapeMark */;
969 val
* var41
/* : null */;
970 short int var42
/* : Bool */;
971 short int var43
/* : Bool */;
972 short int var45
/* : Bool */;
973 short int var46
/* : Bool */;
974 short int var47
/* : Bool */;
975 static val
* varonce48
;
976 val
* var49
/* : String */;
977 char* var50
/* : NativeString */;
978 long var51
/* : Int */;
979 val
* var52
/* : FlatString */;
980 static val
* varonce53
;
981 val
* var54
/* : String */;
982 char* var55
/* : NativeString */;
983 long var56
/* : Int */;
984 val
* var57
/* : FlatString */;
985 val
* var58
/* : Array[Object] */;
986 long var59
/* : Int */;
987 val
* var60
/* : NativeArray[Object] */;
988 val
* var61
/* : String */;
989 val
* var62
/* : null */;
990 val
* var63
/* : EscapeMark */;
991 val
* var_res65
/* var res: EscapeMark */;
995 if (var_nlabel
== NULL
) {
996 var2
= 0; /* is null */
998 var2
= 1; /* arg is null and recv is not */
1001 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1004 var6
= ((short int (*)(val
*, val
*))(var_nlabel
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nlabel
, var_other
) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1016 var8
= parser_nodes__ALabel__n_id(var_nlabel
);
1020 if (var_nid
== NULL
) {
1021 var10
= 1; /* is null */
1023 var10
= 0; /* arg is null but recv is not */
1026 { /* Inline kernel#Object#== (var_nid,var9) on <var_nid:nullable TId> */
1029 { /* Inline kernel#Object#is_same_instance (var_nid,var_other13) on <var_nid:nullable TId(TId)> */
1030 var16
= var_nid
== var_other13
;
1033 RET_LABEL15
:(void)0;
1038 RET_LABEL12
:(void)0;
1048 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1053 var21
= scope__ScopeVisitor__search_label(self
, var17
);
1057 if (var_res
== NULL
) {
1058 var23
= 0; /* is null */
1060 var23
= 1; /* arg is null and recv is not */
1063 { /* Inline kernel#Object#!= (var_res,var22) on <var_res:nullable EscapeMark> */
1066 var27
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
1072 RET_LABEL25
:(void)0;
1080 var31
= "Syntax error: anonymous label already defined.";
1082 var33
= string__NativeString__to_s_with_length(var31
, var32
);
1087 scope__ScopeVisitor__error(self
, var_nlabel
, var30
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1096 var38
= string__NativeString__to_s_with_length(var36
, var37
);
1103 var39
= lexer_work__Token__text(var_nid
);
1107 var40
= scope__ScopeVisitor__search_label(self
, var_name
);
1111 if (var_found
== NULL
) {
1112 var42
= 0; /* is null */
1114 var42
= 1; /* arg is null and recv is not */
1117 { /* Inline kernel#Object#!= (var_found,var41) on <var_found:nullable EscapeMark> */
1120 var46
= ((short int (*)(val
*, val
*))(var_found
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_found
, var_other
) /* == on <var_found:nullable EscapeMark(EscapeMark)>*/;
1126 RET_LABEL44
:(void)0;
1134 var50
= "Syntax error: label ";
1136 var52
= string__NativeString__to_s_with_length(var50
, var51
);
1143 var55
= " already defined.";
1145 var57
= string__NativeString__to_s_with_length(var55
, var56
);
1149 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
1150 { /* var58 = array_instance Array[Object] */
1152 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
1153 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
1154 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_name
;
1155 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
1157 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
1161 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
1164 scope__ScopeVisitor__error(self
, var_nlabel
, var61
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1173 var63
= NEW_scope__EscapeMark(&type_scope__EscapeMark
);
1175 { /* Inline scope#EscapeMark#init (var63,var_name,var_for_loop) on <var63:EscapeMark> */
1176 var63
->attrs
[COLOR_scope__EscapeMark___name
].val
= var_name
; /* _name on <var63:EscapeMark> */
1177 var63
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
= var_for_loop
; /* _for_loop on <var63:EscapeMark> */
1178 RET_LABEL64
:(void)0;
1187 /* method scope#ScopeVisitor#make_escape_mark for (self: Object, nullable ALabel, Bool): EscapeMark */
1188 val
* VIRTUAL_scope__ScopeVisitor__make_escape_mark(val
* self
, val
* p0
, short int p1
) {
1189 val
* var
/* : EscapeMark */;
1190 val
* var1
/* : EscapeMark */;
1191 var1
= scope__ScopeVisitor__make_escape_mark(self
, p0
, p1
);
1196 /* method scope#ScopeVisitor#get_escapemark for (self: ScopeVisitor, ANode, nullable ALabel): nullable EscapeMark */
1197 val
* scope__ScopeVisitor__get_escapemark(val
* self
, val
* p0
, val
* p1
) {
1198 val
* var
/* : nullable EscapeMark */;
1199 val
* var_node
/* var node: ANode */;
1200 val
* var_nlabel
/* var nlabel: nullable ALabel */;
1201 val
* var1
/* : null */;
1202 short int var2
/* : Bool */;
1203 short int var3
/* : Bool */;
1204 val
* var_other
/* var other: nullable Object */;
1205 short int var5
/* : Bool */;
1206 short int var6
/* : Bool */;
1207 short int var7
/* : Bool */;
1208 val
* var8
/* : nullable TId */;
1209 val
* var_nid
/* var nid: nullable TId */;
1210 val
* var9
/* : null */;
1211 short int var10
/* : Bool */;
1212 short int var11
/* : Bool */;
1213 val
* var_other13
/* var other: nullable Object */;
1214 short int var14
/* : Bool */;
1215 short int var16
/* : Bool */;
1216 static val
* varonce
;
1217 val
* var17
/* : String */;
1218 char* var18
/* : NativeString */;
1219 long var19
/* : Int */;
1220 val
* var20
/* : FlatString */;
1221 val
* var21
/* : nullable EscapeMark */;
1222 val
* var_res
/* var res: nullable EscapeMark */;
1223 val
* var22
/* : null */;
1224 short int var23
/* : Bool */;
1225 short int var24
/* : Bool */;
1226 short int var26
/* : Bool */;
1227 short int var28
/* : Bool */;
1228 static val
* varonce29
;
1229 val
* var30
/* : String */;
1230 char* var31
/* : NativeString */;
1231 long var32
/* : Int */;
1232 val
* var33
/* : FlatString */;
1233 val
* var34
/* : null */;
1234 val
* var35
/* : String */;
1235 val
* var_name
/* var name: String */;
1236 val
* var36
/* : nullable EscapeMark */;
1237 val
* var_res37
/* var res: nullable EscapeMark */;
1238 val
* var38
/* : null */;
1239 short int var39
/* : Bool */;
1240 short int var40
/* : Bool */;
1241 short int var42
/* : Bool */;
1242 short int var44
/* : Bool */;
1243 static val
* varonce45
;
1244 val
* var46
/* : String */;
1245 char* var47
/* : NativeString */;
1246 long var48
/* : Int */;
1247 val
* var49
/* : FlatString */;
1248 static val
* varonce50
;
1249 val
* var51
/* : String */;
1250 char* var52
/* : NativeString */;
1251 long var53
/* : Int */;
1252 val
* var54
/* : FlatString */;
1253 val
* var55
/* : Array[Object] */;
1254 long var56
/* : Int */;
1255 val
* var57
/* : NativeArray[Object] */;
1256 val
* var58
/* : String */;
1257 val
* var59
/* : null */;
1258 val
* var60
/* : List[Scope] */;
1259 val
* var62
/* : List[Scope] */;
1260 val
* var63
/* : ListIterator[nullable Object] */;
1261 short int var64
/* : Bool */;
1262 val
* var65
/* : nullable Object */;
1263 val
* var_scope
/* var scope: Scope */;
1264 val
* var66
/* : nullable EscapeMark */;
1265 val
* var68
/* : nullable EscapeMark */;
1266 val
* var_res69
/* var res: nullable EscapeMark */;
1267 val
* var70
/* : null */;
1268 short int var71
/* : Bool */;
1269 short int var72
/* : Bool */;
1270 short int var74
/* : Bool */;
1271 short int var75
/* : Bool */;
1272 short int var76
/* : Bool */;
1273 static val
* varonce77
;
1274 val
* var78
/* : String */;
1275 char* var79
/* : NativeString */;
1276 long var80
/* : Int */;
1277 val
* var81
/* : FlatString */;
1278 val
* var82
/* : null */;
1282 if (var_nlabel
== NULL
) {
1283 var2
= 0; /* is null */
1285 var2
= 1; /* arg is null and recv is not */
1288 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1291 var6
= ((short int (*)(val
*, val
*))(var_nlabel
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nlabel
, var_other
) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1303 var8
= parser_nodes__ALabel__n_id(var_nlabel
);
1307 if (var_nid
== NULL
) {
1308 var10
= 1; /* is null */
1310 var10
= 0; /* arg is null but recv is not */
1313 { /* Inline kernel#Object#== (var_nid,var9) on <var_nid:nullable TId> */
1316 { /* Inline kernel#Object#is_same_instance (var_nid,var_other13) on <var_nid:nullable TId(TId)> */
1317 var16
= var_nid
== var_other13
;
1320 RET_LABEL15
:(void)0;
1325 RET_LABEL12
:(void)0;
1335 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1340 var21
= scope__ScopeVisitor__search_label(self
, var17
);
1344 if (var_res
== NULL
) {
1345 var23
= 1; /* is null */
1347 var23
= 0; /* arg is null but recv is not */
1350 { /* Inline kernel#Object#== (var_res,var22) on <var_res:nullable EscapeMark> */
1351 var_other13
= var22
;
1353 { /* Inline kernel#Object#is_same_instance (var_res,var_other13) on <var_res:nullable EscapeMark(EscapeMark)> */
1354 var28
= var_res
== var_other13
;
1357 RET_LABEL27
:(void)0;
1362 RET_LABEL25
:(void)0;
1370 var31
= "Syntax error: invalid anonymous label.";
1372 var33
= string__NativeString__to_s_with_length(var31
, var32
);
1377 scope__ScopeVisitor__error(self
, var_nlabel
, var30
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1389 var35
= lexer_work__Token__text(var_nid
);
1393 var36
= scope__ScopeVisitor__search_label(self
, var_name
);
1397 if (var_res37
== NULL
) {
1398 var39
= 1; /* is null */
1400 var39
= 0; /* arg is null but recv is not */
1403 { /* Inline kernel#Object#== (var_res37,var38) on <var_res37:nullable EscapeMark> */
1404 var_other13
= var38
;
1406 { /* Inline kernel#Object#is_same_instance (var_res37,var_other13) on <var_res37:nullable EscapeMark(EscapeMark)> */
1407 var44
= var_res37
== var_other13
;
1410 RET_LABEL43
:(void)0;
1415 RET_LABEL41
:(void)0;
1423 var47
= "Syntax error: invalid label ";
1425 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1434 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1438 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
1439 { /* var55 = array_instance Array[Object] */
1441 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
1442 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var46
;
1443 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var_name
;
1444 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var51
;
1446 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
1450 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
1453 scope__ScopeVisitor__error(self
, var_nlabel
, var58
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1464 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1465 var62
= self
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <self:ScopeVisitor> */
1466 if (unlikely(var62
== NULL
)) {
1467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1468 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
1472 RET_LABEL61
:(void)0;
1476 var63
= list__List__iterator(var60
);
1480 var64
= list__ListIterator__is_ok(var63
);
1484 var65
= list__ListIterator__item(var63
);
1488 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
1489 var68
= var_scope
->attrs
[COLOR_scope__Scope___escapemark
].val
; /* _escapemark on <var_scope:Scope> */
1491 RET_LABEL67
:(void)0;
1496 if (var_res69
== NULL
) {
1497 var71
= 0; /* is null */
1499 var71
= 1; /* arg is null and recv is not */
1502 { /* Inline kernel#Object#!= (var_res69,var70) on <var_res69:nullable EscapeMark> */
1505 var75
= ((short int (*)(val
*, val
*))(var_res69
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res69
, var_other
) /* == on <var_res69:nullable EscapeMark(EscapeMark)>*/;
1511 RET_LABEL73
:(void)0;
1520 CONTINUE_label
: (void)0;
1522 list__ListIterator__next(var63
); /* Direct call list#ListIterator#next on <var63:ListIterator[nullable Object]>*/
1525 BREAK_label
: (void)0;
1529 var79
= "Syntax Error: \'break\' statment outside block.";
1531 var81
= string__NativeString__to_s_with_length(var79
, var80
);
1536 scope__ScopeVisitor__error(self
, var_node
, var78
); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1545 /* method scope#ScopeVisitor#get_escapemark for (self: Object, ANode, nullable ALabel): nullable EscapeMark */
1546 val
* VIRTUAL_scope__ScopeVisitor__get_escapemark(val
* self
, val
* p0
, val
* p1
) {
1547 val
* var
/* : nullable EscapeMark */;
1548 val
* var1
/* : nullable EscapeMark */;
1549 var1
= scope__ScopeVisitor__get_escapemark(self
, p0
, p1
);
1554 /* method scope#ScopeVisitor#error for (self: ScopeVisitor, ANode, String) */
1555 void scope__ScopeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
1556 val
* var_node
/* var node: ANode */;
1557 val
* var_message
/* var message: String */;
1558 val
* var
/* : ToolContext */;
1559 val
* var2
/* : ToolContext */;
1560 val
* var3
/* : Location */;
1564 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
1565 var2
= self
->attrs
[COLOR_scope__ScopeVisitor___toolcontext
].val
; /* _toolcontext on <self:ScopeVisitor> */
1566 if (unlikely(var2
== NULL
)) {
1567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1568 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 68);
1576 var3
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
1579 toolcontext__ToolContext__error(var
, var3
, var_message
); /* Direct call toolcontext#ToolContext#error on <var:ToolContext>*/
1583 /* method scope#ScopeVisitor#error for (self: Object, ANode, String) */
1584 void VIRTUAL_scope__ScopeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
1585 scope__ScopeVisitor__error(self
, p0
, p1
); /* Direct call scope#ScopeVisitor#error on <self:Object(ScopeVisitor)>*/
1588 /* method scope#Scope#variables for (self: Scope): HashMap[String, Variable] */
1589 val
* scope__Scope__variables(val
* self
) {
1590 val
* var
/* : HashMap[String, Variable] */;
1591 val
* var1
/* : HashMap[String, Variable] */;
1592 var1
= self
->attrs
[COLOR_scope__Scope___variables
].val
; /* _variables on <self:Scope> */
1593 if (unlikely(var1
== NULL
)) {
1594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1595 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 210);
1602 /* method scope#Scope#variables for (self: Object): HashMap[String, Variable] */
1603 val
* VIRTUAL_scope__Scope__variables(val
* self
) {
1604 val
* var
/* : HashMap[String, Variable] */;
1605 val
* var1
/* : HashMap[String, Variable] */;
1606 val
* var3
/* : HashMap[String, Variable] */;
1607 { /* Inline scope#Scope#variables (self) on <self:Object(Scope)> */
1608 var3
= self
->attrs
[COLOR_scope__Scope___variables
].val
; /* _variables on <self:Object(Scope)> */
1609 if (unlikely(var3
== NULL
)) {
1610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1611 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 210);
1621 /* method scope#Scope#escapemark for (self: Scope): nullable EscapeMark */
1622 val
* scope__Scope__escapemark(val
* self
) {
1623 val
* var
/* : nullable EscapeMark */;
1624 val
* var1
/* : nullable EscapeMark */;
1625 var1
= self
->attrs
[COLOR_scope__Scope___escapemark
].val
; /* _escapemark on <self:Scope> */
1630 /* method scope#Scope#escapemark for (self: Object): nullable EscapeMark */
1631 val
* VIRTUAL_scope__Scope__escapemark(val
* self
) {
1632 val
* var
/* : nullable EscapeMark */;
1633 val
* var1
/* : nullable EscapeMark */;
1634 val
* var3
/* : nullable EscapeMark */;
1635 { /* Inline scope#Scope#escapemark (self) on <self:Object(Scope)> */
1636 var3
= self
->attrs
[COLOR_scope__Scope___escapemark
].val
; /* _escapemark on <self:Object(Scope)> */
1644 /* method scope#Scope#escapemark= for (self: Scope, nullable EscapeMark) */
1645 void scope__Scope__escapemark_61d(val
* self
, val
* p0
) {
1646 self
->attrs
[COLOR_scope__Scope___escapemark
].val
= p0
; /* _escapemark on <self:Scope> */
1649 /* method scope#Scope#escapemark= for (self: Object, nullable EscapeMark) */
1650 void VIRTUAL_scope__Scope__escapemark_61d(val
* self
, val
* p0
) {
1651 { /* Inline scope#Scope#escapemark= (self,p0) on <self:Object(Scope)> */
1652 self
->attrs
[COLOR_scope__Scope___escapemark
].val
= p0
; /* _escapemark on <self:Object(Scope)> */
1657 /* method scope#Scope#get_variable for (self: Scope, String): nullable Variable */
1658 val
* scope__Scope__get_variable(val
* self
, val
* p0
) {
1659 val
* var
/* : nullable Variable */;
1660 val
* var_name
/* var name: String */;
1661 val
* var1
/* : HashMap[String, Variable] */;
1662 val
* var3
/* : HashMap[String, Variable] */;
1663 short int var4
/* : Bool */;
1664 val
* var5
/* : HashMap[String, Variable] */;
1665 val
* var7
/* : HashMap[String, Variable] */;
1666 val
* var8
/* : nullable Object */;
1667 val
* var9
/* : null */;
1670 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1671 var3
= self
->attrs
[COLOR_scope__Scope___variables
].val
; /* _variables on <self:Scope> */
1672 if (unlikely(var3
== NULL
)) {
1673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1674 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 210);
1682 var4
= abstract_collection__MapRead__has_key(var1
, var_name
);
1686 { /* Inline scope#Scope#variables (self) on <self:Scope> */
1687 var7
= self
->attrs
[COLOR_scope__Scope___variables
].val
; /* _variables on <self:Scope> */
1688 if (unlikely(var7
== NULL
)) {
1689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1690 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 210);
1698 var8
= hash_collection__HashMap___91d_93d(var5
, var_name
);
1710 /* method scope#Scope#get_variable for (self: Object, String): nullable Variable */
1711 val
* VIRTUAL_scope__Scope__get_variable(val
* self
, val
* p0
) {
1712 val
* var
/* : nullable Variable */;
1713 val
* var1
/* : nullable Variable */;
1714 var1
= scope__Scope__get_variable(self
, p0
);
1719 /* method scope#Scope#init for (self: Scope) */
1720 void scope__Scope__init(val
* self
) {
1723 /* method scope#Scope#init for (self: Object) */
1724 void VIRTUAL_scope__Scope__init(val
* self
) {
1725 { /* Inline scope#Scope#init (self) on <self:Object(Scope)> */
1730 /* method scope#ANode#accept_scope_visitor for (self: ANode, ScopeVisitor) */
1731 void scope__ANode__accept_scope_visitor(val
* self
, val
* p0
) {
1732 val
* var_v
/* var v: ScopeVisitor */;
1735 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1739 /* method scope#ANode#accept_scope_visitor for (self: Object, ScopeVisitor) */
1740 void VIRTUAL_scope__ANode__accept_scope_visitor(val
* self
, val
* p0
) {
1741 scope__ANode__accept_scope_visitor(self
, p0
); /* Direct call scope#ANode#accept_scope_visitor on <self:Object(ANode)>*/
1744 /* method scope#APropdef#do_scope for (self: APropdef, ToolContext) */
1745 void scope__APropdef__do_scope(val
* self
, val
* p0
) {
1746 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1747 val
* var
/* : ScopeVisitor */;
1748 val
* var_v
/* var v: ScopeVisitor */;
1749 var_toolcontext
= p0
;
1750 var
= NEW_scope__ScopeVisitor(&type_scope__ScopeVisitor
);
1752 scope__ScopeVisitor__init(var
, var_toolcontext
); /* Direct call scope#ScopeVisitor#init on <var:ScopeVisitor>*/
1756 parser_nodes__Visitor__enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
1760 /* method scope#APropdef#do_scope for (self: Object, ToolContext) */
1761 void VIRTUAL_scope__APropdef__do_scope(val
* self
, val
* p0
) {
1762 scope__APropdef__do_scope(self
, p0
); /* Direct call scope#APropdef#do_scope on <self:Object(APropdef)>*/
1765 /* method scope#AParam#variable for (self: AParam): nullable Variable */
1766 val
* scope__AParam__variable(val
* self
) {
1767 val
* var
/* : nullable Variable */;
1768 val
* var1
/* : nullable Variable */;
1769 var1
= self
->attrs
[COLOR_scope__AParam___variable
].val
; /* _variable on <self:AParam> */
1774 /* method scope#AParam#variable for (self: Object): nullable Variable */
1775 val
* VIRTUAL_scope__AParam__variable(val
* self
) {
1776 val
* var
/* : nullable Variable */;
1777 val
* var1
/* : nullable Variable */;
1778 val
* var3
/* : nullable Variable */;
1779 { /* Inline scope#AParam#variable (self) on <self:Object(AParam)> */
1780 var3
= self
->attrs
[COLOR_scope__AParam___variable
].val
; /* _variable on <self:Object(AParam)> */
1788 /* method scope#AParam#variable= for (self: AParam, nullable Variable) */
1789 void scope__AParam__variable_61d(val
* self
, val
* p0
) {
1790 self
->attrs
[COLOR_scope__AParam___variable
].val
= p0
; /* _variable on <self:AParam> */
1793 /* method scope#AParam#variable= for (self: Object, nullable Variable) */
1794 void VIRTUAL_scope__AParam__variable_61d(val
* self
, val
* p0
) {
1795 { /* Inline scope#AParam#variable= (self,p0) on <self:Object(AParam)> */
1796 self
->attrs
[COLOR_scope__AParam___variable
].val
= p0
; /* _variable on <self:Object(AParam)> */
1801 /* method scope#AParam#accept_scope_visitor for (self: AParam, ScopeVisitor) */
1802 void scope__AParam__accept_scope_visitor(val
* self
, val
* p0
) {
1803 val
* var_v
/* var v: ScopeVisitor */;
1804 val
* var
/* : TId */;
1805 val
* var_nid
/* var nid: TId */;
1806 val
* var1
/* : Variable */;
1807 val
* var2
/* : String */;
1808 val
* var_variable
/* var variable: Variable */;
1809 short int var4
/* : Bool */;
1812 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__AParam__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:AParam>*/;
1815 var
= parser_nodes__AParam__n_id(self
);
1818 var1
= NEW_scope__Variable(&type_scope__Variable
);
1820 var2
= lexer_work__Token__text(var_nid
);
1823 { /* Inline scope#Variable#init (var1,var2) on <var1:Variable> */
1824 var1
->attrs
[COLOR_scope__Variable___name
].val
= var2
; /* _name on <var1:Variable> */
1828 var_variable
= var1
;
1830 var4
= scope__ScopeVisitor__register_variable(var_v
, var_nid
, var_variable
);
1834 { /* Inline scope#AParam#variable= (self,var_variable) on <self:AParam> */
1835 self
->attrs
[COLOR_scope__AParam___variable
].val
= var_variable
; /* _variable on <self:AParam> */
1841 /* method scope#AParam#accept_scope_visitor for (self: Object, ScopeVisitor) */
1842 void VIRTUAL_scope__AParam__accept_scope_visitor(val
* self
, val
* p0
) {
1843 scope__AParam__accept_scope_visitor(self
, p0
); /* Direct call scope#AParam#accept_scope_visitor on <self:Object(AParam)>*/
1846 /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */
1847 val
* scope__AVardeclExpr__variable(val
* self
) {
1848 val
* var
/* : nullable Variable */;
1849 val
* var1
/* : nullable Variable */;
1850 var1
= self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
; /* _variable on <self:AVardeclExpr> */
1855 /* method scope#AVardeclExpr#variable for (self: Object): nullable Variable */
1856 val
* VIRTUAL_scope__AVardeclExpr__variable(val
* self
) {
1857 val
* var
/* : nullable Variable */;
1858 val
* var1
/* : nullable Variable */;
1859 val
* var3
/* : nullable Variable */;
1860 { /* Inline scope#AVardeclExpr#variable (self) on <self:Object(AVardeclExpr)> */
1861 var3
= self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
; /* _variable on <self:Object(AVardeclExpr)> */
1869 /* method scope#AVardeclExpr#variable= for (self: AVardeclExpr, nullable Variable) */
1870 void scope__AVardeclExpr__variable_61d(val
* self
, val
* p0
) {
1871 self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
= p0
; /* _variable on <self:AVardeclExpr> */
1874 /* method scope#AVardeclExpr#variable= for (self: Object, nullable Variable) */
1875 void VIRTUAL_scope__AVardeclExpr__variable_61d(val
* self
, val
* p0
) {
1876 { /* Inline scope#AVardeclExpr#variable= (self,p0) on <self:Object(AVardeclExpr)> */
1877 self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
= p0
; /* _variable on <self:Object(AVardeclExpr)> */
1882 /* method scope#AVardeclExpr#accept_scope_visitor for (self: AVardeclExpr, ScopeVisitor) */
1883 void scope__AVardeclExpr__accept_scope_visitor(val
* self
, val
* p0
) {
1884 val
* var_v
/* var v: ScopeVisitor */;
1885 val
* var
/* : TId */;
1886 val
* var_nid
/* var nid: TId */;
1887 val
* var1
/* : Variable */;
1888 val
* var2
/* : String */;
1889 val
* var_variable
/* var variable: Variable */;
1890 short int var4
/* : Bool */;
1893 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__AVardeclExpr__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:AVardeclExpr>*/;
1896 var
= parser_nodes__AVardeclExpr__n_id(self
);
1899 var1
= NEW_scope__Variable(&type_scope__Variable
);
1901 var2
= lexer_work__Token__text(var_nid
);
1904 { /* Inline scope#Variable#init (var1,var2) on <var1:Variable> */
1905 var1
->attrs
[COLOR_scope__Variable___name
].val
= var2
; /* _name on <var1:Variable> */
1909 var_variable
= var1
;
1911 var4
= scope__ScopeVisitor__register_variable(var_v
, var_nid
, var_variable
);
1915 { /* Inline scope#AVardeclExpr#variable= (self,var_variable) on <self:AVardeclExpr> */
1916 self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
= var_variable
; /* _variable on <self:AVardeclExpr> */
1922 /* method scope#AVardeclExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1923 void VIRTUAL_scope__AVardeclExpr__accept_scope_visitor(val
* self
, val
* p0
) {
1924 scope__AVardeclExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#AVardeclExpr#accept_scope_visitor on <self:Object(AVardeclExpr)>*/
1927 /* method scope#ASelfExpr#variable= for (self: ASelfExpr, nullable Variable) */
1928 void scope__ASelfExpr__variable_61d(val
* self
, val
* p0
) {
1929 self
->attrs
[COLOR_scope__ASelfExpr___variable
].val
= p0
; /* _variable on <self:ASelfExpr> */
1932 /* method scope#ASelfExpr#variable= for (self: Object, nullable Variable) */
1933 void VIRTUAL_scope__ASelfExpr__variable_61d(val
* self
, val
* p0
) {
1934 { /* Inline scope#ASelfExpr#variable= (self,p0) on <self:Object(ASelfExpr)> */
1935 self
->attrs
[COLOR_scope__ASelfExpr___variable
].val
= p0
; /* _variable on <self:Object(ASelfExpr)> */
1940 /* method scope#ASelfExpr#accept_scope_visitor for (self: ASelfExpr, ScopeVisitor) */
1941 void scope__ASelfExpr__accept_scope_visitor(val
* self
, val
* p0
) {
1942 val
* var_v
/* var v: ScopeVisitor */;
1943 val
* var
/* : Variable */;
1944 val
* var2
/* : Variable */;
1947 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__ASelfExpr__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:ASelfExpr>*/;
1950 { /* Inline scope#ScopeVisitor#selfvariable (var_v) on <var_v:ScopeVisitor> */
1951 var2
= var_v
->attrs
[COLOR_scope__ScopeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:ScopeVisitor> */
1952 if (unlikely(var2
== NULL
)) {
1953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
1954 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 71);
1962 { /* Inline scope#ASelfExpr#variable= (self,var) on <self:ASelfExpr> */
1963 self
->attrs
[COLOR_scope__ASelfExpr___variable
].val
= var
; /* _variable on <self:ASelfExpr> */
1969 /* method scope#ASelfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
1970 void VIRTUAL_scope__ASelfExpr__accept_scope_visitor(val
* self
, val
* p0
) {
1971 scope__ASelfExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#ASelfExpr#accept_scope_visitor on <self:Object(ASelfExpr)>*/
1974 /* method scope#AContinueExpr#escapemark for (self: AContinueExpr): nullable EscapeMark */
1975 val
* scope__AContinueExpr__escapemark(val
* self
) {
1976 val
* var
/* : nullable EscapeMark */;
1977 val
* var1
/* : nullable EscapeMark */;
1978 var1
= self
->attrs
[COLOR_scope__AContinueExpr___escapemark
].val
; /* _escapemark on <self:AContinueExpr> */
1983 /* method scope#AContinueExpr#escapemark for (self: Object): nullable EscapeMark */
1984 val
* VIRTUAL_scope__AContinueExpr__escapemark(val
* self
) {
1985 val
* var
/* : nullable EscapeMark */;
1986 val
* var1
/* : nullable EscapeMark */;
1987 val
* var3
/* : nullable EscapeMark */;
1988 { /* Inline scope#AContinueExpr#escapemark (self) on <self:Object(AContinueExpr)> */
1989 var3
= self
->attrs
[COLOR_scope__AContinueExpr___escapemark
].val
; /* _escapemark on <self:Object(AContinueExpr)> */
1997 /* method scope#AContinueExpr#escapemark= for (self: AContinueExpr, nullable EscapeMark) */
1998 void scope__AContinueExpr__escapemark_61d(val
* self
, val
* p0
) {
1999 self
->attrs
[COLOR_scope__AContinueExpr___escapemark
].val
= p0
; /* _escapemark on <self:AContinueExpr> */
2002 /* method scope#AContinueExpr#escapemark= for (self: Object, nullable EscapeMark) */
2003 void VIRTUAL_scope__AContinueExpr__escapemark_61d(val
* self
, val
* p0
) {
2004 { /* Inline scope#AContinueExpr#escapemark= (self,p0) on <self:Object(AContinueExpr)> */
2005 self
->attrs
[COLOR_scope__AContinueExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(AContinueExpr)> */
2010 /* method scope#AContinueExpr#accept_scope_visitor for (self: AContinueExpr, ScopeVisitor) */
2011 void scope__AContinueExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2012 val
* var_v
/* var v: ScopeVisitor */;
2013 val
* var
/* : nullable ALabel */;
2014 val
* var1
/* : nullable EscapeMark */;
2015 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
2016 val
* var2
/* : null */;
2017 short int var3
/* : Bool */;
2018 short int var4
/* : Bool */;
2019 val
* var_other
/* var other: nullable Object */;
2020 short int var6
/* : Bool */;
2021 short int var8
/* : Bool */;
2022 short int var9
/* : Bool */;
2023 short int var11
/* : Bool */;
2024 short int var12
/* : Bool */;
2025 static val
* varonce
;
2026 val
* var13
/* : String */;
2027 char* var14
/* : NativeString */;
2028 long var15
/* : Int */;
2029 val
* var16
/* : FlatString */;
2030 val
* var17
/* : Array[AContinueExpr] */;
2031 val
* var19
/* : Array[AContinueExpr] */;
2034 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__AContinueExpr__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:AContinueExpr>*/;
2037 var
= parser_nodes__ALabelable__n_label(self
);
2040 var1
= scope__ScopeVisitor__get_escapemark(var_v
, self
, var
);
2042 var_escapemark
= var1
;
2044 if (var_escapemark
== NULL
) {
2045 var3
= 1; /* is null */
2047 var3
= 0; /* arg is null but recv is not */
2050 { /* Inline kernel#Object#== (var_escapemark,var2) on <var_escapemark:nullable EscapeMark> */
2053 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2054 var8
= var_escapemark
== var_other
;
2071 { /* Inline scope#EscapeMark#for_loop (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2072 var11
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___for_loop
].s
; /* _for_loop on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2074 RET_LABEL10
:(void)0;
2082 var14
= "Error: cannot \'continue\', only \'break\'.";
2084 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2089 scope__ScopeVisitor__error(var_v
, self
, var13
); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2094 { /* Inline scope#EscapeMark#continues (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2095 var19
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___continues
].val
; /* _continues on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2096 if (unlikely(var19
== NULL
)) {
2097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _continues");
2098 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 53);
2102 RET_LABEL18
:(void)0;
2106 array__Array__add(var17
, self
); /* Direct call array#Array#add on <var17:Array[AContinueExpr]>*/
2109 { /* Inline scope#AContinueExpr#escapemark= (self,var_escapemark) on <self:AContinueExpr> */
2110 self
->attrs
[COLOR_scope__AContinueExpr___escapemark
].val
= var_escapemark
; /* _escapemark on <self:AContinueExpr> */
2111 RET_LABEL20
:(void)0;
2116 /* method scope#AContinueExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2117 void VIRTUAL_scope__AContinueExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2118 scope__AContinueExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#AContinueExpr#accept_scope_visitor on <self:Object(AContinueExpr)>*/
2121 /* method scope#ABreakExpr#escapemark for (self: ABreakExpr): nullable EscapeMark */
2122 val
* scope__ABreakExpr__escapemark(val
* self
) {
2123 val
* var
/* : nullable EscapeMark */;
2124 val
* var1
/* : nullable EscapeMark */;
2125 var1
= self
->attrs
[COLOR_scope__ABreakExpr___escapemark
].val
; /* _escapemark on <self:ABreakExpr> */
2130 /* method scope#ABreakExpr#escapemark for (self: Object): nullable EscapeMark */
2131 val
* VIRTUAL_scope__ABreakExpr__escapemark(val
* self
) {
2132 val
* var
/* : nullable EscapeMark */;
2133 val
* var1
/* : nullable EscapeMark */;
2134 val
* var3
/* : nullable EscapeMark */;
2135 { /* Inline scope#ABreakExpr#escapemark (self) on <self:Object(ABreakExpr)> */
2136 var3
= self
->attrs
[COLOR_scope__ABreakExpr___escapemark
].val
; /* _escapemark on <self:Object(ABreakExpr)> */
2144 /* method scope#ABreakExpr#escapemark= for (self: ABreakExpr, nullable EscapeMark) */
2145 void scope__ABreakExpr__escapemark_61d(val
* self
, val
* p0
) {
2146 self
->attrs
[COLOR_scope__ABreakExpr___escapemark
].val
= p0
; /* _escapemark on <self:ABreakExpr> */
2149 /* method scope#ABreakExpr#escapemark= for (self: Object, nullable EscapeMark) */
2150 void VIRTUAL_scope__ABreakExpr__escapemark_61d(val
* self
, val
* p0
) {
2151 { /* Inline scope#ABreakExpr#escapemark= (self,p0) on <self:Object(ABreakExpr)> */
2152 self
->attrs
[COLOR_scope__ABreakExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(ABreakExpr)> */
2157 /* method scope#ABreakExpr#accept_scope_visitor for (self: ABreakExpr, ScopeVisitor) */
2158 void scope__ABreakExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2159 val
* var_v
/* var v: ScopeVisitor */;
2160 val
* var
/* : nullable ALabel */;
2161 val
* var1
/* : nullable EscapeMark */;
2162 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
2163 val
* var2
/* : null */;
2164 short int var3
/* : Bool */;
2165 short int var4
/* : Bool */;
2166 val
* var_other
/* var other: nullable Object */;
2167 short int var6
/* : Bool */;
2168 short int var8
/* : Bool */;
2169 val
* var9
/* : Array[ABreakExpr] */;
2170 val
* var11
/* : Array[ABreakExpr] */;
2173 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__ABreakExpr__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:ABreakExpr>*/;
2176 var
= parser_nodes__ALabelable__n_label(self
);
2179 var1
= scope__ScopeVisitor__get_escapemark(var_v
, self
, var
);
2181 var_escapemark
= var1
;
2183 if (var_escapemark
== NULL
) {
2184 var3
= 1; /* is null */
2186 var3
= 0; /* arg is null but recv is not */
2189 { /* Inline kernel#Object#== (var_escapemark,var2) on <var_escapemark:nullable EscapeMark> */
2192 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2193 var8
= var_escapemark
== var_other
;
2210 { /* Inline scope#EscapeMark#breaks (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2211 var11
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___breaks
].val
; /* _breaks on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2212 if (unlikely(var11
== NULL
)) {
2213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _breaks");
2214 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 56);
2218 RET_LABEL10
:(void)0;
2222 array__Array__add(var9
, self
); /* Direct call array#Array#add on <var9:Array[ABreakExpr]>*/
2225 { /* Inline scope#ABreakExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
2226 self
->attrs
[COLOR_scope__ABreakExpr___escapemark
].val
= var_escapemark
; /* _escapemark on <self:ABreakExpr> */
2227 RET_LABEL12
:(void)0;
2232 /* method scope#ABreakExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2233 void VIRTUAL_scope__ABreakExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2234 scope__ABreakExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#ABreakExpr#accept_scope_visitor on <self:Object(ABreakExpr)>*/
2237 /* method scope#ADoExpr#escapemark for (self: ADoExpr): nullable EscapeMark */
2238 val
* scope__ADoExpr__escapemark(val
* self
) {
2239 val
* var
/* : nullable EscapeMark */;
2240 val
* var1
/* : nullable EscapeMark */;
2241 var1
= self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
; /* _escapemark on <self:ADoExpr> */
2246 /* method scope#ADoExpr#escapemark for (self: Object): nullable EscapeMark */
2247 val
* VIRTUAL_scope__ADoExpr__escapemark(val
* self
) {
2248 val
* var
/* : nullable EscapeMark */;
2249 val
* var1
/* : nullable EscapeMark */;
2250 val
* var3
/* : nullable EscapeMark */;
2251 { /* Inline scope#ADoExpr#escapemark (self) on <self:Object(ADoExpr)> */
2252 var3
= self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
; /* _escapemark on <self:Object(ADoExpr)> */
2260 /* method scope#ADoExpr#escapemark= for (self: ADoExpr, nullable EscapeMark) */
2261 void scope__ADoExpr__escapemark_61d(val
* self
, val
* p0
) {
2262 self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
= p0
; /* _escapemark on <self:ADoExpr> */
2265 /* method scope#ADoExpr#escapemark= for (self: Object, nullable EscapeMark) */
2266 void VIRTUAL_scope__ADoExpr__escapemark_61d(val
* self
, val
* p0
) {
2267 { /* Inline scope#ADoExpr#escapemark= (self,p0) on <self:Object(ADoExpr)> */
2268 self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(ADoExpr)> */
2273 /* method scope#ADoExpr#accept_scope_visitor for (self: ADoExpr, ScopeVisitor) */
2274 void scope__ADoExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2275 val
* var_v
/* var v: ScopeVisitor */;
2276 val
* var
/* : nullable ALabel */;
2277 short int var1
/* : Bool */;
2278 val
* var2
/* : EscapeMark */;
2279 val
* var4
/* : nullable AExpr */;
2280 val
* var5
/* : nullable EscapeMark */;
2281 val
* var7
/* : nullable EscapeMark */;
2284 var
= parser_nodes__ALabelable__n_label(self
);
2288 var2
= scope__ScopeVisitor__make_escape_mark(var_v
, var
, var1
);
2291 { /* Inline scope#ADoExpr#escapemark= (self,var2) on <self:ADoExpr> */
2292 self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
= var2
; /* _escapemark on <self:ADoExpr> */
2297 var4
= parser_nodes__ADoExpr__n_block(self
);
2300 { /* Inline scope#ADoExpr#escapemark (self) on <self:ADoExpr> */
2301 var7
= self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
; /* _escapemark on <self:ADoExpr> */
2307 scope__ScopeVisitor__enter_visit_block(var_v
, var4
, var5
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2311 /* method scope#ADoExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2312 void VIRTUAL_scope__ADoExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2313 scope__ADoExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#ADoExpr#accept_scope_visitor on <self:Object(ADoExpr)>*/
2316 /* method scope#AIfExpr#accept_scope_visitor for (self: AIfExpr, ScopeVisitor) */
2317 void scope__AIfExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2318 val
* var_v
/* var v: ScopeVisitor */;
2319 val
* var
/* : AExpr */;
2320 val
* var1
/* : nullable AExpr */;
2321 val
* var2
/* : null */;
2322 val
* var3
/* : nullable AExpr */;
2323 val
* var4
/* : null */;
2326 var
= parser_nodes__AIfExpr__n_expr(self
);
2329 parser_nodes__Visitor__enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2332 var1
= parser_nodes__AIfExpr__n_then(self
);
2336 scope__ScopeVisitor__enter_visit_block(var_v
, var1
, var2
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2339 var3
= parser_nodes__AIfExpr__n_else(self
);
2343 scope__ScopeVisitor__enter_visit_block(var_v
, var3
, var4
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2347 /* method scope#AIfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2348 void VIRTUAL_scope__AIfExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2349 scope__AIfExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#AIfExpr#accept_scope_visitor on <self:Object(AIfExpr)>*/
2352 /* method scope#AWhileExpr#escapemark for (self: AWhileExpr): nullable EscapeMark */
2353 val
* scope__AWhileExpr__escapemark(val
* self
) {
2354 val
* var
/* : nullable EscapeMark */;
2355 val
* var1
/* : nullable EscapeMark */;
2356 var1
= self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
; /* _escapemark on <self:AWhileExpr> */
2361 /* method scope#AWhileExpr#escapemark for (self: Object): nullable EscapeMark */
2362 val
* VIRTUAL_scope__AWhileExpr__escapemark(val
* self
) {
2363 val
* var
/* : nullable EscapeMark */;
2364 val
* var1
/* : nullable EscapeMark */;
2365 val
* var3
/* : nullable EscapeMark */;
2366 { /* Inline scope#AWhileExpr#escapemark (self) on <self:Object(AWhileExpr)> */
2367 var3
= self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
; /* _escapemark on <self:Object(AWhileExpr)> */
2375 /* method scope#AWhileExpr#escapemark= for (self: AWhileExpr, nullable EscapeMark) */
2376 void scope__AWhileExpr__escapemark_61d(val
* self
, val
* p0
) {
2377 self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
= p0
; /* _escapemark on <self:AWhileExpr> */
2380 /* method scope#AWhileExpr#escapemark= for (self: Object, nullable EscapeMark) */
2381 void VIRTUAL_scope__AWhileExpr__escapemark_61d(val
* self
, val
* p0
) {
2382 { /* Inline scope#AWhileExpr#escapemark= (self,p0) on <self:Object(AWhileExpr)> */
2383 self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(AWhileExpr)> */
2388 /* method scope#AWhileExpr#accept_scope_visitor for (self: AWhileExpr, ScopeVisitor) */
2389 void scope__AWhileExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2390 val
* var_v
/* var v: ScopeVisitor */;
2391 val
* var
/* : nullable ALabel */;
2392 short int var1
/* : Bool */;
2393 val
* var2
/* : EscapeMark */;
2394 val
* var_escapemark
/* var escapemark: EscapeMark */;
2395 val
* var4
/* : AExpr */;
2396 val
* var5
/* : nullable AExpr */;
2399 var
= parser_nodes__ALabelable__n_label(self
);
2403 var2
= scope__ScopeVisitor__make_escape_mark(var_v
, var
, var1
);
2405 var_escapemark
= var2
;
2407 { /* Inline scope#AWhileExpr#escapemark= (self,var_escapemark) on <self:AWhileExpr> */
2408 self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
= var_escapemark
; /* _escapemark on <self:AWhileExpr> */
2413 var4
= parser_nodes__AWhileExpr__n_expr(self
);
2416 parser_nodes__Visitor__enter_visit(var_v
, var4
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2419 var5
= parser_nodes__AWhileExpr__n_block(self
);
2422 scope__ScopeVisitor__enter_visit_block(var_v
, var5
, var_escapemark
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2426 /* method scope#AWhileExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2427 void VIRTUAL_scope__AWhileExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2428 scope__AWhileExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#AWhileExpr#accept_scope_visitor on <self:Object(AWhileExpr)>*/
2431 /* method scope#ALoopExpr#escapemark for (self: ALoopExpr): nullable EscapeMark */
2432 val
* scope__ALoopExpr__escapemark(val
* self
) {
2433 val
* var
/* : nullable EscapeMark */;
2434 val
* var1
/* : nullable EscapeMark */;
2435 var1
= self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
; /* _escapemark on <self:ALoopExpr> */
2440 /* method scope#ALoopExpr#escapemark for (self: Object): nullable EscapeMark */
2441 val
* VIRTUAL_scope__ALoopExpr__escapemark(val
* self
) {
2442 val
* var
/* : nullable EscapeMark */;
2443 val
* var1
/* : nullable EscapeMark */;
2444 val
* var3
/* : nullable EscapeMark */;
2445 { /* Inline scope#ALoopExpr#escapemark (self) on <self:Object(ALoopExpr)> */
2446 var3
= self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
; /* _escapemark on <self:Object(ALoopExpr)> */
2454 /* method scope#ALoopExpr#escapemark= for (self: ALoopExpr, nullable EscapeMark) */
2455 void scope__ALoopExpr__escapemark_61d(val
* self
, val
* p0
) {
2456 self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
= p0
; /* _escapemark on <self:ALoopExpr> */
2459 /* method scope#ALoopExpr#escapemark= for (self: Object, nullable EscapeMark) */
2460 void VIRTUAL_scope__ALoopExpr__escapemark_61d(val
* self
, val
* p0
) {
2461 { /* Inline scope#ALoopExpr#escapemark= (self,p0) on <self:Object(ALoopExpr)> */
2462 self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(ALoopExpr)> */
2467 /* method scope#ALoopExpr#accept_scope_visitor for (self: ALoopExpr, ScopeVisitor) */
2468 void scope__ALoopExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2469 val
* var_v
/* var v: ScopeVisitor */;
2470 val
* var
/* : nullable ALabel */;
2471 short int var1
/* : Bool */;
2472 val
* var2
/* : EscapeMark */;
2473 val
* var_escapemark
/* var escapemark: EscapeMark */;
2474 val
* var4
/* : nullable AExpr */;
2477 var
= parser_nodes__ALabelable__n_label(self
);
2481 var2
= scope__ScopeVisitor__make_escape_mark(var_v
, var
, var1
);
2483 var_escapemark
= var2
;
2485 { /* Inline scope#ALoopExpr#escapemark= (self,var_escapemark) on <self:ALoopExpr> */
2486 self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
= var_escapemark
; /* _escapemark on <self:ALoopExpr> */
2491 var4
= parser_nodes__ALoopExpr__n_block(self
);
2494 scope__ScopeVisitor__enter_visit_block(var_v
, var4
, var_escapemark
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2498 /* method scope#ALoopExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2499 void VIRTUAL_scope__ALoopExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2500 scope__ALoopExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#ALoopExpr#accept_scope_visitor on <self:Object(ALoopExpr)>*/
2503 /* method scope#AForExpr#variables for (self: AForExpr): nullable Array[Variable] */
2504 val
* scope__AForExpr__variables(val
* self
) {
2505 val
* var
/* : nullable Array[Variable] */;
2506 val
* var1
/* : nullable Array[Variable] */;
2507 var1
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
2512 /* method scope#AForExpr#variables for (self: Object): nullable Array[Variable] */
2513 val
* VIRTUAL_scope__AForExpr__variables(val
* self
) {
2514 val
* var
/* : nullable Array[Variable] */;
2515 val
* var1
/* : nullable Array[Variable] */;
2516 val
* var3
/* : nullable Array[Variable] */;
2517 { /* Inline scope#AForExpr#variables (self) on <self:Object(AForExpr)> */
2518 var3
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:Object(AForExpr)> */
2526 /* method scope#AForExpr#variables= for (self: AForExpr, nullable Array[Variable]) */
2527 void scope__AForExpr__variables_61d(val
* self
, val
* p0
) {
2528 self
->attrs
[COLOR_scope__AForExpr___variables
].val
= p0
; /* _variables on <self:AForExpr> */
2531 /* method scope#AForExpr#variables= for (self: Object, nullable Array[Variable]) */
2532 void VIRTUAL_scope__AForExpr__variables_61d(val
* self
, val
* p0
) {
2533 { /* Inline scope#AForExpr#variables= (self,p0) on <self:Object(AForExpr)> */
2534 self
->attrs
[COLOR_scope__AForExpr___variables
].val
= p0
; /* _variables on <self:Object(AForExpr)> */
2539 /* method scope#AForExpr#escapemark for (self: AForExpr): nullable EscapeMark */
2540 val
* scope__AForExpr__escapemark(val
* self
) {
2541 val
* var
/* : nullable EscapeMark */;
2542 val
* var1
/* : nullable EscapeMark */;
2543 var1
= self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
; /* _escapemark on <self:AForExpr> */
2548 /* method scope#AForExpr#escapemark for (self: Object): nullable EscapeMark */
2549 val
* VIRTUAL_scope__AForExpr__escapemark(val
* self
) {
2550 val
* var
/* : nullable EscapeMark */;
2551 val
* var1
/* : nullable EscapeMark */;
2552 val
* var3
/* : nullable EscapeMark */;
2553 { /* Inline scope#AForExpr#escapemark (self) on <self:Object(AForExpr)> */
2554 var3
= self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
; /* _escapemark on <self:Object(AForExpr)> */
2562 /* method scope#AForExpr#escapemark= for (self: AForExpr, nullable EscapeMark) */
2563 void scope__AForExpr__escapemark_61d(val
* self
, val
* p0
) {
2564 self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
= p0
; /* _escapemark on <self:AForExpr> */
2567 /* method scope#AForExpr#escapemark= for (self: Object, nullable EscapeMark) */
2568 void VIRTUAL_scope__AForExpr__escapemark_61d(val
* self
, val
* p0
) {
2569 { /* Inline scope#AForExpr#escapemark= (self,p0) on <self:Object(AForExpr)> */
2570 self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
= p0
; /* _escapemark on <self:Object(AForExpr)> */
2575 /* method scope#AForExpr#accept_scope_visitor for (self: AForExpr, ScopeVisitor) */
2576 void scope__AForExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2577 val
* var_v
/* var v: ScopeVisitor */;
2578 val
* var
/* : AExpr */;
2579 val
* var1
/* : List[Scope] */;
2580 val
* var3
/* : List[Scope] */;
2581 val
* var4
/* : Scope */;
2582 val
* var6
/* : Array[Variable] */;
2583 val
* var_variables
/* var variables: Array[Variable] */;
2584 val
* var8
/* : ANodes[TId] */;
2585 val
* var10
/* : ANodes[TId] */;
2586 val
* var11
/* : Iterator[ANode] */;
2587 short int var12
/* : Bool */;
2588 val
* var13
/* : nullable Object */;
2589 val
* var_nid
/* var nid: TId */;
2590 val
* var14
/* : Variable */;
2591 val
* var15
/* : String */;
2592 val
* var_va
/* var va: Variable */;
2593 short int var17
/* : Bool */;
2594 val
* var18
/* : nullable ALabel */;
2595 short int var19
/* : Bool */;
2596 val
* var20
/* : EscapeMark */;
2597 val
* var_escapemark
/* var escapemark: EscapeMark */;
2598 val
* var22
/* : nullable AExpr */;
2599 val
* var23
/* : List[Scope] */;
2600 val
* var25
/* : List[Scope] */;
2601 val
* var26
/* : nullable Object */;
2604 var
= parser_nodes__AForExpr__n_expr(self
);
2607 parser_nodes__Visitor__enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2610 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
2611 var3
= var_v
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <var_v:ScopeVisitor> */
2612 if (unlikely(var3
== NULL
)) {
2613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
2614 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
2621 var4
= NEW_scope__Scope(&type_scope__Scope
);
2623 { /* Inline scope#Scope#init (var4) on <var4:Scope> */
2628 list__List__unshift(var1
, var4
); /* Direct call list#List#unshift on <var1:List[Scope]>*/
2630 var6
= NEW_array__Array(&type_array__Arrayscope__Variable
);
2632 array__Array__init(var6
); /* Direct call array#Array#init on <var6:Array[Variable]>*/
2634 var_variables
= var6
;
2636 { /* Inline scope#AForExpr#variables= (self,var_variables) on <self:AForExpr> */
2637 self
->attrs
[COLOR_scope__AForExpr___variables
].val
= var_variables
; /* _variables on <self:AForExpr> */
2642 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
2643 var10
= self
->attrs
[COLOR_parser_nodes__AForExpr___n_ids
].val
; /* _n_ids on <self:AForExpr> */
2644 if (unlikely(var10
== NULL
)) {
2645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
2646 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1604);
2654 var11
= parser_nodes__ANodes__iterator(var8
);
2658 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[ANode]>*/;
2662 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[ANode]>*/;
2665 var14
= NEW_scope__Variable(&type_scope__Variable
);
2667 var15
= lexer_work__Token__text(var_nid
);
2670 { /* Inline scope#Variable#init (var14,var15) on <var14:Variable> */
2671 var14
->attrs
[COLOR_scope__Variable___name
].val
= var15
; /* _name on <var14:Variable> */
2672 RET_LABEL16
:(void)0;
2677 var17
= scope__ScopeVisitor__register_variable(var_v
, var_nid
, var_va
);
2681 array__Array__add(var_variables
, var_va
); /* Direct call array#Array#add on <var_variables:Array[Variable]>*/
2683 CONTINUE_label
: (void)0;
2685 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[ANode]>*/;
2688 BREAK_label
: (void)0;
2690 var18
= parser_nodes__ALabelable__n_label(self
);
2694 var20
= scope__ScopeVisitor__make_escape_mark(var_v
, var18
, var19
);
2696 var_escapemark
= var20
;
2698 { /* Inline scope#AForExpr#escapemark= (self,var_escapemark) on <self:AForExpr> */
2699 self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
= var_escapemark
; /* _escapemark on <self:AForExpr> */
2700 RET_LABEL21
:(void)0;
2704 var22
= parser_nodes__AForExpr__n_block(self
);
2707 scope__ScopeVisitor__enter_visit_block(var_v
, var22
, var_escapemark
); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2710 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
2711 var25
= var_v
->attrs
[COLOR_scope__ScopeVisitor___scopes
].val
; /* _scopes on <var_v:ScopeVisitor> */
2712 if (unlikely(var25
== NULL
)) {
2713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
2714 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 79);
2718 RET_LABEL24
:(void)0;
2722 var26
= list__List__shift(var23
);
2727 /* method scope#AForExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2728 void VIRTUAL_scope__AForExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2729 scope__AForExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#AForExpr#accept_scope_visitor on <self:Object(AForExpr)>*/
2732 /* method scope#AVarFormExpr#variable for (self: AVarFormExpr): nullable Variable */
2733 val
* scope__AVarFormExpr__variable(val
* self
) {
2734 val
* var
/* : nullable Variable */;
2735 val
* var1
/* : nullable Variable */;
2736 var1
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarFormExpr> */
2741 /* method scope#AVarFormExpr#variable for (self: Object): nullable Variable */
2742 val
* VIRTUAL_scope__AVarFormExpr__variable(val
* self
) {
2743 val
* var
/* : nullable Variable */;
2744 val
* var1
/* : nullable Variable */;
2745 val
* var3
/* : nullable Variable */;
2746 { /* Inline scope#AVarFormExpr#variable (self) on <self:Object(AVarFormExpr)> */
2747 var3
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:Object(AVarFormExpr)> */
2755 /* method scope#AVarFormExpr#variable= for (self: AVarFormExpr, nullable Variable) */
2756 void scope__AVarFormExpr__variable_61d(val
* self
, val
* p0
) {
2757 self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
= p0
; /* _variable on <self:AVarFormExpr> */
2760 /* method scope#AVarFormExpr#variable= for (self: Object, nullable Variable) */
2761 void VIRTUAL_scope__AVarFormExpr__variable_61d(val
* self
, val
* p0
) {
2762 { /* Inline scope#AVarFormExpr#variable= (self,p0) on <self:Object(AVarFormExpr)> */
2763 self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
= p0
; /* _variable on <self:Object(AVarFormExpr)> */
2768 /* method scope#ACallFormExpr#accept_scope_visitor for (self: ACallFormExpr, ScopeVisitor) */
2769 void scope__ACallFormExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2770 val
* var_v
/* var v: ScopeVisitor */;
2771 val
* var
/* : AExpr */;
2772 short int var1
/* : Bool */;
2775 val
* var2
/* : TId */;
2776 val
* var3
/* : String */;
2777 val
* var_name
/* var name: String */;
2778 val
* var4
/* : nullable Variable */;
2779 val
* var_variable
/* var variable: nullable Variable */;
2780 val
* var5
/* : null */;
2781 short int var6
/* : Bool */;
2782 short int var7
/* : Bool */;
2783 val
* var_other
/* var other: nullable Object */;
2784 short int var9
/* : Bool */;
2785 short int var10
/* : Bool */;
2786 short int var11
/* : Bool */;
2787 short int var12
/* : Bool */;
2788 val
* var13
/* : AExprs */;
2789 val
* var14
/* : ANodes[AExpr] */;
2790 val
* var16
/* : ANodes[AExpr] */;
2791 short int var17
/* : Bool */;
2792 short int var18
/* : Bool */;
2793 short int var_
/* var : Bool */;
2794 val
* var19
/* : AExprs */;
2795 short int var20
/* : Bool */;
2798 static val
* varonce
;
2799 val
* var23
/* : String */;
2800 char* var24
/* : NativeString */;
2801 long var25
/* : Int */;
2802 val
* var26
/* : FlatString */;
2803 static val
* varonce27
;
2804 val
* var28
/* : String */;
2805 char* var29
/* : NativeString */;
2806 long var30
/* : Int */;
2807 val
* var31
/* : FlatString */;
2808 val
* var32
/* : Array[Object] */;
2809 long var33
/* : Int */;
2810 val
* var34
/* : NativeArray[Object] */;
2811 val
* var35
/* : String */;
2812 val
* var36
/* : AVarFormExpr */;
2813 val
* var_n
/* var n: AExpr */;
2816 var
= parser_nodes__ASendExpr__n_expr(self
);
2818 /* <var:AExpr> isa AImplicitSelfExpr */
2819 cltype
= type_parser_nodes__AImplicitSelfExpr
.color
;
2820 idtype
= type_parser_nodes__AImplicitSelfExpr
.id
;
2821 if(cltype
>= var
->type
->table_size
) {
2824 var1
= var
->type
->type_table
[cltype
] == idtype
;
2828 var2
= parser_nodes__ACallFormExpr__n_id(self
);
2831 var3
= lexer_work__Token__text(var2
);
2835 var4
= scope__ScopeVisitor__search_variable(var_v
, var_name
);
2837 var_variable
= var4
;
2839 if (var_variable
== NULL
) {
2840 var6
= 0; /* is null */
2842 var6
= 1; /* arg is null and recv is not */
2845 { /* Inline kernel#Object#!= (var_variable,var5) on <var_variable:nullable Variable> */
2848 var10
= ((short int (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
2860 var13
= parser_nodes__ACallFormExpr__n_args(self
);
2863 { /* Inline parser_nodes#AExprs#n_exprs (var13) on <var13:AExprs> */
2864 var16
= var13
->attrs
[COLOR_parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <var13:AExprs> */
2865 if (unlikely(var16
== NULL
)) {
2866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2867 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
2871 RET_LABEL15
:(void)0;
2875 var17
= parser_nodes__ANodes__is_empty(var14
);
2883 var19
= parser_nodes__ACallFormExpr__n_args(self
);
2885 /* <var19:AExprs> isa AParExprs */
2886 cltype21
= type_parser_nodes__AParExprs
.color
;
2887 idtype22
= type_parser_nodes__AParExprs
.id
;
2888 if(cltype21
>= var19
->type
->table_size
) {
2891 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
2901 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2908 var29
= " is variable, not a function.";
2910 var31
= string__NativeString__to_s_with_length(var29
, var30
);
2914 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
2915 { /* var32 = array_instance Array[Object] */
2917 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
2918 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
2919 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_name
;
2920 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
2922 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
2926 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
2929 scope__ScopeVisitor__error(var_v
, self
, var35
); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2935 var36
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__ACallFormExpr__variable_create
]))(self
, var_variable
) /* variable_create on <self:ACallFormExpr>*/;
2939 { /* Inline scope#AVarFormExpr#variable= (var_n,var_variable) on <var_n:AExpr(AVarFormExpr)> */
2940 var_n
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
= var_variable
; /* _variable on <var_n:AExpr(AVarFormExpr)> */
2941 RET_LABEL37
:(void)0;
2945 parser_nodes__Prod__replace_with(self
, var_n
); /* Direct call parser_nodes#Prod#replace_with on <self:ACallFormExpr>*/
2948 scope__ANode__accept_scope_visitor(var_n
, var_v
); /* Direct call scope#ANode#accept_scope_visitor on <var_n:AExpr(AVarFormExpr)>*/
2956 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_scope__ACallFormExpr__accept_scope_visitor
]))(self
, p0
) /* accept_scope_visitor on <self:ACallFormExpr>*/;
2960 /* method scope#ACallFormExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2961 void VIRTUAL_scope__ACallFormExpr__accept_scope_visitor(val
* self
, val
* p0
) {
2962 scope__ACallFormExpr__accept_scope_visitor(self
, p0
); /* Direct call scope#ACallFormExpr#accept_scope_visitor on <self:Object(ACallFormExpr)>*/
2965 /* method scope#ACallExpr#variable_create for (self: ACallExpr, Variable): AVarFormExpr */
2966 val
* scope__ACallExpr__variable_create(val
* self
, val
* p0
) {
2967 val
* var
/* : AVarFormExpr */;
2968 val
* var_variable
/* var variable: Variable */;
2969 val
* var1
/* : AVarExpr */;
2970 val
* var2
/* : TId */;
2972 var1
= NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr
);
2974 var2
= parser_nodes__ACallFormExpr__n_id(self
);
2977 parser_prod__AVarExpr__init_avarexpr(var1
, var2
); /* Direct call parser_prod#AVarExpr#init_avarexpr on <var1:AVarExpr>*/
2984 /* method scope#ACallExpr#variable_create for (self: Object, Variable): AVarFormExpr */
2985 val
* VIRTUAL_scope__ACallExpr__variable_create(val
* self
, val
* p0
) {
2986 val
* var
/* : AVarFormExpr */;
2987 val
* var1
/* : AVarFormExpr */;
2988 var1
= scope__ACallExpr__variable_create(self
, p0
);
2993 /* method scope#ACallAssignExpr#variable_create for (self: ACallAssignExpr, Variable): AVarFormExpr */
2994 val
* scope__ACallAssignExpr__variable_create(val
* self
, val
* p0
) {
2995 val
* var
/* : AVarFormExpr */;
2996 val
* var_variable
/* var variable: Variable */;
2997 val
* var1
/* : AVarAssignExpr */;
2998 val
* var2
/* : TId */;
2999 val
* var3
/* : TAssign */;
3000 val
* var4
/* : AExpr */;
3002 var1
= NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr
);
3004 var2
= parser_nodes__ACallFormExpr__n_id(self
);
3007 var3
= parser_nodes__AAssignFormExpr__n_assign(self
);
3010 var4
= parser_nodes__AAssignFormExpr__n_value(self
);
3013 parser_prod__AVarAssignExpr__init_avarassignexpr(var1
, var2
, var3
, var4
); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <var1:AVarAssignExpr>*/
3020 /* method scope#ACallAssignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
3021 val
* VIRTUAL_scope__ACallAssignExpr__variable_create(val
* self
, val
* p0
) {
3022 val
* var
/* : AVarFormExpr */;
3023 val
* var1
/* : AVarFormExpr */;
3024 var1
= scope__ACallAssignExpr__variable_create(self
, p0
);
3029 /* method scope#ACallReassignExpr#variable_create for (self: ACallReassignExpr, Variable): AVarFormExpr */
3030 val
* scope__ACallReassignExpr__variable_create(val
* self
, val
* p0
) {
3031 val
* var
/* : AVarFormExpr */;
3032 val
* var_variable
/* var variable: Variable */;
3033 val
* var1
/* : AVarReassignExpr */;
3034 val
* var2
/* : TId */;
3035 val
* var3
/* : AAssignOp */;
3036 val
* var4
/* : AExpr */;
3038 var1
= NEW_parser_nodes__AVarReassignExpr(&type_parser_nodes__AVarReassignExpr
);
3040 var2
= parser_nodes__ACallFormExpr__n_id(self
);
3043 var3
= parser_nodes__AReassignFormExpr__n_assign_op(self
);
3046 var4
= parser_nodes__AReassignFormExpr__n_value(self
);
3049 parser_prod__AVarReassignExpr__init_avarreassignexpr(var1
, var2
, var3
, var4
); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <var1:AVarReassignExpr>*/
3056 /* method scope#ACallReassignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
3057 val
* VIRTUAL_scope__ACallReassignExpr__variable_create(val
* self
, val
* p0
) {
3058 val
* var
/* : AVarFormExpr */;
3059 val
* var1
/* : AVarFormExpr */;
3060 var1
= scope__ACallReassignExpr__variable_create(self
, p0
);