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