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