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