parser: remove generated old-style accesors.
[nit.git] / c_src / toolcontext.sep.1.c
1 #include "toolcontext.sep.0.h"
2 /* method toolcontext#Message#location for (self: Message): nullable Location */
3 val* toolcontext__Message__location(val* self) {
4 val* var /* : nullable Location */;
5 val* var1 /* : nullable Location */;
6 var1 = self->attrs[COLOR_toolcontext__Message___64dlocation].val; /* @location on <self:Message> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method toolcontext#Message#location for (self: Object): nullable Location */
12 val* VIRTUAL_toolcontext__Message__location(val* self) {
13 val* var /* : nullable Location */;
14 val* var1 /* : nullable Location */;
15 var1 = toolcontext__Message__location(self);
16 var = var1;
17 RET_LABEL:;
18 return var;
19 }
20 /* method toolcontext#Message#location= for (self: Message, nullable Location) */
21 void toolcontext__Message__location_61d(val* self, val* p0) {
22 self->attrs[COLOR_toolcontext__Message___64dlocation].val = p0; /* @location on <self:Message> */
23 RET_LABEL:;
24 }
25 /* method toolcontext#Message#location= for (self: Object, nullable Location) */
26 void VIRTUAL_toolcontext__Message__location_61d(val* self, val* p0) {
27 toolcontext__Message__location_61d(self, p0);
28 RET_LABEL:;
29 }
30 /* method toolcontext#Message#text for (self: Message): String */
31 val* toolcontext__Message__text(val* self) {
32 val* var /* : String */;
33 val* var1 /* : String */;
34 var1 = self->attrs[COLOR_toolcontext__Message___64dtext].val; /* @text on <self:Message> */
35 if (var1 == NULL) {
36 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @text");
37 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 30);
38 show_backtrace(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method toolcontext#Message#text for (self: Object): String */
45 val* VIRTUAL_toolcontext__Message__text(val* self) {
46 val* var /* : String */;
47 val* var1 /* : String */;
48 var1 = toolcontext__Message__text(self);
49 var = var1;
50 RET_LABEL:;
51 return var;
52 }
53 /* method toolcontext#Message#text= for (self: Message, String) */
54 void toolcontext__Message__text_61d(val* self, val* p0) {
55 self->attrs[COLOR_toolcontext__Message___64dtext].val = p0; /* @text on <self:Message> */
56 RET_LABEL:;
57 }
58 /* method toolcontext#Message#text= for (self: Object, String) */
59 void VIRTUAL_toolcontext__Message__text_61d(val* self, val* p0) {
60 toolcontext__Message__text_61d(self, p0);
61 RET_LABEL:;
62 }
63 /* method toolcontext#Message#< for (self: Message, Message): Bool */
64 short int toolcontext__Message___60d(val* self, val* p0) {
65 short int var /* : Bool */;
66 short int var1 /* : Bool */;
67 int cltype;
68 int idtype;
69 const struct type* type_struct;
70 const char* var_class_name;
71 val* var_other /* var other: Message */;
72 val* var2 /* : nullable Location */;
73 val* var3 /* : null */;
74 short int var4 /* : Bool */;
75 short int var5 /* : Bool */;
76 val* var6 /* : nullable Location */;
77 val* var7 /* : null */;
78 short int var8 /* : Bool */;
79 short int var9 /* : Bool */;
80 val* var10 /* : nullable Location */;
81 val* var11 /* : nullable Location */;
82 short int var12 /* : Bool */;
83 /* Covariant cast for argument 0 (other) <p0:Message> isa OTHER */
84 /* <p0:Message> isa OTHER */
85 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
86 cltype = type_struct->color;
87 idtype = type_struct->id;
88 if(cltype >= p0->type->table_size) {
89 var1 = 0;
90 } else {
91 var1 = p0->type->type_table[cltype] == idtype;
92 }
93 if (!var1) {
94 var_class_name = p0 == NULL ? "null" : p0->type->name;
95 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
96 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 32);
97 show_backtrace(1);
98 }
99 var_other = p0;
100 var2 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__location]))(self) /* location on <self:Message>*/;
101 var3 = NULL;
102 if (var2 == NULL) {
103 var4 = 1; /* is null */
104 } else {
105 var4 = 0; /* arg is null but recv is not */
106 }
107 if (var4){
108 var5 = 1;
109 var = var5;
110 goto RET_LABEL;
111 } else {
112 }
113 var6 = ((val* (*)(val*))(var_other->class->vft[COLOR_toolcontext__Message__location]))(var_other) /* location on <var_other:Message>*/;
114 var7 = NULL;
115 if (var6 == NULL) {
116 var8 = 1; /* is null */
117 } else {
118 var8 = 0; /* arg is null but recv is not */
119 }
120 if (var8){
121 var9 = 0;
122 var = var9;
123 goto RET_LABEL;
124 } else {
125 }
126 var10 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__location]))(self) /* location on <self:Message>*/;
127 if (var10 == NULL) {
128 fprintf(stderr, "Runtime error: %s", "Cast failed");
129 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 37);
130 show_backtrace(1);
131 }
132 var11 = ((val* (*)(val*))(var_other->class->vft[COLOR_toolcontext__Message__location]))(var_other) /* location on <var_other:Message>*/;
133 if (var11 == NULL) {
134 fprintf(stderr, "Runtime error: %s", "Cast failed");
135 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 37);
136 show_backtrace(1);
137 }
138 var12 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Comparable___60d]))(var10, var11) /* < on <var10:nullable Location(Location)>*/;
139 var = var12;
140 goto RET_LABEL;
141 RET_LABEL:;
142 return var;
143 }
144 /* method toolcontext#Message#< for (self: Object, Comparable): Bool */
145 short int VIRTUAL_toolcontext__Message___60d(val* self, val* p0) {
146 short int var /* : Bool */;
147 short int var1 /* : Bool */;
148 var1 = toolcontext__Message___60d(self, p0);
149 var = var1;
150 RET_LABEL:;
151 return var;
152 }
153 /* method toolcontext#Message#to_s for (self: Message): String */
154 val* toolcontext__Message__to_s(val* self) {
155 val* var /* : String */;
156 val* var1 /* : nullable Location */;
157 val* var_l /* var l: nullable Location */;
158 val* var2 /* : null */;
159 short int var3 /* : Bool */;
160 val* var4 /* : String */;
161 val* var5 /* : Array[Object] */;
162 long var6 /* : Int */;
163 val* var_ /* var : Array[Object] */;
164 static val* varonce;
165 val* var7 /* : String */;
166 char* var8 /* : NativeString */;
167 long var9 /* : Int */;
168 val* var10 /* : String */;
169 static val* varonce11;
170 val* var12 /* : String */;
171 char* var13 /* : NativeString */;
172 long var14 /* : Int */;
173 val* var15 /* : String */;
174 val* var16 /* : String */;
175 static val* varonce17;
176 val* var18 /* : String */;
177 char* var19 /* : NativeString */;
178 long var20 /* : Int */;
179 val* var21 /* : String */;
180 val* var22 /* : String */;
181 var1 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__location]))(self) /* location on <self:Message>*/;
182 var_l = var1;
183 var2 = NULL;
184 if (var_l == NULL) {
185 var3 = 1; /* is null */
186 } else {
187 var3 = 0; /* arg is null but recv is not */
188 }
189 if (var3){
190 var4 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__text]))(self) /* text on <self:Message>*/;
191 var = var4;
192 goto RET_LABEL;
193 } else {
194 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
195 var6 = 5;
196 ((void (*)(val*, long))(var5->class->vft[COLOR_array__Array__with_capacity]))(var5, var6) /* with_capacity on <var5:Array[Object]>*/;
197 var_ = var5;
198 if (varonce) {
199 var7 = varonce;
200 } else {
201 var8 = "";
202 var9 = 0;
203 var10 = string__NativeString__to_s_with_length(var8, var9);
204 var7 = var10;
205 varonce = var7;
206 }
207 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
208 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_l) /* add on <var_:Array[Object]>*/;
209 if (varonce11) {
210 var12 = varonce11;
211 } else {
212 var13 = ": ";
213 var14 = 2;
214 var15 = string__NativeString__to_s_with_length(var13, var14);
215 var12 = var15;
216 varonce11 = var12;
217 }
218 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var12) /* add on <var_:Array[Object]>*/;
219 var16 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__text]))(self) /* text on <self:Message>*/;
220 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on <var_:Array[Object]>*/;
221 if (varonce17) {
222 var18 = varonce17;
223 } else {
224 var19 = "";
225 var20 = 0;
226 var21 = string__NativeString__to_s_with_length(var19, var20);
227 var18 = var21;
228 varonce17 = var18;
229 }
230 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var18) /* add on <var_:Array[Object]>*/;
231 var22 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
232 var = var22;
233 goto RET_LABEL;
234 }
235 RET_LABEL:;
236 return var;
237 }
238 /* method toolcontext#Message#to_s for (self: Object): String */
239 val* VIRTUAL_toolcontext__Message__to_s(val* self) {
240 val* var /* : String */;
241 val* var1 /* : String */;
242 var1 = toolcontext__Message__to_s(self);
243 var = var1;
244 RET_LABEL:;
245 return var;
246 }
247 /* method toolcontext#Message#to_color_string for (self: Message): String */
248 val* toolcontext__Message__to_color_string(val* self) {
249 val* var /* : String */;
250 long var1 /* : Int */;
251 char var2 /* : Char */;
252 char var4 /* : Char */;
253 char var_esc /* var esc: Char */;
254 val* var5 /* : Array[Object] */;
255 long var6 /* : Int */;
256 val* var_ /* var : Array[Object] */;
257 static val* varonce;
258 val* var7 /* : String */;
259 char* var8 /* : NativeString */;
260 long var9 /* : Int */;
261 val* var10 /* : String */;
262 val* var11 /* : nullable Object */;
263 static val* varonce12;
264 val* var13 /* : String */;
265 char* var14 /* : NativeString */;
266 long var15 /* : Int */;
267 val* var16 /* : String */;
268 val* var17 /* : String */;
269 val* var_red /* var red: String */;
270 val* var18 /* : Array[Object] */;
271 long var19 /* : Int */;
272 val* var_20 /* var : Array[Object] */;
273 static val* varonce21;
274 val* var22 /* : String */;
275 char* var23 /* : NativeString */;
276 long var24 /* : Int */;
277 val* var25 /* : String */;
278 val* var26 /* : nullable Object */;
279 static val* varonce27;
280 val* var28 /* : String */;
281 char* var29 /* : NativeString */;
282 long var30 /* : Int */;
283 val* var31 /* : String */;
284 val* var32 /* : String */;
285 val* var_bred /* var bred: String */;
286 val* var33 /* : Array[Object] */;
287 long var34 /* : Int */;
288 val* var_35 /* var : Array[Object] */;
289 static val* varonce36;
290 val* var37 /* : String */;
291 char* var38 /* : NativeString */;
292 long var39 /* : Int */;
293 val* var40 /* : String */;
294 val* var41 /* : nullable Object */;
295 static val* varonce42;
296 val* var43 /* : String */;
297 char* var44 /* : NativeString */;
298 long var45 /* : Int */;
299 val* var46 /* : String */;
300 val* var47 /* : String */;
301 val* var_green /* var green: String */;
302 val* var48 /* : Array[Object] */;
303 long var49 /* : Int */;
304 val* var_50 /* var : Array[Object] */;
305 static val* varonce51;
306 val* var52 /* : String */;
307 char* var53 /* : NativeString */;
308 long var54 /* : Int */;
309 val* var55 /* : String */;
310 val* var56 /* : nullable Object */;
311 static val* varonce57;
312 val* var58 /* : String */;
313 char* var59 /* : NativeString */;
314 long var60 /* : Int */;
315 val* var61 /* : String */;
316 val* var62 /* : String */;
317 val* var_yellow /* var yellow: String */;
318 val* var63 /* : Array[Object] */;
319 long var64 /* : Int */;
320 val* var_65 /* var : Array[Object] */;
321 static val* varonce66;
322 val* var67 /* : String */;
323 char* var68 /* : NativeString */;
324 long var69 /* : Int */;
325 val* var70 /* : String */;
326 val* var71 /* : nullable Object */;
327 static val* varonce72;
328 val* var73 /* : String */;
329 char* var74 /* : NativeString */;
330 long var75 /* : Int */;
331 val* var76 /* : String */;
332 val* var77 /* : String */;
333 val* var_def /* var def: String */;
334 val* var78 /* : nullable Location */;
335 val* var_l /* var l: nullable Location */;
336 val* var79 /* : null */;
337 short int var80 /* : Bool */;
338 val* var81 /* : String */;
339 val* var82 /* : nullable SourceFile */;
340 val* var83 /* : null */;
341 short int var84 /* : Bool */;
342 val* var85 /* : Array[Object] */;
343 long var86 /* : Int */;
344 val* var_87 /* var : Array[Object] */;
345 static val* varonce88;
346 val* var89 /* : String */;
347 char* var90 /* : NativeString */;
348 long var91 /* : Int */;
349 val* var92 /* : String */;
350 static val* varonce93;
351 val* var94 /* : String */;
352 char* var95 /* : NativeString */;
353 long var96 /* : Int */;
354 val* var97 /* : String */;
355 static val* varonce98;
356 val* var99 /* : String */;
357 char* var100 /* : NativeString */;
358 long var101 /* : Int */;
359 val* var102 /* : String */;
360 static val* varonce103;
361 val* var104 /* : String */;
362 char* var105 /* : NativeString */;
363 long var106 /* : Int */;
364 val* var107 /* : String */;
365 val* var108 /* : String */;
366 static val* varonce109;
367 val* var110 /* : String */;
368 char* var111 /* : NativeString */;
369 long var112 /* : Int */;
370 val* var113 /* : String */;
371 val* var114 /* : String */;
372 val* var115 /* : Array[Object] */;
373 long var116 /* : Int */;
374 val* var_117 /* var : Array[Object] */;
375 static val* varonce118;
376 val* var119 /* : String */;
377 char* var120 /* : NativeString */;
378 long var121 /* : Int */;
379 val* var122 /* : String */;
380 static val* varonce123;
381 val* var124 /* : String */;
382 char* var125 /* : NativeString */;
383 long var126 /* : Int */;
384 val* var127 /* : String */;
385 static val* varonce128;
386 val* var129 /* : String */;
387 char* var130 /* : NativeString */;
388 long var131 /* : Int */;
389 val* var132 /* : String */;
390 static val* varonce133;
391 val* var134 /* : String */;
392 char* var135 /* : NativeString */;
393 long var136 /* : Int */;
394 val* var137 /* : String */;
395 val* var138 /* : String */;
396 static val* varonce139;
397 val* var140 /* : String */;
398 char* var141 /* : NativeString */;
399 long var142 /* : Int */;
400 val* var143 /* : String */;
401 static val* varonce144;
402 val* var145 /* : String */;
403 char* var146 /* : NativeString */;
404 long var147 /* : Int */;
405 val* var148 /* : String */;
406 val* var149 /* : String */;
407 static val* varonce150;
408 val* var151 /* : String */;
409 char* var152 /* : NativeString */;
410 long var153 /* : Int */;
411 val* var154 /* : String */;
412 val* var155 /* : String */;
413 var1 = 27;
414 { /* Inline kernel#Int#ascii (var1) */
415 var4 = var1;
416 var2 = var4;
417 goto RET_LABEL3;
418 RET_LABEL3:(void)0;
419 }
420 var_esc = var2;
421 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
422 var6 = 3;
423 ((void (*)(val*, long))(var5->class->vft[COLOR_array__Array__with_capacity]))(var5, var6) /* with_capacity on <var5:Array[Object]>*/;
424 var_ = var5;
425 if (varonce) {
426 var7 = varonce;
427 } else {
428 var8 = "";
429 var9 = 0;
430 var10 = string__NativeString__to_s_with_length(var8, var9);
431 var7 = var10;
432 varonce = var7;
433 }
434 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
435 var11 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
436 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
437 if (varonce12) {
438 var13 = varonce12;
439 } else {
440 var14 = "[0;31m";
441 var15 = 6;
442 var16 = string__NativeString__to_s_with_length(var14, var15);
443 var13 = var16;
444 varonce12 = var13;
445 }
446 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
447 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
448 var_red = var17;
449 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
450 var19 = 3;
451 ((void (*)(val*, long))(var18->class->vft[COLOR_array__Array__with_capacity]))(var18, var19) /* with_capacity on <var18:Array[Object]>*/;
452 var_20 = var18;
453 if (varonce21) {
454 var22 = varonce21;
455 } else {
456 var23 = "";
457 var24 = 0;
458 var25 = string__NativeString__to_s_with_length(var23, var24);
459 var22 = var25;
460 varonce21 = var22;
461 }
462 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var22) /* add on <var_20:Array[Object]>*/;
463 var26 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
464 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var26) /* add on <var_20:Array[Object]>*/;
465 if (varonce27) {
466 var28 = varonce27;
467 } else {
468 var29 = "[1;31m";
469 var30 = 6;
470 var31 = string__NativeString__to_s_with_length(var29, var30);
471 var28 = var31;
472 varonce27 = var28;
473 }
474 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var28) /* add on <var_20:Array[Object]>*/;
475 var32 = ((val* (*)(val*))(var_20->class->vft[COLOR_string__Object__to_s]))(var_20) /* to_s on <var_20:Array[Object]>*/;
476 var_bred = var32;
477 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
478 var34 = 3;
479 ((void (*)(val*, long))(var33->class->vft[COLOR_array__Array__with_capacity]))(var33, var34) /* with_capacity on <var33:Array[Object]>*/;
480 var_35 = var33;
481 if (varonce36) {
482 var37 = varonce36;
483 } else {
484 var38 = "";
485 var39 = 0;
486 var40 = string__NativeString__to_s_with_length(var38, var39);
487 var37 = var40;
488 varonce36 = var37;
489 }
490 ((void (*)(val*, val*))(var_35->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_35, var37) /* add on <var_35:Array[Object]>*/;
491 var41 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
492 ((void (*)(val*, val*))(var_35->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_35, var41) /* add on <var_35:Array[Object]>*/;
493 if (varonce42) {
494 var43 = varonce42;
495 } else {
496 var44 = "[0;32m";
497 var45 = 6;
498 var46 = string__NativeString__to_s_with_length(var44, var45);
499 var43 = var46;
500 varonce42 = var43;
501 }
502 ((void (*)(val*, val*))(var_35->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_35, var43) /* add on <var_35:Array[Object]>*/;
503 var47 = ((val* (*)(val*))(var_35->class->vft[COLOR_string__Object__to_s]))(var_35) /* to_s on <var_35:Array[Object]>*/;
504 var_green = var47;
505 var48 = NEW_array__Array(&type_array__Arraykernel__Object);
506 var49 = 3;
507 ((void (*)(val*, long))(var48->class->vft[COLOR_array__Array__with_capacity]))(var48, var49) /* with_capacity on <var48:Array[Object]>*/;
508 var_50 = var48;
509 if (varonce51) {
510 var52 = varonce51;
511 } else {
512 var53 = "";
513 var54 = 0;
514 var55 = string__NativeString__to_s_with_length(var53, var54);
515 var52 = var55;
516 varonce51 = var52;
517 }
518 ((void (*)(val*, val*))(var_50->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_50, var52) /* add on <var_50:Array[Object]>*/;
519 var56 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
520 ((void (*)(val*, val*))(var_50->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_50, var56) /* add on <var_50:Array[Object]>*/;
521 if (varonce57) {
522 var58 = varonce57;
523 } else {
524 var59 = "[0;33m";
525 var60 = 6;
526 var61 = string__NativeString__to_s_with_length(var59, var60);
527 var58 = var61;
528 varonce57 = var58;
529 }
530 ((void (*)(val*, val*))(var_50->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_50, var58) /* add on <var_50:Array[Object]>*/;
531 var62 = ((val* (*)(val*))(var_50->class->vft[COLOR_string__Object__to_s]))(var_50) /* to_s on <var_50:Array[Object]>*/;
532 var_yellow = var62;
533 var63 = NEW_array__Array(&type_array__Arraykernel__Object);
534 var64 = 3;
535 ((void (*)(val*, long))(var63->class->vft[COLOR_array__Array__with_capacity]))(var63, var64) /* with_capacity on <var63:Array[Object]>*/;
536 var_65 = var63;
537 if (varonce66) {
538 var67 = varonce66;
539 } else {
540 var68 = "";
541 var69 = 0;
542 var70 = string__NativeString__to_s_with_length(var68, var69);
543 var67 = var70;
544 varonce66 = var67;
545 }
546 ((void (*)(val*, val*))(var_65->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_65, var67) /* add on <var_65:Array[Object]>*/;
547 var71 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
548 ((void (*)(val*, val*))(var_65->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_65, var71) /* add on <var_65:Array[Object]>*/;
549 if (varonce72) {
550 var73 = varonce72;
551 } else {
552 var74 = "[0m";
553 var75 = 3;
554 var76 = string__NativeString__to_s_with_length(var74, var75);
555 var73 = var76;
556 varonce72 = var73;
557 }
558 ((void (*)(val*, val*))(var_65->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_65, var73) /* add on <var_65:Array[Object]>*/;
559 var77 = ((val* (*)(val*))(var_65->class->vft[COLOR_string__Object__to_s]))(var_65) /* to_s on <var_65:Array[Object]>*/;
560 var_def = var77;
561 var78 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__location]))(self) /* location on <self:Message>*/;
562 var_l = var78;
563 var79 = NULL;
564 if (var_l == NULL) {
565 var80 = 1; /* is null */
566 } else {
567 var80 = 0; /* arg is null but recv is not */
568 }
569 if (var80){
570 var81 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__text]))(self) /* text on <self:Message>*/;
571 var = var81;
572 goto RET_LABEL;
573 } else {
574 var82 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:nullable Location(Location)>*/;
575 var83 = NULL;
576 if (var82 == NULL) {
577 var84 = 1; /* is null */
578 } else {
579 var84 = 0; /* arg is null but recv is not */
580 }
581 if (var84){
582 var85 = NEW_array__Array(&type_array__Arraykernel__Object);
583 var86 = 9;
584 ((void (*)(val*, long))(var85->class->vft[COLOR_array__Array__with_capacity]))(var85, var86) /* with_capacity on <var85:Array[Object]>*/;
585 var_87 = var85;
586 if (varonce88) {
587 var89 = varonce88;
588 } else {
589 var90 = "";
590 var91 = 0;
591 var92 = string__NativeString__to_s_with_length(var90, var91);
592 var89 = var92;
593 varonce88 = var89;
594 }
595 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var89) /* add on <var_87:Array[Object]>*/;
596 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var_yellow) /* add on <var_87:Array[Object]>*/;
597 if (varonce93) {
598 var94 = varonce93;
599 } else {
600 var95 = "";
601 var96 = 0;
602 var97 = string__NativeString__to_s_with_length(var95, var96);
603 var94 = var97;
604 varonce93 = var94;
605 }
606 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var94) /* add on <var_87:Array[Object]>*/;
607 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var_l) /* add on <var_87:Array[Object]>*/;
608 if (varonce98) {
609 var99 = varonce98;
610 } else {
611 var100 = "";
612 var101 = 0;
613 var102 = string__NativeString__to_s_with_length(var100, var101);
614 var99 = var102;
615 varonce98 = var99;
616 }
617 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var99) /* add on <var_87:Array[Object]>*/;
618 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var_def) /* add on <var_87:Array[Object]>*/;
619 if (varonce103) {
620 var104 = varonce103;
621 } else {
622 var105 = ": ";
623 var106 = 2;
624 var107 = string__NativeString__to_s_with_length(var105, var106);
625 var104 = var107;
626 varonce103 = var104;
627 }
628 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var104) /* add on <var_87:Array[Object]>*/;
629 var108 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__text]))(self) /* text on <self:Message>*/;
630 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var108) /* add on <var_87:Array[Object]>*/;
631 if (varonce109) {
632 var110 = varonce109;
633 } else {
634 var111 = "";
635 var112 = 0;
636 var113 = string__NativeString__to_s_with_length(var111, var112);
637 var110 = var113;
638 varonce109 = var110;
639 }
640 ((void (*)(val*, val*))(var_87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_87, var110) /* add on <var_87:Array[Object]>*/;
641 var114 = ((val* (*)(val*))(var_87->class->vft[COLOR_string__Object__to_s]))(var_87) /* to_s on <var_87:Array[Object]>*/;
642 var = var114;
643 goto RET_LABEL;
644 } else {
645 var115 = NEW_array__Array(&type_array__Arraykernel__Object);
646 var116 = 11;
647 ((void (*)(val*, long))(var115->class->vft[COLOR_array__Array__with_capacity]))(var115, var116) /* with_capacity on <var115:Array[Object]>*/;
648 var_117 = var115;
649 if (varonce118) {
650 var119 = varonce118;
651 } else {
652 var120 = "";
653 var121 = 0;
654 var122 = string__NativeString__to_s_with_length(var120, var121);
655 var119 = var122;
656 varonce118 = var119;
657 }
658 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var119) /* add on <var_117:Array[Object]>*/;
659 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var_yellow) /* add on <var_117:Array[Object]>*/;
660 if (varonce123) {
661 var124 = varonce123;
662 } else {
663 var125 = "";
664 var126 = 0;
665 var127 = string__NativeString__to_s_with_length(var125, var126);
666 var124 = var127;
667 varonce123 = var124;
668 }
669 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var124) /* add on <var_117:Array[Object]>*/;
670 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var_l) /* add on <var_117:Array[Object]>*/;
671 if (varonce128) {
672 var129 = varonce128;
673 } else {
674 var130 = "";
675 var131 = 0;
676 var132 = string__NativeString__to_s_with_length(var130, var131);
677 var129 = var132;
678 varonce128 = var129;
679 }
680 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var129) /* add on <var_117:Array[Object]>*/;
681 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var_def) /* add on <var_117:Array[Object]>*/;
682 if (varonce133) {
683 var134 = varonce133;
684 } else {
685 var135 = ": ";
686 var136 = 2;
687 var137 = string__NativeString__to_s_with_length(var135, var136);
688 var134 = var137;
689 varonce133 = var134;
690 }
691 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var134) /* add on <var_117:Array[Object]>*/;
692 var138 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__Message__text]))(self) /* text on <self:Message>*/;
693 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var138) /* add on <var_117:Array[Object]>*/;
694 if (varonce139) {
695 var140 = varonce139;
696 } else {
697 var141 = "\n";
698 var142 = 1;
699 var143 = string__NativeString__to_s_with_length(var141, var142);
700 var140 = var143;
701 varonce139 = var140;
702 }
703 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var140) /* add on <var_117:Array[Object]>*/;
704 if (varonce144) {
705 var145 = varonce144;
706 } else {
707 var146 = "1;31";
708 var147 = 4;
709 var148 = string__NativeString__to_s_with_length(var146, var147);
710 var145 = var148;
711 varonce144 = var145;
712 }
713 var149 = ((val* (*)(val*, val*))(var_l->class->vft[COLOR_location__Location__colored_line]))(var_l, var145) /* colored_line on <var_l:nullable Location(Location)>*/;
714 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var149) /* add on <var_117:Array[Object]>*/;
715 if (varonce150) {
716 var151 = varonce150;
717 } else {
718 var152 = "";
719 var153 = 0;
720 var154 = string__NativeString__to_s_with_length(var152, var153);
721 var151 = var154;
722 varonce150 = var151;
723 }
724 ((void (*)(val*, val*))(var_117->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_117, var151) /* add on <var_117:Array[Object]>*/;
725 var155 = ((val* (*)(val*))(var_117->class->vft[COLOR_string__Object__to_s]))(var_117) /* to_s on <var_117:Array[Object]>*/;
726 var = var155;
727 goto RET_LABEL;
728 }
729 }
730 RET_LABEL:;
731 return var;
732 }
733 /* method toolcontext#Message#to_color_string for (self: Object): String */
734 val* VIRTUAL_toolcontext__Message__to_color_string(val* self) {
735 val* var /* : String */;
736 val* var1 /* : String */;
737 var1 = toolcontext__Message__to_color_string(self);
738 var = var1;
739 RET_LABEL:;
740 return var;
741 }
742 /* method toolcontext#Message#init for (self: Message, nullable Location, String) */
743 void toolcontext__Message__init(val* self, val* p0, val* p1) {
744 self->attrs[COLOR_toolcontext__Message___64dlocation].val = p0; /* @location on <self:Message> */
745 self->attrs[COLOR_toolcontext__Message___64dtext].val = p1; /* @text on <self:Message> */
746 RET_LABEL:;
747 }
748 /* method toolcontext#Message#init for (self: Object, nullable Location, String) */
749 void VIRTUAL_toolcontext__Message__init(val* self, val* p0, val* p1) {
750 toolcontext__Message__init(self, p0, p1);
751 RET_LABEL:;
752 }
753 /* method toolcontext#ToolContext#error_count for (self: ToolContext): Int */
754 long toolcontext__ToolContext__error_count(val* self) {
755 long var /* : Int */;
756 long var1 /* : Int */;
757 var1 = self->attrs[COLOR_toolcontext__ToolContext___64derror_count].l; /* @error_count on <self:ToolContext> */
758 var = var1;
759 RET_LABEL:;
760 return var;
761 }
762 /* method toolcontext#ToolContext#error_count for (self: Object): Int */
763 long VIRTUAL_toolcontext__ToolContext__error_count(val* self) {
764 long var /* : Int */;
765 long var1 /* : Int */;
766 var1 = toolcontext__ToolContext__error_count(self);
767 var = var1;
768 RET_LABEL:;
769 return var;
770 }
771 /* method toolcontext#ToolContext#error_count= for (self: ToolContext, Int) */
772 void toolcontext__ToolContext__error_count_61d(val* self, long p0) {
773 self->attrs[COLOR_toolcontext__ToolContext___64derror_count].l = p0; /* @error_count on <self:ToolContext> */
774 RET_LABEL:;
775 }
776 /* method toolcontext#ToolContext#error_count= for (self: Object, Int) */
777 void VIRTUAL_toolcontext__ToolContext__error_count_61d(val* self, long p0) {
778 toolcontext__ToolContext__error_count_61d(self, p0);
779 RET_LABEL:;
780 }
781 /* method toolcontext#ToolContext#warning_count for (self: ToolContext): Int */
782 long toolcontext__ToolContext__warning_count(val* self) {
783 long var /* : Int */;
784 long var1 /* : Int */;
785 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dwarning_count].l; /* @warning_count on <self:ToolContext> */
786 var = var1;
787 RET_LABEL:;
788 return var;
789 }
790 /* method toolcontext#ToolContext#warning_count for (self: Object): Int */
791 long VIRTUAL_toolcontext__ToolContext__warning_count(val* self) {
792 long var /* : Int */;
793 long var1 /* : Int */;
794 var1 = toolcontext__ToolContext__warning_count(self);
795 var = var1;
796 RET_LABEL:;
797 return var;
798 }
799 /* method toolcontext#ToolContext#warning_count= for (self: ToolContext, Int) */
800 void toolcontext__ToolContext__warning_count_61d(val* self, long p0) {
801 self->attrs[COLOR_toolcontext__ToolContext___64dwarning_count].l = p0; /* @warning_count on <self:ToolContext> */
802 RET_LABEL:;
803 }
804 /* method toolcontext#ToolContext#warning_count= for (self: Object, Int) */
805 void VIRTUAL_toolcontext__ToolContext__warning_count_61d(val* self, long p0) {
806 toolcontext__ToolContext__warning_count_61d(self, p0);
807 RET_LABEL:;
808 }
809 /* method toolcontext#ToolContext#log_directory for (self: ToolContext): String */
810 val* toolcontext__ToolContext__log_directory(val* self) {
811 val* var /* : String */;
812 val* var1 /* : String */;
813 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dlog_directory].val; /* @log_directory on <self:ToolContext> */
814 if (var1 == NULL) {
815 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @log_directory");
816 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 78);
817 show_backtrace(1);
818 }
819 var = var1;
820 RET_LABEL:;
821 return var;
822 }
823 /* method toolcontext#ToolContext#log_directory for (self: Object): String */
824 val* VIRTUAL_toolcontext__ToolContext__log_directory(val* self) {
825 val* var /* : String */;
826 val* var1 /* : String */;
827 var1 = toolcontext__ToolContext__log_directory(self);
828 var = var1;
829 RET_LABEL:;
830 return var;
831 }
832 /* method toolcontext#ToolContext#log_directory= for (self: ToolContext, String) */
833 void toolcontext__ToolContext__log_directory_61d(val* self, val* p0) {
834 self->attrs[COLOR_toolcontext__ToolContext___64dlog_directory].val = p0; /* @log_directory on <self:ToolContext> */
835 RET_LABEL:;
836 }
837 /* method toolcontext#ToolContext#log_directory= for (self: Object, String) */
838 void VIRTUAL_toolcontext__ToolContext__log_directory_61d(val* self, val* p0) {
839 toolcontext__ToolContext__log_directory_61d(self, p0);
840 RET_LABEL:;
841 }
842 /* method toolcontext#ToolContext#messages for (self: ToolContext): Array[Message] */
843 val* toolcontext__ToolContext__messages(val* self) {
844 val* var /* : Array[Message] */;
845 val* var1 /* : Array[Message] */;
846 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dmessages].val; /* @messages on <self:ToolContext> */
847 if (var1 == NULL) {
848 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @messages");
849 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 81);
850 show_backtrace(1);
851 }
852 var = var1;
853 RET_LABEL:;
854 return var;
855 }
856 /* method toolcontext#ToolContext#messages for (self: Object): Array[Message] */
857 val* VIRTUAL_toolcontext__ToolContext__messages(val* self) {
858 val* var /* : Array[Message] */;
859 val* var1 /* : Array[Message] */;
860 var1 = toolcontext__ToolContext__messages(self);
861 var = var1;
862 RET_LABEL:;
863 return var;
864 }
865 /* method toolcontext#ToolContext#messages= for (self: ToolContext, Array[Message]) */
866 void toolcontext__ToolContext__messages_61d(val* self, val* p0) {
867 self->attrs[COLOR_toolcontext__ToolContext___64dmessages].val = p0; /* @messages on <self:ToolContext> */
868 RET_LABEL:;
869 }
870 /* method toolcontext#ToolContext#messages= for (self: Object, Array[Message]) */
871 void VIRTUAL_toolcontext__ToolContext__messages_61d(val* self, val* p0) {
872 toolcontext__ToolContext__messages_61d(self, p0);
873 RET_LABEL:;
874 }
875 /* method toolcontext#ToolContext#message_sorter for (self: ToolContext): ComparableSorter[Message] */
876 val* toolcontext__ToolContext__message_sorter(val* self) {
877 val* var /* : ComparableSorter[Message] */;
878 val* var1 /* : ComparableSorter[Message] */;
879 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dmessage_sorter].val; /* @message_sorter on <self:ToolContext> */
880 if (var1 == NULL) {
881 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @message_sorter");
882 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 83);
883 show_backtrace(1);
884 }
885 var = var1;
886 RET_LABEL:;
887 return var;
888 }
889 /* method toolcontext#ToolContext#message_sorter for (self: Object): ComparableSorter[Message] */
890 val* VIRTUAL_toolcontext__ToolContext__message_sorter(val* self) {
891 val* var /* : ComparableSorter[Message] */;
892 val* var1 /* : ComparableSorter[Message] */;
893 var1 = toolcontext__ToolContext__message_sorter(self);
894 var = var1;
895 RET_LABEL:;
896 return var;
897 }
898 /* method toolcontext#ToolContext#message_sorter= for (self: ToolContext, ComparableSorter[Message]) */
899 void toolcontext__ToolContext__message_sorter_61d(val* self, val* p0) {
900 self->attrs[COLOR_toolcontext__ToolContext___64dmessage_sorter].val = p0; /* @message_sorter on <self:ToolContext> */
901 RET_LABEL:;
902 }
903 /* method toolcontext#ToolContext#message_sorter= for (self: Object, ComparableSorter[Message]) */
904 void VIRTUAL_toolcontext__ToolContext__message_sorter_61d(val* self, val* p0) {
905 toolcontext__ToolContext__message_sorter_61d(self, p0);
906 RET_LABEL:;
907 }
908 /* method toolcontext#ToolContext#check_errors for (self: ToolContext) */
909 void toolcontext__ToolContext__check_errors(val* self) {
910 val* var /* : Array[Message] */;
911 long var1 /* : Int */;
912 long var2 /* : Int */;
913 short int var3 /* : Bool */;
914 short int var5 /* : Bool */;
915 int cltype;
916 int idtype;
917 const char* var_class_name;
918 short int var6 /* : Bool */;
919 val* var7 /* : ComparableSorter[Message] */;
920 val* var8 /* : Array[Message] */;
921 val* var9 /* : Array[Message] */;
922 val* var10 /* : Iterator[nullable Object] */;
923 short int var11 /* : Bool */;
924 val* var12 /* : nullable Object */;
925 val* var_m /* var m: Message */;
926 val* var13 /* : OptionBool */;
927 val* var14 /* : nullable Object */;
928 short int var15 /* : Bool */;
929 val* var16 /* : OFStream */;
930 static val* varonce;
931 val* var17 /* : String */;
932 char* var18 /* : NativeString */;
933 long var19 /* : Int */;
934 val* var20 /* : String */;
935 val* var21 /* : Array[Object] */;
936 long var22 /* : Int */;
937 val* var23 /* : NativeArray[Object] */;
938 val* var24 /* : String */;
939 val* var25 /* : OFStream */;
940 val* var26 /* : String */;
941 static val* varonce27;
942 val* var28 /* : String */;
943 char* var29 /* : NativeString */;
944 long var30 /* : Int */;
945 val* var31 /* : String */;
946 val* var32 /* : Array[Object] */;
947 long var33 /* : Int */;
948 val* var34 /* : NativeArray[Object] */;
949 val* var35 /* : String */;
950 val* var36 /* : Array[Message] */;
951 long var37 /* : Int */;
952 long var38 /* : Int */;
953 short int var39 /* : Bool */;
954 short int var41 /* : Bool */;
955 int cltype42;
956 int idtype43;
957 const char* var_class_name44;
958 short int var45 /* : Bool */;
959 long var46 /* : Int */;
960 var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
961 var1 = ((long (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__length]))(var) /* length on <var:Array[Message]>*/;
962 var2 = 0;
963 { /* Inline kernel#Int#> (var1,var2) */
964 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
965 /* <var2:Int> isa OTHER */
966 var5 = 1; /* easy <var2:Int> isa OTHER*/
967 if (!var5) {
968 var_class_name = type_kernel__Int.name;
969 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
970 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
971 show_backtrace(1);
972 }
973 var6 = var1 > var2;
974 var3 = var6;
975 goto RET_LABEL4;
976 RET_LABEL4:(void)0;
977 }
978 if (var3){
979 var7 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__message_sorter]))(self) /* message_sorter on <self:ToolContext>*/;
980 var8 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
981 ((void (*)(val*, val*))(var7->class->vft[COLOR_sorter__AbstractSorter__sort]))(var7, var8) /* sort on <var7:ComparableSorter[Message]>*/;
982 var9 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
983 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on <var9:Array[Message]>*/;
984 for(;;) {
985 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
986 if(!var11) break;
987 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
988 var_m = var12;
989 var13 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_no_color]))(self) /* opt_no_color on <self:ToolContext>*/;
990 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_opts__Option__value]))(var13) /* value on <var13:OptionBool>*/;
991 var15 = ((struct instance_kernel__Bool*)var14)->value; /* autounbox from nullable Object to Bool */;
992 if (var15){
993 var16 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stderr]))(self) /* stderr on <self:ToolContext>*/;
994 if (varonce) {
995 var17 = varonce;
996 } else {
997 var18 = "\n";
998 var19 = 1;
999 var20 = string__NativeString__to_s_with_length(var18, var19);
1000 var17 = var20;
1001 varonce = var17;
1002 }
1003 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
1004 { /* var21 = array_instance Array[Object] */
1005 var22 = 2;
1006 var23 = NEW_array__NativeArray(var22, &type_array__NativeArraykernel__Object);
1007 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var_m;
1008 ((struct instance_array__NativeArray*)var23)->values[1] = (val*) var17;
1009 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
1010 }
1011 var24 = ((val* (*)(val*))(var21->class->vft[COLOR_string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
1012 ((void (*)(val*, val*))(var16->class->vft[COLOR_stream__OStream__write]))(var16, var24) /* write on <var16:OFStream>*/;
1013 } else {
1014 var25 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stderr]))(self) /* stderr on <self:ToolContext>*/;
1015 var26 = ((val* (*)(val*))(var_m->class->vft[COLOR_toolcontext__Message__to_color_string]))(var_m) /* to_color_string on <var_m:Message>*/;
1016 if (varonce27) {
1017 var28 = varonce27;
1018 } else {
1019 var29 = "\n";
1020 var30 = 1;
1021 var31 = string__NativeString__to_s_with_length(var29, var30);
1022 var28 = var31;
1023 varonce27 = var28;
1024 }
1025 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
1026 { /* var32 = array_instance Array[Object] */
1027 var33 = 2;
1028 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
1029 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) var26;
1030 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var28;
1031 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
1032 }
1033 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
1034 ((void (*)(val*, val*))(var25->class->vft[COLOR_stream__OStream__write]))(var25, var35) /* write on <var25:OFStream>*/;
1035 }
1036 CONTINUE_label: (void)0;
1037 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
1038 }
1039 BREAK_label: (void)0;
1040 var36 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
1041 ((void (*)(val*))(var36->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var36) /* clear on <var36:Array[Message]>*/;
1042 } else {
1043 }
1044 var37 = ((long (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__error_count]))(self) /* error_count on <self:ToolContext>*/;
1045 var38 = 0;
1046 { /* Inline kernel#Int#> (var37,var38) */
1047 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
1048 /* <var38:Int> isa OTHER */
1049 var41 = 1; /* easy <var38:Int> isa OTHER*/
1050 if (!var41) {
1051 var_class_name44 = type_kernel__Int.name;
1052 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
1053 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
1054 show_backtrace(1);
1055 }
1056 var45 = var37 > var38;
1057 var39 = var45;
1058 goto RET_LABEL40;
1059 RET_LABEL40:(void)0;
1060 }
1061 if (var39){
1062 var46 = 1;
1063 ((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var46) /* exit on <self:ToolContext>*/;
1064 } else {
1065 }
1066 RET_LABEL:;
1067 }
1068 /* method toolcontext#ToolContext#check_errors for (self: Object) */
1069 void VIRTUAL_toolcontext__ToolContext__check_errors(val* self) {
1070 toolcontext__ToolContext__check_errors(self);
1071 RET_LABEL:;
1072 }
1073 /* method toolcontext#ToolContext#error for (self: ToolContext, nullable Location, String) */
1074 void toolcontext__ToolContext__error(val* self, val* p0, val* p1) {
1075 val* var_l /* var l: nullable Location */;
1076 val* var_s /* var s: String */;
1077 val* var /* : Array[Message] */;
1078 val* var1 /* : Message */;
1079 long var2 /* : Int */;
1080 long var3 /* : Int */;
1081 long var4 /* : Int */;
1082 long var6 /* : Int */;
1083 val* var7 /* : OptionBool */;
1084 val* var8 /* : nullable Object */;
1085 short int var9 /* : Bool */;
1086 var_l = p0;
1087 var_s = p1;
1088 var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
1089 var1 = NEW_toolcontext__Message(&type_toolcontext__Message);
1090 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_toolcontext__Message__init]))(var1, var_l, var_s) /* init on <var1:Message>*/;
1091 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var1) /* add on <var:Array[Message]>*/;
1092 var2 = ((long (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__error_count]))(self) /* error_count on <self:ToolContext>*/;
1093 var3 = 1;
1094 { /* Inline kernel#Int#+ (var2,var3) */
1095 var6 = var2 + var3;
1096 var4 = var6;
1097 goto RET_LABEL5;
1098 RET_LABEL5:(void)0;
1099 }
1100 ((void (*)(val*, long))(self->class->vft[COLOR_toolcontext__ToolContext__error_count_61d]))(self, var4) /* error_count= on <self:ToolContext>*/;
1101 var7 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_stop_on_first_error]))(self) /* opt_stop_on_first_error on <self:ToolContext>*/;
1102 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_opts__Option__value]))(var7) /* value on <var7:OptionBool>*/;
1103 var9 = ((struct instance_kernel__Bool*)var8)->value; /* autounbox from nullable Object to Bool */;
1104 if (var9){
1105 ((void (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__check_errors]))(self) /* check_errors on <self:ToolContext>*/;
1106 } else {
1107 }
1108 RET_LABEL:;
1109 }
1110 /* method toolcontext#ToolContext#error for (self: Object, nullable Location, String) */
1111 void VIRTUAL_toolcontext__ToolContext__error(val* self, val* p0, val* p1) {
1112 toolcontext__ToolContext__error(self, p0, p1);
1113 RET_LABEL:;
1114 }
1115 /* method toolcontext#ToolContext#fatal_error for (self: ToolContext, nullable Location, String) */
1116 void toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
1117 val* var_l /* var l: nullable Location */;
1118 val* var_s /* var s: String */;
1119 var_l = p0;
1120 var_s = p1;
1121 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_toolcontext__ToolContext__error]))(self, var_l, var_s) /* error on <self:ToolContext>*/;
1122 ((void (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__check_errors]))(self) /* check_errors on <self:ToolContext>*/;
1123 RET_LABEL:;
1124 }
1125 /* method toolcontext#ToolContext#fatal_error for (self: Object, nullable Location, String) */
1126 void VIRTUAL_toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
1127 toolcontext__ToolContext__fatal_error(self, p0, p1);
1128 RET_LABEL:;
1129 }
1130 /* method toolcontext#ToolContext#warning for (self: ToolContext, nullable Location, String) */
1131 void toolcontext__ToolContext__warning(val* self, val* p0, val* p1) {
1132 val* var_l /* var l: nullable Location */;
1133 val* var_s /* var s: String */;
1134 val* var /* : OptionCount */;
1135 val* var1 /* : nullable Object */;
1136 long var2 /* : Int */;
1137 short int var3 /* : Bool */;
1138 short int var5 /* : Bool */;
1139 long var6 /* : Int */;
1140 val* var7 /* : Array[Message] */;
1141 val* var8 /* : Message */;
1142 long var9 /* : Int */;
1143 long var10 /* : Int */;
1144 long var11 /* : Int */;
1145 long var13 /* : Int */;
1146 val* var14 /* : OptionBool */;
1147 val* var15 /* : nullable Object */;
1148 short int var16 /* : Bool */;
1149 var_l = p0;
1150 var_s = p1;
1151 var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_warn]))(self) /* opt_warn on <self:ToolContext>*/;
1152 var1 = ((val* (*)(val*))(var->class->vft[COLOR_opts__Option__value]))(var) /* value on <var:OptionCount>*/;
1153 var2 = 0;
1154 { /* Inline kernel#Int#== (var1,var2) */
1155 var5 = (var1 != NULL) && (var1->class == &class_kernel__Int);
1156 if (var5) {
1157 var6 = ((struct instance_kernel__Int*)var1)->value; /* autounbox from nullable Object to Int */;
1158 var5 = (var6 == var2);
1159 }
1160 var3 = var5;
1161 goto RET_LABEL4;
1162 RET_LABEL4:(void)0;
1163 }
1164 if (var3){
1165 goto RET_LABEL;
1166 } else {
1167 }
1168 var7 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__messages]))(self) /* messages on <self:ToolContext>*/;
1169 var8 = NEW_toolcontext__Message(&type_toolcontext__Message);
1170 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_toolcontext__Message__init]))(var8, var_l, var_s) /* init on <var8:Message>*/;
1171 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var7, var8) /* add on <var7:Array[Message]>*/;
1172 var9 = ((long (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__warning_count]))(self) /* warning_count on <self:ToolContext>*/;
1173 var10 = 1;
1174 { /* Inline kernel#Int#+ (var9,var10) */
1175 var13 = var9 + var10;
1176 var11 = var13;
1177 goto RET_LABEL12;
1178 RET_LABEL12:(void)0;
1179 }
1180 ((void (*)(val*, long))(self->class->vft[COLOR_toolcontext__ToolContext__warning_count_61d]))(self, var11) /* warning_count= on <self:ToolContext>*/;
1181 var14 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_stop_on_first_error]))(self) /* opt_stop_on_first_error on <self:ToolContext>*/;
1182 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_opts__Option__value]))(var14) /* value on <var14:OptionBool>*/;
1183 var16 = ((struct instance_kernel__Bool*)var15)->value; /* autounbox from nullable Object to Bool */;
1184 if (var16){
1185 ((void (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__check_errors]))(self) /* check_errors on <self:ToolContext>*/;
1186 } else {
1187 }
1188 RET_LABEL:;
1189 }
1190 /* method toolcontext#ToolContext#warning for (self: Object, nullable Location, String) */
1191 void VIRTUAL_toolcontext__ToolContext__warning(val* self, val* p0, val* p1) {
1192 toolcontext__ToolContext__warning(self, p0, p1);
1193 RET_LABEL:;
1194 }
1195 /* method toolcontext#ToolContext#info for (self: ToolContext, String, Int) */
1196 void toolcontext__ToolContext__info(val* self, val* p0, long p1) {
1197 val* var_s /* var s: String */;
1198 long var_level /* var level: Int */;
1199 long var /* : Int */;
1200 short int var1 /* : Bool */;
1201 short int var3 /* : Bool */;
1202 int cltype;
1203 int idtype;
1204 const char* var_class_name;
1205 short int var4 /* : Bool */;
1206 val* var5 /* : Array[Object] */;
1207 long var6 /* : Int */;
1208 val* var7 /* : NativeArray[Object] */;
1209 val* var8 /* : String */;
1210 var_s = p0;
1211 var_level = p1;
1212 var = ((long (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__verbose_level]))(self) /* verbose_level on <self:ToolContext>*/;
1213 { /* Inline kernel#Int#<= (var_level,var) */
1214 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
1215 /* <var:Int> isa OTHER */
1216 var3 = 1; /* easy <var:Int> isa OTHER*/
1217 if (!var3) {
1218 var_class_name = type_kernel__Int.name;
1219 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1220 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
1221 show_backtrace(1);
1222 }
1223 var4 = var_level <= var;
1224 var1 = var4;
1225 goto RET_LABEL2;
1226 RET_LABEL2:(void)0;
1227 }
1228 if (var1){
1229 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1230 { /* var5 = array_instance Array[Object] */
1231 var6 = 1;
1232 var7 = NEW_array__NativeArray(var6, &type_array__NativeArraykernel__Object);
1233 ((struct instance_array__NativeArray*)var7)->values[0] = (val*) var_s;
1234 ((void (*)(val*, val*, long))(var5->class->vft[COLOR_array__Array__with_native]))(var5, var7, var6) /* with_native on <var5:Array[Object]>*/;
1235 }
1236 var8 = ((val* (*)(val*))(var5->class->vft[COLOR_string__Object__to_s]))(var5) /* to_s on <var5:Array[Object]>*/;
1237 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var8) /* print on <self:ToolContext>*/;
1238 } else {
1239 }
1240 RET_LABEL:;
1241 }
1242 /* method toolcontext#ToolContext#info for (self: Object, String, Int) */
1243 void VIRTUAL_toolcontext__ToolContext__info(val* self, val* p0, long p1) {
1244 toolcontext__ToolContext__info(self, p0, p1);
1245 RET_LABEL:;
1246 }
1247 /* method toolcontext#ToolContext#option_context for (self: ToolContext): OptionContext */
1248 val* toolcontext__ToolContext__option_context(val* self) {
1249 val* var /* : OptionContext */;
1250 val* var1 /* : OptionContext */;
1251 var1 = self->attrs[COLOR_toolcontext__ToolContext___64doption_context].val; /* @option_context on <self:ToolContext> */
1252 if (var1 == NULL) {
1253 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @option_context");
1254 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 136);
1255 show_backtrace(1);
1256 }
1257 var = var1;
1258 RET_LABEL:;
1259 return var;
1260 }
1261 /* method toolcontext#ToolContext#option_context for (self: Object): OptionContext */
1262 val* VIRTUAL_toolcontext__ToolContext__option_context(val* self) {
1263 val* var /* : OptionContext */;
1264 val* var1 /* : OptionContext */;
1265 var1 = toolcontext__ToolContext__option_context(self);
1266 var = var1;
1267 RET_LABEL:;
1268 return var;
1269 }
1270 /* method toolcontext#ToolContext#option_context= for (self: ToolContext, OptionContext) */
1271 void toolcontext__ToolContext__option_context_61d(val* self, val* p0) {
1272 self->attrs[COLOR_toolcontext__ToolContext___64doption_context].val = p0; /* @option_context on <self:ToolContext> */
1273 RET_LABEL:;
1274 }
1275 /* method toolcontext#ToolContext#option_context= for (self: Object, OptionContext) */
1276 void VIRTUAL_toolcontext__ToolContext__option_context_61d(val* self, val* p0) {
1277 toolcontext__ToolContext__option_context_61d(self, p0);
1278 RET_LABEL:;
1279 }
1280 /* method toolcontext#ToolContext#opt_warn for (self: ToolContext): OptionCount */
1281 val* toolcontext__ToolContext__opt_warn(val* self) {
1282 val* var /* : OptionCount */;
1283 val* var1 /* : OptionCount */;
1284 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_warn].val; /* @opt_warn on <self:ToolContext> */
1285 if (var1 == NULL) {
1286 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_warn");
1287 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 139);
1288 show_backtrace(1);
1289 }
1290 var = var1;
1291 RET_LABEL:;
1292 return var;
1293 }
1294 /* method toolcontext#ToolContext#opt_warn for (self: Object): OptionCount */
1295 val* VIRTUAL_toolcontext__ToolContext__opt_warn(val* self) {
1296 val* var /* : OptionCount */;
1297 val* var1 /* : OptionCount */;
1298 var1 = toolcontext__ToolContext__opt_warn(self);
1299 var = var1;
1300 RET_LABEL:;
1301 return var;
1302 }
1303 /* method toolcontext#ToolContext#opt_warn= for (self: ToolContext, OptionCount) */
1304 void toolcontext__ToolContext__opt_warn_61d(val* self, val* p0) {
1305 self->attrs[COLOR_toolcontext__ToolContext___64dopt_warn].val = p0; /* @opt_warn on <self:ToolContext> */
1306 RET_LABEL:;
1307 }
1308 /* method toolcontext#ToolContext#opt_warn= for (self: Object, OptionCount) */
1309 void VIRTUAL_toolcontext__ToolContext__opt_warn_61d(val* self, val* p0) {
1310 toolcontext__ToolContext__opt_warn_61d(self, p0);
1311 RET_LABEL:;
1312 }
1313 /* method toolcontext#ToolContext#opt_quiet for (self: ToolContext): OptionBool */
1314 val* toolcontext__ToolContext__opt_quiet(val* self) {
1315 val* var /* : OptionBool */;
1316 val* var1 /* : OptionBool */;
1317 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_quiet].val; /* @opt_quiet on <self:ToolContext> */
1318 if (var1 == NULL) {
1319 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_quiet");
1320 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 142);
1321 show_backtrace(1);
1322 }
1323 var = var1;
1324 RET_LABEL:;
1325 return var;
1326 }
1327 /* method toolcontext#ToolContext#opt_quiet for (self: Object): OptionBool */
1328 val* VIRTUAL_toolcontext__ToolContext__opt_quiet(val* self) {
1329 val* var /* : OptionBool */;
1330 val* var1 /* : OptionBool */;
1331 var1 = toolcontext__ToolContext__opt_quiet(self);
1332 var = var1;
1333 RET_LABEL:;
1334 return var;
1335 }
1336 /* method toolcontext#ToolContext#opt_quiet= for (self: ToolContext, OptionBool) */
1337 void toolcontext__ToolContext__opt_quiet_61d(val* self, val* p0) {
1338 self->attrs[COLOR_toolcontext__ToolContext___64dopt_quiet].val = p0; /* @opt_quiet on <self:ToolContext> */
1339 RET_LABEL:;
1340 }
1341 /* method toolcontext#ToolContext#opt_quiet= for (self: Object, OptionBool) */
1342 void VIRTUAL_toolcontext__ToolContext__opt_quiet_61d(val* self, val* p0) {
1343 toolcontext__ToolContext__opt_quiet_61d(self, p0);
1344 RET_LABEL:;
1345 }
1346 /* method toolcontext#ToolContext#opt_log for (self: ToolContext): OptionBool */
1347 val* toolcontext__ToolContext__opt_log(val* self) {
1348 val* var /* : OptionBool */;
1349 val* var1 /* : OptionBool */;
1350 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_log].val; /* @opt_log on <self:ToolContext> */
1351 if (var1 == NULL) {
1352 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_log");
1353 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 145);
1354 show_backtrace(1);
1355 }
1356 var = var1;
1357 RET_LABEL:;
1358 return var;
1359 }
1360 /* method toolcontext#ToolContext#opt_log for (self: Object): OptionBool */
1361 val* VIRTUAL_toolcontext__ToolContext__opt_log(val* self) {
1362 val* var /* : OptionBool */;
1363 val* var1 /* : OptionBool */;
1364 var1 = toolcontext__ToolContext__opt_log(self);
1365 var = var1;
1366 RET_LABEL:;
1367 return var;
1368 }
1369 /* method toolcontext#ToolContext#opt_log= for (self: ToolContext, OptionBool) */
1370 void toolcontext__ToolContext__opt_log_61d(val* self, val* p0) {
1371 self->attrs[COLOR_toolcontext__ToolContext___64dopt_log].val = p0; /* @opt_log on <self:ToolContext> */
1372 RET_LABEL:;
1373 }
1374 /* method toolcontext#ToolContext#opt_log= for (self: Object, OptionBool) */
1375 void VIRTUAL_toolcontext__ToolContext__opt_log_61d(val* self, val* p0) {
1376 toolcontext__ToolContext__opt_log_61d(self, p0);
1377 RET_LABEL:;
1378 }
1379 /* method toolcontext#ToolContext#opt_log_dir for (self: ToolContext): OptionString */
1380 val* toolcontext__ToolContext__opt_log_dir(val* self) {
1381 val* var /* : OptionString */;
1382 val* var1 /* : OptionString */;
1383 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_log_dir].val; /* @opt_log_dir on <self:ToolContext> */
1384 if (var1 == NULL) {
1385 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_log_dir");
1386 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 148);
1387 show_backtrace(1);
1388 }
1389 var = var1;
1390 RET_LABEL:;
1391 return var;
1392 }
1393 /* method toolcontext#ToolContext#opt_log_dir for (self: Object): OptionString */
1394 val* VIRTUAL_toolcontext__ToolContext__opt_log_dir(val* self) {
1395 val* var /* : OptionString */;
1396 val* var1 /* : OptionString */;
1397 var1 = toolcontext__ToolContext__opt_log_dir(self);
1398 var = var1;
1399 RET_LABEL:;
1400 return var;
1401 }
1402 /* method toolcontext#ToolContext#opt_log_dir= for (self: ToolContext, OptionString) */
1403 void toolcontext__ToolContext__opt_log_dir_61d(val* self, val* p0) {
1404 self->attrs[COLOR_toolcontext__ToolContext___64dopt_log_dir].val = p0; /* @opt_log_dir on <self:ToolContext> */
1405 RET_LABEL:;
1406 }
1407 /* method toolcontext#ToolContext#opt_log_dir= for (self: Object, OptionString) */
1408 void VIRTUAL_toolcontext__ToolContext__opt_log_dir_61d(val* self, val* p0) {
1409 toolcontext__ToolContext__opt_log_dir_61d(self, p0);
1410 RET_LABEL:;
1411 }
1412 /* method toolcontext#ToolContext#opt_help for (self: ToolContext): OptionBool */
1413 val* toolcontext__ToolContext__opt_help(val* self) {
1414 val* var /* : OptionBool */;
1415 val* var1 /* : OptionBool */;
1416 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_help].val; /* @opt_help on <self:ToolContext> */
1417 if (var1 == NULL) {
1418 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_help");
1419 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 151);
1420 show_backtrace(1);
1421 }
1422 var = var1;
1423 RET_LABEL:;
1424 return var;
1425 }
1426 /* method toolcontext#ToolContext#opt_help for (self: Object): OptionBool */
1427 val* VIRTUAL_toolcontext__ToolContext__opt_help(val* self) {
1428 val* var /* : OptionBool */;
1429 val* var1 /* : OptionBool */;
1430 var1 = toolcontext__ToolContext__opt_help(self);
1431 var = var1;
1432 RET_LABEL:;
1433 return var;
1434 }
1435 /* method toolcontext#ToolContext#opt_help= for (self: ToolContext, OptionBool) */
1436 void toolcontext__ToolContext__opt_help_61d(val* self, val* p0) {
1437 self->attrs[COLOR_toolcontext__ToolContext___64dopt_help].val = p0; /* @opt_help on <self:ToolContext> */
1438 RET_LABEL:;
1439 }
1440 /* method toolcontext#ToolContext#opt_help= for (self: Object, OptionBool) */
1441 void VIRTUAL_toolcontext__ToolContext__opt_help_61d(val* self, val* p0) {
1442 toolcontext__ToolContext__opt_help_61d(self, p0);
1443 RET_LABEL:;
1444 }
1445 /* method toolcontext#ToolContext#opt_version for (self: ToolContext): OptionBool */
1446 val* toolcontext__ToolContext__opt_version(val* self) {
1447 val* var /* : OptionBool */;
1448 val* var1 /* : OptionBool */;
1449 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_version].val; /* @opt_version on <self:ToolContext> */
1450 if (var1 == NULL) {
1451 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_version");
1452 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 154);
1453 show_backtrace(1);
1454 }
1455 var = var1;
1456 RET_LABEL:;
1457 return var;
1458 }
1459 /* method toolcontext#ToolContext#opt_version for (self: Object): OptionBool */
1460 val* VIRTUAL_toolcontext__ToolContext__opt_version(val* self) {
1461 val* var /* : OptionBool */;
1462 val* var1 /* : OptionBool */;
1463 var1 = toolcontext__ToolContext__opt_version(self);
1464 var = var1;
1465 RET_LABEL:;
1466 return var;
1467 }
1468 /* method toolcontext#ToolContext#opt_version= for (self: ToolContext, OptionBool) */
1469 void toolcontext__ToolContext__opt_version_61d(val* self, val* p0) {
1470 self->attrs[COLOR_toolcontext__ToolContext___64dopt_version].val = p0; /* @opt_version on <self:ToolContext> */
1471 RET_LABEL:;
1472 }
1473 /* method toolcontext#ToolContext#opt_version= for (self: Object, OptionBool) */
1474 void VIRTUAL_toolcontext__ToolContext__opt_version_61d(val* self, val* p0) {
1475 toolcontext__ToolContext__opt_version_61d(self, p0);
1476 RET_LABEL:;
1477 }
1478 /* method toolcontext#ToolContext#opt_verbose for (self: ToolContext): OptionCount */
1479 val* toolcontext__ToolContext__opt_verbose(val* self) {
1480 val* var /* : OptionCount */;
1481 val* var1 /* : OptionCount */;
1482 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_verbose].val; /* @opt_verbose on <self:ToolContext> */
1483 if (var1 == NULL) {
1484 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_verbose");
1485 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 157);
1486 show_backtrace(1);
1487 }
1488 var = var1;
1489 RET_LABEL:;
1490 return var;
1491 }
1492 /* method toolcontext#ToolContext#opt_verbose for (self: Object): OptionCount */
1493 val* VIRTUAL_toolcontext__ToolContext__opt_verbose(val* self) {
1494 val* var /* : OptionCount */;
1495 val* var1 /* : OptionCount */;
1496 var1 = toolcontext__ToolContext__opt_verbose(self);
1497 var = var1;
1498 RET_LABEL:;
1499 return var;
1500 }
1501 /* method toolcontext#ToolContext#opt_verbose= for (self: ToolContext, OptionCount) */
1502 void toolcontext__ToolContext__opt_verbose_61d(val* self, val* p0) {
1503 self->attrs[COLOR_toolcontext__ToolContext___64dopt_verbose].val = p0; /* @opt_verbose on <self:ToolContext> */
1504 RET_LABEL:;
1505 }
1506 /* method toolcontext#ToolContext#opt_verbose= for (self: Object, OptionCount) */
1507 void VIRTUAL_toolcontext__ToolContext__opt_verbose_61d(val* self, val* p0) {
1508 toolcontext__ToolContext__opt_verbose_61d(self, p0);
1509 RET_LABEL:;
1510 }
1511 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: ToolContext): OptionBool */
1512 val* toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
1513 val* var /* : OptionBool */;
1514 val* var1 /* : OptionBool */;
1515 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_stop_on_first_error].val; /* @opt_stop_on_first_error on <self:ToolContext> */
1516 if (var1 == NULL) {
1517 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_stop_on_first_error");
1518 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 160);
1519 show_backtrace(1);
1520 }
1521 var = var1;
1522 RET_LABEL:;
1523 return var;
1524 }
1525 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: Object): OptionBool */
1526 val* VIRTUAL_toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
1527 val* var /* : OptionBool */;
1528 val* var1 /* : OptionBool */;
1529 var1 = toolcontext__ToolContext__opt_stop_on_first_error(self);
1530 var = var1;
1531 RET_LABEL:;
1532 return var;
1533 }
1534 /* method toolcontext#ToolContext#opt_stop_on_first_error= for (self: ToolContext, OptionBool) */
1535 void toolcontext__ToolContext__opt_stop_on_first_error_61d(val* self, val* p0) {
1536 self->attrs[COLOR_toolcontext__ToolContext___64dopt_stop_on_first_error].val = p0; /* @opt_stop_on_first_error on <self:ToolContext> */
1537 RET_LABEL:;
1538 }
1539 /* method toolcontext#ToolContext#opt_stop_on_first_error= for (self: Object, OptionBool) */
1540 void VIRTUAL_toolcontext__ToolContext__opt_stop_on_first_error_61d(val* self, val* p0) {
1541 toolcontext__ToolContext__opt_stop_on_first_error_61d(self, p0);
1542 RET_LABEL:;
1543 }
1544 /* method toolcontext#ToolContext#opt_no_color for (self: ToolContext): OptionBool */
1545 val* toolcontext__ToolContext__opt_no_color(val* self) {
1546 val* var /* : OptionBool */;
1547 val* var1 /* : OptionBool */;
1548 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dopt_no_color].val; /* @opt_no_color on <self:ToolContext> */
1549 if (var1 == NULL) {
1550 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_no_color");
1551 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 163);
1552 show_backtrace(1);
1553 }
1554 var = var1;
1555 RET_LABEL:;
1556 return var;
1557 }
1558 /* method toolcontext#ToolContext#opt_no_color for (self: Object): OptionBool */
1559 val* VIRTUAL_toolcontext__ToolContext__opt_no_color(val* self) {
1560 val* var /* : OptionBool */;
1561 val* var1 /* : OptionBool */;
1562 var1 = toolcontext__ToolContext__opt_no_color(self);
1563 var = var1;
1564 RET_LABEL:;
1565 return var;
1566 }
1567 /* method toolcontext#ToolContext#opt_no_color= for (self: ToolContext, OptionBool) */
1568 void toolcontext__ToolContext__opt_no_color_61d(val* self, val* p0) {
1569 self->attrs[COLOR_toolcontext__ToolContext___64dopt_no_color].val = p0; /* @opt_no_color on <self:ToolContext> */
1570 RET_LABEL:;
1571 }
1572 /* method toolcontext#ToolContext#opt_no_color= for (self: Object, OptionBool) */
1573 void VIRTUAL_toolcontext__ToolContext__opt_no_color_61d(val* self, val* p0) {
1574 toolcontext__ToolContext__opt_no_color_61d(self, p0);
1575 RET_LABEL:;
1576 }
1577 /* method toolcontext#ToolContext#verbose_level for (self: ToolContext): Int */
1578 long toolcontext__ToolContext__verbose_level(val* self) {
1579 long var /* : Int */;
1580 long var1 /* : Int */;
1581 var1 = self->attrs[COLOR_toolcontext__ToolContext___64dverbose_level].l; /* @verbose_level on <self:ToolContext> */
1582 var = var1;
1583 RET_LABEL:;
1584 return var;
1585 }
1586 /* method toolcontext#ToolContext#verbose_level for (self: Object): Int */
1587 long VIRTUAL_toolcontext__ToolContext__verbose_level(val* self) {
1588 long var /* : Int */;
1589 long var1 /* : Int */;
1590 var1 = toolcontext__ToolContext__verbose_level(self);
1591 var = var1;
1592 RET_LABEL:;
1593 return var;
1594 }
1595 /* method toolcontext#ToolContext#verbose_level= for (self: ToolContext, Int) */
1596 void toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
1597 self->attrs[COLOR_toolcontext__ToolContext___64dverbose_level].l = p0; /* @verbose_level on <self:ToolContext> */
1598 RET_LABEL:;
1599 }
1600 /* method toolcontext#ToolContext#verbose_level= for (self: Object, Int) */
1601 void VIRTUAL_toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
1602 toolcontext__ToolContext__verbose_level_61d(self, p0);
1603 RET_LABEL:;
1604 }
1605 /* method toolcontext#ToolContext#init for (self: ToolContext) */
1606 void toolcontext__ToolContext__init(val* self) {
1607 val* var /* : OptionContext */;
1608 val* var1 /* : OptionCount */;
1609 val* var2 /* : OptionBool */;
1610 val* var3 /* : OptionBool */;
1611 val* var4 /* : OptionBool */;
1612 val* var5 /* : OptionBool */;
1613 val* var6 /* : OptionString */;
1614 val* var7 /* : OptionBool */;
1615 val* var8 /* : OptionBool */;
1616 val* var9 /* : OptionCount */;
1617 val* var10 /* : Array[Option] */;
1618 long var11 /* : Int */;
1619 val* var12 /* : NativeArray[Option] */;
1620 var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__option_context]))(self) /* option_context on <self:ToolContext>*/;
1621 var1 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_warn]))(self) /* opt_warn on <self:ToolContext>*/;
1622 var2 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_quiet]))(self) /* opt_quiet on <self:ToolContext>*/;
1623 var3 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_stop_on_first_error]))(self) /* opt_stop_on_first_error on <self:ToolContext>*/;
1624 var4 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_no_color]))(self) /* opt_no_color on <self:ToolContext>*/;
1625 var5 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_log]))(self) /* opt_log on <self:ToolContext>*/;
1626 var6 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_log_dir]))(self) /* opt_log_dir on <self:ToolContext>*/;
1627 var7 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_help]))(self) /* opt_help on <self:ToolContext>*/;
1628 var8 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_version]))(self) /* opt_version on <self:ToolContext>*/;
1629 var9 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_verbose]))(self) /* opt_verbose on <self:ToolContext>*/;
1630 var10 = NEW_array__Array(&type_array__Arrayopts__Option);
1631 { /* var10 = array_instance Array[Option] */
1632 var11 = 9;
1633 var12 = NEW_array__NativeArray(var11, &type_array__NativeArrayopts__Option);
1634 ((struct instance_array__NativeArray*)var12)->values[0] = (val*) var1;
1635 ((struct instance_array__NativeArray*)var12)->values[1] = (val*) var2;
1636 ((struct instance_array__NativeArray*)var12)->values[2] = (val*) var3;
1637 ((struct instance_array__NativeArray*)var12)->values[3] = (val*) var4;
1638 ((struct instance_array__NativeArray*)var12)->values[4] = (val*) var5;
1639 ((struct instance_array__NativeArray*)var12)->values[5] = (val*) var6;
1640 ((struct instance_array__NativeArray*)var12)->values[6] = (val*) var7;
1641 ((struct instance_array__NativeArray*)var12)->values[7] = (val*) var8;
1642 ((struct instance_array__NativeArray*)var12)->values[8] = (val*) var9;
1643 ((void (*)(val*, val*, long))(var10->class->vft[COLOR_array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Option]>*/;
1644 }
1645 ((void (*)(val*, val*))(var->class->vft[COLOR_opts__OptionContext__add_option]))(var, var10) /* add_option on <var:OptionContext>*/;
1646 RET_LABEL:;
1647 }
1648 /* method toolcontext#ToolContext#init for (self: Object) */
1649 void VIRTUAL_toolcontext__ToolContext__init(val* self) {
1650 toolcontext__ToolContext__init(self);
1651 RET_LABEL:;
1652 }
1653 /* method toolcontext#ToolContext#process_options for (self: ToolContext) */
1654 void toolcontext__ToolContext__process_options(val* self) {
1655 val* var /* : OptionCount */;
1656 long var1 /* : Int */;
1657 val* var2 /* : nullable Object */;
1658 val* var3 /* : OptionContext */;
1659 val* var4 /* : Sequence[String] */;
1660 val* var5 /* : OptionCount */;
1661 val* var6 /* : nullable Object */;
1662 long var7 /* : Int */;
1663 val* var8 /* : OptionBool */;
1664 val* var9 /* : nullable Object */;
1665 short int var10 /* : Bool */;
1666 val* var11 /* : OptionCount */;
1667 long var12 /* : Int */;
1668 val* var13 /* : nullable Object */;
1669 val* var14 /* : OptionString */;
1670 val* var15 /* : nullable Object */;
1671 val* var16 /* : null */;
1672 short int var17 /* : Bool */;
1673 val* var18 /* : OptionString */;
1674 val* var19 /* : nullable Object */;
1675 val* var20 /* : OptionBool */;
1676 val* var21 /* : nullable Object */;
1677 short int var22 /* : Bool */;
1678 val* var23 /* : String */;
1679 var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_warn]))(self) /* opt_warn on <self:ToolContext>*/;
1680 var1 = 1;
1681 var2 = BOX_kernel__Int(var1); /* autobox from Int to nullable Object */
1682 ((void (*)(val*, val*))(var->class->vft[COLOR_opts__Option__value_61d]))(var, var2) /* value= on <var:OptionCount>*/;
1683 var3 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__option_context]))(self) /* option_context on <self:ToolContext>*/;
1684 var4 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__args]))(self) /* args on <self:ToolContext>*/;
1685 ((void (*)(val*, val*))(var3->class->vft[COLOR_opts__OptionContext__parse]))(var3, var4) /* parse on <var3:OptionContext>*/;
1686 var5 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_verbose]))(self) /* opt_verbose on <self:ToolContext>*/;
1687 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_opts__Option__value]))(var5) /* value on <var5:OptionCount>*/;
1688 var7 = ((struct instance_kernel__Int*)var6)->value; /* autounbox from nullable Object to Int */;
1689 ((void (*)(val*, long))(self->class->vft[COLOR_toolcontext__ToolContext__verbose_level_61d]))(self, var7) /* verbose_level= on <self:ToolContext>*/;
1690 var8 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_quiet]))(self) /* opt_quiet on <self:ToolContext>*/;
1691 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_opts__Option__value]))(var8) /* value on <var8:OptionBool>*/;
1692 var10 = ((struct instance_kernel__Bool*)var9)->value; /* autounbox from nullable Object to Bool */;
1693 if (var10){
1694 var11 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_warn]))(self) /* opt_warn on <self:ToolContext>*/;
1695 var12 = 0;
1696 var13 = BOX_kernel__Int(var12); /* autobox from Int to nullable Object */
1697 ((void (*)(val*, val*))(var11->class->vft[COLOR_opts__Option__value_61d]))(var11, var13) /* value= on <var11:OptionCount>*/;
1698 } else {
1699 }
1700 var14 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_log_dir]))(self) /* opt_log_dir on <self:ToolContext>*/;
1701 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_opts__Option__value]))(var14) /* value on <var14:OptionString>*/;
1702 var16 = NULL;
1703 if (var15 == NULL) {
1704 var17 = 0; /* is null */
1705 } else {
1706 var17 = 1; /* arg is null and recv is not */
1707 }
1708 if (var17){
1709 var18 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_log_dir]))(self) /* opt_log_dir on <self:ToolContext>*/;
1710 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_opts__Option__value]))(var18) /* value on <var18:OptionString>*/;
1711 if (var19 == NULL) {
1712 fprintf(stderr, "Runtime error: %s", "Cast failed");
1713 fprintf(stderr, " (%s:%d)\n", "src/toolcontext.nit", 187);
1714 show_backtrace(1);
1715 }
1716 ((void (*)(val*, val*))(self->class->vft[COLOR_toolcontext__ToolContext__log_directory_61d]))(self, var19) /* log_directory= on <self:ToolContext>*/;
1717 } else {
1718 }
1719 var20 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__opt_log]))(self) /* opt_log on <self:ToolContext>*/;
1720 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_opts__Option__value]))(var20) /* value on <var20:OptionBool>*/;
1721 var22 = ((struct instance_kernel__Bool*)var21)->value; /* autounbox from nullable Object to Bool */;
1722 if (var22){
1723 var23 = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__log_directory]))(self) /* log_directory on <self:ToolContext>*/;
1724 ((void (*)(val*))(var23->class->vft[COLOR_file__String__mkdir]))(var23) /* mkdir on <var23:String>*/;
1725 } else {
1726 }
1727 RET_LABEL:;
1728 }
1729 /* method toolcontext#ToolContext#process_options for (self: Object) */
1730 void VIRTUAL_toolcontext__ToolContext__process_options(val* self) {
1731 toolcontext__ToolContext__process_options(self);
1732 RET_LABEL:;
1733 }