1a20ba8d574fdeec72b8db7d1633bdcbc5b2268f
[nit.git] / c_src / parser_util.sep.1.c
1 #include "parser_util.sep.0.h"
2 /* method parser_util#ToolContext#parse_module for (self: ToolContext, String): AModule */
3 val* parser_util__ToolContext__parse_module(val* self, val* p0) {
4 val* var /* : AModule */;
5 val* var_string /* var string: String */;
6 val* var1 /* : SourceFile */;
7 static val* varonce;
8 val* var2 /* : String */;
9 char* var3 /* : NativeString */;
10 long var4 /* : Int */;
11 val* var5 /* : String */;
12 val* var_source /* var source: SourceFile */;
13 val* var6 /* : Lexer */;
14 val* var_lexer /* var lexer: Lexer */;
15 val* var7 /* : Parser */;
16 val* var_parser /* var parser: Parser */;
17 val* var8 /* : Start */;
18 val* var_tree /* var tree: Start */;
19 val* var9 /* : EOF */;
20 val* var_eof /* var eof: EOF */;
21 short int var10 /* : Bool */;
22 int cltype;
23 int idtype;
24 val* var11 /* : null */;
25 static val* varonce12;
26 val* var13 /* : String */;
27 char* var14 /* : NativeString */;
28 long var15 /* : Int */;
29 val* var16 /* : String */;
30 val* var17 /* : String */;
31 val* var18 /* : Array[Object] */;
32 long var19 /* : Int */;
33 val* var20 /* : NativeArray[Object] */;
34 val* var21 /* : String */;
35 val* var22 /* : nullable AModule */;
36 var_string = p0;
37 var1 = NEW_location__SourceFile(&type_location__SourceFile);
38 if (varonce) {
39 var2 = varonce;
40 } else {
41 var3 = "";
42 var4 = 0;
43 var5 = string__NativeString__to_s_with_length(var3, var4);
44 var2 = var5;
45 varonce = var2;
46 }
47 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_location__SourceFile__from_string]))(var1, var2, var_string) /* from_string on <var1:SourceFile>*/;
48 CHECK_NEW_location__SourceFile(var1);
49 var_source = var1;
50 var6 = NEW_lexer__Lexer(&type_lexer__Lexer);
51 ((void (*)(val*, val*))(var6->class->vft[COLOR_lexer__Lexer__init]))(var6, var_source) /* init on <var6:Lexer>*/;
52 CHECK_NEW_lexer__Lexer(var6);
53 var_lexer = var6;
54 var7 = NEW_parser__Parser(&type_parser__Parser);
55 ((void (*)(val*, val*))(var7->class->vft[COLOR_parser__Parser__init]))(var7, var_lexer) /* init on <var7:Parser>*/;
56 CHECK_NEW_parser__Parser(var7);
57 var_parser = var7;
58 var8 = ((val* (*)(val*))(var_parser->class->vft[COLOR_parser__Parser__parse]))(var_parser) /* parse on <var_parser:Parser>*/;
59 var_tree = var8;
60 var9 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on <var_tree:Start>*/;
61 var_eof = var9;
62 /* <var_eof:EOF> isa AError */
63 cltype = type_parser_nodes__AError.color;
64 idtype = type_parser_nodes__AError.id;
65 if(cltype >= var_eof->type->table_size) {
66 var10 = 0;
67 } else {
68 var10 = var_eof->type->type_table[cltype] == idtype;
69 }
70 if (var10){
71 var11 = NULL;
72 if (varonce12) {
73 var13 = varonce12;
74 } else {
75 var14 = "Fatal Error: ";
76 var15 = 13;
77 var16 = string__NativeString__to_s_with_length(var14, var15);
78 var13 = var16;
79 varonce12 = var13;
80 }
81 var17 = ((val* (*)(val*))(var_eof->class->vft[COLOR_lexer__AError__message]))(var_eof) /* message on <var_eof:EOF(AError)>*/;
82 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
83 { /* var18 = array_instance Array[Object] */
84 var19 = 2;
85 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
86 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var13;
87 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var17;
88 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
89 CHECK_NEW_array__Array(var18);
90 }
91 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
92 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_toolcontext__ToolContext__fatal_error]))(self, var11, var21) /* fatal_error on <self:ToolContext>*/;
93 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser_util.nit", 34);
94 exit(1);
95 } else {
96 }
97 var22 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on <var_tree:Start>*/;
98 if (var22 == NULL) {
99 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 36);
100 exit(1);
101 }
102 var = var22;
103 goto RET_LABEL;
104 RET_LABEL:;
105 return var;
106 }
107 /* method parser_util#ToolContext#parse_module for (self: Object, String): AModule */
108 val* VIRTUAL_parser_util__ToolContext__parse_module(val* self, val* p0) {
109 val* var /* : AModule */;
110 val* var1 /* : AModule */;
111 var1 = parser_util__ToolContext__parse_module(self, p0);
112 var = var1;
113 RET_LABEL:;
114 return var;
115 }
116 /* method parser_util#ToolContext#parse_classdef for (self: ToolContext, String): AClassdef */
117 val* parser_util__ToolContext__parse_classdef(val* self, val* p0) {
118 val* var /* : AClassdef */;
119 val* var_string /* var string: String */;
120 val* var1 /* : AModule */;
121 val* var_nmodule /* var nmodule: AModule */;
122 val* var2 /* : ANodes[AClassdef] */;
123 val* var_nclassdefs /* var nclassdefs: ANodes[AClassdef] */;
124 long var3 /* : Int */;
125 long var4 /* : Int */;
126 short int var5 /* : Bool */;
127 short int var7 /* : Bool */;
128 short int var8 /* : Bool */;
129 val* var9 /* : null */;
130 static val* varonce;
131 val* var10 /* : String */;
132 char* var11 /* : NativeString */;
133 long var12 /* : Int */;
134 val* var13 /* : String */;
135 val* var14 /* : nullable Object */;
136 var_string = p0;
137 var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_parser_util__ToolContext__parse_module]))(self, var_string) /* parse_module on <self:ToolContext>*/;
138 var_nmodule = var1;
139 var2 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var_nmodule) /* n_classdefs on <var_nmodule:AModule>*/;
140 var_nclassdefs = var2;
141 var3 = ((long (*)(val*))(var_nclassdefs->class->vft[COLOR_abstract_collection__Collection__length]))(var_nclassdefs) /* length on <var_nclassdefs:ANodes[AClassdef]>*/;
142 var4 = 1;
143 { /* Inline kernel#Int#!= (var3,var4) */
144 var7 = var3 == var4;
145 var8 = !var7;
146 var5 = var8;
147 goto RET_LABEL6;
148 RET_LABEL6:(void)0;
149 }
150 if (var5){
151 var9 = NULL;
152 if (varonce) {
153 var10 = varonce;
154 } else {
155 var11 = "Fatal Error: not a classdef";
156 var12 = 27;
157 var13 = string__NativeString__to_s_with_length(var11, var12);
158 var10 = var13;
159 varonce = var10;
160 }
161 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_toolcontext__ToolContext__fatal_error]))(self, var9, var10) /* fatal_error on <self:ToolContext>*/;
162 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser_util.nit", 47);
163 exit(1);
164 } else {
165 }
166 var14 = ((val* (*)(val*))(var_nclassdefs->class->vft[COLOR_abstract_collection__Collection__first]))(var_nclassdefs) /* first on <var_nclassdefs:ANodes[AClassdef]>*/;
167 var = var14;
168 goto RET_LABEL;
169 RET_LABEL:;
170 return var;
171 }
172 /* method parser_util#ToolContext#parse_classdef for (self: Object, String): AClassdef */
173 val* VIRTUAL_parser_util__ToolContext__parse_classdef(val* self, val* p0) {
174 val* var /* : AClassdef */;
175 val* var1 /* : AClassdef */;
176 var1 = parser_util__ToolContext__parse_classdef(self, p0);
177 var = var1;
178 RET_LABEL:;
179 return var;
180 }
181 /* method parser_util#ToolContext#parse_propdef for (self: ToolContext, String): APropdef */
182 val* parser_util__ToolContext__parse_propdef(val* self, val* p0) {
183 val* var /* : APropdef */;
184 val* var_string /* var string: String */;
185 val* var1 /* : Array[Object] */;
186 long var2 /* : Int */;
187 val* var_ /* var : Array[Object] */;
188 static val* varonce;
189 val* var3 /* : String */;
190 char* var4 /* : NativeString */;
191 long var5 /* : Int */;
192 val* var6 /* : String */;
193 static val* varonce7;
194 val* var8 /* : String */;
195 char* var9 /* : NativeString */;
196 long var10 /* : Int */;
197 val* var11 /* : String */;
198 val* var12 /* : String */;
199 val* var_mod_string /* var mod_string: String */;
200 val* var13 /* : AClassdef */;
201 val* var_nclassdef /* var nclassdef: AClassdef */;
202 val* var14 /* : ANodes[APropdef] */;
203 val* var_npropdefs /* var npropdefs: ANodes[APropdef] */;
204 long var15 /* : Int */;
205 long var16 /* : Int */;
206 short int var17 /* : Bool */;
207 short int var19 /* : Bool */;
208 short int var20 /* : Bool */;
209 val* var21 /* : null */;
210 static val* varonce22;
211 val* var23 /* : String */;
212 char* var24 /* : NativeString */;
213 long var25 /* : Int */;
214 val* var26 /* : String */;
215 val* var27 /* : nullable Object */;
216 var_string = p0;
217 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
218 var2 = 3;
219 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
220 CHECK_NEW_array__Array(var1);
221 var_ = var1;
222 if (varonce) {
223 var3 = varonce;
224 } else {
225 var4 = "class Dummy\n";
226 var5 = 12;
227 var6 = string__NativeString__to_s_with_length(var4, var5);
228 var3 = var6;
229 varonce = var3;
230 }
231 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
232 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_string) /* add on <var_:Array[Object]>*/;
233 if (varonce7) {
234 var8 = varonce7;
235 } else {
236 var9 = "\nend";
237 var10 = 4;
238 var11 = string__NativeString__to_s_with_length(var9, var10);
239 var8 = var11;
240 varonce7 = var8;
241 }
242 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
243 var12 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
244 var_mod_string = var12;
245 var13 = ((val* (*)(val*, val*))(self->class->vft[COLOR_parser_util__ToolContext__parse_classdef]))(self, var_mod_string) /* parse_classdef on <self:ToolContext>*/;
246 var_nclassdef = var13;
247 var14 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on <var_nclassdef:AClassdef>*/;
248 var_npropdefs = var14;
249 var15 = ((long (*)(val*))(var_npropdefs->class->vft[COLOR_abstract_collection__Collection__length]))(var_npropdefs) /* length on <var_npropdefs:ANodes[APropdef]>*/;
250 var16 = 1;
251 { /* Inline kernel#Int#!= (var15,var16) */
252 var19 = var15 == var16;
253 var20 = !var19;
254 var17 = var20;
255 goto RET_LABEL18;
256 RET_LABEL18:(void)0;
257 }
258 if (var17){
259 var21 = NULL;
260 if (varonce22) {
261 var23 = varonce22;
262 } else {
263 var24 = "Fatal Error: not a propdef";
264 var25 = 26;
265 var26 = string__NativeString__to_s_with_length(var24, var25);
266 var23 = var26;
267 varonce22 = var23;
268 }
269 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_toolcontext__ToolContext__fatal_error]))(self, var21, var23) /* fatal_error on <self:ToolContext>*/;
270 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser_util.nit", 61);
271 exit(1);
272 } else {
273 }
274 var27 = ((val* (*)(val*))(var_npropdefs->class->vft[COLOR_abstract_collection__Collection__first]))(var_npropdefs) /* first on <var_npropdefs:ANodes[APropdef]>*/;
275 var = var27;
276 goto RET_LABEL;
277 RET_LABEL:;
278 return var;
279 }
280 /* method parser_util#ToolContext#parse_propdef for (self: Object, String): APropdef */
281 val* VIRTUAL_parser_util__ToolContext__parse_propdef(val* self, val* p0) {
282 val* var /* : APropdef */;
283 val* var1 /* : APropdef */;
284 var1 = parser_util__ToolContext__parse_propdef(self, p0);
285 var = var1;
286 RET_LABEL:;
287 return var;
288 }
289 /* method parser_util#ToolContext#parse_stmts for (self: ToolContext, String): AExpr */
290 val* parser_util__ToolContext__parse_stmts(val* self, val* p0) {
291 val* var /* : AExpr */;
292 val* var_string /* var string: String */;
293 val* var1 /* : Array[Object] */;
294 long var2 /* : Int */;
295 val* var_ /* var : Array[Object] */;
296 static val* varonce;
297 val* var3 /* : String */;
298 char* var4 /* : NativeString */;
299 long var5 /* : Int */;
300 val* var6 /* : String */;
301 static val* varonce7;
302 val* var8 /* : String */;
303 char* var9 /* : NativeString */;
304 long var10 /* : Int */;
305 val* var11 /* : String */;
306 val* var12 /* : String */;
307 val* var_mod_string /* var mod_string: String */;
308 val* var13 /* : AModule */;
309 val* var_nmodule /* var nmodule: AModule */;
310 val* var14 /* : ANodes[AClassdef] */;
311 val* var15 /* : nullable Object */;
312 val* var16 /* : ANodes[APropdef] */;
313 val* var17 /* : nullable Object */;
314 short int var18 /* : Bool */;
315 int cltype;
316 int idtype;
317 val* var19 /* : nullable AExpr */;
318 short int var20 /* : Bool */;
319 int cltype21;
320 int idtype22;
321 val* var23 /* : ANodes[AExpr] */;
322 val* var24 /* : nullable Object */;
323 short int var25 /* : Bool */;
324 int cltype26;
325 int idtype27;
326 val* var28 /* : nullable AExpr */;
327 val* var_nblock /* var nblock: AExpr */;
328 var_string = p0;
329 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
330 var2 = 3;
331 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
332 CHECK_NEW_array__Array(var1);
333 var_ = var1;
334 if (varonce) {
335 var3 = varonce;
336 } else {
337 var4 = "do\n";
338 var5 = 3;
339 var6 = string__NativeString__to_s_with_length(var4, var5);
340 var3 = var6;
341 varonce = var3;
342 }
343 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
344 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_string) /* add on <var_:Array[Object]>*/;
345 if (varonce7) {
346 var8 = varonce7;
347 } else {
348 var9 = "\nend";
349 var10 = 4;
350 var11 = string__NativeString__to_s_with_length(var9, var10);
351 var8 = var11;
352 varonce7 = var8;
353 }
354 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
355 var12 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
356 var_mod_string = var12;
357 var13 = ((val* (*)(val*, val*))(self->class->vft[COLOR_parser_util__ToolContext__parse_module]))(self, var_mod_string) /* parse_module on <self:ToolContext>*/;
358 var_nmodule = var13;
359 var14 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var_nmodule) /* n_classdefs on <var_nmodule:AModule>*/;
360 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__first]))(var14) /* first on <var14:ANodes[AClassdef]>*/;
361 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var15) /* n_propdefs on <var15:nullable Object(AClassdef)>*/;
362 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__first]))(var16) /* first on <var16:ANodes[APropdef]>*/;
363 /* <var17:nullable Object(APropdef)> isa AMainMethPropdef */
364 cltype = type_parser_nodes__AMainMethPropdef.color;
365 idtype = type_parser_nodes__AMainMethPropdef.id;
366 if(cltype >= var17->type->table_size) {
367 var18 = 0;
368 } else {
369 var18 = var17->type->type_table[cltype] == idtype;
370 }
371 if (!var18) {
372 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 72);
373 exit(1);
374 }
375 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(var17) /* n_block on <var17:APropdef(AMainMethPropdef)>*/;
376 /* <var19:nullable AExpr> isa ABlockExpr */
377 cltype21 = type_parser_nodes__ABlockExpr.color;
378 idtype22 = type_parser_nodes__ABlockExpr.id;
379 if(var19 == NULL) {
380 var20 = 0;
381 } else {
382 if(cltype21 >= var19->type->table_size) {
383 var20 = 0;
384 } else {
385 var20 = var19->type->type_table[cltype21] == idtype22;
386 }
387 }
388 if (!var20) {
389 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 72);
390 exit(1);
391 }
392 var23 = ((val* (*)(val*))(var19->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var19) /* n_expr on <var19:nullable AExpr(ABlockExpr)>*/;
393 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Collection__first]))(var23) /* first on <var23:ANodes[AExpr]>*/;
394 /* <var24:nullable Object(AExpr)> isa ADoExpr */
395 cltype26 = type_parser_nodes__ADoExpr.color;
396 idtype27 = type_parser_nodes__ADoExpr.id;
397 if(cltype26 >= var24->type->table_size) {
398 var25 = 0;
399 } else {
400 var25 = var24->type->type_table[cltype26] == idtype27;
401 }
402 if (!var25) {
403 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 72);
404 exit(1);
405 }
406 var28 = ((val* (*)(val*))(var24->class->vft[COLOR_parser_nodes__ADoExpr__n_block]))(var24) /* n_block on <var24:AExpr(ADoExpr)>*/;
407 if (var28 == NULL) {
408 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 72);
409 exit(1);
410 }
411 var_nblock = var28;
412 var = var_nblock;
413 goto RET_LABEL;
414 RET_LABEL:;
415 return var;
416 }
417 /* method parser_util#ToolContext#parse_stmts for (self: Object, String): AExpr */
418 val* VIRTUAL_parser_util__ToolContext__parse_stmts(val* self, val* p0) {
419 val* var /* : AExpr */;
420 val* var1 /* : AExpr */;
421 var1 = parser_util__ToolContext__parse_stmts(self, p0);
422 var = var1;
423 RET_LABEL:;
424 return var;
425 }
426 /* method parser_util#ToolContext#parse_expr for (self: ToolContext, String): AExpr */
427 val* parser_util__ToolContext__parse_expr(val* self, val* p0) {
428 val* var /* : AExpr */;
429 val* var_string /* var string: String */;
430 val* var1 /* : Array[Object] */;
431 long var2 /* : Int */;
432 val* var_ /* var : Array[Object] */;
433 static val* varonce;
434 val* var3 /* : String */;
435 char* var4 /* : NativeString */;
436 long var5 /* : Int */;
437 val* var6 /* : String */;
438 static val* varonce7;
439 val* var8 /* : String */;
440 char* var9 /* : NativeString */;
441 long var10 /* : Int */;
442 val* var11 /* : String */;
443 val* var12 /* : String */;
444 val* var_mod_string /* var mod_string: String */;
445 val* var13 /* : AModule */;
446 val* var_nmodule /* var nmodule: AModule */;
447 val* var14 /* : ANodes[AClassdef] */;
448 val* var15 /* : nullable Object */;
449 val* var16 /* : ANodes[APropdef] */;
450 val* var17 /* : nullable Object */;
451 short int var18 /* : Bool */;
452 int cltype;
453 int idtype;
454 val* var19 /* : nullable AExpr */;
455 short int var20 /* : Bool */;
456 int cltype21;
457 int idtype22;
458 val* var23 /* : ANodes[AExpr] */;
459 val* var24 /* : nullable Object */;
460 short int var25 /* : Bool */;
461 int cltype26;
462 int idtype27;
463 val* var28 /* : nullable AExpr */;
464 val* var_nexpr /* var nexpr: AExpr */;
465 var_string = p0;
466 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
467 var2 = 3;
468 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
469 CHECK_NEW_array__Array(var1);
470 var_ = var1;
471 if (varonce) {
472 var3 = varonce;
473 } else {
474 var4 = "var dummy = \n";
475 var5 = 13;
476 var6 = string__NativeString__to_s_with_length(var4, var5);
477 var3 = var6;
478 varonce = var3;
479 }
480 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
481 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_string) /* add on <var_:Array[Object]>*/;
482 if (varonce7) {
483 var8 = varonce7;
484 } else {
485 var9 = "";
486 var10 = 0;
487 var11 = string__NativeString__to_s_with_length(var9, var10);
488 var8 = var11;
489 varonce7 = var8;
490 }
491 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
492 var12 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
493 var_mod_string = var12;
494 var13 = ((val* (*)(val*, val*))(self->class->vft[COLOR_parser_util__ToolContext__parse_module]))(self, var_mod_string) /* parse_module on <self:ToolContext>*/;
495 var_nmodule = var13;
496 var14 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var_nmodule) /* n_classdefs on <var_nmodule:AModule>*/;
497 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__first]))(var14) /* first on <var14:ANodes[AClassdef]>*/;
498 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var15) /* n_propdefs on <var15:nullable Object(AClassdef)>*/;
499 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__first]))(var16) /* first on <var16:ANodes[APropdef]>*/;
500 /* <var17:nullable Object(APropdef)> isa AMainMethPropdef */
501 cltype = type_parser_nodes__AMainMethPropdef.color;
502 idtype = type_parser_nodes__AMainMethPropdef.id;
503 if(cltype >= var17->type->table_size) {
504 var18 = 0;
505 } else {
506 var18 = var17->type->type_table[cltype] == idtype;
507 }
508 if (!var18) {
509 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 82);
510 exit(1);
511 }
512 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(var17) /* n_block on <var17:APropdef(AMainMethPropdef)>*/;
513 /* <var19:nullable AExpr> isa ABlockExpr */
514 cltype21 = type_parser_nodes__ABlockExpr.color;
515 idtype22 = type_parser_nodes__ABlockExpr.id;
516 if(var19 == NULL) {
517 var20 = 0;
518 } else {
519 if(cltype21 >= var19->type->table_size) {
520 var20 = 0;
521 } else {
522 var20 = var19->type->type_table[cltype21] == idtype22;
523 }
524 }
525 if (!var20) {
526 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 82);
527 exit(1);
528 }
529 var23 = ((val* (*)(val*))(var19->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var19) /* n_expr on <var19:nullable AExpr(ABlockExpr)>*/;
530 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Collection__first]))(var23) /* first on <var23:ANodes[AExpr]>*/;
531 /* <var24:nullable Object(AExpr)> isa AVardeclExpr */
532 cltype26 = type_parser_nodes__AVardeclExpr.color;
533 idtype27 = type_parser_nodes__AVardeclExpr.id;
534 if(cltype26 >= var24->type->table_size) {
535 var25 = 0;
536 } else {
537 var25 = var24->type->type_table[cltype26] == idtype27;
538 }
539 if (!var25) {
540 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 82);
541 exit(1);
542 }
543 var28 = ((val* (*)(val*))(var24->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(var24) /* n_expr on <var24:AExpr(AVardeclExpr)>*/;
544 if (var28 == NULL) {
545 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 82);
546 exit(1);
547 }
548 var_nexpr = var28;
549 var = var_nexpr;
550 goto RET_LABEL;
551 RET_LABEL:;
552 return var;
553 }
554 /* method parser_util#ToolContext#parse_expr for (self: Object, String): AExpr */
555 val* VIRTUAL_parser_util__ToolContext__parse_expr(val* self, val* p0) {
556 val* var /* : AExpr */;
557 val* var1 /* : AExpr */;
558 var1 = parser_util__ToolContext__parse_expr(self, p0);
559 var = var1;
560 RET_LABEL:;
561 return var;
562 }
563 /* method parser_util#ToolContext#parse_something for (self: ToolContext, String): ANode */
564 val* parser_util__ToolContext__parse_something(val* self, val* p0) {
565 val* var /* : ANode */;
566 val* var_string /* var string: String */;
567 val* var1 /* : SourceFile */;
568 static val* varonce;
569 val* var2 /* : String */;
570 char* var3 /* : NativeString */;
571 long var4 /* : Int */;
572 val* var5 /* : String */;
573 val* var_source /* var source: SourceFile */;
574 val* var6 /* : InjectedLexer */;
575 val* var_lexer /* var lexer: nullable Object */;
576 val* var7 /* : List[Token] */;
577 val* var8 /* : TKwvar */;
578 val* var9 /* : List[Token] */;
579 val* var10 /* : TId */;
580 val* var11 /* : List[Token] */;
581 val* var12 /* : TColumn */;
582 val* var13 /* : List[Token] */;
583 val* var14 /* : TClassid */;
584 val* var15 /* : List[Token] */;
585 val* var16 /* : TObra */;
586 val* var17 /* : List[Token] */;
587 val* var18 /* : TCbra */;
588 val* var19 /* : Parser */;
589 val* var20 /* : Start */;
590 val* var_tree /* var tree: nullable Object */;
591 val* var21 /* : EOF */;
592 val* var_eof /* var eof: nullable Object */;
593 short int var22 /* : Bool */;
594 int cltype;
595 int idtype;
596 short int var23 /* : Bool */;
597 val* var24 /* : nullable AModule */;
598 val* var25 /* : ANodes[AClassdef] */;
599 val* var26 /* : nullable Object */;
600 val* var27 /* : ANodes[APropdef] */;
601 val* var28 /* : nullable Object */;
602 short int var29 /* : Bool */;
603 int cltype30;
604 int idtype31;
605 val* var32 /* : nullable AExpr */;
606 short int var33 /* : Bool */;
607 int cltype34;
608 int idtype35;
609 val* var36 /* : ANodes[AExpr] */;
610 val* var37 /* : nullable Object */;
611 short int var38 /* : Bool */;
612 int cltype39;
613 int idtype40;
614 val* var41 /* : nullable AType */;
615 val* var42 /* : ANodes[AType] */;
616 val* var43 /* : nullable Object */;
617 val* var_ntype /* var ntype: AType */;
618 val* var_error /* var error: nullable Object */;
619 val* var44 /* : Lexer */;
620 val* var45 /* : Token */;
621 val* var_first /* var first: Token */;
622 short int var46 /* : Bool */;
623 int cltype47;
624 int idtype48;
625 short int var49 /* : Bool */;
626 val* var50 /* : Token */;
627 val* var_second /* var second: Token */;
628 short int var51 /* : Bool */;
629 short int var52 /* : Bool */;
630 int cltype53;
631 int idtype54;
632 short int var_ /* var : Bool */;
633 short int var55 /* : Bool */;
634 int cltype56;
635 int idtype57;
636 short int var58 /* : Bool */;
637 val* var59 /* : InjectedLexer */;
638 val* var60 /* : List[Token] */;
639 val* var61 /* : TKwvar */;
640 val* var62 /* : List[Token] */;
641 val* var63 /* : TId */;
642 val* var64 /* : List[Token] */;
643 val* var65 /* : TAssign */;
644 val* var66 /* : List[Token] */;
645 val* var67 /* : TOpar */;
646 val* var68 /* : List[Token] */;
647 val* var69 /* : TCpar */;
648 val* var70 /* : Parser */;
649 val* var71 /* : Start */;
650 val* var72 /* : EOF */;
651 short int var73 /* : Bool */;
652 int cltype74;
653 int idtype75;
654 short int var76 /* : Bool */;
655 val* var77 /* : nullable AModule */;
656 val* var78 /* : ANodes[AClassdef] */;
657 val* var79 /* : nullable Object */;
658 val* var80 /* : ANodes[APropdef] */;
659 val* var81 /* : nullable Object */;
660 short int var82 /* : Bool */;
661 int cltype83;
662 int idtype84;
663 val* var85 /* : nullable AExpr */;
664 short int var86 /* : Bool */;
665 int cltype87;
666 int idtype88;
667 val* var89 /* : ANodes[AExpr] */;
668 val* var90 /* : nullable Object */;
669 short int var91 /* : Bool */;
670 int cltype92;
671 int idtype93;
672 val* var94 /* : nullable AExpr */;
673 short int var95 /* : Bool */;
674 int cltype96;
675 int idtype97;
676 val* var98 /* : AExpr */;
677 val* var_nexpr /* var nexpr: AExpr */;
678 val* var99 /* : Location */;
679 val* var100 /* : Location */;
680 short int var101 /* : Bool */;
681 val* var102 /* : InjectedLexer */;
682 val* var103 /* : List[Token] */;
683 val* var104 /* : TKwdo */;
684 val* var105 /* : List[Token] */;
685 val* var106 /* : TKwend */;
686 val* var107 /* : Parser */;
687 val* var108 /* : Start */;
688 val* var109 /* : EOF */;
689 short int var110 /* : Bool */;
690 int cltype111;
691 int idtype112;
692 short int var113 /* : Bool */;
693 val* var114 /* : nullable AModule */;
694 val* var115 /* : ANodes[AClassdef] */;
695 val* var116 /* : nullable Object */;
696 val* var117 /* : ANodes[APropdef] */;
697 val* var118 /* : nullable Object */;
698 short int var119 /* : Bool */;
699 int cltype120;
700 int idtype121;
701 val* var122 /* : nullable AExpr */;
702 short int var123 /* : Bool */;
703 int cltype124;
704 int idtype125;
705 val* var126 /* : ANodes[AExpr] */;
706 val* var127 /* : nullable Object */;
707 short int var128 /* : Bool */;
708 int cltype129;
709 int idtype130;
710 val* var131 /* : nullable AExpr */;
711 val* var_nblock /* var nblock: AExpr */;
712 val* var132 /* : Location */;
713 val* var133 /* : Location */;
714 short int var134 /* : Bool */;
715 val* var135 /* : Lexer */;
716 val* var136 /* : Parser */;
717 val* var137 /* : Start */;
718 val* var138 /* : EOF */;
719 short int var139 /* : Bool */;
720 int cltype140;
721 int idtype141;
722 short int var142 /* : Bool */;
723 val* var143 /* : nullable AModule */;
724 val* var144 /* : Location */;
725 val* var145 /* : Location */;
726 short int var146 /* : Bool */;
727 var_string = p0;
728 var1 = NEW_location__SourceFile(&type_location__SourceFile);
729 if (varonce) {
730 var2 = varonce;
731 } else {
732 var3 = "";
733 var4 = 0;
734 var5 = string__NativeString__to_s_with_length(var3, var4);
735 var2 = var5;
736 varonce = var2;
737 }
738 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_location__SourceFile__from_string]))(var1, var2, var_string) /* from_string on <var1:SourceFile>*/;
739 CHECK_NEW_location__SourceFile(var1);
740 var_source = var1;
741 var6 = NEW_parser_util__InjectedLexer(&type_parser_util__InjectedLexer);
742 ((void (*)(val*, val*))(var6->class->vft[COLOR_lexer__Lexer__init]))(var6, var_source) /* init on <var6:InjectedLexer>*/;
743 CHECK_NEW_parser_util__InjectedLexer(var6);
744 var_lexer = var6;
745 var7 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
746 var8 = NEW_parser_nodes__TKwvar(&type_parser_nodes__TKwvar);
747 ((void (*)(val*))(var8->class->vft[COLOR_parser_nodes__TKwvar__init]))(var8) /* init on <var8:TKwvar>*/;
748 CHECK_NEW_parser_nodes__TKwvar(var8);
749 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var7, var8) /* add on <var7:List[Token]>*/;
750 var9 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
751 var10 = NEW_parser_nodes__TId(&type_parser_nodes__TId);
752 ((void (*)(val*))(var10->class->vft[COLOR_parser_nodes__TId__init]))(var10) /* init on <var10:TId>*/;
753 CHECK_NEW_parser_nodes__TId(var10);
754 ((void (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var9, var10) /* add on <var9:List[Token]>*/;
755 var11 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
756 var12 = NEW_parser_nodes__TColumn(&type_parser_nodes__TColumn);
757 ((void (*)(val*))(var12->class->vft[COLOR_parser_nodes__TColumn__init]))(var12) /* init on <var12:TColumn>*/;
758 CHECK_NEW_parser_nodes__TColumn(var12);
759 ((void (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var11, var12) /* add on <var11:List[Token]>*/;
760 var13 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
761 var14 = NEW_parser_nodes__TClassid(&type_parser_nodes__TClassid);
762 ((void (*)(val*))(var14->class->vft[COLOR_parser_nodes__TClassid__init]))(var14) /* init on <var14:TClassid>*/;
763 CHECK_NEW_parser_nodes__TClassid(var14);
764 ((void (*)(val*, val*))(var13->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var13, var14) /* add on <var13:List[Token]>*/;
765 var15 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
766 var16 = NEW_parser_nodes__TObra(&type_parser_nodes__TObra);
767 ((void (*)(val*))(var16->class->vft[COLOR_parser_nodes__TObra__init]))(var16) /* init on <var16:TObra>*/;
768 CHECK_NEW_parser_nodes__TObra(var16);
769 ((void (*)(val*, val*))(var15->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var15, var16) /* add on <var15:List[Token]>*/;
770 var17 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_after]))(var_lexer) /* injected_after on <var_lexer:nullable Object(InjectedLexer)>*/;
771 var18 = NEW_parser_nodes__TCbra(&type_parser_nodes__TCbra);
772 ((void (*)(val*))(var18->class->vft[COLOR_parser_nodes__TCbra__init]))(var18) /* init on <var18:TCbra>*/;
773 CHECK_NEW_parser_nodes__TCbra(var18);
774 ((void (*)(val*, val*))(var17->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var17, var18) /* add on <var17:List[Token]>*/;
775 var19 = NEW_parser__Parser(&type_parser__Parser);
776 ((void (*)(val*, val*))(var19->class->vft[COLOR_parser__Parser__init]))(var19, var_lexer) /* init on <var19:Parser>*/;
777 CHECK_NEW_parser__Parser(var19);
778 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_parser__Parser__parse]))(var19) /* parse on <var19:Parser>*/;
779 var_tree = var20;
780 var21 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on <var_tree:nullable Object(Start)>*/;
781 var_eof = var21;
782 /* <var_eof:nullable Object(EOF)> isa AError */
783 cltype = type_parser_nodes__AError.color;
784 idtype = type_parser_nodes__AError.id;
785 if(cltype >= var_eof->type->table_size) {
786 var22 = 0;
787 } else {
788 var22 = var_eof->type->type_table[cltype] == idtype;
789 }
790 var23 = !var22;
791 if (var23){
792 var24 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on <var_tree:nullable Object(Start)>*/;
793 if (var24 == NULL) {
794 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser_util.nit", 114);
795 exit(1);
796 } else {
797 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var24) /* n_classdefs on <var24:nullable AModule>*/;
798 }
799 var26 = ((val* (*)(val*))(var25->class->vft[COLOR_abstract_collection__Collection__first]))(var25) /* first on <var25:ANodes[AClassdef]>*/;
800 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var26) /* n_propdefs on <var26:nullable Object(AClassdef)>*/;
801 var28 = ((val* (*)(val*))(var27->class->vft[COLOR_abstract_collection__Collection__first]))(var27) /* first on <var27:ANodes[APropdef]>*/;
802 /* <var28:nullable Object(APropdef)> isa AMainMethPropdef */
803 cltype30 = type_parser_nodes__AMainMethPropdef.color;
804 idtype31 = type_parser_nodes__AMainMethPropdef.id;
805 if(cltype30 >= var28->type->table_size) {
806 var29 = 0;
807 } else {
808 var29 = var28->type->type_table[cltype30] == idtype31;
809 }
810 if (!var29) {
811 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 114);
812 exit(1);
813 }
814 var32 = ((val* (*)(val*))(var28->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(var28) /* n_block on <var28:APropdef(AMainMethPropdef)>*/;
815 /* <var32:nullable AExpr> isa ABlockExpr */
816 cltype34 = type_parser_nodes__ABlockExpr.color;
817 idtype35 = type_parser_nodes__ABlockExpr.id;
818 if(var32 == NULL) {
819 var33 = 0;
820 } else {
821 if(cltype34 >= var32->type->table_size) {
822 var33 = 0;
823 } else {
824 var33 = var32->type->type_table[cltype34] == idtype35;
825 }
826 }
827 if (!var33) {
828 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 114);
829 exit(1);
830 }
831 var36 = ((val* (*)(val*))(var32->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var32) /* n_expr on <var32:nullable AExpr(ABlockExpr)>*/;
832 var37 = ((val* (*)(val*))(var36->class->vft[COLOR_abstract_collection__Collection__first]))(var36) /* first on <var36:ANodes[AExpr]>*/;
833 /* <var37:nullable Object(AExpr)> isa AVardeclExpr */
834 cltype39 = type_parser_nodes__AVardeclExpr.color;
835 idtype40 = type_parser_nodes__AVardeclExpr.id;
836 if(cltype39 >= var37->type->table_size) {
837 var38 = 0;
838 } else {
839 var38 = var37->type->type_table[cltype39] == idtype40;
840 }
841 if (!var38) {
842 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 114);
843 exit(1);
844 }
845 var41 = ((val* (*)(val*))(var37->class->vft[COLOR_parser_nodes__AVardeclExpr__n_type]))(var37) /* n_type on <var37:AExpr(AVardeclExpr)>*/;
846 if (var41 == NULL) {
847 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser_util.nit", 114);
848 exit(1);
849 } else {
850 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_parser_nodes__AType__n_types]))(var41) /* n_types on <var41:nullable AType>*/;
851 }
852 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Collection__first]))(var42) /* first on <var42:ANodes[AType]>*/;
853 var_ntype = var43;
854 var = var_ntype;
855 goto RET_LABEL;
856 } else {
857 }
858 var_error = var_eof;
859 var44 = NEW_lexer__Lexer(&type_lexer__Lexer);
860 ((void (*)(val*, val*))(var44->class->vft[COLOR_lexer__Lexer__init]))(var44, var_source) /* init on <var44:Lexer>*/;
861 CHECK_NEW_lexer__Lexer(var44);
862 var_lexer = var44;
863 var45 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_lexer__Lexer__next]))(var_lexer) /* next on <var_lexer:nullable Object(Lexer)>*/;
864 var_first = var45;
865 /* <var_first:Token> isa EOF */
866 cltype47 = type_parser_nodes__EOF.color;
867 idtype48 = type_parser_nodes__EOF.id;
868 if(cltype47 >= var_first->type->table_size) {
869 var46 = 0;
870 } else {
871 var46 = var_first->type->type_table[cltype47] == idtype48;
872 }
873 var49 = !var46;
874 if (var49){
875 var50 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_lexer__Lexer__next]))(var_lexer) /* next on <var_lexer:nullable Object(Lexer)>*/;
876 var_second = var50;
877 /* <var_second:Token> isa EOF */
878 cltype53 = type_parser_nodes__EOF.color;
879 idtype54 = type_parser_nodes__EOF.id;
880 if(cltype53 >= var_second->type->table_size) {
881 var52 = 0;
882 } else {
883 var52 = var_second->type->type_table[cltype53] == idtype54;
884 }
885 var_ = var52;
886 if (var52){
887 /* <var_second:Token(EOF)> isa AError */
888 cltype56 = type_parser_nodes__AError.color;
889 idtype57 = type_parser_nodes__AError.id;
890 if(cltype56 >= var_second->type->table_size) {
891 var55 = 0;
892 } else {
893 var55 = var_second->type->type_table[cltype56] == idtype57;
894 }
895 var58 = !var55;
896 var51 = var58;
897 } else {
898 var51 = var_;
899 }
900 if (var51){
901 var = var_first;
902 goto RET_LABEL;
903 } else {
904 }
905 } else {
906 }
907 var59 = NEW_parser_util__InjectedLexer(&type_parser_util__InjectedLexer);
908 ((void (*)(val*, val*))(var59->class->vft[COLOR_lexer__Lexer__init]))(var59, var_source) /* init on <var59:InjectedLexer>*/;
909 CHECK_NEW_parser_util__InjectedLexer(var59);
910 var_lexer = var59;
911 var60 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
912 var61 = NEW_parser_nodes__TKwvar(&type_parser_nodes__TKwvar);
913 ((void (*)(val*))(var61->class->vft[COLOR_parser_nodes__TKwvar__init]))(var61) /* init on <var61:TKwvar>*/;
914 CHECK_NEW_parser_nodes__TKwvar(var61);
915 ((void (*)(val*, val*))(var60->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var60, var61) /* add on <var60:List[Token]>*/;
916 var62 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
917 var63 = NEW_parser_nodes__TId(&type_parser_nodes__TId);
918 ((void (*)(val*))(var63->class->vft[COLOR_parser_nodes__TId__init]))(var63) /* init on <var63:TId>*/;
919 CHECK_NEW_parser_nodes__TId(var63);
920 ((void (*)(val*, val*))(var62->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var62, var63) /* add on <var62:List[Token]>*/;
921 var64 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
922 var65 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
923 ((void (*)(val*))(var65->class->vft[COLOR_parser_nodes__TAssign__init]))(var65) /* init on <var65:TAssign>*/;
924 CHECK_NEW_parser_nodes__TAssign(var65);
925 ((void (*)(val*, val*))(var64->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var64, var65) /* add on <var64:List[Token]>*/;
926 var66 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
927 var67 = NEW_parser_nodes__TOpar(&type_parser_nodes__TOpar);
928 ((void (*)(val*))(var67->class->vft[COLOR_parser_nodes__TOpar__init]))(var67) /* init on <var67:TOpar>*/;
929 CHECK_NEW_parser_nodes__TOpar(var67);
930 ((void (*)(val*, val*))(var66->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var66, var67) /* add on <var66:List[Token]>*/;
931 var68 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_after]))(var_lexer) /* injected_after on <var_lexer:nullable Object(InjectedLexer)>*/;
932 var69 = NEW_parser_nodes__TCpar(&type_parser_nodes__TCpar);
933 ((void (*)(val*))(var69->class->vft[COLOR_parser_nodes__TCpar__init]))(var69) /* init on <var69:TCpar>*/;
934 CHECK_NEW_parser_nodes__TCpar(var69);
935 ((void (*)(val*, val*))(var68->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var68, var69) /* add on <var68:List[Token]>*/;
936 var70 = NEW_parser__Parser(&type_parser__Parser);
937 ((void (*)(val*, val*))(var70->class->vft[COLOR_parser__Parser__init]))(var70, var_lexer) /* init on <var70:Parser>*/;
938 CHECK_NEW_parser__Parser(var70);
939 var71 = ((val* (*)(val*))(var70->class->vft[COLOR_parser__Parser__parse]))(var70) /* parse on <var70:Parser>*/;
940 var_tree = var71;
941 var72 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on <var_tree:nullable Object(Start)>*/;
942 var_eof = var72;
943 /* <var_eof:nullable Object(EOF)> isa AError */
944 cltype74 = type_parser_nodes__AError.color;
945 idtype75 = type_parser_nodes__AError.id;
946 if(cltype74 >= var_eof->type->table_size) {
947 var73 = 0;
948 } else {
949 var73 = var_eof->type->type_table[cltype74] == idtype75;
950 }
951 var76 = !var73;
952 if (var76){
953 var77 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on <var_tree:nullable Object(Start)>*/;
954 if (var77 == NULL) {
955 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser_util.nit", 137);
956 exit(1);
957 } else {
958 var78 = ((val* (*)(val*))(var77->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var77) /* n_classdefs on <var77:nullable AModule>*/;
959 }
960 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_abstract_collection__Collection__first]))(var78) /* first on <var78:ANodes[AClassdef]>*/;
961 var80 = ((val* (*)(val*))(var79->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var79) /* n_propdefs on <var79:nullable Object(AClassdef)>*/;
962 var81 = ((val* (*)(val*))(var80->class->vft[COLOR_abstract_collection__Collection__first]))(var80) /* first on <var80:ANodes[APropdef]>*/;
963 /* <var81:nullable Object(APropdef)> isa AMainMethPropdef */
964 cltype83 = type_parser_nodes__AMainMethPropdef.color;
965 idtype84 = type_parser_nodes__AMainMethPropdef.id;
966 if(cltype83 >= var81->type->table_size) {
967 var82 = 0;
968 } else {
969 var82 = var81->type->type_table[cltype83] == idtype84;
970 }
971 if (!var82) {
972 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 137);
973 exit(1);
974 }
975 var85 = ((val* (*)(val*))(var81->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(var81) /* n_block on <var81:APropdef(AMainMethPropdef)>*/;
976 /* <var85:nullable AExpr> isa ABlockExpr */
977 cltype87 = type_parser_nodes__ABlockExpr.color;
978 idtype88 = type_parser_nodes__ABlockExpr.id;
979 if(var85 == NULL) {
980 var86 = 0;
981 } else {
982 if(cltype87 >= var85->type->table_size) {
983 var86 = 0;
984 } else {
985 var86 = var85->type->type_table[cltype87] == idtype88;
986 }
987 }
988 if (!var86) {
989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 137);
990 exit(1);
991 }
992 var89 = ((val* (*)(val*))(var85->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var85) /* n_expr on <var85:nullable AExpr(ABlockExpr)>*/;
993 var90 = ((val* (*)(val*))(var89->class->vft[COLOR_abstract_collection__Collection__first]))(var89) /* first on <var89:ANodes[AExpr]>*/;
994 /* <var90:nullable Object(AExpr)> isa AVardeclExpr */
995 cltype92 = type_parser_nodes__AVardeclExpr.color;
996 idtype93 = type_parser_nodes__AVardeclExpr.id;
997 if(cltype92 >= var90->type->table_size) {
998 var91 = 0;
999 } else {
1000 var91 = var90->type->type_table[cltype92] == idtype93;
1001 }
1002 if (!var91) {
1003 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 137);
1004 exit(1);
1005 }
1006 var94 = ((val* (*)(val*))(var90->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(var90) /* n_expr on <var90:AExpr(AVardeclExpr)>*/;
1007 /* <var94:nullable AExpr> isa AParExpr */
1008 cltype96 = type_parser_nodes__AParExpr.color;
1009 idtype97 = type_parser_nodes__AParExpr.id;
1010 if(var94 == NULL) {
1011 var95 = 0;
1012 } else {
1013 if(cltype96 >= var94->type->table_size) {
1014 var95 = 0;
1015 } else {
1016 var95 = var94->type->type_table[cltype96] == idtype97;
1017 }
1018 }
1019 if (!var95) {
1020 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 137);
1021 exit(1);
1022 }
1023 var98 = ((val* (*)(val*))(var94->class->vft[COLOR_parser_nodes__AProxyExpr__n_expr]))(var94) /* n_expr on <var94:nullable AExpr(AParExpr)>*/;
1024 var_nexpr = var98;
1025 var = var_nexpr;
1026 goto RET_LABEL;
1027 } else {
1028 }
1029 var99 = ((val* (*)(val*))(var_eof->class->vft[COLOR_parser_nodes__ANode__location]))(var_eof) /* location on <var_eof:nullable Object(AError)>*/;
1030 var100 = ((val* (*)(val*))(var_error->class->vft[COLOR_parser_nodes__ANode__location]))(var_error) /* location on <var_error:nullable Object(AError)>*/;
1031 var101 = ((short int (*)(val*, val*))(var99->class->vft[COLOR_kernel__Comparable___62d]))(var99, var100) /* > on <var99:Location>*/;
1032 if (var101){
1033 var_error = var_eof;
1034 } else {
1035 }
1036 var102 = NEW_parser_util__InjectedLexer(&type_parser_util__InjectedLexer);
1037 ((void (*)(val*, val*))(var102->class->vft[COLOR_lexer__Lexer__init]))(var102, var_source) /* init on <var102:InjectedLexer>*/;
1038 CHECK_NEW_parser_util__InjectedLexer(var102);
1039 var_lexer = var102;
1040 var103 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(var_lexer) /* injected_before on <var_lexer:nullable Object(InjectedLexer)>*/;
1041 var104 = NEW_parser_nodes__TKwdo(&type_parser_nodes__TKwdo);
1042 ((void (*)(val*))(var104->class->vft[COLOR_parser_nodes__TKwdo__init]))(var104) /* init on <var104:TKwdo>*/;
1043 CHECK_NEW_parser_nodes__TKwdo(var104);
1044 ((void (*)(val*, val*))(var103->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var103, var104) /* add on <var103:List[Token]>*/;
1045 var105 = ((val* (*)(val*))(var_lexer->class->vft[COLOR_parser_util__InjectedLexer__injected_after]))(var_lexer) /* injected_after on <var_lexer:nullable Object(InjectedLexer)>*/;
1046 var106 = NEW_parser_nodes__TKwend(&type_parser_nodes__TKwend);
1047 ((void (*)(val*))(var106->class->vft[COLOR_parser_nodes__TKwend__init]))(var106) /* init on <var106:TKwend>*/;
1048 CHECK_NEW_parser_nodes__TKwend(var106);
1049 ((void (*)(val*, val*))(var105->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var105, var106) /* add on <var105:List[Token]>*/;
1050 var107 = NEW_parser__Parser(&type_parser__Parser);
1051 ((void (*)(val*, val*))(var107->class->vft[COLOR_parser__Parser__init]))(var107, var_lexer) /* init on <var107:Parser>*/;
1052 CHECK_NEW_parser__Parser(var107);
1053 var108 = ((val* (*)(val*))(var107->class->vft[COLOR_parser__Parser__parse]))(var107) /* parse on <var107:Parser>*/;
1054 var_tree = var108;
1055 var109 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on <var_tree:nullable Object(Start)>*/;
1056 var_eof = var109;
1057 /* <var_eof:nullable Object(EOF)> isa AError */
1058 cltype111 = type_parser_nodes__AError.color;
1059 idtype112 = type_parser_nodes__AError.id;
1060 if(cltype111 >= var_eof->type->table_size) {
1061 var110 = 0;
1062 } else {
1063 var110 = var_eof->type->type_table[cltype111] == idtype112;
1064 }
1065 var113 = !var110;
1066 if (var113){
1067 var114 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on <var_tree:nullable Object(Start)>*/;
1068 if (var114 == NULL) {
1069 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser_util.nit", 148);
1070 exit(1);
1071 } else {
1072 var115 = ((val* (*)(val*))(var114->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var114) /* n_classdefs on <var114:nullable AModule>*/;
1073 }
1074 var116 = ((val* (*)(val*))(var115->class->vft[COLOR_abstract_collection__Collection__first]))(var115) /* first on <var115:ANodes[AClassdef]>*/;
1075 var117 = ((val* (*)(val*))(var116->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var116) /* n_propdefs on <var116:nullable Object(AClassdef)>*/;
1076 var118 = ((val* (*)(val*))(var117->class->vft[COLOR_abstract_collection__Collection__first]))(var117) /* first on <var117:ANodes[APropdef]>*/;
1077 /* <var118:nullable Object(APropdef)> isa AMainMethPropdef */
1078 cltype120 = type_parser_nodes__AMainMethPropdef.color;
1079 idtype121 = type_parser_nodes__AMainMethPropdef.id;
1080 if(cltype120 >= var118->type->table_size) {
1081 var119 = 0;
1082 } else {
1083 var119 = var118->type->type_table[cltype120] == idtype121;
1084 }
1085 if (!var119) {
1086 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 148);
1087 exit(1);
1088 }
1089 var122 = ((val* (*)(val*))(var118->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(var118) /* n_block on <var118:APropdef(AMainMethPropdef)>*/;
1090 /* <var122:nullable AExpr> isa ABlockExpr */
1091 cltype124 = type_parser_nodes__ABlockExpr.color;
1092 idtype125 = type_parser_nodes__ABlockExpr.id;
1093 if(var122 == NULL) {
1094 var123 = 0;
1095 } else {
1096 if(cltype124 >= var122->type->table_size) {
1097 var123 = 0;
1098 } else {
1099 var123 = var122->type->type_table[cltype124] == idtype125;
1100 }
1101 }
1102 if (!var123) {
1103 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 148);
1104 exit(1);
1105 }
1106 var126 = ((val* (*)(val*))(var122->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var122) /* n_expr on <var122:nullable AExpr(ABlockExpr)>*/;
1107 var127 = ((val* (*)(val*))(var126->class->vft[COLOR_abstract_collection__Collection__first]))(var126) /* first on <var126:ANodes[AExpr]>*/;
1108 /* <var127:nullable Object(AExpr)> isa ADoExpr */
1109 cltype129 = type_parser_nodes__ADoExpr.color;
1110 idtype130 = type_parser_nodes__ADoExpr.id;
1111 if(cltype129 >= var127->type->table_size) {
1112 var128 = 0;
1113 } else {
1114 var128 = var127->type->type_table[cltype129] == idtype130;
1115 }
1116 if (!var128) {
1117 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 148);
1118 exit(1);
1119 }
1120 var131 = ((val* (*)(val*))(var127->class->vft[COLOR_parser_nodes__ADoExpr__n_block]))(var127) /* n_block on <var127:AExpr(ADoExpr)>*/;
1121 if (var131 == NULL) {
1122 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 148);
1123 exit(1);
1124 }
1125 var_nblock = var131;
1126 var = var_nblock;
1127 goto RET_LABEL;
1128 } else {
1129 }
1130 var132 = ((val* (*)(val*))(var_eof->class->vft[COLOR_parser_nodes__ANode__location]))(var_eof) /* location on <var_eof:nullable Object(AError)>*/;
1131 var133 = ((val* (*)(val*))(var_error->class->vft[COLOR_parser_nodes__ANode__location]))(var_error) /* location on <var_error:nullable Object(AError)>*/;
1132 var134 = ((short int (*)(val*, val*))(var132->class->vft[COLOR_kernel__Comparable___62d]))(var132, var133) /* > on <var132:Location>*/;
1133 if (var134){
1134 var_error = var_eof;
1135 } else {
1136 }
1137 var135 = NEW_lexer__Lexer(&type_lexer__Lexer);
1138 ((void (*)(val*, val*))(var135->class->vft[COLOR_lexer__Lexer__init]))(var135, var_source) /* init on <var135:Lexer>*/;
1139 CHECK_NEW_lexer__Lexer(var135);
1140 var_lexer = var135;
1141 var136 = NEW_parser__Parser(&type_parser__Parser);
1142 ((void (*)(val*, val*))(var136->class->vft[COLOR_parser__Parser__init]))(var136, var_lexer) /* init on <var136:Parser>*/;
1143 CHECK_NEW_parser__Parser(var136);
1144 var137 = ((val* (*)(val*))(var136->class->vft[COLOR_parser__Parser__parse]))(var136) /* parse on <var136:Parser>*/;
1145 var_tree = var137;
1146 var138 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on <var_tree:nullable Object(Start)>*/;
1147 var_eof = var138;
1148 /* <var_eof:nullable Object(EOF)> isa AError */
1149 cltype140 = type_parser_nodes__AError.color;
1150 idtype141 = type_parser_nodes__AError.id;
1151 if(cltype140 >= var_eof->type->table_size) {
1152 var139 = 0;
1153 } else {
1154 var139 = var_eof->type->type_table[cltype140] == idtype141;
1155 }
1156 var142 = !var139;
1157 if (var142){
1158 var143 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on <var_tree:nullable Object(Start)>*/;
1159 if (var143 == NULL) {
1160 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser_util.nit", 157);
1161 exit(1);
1162 }
1163 var = var143;
1164 goto RET_LABEL;
1165 } else {
1166 }
1167 var144 = ((val* (*)(val*))(var_eof->class->vft[COLOR_parser_nodes__ANode__location]))(var_eof) /* location on <var_eof:nullable Object(AError)>*/;
1168 var145 = ((val* (*)(val*))(var_error->class->vft[COLOR_parser_nodes__ANode__location]))(var_error) /* location on <var_error:nullable Object(AError)>*/;
1169 var146 = ((short int (*)(val*, val*))(var144->class->vft[COLOR_kernel__Comparable___62d]))(var144, var145) /* > on <var144:Location>*/;
1170 if (var146){
1171 var_error = var_eof;
1172 } else {
1173 }
1174 var = var_error;
1175 goto RET_LABEL;
1176 RET_LABEL:;
1177 return var;
1178 }
1179 /* method parser_util#ToolContext#parse_something for (self: Object, String): ANode */
1180 val* VIRTUAL_parser_util__ToolContext__parse_something(val* self, val* p0) {
1181 val* var /* : ANode */;
1182 val* var1 /* : ANode */;
1183 var1 = parser_util__ToolContext__parse_something(self, p0);
1184 var = var1;
1185 RET_LABEL:;
1186 return var;
1187 }
1188 /* method parser_util#InjectedLexer#injected_before for (self: InjectedLexer): List[Token] */
1189 val* parser_util__InjectedLexer__injected_before(val* self) {
1190 val* var /* : List[Token] */;
1191 val* var1 /* : List[Token] */;
1192 var1 = self->attrs[COLOR_parser_util__InjectedLexer___64dinjected_before].val; /* @injected_before on <self:InjectedLexer> */
1193 if (var1 == NULL) {
1194 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @injected_before", "src/parser_util.nit", 168);
1195 exit(1);
1196 }
1197 var = var1;
1198 RET_LABEL:;
1199 return var;
1200 }
1201 /* method parser_util#InjectedLexer#injected_before for (self: Object): List[Token] */
1202 val* VIRTUAL_parser_util__InjectedLexer__injected_before(val* self) {
1203 val* var /* : List[Token] */;
1204 val* var1 /* : List[Token] */;
1205 var1 = parser_util__InjectedLexer__injected_before(self);
1206 var = var1;
1207 RET_LABEL:;
1208 return var;
1209 }
1210 /* method parser_util#InjectedLexer#injected_before= for (self: InjectedLexer, List[Token]) */
1211 void parser_util__InjectedLexer__injected_before_61d(val* self, val* p0) {
1212 self->attrs[COLOR_parser_util__InjectedLexer___64dinjected_before].val = p0; /* @injected_before on <self:InjectedLexer> */
1213 RET_LABEL:;
1214 }
1215 /* method parser_util#InjectedLexer#injected_before= for (self: Object, List[Token]) */
1216 void VIRTUAL_parser_util__InjectedLexer__injected_before_61d(val* self, val* p0) {
1217 parser_util__InjectedLexer__injected_before_61d(self, p0);
1218 RET_LABEL:;
1219 }
1220 /* method parser_util#InjectedLexer#injected_after for (self: InjectedLexer): List[Token] */
1221 val* parser_util__InjectedLexer__injected_after(val* self) {
1222 val* var /* : List[Token] */;
1223 val* var1 /* : List[Token] */;
1224 var1 = self->attrs[COLOR_parser_util__InjectedLexer___64dinjected_after].val; /* @injected_after on <self:InjectedLexer> */
1225 if (var1 == NULL) {
1226 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @injected_after", "src/parser_util.nit", 169);
1227 exit(1);
1228 }
1229 var = var1;
1230 RET_LABEL:;
1231 return var;
1232 }
1233 /* method parser_util#InjectedLexer#injected_after for (self: Object): List[Token] */
1234 val* VIRTUAL_parser_util__InjectedLexer__injected_after(val* self) {
1235 val* var /* : List[Token] */;
1236 val* var1 /* : List[Token] */;
1237 var1 = parser_util__InjectedLexer__injected_after(self);
1238 var = var1;
1239 RET_LABEL:;
1240 return var;
1241 }
1242 /* method parser_util#InjectedLexer#injected_after= for (self: InjectedLexer, List[Token]) */
1243 void parser_util__InjectedLexer__injected_after_61d(val* self, val* p0) {
1244 self->attrs[COLOR_parser_util__InjectedLexer___64dinjected_after].val = p0; /* @injected_after on <self:InjectedLexer> */
1245 RET_LABEL:;
1246 }
1247 /* method parser_util#InjectedLexer#injected_after= for (self: Object, List[Token]) */
1248 void VIRTUAL_parser_util__InjectedLexer__injected_after_61d(val* self, val* p0) {
1249 parser_util__InjectedLexer__injected_after_61d(self, p0);
1250 RET_LABEL:;
1251 }
1252 /* method parser_util#InjectedLexer#is_finished for (self: InjectedLexer): Bool */
1253 short int parser_util__InjectedLexer__is_finished(val* self) {
1254 short int var /* : Bool */;
1255 short int var1 /* : Bool */;
1256 var1 = self->attrs[COLOR_parser_util__InjectedLexer___64dis_finished].s; /* @is_finished on <self:InjectedLexer> */
1257 var = var1;
1258 RET_LABEL:;
1259 return var;
1260 }
1261 /* method parser_util#InjectedLexer#is_finished for (self: Object): Bool */
1262 short int VIRTUAL_parser_util__InjectedLexer__is_finished(val* self) {
1263 short int var /* : Bool */;
1264 short int var1 /* : Bool */;
1265 var1 = parser_util__InjectedLexer__is_finished(self);
1266 var = var1;
1267 RET_LABEL:;
1268 return var;
1269 }
1270 /* method parser_util#InjectedLexer#is_finished= for (self: InjectedLexer, Bool) */
1271 void parser_util__InjectedLexer__is_finished_61d(val* self, short int p0) {
1272 self->attrs[COLOR_parser_util__InjectedLexer___64dis_finished].s = p0; /* @is_finished on <self:InjectedLexer> */
1273 RET_LABEL:;
1274 }
1275 /* method parser_util#InjectedLexer#is_finished= for (self: Object, Bool) */
1276 void VIRTUAL_parser_util__InjectedLexer__is_finished_61d(val* self, short int p0) {
1277 parser_util__InjectedLexer__is_finished_61d(self, p0);
1278 RET_LABEL:;
1279 }
1280 /* method parser_util#InjectedLexer#get_token for (self: InjectedLexer): nullable Token */
1281 val* parser_util__InjectedLexer__get_token(val* self) {
1282 val* var /* : nullable Token */;
1283 val* var1 /* : List[Token] */;
1284 short int var2 /* : Bool */;
1285 short int var3 /* : Bool */;
1286 val* var4 /* : List[Token] */;
1287 val* var5 /* : nullable Object */;
1288 val* var_tok /* var tok: Token */;
1289 val* var6 /* : nullable Location */;
1290 val* var7 /* : null */;
1291 short int var8 /* : Bool */;
1292 val* var9 /* : Location */;
1293 val* var10 /* : SourceFile */;
1294 long var11 /* : Int */;
1295 long var12 /* : Int */;
1296 long var13 /* : Int */;
1297 long var14 /* : Int */;
1298 short int var15 /* : Bool */;
1299 short int var16 /* : Bool */;
1300 val* var17 /* : nullable Token */;
1301 val* var_next /* var next: nullable Token */;
1302 short int var18 /* : Bool */;
1303 int cltype;
1304 int idtype;
1305 short int var19 /* : Bool */;
1306 val* var20 /* : List[Token] */;
1307 short int var21 /* : Bool */;
1308 val* var22 /* : List[Token] */;
1309 val* var23 /* : nullable Object */;
1310 val* var_tok24 /* var tok: Token */;
1311 val* var25 /* : nullable Location */;
1312 val* var26 /* : null */;
1313 short int var27 /* : Bool */;
1314 val* var28 /* : Location */;
1315 val* var29 /* : SourceFile */;
1316 long var30 /* : Int */;
1317 long var31 /* : Int */;
1318 long var32 /* : Int */;
1319 long var33 /* : Int */;
1320 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(self) /* injected_before on <self:InjectedLexer>*/;
1321 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on <var1:List[Token]>*/;
1322 var3 = !var2;
1323 if (var3){
1324 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__injected_before]))(self) /* injected_before on <self:InjectedLexer>*/;
1325 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Sequence__shift]))(var4) /* shift on <var4:List[Token]>*/;
1326 var_tok = var5;
1327 var6 = var_tok->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_tok:Token> */
1328 var7 = NULL;
1329 if (var6 == NULL) {
1330 var8 = 1; /* is null */
1331 } else {
1332 var8 = 0; /* arg is null but recv is not */
1333 }
1334 if (var8){
1335 var9 = NEW_location__Location(&type_location__Location);
1336 var10 = ((val* (*)(val*))(self->class->vft[COLOR_lexer__Lexer__file]))(self) /* file on <self:InjectedLexer>*/;
1337 var11 = 1;
1338 var12 = 1;
1339 var13 = 1;
1340 var14 = 0;
1341 ((void (*)(val*, val*, long, long, long, long))(var9->class->vft[COLOR_location__Location__init]))(var9, var10, var11, var12, var13, var14) /* init on <var9:Location>*/;
1342 CHECK_NEW_location__Location(var9);
1343 var_tok->attrs[COLOR_parser_nodes__ANode___location].val = var9; /* _location on <var_tok:Token> */
1344 } else {
1345 }
1346 var = var_tok;
1347 goto RET_LABEL;
1348 } else {
1349 }
1350 var15 = ((short int (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__is_finished]))(self) /* is_finished on <self:InjectedLexer>*/;
1351 var16 = !var15;
1352 if (var16){
1353 var17 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__get_token]))(self) /* get_token on <self:InjectedLexer>*/;
1354 var_next = var17;
1355 /* <var_next:nullable Token> isa EOF */
1356 cltype = type_parser_nodes__EOF.color;
1357 idtype = type_parser_nodes__EOF.id;
1358 if(var_next == NULL) {
1359 var18 = 0;
1360 } else {
1361 if(cltype >= var_next->type->table_size) {
1362 var18 = 0;
1363 } else {
1364 var18 = var_next->type->type_table[cltype] == idtype;
1365 }
1366 }
1367 var19 = !var18;
1368 if (var19){
1369 var = var_next;
1370 goto RET_LABEL;
1371 } else {
1372 }
1373 var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__injected_after]))(self) /* injected_after on <self:InjectedLexer>*/;
1374 ((void (*)(val*, val*))(var20->class->vft[COLOR_abstract_collection__Sequence__push]))(var20, var_next) /* push on <var20:List[Token]>*/;
1375 var21 = 1;
1376 ((void (*)(val*, short int))(self->class->vft[COLOR_parser_util__InjectedLexer__is_finished_61d]))(self, var21) /* is_finished= on <self:InjectedLexer>*/;
1377 } else {
1378 }
1379 var22 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__InjectedLexer__injected_after]))(self) /* injected_after on <self:InjectedLexer>*/;
1380 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_abstract_collection__Sequence__shift]))(var22) /* shift on <var22:List[Token]>*/;
1381 var_tok24 = var23;
1382 var25 = var_tok24->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_tok24:Token> */
1383 var26 = NULL;
1384 if (var25 == NULL) {
1385 var27 = 1; /* is null */
1386 } else {
1387 var27 = 0; /* arg is null but recv is not */
1388 }
1389 if (var27){
1390 var28 = NEW_location__Location(&type_location__Location);
1391 var29 = ((val* (*)(val*))(self->class->vft[COLOR_lexer__Lexer__file]))(self) /* file on <self:InjectedLexer>*/;
1392 var30 = 1;
1393 var31 = 1;
1394 var32 = 1;
1395 var33 = 0;
1396 ((void (*)(val*, val*, long, long, long, long))(var28->class->vft[COLOR_location__Location__init]))(var28, var29, var30, var31, var32, var33) /* init on <var28:Location>*/;
1397 CHECK_NEW_location__Location(var28);
1398 var_tok24->attrs[COLOR_parser_nodes__ANode___location].val = var28; /* _location on <var_tok24:Token> */
1399 } else {
1400 }
1401 var = var_tok24;
1402 goto RET_LABEL;
1403 RET_LABEL:;
1404 return var;
1405 }
1406 /* method parser_util#InjectedLexer#get_token for (self: Object): nullable Token */
1407 val* VIRTUAL_parser_util__InjectedLexer__get_token(val* self) {
1408 val* var /* : nullable Token */;
1409 val* var1 /* : nullable Token */;
1410 var1 = parser_util__InjectedLexer__get_token(self);
1411 var = var1;
1412 RET_LABEL:;
1413 return var;
1414 }
1415 /* method parser_util#ANode#collect_tokens_by_text for (self: ANode, String): Array[Token] */
1416 val* parser_util__ANode__collect_tokens_by_text(val* self, val* p0) {
1417 val* var /* : Array[Token] */;
1418 val* var_text /* var text: String */;
1419 val* var1 /* : CollectTokensByTextVisitor */;
1420 val* var_v /* var v: CollectTokensByTextVisitor */;
1421 val* var2 /* : Array[Token] */;
1422 var_text = p0;
1423 var1 = NEW_parser_util__CollectTokensByTextVisitor(&type_parser_util__CollectTokensByTextVisitor);
1424 ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_util__CollectTokensByTextVisitor__init]))(var1, var_text) /* init on <var1:CollectTokensByTextVisitor>*/;
1425 CHECK_NEW_parser_util__CollectTokensByTextVisitor(var1);
1426 var_v = var1;
1427 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:CollectTokensByTextVisitor>*/;
1428 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_parser_util__CollectTokensByTextVisitor__result]))(var_v) /* result on <var_v:CollectTokensByTextVisitor>*/;
1429 var = var2;
1430 goto RET_LABEL;
1431 RET_LABEL:;
1432 return var;
1433 }
1434 /* method parser_util#ANode#collect_tokens_by_text for (self: Object, String): Array[Token] */
1435 val* VIRTUAL_parser_util__ANode__collect_tokens_by_text(val* self, val* p0) {
1436 val* var /* : Array[Token] */;
1437 val* var1 /* : Array[Token] */;
1438 var1 = parser_util__ANode__collect_tokens_by_text(self, p0);
1439 var = var1;
1440 RET_LABEL:;
1441 return var;
1442 }
1443 /* method parser_util#ANode#collect_annotations_by_name for (self: ANode, String): Array[AAnnotation] */
1444 val* parser_util__ANode__collect_annotations_by_name(val* self, val* p0) {
1445 val* var /* : Array[AAnnotation] */;
1446 val* var_name /* var name: String */;
1447 val* var1 /* : CollectAnnotationsByNameVisitor */;
1448 val* var_v /* var v: CollectAnnotationsByNameVisitor */;
1449 val* var2 /* : Array[AAnnotation] */;
1450 var_name = p0;
1451 var1 = NEW_parser_util__CollectAnnotationsByNameVisitor(&type_parser_util__CollectAnnotationsByNameVisitor);
1452 ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_util__CollectAnnotationsByNameVisitor__init]))(var1, var_name) /* init on <var1:CollectAnnotationsByNameVisitor>*/;
1453 CHECK_NEW_parser_util__CollectAnnotationsByNameVisitor(var1);
1454 var_v = var1;
1455 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:CollectAnnotationsByNameVisitor>*/;
1456 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_parser_util__CollectAnnotationsByNameVisitor__result]))(var_v) /* result on <var_v:CollectAnnotationsByNameVisitor>*/;
1457 var = var2;
1458 goto RET_LABEL;
1459 RET_LABEL:;
1460 return var;
1461 }
1462 /* method parser_util#ANode#collect_annotations_by_name for (self: Object, String): Array[AAnnotation] */
1463 val* VIRTUAL_parser_util__ANode__collect_annotations_by_name(val* self, val* p0) {
1464 val* var /* : Array[AAnnotation] */;
1465 val* var1 /* : Array[AAnnotation] */;
1466 var1 = parser_util__ANode__collect_annotations_by_name(self, p0);
1467 var = var1;
1468 RET_LABEL:;
1469 return var;
1470 }
1471 /* method parser_util#CollectTokensByTextVisitor#text for (self: CollectTokensByTextVisitor): String */
1472 val* parser_util__CollectTokensByTextVisitor__text(val* self) {
1473 val* var /* : String */;
1474 val* var1 /* : String */;
1475 var1 = self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dtext].val; /* @text on <self:CollectTokensByTextVisitor> */
1476 if (var1 == NULL) {
1477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @text", "src/parser_util.nit", 213);
1478 exit(1);
1479 }
1480 var = var1;
1481 RET_LABEL:;
1482 return var;
1483 }
1484 /* method parser_util#CollectTokensByTextVisitor#text for (self: Object): String */
1485 val* VIRTUAL_parser_util__CollectTokensByTextVisitor__text(val* self) {
1486 val* var /* : String */;
1487 val* var1 /* : String */;
1488 var1 = parser_util__CollectTokensByTextVisitor__text(self);
1489 var = var1;
1490 RET_LABEL:;
1491 return var;
1492 }
1493 /* method parser_util#CollectTokensByTextVisitor#text= for (self: CollectTokensByTextVisitor, String) */
1494 void parser_util__CollectTokensByTextVisitor__text_61d(val* self, val* p0) {
1495 self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dtext].val = p0; /* @text on <self:CollectTokensByTextVisitor> */
1496 RET_LABEL:;
1497 }
1498 /* method parser_util#CollectTokensByTextVisitor#text= for (self: Object, String) */
1499 void VIRTUAL_parser_util__CollectTokensByTextVisitor__text_61d(val* self, val* p0) {
1500 parser_util__CollectTokensByTextVisitor__text_61d(self, p0);
1501 RET_LABEL:;
1502 }
1503 /* method parser_util#CollectTokensByTextVisitor#init for (self: CollectTokensByTextVisitor, String) */
1504 void parser_util__CollectTokensByTextVisitor__init(val* self, val* p0) {
1505 val* var_text /* var text: String */;
1506 var_text = p0;
1507 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:CollectTokensByTextVisitor>*/;
1508 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_util__CollectTokensByTextVisitor__text_61d]))(self, var_text) /* text= on <self:CollectTokensByTextVisitor>*/;
1509 RET_LABEL:;
1510 }
1511 /* method parser_util#CollectTokensByTextVisitor#init for (self: Object, String) */
1512 void VIRTUAL_parser_util__CollectTokensByTextVisitor__init(val* self, val* p0) {
1513 parser_util__CollectTokensByTextVisitor__init(self, p0);
1514 RET_LABEL:;
1515 }
1516 /* method parser_util#CollectTokensByTextVisitor#result for (self: CollectTokensByTextVisitor): Array[Token] */
1517 val* parser_util__CollectTokensByTextVisitor__result(val* self) {
1518 val* var /* : Array[Token] */;
1519 val* var1 /* : Array[Token] */;
1520 var1 = self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dresult].val; /* @result on <self:CollectTokensByTextVisitor> */
1521 if (var1 == NULL) {
1522 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @result", "src/parser_util.nit", 215);
1523 exit(1);
1524 }
1525 var = var1;
1526 RET_LABEL:;
1527 return var;
1528 }
1529 /* method parser_util#CollectTokensByTextVisitor#result for (self: Object): Array[Token] */
1530 val* VIRTUAL_parser_util__CollectTokensByTextVisitor__result(val* self) {
1531 val* var /* : Array[Token] */;
1532 val* var1 /* : Array[Token] */;
1533 var1 = parser_util__CollectTokensByTextVisitor__result(self);
1534 var = var1;
1535 RET_LABEL:;
1536 return var;
1537 }
1538 /* method parser_util#CollectTokensByTextVisitor#result= for (self: CollectTokensByTextVisitor, Array[Token]) */
1539 void parser_util__CollectTokensByTextVisitor__result_61d(val* self, val* p0) {
1540 self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dresult].val = p0; /* @result on <self:CollectTokensByTextVisitor> */
1541 RET_LABEL:;
1542 }
1543 /* method parser_util#CollectTokensByTextVisitor#result= for (self: Object, Array[Token]) */
1544 void VIRTUAL_parser_util__CollectTokensByTextVisitor__result_61d(val* self, val* p0) {
1545 parser_util__CollectTokensByTextVisitor__result_61d(self, p0);
1546 RET_LABEL:;
1547 }
1548 /* method parser_util#CollectTokensByTextVisitor#visit for (self: CollectTokensByTextVisitor, ANode) */
1549 void parser_util__CollectTokensByTextVisitor__visit(val* self, val* p0) {
1550 val* var_node /* var node: ANode */;
1551 short int var /* : Bool */;
1552 short int var1 /* : Bool */;
1553 int cltype;
1554 int idtype;
1555 short int var_ /* var : Bool */;
1556 val* var2 /* : String */;
1557 val* var3 /* : String */;
1558 short int var4 /* : Bool */;
1559 val* var5 /* : Array[Token] */;
1560 var_node = p0;
1561 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_node, self) /* visit_all on <var_node:ANode>*/;
1562 /* <var_node:ANode> isa Token */
1563 cltype = type_parser_nodes__Token.color;
1564 idtype = type_parser_nodes__Token.id;
1565 if(cltype >= var_node->type->table_size) {
1566 var1 = 0;
1567 } else {
1568 var1 = var_node->type->type_table[cltype] == idtype;
1569 }
1570 var_ = var1;
1571 if (var1){
1572 var2 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__Token__text]))(var_node) /* text on <var_node:ANode(Token)>*/;
1573 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__CollectTokensByTextVisitor__text]))(self) /* text on <self:CollectTokensByTextVisitor>*/;
1574 var4 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var3) /* == on <var2:String>*/;
1575 var = var4;
1576 } else {
1577 var = var_;
1578 }
1579 if (var){
1580 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__CollectTokensByTextVisitor__result]))(self) /* result on <self:CollectTokensByTextVisitor>*/;
1581 ((void (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var5, var_node) /* add on <var5:Array[Token]>*/;
1582 } else {
1583 }
1584 RET_LABEL:;
1585 }
1586 /* method parser_util#CollectTokensByTextVisitor#visit for (self: Object, ANode) */
1587 void VIRTUAL_parser_util__CollectTokensByTextVisitor__visit(val* self, val* p0) {
1588 parser_util__CollectTokensByTextVisitor__visit(self, p0);
1589 RET_LABEL:;
1590 }
1591 /* method parser_util#CollectAnnotationsByNameVisitor#name for (self: CollectAnnotationsByNameVisitor): String */
1592 val* parser_util__CollectAnnotationsByNameVisitor__name(val* self) {
1593 val* var /* : String */;
1594 val* var1 /* : String */;
1595 var1 = self->attrs[COLOR_parser_util__CollectAnnotationsByNameVisitor___64dname].val; /* @name on <self:CollectAnnotationsByNameVisitor> */
1596 if (var1 == NULL) {
1597 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/parser_util.nit", 225);
1598 exit(1);
1599 }
1600 var = var1;
1601 RET_LABEL:;
1602 return var;
1603 }
1604 /* method parser_util#CollectAnnotationsByNameVisitor#name for (self: Object): String */
1605 val* VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__name(val* self) {
1606 val* var /* : String */;
1607 val* var1 /* : String */;
1608 var1 = parser_util__CollectAnnotationsByNameVisitor__name(self);
1609 var = var1;
1610 RET_LABEL:;
1611 return var;
1612 }
1613 /* method parser_util#CollectAnnotationsByNameVisitor#name= for (self: CollectAnnotationsByNameVisitor, String) */
1614 void parser_util__CollectAnnotationsByNameVisitor__name_61d(val* self, val* p0) {
1615 self->attrs[COLOR_parser_util__CollectAnnotationsByNameVisitor___64dname].val = p0; /* @name on <self:CollectAnnotationsByNameVisitor> */
1616 RET_LABEL:;
1617 }
1618 /* method parser_util#CollectAnnotationsByNameVisitor#name= for (self: Object, String) */
1619 void VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__name_61d(val* self, val* p0) {
1620 parser_util__CollectAnnotationsByNameVisitor__name_61d(self, p0);
1621 RET_LABEL:;
1622 }
1623 /* method parser_util#CollectAnnotationsByNameVisitor#init for (self: CollectAnnotationsByNameVisitor, String) */
1624 void parser_util__CollectAnnotationsByNameVisitor__init(val* self, val* p0) {
1625 val* var_name /* var name: String */;
1626 var_name = p0;
1627 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:CollectAnnotationsByNameVisitor>*/;
1628 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_util__CollectAnnotationsByNameVisitor__name_61d]))(self, var_name) /* name= on <self:CollectAnnotationsByNameVisitor>*/;
1629 RET_LABEL:;
1630 }
1631 /* method parser_util#CollectAnnotationsByNameVisitor#init for (self: Object, String) */
1632 void VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__init(val* self, val* p0) {
1633 parser_util__CollectAnnotationsByNameVisitor__init(self, p0);
1634 RET_LABEL:;
1635 }
1636 /* method parser_util#CollectAnnotationsByNameVisitor#result for (self: CollectAnnotationsByNameVisitor): Array[AAnnotation] */
1637 val* parser_util__CollectAnnotationsByNameVisitor__result(val* self) {
1638 val* var /* : Array[AAnnotation] */;
1639 val* var1 /* : Array[AAnnotation] */;
1640 var1 = self->attrs[COLOR_parser_util__CollectAnnotationsByNameVisitor___64dresult].val; /* @result on <self:CollectAnnotationsByNameVisitor> */
1641 if (var1 == NULL) {
1642 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @result", "src/parser_util.nit", 227);
1643 exit(1);
1644 }
1645 var = var1;
1646 RET_LABEL:;
1647 return var;
1648 }
1649 /* method parser_util#CollectAnnotationsByNameVisitor#result for (self: Object): Array[AAnnotation] */
1650 val* VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__result(val* self) {
1651 val* var /* : Array[AAnnotation] */;
1652 val* var1 /* : Array[AAnnotation] */;
1653 var1 = parser_util__CollectAnnotationsByNameVisitor__result(self);
1654 var = var1;
1655 RET_LABEL:;
1656 return var;
1657 }
1658 /* method parser_util#CollectAnnotationsByNameVisitor#result= for (self: CollectAnnotationsByNameVisitor, Array[AAnnotation]) */
1659 void parser_util__CollectAnnotationsByNameVisitor__result_61d(val* self, val* p0) {
1660 self->attrs[COLOR_parser_util__CollectAnnotationsByNameVisitor___64dresult].val = p0; /* @result on <self:CollectAnnotationsByNameVisitor> */
1661 RET_LABEL:;
1662 }
1663 /* method parser_util#CollectAnnotationsByNameVisitor#result= for (self: Object, Array[AAnnotation]) */
1664 void VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__result_61d(val* self, val* p0) {
1665 parser_util__CollectAnnotationsByNameVisitor__result_61d(self, p0);
1666 RET_LABEL:;
1667 }
1668 /* method parser_util#CollectAnnotationsByNameVisitor#visit for (self: CollectAnnotationsByNameVisitor, ANode) */
1669 void parser_util__CollectAnnotationsByNameVisitor__visit(val* self, val* p0) {
1670 val* var_node /* var node: ANode */;
1671 short int var /* : Bool */;
1672 short int var1 /* : Bool */;
1673 int cltype;
1674 int idtype;
1675 short int var_ /* var : Bool */;
1676 val* var2 /* : AAtid */;
1677 val* var3 /* : Token */;
1678 val* var4 /* : String */;
1679 val* var5 /* : String */;
1680 short int var6 /* : Bool */;
1681 val* var7 /* : Array[AAnnotation] */;
1682 var_node = p0;
1683 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_node, self) /* visit_all on <var_node:ANode>*/;
1684 /* <var_node:ANode> isa AAnnotation */
1685 cltype = type_parser_nodes__AAnnotation.color;
1686 idtype = type_parser_nodes__AAnnotation.id;
1687 if(cltype >= var_node->type->table_size) {
1688 var1 = 0;
1689 } else {
1690 var1 = var_node->type->type_table[cltype] == idtype;
1691 }
1692 var_ = var1;
1693 if (var1){
1694 var2 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__AAnnotation__n_atid]))(var_node) /* n_atid on <var_node:ANode(AAnnotation)>*/;
1695 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_parser_nodes__AAtid__n_id]))(var2) /* n_id on <var2:AAtid>*/;
1696 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_parser_nodes__Token__text]))(var3) /* text on <var3:Token>*/;
1697 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__CollectAnnotationsByNameVisitor__name]))(self) /* name on <self:CollectAnnotationsByNameVisitor>*/;
1698 var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var5) /* == on <var4:String>*/;
1699 var = var6;
1700 } else {
1701 var = var_;
1702 }
1703 if (var){
1704 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_util__CollectAnnotationsByNameVisitor__result]))(self) /* result on <self:CollectAnnotationsByNameVisitor>*/;
1705 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var7, var_node) /* add on <var7:Array[AAnnotation]>*/;
1706 } else {
1707 }
1708 RET_LABEL:;
1709 }
1710 /* method parser_util#CollectAnnotationsByNameVisitor#visit for (self: Object, ANode) */
1711 void VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__visit(val* self, val* p0) {
1712 parser_util__CollectAnnotationsByNameVisitor__visit(self, p0);
1713 RET_LABEL:;
1714 }