neo: Correct the documentation of neo.nit according to PR #734.
[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___location].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 val* var3 /* : nullable Location */;
16 { /* Inline toolcontext#Message#location (self) on <self:Object(Message)> */
17 var3 = self->attrs[COLOR_toolcontext__Message___location].val; /* _location on <self:Object(Message)> */
18 var1 = var3;
19 RET_LABEL2:(void)0;
20 }
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method toolcontext#Message#text for (self: Message): String */
26 val* toolcontext__Message__text(val* self) {
27 val* var /* : String */;
28 val* var1 /* : String */;
29 var1 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
30 if (unlikely(var1 == NULL)) {
31 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
32 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
33 show_backtrace(1);
34 }
35 var = var1;
36 RET_LABEL:;
37 return var;
38 }
39 /* method toolcontext#Message#text for (self: Object): String */
40 val* VIRTUAL_toolcontext__Message__text(val* self) {
41 val* var /* : String */;
42 val* var1 /* : String */;
43 val* var3 /* : String */;
44 { /* Inline toolcontext#Message#text (self) on <self:Object(Message)> */
45 var3 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Object(Message)> */
46 if (unlikely(var3 == NULL)) {
47 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
48 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
49 show_backtrace(1);
50 }
51 var1 = var3;
52 RET_LABEL2:(void)0;
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method toolcontext#Message#< for (self: Message, Message): Bool */
59 short int toolcontext__Message___60d(val* self, val* p0) {
60 short int var /* : Bool */;
61 short int var1 /* : Bool */;
62 int cltype;
63 int idtype;
64 const struct type* type_struct;
65 const char* var_class_name;
66 val* var_other /* var other: Message */;
67 val* var2 /* : nullable Location */;
68 val* var4 /* : nullable Location */;
69 val* var5 /* : null */;
70 short int var6 /* : Bool */;
71 short int var7 /* : Bool */;
72 short int var8 /* : Bool */;
73 val* var9 /* : nullable Location */;
74 val* var11 /* : nullable Location */;
75 val* var12 /* : null */;
76 short int var13 /* : Bool */;
77 short int var14 /* : Bool */;
78 short int var15 /* : Bool */;
79 val* var16 /* : nullable Location */;
80 val* var18 /* : nullable Location */;
81 val* var19 /* : nullable Location */;
82 val* var21 /* : nullable Location */;
83 short int var22 /* : Bool */;
84 /* Covariant cast for argument 0 (other) <p0:Message> isa OTHER */
85 /* <p0:Message> isa OTHER */
86 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
87 cltype = type_struct->color;
88 idtype = type_struct->id;
89 if(cltype >= p0->type->table_size) {
90 var1 = 0;
91 } else {
92 var1 = p0->type->type_table[cltype] == idtype;
93 }
94 if (unlikely(!var1)) {
95 var_class_name = p0 == NULL ? "null" : p0->type->name;
96 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
97 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 35);
98 show_backtrace(1);
99 }
100 var_other = p0;
101 {
102 { /* Inline toolcontext#Message#location (self) on <self:Message> */
103 var4 = self->attrs[COLOR_toolcontext__Message___location].val; /* _location on <self:Message> */
104 var2 = var4;
105 RET_LABEL3:(void)0;
106 }
107 }
108 var5 = NULL;
109 if (var2 == NULL) {
110 var6 = 1; /* is null */
111 } else {
112 var6 = 0; /* arg is null but recv is not */
113 }
114 if (0) {
115 var7 = location__Location___61d_61d(var2, var5);
116 var6 = var7;
117 }
118 if (var6){
119 var8 = 1;
120 var = var8;
121 goto RET_LABEL;
122 } else {
123 }
124 {
125 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
126 var11 = var_other->attrs[COLOR_toolcontext__Message___location].val; /* _location on <var_other:Message> */
127 var9 = var11;
128 RET_LABEL10:(void)0;
129 }
130 }
131 var12 = NULL;
132 if (var9 == NULL) {
133 var13 = 1; /* is null */
134 } else {
135 var13 = 0; /* arg is null but recv is not */
136 }
137 if (0) {
138 var14 = location__Location___61d_61d(var9, var12);
139 var13 = var14;
140 }
141 if (var13){
142 var15 = 0;
143 var = var15;
144 goto RET_LABEL;
145 } else {
146 }
147 {
148 { /* Inline toolcontext#Message#location (self) on <self:Message> */
149 var18 = self->attrs[COLOR_toolcontext__Message___location].val; /* _location on <self:Message> */
150 var16 = var18;
151 RET_LABEL17:(void)0;
152 }
153 }
154 if (unlikely(var16 == NULL)) {
155 PRINT_ERROR("Runtime error: %s", "Cast failed");
156 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 40);
157 show_backtrace(1);
158 }
159 {
160 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
161 var21 = var_other->attrs[COLOR_toolcontext__Message___location].val; /* _location on <var_other:Message> */
162 var19 = var21;
163 RET_LABEL20:(void)0;
164 }
165 }
166 if (unlikely(var19 == NULL)) {
167 PRINT_ERROR("Runtime error: %s", "Cast failed");
168 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 40);
169 show_backtrace(1);
170 }
171 {
172 var22 = location__Location___60d(var16, var19);
173 }
174 var = var22;
175 goto RET_LABEL;
176 RET_LABEL:;
177 return var;
178 }
179 /* method toolcontext#Message#< for (self: Object, Comparable): Bool */
180 short int VIRTUAL_toolcontext__Message___60d(val* self, val* p0) {
181 short int var /* : Bool */;
182 short int var1 /* : Bool */;
183 var1 = toolcontext__Message___60d(self, p0);
184 var = var1;
185 RET_LABEL:;
186 return var;
187 }
188 /* method toolcontext#Message#to_s for (self: Message): String */
189 val* toolcontext__Message__to_s(val* self) {
190 val* var /* : String */;
191 val* var1 /* : nullable Location */;
192 val* var3 /* : nullable Location */;
193 val* var_l /* var l: nullable Location */;
194 val* var4 /* : null */;
195 short int var5 /* : Bool */;
196 short int var6 /* : Bool */;
197 val* var7 /* : String */;
198 val* var9 /* : String */;
199 static val* varonce;
200 val* var10 /* : String */;
201 char* var11 /* : NativeString */;
202 long var12 /* : Int */;
203 val* var13 /* : FlatString */;
204 val* var14 /* : String */;
205 val* var16 /* : String */;
206 val* var17 /* : Array[Object] */;
207 long var18 /* : Int */;
208 val* var19 /* : NativeArray[Object] */;
209 val* var20 /* : String */;
210 {
211 { /* Inline toolcontext#Message#location (self) on <self:Message> */
212 var3 = self->attrs[COLOR_toolcontext__Message___location].val; /* _location on <self:Message> */
213 var1 = var3;
214 RET_LABEL2:(void)0;
215 }
216 }
217 var_l = var1;
218 var4 = NULL;
219 if (var_l == NULL) {
220 var5 = 1; /* is null */
221 } else {
222 var5 = 0; /* arg is null but recv is not */
223 }
224 if (0) {
225 var6 = location__Location___61d_61d(var_l, var4);
226 var5 = var6;
227 }
228 if (var5){
229 {
230 { /* Inline toolcontext#Message#text (self) on <self:Message> */
231 var9 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
232 if (unlikely(var9 == NULL)) {
233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
234 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
235 show_backtrace(1);
236 }
237 var7 = var9;
238 RET_LABEL8:(void)0;
239 }
240 }
241 var = var7;
242 goto RET_LABEL;
243 } else {
244 if (varonce) {
245 var10 = varonce;
246 } else {
247 var11 = ": ";
248 var12 = 2;
249 var13 = string__NativeString__to_s_with_length(var11, var12);
250 var10 = var13;
251 varonce = var10;
252 }
253 {
254 { /* Inline toolcontext#Message#text (self) on <self:Message> */
255 var16 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
256 if (unlikely(var16 == NULL)) {
257 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
258 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
259 show_backtrace(1);
260 }
261 var14 = var16;
262 RET_LABEL15:(void)0;
263 }
264 }
265 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
266 { /* var17 = array_instance Array[Object] */
267 var18 = 3;
268 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
269 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var_l;
270 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var10;
271 ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var14;
272 {
273 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
274 }
275 }
276 {
277 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
278 }
279 var = var20;
280 goto RET_LABEL;
281 }
282 RET_LABEL:;
283 return var;
284 }
285 /* method toolcontext#Message#to_s for (self: Object): String */
286 val* VIRTUAL_toolcontext__Message__to_s(val* self) {
287 val* var /* : String */;
288 val* var1 /* : String */;
289 var1 = toolcontext__Message__to_s(self);
290 var = var1;
291 RET_LABEL:;
292 return var;
293 }
294 /* method toolcontext#Message#to_color_string for (self: Message): String */
295 val* toolcontext__Message__to_color_string(val* self) {
296 val* var /* : String */;
297 long var1 /* : Int */;
298 char var2 /* : Char */;
299 char var4 /* : Char */;
300 char var_esc /* var esc: Char */;
301 static val* varonce;
302 val* var5 /* : String */;
303 char* var6 /* : NativeString */;
304 long var7 /* : Int */;
305 val* var8 /* : FlatString */;
306 val* var9 /* : Array[Object] */;
307 long var10 /* : Int */;
308 val* var11 /* : NativeArray[Object] */;
309 val* var12 /* : Object */;
310 val* var13 /* : String */;
311 val* var_red /* var red: String */;
312 static val* varonce14;
313 val* var15 /* : String */;
314 char* var16 /* : NativeString */;
315 long var17 /* : Int */;
316 val* var18 /* : FlatString */;
317 val* var19 /* : Array[Object] */;
318 long var20 /* : Int */;
319 val* var21 /* : NativeArray[Object] */;
320 val* var22 /* : Object */;
321 val* var23 /* : String */;
322 val* var_bred /* var bred: String */;
323 static val* varonce24;
324 val* var25 /* : String */;
325 char* var26 /* : NativeString */;
326 long var27 /* : Int */;
327 val* var28 /* : FlatString */;
328 val* var29 /* : Array[Object] */;
329 long var30 /* : Int */;
330 val* var31 /* : NativeArray[Object] */;
331 val* var32 /* : Object */;
332 val* var33 /* : String */;
333 val* var_green /* var green: String */;
334 static val* varonce34;
335 val* var35 /* : String */;
336 char* var36 /* : NativeString */;
337 long var37 /* : Int */;
338 val* var38 /* : FlatString */;
339 val* var39 /* : Array[Object] */;
340 long var40 /* : Int */;
341 val* var41 /* : NativeArray[Object] */;
342 val* var42 /* : Object */;
343 val* var43 /* : String */;
344 val* var_yellow /* var yellow: String */;
345 static val* varonce44;
346 val* var45 /* : String */;
347 char* var46 /* : NativeString */;
348 long var47 /* : Int */;
349 val* var48 /* : FlatString */;
350 val* var49 /* : Array[Object] */;
351 long var50 /* : Int */;
352 val* var51 /* : NativeArray[Object] */;
353 val* var52 /* : Object */;
354 val* var53 /* : String */;
355 val* var_def /* var def: String */;
356 val* var54 /* : nullable Location */;
357 val* var56 /* : nullable Location */;
358 val* var_l /* var l: nullable Location */;
359 val* var57 /* : null */;
360 short int var58 /* : Bool */;
361 short int var59 /* : Bool */;
362 val* var60 /* : String */;
363 val* var62 /* : String */;
364 val* var63 /* : nullable SourceFile */;
365 val* var65 /* : nullable SourceFile */;
366 val* var66 /* : null */;
367 short int var67 /* : Bool */;
368 short int var68 /* : Bool */;
369 val* var_other /* var other: nullable Object */;
370 short int var70 /* : Bool */;
371 short int var72 /* : Bool */;
372 static val* varonce73;
373 val* var74 /* : String */;
374 char* var75 /* : NativeString */;
375 long var76 /* : Int */;
376 val* var77 /* : FlatString */;
377 val* var78 /* : String */;
378 val* var80 /* : String */;
379 val* var81 /* : Array[Object] */;
380 long var82 /* : Int */;
381 val* var83 /* : NativeArray[Object] */;
382 val* var84 /* : String */;
383 static val* varonce85;
384 val* var86 /* : String */;
385 char* var87 /* : NativeString */;
386 long var88 /* : Int */;
387 val* var89 /* : FlatString */;
388 val* var90 /* : String */;
389 val* var92 /* : String */;
390 static val* varonce93;
391 val* var94 /* : String */;
392 char* var95 /* : NativeString */;
393 long var96 /* : Int */;
394 val* var97 /* : FlatString */;
395 static val* varonce98;
396 val* var99 /* : String */;
397 char* var100 /* : NativeString */;
398 long var101 /* : Int */;
399 val* var102 /* : FlatString */;
400 val* var103 /* : String */;
401 val* var104 /* : Array[Object] */;
402 long var105 /* : Int */;
403 val* var106 /* : NativeArray[Object] */;
404 val* var107 /* : String */;
405 var1 = 27;
406 {
407 { /* Inline kernel#Int#ascii (var1) on <var1:Int> */
408 var4 = var1;
409 var2 = var4;
410 goto RET_LABEL3;
411 RET_LABEL3:(void)0;
412 }
413 }
414 var_esc = var2;
415 if (varonce) {
416 var5 = varonce;
417 } else {
418 var6 = "[0;31m";
419 var7 = 6;
420 var8 = string__NativeString__to_s_with_length(var6, var7);
421 var5 = var8;
422 varonce = var5;
423 }
424 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
425 { /* var9 = array_instance Array[Object] */
426 var10 = 2;
427 var11 = NEW_array__NativeArray(var10, &type_array__NativeArraykernel__Object);
428 var12 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
429 ((struct instance_array__NativeArray*)var11)->values[0] = (val*) var12;
430 ((struct instance_array__NativeArray*)var11)->values[1] = (val*) var5;
431 {
432 ((void (*)(val*, val*, long))(var9->class->vft[COLOR_array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[Object]>*/;
433 }
434 }
435 {
436 var13 = ((val* (*)(val*))(var9->class->vft[COLOR_string__Object__to_s]))(var9) /* to_s on <var9:Array[Object]>*/;
437 }
438 var_red = var13;
439 if (varonce14) {
440 var15 = varonce14;
441 } else {
442 var16 = "[1;31m";
443 var17 = 6;
444 var18 = string__NativeString__to_s_with_length(var16, var17);
445 var15 = var18;
446 varonce14 = var15;
447 }
448 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
449 { /* var19 = array_instance Array[Object] */
450 var20 = 2;
451 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
452 var22 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
453 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var22;
454 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var15;
455 {
456 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
457 }
458 }
459 {
460 var23 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
461 }
462 var_bred = var23;
463 if (varonce24) {
464 var25 = varonce24;
465 } else {
466 var26 = "[0;32m";
467 var27 = 6;
468 var28 = string__NativeString__to_s_with_length(var26, var27);
469 var25 = var28;
470 varonce24 = var25;
471 }
472 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
473 { /* var29 = array_instance Array[Object] */
474 var30 = 2;
475 var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object);
476 var32 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
477 ((struct instance_array__NativeArray*)var31)->values[0] = (val*) var32;
478 ((struct instance_array__NativeArray*)var31)->values[1] = (val*) var25;
479 {
480 ((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on <var29:Array[Object]>*/;
481 }
482 }
483 {
484 var33 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on <var29:Array[Object]>*/;
485 }
486 var_green = var33;
487 if (varonce34) {
488 var35 = varonce34;
489 } else {
490 var36 = "[0;33m";
491 var37 = 6;
492 var38 = string__NativeString__to_s_with_length(var36, var37);
493 var35 = var38;
494 varonce34 = var35;
495 }
496 var39 = NEW_array__Array(&type_array__Arraykernel__Object);
497 { /* var39 = array_instance Array[Object] */
498 var40 = 2;
499 var41 = NEW_array__NativeArray(var40, &type_array__NativeArraykernel__Object);
500 var42 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
501 ((struct instance_array__NativeArray*)var41)->values[0] = (val*) var42;
502 ((struct instance_array__NativeArray*)var41)->values[1] = (val*) var35;
503 {
504 ((void (*)(val*, val*, long))(var39->class->vft[COLOR_array__Array__with_native]))(var39, var41, var40) /* with_native on <var39:Array[Object]>*/;
505 }
506 }
507 {
508 var43 = ((val* (*)(val*))(var39->class->vft[COLOR_string__Object__to_s]))(var39) /* to_s on <var39:Array[Object]>*/;
509 }
510 var_yellow = var43;
511 if (varonce44) {
512 var45 = varonce44;
513 } else {
514 var46 = "[0m";
515 var47 = 3;
516 var48 = string__NativeString__to_s_with_length(var46, var47);
517 var45 = var48;
518 varonce44 = var45;
519 }
520 var49 = NEW_array__Array(&type_array__Arraykernel__Object);
521 { /* var49 = array_instance Array[Object] */
522 var50 = 2;
523 var51 = NEW_array__NativeArray(var50, &type_array__NativeArraykernel__Object);
524 var52 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
525 ((struct instance_array__NativeArray*)var51)->values[0] = (val*) var52;
526 ((struct instance_array__NativeArray*)var51)->values[1] = (val*) var45;
527 {
528 ((void (*)(val*, val*, long))(var49->class->vft[COLOR_array__Array__with_native]))(var49, var51, var50) /* with_native on <var49:Array[Object]>*/;
529 }
530 }
531 {
532 var53 = ((val* (*)(val*))(var49->class->vft[COLOR_string__Object__to_s]))(var49) /* to_s on <var49:Array[Object]>*/;
533 }
534 var_def = var53;
535 {
536 { /* Inline toolcontext#Message#location (self) on <self:Message> */
537 var56 = self->attrs[COLOR_toolcontext__Message___location].val; /* _location on <self:Message> */
538 var54 = var56;
539 RET_LABEL55:(void)0;
540 }
541 }
542 var_l = var54;
543 var57 = NULL;
544 if (var_l == NULL) {
545 var58 = 1; /* is null */
546 } else {
547 var58 = 0; /* arg is null but recv is not */
548 }
549 if (0) {
550 var59 = location__Location___61d_61d(var_l, var57);
551 var58 = var59;
552 }
553 if (var58){
554 {
555 { /* Inline toolcontext#Message#text (self) on <self:Message> */
556 var62 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
557 if (unlikely(var62 == NULL)) {
558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
559 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
560 show_backtrace(1);
561 }
562 var60 = var62;
563 RET_LABEL61:(void)0;
564 }
565 }
566 var = var60;
567 goto RET_LABEL;
568 } else {
569 {
570 { /* Inline location#Location#file (var_l) on <var_l:nullable Location(Location)> */
571 var65 = var_l->attrs[COLOR_location__Location___file].val; /* _file on <var_l:nullable Location(Location)> */
572 var63 = var65;
573 RET_LABEL64:(void)0;
574 }
575 }
576 var66 = NULL;
577 if (var63 == NULL) {
578 var67 = 1; /* is null */
579 } else {
580 var67 = 0; /* arg is null but recv is not */
581 }
582 if (0) {
583 { /* Inline kernel#Object#== (var63,var66) on <var63:nullable SourceFile> */
584 var_other = var66;
585 {
586 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable SourceFile(SourceFile)> */
587 var72 = var63 == var_other;
588 var70 = var72;
589 goto RET_LABEL71;
590 RET_LABEL71:(void)0;
591 }
592 }
593 var68 = var70;
594 goto RET_LABEL69;
595 RET_LABEL69:(void)0;
596 }
597 var67 = var68;
598 }
599 if (var67){
600 if (varonce73) {
601 var74 = varonce73;
602 } else {
603 var75 = ": ";
604 var76 = 2;
605 var77 = string__NativeString__to_s_with_length(var75, var76);
606 var74 = var77;
607 varonce73 = var74;
608 }
609 {
610 { /* Inline toolcontext#Message#text (self) on <self:Message> */
611 var80 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
612 if (unlikely(var80 == NULL)) {
613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
614 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
615 show_backtrace(1);
616 }
617 var78 = var80;
618 RET_LABEL79:(void)0;
619 }
620 }
621 var81 = NEW_array__Array(&type_array__Arraykernel__Object);
622 { /* var81 = array_instance Array[Object] */
623 var82 = 5;
624 var83 = NEW_array__NativeArray(var82, &type_array__NativeArraykernel__Object);
625 ((struct instance_array__NativeArray*)var83)->values[0] = (val*) var_yellow;
626 ((struct instance_array__NativeArray*)var83)->values[1] = (val*) var_l;
627 ((struct instance_array__NativeArray*)var83)->values[2] = (val*) var_def;
628 ((struct instance_array__NativeArray*)var83)->values[3] = (val*) var74;
629 ((struct instance_array__NativeArray*)var83)->values[4] = (val*) var78;
630 {
631 ((void (*)(val*, val*, long))(var81->class->vft[COLOR_array__Array__with_native]))(var81, var83, var82) /* with_native on <var81:Array[Object]>*/;
632 }
633 }
634 {
635 var84 = ((val* (*)(val*))(var81->class->vft[COLOR_string__Object__to_s]))(var81) /* to_s on <var81:Array[Object]>*/;
636 }
637 var = var84;
638 goto RET_LABEL;
639 } else {
640 if (varonce85) {
641 var86 = varonce85;
642 } else {
643 var87 = ": ";
644 var88 = 2;
645 var89 = string__NativeString__to_s_with_length(var87, var88);
646 var86 = var89;
647 varonce85 = var86;
648 }
649 {
650 { /* Inline toolcontext#Message#text (self) on <self:Message> */
651 var92 = self->attrs[COLOR_toolcontext__Message___text].val; /* _text on <self:Message> */
652 if (unlikely(var92 == NULL)) {
653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
654 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 33);
655 show_backtrace(1);
656 }
657 var90 = var92;
658 RET_LABEL91:(void)0;
659 }
660 }
661 if (varonce93) {
662 var94 = varonce93;
663 } else {
664 var95 = "\n";
665 var96 = 1;
666 var97 = string__NativeString__to_s_with_length(var95, var96);
667 var94 = var97;
668 varonce93 = var94;
669 }
670 if (varonce98) {
671 var99 = varonce98;
672 } else {
673 var100 = "1;31";
674 var101 = 4;
675 var102 = string__NativeString__to_s_with_length(var100, var101);
676 var99 = var102;
677 varonce98 = var99;
678 }
679 {
680 var103 = location__Location__colored_line(var_l, var99);
681 }
682 var104 = NEW_array__Array(&type_array__Arraykernel__Object);
683 { /* var104 = array_instance Array[Object] */
684 var105 = 7;
685 var106 = NEW_array__NativeArray(var105, &type_array__NativeArraykernel__Object);
686 ((struct instance_array__NativeArray*)var106)->values[0] = (val*) var_yellow;
687 ((struct instance_array__NativeArray*)var106)->values[1] = (val*) var_l;
688 ((struct instance_array__NativeArray*)var106)->values[2] = (val*) var_def;
689 ((struct instance_array__NativeArray*)var106)->values[3] = (val*) var86;
690 ((struct instance_array__NativeArray*)var106)->values[4] = (val*) var90;
691 ((struct instance_array__NativeArray*)var106)->values[5] = (val*) var94;
692 ((struct instance_array__NativeArray*)var106)->values[6] = (val*) var103;
693 {
694 ((void (*)(val*, val*, long))(var104->class->vft[COLOR_array__Array__with_native]))(var104, var106, var105) /* with_native on <var104:Array[Object]>*/;
695 }
696 }
697 {
698 var107 = ((val* (*)(val*))(var104->class->vft[COLOR_string__Object__to_s]))(var104) /* to_s on <var104:Array[Object]>*/;
699 }
700 var = var107;
701 goto RET_LABEL;
702 }
703 }
704 RET_LABEL:;
705 return var;
706 }
707 /* method toolcontext#Message#to_color_string for (self: Object): String */
708 val* VIRTUAL_toolcontext__Message__to_color_string(val* self) {
709 val* var /* : String */;
710 val* var1 /* : String */;
711 var1 = toolcontext__Message__to_color_string(self);
712 var = var1;
713 RET_LABEL:;
714 return var;
715 }
716 /* method toolcontext#Message#init for (self: Message, nullable Location, String) */
717 void toolcontext__Message__init(val* self, val* p0, val* p1) {
718 self->attrs[COLOR_toolcontext__Message___location].val = p0; /* _location on <self:Message> */
719 self->attrs[COLOR_toolcontext__Message___text].val = p1; /* _text on <self:Message> */
720 RET_LABEL:;
721 }
722 /* method toolcontext#Message#init for (self: Object, nullable Location, String) */
723 void VIRTUAL_toolcontext__Message__init(val* self, val* p0, val* p1) {
724 { /* Inline toolcontext#Message#init (self,p0,p1) on <self:Object(Message)> */
725 self->attrs[COLOR_toolcontext__Message___location].val = p0; /* _location on <self:Object(Message)> */
726 self->attrs[COLOR_toolcontext__Message___text].val = p1; /* _text on <self:Object(Message)> */
727 RET_LABEL1:(void)0;
728 }
729 RET_LABEL:;
730 }
731 /* method toolcontext#ToolContext#error_count for (self: ToolContext): Int */
732 long toolcontext__ToolContext__error_count(val* self) {
733 long var /* : Int */;
734 long var1 /* : Int */;
735 var1 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
736 var = var1;
737 RET_LABEL:;
738 return var;
739 }
740 /* method toolcontext#ToolContext#error_count for (self: Object): Int */
741 long VIRTUAL_toolcontext__ToolContext__error_count(val* self) {
742 long var /* : Int */;
743 long var1 /* : Int */;
744 long var3 /* : Int */;
745 { /* Inline toolcontext#ToolContext#error_count (self) on <self:Object(ToolContext)> */
746 var3 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:Object(ToolContext)> */
747 var1 = var3;
748 RET_LABEL2:(void)0;
749 }
750 var = var1;
751 RET_LABEL:;
752 return var;
753 }
754 /* method toolcontext#ToolContext#error_count= for (self: ToolContext, Int) */
755 void toolcontext__ToolContext__error_count_61d(val* self, long p0) {
756 self->attrs[COLOR_toolcontext__ToolContext___error_count].l = p0; /* _error_count on <self:ToolContext> */
757 RET_LABEL:;
758 }
759 /* method toolcontext#ToolContext#error_count= for (self: Object, Int) */
760 void VIRTUAL_toolcontext__ToolContext__error_count_61d(val* self, long p0) {
761 { /* Inline toolcontext#ToolContext#error_count= (self,p0) on <self:Object(ToolContext)> */
762 self->attrs[COLOR_toolcontext__ToolContext___error_count].l = p0; /* _error_count on <self:Object(ToolContext)> */
763 RET_LABEL1:(void)0;
764 }
765 RET_LABEL:;
766 }
767 /* method toolcontext#ToolContext#warning_count for (self: ToolContext): Int */
768 long toolcontext__ToolContext__warning_count(val* self) {
769 long var /* : Int */;
770 long var1 /* : Int */;
771 var1 = self->attrs[COLOR_toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
772 var = var1;
773 RET_LABEL:;
774 return var;
775 }
776 /* method toolcontext#ToolContext#warning_count for (self: Object): Int */
777 long VIRTUAL_toolcontext__ToolContext__warning_count(val* self) {
778 long var /* : Int */;
779 long var1 /* : Int */;
780 long var3 /* : Int */;
781 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:Object(ToolContext)> */
782 var3 = self->attrs[COLOR_toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:Object(ToolContext)> */
783 var1 = var3;
784 RET_LABEL2:(void)0;
785 }
786 var = var1;
787 RET_LABEL:;
788 return var;
789 }
790 /* method toolcontext#ToolContext#warning_count= for (self: ToolContext, Int) */
791 void toolcontext__ToolContext__warning_count_61d(val* self, long p0) {
792 self->attrs[COLOR_toolcontext__ToolContext___warning_count].l = p0; /* _warning_count on <self:ToolContext> */
793 RET_LABEL:;
794 }
795 /* method toolcontext#ToolContext#warning_count= for (self: Object, Int) */
796 void VIRTUAL_toolcontext__ToolContext__warning_count_61d(val* self, long p0) {
797 { /* Inline toolcontext#ToolContext#warning_count= (self,p0) on <self:Object(ToolContext)> */
798 self->attrs[COLOR_toolcontext__ToolContext___warning_count].l = p0; /* _warning_count on <self:Object(ToolContext)> */
799 RET_LABEL1:(void)0;
800 }
801 RET_LABEL:;
802 }
803 /* method toolcontext#ToolContext#log_directory for (self: ToolContext): String */
804 val* toolcontext__ToolContext__log_directory(val* self) {
805 val* var /* : String */;
806 val* var1 /* : String */;
807 var1 = self->attrs[COLOR_toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
808 if (unlikely(var1 == NULL)) {
809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
810 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 81);
811 show_backtrace(1);
812 }
813 var = var1;
814 RET_LABEL:;
815 return var;
816 }
817 /* method toolcontext#ToolContext#log_directory for (self: Object): String */
818 val* VIRTUAL_toolcontext__ToolContext__log_directory(val* self) {
819 val* var /* : String */;
820 val* var1 /* : String */;
821 val* var3 /* : String */;
822 { /* Inline toolcontext#ToolContext#log_directory (self) on <self:Object(ToolContext)> */
823 var3 = self->attrs[COLOR_toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:Object(ToolContext)> */
824 if (unlikely(var3 == NULL)) {
825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
826 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 81);
827 show_backtrace(1);
828 }
829 var1 = var3;
830 RET_LABEL2:(void)0;
831 }
832 var = var1;
833 RET_LABEL:;
834 return var;
835 }
836 /* method toolcontext#ToolContext#log_directory= for (self: ToolContext, String) */
837 void toolcontext__ToolContext__log_directory_61d(val* self, val* p0) {
838 self->attrs[COLOR_toolcontext__ToolContext___log_directory].val = p0; /* _log_directory on <self:ToolContext> */
839 RET_LABEL:;
840 }
841 /* method toolcontext#ToolContext#log_directory= for (self: Object, String) */
842 void VIRTUAL_toolcontext__ToolContext__log_directory_61d(val* self, val* p0) {
843 { /* Inline toolcontext#ToolContext#log_directory= (self,p0) on <self:Object(ToolContext)> */
844 self->attrs[COLOR_toolcontext__ToolContext___log_directory].val = p0; /* _log_directory on <self:Object(ToolContext)> */
845 RET_LABEL1:(void)0;
846 }
847 RET_LABEL:;
848 }
849 /* method toolcontext#ToolContext#messages for (self: ToolContext): Array[Message] */
850 val* toolcontext__ToolContext__messages(val* self) {
851 val* var /* : Array[Message] */;
852 val* var1 /* : Array[Message] */;
853 var1 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
854 if (unlikely(var1 == NULL)) {
855 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
856 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
857 show_backtrace(1);
858 }
859 var = var1;
860 RET_LABEL:;
861 return var;
862 }
863 /* method toolcontext#ToolContext#messages for (self: Object): Array[Message] */
864 val* VIRTUAL_toolcontext__ToolContext__messages(val* self) {
865 val* var /* : Array[Message] */;
866 val* var1 /* : Array[Message] */;
867 val* var3 /* : Array[Message] */;
868 { /* Inline toolcontext#ToolContext#messages (self) on <self:Object(ToolContext)> */
869 var3 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:Object(ToolContext)> */
870 if (unlikely(var3 == NULL)) {
871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
872 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
873 show_backtrace(1);
874 }
875 var1 = var3;
876 RET_LABEL2:(void)0;
877 }
878 var = var1;
879 RET_LABEL:;
880 return var;
881 }
882 /* method toolcontext#ToolContext#message_sorter for (self: ToolContext): ComparableSorter[Message] */
883 val* toolcontext__ToolContext__message_sorter(val* self) {
884 val* var /* : ComparableSorter[Message] */;
885 val* var1 /* : ComparableSorter[Message] */;
886 var1 = self->attrs[COLOR_toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
887 if (unlikely(var1 == NULL)) {
888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
889 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 86);
890 show_backtrace(1);
891 }
892 var = var1;
893 RET_LABEL:;
894 return var;
895 }
896 /* method toolcontext#ToolContext#message_sorter for (self: Object): ComparableSorter[Message] */
897 val* VIRTUAL_toolcontext__ToolContext__message_sorter(val* self) {
898 val* var /* : ComparableSorter[Message] */;
899 val* var1 /* : ComparableSorter[Message] */;
900 val* var3 /* : ComparableSorter[Message] */;
901 { /* Inline toolcontext#ToolContext#message_sorter (self) on <self:Object(ToolContext)> */
902 var3 = self->attrs[COLOR_toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:Object(ToolContext)> */
903 if (unlikely(var3 == NULL)) {
904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
905 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 86);
906 show_backtrace(1);
907 }
908 var1 = var3;
909 RET_LABEL2:(void)0;
910 }
911 var = var1;
912 RET_LABEL:;
913 return var;
914 }
915 /* method toolcontext#ToolContext#check_errors for (self: ToolContext) */
916 void toolcontext__ToolContext__check_errors(val* self) {
917 val* var /* : Array[Message] */;
918 val* var2 /* : Array[Message] */;
919 long var3 /* : Int */;
920 long var4 /* : Int */;
921 short int var5 /* : Bool */;
922 short int var7 /* : Bool */;
923 int cltype;
924 int idtype;
925 const char* var_class_name;
926 short int var8 /* : Bool */;
927 val* var9 /* : ComparableSorter[Message] */;
928 val* var11 /* : ComparableSorter[Message] */;
929 val* var12 /* : Array[Message] */;
930 val* var14 /* : Array[Message] */;
931 val* var15 /* : Array[Message] */;
932 val* var17 /* : Array[Message] */;
933 val* var18 /* : ArrayIterator[nullable Object] */;
934 short int var19 /* : Bool */;
935 val* var20 /* : nullable Object */;
936 val* var_m /* var m: Message */;
937 val* var21 /* : OptionBool */;
938 val* var23 /* : OptionBool */;
939 val* var24 /* : nullable Object */;
940 val* var26 /* : nullable Object */;
941 short int var27 /* : Bool */;
942 val* var28 /* : Sys */;
943 val* var30 /* : Sys */;
944 val* var31 /* : OStream */;
945 val* var33 /* : OStream */;
946 static val* varonce;
947 val* var34 /* : String */;
948 char* var35 /* : NativeString */;
949 long var36 /* : Int */;
950 val* var37 /* : FlatString */;
951 val* var38 /* : Array[Object] */;
952 long var39 /* : Int */;
953 val* var40 /* : NativeArray[Object] */;
954 val* var41 /* : String */;
955 val* var42 /* : Sys */;
956 val* var44 /* : Sys */;
957 val* var45 /* : OStream */;
958 val* var47 /* : OStream */;
959 val* var48 /* : String */;
960 static val* varonce49;
961 val* var50 /* : String */;
962 char* var51 /* : NativeString */;
963 long var52 /* : Int */;
964 val* var53 /* : FlatString */;
965 val* var54 /* : Array[Object] */;
966 long var55 /* : Int */;
967 val* var56 /* : NativeArray[Object] */;
968 val* var57 /* : String */;
969 val* var58 /* : Array[Message] */;
970 val* var60 /* : Array[Message] */;
971 long var61 /* : Int */;
972 long var63 /* : Int */;
973 long var64 /* : Int */;
974 short int var65 /* : Bool */;
975 short int var67 /* : Bool */;
976 int cltype68;
977 int idtype69;
978 const char* var_class_name70;
979 short int var71 /* : Bool */;
980 long var72 /* : Int */;
981 {
982 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
983 var2 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
984 if (unlikely(var2 == NULL)) {
985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
986 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
987 show_backtrace(1);
988 }
989 var = var2;
990 RET_LABEL1:(void)0;
991 }
992 }
993 {
994 var3 = array__AbstractArrayRead__length(var);
995 }
996 var4 = 0;
997 {
998 { /* Inline kernel#Int#> (var3,var4) on <var3:Int> */
999 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1000 /* <var4:Int> isa OTHER */
1001 var7 = 1; /* easy <var4:Int> isa OTHER*/
1002 if (unlikely(!var7)) {
1003 var_class_name = type_kernel__Int.name;
1004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1005 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1006 show_backtrace(1);
1007 }
1008 var8 = var3 > var4;
1009 var5 = var8;
1010 goto RET_LABEL6;
1011 RET_LABEL6:(void)0;
1012 }
1013 }
1014 if (var5){
1015 {
1016 { /* Inline toolcontext#ToolContext#message_sorter (self) on <self:ToolContext> */
1017 var11 = self->attrs[COLOR_toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
1018 if (unlikely(var11 == NULL)) {
1019 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
1020 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 86);
1021 show_backtrace(1);
1022 }
1023 var9 = var11;
1024 RET_LABEL10:(void)0;
1025 }
1026 }
1027 {
1028 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1029 var14 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1030 if (unlikely(var14 == NULL)) {
1031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1032 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
1033 show_backtrace(1);
1034 }
1035 var12 = var14;
1036 RET_LABEL13:(void)0;
1037 }
1038 }
1039 {
1040 sorter__Comparator__sort(var9, var12); /* Direct call sorter#Comparator#sort on <var9:ComparableSorter[Message]>*/
1041 }
1042 {
1043 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1044 var17 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1045 if (unlikely(var17 == NULL)) {
1046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1047 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
1048 show_backtrace(1);
1049 }
1050 var15 = var17;
1051 RET_LABEL16:(void)0;
1052 }
1053 }
1054 {
1055 var18 = array__AbstractArrayRead__iterator(var15);
1056 }
1057 for(;;) {
1058 {
1059 var19 = array__ArrayIterator__is_ok(var18);
1060 }
1061 if(!var19) break;
1062 {
1063 var20 = array__ArrayIterator__item(var18);
1064 }
1065 var_m = var20;
1066 {
1067 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
1068 var23 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1069 if (unlikely(var23 == NULL)) {
1070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1071 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 196);
1072 show_backtrace(1);
1073 }
1074 var21 = var23;
1075 RET_LABEL22:(void)0;
1076 }
1077 }
1078 {
1079 { /* Inline opts#Option#value (var21) on <var21:OptionBool> */
1080 var26 = var21->attrs[COLOR_opts__Option___value].val; /* _value on <var21:OptionBool> */
1081 var24 = var26;
1082 RET_LABEL25:(void)0;
1083 }
1084 }
1085 var27 = ((struct instance_kernel__Bool*)var24)->value; /* autounbox from nullable Object to Bool */;
1086 if (var27){
1087 {
1088 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1089 var30 = glob_sys;
1090 var28 = var30;
1091 goto RET_LABEL29;
1092 RET_LABEL29:(void)0;
1093 }
1094 }
1095 {
1096 { /* Inline file#Sys#stderr (var28) on <var28:Sys> */
1097 var33 = var28->attrs[COLOR_file__Sys___stderr].val; /* _stderr on <var28:Sys> */
1098 if (unlikely(var33 == NULL)) {
1099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
1100 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 533);
1101 show_backtrace(1);
1102 }
1103 var31 = var33;
1104 RET_LABEL32:(void)0;
1105 }
1106 }
1107 if (varonce) {
1108 var34 = varonce;
1109 } else {
1110 var35 = "\n";
1111 var36 = 1;
1112 var37 = string__NativeString__to_s_with_length(var35, var36);
1113 var34 = var37;
1114 varonce = var34;
1115 }
1116 var38 = NEW_array__Array(&type_array__Arraykernel__Object);
1117 { /* var38 = array_instance Array[Object] */
1118 var39 = 2;
1119 var40 = NEW_array__NativeArray(var39, &type_array__NativeArraykernel__Object);
1120 ((struct instance_array__NativeArray*)var40)->values[0] = (val*) var_m;
1121 ((struct instance_array__NativeArray*)var40)->values[1] = (val*) var34;
1122 {
1123 ((void (*)(val*, val*, long))(var38->class->vft[COLOR_array__Array__with_native]))(var38, var40, var39) /* with_native on <var38:Array[Object]>*/;
1124 }
1125 }
1126 {
1127 var41 = ((val* (*)(val*))(var38->class->vft[COLOR_string__Object__to_s]))(var38) /* to_s on <var38:Array[Object]>*/;
1128 }
1129 {
1130 file__OFStream__write(var31, var41); /* Direct call file#OFStream#write on <var31:OStream>*/
1131 }
1132 } else {
1133 {
1134 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1135 var44 = glob_sys;
1136 var42 = var44;
1137 goto RET_LABEL43;
1138 RET_LABEL43:(void)0;
1139 }
1140 }
1141 {
1142 { /* Inline file#Sys#stderr (var42) on <var42:Sys> */
1143 var47 = var42->attrs[COLOR_file__Sys___stderr].val; /* _stderr on <var42:Sys> */
1144 if (unlikely(var47 == NULL)) {
1145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
1146 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 533);
1147 show_backtrace(1);
1148 }
1149 var45 = var47;
1150 RET_LABEL46:(void)0;
1151 }
1152 }
1153 {
1154 var48 = toolcontext__Message__to_color_string(var_m);
1155 }
1156 if (varonce49) {
1157 var50 = varonce49;
1158 } else {
1159 var51 = "\n";
1160 var52 = 1;
1161 var53 = string__NativeString__to_s_with_length(var51, var52);
1162 var50 = var53;
1163 varonce49 = var50;
1164 }
1165 var54 = NEW_array__Array(&type_array__Arraykernel__Object);
1166 { /* var54 = array_instance Array[Object] */
1167 var55 = 2;
1168 var56 = NEW_array__NativeArray(var55, &type_array__NativeArraykernel__Object);
1169 ((struct instance_array__NativeArray*)var56)->values[0] = (val*) var48;
1170 ((struct instance_array__NativeArray*)var56)->values[1] = (val*) var50;
1171 {
1172 ((void (*)(val*, val*, long))(var54->class->vft[COLOR_array__Array__with_native]))(var54, var56, var55) /* with_native on <var54:Array[Object]>*/;
1173 }
1174 }
1175 {
1176 var57 = ((val* (*)(val*))(var54->class->vft[COLOR_string__Object__to_s]))(var54) /* to_s on <var54:Array[Object]>*/;
1177 }
1178 {
1179 file__OFStream__write(var45, var57); /* Direct call file#OFStream#write on <var45:OStream>*/
1180 }
1181 }
1182 CONTINUE_label: (void)0;
1183 {
1184 array__ArrayIterator__next(var18); /* Direct call array#ArrayIterator#next on <var18:ArrayIterator[nullable Object]>*/
1185 }
1186 }
1187 BREAK_label: (void)0;
1188 {
1189 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1190 var60 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1191 if (unlikely(var60 == NULL)) {
1192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1193 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
1194 show_backtrace(1);
1195 }
1196 var58 = var60;
1197 RET_LABEL59:(void)0;
1198 }
1199 }
1200 {
1201 array__AbstractArray__clear(var58); /* Direct call array#AbstractArray#clear on <var58:Array[Message]>*/
1202 }
1203 } else {
1204 }
1205 {
1206 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1207 var63 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1208 var61 = var63;
1209 RET_LABEL62:(void)0;
1210 }
1211 }
1212 var64 = 0;
1213 {
1214 { /* Inline kernel#Int#> (var61,var64) on <var61:Int> */
1215 /* Covariant cast for argument 0 (i) <var64:Int> isa OTHER */
1216 /* <var64:Int> isa OTHER */
1217 var67 = 1; /* easy <var64:Int> isa OTHER*/
1218 if (unlikely(!var67)) {
1219 var_class_name70 = type_kernel__Int.name;
1220 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
1221 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1222 show_backtrace(1);
1223 }
1224 var71 = var61 > var64;
1225 var65 = var71;
1226 goto RET_LABEL66;
1227 RET_LABEL66:(void)0;
1228 }
1229 }
1230 if (var65){
1231 var72 = 1;
1232 {
1233 { /* Inline kernel#Object#exit (self,var72) on <self:ToolContext> */
1234 exit(var72);
1235 RET_LABEL73:(void)0;
1236 }
1237 }
1238 } else {
1239 }
1240 RET_LABEL:;
1241 }
1242 /* method toolcontext#ToolContext#check_errors for (self: Object) */
1243 void VIRTUAL_toolcontext__ToolContext__check_errors(val* self) {
1244 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:Object(ToolContext)>*/
1245 RET_LABEL:;
1246 }
1247 /* method toolcontext#ToolContext#error for (self: ToolContext, nullable Location, String) */
1248 void toolcontext__ToolContext__error(val* self, val* p0, val* p1) {
1249 val* var_l /* var l: nullable Location */;
1250 val* var_s /* var s: String */;
1251 val* var /* : Array[Message] */;
1252 val* var2 /* : Array[Message] */;
1253 val* var3 /* : Message */;
1254 long var5 /* : Int */;
1255 long var7 /* : Int */;
1256 long var8 /* : Int */;
1257 long var9 /* : Int */;
1258 short int var11 /* : Bool */;
1259 int cltype;
1260 int idtype;
1261 const char* var_class_name;
1262 long var12 /* : Int */;
1263 val* var14 /* : OptionBool */;
1264 val* var16 /* : OptionBool */;
1265 val* var17 /* : nullable Object */;
1266 val* var19 /* : nullable Object */;
1267 short int var20 /* : Bool */;
1268 var_l = p0;
1269 var_s = p1;
1270 {
1271 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1272 var2 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1273 if (unlikely(var2 == NULL)) {
1274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1275 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
1276 show_backtrace(1);
1277 }
1278 var = var2;
1279 RET_LABEL1:(void)0;
1280 }
1281 }
1282 var3 = NEW_toolcontext__Message(&type_toolcontext__Message);
1283 {
1284 { /* Inline toolcontext#Message#init (var3,var_l,var_s) on <var3:Message> */
1285 var3->attrs[COLOR_toolcontext__Message___location].val = var_l; /* _location on <var3:Message> */
1286 var3->attrs[COLOR_toolcontext__Message___text].val = var_s; /* _text on <var3:Message> */
1287 RET_LABEL4:(void)0;
1288 }
1289 }
1290 {
1291 array__Array__add(var, var3); /* Direct call array#Array#add on <var:Array[Message]>*/
1292 }
1293 {
1294 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1295 var7 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1296 var5 = var7;
1297 RET_LABEL6:(void)0;
1298 }
1299 }
1300 var8 = 1;
1301 {
1302 { /* Inline kernel#Int#+ (var5,var8) on <var5:Int> */
1303 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
1304 /* <var8:Int> isa OTHER */
1305 var11 = 1; /* easy <var8:Int> isa OTHER*/
1306 if (unlikely(!var11)) {
1307 var_class_name = type_kernel__Int.name;
1308 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1309 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1310 show_backtrace(1);
1311 }
1312 var12 = var5 + var8;
1313 var9 = var12;
1314 goto RET_LABEL10;
1315 RET_LABEL10:(void)0;
1316 }
1317 }
1318 {
1319 { /* Inline toolcontext#ToolContext#error_count= (self,var9) on <self:ToolContext> */
1320 self->attrs[COLOR_toolcontext__ToolContext___error_count].l = var9; /* _error_count on <self:ToolContext> */
1321 RET_LABEL13:(void)0;
1322 }
1323 }
1324 {
1325 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
1326 var16 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1327 if (unlikely(var16 == NULL)) {
1328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1329 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 193);
1330 show_backtrace(1);
1331 }
1332 var14 = var16;
1333 RET_LABEL15:(void)0;
1334 }
1335 }
1336 {
1337 { /* Inline opts#Option#value (var14) on <var14:OptionBool> */
1338 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
1339 var17 = var19;
1340 RET_LABEL18:(void)0;
1341 }
1342 }
1343 var20 = ((struct instance_kernel__Bool*)var17)->value; /* autounbox from nullable Object to Bool */;
1344 if (var20){
1345 {
1346 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1347 }
1348 } else {
1349 }
1350 RET_LABEL:;
1351 }
1352 /* method toolcontext#ToolContext#error for (self: Object, nullable Location, String) */
1353 void VIRTUAL_toolcontext__ToolContext__error(val* self, val* p0, val* p1) {
1354 toolcontext__ToolContext__error(self, p0, p1); /* Direct call toolcontext#ToolContext#error on <self:Object(ToolContext)>*/
1355 RET_LABEL:;
1356 }
1357 /* method toolcontext#ToolContext#fatal_error for (self: ToolContext, nullable Location, String) */
1358 void toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
1359 val* var_l /* var l: nullable Location */;
1360 val* var_s /* var s: String */;
1361 var_l = p0;
1362 var_s = p1;
1363 {
1364 toolcontext__ToolContext__error(self, var_l, var_s); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
1365 }
1366 {
1367 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1368 }
1369 RET_LABEL:;
1370 }
1371 /* method toolcontext#ToolContext#fatal_error for (self: Object, nullable Location, String) */
1372 void VIRTUAL_toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
1373 toolcontext__ToolContext__fatal_error(self, p0, p1); /* Direct call toolcontext#ToolContext#fatal_error on <self:Object(ToolContext)>*/
1374 RET_LABEL:;
1375 }
1376 /* method toolcontext#ToolContext#warning for (self: ToolContext, nullable Location, String) */
1377 void toolcontext__ToolContext__warning(val* self, val* p0, val* p1) {
1378 val* var_l /* var l: nullable Location */;
1379 val* var_s /* var s: String */;
1380 val* var /* : OptionCount */;
1381 val* var2 /* : OptionCount */;
1382 val* var3 /* : nullable Object */;
1383 val* var5 /* : nullable Object */;
1384 long var6 /* : Int */;
1385 short int var7 /* : Bool */;
1386 short int var8 /* : Bool */;
1387 short int var10 /* : Bool */;
1388 long var11 /* : Int */;
1389 val* var12 /* : Array[Message] */;
1390 val* var14 /* : Array[Message] */;
1391 val* var15 /* : Message */;
1392 long var17 /* : Int */;
1393 long var19 /* : Int */;
1394 long var20 /* : Int */;
1395 long var21 /* : Int */;
1396 short int var23 /* : Bool */;
1397 int cltype;
1398 int idtype;
1399 const char* var_class_name;
1400 long var24 /* : Int */;
1401 val* var26 /* : OptionBool */;
1402 val* var28 /* : OptionBool */;
1403 val* var29 /* : nullable Object */;
1404 val* var31 /* : nullable Object */;
1405 short int var32 /* : Bool */;
1406 var_l = p0;
1407 var_s = p1;
1408 {
1409 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
1410 var2 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
1411 if (unlikely(var2 == NULL)) {
1412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
1413 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
1414 show_backtrace(1);
1415 }
1416 var = var2;
1417 RET_LABEL1:(void)0;
1418 }
1419 }
1420 {
1421 { /* Inline opts#Option#value (var) on <var:OptionCount> */
1422 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionCount> */
1423 var3 = var5;
1424 RET_LABEL4:(void)0;
1425 }
1426 }
1427 var6 = 0;
1428 {
1429 { /* Inline kernel#Int#== (var3,var6) on <var3:nullable Object(Int)> */
1430 var10 = (var3 != NULL) && (var3->class == &class_kernel__Int);
1431 if (var10) {
1432 var11 = ((struct instance_kernel__Int*)var3)->value; /* autounbox from nullable Object to Int */;
1433 var10 = (var11 == var6);
1434 }
1435 var8 = var10;
1436 goto RET_LABEL9;
1437 RET_LABEL9:(void)0;
1438 }
1439 var7 = var8;
1440 }
1441 if (var7){
1442 goto RET_LABEL;
1443 } else {
1444 }
1445 {
1446 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1447 var14 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1448 if (unlikely(var14 == NULL)) {
1449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1450 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 84);
1451 show_backtrace(1);
1452 }
1453 var12 = var14;
1454 RET_LABEL13:(void)0;
1455 }
1456 }
1457 var15 = NEW_toolcontext__Message(&type_toolcontext__Message);
1458 {
1459 { /* Inline toolcontext#Message#init (var15,var_l,var_s) on <var15:Message> */
1460 var15->attrs[COLOR_toolcontext__Message___location].val = var_l; /* _location on <var15:Message> */
1461 var15->attrs[COLOR_toolcontext__Message___text].val = var_s; /* _text on <var15:Message> */
1462 RET_LABEL16:(void)0;
1463 }
1464 }
1465 {
1466 array__Array__add(var12, var15); /* Direct call array#Array#add on <var12:Array[Message]>*/
1467 }
1468 {
1469 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1470 var19 = self->attrs[COLOR_toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1471 var17 = var19;
1472 RET_LABEL18:(void)0;
1473 }
1474 }
1475 var20 = 1;
1476 {
1477 { /* Inline kernel#Int#+ (var17,var20) on <var17:Int> */
1478 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
1479 /* <var20:Int> isa OTHER */
1480 var23 = 1; /* easy <var20:Int> isa OTHER*/
1481 if (unlikely(!var23)) {
1482 var_class_name = type_kernel__Int.name;
1483 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1484 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1485 show_backtrace(1);
1486 }
1487 var24 = var17 + var20;
1488 var21 = var24;
1489 goto RET_LABEL22;
1490 RET_LABEL22:(void)0;
1491 }
1492 }
1493 {
1494 { /* Inline toolcontext#ToolContext#warning_count= (self,var21) on <self:ToolContext> */
1495 self->attrs[COLOR_toolcontext__ToolContext___warning_count].l = var21; /* _warning_count on <self:ToolContext> */
1496 RET_LABEL25:(void)0;
1497 }
1498 }
1499 {
1500 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
1501 var28 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1502 if (unlikely(var28 == NULL)) {
1503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1504 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 193);
1505 show_backtrace(1);
1506 }
1507 var26 = var28;
1508 RET_LABEL27:(void)0;
1509 }
1510 }
1511 {
1512 { /* Inline opts#Option#value (var26) on <var26:OptionBool> */
1513 var31 = var26->attrs[COLOR_opts__Option___value].val; /* _value on <var26:OptionBool> */
1514 var29 = var31;
1515 RET_LABEL30:(void)0;
1516 }
1517 }
1518 var32 = ((struct instance_kernel__Bool*)var29)->value; /* autounbox from nullable Object to Bool */;
1519 if (var32){
1520 {
1521 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1522 }
1523 } else {
1524 }
1525 RET_LABEL:;
1526 }
1527 /* method toolcontext#ToolContext#warning for (self: Object, nullable Location, String) */
1528 void VIRTUAL_toolcontext__ToolContext__warning(val* self, val* p0, val* p1) {
1529 toolcontext__ToolContext__warning(self, p0, p1); /* Direct call toolcontext#ToolContext#warning on <self:Object(ToolContext)>*/
1530 RET_LABEL:;
1531 }
1532 /* method toolcontext#ToolContext#info for (self: ToolContext, String, Int) */
1533 void toolcontext__ToolContext__info(val* self, val* p0, long p1) {
1534 val* var_s /* var s: String */;
1535 long var_level /* var level: Int */;
1536 long var /* : Int */;
1537 long var2 /* : Int */;
1538 short int var3 /* : Bool */;
1539 short int var5 /* : Bool */;
1540 int cltype;
1541 int idtype;
1542 const char* var_class_name;
1543 short int var6 /* : Bool */;
1544 val* var7 /* : Array[Object] */;
1545 long var8 /* : Int */;
1546 val* var9 /* : NativeArray[Object] */;
1547 val* var10 /* : String */;
1548 var_s = p0;
1549 var_level = p1;
1550 {
1551 { /* Inline toolcontext#ToolContext#verbose_level (self) on <self:ToolContext> */
1552 var2 = self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
1553 var = var2;
1554 RET_LABEL1:(void)0;
1555 }
1556 }
1557 {
1558 { /* Inline kernel#Int#<= (var_level,var) on <var_level:Int> */
1559 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
1560 /* <var:Int> isa OTHER */
1561 var5 = 1; /* easy <var:Int> isa OTHER*/
1562 if (unlikely(!var5)) {
1563 var_class_name = type_kernel__Int.name;
1564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1565 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
1566 show_backtrace(1);
1567 }
1568 var6 = var_level <= var;
1569 var3 = var6;
1570 goto RET_LABEL4;
1571 RET_LABEL4:(void)0;
1572 }
1573 }
1574 if (var3){
1575 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1576 { /* var7 = array_instance Array[Object] */
1577 var8 = 1;
1578 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
1579 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var_s;
1580 {
1581 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
1582 }
1583 }
1584 {
1585 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
1586 }
1587 {
1588 file__Object__print(self, var10); /* Direct call file#Object#print on <self:ToolContext>*/
1589 }
1590 } else {
1591 }
1592 RET_LABEL:;
1593 }
1594 /* method toolcontext#ToolContext#info for (self: Object, String, Int) */
1595 void VIRTUAL_toolcontext__ToolContext__info(val* self, val* p0, long p1) {
1596 toolcontext__ToolContext__info(self, p0, p1); /* Direct call toolcontext#ToolContext#info on <self:Object(ToolContext)>*/
1597 RET_LABEL:;
1598 }
1599 /* method toolcontext#ToolContext#option_context for (self: ToolContext): OptionContext */
1600 val* toolcontext__ToolContext__option_context(val* self) {
1601 val* var /* : OptionContext */;
1602 val* var1 /* : OptionContext */;
1603 var1 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
1604 if (unlikely(var1 == NULL)) {
1605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1606 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
1607 show_backtrace(1);
1608 }
1609 var = var1;
1610 RET_LABEL:;
1611 return var;
1612 }
1613 /* method toolcontext#ToolContext#option_context for (self: Object): OptionContext */
1614 val* VIRTUAL_toolcontext__ToolContext__option_context(val* self) {
1615 val* var /* : OptionContext */;
1616 val* var1 /* : OptionContext */;
1617 val* var3 /* : OptionContext */;
1618 { /* Inline toolcontext#ToolContext#option_context (self) on <self:Object(ToolContext)> */
1619 var3 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:Object(ToolContext)> */
1620 if (unlikely(var3 == NULL)) {
1621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1622 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
1623 show_backtrace(1);
1624 }
1625 var1 = var3;
1626 RET_LABEL2:(void)0;
1627 }
1628 var = var1;
1629 RET_LABEL:;
1630 return var;
1631 }
1632 /* method toolcontext#ToolContext#opt_warn for (self: ToolContext): OptionCount */
1633 val* toolcontext__ToolContext__opt_warn(val* self) {
1634 val* var /* : OptionCount */;
1635 val* var1 /* : OptionCount */;
1636 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
1637 if (unlikely(var1 == NULL)) {
1638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
1639 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
1640 show_backtrace(1);
1641 }
1642 var = var1;
1643 RET_LABEL:;
1644 return var;
1645 }
1646 /* method toolcontext#ToolContext#opt_warn for (self: Object): OptionCount */
1647 val* VIRTUAL_toolcontext__ToolContext__opt_warn(val* self) {
1648 val* var /* : OptionCount */;
1649 val* var1 /* : OptionCount */;
1650 val* var3 /* : OptionCount */;
1651 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:Object(ToolContext)> */
1652 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:Object(ToolContext)> */
1653 if (unlikely(var3 == NULL)) {
1654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
1655 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
1656 show_backtrace(1);
1657 }
1658 var1 = var3;
1659 RET_LABEL2:(void)0;
1660 }
1661 var = var1;
1662 RET_LABEL:;
1663 return var;
1664 }
1665 /* method toolcontext#ToolContext#opt_quiet for (self: ToolContext): OptionBool */
1666 val* toolcontext__ToolContext__opt_quiet(val* self) {
1667 val* var /* : OptionBool */;
1668 val* var1 /* : OptionBool */;
1669 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
1670 if (unlikely(var1 == NULL)) {
1671 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
1672 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 172);
1673 show_backtrace(1);
1674 }
1675 var = var1;
1676 RET_LABEL:;
1677 return var;
1678 }
1679 /* method toolcontext#ToolContext#opt_quiet for (self: Object): OptionBool */
1680 val* VIRTUAL_toolcontext__ToolContext__opt_quiet(val* self) {
1681 val* var /* : OptionBool */;
1682 val* var1 /* : OptionBool */;
1683 val* var3 /* : OptionBool */;
1684 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:Object(ToolContext)> */
1685 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:Object(ToolContext)> */
1686 if (unlikely(var3 == NULL)) {
1687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
1688 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 172);
1689 show_backtrace(1);
1690 }
1691 var1 = var3;
1692 RET_LABEL2:(void)0;
1693 }
1694 var = var1;
1695 RET_LABEL:;
1696 return var;
1697 }
1698 /* method toolcontext#ToolContext#opt_log for (self: ToolContext): OptionBool */
1699 val* toolcontext__ToolContext__opt_log(val* self) {
1700 val* var /* : OptionBool */;
1701 val* var1 /* : OptionBool */;
1702 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
1703 if (unlikely(var1 == NULL)) {
1704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
1705 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 175);
1706 show_backtrace(1);
1707 }
1708 var = var1;
1709 RET_LABEL:;
1710 return var;
1711 }
1712 /* method toolcontext#ToolContext#opt_log for (self: Object): OptionBool */
1713 val* VIRTUAL_toolcontext__ToolContext__opt_log(val* self) {
1714 val* var /* : OptionBool */;
1715 val* var1 /* : OptionBool */;
1716 val* var3 /* : OptionBool */;
1717 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:Object(ToolContext)> */
1718 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:Object(ToolContext)> */
1719 if (unlikely(var3 == NULL)) {
1720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
1721 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 175);
1722 show_backtrace(1);
1723 }
1724 var1 = var3;
1725 RET_LABEL2:(void)0;
1726 }
1727 var = var1;
1728 RET_LABEL:;
1729 return var;
1730 }
1731 /* method toolcontext#ToolContext#opt_log_dir for (self: ToolContext): OptionString */
1732 val* toolcontext__ToolContext__opt_log_dir(val* self) {
1733 val* var /* : OptionString */;
1734 val* var1 /* : OptionString */;
1735 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
1736 if (unlikely(var1 == NULL)) {
1737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
1738 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 178);
1739 show_backtrace(1);
1740 }
1741 var = var1;
1742 RET_LABEL:;
1743 return var;
1744 }
1745 /* method toolcontext#ToolContext#opt_log_dir for (self: Object): OptionString */
1746 val* VIRTUAL_toolcontext__ToolContext__opt_log_dir(val* self) {
1747 val* var /* : OptionString */;
1748 val* var1 /* : OptionString */;
1749 val* var3 /* : OptionString */;
1750 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:Object(ToolContext)> */
1751 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:Object(ToolContext)> */
1752 if (unlikely(var3 == NULL)) {
1753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
1754 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 178);
1755 show_backtrace(1);
1756 }
1757 var1 = var3;
1758 RET_LABEL2:(void)0;
1759 }
1760 var = var1;
1761 RET_LABEL:;
1762 return var;
1763 }
1764 /* method toolcontext#ToolContext#opt_help for (self: ToolContext): OptionBool */
1765 val* toolcontext__ToolContext__opt_help(val* self) {
1766 val* var /* : OptionBool */;
1767 val* var1 /* : OptionBool */;
1768 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
1769 if (unlikely(var1 == NULL)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
1771 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 181);
1772 show_backtrace(1);
1773 }
1774 var = var1;
1775 RET_LABEL:;
1776 return var;
1777 }
1778 /* method toolcontext#ToolContext#opt_help for (self: Object): OptionBool */
1779 val* VIRTUAL_toolcontext__ToolContext__opt_help(val* self) {
1780 val* var /* : OptionBool */;
1781 val* var1 /* : OptionBool */;
1782 val* var3 /* : OptionBool */;
1783 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:Object(ToolContext)> */
1784 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:Object(ToolContext)> */
1785 if (unlikely(var3 == NULL)) {
1786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
1787 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 181);
1788 show_backtrace(1);
1789 }
1790 var1 = var3;
1791 RET_LABEL2:(void)0;
1792 }
1793 var = var1;
1794 RET_LABEL:;
1795 return var;
1796 }
1797 /* method toolcontext#ToolContext#opt_version for (self: ToolContext): OptionBool */
1798 val* toolcontext__ToolContext__opt_version(val* self) {
1799 val* var /* : OptionBool */;
1800 val* var1 /* : OptionBool */;
1801 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
1802 if (unlikely(var1 == NULL)) {
1803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
1804 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 184);
1805 show_backtrace(1);
1806 }
1807 var = var1;
1808 RET_LABEL:;
1809 return var;
1810 }
1811 /* method toolcontext#ToolContext#opt_version for (self: Object): OptionBool */
1812 val* VIRTUAL_toolcontext__ToolContext__opt_version(val* self) {
1813 val* var /* : OptionBool */;
1814 val* var1 /* : OptionBool */;
1815 val* var3 /* : OptionBool */;
1816 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:Object(ToolContext)> */
1817 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:Object(ToolContext)> */
1818 if (unlikely(var3 == NULL)) {
1819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
1820 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 184);
1821 show_backtrace(1);
1822 }
1823 var1 = var3;
1824 RET_LABEL2:(void)0;
1825 }
1826 var = var1;
1827 RET_LABEL:;
1828 return var;
1829 }
1830 /* method toolcontext#ToolContext#opt_set_dummy_tool for (self: ToolContext): OptionBool */
1831 val* toolcontext__ToolContext__opt_set_dummy_tool(val* self) {
1832 val* var /* : OptionBool */;
1833 val* var1 /* : OptionBool */;
1834 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
1835 if (unlikely(var1 == NULL)) {
1836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
1837 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 187);
1838 show_backtrace(1);
1839 }
1840 var = var1;
1841 RET_LABEL:;
1842 return var;
1843 }
1844 /* method toolcontext#ToolContext#opt_set_dummy_tool for (self: Object): OptionBool */
1845 val* VIRTUAL_toolcontext__ToolContext__opt_set_dummy_tool(val* self) {
1846 val* var /* : OptionBool */;
1847 val* var1 /* : OptionBool */;
1848 val* var3 /* : OptionBool */;
1849 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:Object(ToolContext)> */
1850 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:Object(ToolContext)> */
1851 if (unlikely(var3 == NULL)) {
1852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
1853 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 187);
1854 show_backtrace(1);
1855 }
1856 var1 = var3;
1857 RET_LABEL2:(void)0;
1858 }
1859 var = var1;
1860 RET_LABEL:;
1861 return var;
1862 }
1863 /* method toolcontext#ToolContext#opt_verbose for (self: ToolContext): OptionCount */
1864 val* toolcontext__ToolContext__opt_verbose(val* self) {
1865 val* var /* : OptionCount */;
1866 val* var1 /* : OptionCount */;
1867 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
1868 if (unlikely(var1 == NULL)) {
1869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
1870 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 190);
1871 show_backtrace(1);
1872 }
1873 var = var1;
1874 RET_LABEL:;
1875 return var;
1876 }
1877 /* method toolcontext#ToolContext#opt_verbose for (self: Object): OptionCount */
1878 val* VIRTUAL_toolcontext__ToolContext__opt_verbose(val* self) {
1879 val* var /* : OptionCount */;
1880 val* var1 /* : OptionCount */;
1881 val* var3 /* : OptionCount */;
1882 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:Object(ToolContext)> */
1883 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:Object(ToolContext)> */
1884 if (unlikely(var3 == NULL)) {
1885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
1886 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 190);
1887 show_backtrace(1);
1888 }
1889 var1 = var3;
1890 RET_LABEL2:(void)0;
1891 }
1892 var = var1;
1893 RET_LABEL:;
1894 return var;
1895 }
1896 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: ToolContext): OptionBool */
1897 val* toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
1898 val* var /* : OptionBool */;
1899 val* var1 /* : OptionBool */;
1900 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1901 if (unlikely(var1 == NULL)) {
1902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1903 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 193);
1904 show_backtrace(1);
1905 }
1906 var = var1;
1907 RET_LABEL:;
1908 return var;
1909 }
1910 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: Object): OptionBool */
1911 val* VIRTUAL_toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
1912 val* var /* : OptionBool */;
1913 val* var1 /* : OptionBool */;
1914 val* var3 /* : OptionBool */;
1915 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:Object(ToolContext)> */
1916 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:Object(ToolContext)> */
1917 if (unlikely(var3 == NULL)) {
1918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1919 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 193);
1920 show_backtrace(1);
1921 }
1922 var1 = var3;
1923 RET_LABEL2:(void)0;
1924 }
1925 var = var1;
1926 RET_LABEL:;
1927 return var;
1928 }
1929 /* method toolcontext#ToolContext#opt_no_color for (self: ToolContext): OptionBool */
1930 val* toolcontext__ToolContext__opt_no_color(val* self) {
1931 val* var /* : OptionBool */;
1932 val* var1 /* : OptionBool */;
1933 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1934 if (unlikely(var1 == NULL)) {
1935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1936 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 196);
1937 show_backtrace(1);
1938 }
1939 var = var1;
1940 RET_LABEL:;
1941 return var;
1942 }
1943 /* method toolcontext#ToolContext#opt_no_color for (self: Object): OptionBool */
1944 val* VIRTUAL_toolcontext__ToolContext__opt_no_color(val* self) {
1945 val* var /* : OptionBool */;
1946 val* var1 /* : OptionBool */;
1947 val* var3 /* : OptionBool */;
1948 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:Object(ToolContext)> */
1949 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:Object(ToolContext)> */
1950 if (unlikely(var3 == NULL)) {
1951 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1952 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 196);
1953 show_backtrace(1);
1954 }
1955 var1 = var3;
1956 RET_LABEL2:(void)0;
1957 }
1958 var = var1;
1959 RET_LABEL:;
1960 return var;
1961 }
1962 /* method toolcontext#ToolContext#opt_bash_completion for (self: ToolContext): OptionBool */
1963 val* toolcontext__ToolContext__opt_bash_completion(val* self) {
1964 val* var /* : OptionBool */;
1965 val* var1 /* : OptionBool */;
1966 var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
1967 if (unlikely(var1 == NULL)) {
1968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
1969 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 199);
1970 show_backtrace(1);
1971 }
1972 var = var1;
1973 RET_LABEL:;
1974 return var;
1975 }
1976 /* method toolcontext#ToolContext#opt_bash_completion for (self: Object): OptionBool */
1977 val* VIRTUAL_toolcontext__ToolContext__opt_bash_completion(val* self) {
1978 val* var /* : OptionBool */;
1979 val* var1 /* : OptionBool */;
1980 val* var3 /* : OptionBool */;
1981 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:Object(ToolContext)> */
1982 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:Object(ToolContext)> */
1983 if (unlikely(var3 == NULL)) {
1984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
1985 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 199);
1986 show_backtrace(1);
1987 }
1988 var1 = var3;
1989 RET_LABEL2:(void)0;
1990 }
1991 var = var1;
1992 RET_LABEL:;
1993 return var;
1994 }
1995 /* method toolcontext#ToolContext#verbose_level for (self: ToolContext): Int */
1996 long toolcontext__ToolContext__verbose_level(val* self) {
1997 long var /* : Int */;
1998 long var1 /* : Int */;
1999 var1 = self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
2000 var = var1;
2001 RET_LABEL:;
2002 return var;
2003 }
2004 /* method toolcontext#ToolContext#verbose_level for (self: Object): Int */
2005 long VIRTUAL_toolcontext__ToolContext__verbose_level(val* self) {
2006 long var /* : Int */;
2007 long var1 /* : Int */;
2008 long var3 /* : Int */;
2009 { /* Inline toolcontext#ToolContext#verbose_level (self) on <self:Object(ToolContext)> */
2010 var3 = self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:Object(ToolContext)> */
2011 var1 = var3;
2012 RET_LABEL2:(void)0;
2013 }
2014 var = var1;
2015 RET_LABEL:;
2016 return var;
2017 }
2018 /* method toolcontext#ToolContext#verbose_level= for (self: ToolContext, Int) */
2019 void toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
2020 self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:ToolContext> */
2021 RET_LABEL:;
2022 }
2023 /* method toolcontext#ToolContext#verbose_level= for (self: Object, Int) */
2024 void VIRTUAL_toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
2025 { /* Inline toolcontext#ToolContext#verbose_level= (self,p0) on <self:Object(ToolContext)> */
2026 self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:Object(ToolContext)> */
2027 RET_LABEL1:(void)0;
2028 }
2029 RET_LABEL:;
2030 }
2031 /* method toolcontext#ToolContext#init for (self: ToolContext) */
2032 void toolcontext__ToolContext__init(val* self) {
2033 val* var /* : OptionContext */;
2034 val* var2 /* : OptionContext */;
2035 val* var3 /* : OptionCount */;
2036 val* var5 /* : OptionCount */;
2037 val* var6 /* : OptionBool */;
2038 val* var8 /* : OptionBool */;
2039 val* var9 /* : OptionBool */;
2040 val* var11 /* : OptionBool */;
2041 val* var12 /* : OptionBool */;
2042 val* var14 /* : OptionBool */;
2043 val* var15 /* : OptionBool */;
2044 val* var17 /* : OptionBool */;
2045 val* var18 /* : OptionString */;
2046 val* var20 /* : OptionString */;
2047 val* var21 /* : OptionBool */;
2048 val* var23 /* : OptionBool */;
2049 val* var24 /* : OptionBool */;
2050 val* var26 /* : OptionBool */;
2051 val* var27 /* : OptionBool */;
2052 val* var29 /* : OptionBool */;
2053 val* var30 /* : OptionCount */;
2054 val* var32 /* : OptionCount */;
2055 val* var33 /* : OptionBool */;
2056 val* var35 /* : OptionBool */;
2057 val* var36 /* : Array[Option] */;
2058 long var37 /* : Int */;
2059 val* var38 /* : NativeArray[Option] */;
2060 {
2061 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2062 var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2063 if (unlikely(var2 == NULL)) {
2064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2065 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
2066 show_backtrace(1);
2067 }
2068 var = var2;
2069 RET_LABEL1:(void)0;
2070 }
2071 }
2072 {
2073 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2074 var5 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2075 if (unlikely(var5 == NULL)) {
2076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2077 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
2078 show_backtrace(1);
2079 }
2080 var3 = var5;
2081 RET_LABEL4:(void)0;
2082 }
2083 }
2084 {
2085 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
2086 var8 = self->attrs[COLOR_toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2087 if (unlikely(var8 == NULL)) {
2088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2089 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 172);
2090 show_backtrace(1);
2091 }
2092 var6 = var8;
2093 RET_LABEL7:(void)0;
2094 }
2095 }
2096 {
2097 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2098 var11 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2099 if (unlikely(var11 == NULL)) {
2100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2101 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 193);
2102 show_backtrace(1);
2103 }
2104 var9 = var11;
2105 RET_LABEL10:(void)0;
2106 }
2107 }
2108 {
2109 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
2110 var14 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
2111 if (unlikely(var14 == NULL)) {
2112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
2113 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 196);
2114 show_backtrace(1);
2115 }
2116 var12 = var14;
2117 RET_LABEL13:(void)0;
2118 }
2119 }
2120 {
2121 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
2122 var17 = self->attrs[COLOR_toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
2123 if (unlikely(var17 == NULL)) {
2124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
2125 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 175);
2126 show_backtrace(1);
2127 }
2128 var15 = var17;
2129 RET_LABEL16:(void)0;
2130 }
2131 }
2132 {
2133 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
2134 var20 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2135 if (unlikely(var20 == NULL)) {
2136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2137 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 178);
2138 show_backtrace(1);
2139 }
2140 var18 = var20;
2141 RET_LABEL19:(void)0;
2142 }
2143 }
2144 {
2145 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
2146 var23 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
2147 if (unlikely(var23 == NULL)) {
2148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
2149 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 181);
2150 show_backtrace(1);
2151 }
2152 var21 = var23;
2153 RET_LABEL22:(void)0;
2154 }
2155 }
2156 {
2157 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
2158 var26 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
2159 if (unlikely(var26 == NULL)) {
2160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
2161 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 184);
2162 show_backtrace(1);
2163 }
2164 var24 = var26;
2165 RET_LABEL25:(void)0;
2166 }
2167 }
2168 {
2169 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
2170 var29 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
2171 if (unlikely(var29 == NULL)) {
2172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
2173 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 187);
2174 show_backtrace(1);
2175 }
2176 var27 = var29;
2177 RET_LABEL28:(void)0;
2178 }
2179 }
2180 {
2181 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
2182 var32 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
2183 if (unlikely(var32 == NULL)) {
2184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
2185 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 190);
2186 show_backtrace(1);
2187 }
2188 var30 = var32;
2189 RET_LABEL31:(void)0;
2190 }
2191 }
2192 {
2193 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
2194 var35 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2195 if (unlikely(var35 == NULL)) {
2196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2197 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 199);
2198 show_backtrace(1);
2199 }
2200 var33 = var35;
2201 RET_LABEL34:(void)0;
2202 }
2203 }
2204 var36 = NEW_array__Array(&type_array__Arrayopts__Option);
2205 { /* var36 = array_instance Array[Option] */
2206 var37 = 11;
2207 var38 = NEW_array__NativeArray(var37, &type_array__NativeArrayopts__Option);
2208 ((struct instance_array__NativeArray*)var38)->values[0] = (val*) var3;
2209 ((struct instance_array__NativeArray*)var38)->values[1] = (val*) var6;
2210 ((struct instance_array__NativeArray*)var38)->values[2] = (val*) var9;
2211 ((struct instance_array__NativeArray*)var38)->values[3] = (val*) var12;
2212 ((struct instance_array__NativeArray*)var38)->values[4] = (val*) var15;
2213 ((struct instance_array__NativeArray*)var38)->values[5] = (val*) var18;
2214 ((struct instance_array__NativeArray*)var38)->values[6] = (val*) var21;
2215 ((struct instance_array__NativeArray*)var38)->values[7] = (val*) var24;
2216 ((struct instance_array__NativeArray*)var38)->values[8] = (val*) var27;
2217 ((struct instance_array__NativeArray*)var38)->values[9] = (val*) var30;
2218 ((struct instance_array__NativeArray*)var38)->values[10] = (val*) var33;
2219 {
2220 ((void (*)(val*, val*, long))(var36->class->vft[COLOR_array__Array__with_native]))(var36, var38, var37) /* with_native on <var36:Array[Option]>*/;
2221 }
2222 }
2223 {
2224 opts__OptionContext__add_option(var, var36); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
2225 }
2226 RET_LABEL:;
2227 }
2228 /* method toolcontext#ToolContext#init for (self: Object) */
2229 void VIRTUAL_toolcontext__ToolContext__init(val* self) {
2230 toolcontext__ToolContext__init(self); /* Direct call toolcontext#ToolContext#init on <self:Object(ToolContext)>*/
2231 RET_LABEL:;
2232 }
2233 /* method toolcontext#ToolContext#tooldescription for (self: ToolContext): String */
2234 val* toolcontext__ToolContext__tooldescription(val* self) {
2235 val* var /* : String */;
2236 val* var1 /* : String */;
2237 var1 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2238 if (unlikely(var1 == NULL)) {
2239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2240 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 210);
2241 show_backtrace(1);
2242 }
2243 var = var1;
2244 RET_LABEL:;
2245 return var;
2246 }
2247 /* method toolcontext#ToolContext#tooldescription for (self: Object): String */
2248 val* VIRTUAL_toolcontext__ToolContext__tooldescription(val* self) {
2249 val* var /* : String */;
2250 val* var1 /* : String */;
2251 val* var3 /* : String */;
2252 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:Object(ToolContext)> */
2253 var3 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:Object(ToolContext)> */
2254 if (unlikely(var3 == NULL)) {
2255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2256 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 210);
2257 show_backtrace(1);
2258 }
2259 var1 = var3;
2260 RET_LABEL2:(void)0;
2261 }
2262 var = var1;
2263 RET_LABEL:;
2264 return var;
2265 }
2266 /* method toolcontext#ToolContext#tooldescription= for (self: ToolContext, String) */
2267 void toolcontext__ToolContext__tooldescription_61d(val* self, val* p0) {
2268 self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:ToolContext> */
2269 RET_LABEL:;
2270 }
2271 /* method toolcontext#ToolContext#tooldescription= for (self: Object, String) */
2272 void VIRTUAL_toolcontext__ToolContext__tooldescription_61d(val* self, val* p0) {
2273 { /* Inline toolcontext#ToolContext#tooldescription= (self,p0) on <self:Object(ToolContext)> */
2274 self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:Object(ToolContext)> */
2275 RET_LABEL1:(void)0;
2276 }
2277 RET_LABEL:;
2278 }
2279 /* method toolcontext#ToolContext#accept_no_arguments for (self: ToolContext): Bool */
2280 short int toolcontext__ToolContext__accept_no_arguments(val* self) {
2281 short int var /* : Bool */;
2282 short int var1 /* : Bool */;
2283 var1 = self->attrs[COLOR_toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
2284 var = var1;
2285 RET_LABEL:;
2286 return var;
2287 }
2288 /* method toolcontext#ToolContext#accept_no_arguments for (self: Object): Bool */
2289 short int VIRTUAL_toolcontext__ToolContext__accept_no_arguments(val* self) {
2290 short int var /* : Bool */;
2291 short int var1 /* : Bool */;
2292 short int var3 /* : Bool */;
2293 { /* Inline toolcontext#ToolContext#accept_no_arguments (self) on <self:Object(ToolContext)> */
2294 var3 = self->attrs[COLOR_toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:Object(ToolContext)> */
2295 var1 = var3;
2296 RET_LABEL2:(void)0;
2297 }
2298 var = var1;
2299 RET_LABEL:;
2300 return var;
2301 }
2302 /* method toolcontext#ToolContext#usage for (self: ToolContext) */
2303 void toolcontext__ToolContext__usage(val* self) {
2304 val* var /* : String */;
2305 val* var2 /* : String */;
2306 val* var3 /* : OptionContext */;
2307 val* var5 /* : OptionContext */;
2308 {
2309 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
2310 var2 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2311 if (unlikely(var2 == NULL)) {
2312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2313 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 210);
2314 show_backtrace(1);
2315 }
2316 var = var2;
2317 RET_LABEL1:(void)0;
2318 }
2319 }
2320 {
2321 file__Object__print(self, var); /* Direct call file#Object#print on <self:ToolContext>*/
2322 }
2323 {
2324 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2325 var5 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2326 if (unlikely(var5 == NULL)) {
2327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2328 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
2329 show_backtrace(1);
2330 }
2331 var3 = var5;
2332 RET_LABEL4:(void)0;
2333 }
2334 }
2335 {
2336 opts__OptionContext__usage(var3); /* Direct call opts#OptionContext#usage on <var3:OptionContext>*/
2337 }
2338 RET_LABEL:;
2339 }
2340 /* method toolcontext#ToolContext#usage for (self: Object) */
2341 void VIRTUAL_toolcontext__ToolContext__usage(val* self) {
2342 toolcontext__ToolContext__usage(self); /* Direct call toolcontext#ToolContext#usage on <self:Object(ToolContext)>*/
2343 RET_LABEL:;
2344 }
2345 /* method toolcontext#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
2346 void toolcontext__ToolContext__process_options(val* self, val* p0) {
2347 val* var_args /* var args: Sequence[String] */;
2348 val* var /* : OptionCount */;
2349 val* var2 /* : OptionCount */;
2350 long var3 /* : Int */;
2351 short int var5 /* : Bool */;
2352 int cltype;
2353 int idtype;
2354 const struct type* type_struct;
2355 const char* var_class_name;
2356 val* var6 /* : nullable Object */;
2357 val* var7 /* : OptionContext */;
2358 val* var9 /* : OptionContext */;
2359 val* var10 /* : OptionBool */;
2360 val* var12 /* : OptionBool */;
2361 val* var13 /* : nullable Object */;
2362 val* var15 /* : nullable Object */;
2363 short int var16 /* : Bool */;
2364 long var17 /* : Int */;
2365 val* var19 /* : OptionBool */;
2366 val* var21 /* : OptionBool */;
2367 val* var22 /* : nullable Object */;
2368 val* var24 /* : nullable Object */;
2369 short int var25 /* : Bool */;
2370 val* var26 /* : String */;
2371 long var27 /* : Int */;
2372 val* var29 /* : OptionBool */;
2373 val* var31 /* : OptionBool */;
2374 val* var32 /* : nullable Object */;
2375 val* var34 /* : nullable Object */;
2376 short int var35 /* : Bool */;
2377 val* var36 /* : BashCompletion */;
2378 val* var_bash_completion /* var bash_completion: BashCompletion */;
2379 val* var37 /* : Sys */;
2380 val* var39 /* : Sys */;
2381 val* var40 /* : OStream */;
2382 val* var42 /* : OStream */;
2383 long var43 /* : Int */;
2384 val* var45 /* : OptionContext */;
2385 val* var47 /* : OptionContext */;
2386 val* var48 /* : Array[String] */;
2387 val* var_errors /* var errors: Array[String] */;
2388 short int var49 /* : Bool */;
2389 short int var50 /* : Bool */;
2390 val* var51 /* : ArrayIterator[nullable Object] */;
2391 short int var52 /* : Bool */;
2392 val* var53 /* : nullable Object */;
2393 val* var_e /* var e: String */;
2394 static val* varonce;
2395 val* var54 /* : String */;
2396 char* var55 /* : NativeString */;
2397 long var56 /* : Int */;
2398 val* var57 /* : FlatString */;
2399 val* var58 /* : Array[Object] */;
2400 long var59 /* : Int */;
2401 val* var60 /* : NativeArray[Object] */;
2402 val* var61 /* : String */;
2403 val* var62 /* : String */;
2404 val* var64 /* : String */;
2405 static val* varonce65;
2406 val* var66 /* : String */;
2407 char* var67 /* : NativeString */;
2408 long var68 /* : Int */;
2409 val* var69 /* : FlatString */;
2410 long var70 /* : Int */;
2411 short int var72 /* : Bool */;
2412 val* var73 /* : OptionContext */;
2413 val* var75 /* : OptionContext */;
2414 val* var76 /* : Array[String] */;
2415 val* var78 /* : Array[String] */;
2416 short int var79 /* : Bool */;
2417 short int var_ /* var : Bool */;
2418 short int var80 /* : Bool */;
2419 short int var82 /* : Bool */;
2420 short int var83 /* : Bool */;
2421 val* var84 /* : String */;
2422 val* var86 /* : String */;
2423 static val* varonce87;
2424 val* var88 /* : String */;
2425 char* var89 /* : NativeString */;
2426 long var90 /* : Int */;
2427 val* var91 /* : FlatString */;
2428 long var92 /* : Int */;
2429 val* var94 /* : OptionCount */;
2430 val* var96 /* : OptionCount */;
2431 val* var97 /* : nullable Object */;
2432 val* var99 /* : nullable Object */;
2433 long var101 /* : Int */;
2434 val* var102 /* : OptionBool */;
2435 val* var104 /* : OptionBool */;
2436 val* var105 /* : nullable Object */;
2437 val* var107 /* : nullable Object */;
2438 short int var108 /* : Bool */;
2439 val* var109 /* : OptionCount */;
2440 val* var111 /* : OptionCount */;
2441 long var112 /* : Int */;
2442 short int var114 /* : Bool */;
2443 int cltype115;
2444 int idtype116;
2445 const struct type* type_struct117;
2446 const char* var_class_name118;
2447 val* var119 /* : nullable Object */;
2448 val* var120 /* : OptionString */;
2449 val* var122 /* : OptionString */;
2450 val* var123 /* : nullable Object */;
2451 val* var125 /* : nullable Object */;
2452 val* var126 /* : null */;
2453 short int var127 /* : Bool */;
2454 short int var128 /* : Bool */;
2455 val* var_other /* var other: nullable Object */;
2456 short int var130 /* : Bool */;
2457 short int var131 /* : Bool */;
2458 short int var132 /* : Bool */;
2459 val* var133 /* : OptionString */;
2460 val* var135 /* : OptionString */;
2461 val* var136 /* : nullable Object */;
2462 val* var138 /* : nullable Object */;
2463 val* var140 /* : OptionBool */;
2464 val* var142 /* : OptionBool */;
2465 val* var143 /* : nullable Object */;
2466 val* var145 /* : nullable Object */;
2467 short int var146 /* : Bool */;
2468 val* var147 /* : String */;
2469 val* var149 /* : String */;
2470 val* var150 /* : nullable String */;
2471 var_args = p0;
2472 {
2473 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2474 var2 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2475 if (unlikely(var2 == NULL)) {
2476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2477 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
2478 show_backtrace(1);
2479 }
2480 var = var2;
2481 RET_LABEL1:(void)0;
2482 }
2483 }
2484 var3 = 1;
2485 {
2486 { /* Inline opts#Option#value= (var,var3) on <var:OptionCount> */
2487 /* Covariant cast for argument 0 (value) <var3:Int> isa VALUE */
2488 /* <var3:Int> isa VALUE */
2489 type_struct = var->type->resolution_table->types[COLOR_opts__Option_VTVALUE];
2490 cltype = type_struct->color;
2491 idtype = type_struct->id;
2492 if(cltype >= (&type_kernel__Int)->table_size) {
2493 var5 = 0;
2494 } else {
2495 var5 = (&type_kernel__Int)->type_table[cltype] == idtype;
2496 }
2497 if (unlikely(!var5)) {
2498 var_class_name = type_kernel__Int.name;
2499 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
2500 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40);
2501 show_backtrace(1);
2502 }
2503 var6 = BOX_kernel__Int(var3); /* autobox from Int to nullable Object */
2504 var->attrs[COLOR_opts__Option___value].val = var6; /* _value on <var:OptionCount> */
2505 RET_LABEL4:(void)0;
2506 }
2507 }
2508 {
2509 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2510 var9 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2511 if (unlikely(var9 == NULL)) {
2512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2513 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
2514 show_backtrace(1);
2515 }
2516 var7 = var9;
2517 RET_LABEL8:(void)0;
2518 }
2519 }
2520 {
2521 opts__OptionContext__parse(var7, var_args); /* Direct call opts#OptionContext#parse on <var7:OptionContext>*/
2522 }
2523 {
2524 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
2525 var12 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
2526 if (unlikely(var12 == NULL)) {
2527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
2528 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 181);
2529 show_backtrace(1);
2530 }
2531 var10 = var12;
2532 RET_LABEL11:(void)0;
2533 }
2534 }
2535 {
2536 { /* Inline opts#Option#value (var10) on <var10:OptionBool> */
2537 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
2538 var13 = var15;
2539 RET_LABEL14:(void)0;
2540 }
2541 }
2542 var16 = ((struct instance_kernel__Bool*)var13)->value; /* autounbox from nullable Object to Bool */;
2543 if (var16){
2544 {
2545 toolcontext__ToolContext__usage(self); /* Direct call toolcontext#ToolContext#usage on <self:ToolContext>*/
2546 }
2547 var17 = 0;
2548 {
2549 { /* Inline kernel#Object#exit (self,var17) on <self:ToolContext> */
2550 exit(var17);
2551 RET_LABEL18:(void)0;
2552 }
2553 }
2554 } else {
2555 }
2556 {
2557 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
2558 var21 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
2559 if (unlikely(var21 == NULL)) {
2560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
2561 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 184);
2562 show_backtrace(1);
2563 }
2564 var19 = var21;
2565 RET_LABEL20:(void)0;
2566 }
2567 }
2568 {
2569 { /* Inline opts#Option#value (var19) on <var19:OptionBool> */
2570 var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on <var19:OptionBool> */
2571 var22 = var24;
2572 RET_LABEL23:(void)0;
2573 }
2574 }
2575 var25 = ((struct instance_kernel__Bool*)var22)->value; /* autounbox from nullable Object to Bool */;
2576 if (var25){
2577 {
2578 var26 = toolcontext__ToolContext__version(self);
2579 }
2580 {
2581 file__Object__print(self, var26); /* Direct call file#Object#print on <self:ToolContext>*/
2582 }
2583 var27 = 0;
2584 {
2585 { /* Inline kernel#Object#exit (self,var27) on <self:ToolContext> */
2586 exit(var27);
2587 RET_LABEL28:(void)0;
2588 }
2589 }
2590 } else {
2591 }
2592 {
2593 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
2594 var31 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2595 if (unlikely(var31 == NULL)) {
2596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2597 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 199);
2598 show_backtrace(1);
2599 }
2600 var29 = var31;
2601 RET_LABEL30:(void)0;
2602 }
2603 }
2604 {
2605 { /* Inline opts#Option#value (var29) on <var29:OptionBool> */
2606 var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on <var29:OptionBool> */
2607 var32 = var34;
2608 RET_LABEL33:(void)0;
2609 }
2610 }
2611 var35 = ((struct instance_kernel__Bool*)var32)->value; /* autounbox from nullable Object to Bool */;
2612 if (var35){
2613 var36 = NEW_toolcontext__BashCompletion(&type_toolcontext__BashCompletion);
2614 {
2615 toolcontext__BashCompletion__init(var36, self); /* Direct call toolcontext#BashCompletion#init on <var36:BashCompletion>*/
2616 }
2617 var_bash_completion = var36;
2618 {
2619 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
2620 var39 = glob_sys;
2621 var37 = var39;
2622 goto RET_LABEL38;
2623 RET_LABEL38:(void)0;
2624 }
2625 }
2626 {
2627 { /* Inline file#Sys#stdout (var37) on <var37:Sys> */
2628 var42 = var37->attrs[COLOR_file__Sys___stdout].val; /* _stdout on <var37:Sys> */
2629 if (unlikely(var42 == NULL)) {
2630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2631 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2632 show_backtrace(1);
2633 }
2634 var40 = var42;
2635 RET_LABEL41:(void)0;
2636 }
2637 }
2638 {
2639 template__Template__write_to(var_bash_completion, var40); /* Direct call template#Template#write_to on <var_bash_completion:BashCompletion>*/
2640 }
2641 var43 = 0;
2642 {
2643 { /* Inline kernel#Object#exit (self,var43) on <self:ToolContext> */
2644 exit(var43);
2645 RET_LABEL44:(void)0;
2646 }
2647 }
2648 } else {
2649 }
2650 {
2651 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2652 var47 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2653 if (unlikely(var47 == NULL)) {
2654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2655 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
2656 show_backtrace(1);
2657 }
2658 var45 = var47;
2659 RET_LABEL46:(void)0;
2660 }
2661 }
2662 {
2663 var48 = opts__OptionContext__get_errors(var45);
2664 }
2665 var_errors = var48;
2666 {
2667 var49 = array__AbstractArrayRead__is_empty(var_errors);
2668 }
2669 var50 = !var49;
2670 if (var50){
2671 {
2672 var51 = array__AbstractArrayRead__iterator(var_errors);
2673 }
2674 for(;;) {
2675 {
2676 var52 = array__ArrayIterator__is_ok(var51);
2677 }
2678 if(!var52) break;
2679 {
2680 var53 = array__ArrayIterator__item(var51);
2681 }
2682 var_e = var53;
2683 if (varonce) {
2684 var54 = varonce;
2685 } else {
2686 var55 = "Error: ";
2687 var56 = 7;
2688 var57 = string__NativeString__to_s_with_length(var55, var56);
2689 var54 = var57;
2690 varonce = var54;
2691 }
2692 var58 = NEW_array__Array(&type_array__Arraykernel__Object);
2693 { /* var58 = array_instance Array[Object] */
2694 var59 = 2;
2695 var60 = NEW_array__NativeArray(var59, &type_array__NativeArraykernel__Object);
2696 ((struct instance_array__NativeArray*)var60)->values[0] = (val*) var54;
2697 ((struct instance_array__NativeArray*)var60)->values[1] = (val*) var_e;
2698 {
2699 ((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
2700 }
2701 }
2702 {
2703 var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
2704 }
2705 {
2706 file__Object__print(self, var61); /* Direct call file#Object#print on <self:ToolContext>*/
2707 }
2708 CONTINUE_label: (void)0;
2709 {
2710 array__ArrayIterator__next(var51); /* Direct call array#ArrayIterator#next on <var51:ArrayIterator[nullable Object]>*/
2711 }
2712 }
2713 BREAK_label: (void)0;
2714 {
2715 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
2716 var64 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2717 if (unlikely(var64 == NULL)) {
2718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2719 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 210);
2720 show_backtrace(1);
2721 }
2722 var62 = var64;
2723 RET_LABEL63:(void)0;
2724 }
2725 }
2726 {
2727 file__Object__print(self, var62); /* Direct call file#Object#print on <self:ToolContext>*/
2728 }
2729 if (varonce65) {
2730 var66 = varonce65;
2731 } else {
2732 var67 = "Use --help for help";
2733 var68 = 19;
2734 var69 = string__NativeString__to_s_with_length(var67, var68);
2735 var66 = var69;
2736 varonce65 = var66;
2737 }
2738 {
2739 file__Object__print(self, var66); /* Direct call file#Object#print on <self:ToolContext>*/
2740 }
2741 var70 = 1;
2742 {
2743 { /* Inline kernel#Object#exit (self,var70) on <self:ToolContext> */
2744 exit(var70);
2745 RET_LABEL71:(void)0;
2746 }
2747 }
2748 } else {
2749 }
2750 {
2751 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2752 var75 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2753 if (unlikely(var75 == NULL)) {
2754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2755 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
2756 show_backtrace(1);
2757 }
2758 var73 = var75;
2759 RET_LABEL74:(void)0;
2760 }
2761 }
2762 {
2763 { /* Inline opts#OptionContext#rest (var73) on <var73:OptionContext> */
2764 var78 = var73->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <var73:OptionContext> */
2765 if (unlikely(var78 == NULL)) {
2766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
2767 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 250);
2768 show_backtrace(1);
2769 }
2770 var76 = var78;
2771 RET_LABEL77:(void)0;
2772 }
2773 }
2774 {
2775 var79 = array__AbstractArrayRead__is_empty(var76);
2776 }
2777 var_ = var79;
2778 if (var79){
2779 {
2780 { /* Inline toolcontext#ToolContext#accept_no_arguments (self) on <self:ToolContext> */
2781 var82 = self->attrs[COLOR_toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
2782 var80 = var82;
2783 RET_LABEL81:(void)0;
2784 }
2785 }
2786 var83 = !var80;
2787 var72 = var83;
2788 } else {
2789 var72 = var_;
2790 }
2791 if (var72){
2792 {
2793 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
2794 var86 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2795 if (unlikely(var86 == NULL)) {
2796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2797 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 210);
2798 show_backtrace(1);
2799 }
2800 var84 = var86;
2801 RET_LABEL85:(void)0;
2802 }
2803 }
2804 {
2805 file__Object__print(self, var84); /* Direct call file#Object#print on <self:ToolContext>*/
2806 }
2807 if (varonce87) {
2808 var88 = varonce87;
2809 } else {
2810 var89 = "Use --help for help";
2811 var90 = 19;
2812 var91 = string__NativeString__to_s_with_length(var89, var90);
2813 var88 = var91;
2814 varonce87 = var88;
2815 }
2816 {
2817 file__Object__print(self, var88); /* Direct call file#Object#print on <self:ToolContext>*/
2818 }
2819 var92 = 1;
2820 {
2821 { /* Inline kernel#Object#exit (self,var92) on <self:ToolContext> */
2822 exit(var92);
2823 RET_LABEL93:(void)0;
2824 }
2825 }
2826 } else {
2827 }
2828 {
2829 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
2830 var96 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
2831 if (unlikely(var96 == NULL)) {
2832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
2833 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 190);
2834 show_backtrace(1);
2835 }
2836 var94 = var96;
2837 RET_LABEL95:(void)0;
2838 }
2839 }
2840 {
2841 { /* Inline opts#Option#value (var94) on <var94:OptionCount> */
2842 var99 = var94->attrs[COLOR_opts__Option___value].val; /* _value on <var94:OptionCount> */
2843 var97 = var99;
2844 RET_LABEL98:(void)0;
2845 }
2846 }
2847 {
2848 { /* Inline toolcontext#ToolContext#verbose_level= (self,var97) on <self:ToolContext> */
2849 var101 = ((struct instance_kernel__Int*)var97)->value; /* autounbox from nullable Object to Int */;
2850 self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l = var101; /* _verbose_level on <self:ToolContext> */
2851 RET_LABEL100:(void)0;
2852 }
2853 }
2854 {
2855 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
2856 var104 = self->attrs[COLOR_toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2857 if (unlikely(var104 == NULL)) {
2858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2859 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 172);
2860 show_backtrace(1);
2861 }
2862 var102 = var104;
2863 RET_LABEL103:(void)0;
2864 }
2865 }
2866 {
2867 { /* Inline opts#Option#value (var102) on <var102:OptionBool> */
2868 var107 = var102->attrs[COLOR_opts__Option___value].val; /* _value on <var102:OptionBool> */
2869 var105 = var107;
2870 RET_LABEL106:(void)0;
2871 }
2872 }
2873 var108 = ((struct instance_kernel__Bool*)var105)->value; /* autounbox from nullable Object to Bool */;
2874 if (var108){
2875 {
2876 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2877 var111 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2878 if (unlikely(var111 == NULL)) {
2879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2880 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 169);
2881 show_backtrace(1);
2882 }
2883 var109 = var111;
2884 RET_LABEL110:(void)0;
2885 }
2886 }
2887 var112 = 0;
2888 {
2889 { /* Inline opts#Option#value= (var109,var112) on <var109:OptionCount> */
2890 /* Covariant cast for argument 0 (value) <var112:Int> isa VALUE */
2891 /* <var112:Int> isa VALUE */
2892 type_struct117 = var109->type->resolution_table->types[COLOR_opts__Option_VTVALUE];
2893 cltype115 = type_struct117->color;
2894 idtype116 = type_struct117->id;
2895 if(cltype115 >= (&type_kernel__Int)->table_size) {
2896 var114 = 0;
2897 } else {
2898 var114 = (&type_kernel__Int)->type_table[cltype115] == idtype116;
2899 }
2900 if (unlikely(!var114)) {
2901 var_class_name118 = type_kernel__Int.name;
2902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name118);
2903 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40);
2904 show_backtrace(1);
2905 }
2906 var119 = BOX_kernel__Int(var112); /* autobox from Int to nullable Object */
2907 var109->attrs[COLOR_opts__Option___value].val = var119; /* _value on <var109:OptionCount> */
2908 RET_LABEL113:(void)0;
2909 }
2910 }
2911 } else {
2912 }
2913 {
2914 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
2915 var122 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2916 if (unlikely(var122 == NULL)) {
2917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2918 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 178);
2919 show_backtrace(1);
2920 }
2921 var120 = var122;
2922 RET_LABEL121:(void)0;
2923 }
2924 }
2925 {
2926 { /* Inline opts#Option#value (var120) on <var120:OptionString> */
2927 var125 = var120->attrs[COLOR_opts__Option___value].val; /* _value on <var120:OptionString> */
2928 var123 = var125;
2929 RET_LABEL124:(void)0;
2930 }
2931 }
2932 var126 = NULL;
2933 if (var123 == NULL) {
2934 var127 = 0; /* is null */
2935 } else {
2936 var127 = 1; /* arg is null and recv is not */
2937 }
2938 if (0) {
2939 { /* Inline kernel#Object#!= (var123,var126) on <var123:nullable Object(nullable String)> */
2940 var_other = var126;
2941 {
2942 var131 = ((short int (*)(val*, val*))(var123->class->vft[COLOR_kernel__Object___61d_61d]))(var123, var_other) /* == on <var123:nullable String(String)>*/;
2943 var130 = var131;
2944 }
2945 var132 = !var130;
2946 var128 = var132;
2947 goto RET_LABEL129;
2948 RET_LABEL129:(void)0;
2949 }
2950 var127 = var128;
2951 }
2952 if (var127){
2953 {
2954 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
2955 var135 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2956 if (unlikely(var135 == NULL)) {
2957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2958 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 178);
2959 show_backtrace(1);
2960 }
2961 var133 = var135;
2962 RET_LABEL134:(void)0;
2963 }
2964 }
2965 {
2966 { /* Inline opts#Option#value (var133) on <var133:OptionString> */
2967 var138 = var133->attrs[COLOR_opts__Option___value].val; /* _value on <var133:OptionString> */
2968 var136 = var138;
2969 RET_LABEL137:(void)0;
2970 }
2971 }
2972 if (unlikely(var136 == NULL)) {
2973 PRINT_ERROR("Runtime error: %s", "Cast failed");
2974 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 277);
2975 show_backtrace(1);
2976 }
2977 {
2978 { /* Inline toolcontext#ToolContext#log_directory= (self,var136) on <self:ToolContext> */
2979 self->attrs[COLOR_toolcontext__ToolContext___log_directory].val = var136; /* _log_directory on <self:ToolContext> */
2980 RET_LABEL139:(void)0;
2981 }
2982 }
2983 } else {
2984 }
2985 {
2986 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
2987 var142 = self->attrs[COLOR_toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
2988 if (unlikely(var142 == NULL)) {
2989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
2990 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 175);
2991 show_backtrace(1);
2992 }
2993 var140 = var142;
2994 RET_LABEL141:(void)0;
2995 }
2996 }
2997 {
2998 { /* Inline opts#Option#value (var140) on <var140:OptionBool> */
2999 var145 = var140->attrs[COLOR_opts__Option___value].val; /* _value on <var140:OptionBool> */
3000 var143 = var145;
3001 RET_LABEL144:(void)0;
3002 }
3003 }
3004 var146 = ((struct instance_kernel__Bool*)var143)->value; /* autounbox from nullable Object to Bool */;
3005 if (var146){
3006 {
3007 { /* Inline toolcontext#ToolContext#log_directory (self) on <self:ToolContext> */
3008 var149 = self->attrs[COLOR_toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
3009 if (unlikely(var149 == NULL)) {
3010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
3011 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 81);
3012 show_backtrace(1);
3013 }
3014 var147 = var149;
3015 RET_LABEL148:(void)0;
3016 }
3017 }
3018 {
3019 file__String__mkdir(var147); /* Direct call file#String#mkdir on <var147:String>*/
3020 }
3021 } else {
3022 }
3023 {
3024 var150 = toolcontext__ToolContext__compute_nit_dir(self);
3025 }
3026 {
3027 { /* Inline toolcontext#ToolContext#nit_dir= (self,var150) on <self:ToolContext> */
3028 self->attrs[COLOR_toolcontext__ToolContext___nit_dir].val = var150; /* _nit_dir on <self:ToolContext> */
3029 RET_LABEL151:(void)0;
3030 }
3031 }
3032 RET_LABEL:;
3033 }
3034 /* method toolcontext#ToolContext#process_options for (self: Object, Sequence[String]) */
3035 void VIRTUAL_toolcontext__ToolContext__process_options(val* self, val* p0) {
3036 toolcontext__ToolContext__process_options(self, p0); /* Direct call toolcontext#ToolContext#process_options on <self:Object(ToolContext)>*/
3037 RET_LABEL:;
3038 }
3039 /* method toolcontext#ToolContext#version for (self: ToolContext): String */
3040 val* toolcontext__ToolContext__version(val* self) {
3041 val* var /* : String */;
3042 val* var1 /* : OptionBool */;
3043 val* var3 /* : OptionBool */;
3044 val* var4 /* : nullable Object */;
3045 val* var6 /* : nullable Object */;
3046 short int var7 /* : Bool */;
3047 static val* varonce;
3048 val* var8 /* : String */;
3049 char* var9 /* : NativeString */;
3050 long var10 /* : Int */;
3051 val* var11 /* : FlatString */;
3052 val* var12 /* : String */;
3053 {
3054 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
3055 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
3056 if (unlikely(var3 == NULL)) {
3057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
3058 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 187);
3059 show_backtrace(1);
3060 }
3061 var1 = var3;
3062 RET_LABEL2:(void)0;
3063 }
3064 }
3065 {
3066 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
3067 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
3068 var4 = var6;
3069 RET_LABEL5:(void)0;
3070 }
3071 }
3072 var7 = ((struct instance_kernel__Bool*)var4)->value; /* autounbox from nullable Object to Bool */;
3073 if (var7){
3074 if (varonce) {
3075 var8 = varonce;
3076 } else {
3077 var9 = "DUMMY_VERSION";
3078 var10 = 13;
3079 var11 = string__NativeString__to_s_with_length(var9, var10);
3080 var8 = var11;
3081 varonce = var8;
3082 }
3083 var = var8;
3084 goto RET_LABEL;
3085 } else {
3086 }
3087 {
3088 var12 = version__Object__nit_version(self);
3089 }
3090 var = var12;
3091 goto RET_LABEL;
3092 RET_LABEL:;
3093 return var;
3094 }
3095 /* method toolcontext#ToolContext#version for (self: Object): String */
3096 val* VIRTUAL_toolcontext__ToolContext__version(val* self) {
3097 val* var /* : String */;
3098 val* var1 /* : String */;
3099 var1 = toolcontext__ToolContext__version(self);
3100 var = var1;
3101 RET_LABEL:;
3102 return var;
3103 }
3104 /* method toolcontext#ToolContext#toolname for (self: ToolContext): String */
3105 val* toolcontext__ToolContext__toolname(val* self) {
3106 val* var /* : String */;
3107 val* var1 /* : OptionBool */;
3108 val* var3 /* : OptionBool */;
3109 val* var4 /* : nullable Object */;
3110 val* var6 /* : nullable Object */;
3111 short int var7 /* : Bool */;
3112 static val* varonce;
3113 val* var8 /* : String */;
3114 char* var9 /* : NativeString */;
3115 long var10 /* : Int */;
3116 val* var11 /* : FlatString */;
3117 val* var12 /* : Sys */;
3118 val* var14 /* : Sys */;
3119 val* var15 /* : String */;
3120 static val* varonce16;
3121 val* var17 /* : String */;
3122 char* var18 /* : NativeString */;
3123 long var19 /* : Int */;
3124 val* var20 /* : FlatString */;
3125 val* var21 /* : String */;
3126 {
3127 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
3128 var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
3129 if (unlikely(var3 == NULL)) {
3130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
3131 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 187);
3132 show_backtrace(1);
3133 }
3134 var1 = var3;
3135 RET_LABEL2:(void)0;
3136 }
3137 }
3138 {
3139 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
3140 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
3141 var4 = var6;
3142 RET_LABEL5:(void)0;
3143 }
3144 }
3145 var7 = ((struct instance_kernel__Bool*)var4)->value; /* autounbox from nullable Object to Bool */;
3146 if (var7){
3147 if (varonce) {
3148 var8 = varonce;
3149 } else {
3150 var9 = "DUMMY_TOOL";
3151 var10 = 10;
3152 var11 = string__NativeString__to_s_with_length(var9, var10);
3153 var8 = var11;
3154 varonce = var8;
3155 }
3156 var = var8;
3157 goto RET_LABEL;
3158 } else {
3159 }
3160 {
3161 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
3162 var14 = glob_sys;
3163 var12 = var14;
3164 goto RET_LABEL13;
3165 RET_LABEL13:(void)0;
3166 }
3167 }
3168 {
3169 var15 = string__Sys__program_name(var12);
3170 }
3171 if (varonce16) {
3172 var17 = varonce16;
3173 } else {
3174 var18 = "";
3175 var19 = 0;
3176 var20 = string__NativeString__to_s_with_length(var18, var19);
3177 var17 = var20;
3178 varonce16 = var17;
3179 }
3180 {
3181 var21 = file__String__basename(var15, var17);
3182 }
3183 var = var21;
3184 goto RET_LABEL;
3185 RET_LABEL:;
3186 return var;
3187 }
3188 /* method toolcontext#ToolContext#toolname for (self: Object): String */
3189 val* VIRTUAL_toolcontext__ToolContext__toolname(val* self) {
3190 val* var /* : String */;
3191 val* var1 /* : String */;
3192 var1 = toolcontext__ToolContext__toolname(self);
3193 var = var1;
3194 RET_LABEL:;
3195 return var;
3196 }
3197 /* method toolcontext#ToolContext#nit_dir for (self: ToolContext): nullable String */
3198 val* toolcontext__ToolContext__nit_dir(val* self) {
3199 val* var /* : nullable String */;
3200 val* var1 /* : nullable String */;
3201 var1 = self->attrs[COLOR_toolcontext__ToolContext___nit_dir].val; /* _nit_dir on <self:ToolContext> */
3202 var = var1;
3203 RET_LABEL:;
3204 return var;
3205 }
3206 /* method toolcontext#ToolContext#nit_dir for (self: Object): nullable String */
3207 val* VIRTUAL_toolcontext__ToolContext__nit_dir(val* self) {
3208 val* var /* : nullable String */;
3209 val* var1 /* : nullable String */;
3210 val* var3 /* : nullable String */;
3211 { /* Inline toolcontext#ToolContext#nit_dir (self) on <self:Object(ToolContext)> */
3212 var3 = self->attrs[COLOR_toolcontext__ToolContext___nit_dir].val; /* _nit_dir on <self:Object(ToolContext)> */
3213 var1 = var3;
3214 RET_LABEL2:(void)0;
3215 }
3216 var = var1;
3217 RET_LABEL:;
3218 return var;
3219 }
3220 /* method toolcontext#ToolContext#nit_dir= for (self: ToolContext, nullable String) */
3221 void toolcontext__ToolContext__nit_dir_61d(val* self, val* p0) {
3222 self->attrs[COLOR_toolcontext__ToolContext___nit_dir].val = p0; /* _nit_dir on <self:ToolContext> */
3223 RET_LABEL:;
3224 }
3225 /* method toolcontext#ToolContext#nit_dir= for (self: Object, nullable String) */
3226 void VIRTUAL_toolcontext__ToolContext__nit_dir_61d(val* self, val* p0) {
3227 { /* Inline toolcontext#ToolContext#nit_dir= (self,p0) on <self:Object(ToolContext)> */
3228 self->attrs[COLOR_toolcontext__ToolContext___nit_dir].val = p0; /* _nit_dir on <self:Object(ToolContext)> */
3229 RET_LABEL1:(void)0;
3230 }
3231 RET_LABEL:;
3232 }
3233 /* method toolcontext#ToolContext#compute_nit_dir for (self: ToolContext): nullable String */
3234 val* toolcontext__ToolContext__compute_nit_dir(val* self) {
3235 val* var /* : nullable String */;
3236 static val* varonce;
3237 val* var1 /* : String */;
3238 char* var2 /* : NativeString */;
3239 long var3 /* : Int */;
3240 val* var4 /* : FlatString */;
3241 val* var5 /* : String */;
3242 val* var_res /* var res: String */;
3243 short int var6 /* : Bool */;
3244 short int var7 /* : Bool */;
3245 val* var8 /* : Sys */;
3246 val* var10 /* : Sys */;
3247 val* var11 /* : String */;
3248 val* var12 /* : String */;
3249 static val* varonce13;
3250 val* var14 /* : String */;
3251 char* var15 /* : NativeString */;
3252 long var16 /* : Int */;
3253 val* var17 /* : FlatString */;
3254 val* var18 /* : Array[Object] */;
3255 long var19 /* : Int */;
3256 val* var20 /* : NativeArray[Object] */;
3257 val* var21 /* : String */;
3258 short int var22 /* : Bool */;
3259 short int var23 /* : Bool */;
3260 short int var_ /* var : Bool */;
3261 static val* varonce24;
3262 val* var25 /* : String */;
3263 char* var26 /* : NativeString */;
3264 long var27 /* : Int */;
3265 val* var28 /* : FlatString */;
3266 val* var29 /* : Array[Object] */;
3267 long var30 /* : Int */;
3268 val* var31 /* : NativeArray[Object] */;
3269 val* var32 /* : String */;
3270 short int var33 /* : Bool */;
3271 val* var34 /* : String */;
3272 static val* varonce35;
3273 val* var36 /* : String */;
3274 char* var37 /* : NativeString */;
3275 long var38 /* : Int */;
3276 val* var39 /* : FlatString */;
3277 val* var_exe /* var exe: String */;
3278 short int var40 /* : Bool */;
3279 val* var41 /* : String */;
3280 val* var42 /* : String */;
3281 static val* varonce43;
3282 val* var44 /* : String */;
3283 char* var45 /* : NativeString */;
3284 long var46 /* : Int */;
3285 val* var47 /* : FlatString */;
3286 val* var48 /* : String */;
3287 short int var49 /* : Bool */;
3288 short int var50 /* : Bool */;
3289 short int var_51 /* var : Bool */;
3290 static val* varonce52;
3291 val* var53 /* : String */;
3292 char* var54 /* : NativeString */;
3293 long var55 /* : Int */;
3294 val* var56 /* : FlatString */;
3295 val* var57 /* : Array[Object] */;
3296 long var58 /* : Int */;
3297 val* var59 /* : NativeArray[Object] */;
3298 val* var60 /* : String */;
3299 short int var61 /* : Bool */;
3300 val* var62 /* : String */;
3301 val* var63 /* : null */;
3302 if (varonce) {
3303 var1 = varonce;
3304 } else {
3305 var2 = "NIT_DIR";
3306 var3 = 7;
3307 var4 = string__NativeString__to_s_with_length(var2, var3);
3308 var1 = var4;
3309 varonce = var1;
3310 }
3311 {
3312 var5 = environ__String__environ(var1);
3313 }
3314 var_res = var5;
3315 {
3316 var6 = string__Text__is_empty(var_res);
3317 }
3318 var7 = !var6;
3319 if (var7){
3320 var = var_res;
3321 goto RET_LABEL;
3322 } else {
3323 }
3324 {
3325 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
3326 var10 = glob_sys;
3327 var8 = var10;
3328 goto RET_LABEL9;
3329 RET_LABEL9:(void)0;
3330 }
3331 }
3332 {
3333 var11 = string__Sys__program_name(var8);
3334 }
3335 {
3336 var12 = file__String__dirname(var11);
3337 }
3338 if (varonce13) {
3339 var14 = varonce13;
3340 } else {
3341 var15 = "/..";
3342 var16 = 3;
3343 var17 = string__NativeString__to_s_with_length(var15, var16);
3344 var14 = var17;
3345 varonce13 = var14;
3346 }
3347 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
3348 { /* var18 = array_instance Array[Object] */
3349 var19 = 2;
3350 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
3351 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var12;
3352 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var14;
3353 {
3354 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
3355 }
3356 }
3357 {
3358 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
3359 }
3360 var_res = var21;
3361 {
3362 var23 = file__String__file_exists(var_res);
3363 }
3364 var_ = var23;
3365 if (var23){
3366 if (varonce24) {
3367 var25 = varonce24;
3368 } else {
3369 var26 = "/src/nit.nit";
3370 var27 = 12;
3371 var28 = string__NativeString__to_s_with_length(var26, var27);
3372 var25 = var28;
3373 varonce24 = var25;
3374 }
3375 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
3376 { /* var29 = array_instance Array[Object] */
3377 var30 = 2;
3378 var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object);
3379 ((struct instance_array__NativeArray*)var31)->values[0] = (val*) var_res;
3380 ((struct instance_array__NativeArray*)var31)->values[1] = (val*) var25;
3381 {
3382 ((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on <var29:Array[Object]>*/;
3383 }
3384 }
3385 {
3386 var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on <var29:Array[Object]>*/;
3387 }
3388 {
3389 var33 = file__String__file_exists(var32);
3390 }
3391 var22 = var33;
3392 } else {
3393 var22 = var_;
3394 }
3395 if (var22){
3396 {
3397 var34 = file__String__simplify_path(var_res);
3398 }
3399 var = var34;
3400 goto RET_LABEL;
3401 } else {
3402 }
3403 if (varonce35) {
3404 var36 = varonce35;
3405 } else {
3406 var37 = "/proc/self/exe";
3407 var38 = 14;
3408 var39 = string__NativeString__to_s_with_length(var37, var38);
3409 var36 = var39;
3410 varonce35 = var36;
3411 }
3412 var_exe = var36;
3413 {
3414 var40 = file__String__file_exists(var_exe);
3415 }
3416 if (var40){
3417 {
3418 var41 = file__String__realpath(var_exe);
3419 }
3420 var_res = var41;
3421 {
3422 var42 = file__String__dirname(var_res);
3423 }
3424 if (varonce43) {
3425 var44 = varonce43;
3426 } else {
3427 var45 = "..";
3428 var46 = 2;
3429 var47 = string__NativeString__to_s_with_length(var45, var46);
3430 var44 = var47;
3431 varonce43 = var44;
3432 }
3433 {
3434 var48 = file__String__join_path(var42, var44);
3435 }
3436 var_res = var48;
3437 {
3438 var50 = file__String__file_exists(var_res);
3439 }
3440 var_51 = var50;
3441 if (var50){
3442 if (varonce52) {
3443 var53 = varonce52;
3444 } else {
3445 var54 = "/src/nit.nit";
3446 var55 = 12;
3447 var56 = string__NativeString__to_s_with_length(var54, var55);
3448 var53 = var56;
3449 varonce52 = var53;
3450 }
3451 var57 = NEW_array__Array(&type_array__Arraykernel__Object);
3452 { /* var57 = array_instance Array[Object] */
3453 var58 = 2;
3454 var59 = NEW_array__NativeArray(var58, &type_array__NativeArraykernel__Object);
3455 ((struct instance_array__NativeArray*)var59)->values[0] = (val*) var_res;
3456 ((struct instance_array__NativeArray*)var59)->values[1] = (val*) var53;
3457 {
3458 ((void (*)(val*, val*, long))(var57->class->vft[COLOR_array__Array__with_native]))(var57, var59, var58) /* with_native on <var57:Array[Object]>*/;
3459 }
3460 }
3461 {
3462 var60 = ((val* (*)(val*))(var57->class->vft[COLOR_string__Object__to_s]))(var57) /* to_s on <var57:Array[Object]>*/;
3463 }
3464 {
3465 var61 = file__String__file_exists(var60);
3466 }
3467 var49 = var61;
3468 } else {
3469 var49 = var_51;
3470 }
3471 if (var49){
3472 {
3473 var62 = file__String__simplify_path(var_res);
3474 }
3475 var = var62;
3476 goto RET_LABEL;
3477 } else {
3478 }
3479 } else {
3480 }
3481 var63 = NULL;
3482 var = var63;
3483 goto RET_LABEL;
3484 RET_LABEL:;
3485 return var;
3486 }
3487 /* method toolcontext#ToolContext#compute_nit_dir for (self: Object): nullable String */
3488 val* VIRTUAL_toolcontext__ToolContext__compute_nit_dir(val* self) {
3489 val* var /* : nullable String */;
3490 val* var1 /* : nullable String */;
3491 var1 = toolcontext__ToolContext__compute_nit_dir(self);
3492 var = var1;
3493 RET_LABEL:;
3494 return var;
3495 }
3496 /* method toolcontext#BashCompletion#toolcontext for (self: BashCompletion): ToolContext */
3497 val* toolcontext__BashCompletion__toolcontext(val* self) {
3498 val* var /* : ToolContext */;
3499 val* var1 /* : ToolContext */;
3500 var1 = self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
3501 if (unlikely(var1 == NULL)) {
3502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3503 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 347);
3504 show_backtrace(1);
3505 }
3506 var = var1;
3507 RET_LABEL:;
3508 return var;
3509 }
3510 /* method toolcontext#BashCompletion#toolcontext for (self: Object): ToolContext */
3511 val* VIRTUAL_toolcontext__BashCompletion__toolcontext(val* self) {
3512 val* var /* : ToolContext */;
3513 val* var1 /* : ToolContext */;
3514 val* var3 /* : ToolContext */;
3515 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:Object(BashCompletion)> */
3516 var3 = self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:Object(BashCompletion)> */
3517 if (unlikely(var3 == NULL)) {
3518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3519 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 347);
3520 show_backtrace(1);
3521 }
3522 var1 = var3;
3523 RET_LABEL2:(void)0;
3524 }
3525 var = var1;
3526 RET_LABEL:;
3527 return var;
3528 }
3529 /* method toolcontext#BashCompletion#toolcontext= for (self: BashCompletion, ToolContext) */
3530 void toolcontext__BashCompletion__toolcontext_61d(val* self, val* p0) {
3531 self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val = p0; /* _toolcontext on <self:BashCompletion> */
3532 RET_LABEL:;
3533 }
3534 /* method toolcontext#BashCompletion#toolcontext= for (self: Object, ToolContext) */
3535 void VIRTUAL_toolcontext__BashCompletion__toolcontext_61d(val* self, val* p0) {
3536 { /* Inline toolcontext#BashCompletion#toolcontext= (self,p0) on <self:Object(BashCompletion)> */
3537 self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val = p0; /* _toolcontext on <self:Object(BashCompletion)> */
3538 RET_LABEL1:(void)0;
3539 }
3540 RET_LABEL:;
3541 }
3542 /* method toolcontext#BashCompletion#init for (self: BashCompletion, ToolContext) */
3543 void toolcontext__BashCompletion__init(val* self, val* p0) {
3544 val* var_toolcontext /* var toolcontext: ToolContext */;
3545 {
3546 { /* Inline template#Template#init (self) on <self:BashCompletion> */
3547 RET_LABEL1:(void)0;
3548 }
3549 }
3550 var_toolcontext = p0;
3551 {
3552 { /* Inline toolcontext#BashCompletion#toolcontext= (self,var_toolcontext) on <self:BashCompletion> */
3553 self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val = var_toolcontext; /* _toolcontext on <self:BashCompletion> */
3554 RET_LABEL2:(void)0;
3555 }
3556 }
3557 RET_LABEL:;
3558 }
3559 /* method toolcontext#BashCompletion#init for (self: Object, ToolContext) */
3560 void VIRTUAL_toolcontext__BashCompletion__init(val* self, val* p0) {
3561 toolcontext__BashCompletion__init(self, p0); /* Direct call toolcontext#BashCompletion#init on <self:Object(BashCompletion)>*/
3562 RET_LABEL:;
3563 }
3564 /* method toolcontext#BashCompletion#extract_options_names for (self: BashCompletion): Array[String] */
3565 val* toolcontext__BashCompletion__extract_options_names(val* self) {
3566 val* var /* : Array[String] */;
3567 val* var1 /* : Array[String] */;
3568 val* var_names /* var names: Array[String] */;
3569 val* var2 /* : ToolContext */;
3570 val* var4 /* : ToolContext */;
3571 val* var5 /* : OptionContext */;
3572 val* var7 /* : OptionContext */;
3573 val* var8 /* : Array[Option] */;
3574 val* var10 /* : Array[Option] */;
3575 val* var11 /* : ArrayIterator[nullable Object] */;
3576 short int var12 /* : Bool */;
3577 val* var13 /* : nullable Object */;
3578 val* var_option /* var option: Option */;
3579 val* var14 /* : Array[String] */;
3580 val* var16 /* : Array[String] */;
3581 val* var17 /* : ArrayIterator[nullable Object] */;
3582 short int var18 /* : Bool */;
3583 val* var19 /* : nullable Object */;
3584 val* var_name /* var name: String */;
3585 static val* varonce;
3586 val* var20 /* : String */;
3587 char* var21 /* : NativeString */;
3588 long var22 /* : Int */;
3589 val* var23 /* : FlatString */;
3590 short int var24 /* : Bool */;
3591 var1 = NEW_array__Array(&type_array__Arraystring__String);
3592 {
3593 array__Array__init(var1); /* Direct call array#Array#init on <var1:Array[String]>*/
3594 }
3595 var_names = var1;
3596 {
3597 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
3598 var4 = self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
3599 if (unlikely(var4 == NULL)) {
3600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3601 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 347);
3602 show_backtrace(1);
3603 }
3604 var2 = var4;
3605 RET_LABEL3:(void)0;
3606 }
3607 }
3608 {
3609 { /* Inline toolcontext#ToolContext#option_context (var2) on <var2:ToolContext> */
3610 var7 = var2->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <var2:ToolContext> */
3611 if (unlikely(var7 == NULL)) {
3612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3613 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
3614 show_backtrace(1);
3615 }
3616 var5 = var7;
3617 RET_LABEL6:(void)0;
3618 }
3619 }
3620 {
3621 { /* Inline opts#OptionContext#options (var5) on <var5:OptionContext> */
3622 var10 = var5->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var5:OptionContext> */
3623 if (unlikely(var10 == NULL)) {
3624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
3625 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 247);
3626 show_backtrace(1);
3627 }
3628 var8 = var10;
3629 RET_LABEL9:(void)0;
3630 }
3631 }
3632 {
3633 var11 = array__AbstractArrayRead__iterator(var8);
3634 }
3635 for(;;) {
3636 {
3637 var12 = array__ArrayIterator__is_ok(var11);
3638 }
3639 if(!var12) break;
3640 {
3641 var13 = array__ArrayIterator__item(var11);
3642 }
3643 var_option = var13;
3644 {
3645 { /* Inline opts#Option#names (var_option) on <var_option:Option> */
3646 var16 = var_option->attrs[COLOR_opts__Option___names].val; /* _names on <var_option:Option> */
3647 if (unlikely(var16 == NULL)) {
3648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
3649 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 19);
3650 show_backtrace(1);
3651 }
3652 var14 = var16;
3653 RET_LABEL15:(void)0;
3654 }
3655 }
3656 {
3657 var17 = array__AbstractArrayRead__iterator(var14);
3658 }
3659 for(;;) {
3660 {
3661 var18 = array__ArrayIterator__is_ok(var17);
3662 }
3663 if(!var18) break;
3664 {
3665 var19 = array__ArrayIterator__item(var17);
3666 }
3667 var_name = var19;
3668 if (varonce) {
3669 var20 = varonce;
3670 } else {
3671 var21 = "--";
3672 var22 = 2;
3673 var23 = string__NativeString__to_s_with_length(var21, var22);
3674 var20 = var23;
3675 varonce = var20;
3676 }
3677 {
3678 var24 = string__Text__has_prefix(var_name, var20);
3679 }
3680 if (var24){
3681 {
3682 array__Array__add(var_names, var_name); /* Direct call array#Array#add on <var_names:Array[String]>*/
3683 }
3684 } else {
3685 }
3686 CONTINUE_label: (void)0;
3687 {
3688 array__ArrayIterator__next(var17); /* Direct call array#ArrayIterator#next on <var17:ArrayIterator[nullable Object]>*/
3689 }
3690 }
3691 BREAK_label: (void)0;
3692 CONTINUE_label25: (void)0;
3693 {
3694 array__ArrayIterator__next(var11); /* Direct call array#ArrayIterator#next on <var11:ArrayIterator[nullable Object]>*/
3695 }
3696 }
3697 BREAK_label25: (void)0;
3698 var = var_names;
3699 goto RET_LABEL;
3700 RET_LABEL:;
3701 return var;
3702 }
3703 /* method toolcontext#BashCompletion#extract_options_names for (self: Object): Array[String] */
3704 val* VIRTUAL_toolcontext__BashCompletion__extract_options_names(val* self) {
3705 val* var /* : Array[String] */;
3706 val* var1 /* : Array[String] */;
3707 var1 = toolcontext__BashCompletion__extract_options_names(self);
3708 var = var1;
3709 RET_LABEL:;
3710 return var;
3711 }
3712 /* method toolcontext#BashCompletion#rendering for (self: BashCompletion) */
3713 void toolcontext__BashCompletion__rendering(val* self) {
3714 val* var /* : ToolContext */;
3715 val* var2 /* : ToolContext */;
3716 val* var3 /* : String */;
3717 val* var_name /* var name: String */;
3718 val* var4 /* : Array[String] */;
3719 val* var_option_names /* var option_names: Array[String] */;
3720 static val* varonce;
3721 val* var5 /* : String */;
3722 char* var6 /* : NativeString */;
3723 long var7 /* : Int */;
3724 val* var8 /* : FlatString */;
3725 static val* varonce9;
3726 val* var10 /* : String */;
3727 char* var11 /* : NativeString */;
3728 long var12 /* : Int */;
3729 val* var13 /* : FlatString */;
3730 val* var14 /* : ToolContext */;
3731 val* var16 /* : ToolContext */;
3732 val* var17 /* : String */;
3733 val* var18 /* : Array[Object] */;
3734 long var19 /* : Int */;
3735 val* var20 /* : NativeArray[Object] */;
3736 val* var21 /* : String */;
3737 static val* varonce22;
3738 val* var23 /* : String */;
3739 char* var24 /* : NativeString */;
3740 long var25 /* : Int */;
3741 val* var26 /* : FlatString */;
3742 static val* varonce27;
3743 val* var28 /* : String */;
3744 char* var29 /* : NativeString */;
3745 long var30 /* : Int */;
3746 val* var31 /* : FlatString */;
3747 val* var32 /* : Array[Object] */;
3748 long var33 /* : Int */;
3749 val* var34 /* : NativeArray[Object] */;
3750 val* var35 /* : String */;
3751 static val* varonce36;
3752 val* var37 /* : String */;
3753 char* var38 /* : NativeString */;
3754 long var39 /* : Int */;
3755 val* var40 /* : FlatString */;
3756 static val* varonce41;
3757 val* var42 /* : String */;
3758 char* var43 /* : NativeString */;
3759 long var44 /* : Int */;
3760 val* var45 /* : FlatString */;
3761 static val* varonce46;
3762 val* var47 /* : String */;
3763 char* var48 /* : NativeString */;
3764 long var49 /* : Int */;
3765 val* var50 /* : FlatString */;
3766 static val* varonce51;
3767 val* var52 /* : String */;
3768 char* var53 /* : NativeString */;
3769 long var54 /* : Int */;
3770 val* var55 /* : FlatString */;
3771 static val* varonce56;
3772 val* var57 /* : String */;
3773 char* var58 /* : NativeString */;
3774 long var59 /* : Int */;
3775 val* var60 /* : FlatString */;
3776 val* var61 /* : null */;
3777 short int var62 /* : Bool */;
3778 short int var63 /* : Bool */;
3779 val* var_other /* var other: nullable Object */;
3780 short int var65 /* : Bool */;
3781 short int var66 /* : Bool */;
3782 short int var67 /* : Bool */;
3783 static val* varonce68;
3784 val* var69 /* : String */;
3785 char* var70 /* : NativeString */;
3786 long var71 /* : Int */;
3787 val* var72 /* : FlatString */;
3788 static val* varonce73;
3789 val* var74 /* : String */;
3790 char* var75 /* : NativeString */;
3791 long var76 /* : Int */;
3792 val* var77 /* : FlatString */;
3793 val* var78 /* : String */;
3794 static val* varonce79;
3795 val* var80 /* : String */;
3796 char* var81 /* : NativeString */;
3797 long var82 /* : Int */;
3798 val* var83 /* : FlatString */;
3799 val* var84 /* : Array[Object] */;
3800 long var85 /* : Int */;
3801 val* var86 /* : NativeArray[Object] */;
3802 val* var87 /* : String */;
3803 static val* varonce88;
3804 val* var89 /* : String */;
3805 char* var90 /* : NativeString */;
3806 long var91 /* : Int */;
3807 val* var92 /* : FlatString */;
3808 static val* varonce93;
3809 val* var94 /* : String */;
3810 char* var95 /* : NativeString */;
3811 long var96 /* : Int */;
3812 val* var97 /* : FlatString */;
3813 static val* varonce98;
3814 val* var99 /* : String */;
3815 char* var100 /* : NativeString */;
3816 long var101 /* : Int */;
3817 val* var102 /* : FlatString */;
3818 static val* varonce103;
3819 val* var104 /* : String */;
3820 char* var105 /* : NativeString */;
3821 long var106 /* : Int */;
3822 val* var107 /* : FlatString */;
3823 static val* varonce108;
3824 val* var109 /* : String */;
3825 char* var110 /* : NativeString */;
3826 long var111 /* : Int */;
3827 val* var112 /* : FlatString */;
3828 static val* varonce113;
3829 val* var114 /* : String */;
3830 char* var115 /* : NativeString */;
3831 long var116 /* : Int */;
3832 val* var117 /* : FlatString */;
3833 static val* varonce118;
3834 val* var119 /* : String */;
3835 char* var120 /* : NativeString */;
3836 long var121 /* : Int */;
3837 val* var122 /* : FlatString */;
3838 val* var123 /* : Array[Object] */;
3839 long var124 /* : Int */;
3840 val* var125 /* : NativeArray[Object] */;
3841 val* var126 /* : String */;
3842 {
3843 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
3844 var2 = self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
3845 if (unlikely(var2 == NULL)) {
3846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3847 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 347);
3848 show_backtrace(1);
3849 }
3850 var = var2;
3851 RET_LABEL1:(void)0;
3852 }
3853 }
3854 {
3855 var3 = toolcontext__ToolContext__toolname(var);
3856 }
3857 var_name = var3;
3858 {
3859 var4 = toolcontext__BashCompletion__extract_options_names(self);
3860 }
3861 var_option_names = var4;
3862 if (varonce) {
3863 var5 = varonce;
3864 } else {
3865 var6 = "# generated bash completion file for ";
3866 var7 = 37;
3867 var8 = string__NativeString__to_s_with_length(var6, var7);
3868 var5 = var8;
3869 varonce = var5;
3870 }
3871 if (varonce9) {
3872 var10 = varonce9;
3873 } else {
3874 var11 = " ";
3875 var12 = 1;
3876 var13 = string__NativeString__to_s_with_length(var11, var12);
3877 var10 = var13;
3878 varonce9 = var10;
3879 }
3880 {
3881 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
3882 var16 = self->attrs[COLOR_toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
3883 if (unlikely(var16 == NULL)) {
3884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3885 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 347);
3886 show_backtrace(1);
3887 }
3888 var14 = var16;
3889 RET_LABEL15:(void)0;
3890 }
3891 }
3892 {
3893 var17 = toolcontext__ToolContext__version(var14);
3894 }
3895 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
3896 { /* var18 = array_instance Array[Object] */
3897 var19 = 4;
3898 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
3899 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var5;
3900 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var_name;
3901 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var10;
3902 ((struct instance_array__NativeArray*)var20)->values[3] = (val*) var17;
3903 {
3904 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
3905 }
3906 }
3907 {
3908 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
3909 }
3910 {
3911 template__Template__addn(self, var21); /* Direct call template#Template#addn on <self:BashCompletion>*/
3912 }
3913 if (varonce22) {
3914 var23 = varonce22;
3915 } else {
3916 var24 = "_";
3917 var25 = 1;
3918 var26 = string__NativeString__to_s_with_length(var24, var25);
3919 var23 = var26;
3920 varonce22 = var23;
3921 }
3922 if (varonce27) {
3923 var28 = varonce27;
3924 } else {
3925 var29 = "()";
3926 var30 = 2;
3927 var31 = string__NativeString__to_s_with_length(var29, var30);
3928 var28 = var31;
3929 varonce27 = var28;
3930 }
3931 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
3932 { /* var32 = array_instance Array[Object] */
3933 var33 = 3;
3934 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
3935 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) var23;
3936 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var_name;
3937 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var28;
3938 {
3939 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
3940 }
3941 }
3942 {
3943 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
3944 }
3945 {
3946 template__Template__addn(self, var35); /* Direct call template#Template#addn on <self:BashCompletion>*/
3947 }
3948 if (varonce36) {
3949 var37 = varonce36;
3950 } else {
3951 var38 = "{";
3952 var39 = 1;
3953 var40 = string__NativeString__to_s_with_length(var38, var39);
3954 var37 = var40;
3955 varonce36 = var37;
3956 }
3957 {
3958 template__Template__addn(self, var37); /* Direct call template#Template#addn on <self:BashCompletion>*/
3959 }
3960 if (varonce41) {
3961 var42 = varonce41;
3962 } else {
3963 var43 = "\11local cur prev opts";
3964 var44 = 20;
3965 var45 = string__NativeString__to_s_with_length(var43, var44);
3966 var42 = var45;
3967 varonce41 = var42;
3968 }
3969 {
3970 template__Template__addn(self, var42); /* Direct call template#Template#addn on <self:BashCompletion>*/
3971 }
3972 if (varonce46) {
3973 var47 = varonce46;
3974 } else {
3975 var48 = "\11COMPREPLY=()";
3976 var49 = 13;
3977 var50 = string__NativeString__to_s_with_length(var48, var49);
3978 var47 = var50;
3979 varonce46 = var47;
3980 }
3981 {
3982 template__Template__addn(self, var47); /* Direct call template#Template#addn on <self:BashCompletion>*/
3983 }
3984 if (varonce51) {
3985 var52 = varonce51;
3986 } else {
3987 var53 = "\11cur=\"${COMP_WORDS[COMP_CWORD]}\"";
3988 var54 = 32;
3989 var55 = string__NativeString__to_s_with_length(var53, var54);
3990 var52 = var55;
3991 varonce51 = var52;
3992 }
3993 {
3994 template__Template__addn(self, var52); /* Direct call template#Template#addn on <self:BashCompletion>*/
3995 }
3996 if (varonce56) {
3997 var57 = varonce56;
3998 } else {
3999 var58 = "\11prev=\"${COMP_WORDS[COMP_CWORD-1]}\"";
4000 var59 = 35;
4001 var60 = string__NativeString__to_s_with_length(var58, var59);
4002 var57 = var60;
4003 varonce56 = var57;
4004 }
4005 {
4006 template__Template__addn(self, var57); /* Direct call template#Template#addn on <self:BashCompletion>*/
4007 }
4008 var61 = NULL;
4009 {
4010 var62 = 1; /* arg is null and recv is not */
4011 }
4012 if (0) {
4013 { /* Inline kernel#Object#!= (var_option_names,var61) on <var_option_names:Array[String]> */
4014 var_other = var61;
4015 {
4016 var66 = ((short int (*)(val*, val*))(var_option_names->class->vft[COLOR_kernel__Object___61d_61d]))(var_option_names, var_other) /* == on <var_option_names:Array[String]>*/;
4017 var65 = var66;
4018 }
4019 var67 = !var65;
4020 var63 = var67;
4021 goto RET_LABEL64;
4022 RET_LABEL64:(void)0;
4023 }
4024 var62 = var63;
4025 }
4026 if (var62){
4027 if (varonce68) {
4028 var69 = varonce68;
4029 } else {
4030 var70 = "\11opts=\"";
4031 var71 = 7;
4032 var72 = string__NativeString__to_s_with_length(var70, var71);
4033 var69 = var72;
4034 varonce68 = var69;
4035 }
4036 if (varonce73) {
4037 var74 = varonce73;
4038 } else {
4039 var75 = " ";
4040 var76 = 1;
4041 var77 = string__NativeString__to_s_with_length(var75, var76);
4042 var74 = var77;
4043 varonce73 = var74;
4044 }
4045 {
4046 var78 = string__Collection__join(var_option_names, var74);
4047 }
4048 if (varonce79) {
4049 var80 = varonce79;
4050 } else {
4051 var81 = "\"";
4052 var82 = 1;
4053 var83 = string__NativeString__to_s_with_length(var81, var82);
4054 var80 = var83;
4055 varonce79 = var80;
4056 }
4057 var84 = NEW_array__Array(&type_array__Arraykernel__Object);
4058 { /* var84 = array_instance Array[Object] */
4059 var85 = 3;
4060 var86 = NEW_array__NativeArray(var85, &type_array__NativeArraykernel__Object);
4061 ((struct instance_array__NativeArray*)var86)->values[0] = (val*) var69;
4062 ((struct instance_array__NativeArray*)var86)->values[1] = (val*) var78;
4063 ((struct instance_array__NativeArray*)var86)->values[2] = (val*) var80;
4064 {
4065 ((void (*)(val*, val*, long))(var84->class->vft[COLOR_array__Array__with_native]))(var84, var86, var85) /* with_native on <var84:Array[Object]>*/;
4066 }
4067 }
4068 {
4069 var87 = ((val* (*)(val*))(var84->class->vft[COLOR_string__Object__to_s]))(var84) /* to_s on <var84:Array[Object]>*/;
4070 }
4071 {
4072 template__Template__addn(self, var87); /* Direct call template#Template#addn on <self:BashCompletion>*/
4073 }
4074 if (varonce88) {
4075 var89 = varonce88;
4076 } else {
4077 var90 = "\11if [[ ${cur} == -* ]] ; then";
4078 var91 = 29;
4079 var92 = string__NativeString__to_s_with_length(var90, var91);
4080 var89 = var92;
4081 varonce88 = var89;
4082 }
4083 {
4084 template__Template__addn(self, var89); /* Direct call template#Template#addn on <self:BashCompletion>*/
4085 }
4086 if (varonce93) {
4087 var94 = varonce93;
4088 } else {
4089 var95 = "\11\11COMPREPLY=( $(compgen -W \"${opts}\" -- ${cur}) )";
4090 var96 = 49;
4091 var97 = string__NativeString__to_s_with_length(var95, var96);
4092 var94 = var97;
4093 varonce93 = var94;
4094 }
4095 {
4096 template__Template__addn(self, var94); /* Direct call template#Template#addn on <self:BashCompletion>*/
4097 }
4098 if (varonce98) {
4099 var99 = varonce98;
4100 } else {
4101 var100 = "\11\11return 0";
4102 var101 = 10;
4103 var102 = string__NativeString__to_s_with_length(var100, var101);
4104 var99 = var102;
4105 varonce98 = var99;
4106 }
4107 {
4108 template__Template__addn(self, var99); /* Direct call template#Template#addn on <self:BashCompletion>*/
4109 }
4110 if (varonce103) {
4111 var104 = varonce103;
4112 } else {
4113 var105 = "\11fi";
4114 var106 = 3;
4115 var107 = string__NativeString__to_s_with_length(var105, var106);
4116 var104 = var107;
4117 varonce103 = var104;
4118 }
4119 {
4120 template__Template__addn(self, var104); /* Direct call template#Template#addn on <self:BashCompletion>*/
4121 }
4122 } else {
4123 }
4124 if (varonce108) {
4125 var109 = varonce108;
4126 } else {
4127 var110 = "} &&";
4128 var111 = 4;
4129 var112 = string__NativeString__to_s_with_length(var110, var111);
4130 var109 = var112;
4131 varonce108 = var109;
4132 }
4133 {
4134 template__Template__addn(self, var109); /* Direct call template#Template#addn on <self:BashCompletion>*/
4135 }
4136 if (varonce113) {
4137 var114 = varonce113;
4138 } else {
4139 var115 = "complete -o default -F _";
4140 var116 = 24;
4141 var117 = string__NativeString__to_s_with_length(var115, var116);
4142 var114 = var117;
4143 varonce113 = var114;
4144 }
4145 if (varonce118) {
4146 var119 = varonce118;
4147 } else {
4148 var120 = " ";
4149 var121 = 1;
4150 var122 = string__NativeString__to_s_with_length(var120, var121);
4151 var119 = var122;
4152 varonce118 = var119;
4153 }
4154 var123 = NEW_array__Array(&type_array__Arraykernel__Object);
4155 { /* var123 = array_instance Array[Object] */
4156 var124 = 4;
4157 var125 = NEW_array__NativeArray(var124, &type_array__NativeArraykernel__Object);
4158 ((struct instance_array__NativeArray*)var125)->values[0] = (val*) var114;
4159 ((struct instance_array__NativeArray*)var125)->values[1] = (val*) var_name;
4160 ((struct instance_array__NativeArray*)var125)->values[2] = (val*) var119;
4161 ((struct instance_array__NativeArray*)var125)->values[3] = (val*) var_name;
4162 {
4163 ((void (*)(val*, val*, long))(var123->class->vft[COLOR_array__Array__with_native]))(var123, var125, var124) /* with_native on <var123:Array[Object]>*/;
4164 }
4165 }
4166 {
4167 var126 = ((val* (*)(val*))(var123->class->vft[COLOR_string__Object__to_s]))(var123) /* to_s on <var123:Array[Object]>*/;
4168 }
4169 {
4170 template__Template__addn(self, var126); /* Direct call template#Template#addn on <self:BashCompletion>*/
4171 }
4172 RET_LABEL:;
4173 }
4174 /* method toolcontext#BashCompletion#rendering for (self: Object) */
4175 void VIRTUAL_toolcontext__BashCompletion__rendering(val* self) {
4176 toolcontext__BashCompletion__rendering(self); /* Direct call toolcontext#BashCompletion#rendering on <self:Object(BashCompletion)>*/
4177 RET_LABEL:;
4178 }