nitc: let CC, CXX and NO_STACKTRACE use env value
[nit.git] / c_src / nitc__toolcontext.sep.1.c
1 #include "nitc__toolcontext.sep.0.h"
2 /* method toolcontext#Message#location for (self: Message): nullable Location */
3 val* nitc___nitc__Message___location(val* self) {
4 val* var /* : nullable Location */;
5 val* var1 /* : nullable Location */;
6 var1 = self->attrs[COLOR_nitc__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: Message, nullable Location) */
12 void nitc___nitc__Message___location_61d(val* self, val* p0) {
13 self->attrs[COLOR_nitc__toolcontext__Message___location].val = p0; /* _location on <self:Message> */
14 RET_LABEL:;
15 }
16 /* method toolcontext#Message#tag for (self: Message): nullable String */
17 val* nitc___nitc__Message___tag(val* self) {
18 val* var /* : nullable String */;
19 val* var1 /* : nullable String */;
20 var1 = self->attrs[COLOR_nitc__toolcontext__Message___tag].val; /* _tag on <self:Message> */
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method toolcontext#Message#tag= for (self: Message, nullable String) */
26 void nitc___nitc__Message___tag_61d(val* self, val* p0) {
27 self->attrs[COLOR_nitc__toolcontext__Message___tag].val = p0; /* _tag on <self:Message> */
28 RET_LABEL:;
29 }
30 /* method toolcontext#Message#text for (self: Message): String */
31 val* nitc___nitc__Message___text(val* self) {
32 val* var /* : String */;
33 val* var1 /* : String */;
34 var1 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
35 if (unlikely(var1 == NULL)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
38 fatal_exit(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method toolcontext#Message#text= for (self: Message, String) */
45 void nitc___nitc__Message___text_61d(val* self, val* p0) {
46 self->attrs[COLOR_nitc__toolcontext__Message___text].val = p0; /* _text on <self:Message> */
47 RET_LABEL:;
48 }
49 /* method toolcontext#Message#< for (self: Message, Message): Bool */
50 short int nitc___nitc__Message___core__kernel__Comparable___60d(val* self, val* p0) {
51 short int var /* : Bool */;
52 short int var1 /* : Bool */;
53 int cltype;
54 int idtype;
55 const struct type* type_struct;
56 const char* var_class_name;
57 val* var_other /* var other: Message */;
58 val* var2 /* : nullable Location */;
59 val* var4 /* : nullable Location */;
60 short int var5 /* : Bool */;
61 short int var6 /* : Bool */;
62 val* var7 /* : nullable Location */;
63 val* var9 /* : nullable Location */;
64 short int var10 /* : Bool */;
65 short int var11 /* : Bool */;
66 val* var12 /* : nullable Location */;
67 val* var14 /* : nullable Location */;
68 val* var15 /* : nullable Location */;
69 val* var17 /* : nullable Location */;
70 short int var18 /* : Bool */;
71 /* Covariant cast for argument 0 (other) <p0:Message> isa OTHER */
72 /* <p0:Message> isa OTHER */
73 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
74 cltype = type_struct->color;
75 idtype = type_struct->id;
76 if(cltype >= p0->type->table_size) {
77 var1 = 0;
78 } else {
79 var1 = p0->type->type_table[cltype] == idtype;
80 }
81 if (unlikely(!var1)) {
82 var_class_name = p0 == NULL ? "null" : p0->type->name;
83 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
84 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 61);
85 fatal_exit(1);
86 }
87 var_other = p0;
88 {
89 { /* Inline toolcontext#Message#location (self) on <self:Message> */
90 var4 = self->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <self:Message> */
91 var2 = var4;
92 RET_LABEL3:(void)0;
93 }
94 }
95 if (var2 == NULL) {
96 var5 = 1; /* is null */
97 } else {
98 var5 = 0; /* arg is null but recv is not */
99 }
100 if (0) {
101 var6 = nitc___nitc__Location___core__kernel__Object___61d_61d(var2, ((val*)NULL));
102 var5 = var6;
103 }
104 if (var5){
105 var = 1;
106 goto RET_LABEL;
107 } else {
108 }
109 {
110 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
111 var9 = var_other->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <var_other:Message> */
112 var7 = var9;
113 RET_LABEL8:(void)0;
114 }
115 }
116 if (var7 == NULL) {
117 var10 = 1; /* is null */
118 } else {
119 var10 = 0; /* arg is null but recv is not */
120 }
121 if (0) {
122 var11 = nitc___nitc__Location___core__kernel__Object___61d_61d(var7, ((val*)NULL));
123 var10 = var11;
124 }
125 if (var10){
126 var = 0;
127 goto RET_LABEL;
128 } else {
129 }
130 {
131 { /* Inline toolcontext#Message#location (self) on <self:Message> */
132 var14 = self->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <self:Message> */
133 var12 = var14;
134 RET_LABEL13:(void)0;
135 }
136 }
137 if (unlikely(var12 == NULL)) {
138 PRINT_ERROR("Runtime error: %s", "Cast failed");
139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 66);
140 fatal_exit(1);
141 }
142 {
143 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
144 var17 = var_other->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <var_other:Message> */
145 var15 = var17;
146 RET_LABEL16:(void)0;
147 }
148 }
149 if (unlikely(var15 == NULL)) {
150 PRINT_ERROR("Runtime error: %s", "Cast failed");
151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 66);
152 fatal_exit(1);
153 }
154 {
155 var18 = nitc___nitc__Location___core__kernel__Comparable___60d(var12, var15);
156 }
157 var = var18;
158 goto RET_LABEL;
159 RET_LABEL:;
160 return var;
161 }
162 /* method toolcontext#Message#== for (self: Message, nullable Object): Bool */
163 short int nitc___nitc__Message___core__kernel__Object___61d_61d(val* self, val* p0) {
164 short int var /* : Bool */;
165 val* var_other /* var other: nullable Object */;
166 short int var1 /* : Bool */;
167 int cltype;
168 int idtype;
169 short int var2 /* : Bool */;
170 short int var3 /* : Bool */;
171 short int var4 /* : Bool */;
172 val* var5 /* : nullable Location */;
173 val* var7 /* : nullable Location */;
174 val* var8 /* : nullable Location */;
175 val* var10 /* : nullable Location */;
176 short int var11 /* : Bool */;
177 short int var12 /* : Bool */;
178 short int var_ /* var : Bool */;
179 val* var13 /* : nullable String */;
180 val* var15 /* : nullable String */;
181 val* var16 /* : nullable String */;
182 val* var18 /* : nullable String */;
183 short int var19 /* : Bool */;
184 short int var20 /* : Bool */;
185 short int var_21 /* var : Bool */;
186 val* var22 /* : String */;
187 val* var24 /* : String */;
188 val* var25 /* : String */;
189 val* var27 /* : String */;
190 short int var28 /* : Bool */;
191 var_other = p0;
192 /* <var_other:nullable Object> isa Message */
193 cltype = type_nitc__Message.color;
194 idtype = type_nitc__Message.id;
195 if(var_other == NULL) {
196 var1 = 0;
197 } else {
198 if(cltype >= (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->table_size) {
199 var1 = 0;
200 } else {
201 var1 = (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->type_table[cltype] == idtype;
202 }
203 }
204 var2 = !var1;
205 if (var2){
206 var = 0;
207 goto RET_LABEL;
208 } else {
209 }
210 {
211 { /* Inline toolcontext#Message#location (self) on <self:Message> */
212 var7 = self->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <self:Message> */
213 var5 = var7;
214 RET_LABEL6:(void)0;
215 }
216 }
217 {
218 { /* Inline toolcontext#Message#location (var_other) on <var_other:nullable Object(Message)> */
219 var10 = var_other->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <var_other:nullable Object(Message)> */
220 var8 = var10;
221 RET_LABEL9:(void)0;
222 }
223 }
224 if (var5 == NULL) {
225 var11 = (var8 == NULL);
226 } else {
227 var12 = nitc___nitc__Location___core__kernel__Object___61d_61d(var5, var8);
228 var11 = var12;
229 }
230 var_ = var11;
231 if (var11){
232 {
233 { /* Inline toolcontext#Message#tag (self) on <self:Message> */
234 var15 = self->attrs[COLOR_nitc__toolcontext__Message___tag].val; /* _tag on <self:Message> */
235 var13 = var15;
236 RET_LABEL14:(void)0;
237 }
238 }
239 {
240 { /* Inline toolcontext#Message#tag (var_other) on <var_other:nullable Object(Message)> */
241 var18 = var_other->attrs[COLOR_nitc__toolcontext__Message___tag].val; /* _tag on <var_other:nullable Object(Message)> */
242 var16 = var18;
243 RET_LABEL17:(void)0;
244 }
245 }
246 if (var13 == NULL) {
247 var19 = (var16 == NULL);
248 } else {
249 var20 = ((short int(*)(val* self, val* p0))(var13->class->vft[COLOR_core__kernel__Object___61d_61d]))(var13, var16); /* == on <var13:nullable String>*/
250 var19 = var20;
251 }
252 var4 = var19;
253 } else {
254 var4 = var_;
255 }
256 var_21 = var4;
257 if (var4){
258 {
259 { /* Inline toolcontext#Message#text (self) on <self:Message> */
260 var24 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
261 if (unlikely(var24 == NULL)) {
262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
264 fatal_exit(1);
265 }
266 var22 = var24;
267 RET_LABEL23:(void)0;
268 }
269 }
270 {
271 { /* Inline toolcontext#Message#text (var_other) on <var_other:nullable Object(Message)> */
272 var27 = var_other->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <var_other:nullable Object(Message)> */
273 if (unlikely(var27 == NULL)) {
274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
275 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
276 fatal_exit(1);
277 }
278 var25 = var27;
279 RET_LABEL26:(void)0;
280 }
281 }
282 {
283 var28 = ((short int(*)(val* self, val* p0))(var22->class->vft[COLOR_core__kernel__Object___61d_61d]))(var22, var25); /* == on <var22:String>*/
284 }
285 var3 = var28;
286 } else {
287 var3 = var_21;
288 }
289 var = var3;
290 goto RET_LABEL;
291 RET_LABEL:;
292 return var;
293 }
294 /* method toolcontext#Message#to_s for (self: Message): String */
295 val* nitc___nitc__Message___core__abstract_text__Object__to_s(val* self) {
296 val* var /* : String */;
297 val* var1 /* : nullable Location */;
298 val* var3 /* : nullable Location */;
299 val* var_l /* var l: nullable Location */;
300 short int var4 /* : Bool */;
301 short int var5 /* : Bool */;
302 val* var6 /* : String */;
303 val* var8 /* : String */;
304 val* var9 /* : NativeArray[String] */;
305 static val* varonce;
306 static val* varonce10;
307 val* var11 /* : String */;
308 char* var12 /* : NativeString */;
309 val* var13 /* : String */;
310 val* var14 /* : String */;
311 val* var15 /* : String */;
312 val* var17 /* : String */;
313 val* var18 /* : String */;
314 {
315 { /* Inline toolcontext#Message#location (self) on <self:Message> */
316 var3 = self->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <self:Message> */
317 var1 = var3;
318 RET_LABEL2:(void)0;
319 }
320 }
321 var_l = var1;
322 if (var_l == NULL) {
323 var4 = 1; /* is null */
324 } else {
325 var4 = 0; /* arg is null but recv is not */
326 }
327 if (0) {
328 var5 = nitc___nitc__Location___core__kernel__Object___61d_61d(var_l, ((val*)NULL));
329 var4 = var5;
330 }
331 if (var4){
332 {
333 { /* Inline toolcontext#Message#text (self) on <self:Message> */
334 var8 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
335 if (unlikely(var8 == NULL)) {
336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
337 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
338 fatal_exit(1);
339 }
340 var6 = var8;
341 RET_LABEL7:(void)0;
342 }
343 }
344 var = var6;
345 goto RET_LABEL;
346 } else {
347 if (unlikely(varonce==NULL)) {
348 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
349 if (likely(varonce10!=NULL)) {
350 var11 = varonce10;
351 } else {
352 var12 = ": ";
353 var13 = core__flat___NativeString___to_s_full(var12, 2l, 2l);
354 var11 = var13;
355 varonce10 = var11;
356 }
357 ((struct instance_core__NativeArray*)var9)->values[1]=var11;
358 } else {
359 var9 = varonce;
360 varonce = NULL;
361 }
362 {
363 var14 = ((val*(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_l); /* to_s on <var_l:nullable Location(Location)>*/
364 }
365 ((struct instance_core__NativeArray*)var9)->values[0]=var14;
366 {
367 { /* Inline toolcontext#Message#text (self) on <self:Message> */
368 var17 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
369 if (unlikely(var17 == NULL)) {
370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
371 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
372 fatal_exit(1);
373 }
374 var15 = var17;
375 RET_LABEL16:(void)0;
376 }
377 }
378 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
379 {
380 var18 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
381 }
382 varonce = var9;
383 var = var18;
384 goto RET_LABEL;
385 }
386 RET_LABEL:;
387 return var;
388 }
389 /* method toolcontext#Message#to_color_string for (self: Message): String */
390 val* nitc___nitc__Message___to_color_string(val* self) {
391 val* var /* : String */;
392 uint32_t var1 /* : Char */;
393 uint32_t var3 /* : Char */;
394 uint32_t var_esc /* var esc: Char */;
395 val* var4 /* : NativeArray[String] */;
396 static val* varonce;
397 static val* varonce5;
398 val* var6 /* : String */;
399 char* var7 /* : NativeString */;
400 val* var8 /* : String */;
401 val* var9 /* : String */;
402 val* var10 /* : String */;
403 val* var_yellow /* var yellow: String */;
404 val* var12 /* : NativeArray[String] */;
405 static val* varonce11;
406 static val* varonce13;
407 val* var14 /* : String */;
408 char* var15 /* : NativeString */;
409 val* var16 /* : String */;
410 val* var17 /* : String */;
411 val* var18 /* : String */;
412 val* var_def /* var def: String */;
413 val* var19 /* : nullable String */;
414 val* var21 /* : nullable String */;
415 val* var_tag /* var tag: nullable String */;
416 short int var22 /* : Bool */;
417 short int var23 /* : Bool */;
418 val* var_other /* var other: nullable Object */;
419 short int var25 /* : Bool */;
420 short int var26 /* : Bool */;
421 val* var28 /* : NativeArray[String] */;
422 static val* varonce27;
423 static val* varonce29;
424 val* var30 /* : String */;
425 char* var31 /* : NativeString */;
426 val* var32 /* : String */;
427 static val* varonce33;
428 val* var34 /* : String */;
429 char* var35 /* : NativeString */;
430 val* var36 /* : String */;
431 val* var37 /* : String */;
432 static val* varonce38;
433 val* var39 /* : String */;
434 char* var40 /* : NativeString */;
435 val* var41 /* : String */;
436 val* var42 /* : nullable Location */;
437 val* var44 /* : nullable Location */;
438 val* var_l /* var l: nullable Location */;
439 short int var45 /* : Bool */;
440 short int var46 /* : Bool */;
441 val* var48 /* : NativeArray[String] */;
442 static val* varonce47;
443 val* var49 /* : String */;
444 val* var51 /* : String */;
445 val* var52 /* : String */;
446 val* var53 /* : nullable SourceFile */;
447 val* var55 /* : nullable SourceFile */;
448 short int var56 /* : Bool */;
449 short int var57 /* : Bool */;
450 val* var_other59 /* var other: nullable Object */;
451 short int var60 /* : Bool */;
452 short int var62 /* : Bool */;
453 val* var64 /* : NativeArray[String] */;
454 static val* varonce63;
455 static val* varonce65;
456 val* var66 /* : String */;
457 char* var67 /* : NativeString */;
458 val* var68 /* : String */;
459 val* var69 /* : String */;
460 val* var70 /* : String */;
461 val* var72 /* : String */;
462 val* var73 /* : String */;
463 val* var75 /* : NativeArray[String] */;
464 static val* varonce74;
465 static val* varonce76;
466 val* var77 /* : String */;
467 char* var78 /* : NativeString */;
468 val* var79 /* : String */;
469 static val* varonce80;
470 val* var81 /* : String */;
471 char* var82 /* : NativeString */;
472 val* var83 /* : String */;
473 val* var84 /* : String */;
474 val* var85 /* : String */;
475 val* var87 /* : String */;
476 static val* varonce88;
477 val* var89 /* : String */;
478 char* var90 /* : NativeString */;
479 val* var91 /* : String */;
480 val* var92 /* : String */;
481 val* var93 /* : String */;
482 {
483 { /* Inline kernel#Int#code_point (27l) on <27l:Int> */
484 var3 = (uint32_t)27l;
485 var1 = var3;
486 goto RET_LABEL2;
487 RET_LABEL2:(void)0;
488 }
489 }
490 var_esc = var1;
491 if (unlikely(varonce==NULL)) {
492 var4 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
493 if (likely(varonce5!=NULL)) {
494 var6 = varonce5;
495 } else {
496 var7 = "[0;33m";
497 var8 = core__flat___NativeString___to_s_full(var7, 6l, 6l);
498 var6 = var8;
499 varonce5 = var6;
500 }
501 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
502 } else {
503 var4 = varonce;
504 varonce = NULL;
505 }
506 var9 = core__abstract_text___Char___Object__to_s(var_esc);
507 ((struct instance_core__NativeArray*)var4)->values[0]=var9;
508 {
509 var10 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
510 }
511 varonce = var4;
512 var_yellow = var10;
513 if (unlikely(varonce11==NULL)) {
514 var12 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
515 if (likely(varonce13!=NULL)) {
516 var14 = varonce13;
517 } else {
518 var15 = "[0m";
519 var16 = core__flat___NativeString___to_s_full(var15, 3l, 3l);
520 var14 = var16;
521 varonce13 = var14;
522 }
523 ((struct instance_core__NativeArray*)var12)->values[1]=var14;
524 } else {
525 var12 = varonce11;
526 varonce11 = NULL;
527 }
528 var17 = core__abstract_text___Char___Object__to_s(var_esc);
529 ((struct instance_core__NativeArray*)var12)->values[0]=var17;
530 {
531 var18 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
532 }
533 varonce11 = var12;
534 var_def = var18;
535 {
536 { /* Inline toolcontext#Message#tag (self) on <self:Message> */
537 var21 = self->attrs[COLOR_nitc__toolcontext__Message___tag].val; /* _tag on <self:Message> */
538 var19 = var21;
539 RET_LABEL20:(void)0;
540 }
541 }
542 var_tag = var19;
543 if (var_tag == NULL) {
544 var22 = 0; /* is null */
545 } else {
546 var22 = 1; /* arg is null and recv is not */
547 }
548 if (0) {
549 { /* Inline kernel#Object#!= (var_tag,((val*)NULL)) on <var_tag:nullable String> */
550 var_other = ((val*)NULL);
551 {
552 var25 = ((short int(*)(val* self, val* p0))(var_tag->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_tag, var_other); /* == on <var_tag:nullable String(String)>*/
553 }
554 var26 = !var25;
555 var23 = var26;
556 goto RET_LABEL24;
557 RET_LABEL24:(void)0;
558 }
559 var22 = var23;
560 }
561 if (var22){
562 if (unlikely(varonce27==NULL)) {
563 var28 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
564 if (likely(varonce29!=NULL)) {
565 var30 = varonce29;
566 } else {
567 var31 = " (";
568 var32 = core__flat___NativeString___to_s_full(var31, 2l, 2l);
569 var30 = var32;
570 varonce29 = var30;
571 }
572 ((struct instance_core__NativeArray*)var28)->values[0]=var30;
573 if (likely(varonce33!=NULL)) {
574 var34 = varonce33;
575 } else {
576 var35 = ")";
577 var36 = core__flat___NativeString___to_s_full(var35, 1l, 1l);
578 var34 = var36;
579 varonce33 = var34;
580 }
581 ((struct instance_core__NativeArray*)var28)->values[2]=var34;
582 } else {
583 var28 = varonce27;
584 varonce27 = NULL;
585 }
586 ((struct instance_core__NativeArray*)var28)->values[1]=var_tag;
587 {
588 var37 = ((val*(*)(val* self))(var28->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var28); /* native_to_s on <var28:NativeArray[String]>*/
589 }
590 varonce27 = var28;
591 var_tag = var37;
592 } else {
593 if (likely(varonce38!=NULL)) {
594 var39 = varonce38;
595 } else {
596 var40 = "";
597 var41 = core__flat___NativeString___to_s_full(var40, 0l, 0l);
598 var39 = var41;
599 varonce38 = var39;
600 }
601 var_tag = var39;
602 }
603 {
604 { /* Inline toolcontext#Message#location (self) on <self:Message> */
605 var44 = self->attrs[COLOR_nitc__toolcontext__Message___location].val; /* _location on <self:Message> */
606 var42 = var44;
607 RET_LABEL43:(void)0;
608 }
609 }
610 var_l = var42;
611 if (var_l == NULL) {
612 var45 = 1; /* is null */
613 } else {
614 var45 = 0; /* arg is null but recv is not */
615 }
616 if (0) {
617 var46 = nitc___nitc__Location___core__kernel__Object___61d_61d(var_l, ((val*)NULL));
618 var45 = var46;
619 }
620 if (var45){
621 if (unlikely(varonce47==NULL)) {
622 var48 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
623 } else {
624 var48 = varonce47;
625 varonce47 = NULL;
626 }
627 {
628 { /* Inline toolcontext#Message#text (self) on <self:Message> */
629 var51 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
630 if (unlikely(var51 == NULL)) {
631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
633 fatal_exit(1);
634 }
635 var49 = var51;
636 RET_LABEL50:(void)0;
637 }
638 }
639 ((struct instance_core__NativeArray*)var48)->values[0]=var49;
640 ((struct instance_core__NativeArray*)var48)->values[1]=var_tag;
641 {
642 var52 = ((val*(*)(val* self))(var48->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var48); /* native_to_s on <var48:NativeArray[String]>*/
643 }
644 varonce47 = var48;
645 var = var52;
646 goto RET_LABEL;
647 } else {
648 {
649 { /* Inline location#Location#file (var_l) on <var_l:nullable Location(Location)> */
650 var55 = var_l->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_l:nullable Location(Location)> */
651 var53 = var55;
652 RET_LABEL54:(void)0;
653 }
654 }
655 if (var53 == NULL) {
656 var56 = 1; /* is null */
657 } else {
658 var56 = 0; /* arg is null but recv is not */
659 }
660 if (0) {
661 { /* Inline kernel#Object#== (var53,((val*)NULL)) on <var53:nullable SourceFile> */
662 var_other59 = ((val*)NULL);
663 {
664 { /* Inline kernel#Object#is_same_instance (var53,var_other59) on <var53:nullable SourceFile(SourceFile)> */
665 var62 = var53 == var_other59;
666 var60 = var62;
667 goto RET_LABEL61;
668 RET_LABEL61:(void)0;
669 }
670 }
671 var57 = var60;
672 goto RET_LABEL58;
673 RET_LABEL58:(void)0;
674 }
675 var56 = var57;
676 }
677 if (var56){
678 if (unlikely(varonce63==NULL)) {
679 var64 = NEW_core__NativeArray(6l, &type_core__NativeArray__core__String);
680 if (likely(varonce65!=NULL)) {
681 var66 = varonce65;
682 } else {
683 var67 = ": ";
684 var68 = core__flat___NativeString___to_s_full(var67, 2l, 2l);
685 var66 = var68;
686 varonce65 = var66;
687 }
688 ((struct instance_core__NativeArray*)var64)->values[3]=var66;
689 } else {
690 var64 = varonce63;
691 varonce63 = NULL;
692 }
693 ((struct instance_core__NativeArray*)var64)->values[0]=var_yellow;
694 {
695 var69 = ((val*(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_l); /* to_s on <var_l:nullable Location(Location)>*/
696 }
697 ((struct instance_core__NativeArray*)var64)->values[1]=var69;
698 ((struct instance_core__NativeArray*)var64)->values[2]=var_def;
699 {
700 { /* Inline toolcontext#Message#text (self) on <self:Message> */
701 var72 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
702 if (unlikely(var72 == NULL)) {
703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
704 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
705 fatal_exit(1);
706 }
707 var70 = var72;
708 RET_LABEL71:(void)0;
709 }
710 }
711 ((struct instance_core__NativeArray*)var64)->values[4]=var70;
712 ((struct instance_core__NativeArray*)var64)->values[5]=var_tag;
713 {
714 var73 = ((val*(*)(val* self))(var64->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var64); /* native_to_s on <var64:NativeArray[String]>*/
715 }
716 varonce63 = var64;
717 var = var73;
718 goto RET_LABEL;
719 } else {
720 if (unlikely(varonce74==NULL)) {
721 var75 = NEW_core__NativeArray(8l, &type_core__NativeArray__core__String);
722 if (likely(varonce76!=NULL)) {
723 var77 = varonce76;
724 } else {
725 var78 = ": ";
726 var79 = core__flat___NativeString___to_s_full(var78, 2l, 2l);
727 var77 = var79;
728 varonce76 = var77;
729 }
730 ((struct instance_core__NativeArray*)var75)->values[3]=var77;
731 if (likely(varonce80!=NULL)) {
732 var81 = varonce80;
733 } else {
734 var82 = "\n";
735 var83 = core__flat___NativeString___to_s_full(var82, 1l, 1l);
736 var81 = var83;
737 varonce80 = var81;
738 }
739 ((struct instance_core__NativeArray*)var75)->values[6]=var81;
740 } else {
741 var75 = varonce74;
742 varonce74 = NULL;
743 }
744 ((struct instance_core__NativeArray*)var75)->values[0]=var_yellow;
745 {
746 var84 = ((val*(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_l); /* to_s on <var_l:nullable Location(Location)>*/
747 }
748 ((struct instance_core__NativeArray*)var75)->values[1]=var84;
749 ((struct instance_core__NativeArray*)var75)->values[2]=var_def;
750 {
751 { /* Inline toolcontext#Message#text (self) on <self:Message> */
752 var87 = self->attrs[COLOR_nitc__toolcontext__Message___text].val; /* _text on <self:Message> */
753 if (unlikely(var87 == NULL)) {
754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
755 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 42);
756 fatal_exit(1);
757 }
758 var85 = var87;
759 RET_LABEL86:(void)0;
760 }
761 }
762 ((struct instance_core__NativeArray*)var75)->values[4]=var85;
763 ((struct instance_core__NativeArray*)var75)->values[5]=var_tag;
764 if (likely(varonce88!=NULL)) {
765 var89 = varonce88;
766 } else {
767 var90 = "1;31";
768 var91 = core__flat___NativeString___to_s_full(var90, 4l, 4l);
769 var89 = var91;
770 varonce88 = var89;
771 }
772 {
773 var92 = nitc___nitc__Location___colored_line(var_l, var89);
774 }
775 ((struct instance_core__NativeArray*)var75)->values[7]=var92;
776 {
777 var93 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
778 }
779 varonce74 = var75;
780 var = var93;
781 goto RET_LABEL;
782 }
783 }
784 RET_LABEL:;
785 return var;
786 }
787 /* method toolcontext#Message#init for (self: Message) */
788 void nitc___nitc__Message___core__kernel__Object__init(val* self) {
789 {
790 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__Message___core__kernel__Object__init]))(self); /* init on <self:Message>*/
791 }
792 RET_LABEL:;
793 }
794 /* method toolcontext#Location#messages for (self: Location): nullable Array[Message] */
795 val* nitc__toolcontext___Location___messages(val* self) {
796 val* var /* : nullable Array[Message] */;
797 val* var1 /* : nullable Array[Message] */;
798 var1 = self->attrs[COLOR_nitc__toolcontext__Location___messages].val; /* _messages on <self:Location> */
799 var = var1;
800 RET_LABEL:;
801 return var;
802 }
803 /* method toolcontext#Location#messages= for (self: Location, nullable Array[Message]) */
804 void nitc__toolcontext___Location___messages_61d(val* self, val* p0) {
805 self->attrs[COLOR_nitc__toolcontext__Location___messages].val = p0; /* _messages on <self:Location> */
806 RET_LABEL:;
807 }
808 /* method toolcontext#Location#add_message for (self: Location, Message) */
809 void nitc__toolcontext___Location___add_message(val* self, val* p0) {
810 val* var_m /* var m: Message */;
811 val* var /* : nullable Array[Message] */;
812 val* var2 /* : nullable Array[Message] */;
813 val* var_ms /* var ms: nullable Array[Message] */;
814 short int var3 /* : Bool */;
815 short int var4 /* : Bool */;
816 val* var5 /* : Array[Message] */;
817 var_m = p0;
818 {
819 { /* Inline toolcontext#Location#messages (self) on <self:Location> */
820 var2 = self->attrs[COLOR_nitc__toolcontext__Location___messages].val; /* _messages on <self:Location> */
821 var = var2;
822 RET_LABEL1:(void)0;
823 }
824 }
825 var_ms = var;
826 if (var_ms == NULL) {
827 var3 = 1; /* is null */
828 } else {
829 var3 = 0; /* arg is null but recv is not */
830 }
831 if (0) {
832 var4 = core___core__Array___core__kernel__Object___61d_61d(var_ms, ((val*)NULL));
833 var3 = var4;
834 }
835 if (var3){
836 var5 = NEW_core__Array(&type_core__Array__nitc__Message);
837 {
838 core___core__Array___core__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Message]>*/
839 }
840 var_ms = var5;
841 {
842 { /* Inline toolcontext#Location#messages= (self,var_ms) on <self:Location> */
843 self->attrs[COLOR_nitc__toolcontext__Location___messages].val = var_ms; /* _messages on <self:Location> */
844 RET_LABEL6:(void)0;
845 }
846 }
847 } else {
848 }
849 {
850 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ms, var_m); /* Direct call array#Array#add on <var_ms:nullable Array[Message](Array[Message])>*/
851 }
852 RET_LABEL:;
853 }
854 /* method toolcontext#ToolContext#error_count for (self: ToolContext): Int */
855 long nitc___nitc__ToolContext___error_count(val* self) {
856 long var /* : Int */;
857 long var1 /* : Int */;
858 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
859 var = var1;
860 RET_LABEL:;
861 return var;
862 }
863 /* method toolcontext#ToolContext#error_count= for (self: ToolContext, Int) */
864 void nitc___nitc__ToolContext___error_count_61d(val* self, long p0) {
865 self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l = p0; /* _error_count on <self:ToolContext> */
866 RET_LABEL:;
867 }
868 /* method toolcontext#ToolContext#warning_count for (self: ToolContext): Int */
869 long nitc___nitc__ToolContext___warning_count(val* self) {
870 long var /* : Int */;
871 long var1 /* : Int */;
872 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
873 var = var1;
874 RET_LABEL:;
875 return var;
876 }
877 /* method toolcontext#ToolContext#warning_count= for (self: ToolContext, Int) */
878 void nitc___nitc__ToolContext___warning_count_61d(val* self, long p0) {
879 self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l = p0; /* _warning_count on <self:ToolContext> */
880 RET_LABEL:;
881 }
882 /* method toolcontext#ToolContext#log_directory for (self: ToolContext): String */
883 val* nitc___nitc__ToolContext___log_directory(val* self) {
884 val* var /* : String */;
885 val* var1 /* : String */;
886 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
887 if (unlikely(var1 == NULL)) {
888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
889 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 137);
890 fatal_exit(1);
891 }
892 var = var1;
893 RET_LABEL:;
894 return var;
895 }
896 /* method toolcontext#ToolContext#log_directory= for (self: ToolContext, String) */
897 void nitc___nitc__ToolContext___log_directory_61d(val* self, val* p0) {
898 self->attrs[COLOR_nitc__toolcontext__ToolContext___log_directory].val = p0; /* _log_directory on <self:ToolContext> */
899 RET_LABEL:;
900 }
901 /* method toolcontext#ToolContext#log_info for (self: ToolContext): nullable Writer */
902 val* nitc___nitc__ToolContext___log_info(val* self) {
903 val* var /* : nullable Writer */;
904 val* var1 /* : nullable Writer */;
905 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val; /* _log_info on <self:ToolContext> */
906 var = var1;
907 RET_LABEL:;
908 return var;
909 }
910 /* method toolcontext#ToolContext#log_info= for (self: ToolContext, nullable Writer) */
911 void nitc___nitc__ToolContext___log_info_61d(val* self, val* p0) {
912 self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val = p0; /* _log_info on <self:ToolContext> */
913 RET_LABEL:;
914 }
915 /* method toolcontext#ToolContext#messages for (self: ToolContext): Array[Message] */
916 val* nitc___nitc__ToolContext___messages(val* self) {
917 val* var /* : Array[Message] */;
918 val* var1 /* : Array[Message] */;
919 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
920 if (unlikely(var1 == NULL)) {
921 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
922 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
923 fatal_exit(1);
924 }
925 var = var1;
926 RET_LABEL:;
927 return var;
928 }
929 /* method toolcontext#ToolContext#message_sorter for (self: ToolContext): Comparator */
930 val* nitc___nitc__ToolContext___message_sorter(val* self) {
931 val* var /* : Comparator */;
932 val* var1 /* : Comparator */;
933 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
934 if (unlikely(var1 == NULL)) {
935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 145);
937 fatal_exit(1);
938 }
939 var = var1;
940 RET_LABEL:;
941 return var;
942 }
943 /* method toolcontext#ToolContext#keep_going for (self: ToolContext): Bool */
944 short int nitc___nitc__ToolContext___keep_going(val* self) {
945 short int var /* : Bool */;
946 short int var1 /* : Bool */;
947 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___keep_going].s; /* _keep_going on <self:ToolContext> */
948 var = var1;
949 RET_LABEL:;
950 return var;
951 }
952 /* method toolcontext#ToolContext#keep_going= for (self: ToolContext, Bool) */
953 void nitc___nitc__ToolContext___keep_going_61d(val* self, short int p0) {
954 self->attrs[COLOR_nitc__toolcontext__ToolContext___keep_going].s = p0; /* _keep_going on <self:ToolContext> */
955 RET_LABEL:;
956 }
957 /* method toolcontext#ToolContext#warning_blacklist for (self: ToolContext): MultiHashMap[SourceFile, String] */
958 val* nitc___nitc__ToolContext___warning_blacklist(val* self) {
959 val* var /* : MultiHashMap[SourceFile, String] */;
960 val* var1 /* : MultiHashMap[SourceFile, String] */;
961 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_blacklist].val; /* _warning_blacklist on <self:ToolContext> */
962 if (unlikely(var1 == NULL)) {
963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _warning_blacklist");
964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 153);
965 fatal_exit(1);
966 }
967 var = var1;
968 RET_LABEL:;
969 return var;
970 }
971 /* method toolcontext#ToolContext#is_warning_blacklisted for (self: ToolContext, nullable Location, String): Bool */
972 short int nitc___nitc__ToolContext___is_warning_blacklisted(val* self, val* p0, val* p1) {
973 short int var /* : Bool */;
974 val* var_l /* var l: nullable Location */;
975 val* var_tag /* var tag: String */;
976 short int var1 /* : Bool */;
977 short int var2 /* : Bool */;
978 val* var3 /* : nullable SourceFile */;
979 val* var5 /* : nullable SourceFile */;
980 val* var_f /* var f: nullable SourceFile */;
981 short int var6 /* : Bool */;
982 short int var7 /* : Bool */;
983 val* var_other /* var other: nullable Object */;
984 short int var9 /* : Bool */;
985 short int var11 /* : Bool */;
986 val* var12 /* : MultiHashMap[SourceFile, String] */;
987 val* var14 /* : MultiHashMap[SourceFile, String] */;
988 val* var15 /* : nullable Object */;
989 val* var_tags /* var tags: nullable Array[String] */;
990 short int var16 /* : Bool */;
991 short int var17 /* : Bool */;
992 short int var18 /* : Bool */;
993 static val* varonce;
994 val* var19 /* : String */;
995 char* var20 /* : NativeString */;
996 val* var21 /* : String */;
997 short int var22 /* : Bool */;
998 short int var_ /* var : Bool */;
999 short int var23 /* : Bool */;
1000 var_l = p0;
1001 var_tag = p1;
1002 if (var_l == NULL) {
1003 var1 = 1; /* is null */
1004 } else {
1005 var1 = 0; /* arg is null but recv is not */
1006 }
1007 if (0) {
1008 var2 = nitc___nitc__Location___core__kernel__Object___61d_61d(var_l, ((val*)NULL));
1009 var1 = var2;
1010 }
1011 if (var1){
1012 var = 0;
1013 goto RET_LABEL;
1014 } else {
1015 }
1016 {
1017 { /* Inline location#Location#file (var_l) on <var_l:nullable Location(Location)> */
1018 var5 = var_l->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_l:nullable Location(Location)> */
1019 var3 = var5;
1020 RET_LABEL4:(void)0;
1021 }
1022 }
1023 var_f = var3;
1024 if (var_f == NULL) {
1025 var6 = 1; /* is null */
1026 } else {
1027 var6 = 0; /* arg is null but recv is not */
1028 }
1029 if (0) {
1030 { /* Inline kernel#Object#== (var_f,((val*)NULL)) on <var_f:nullable SourceFile> */
1031 var_other = ((val*)NULL);
1032 {
1033 { /* Inline kernel#Object#is_same_instance (var_f,var_other) on <var_f:nullable SourceFile(SourceFile)> */
1034 var11 = var_f == var_other;
1035 var9 = var11;
1036 goto RET_LABEL10;
1037 RET_LABEL10:(void)0;
1038 }
1039 }
1040 var7 = var9;
1041 goto RET_LABEL8;
1042 RET_LABEL8:(void)0;
1043 }
1044 var6 = var7;
1045 }
1046 if (var6){
1047 var = 0;
1048 goto RET_LABEL;
1049 } else {
1050 }
1051 {
1052 { /* Inline toolcontext#ToolContext#warning_blacklist (self) on <self:ToolContext> */
1053 var14 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_blacklist].val; /* _warning_blacklist on <self:ToolContext> */
1054 if (unlikely(var14 == NULL)) {
1055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _warning_blacklist");
1056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 153);
1057 fatal_exit(1);
1058 }
1059 var12 = var14;
1060 RET_LABEL13:(void)0;
1061 }
1062 }
1063 {
1064 var15 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var12, var_f);
1065 }
1066 var_tags = var15;
1067 if (var_tags == NULL) {
1068 var16 = 1; /* is null */
1069 } else {
1070 var16 = 0; /* arg is null but recv is not */
1071 }
1072 if (0) {
1073 var17 = core___core__Array___core__kernel__Object___61d_61d(var_tags, ((val*)NULL));
1074 var16 = var17;
1075 }
1076 if (var16){
1077 var = 0;
1078 goto RET_LABEL;
1079 } else {
1080 }
1081 if (likely(varonce!=NULL)) {
1082 var19 = varonce;
1083 } else {
1084 var20 = "all";
1085 var21 = core__flat___NativeString___to_s_full(var20, 3l, 3l);
1086 var19 = var21;
1087 varonce = var19;
1088 }
1089 {
1090 var22 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var_tags, var19);
1091 }
1092 var_ = var22;
1093 if (var22){
1094 var18 = var_;
1095 } else {
1096 {
1097 var23 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var_tags, var_tag);
1098 }
1099 var18 = var23;
1100 }
1101 var = var18;
1102 goto RET_LABEL;
1103 RET_LABEL:;
1104 return var;
1105 }
1106 /* method toolcontext#ToolContext#quit for (self: ToolContext) */
1107 void nitc___nitc__ToolContext___quit(val* self) {
1108 short int var /* : Bool */;
1109 long var1 /* : Int */;
1110 long var3 /* : Int */;
1111 short int var4 /* : Bool */;
1112 short int var6 /* : Bool */;
1113 int cltype;
1114 int idtype;
1115 const char* var_class_name;
1116 short int var7 /* : Bool */;
1117 val* var8 /* : Sys */;
1118 val* var10 /* : Sys */;
1119 {
1120 var = nitc___nitc__ToolContext___check_errors(self);
1121 }
1122 {
1123 nitc___nitc__ToolContext___errors_info(self); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
1124 }
1125 {
1126 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1127 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1128 var1 = var3;
1129 RET_LABEL2:(void)0;
1130 }
1131 }
1132 {
1133 { /* Inline kernel#Int#> (var1,0l) on <var1:Int> */
1134 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1135 /* <0l:Int> isa OTHER */
1136 var6 = 1; /* easy <0l:Int> isa OTHER*/
1137 if (unlikely(!var6)) {
1138 var_class_name = type_core__Int.name;
1139 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1140 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1141 fatal_exit(1);
1142 }
1143 var7 = var1 > 0l;
1144 var4 = var7;
1145 goto RET_LABEL5;
1146 RET_LABEL5:(void)0;
1147 }
1148 }
1149 if (var4){
1150 var8 = glob_sys;
1151 {
1152 { /* Inline kernel#Sys#exit (var8,1l) on <var8:Sys> */
1153 exit(1l);
1154 RET_LABEL9:(void)0;
1155 }
1156 }
1157 } else {
1158 var10 = glob_sys;
1159 {
1160 { /* Inline kernel#Sys#exit (var10,0l) on <var10:Sys> */
1161 exit(0l);
1162 RET_LABEL11:(void)0;
1163 }
1164 }
1165 }
1166 RET_LABEL:;
1167 }
1168 /* method toolcontext#ToolContext#check_errors for (self: ToolContext): Bool */
1169 short int nitc___nitc__ToolContext___check_errors(val* self) {
1170 short int var /* : Bool */;
1171 val* var1 /* : Array[Message] */;
1172 val* var3 /* : Array[Message] */;
1173 long var4 /* : Int */;
1174 long var6 /* : Int */;
1175 short int var7 /* : Bool */;
1176 short int var9 /* : Bool */;
1177 int cltype;
1178 int idtype;
1179 const char* var_class_name;
1180 short int var10 /* : Bool */;
1181 val* var11 /* : Comparator */;
1182 val* var13 /* : Comparator */;
1183 val* var14 /* : Array[Message] */;
1184 val* var16 /* : Array[Message] */;
1185 val* var17 /* : Array[Message] */;
1186 val* var19 /* : Array[Message] */;
1187 val* var_ /* var : Array[Message] */;
1188 val* var20 /* : IndexedIterator[nullable Object] */;
1189 val* var_21 /* var : IndexedIterator[Message] */;
1190 short int var22 /* : Bool */;
1191 val* var23 /* : nullable Object */;
1192 val* var_m /* var m: Message */;
1193 val* var24 /* : OptionBool */;
1194 val* var26 /* : OptionBool */;
1195 val* var27 /* : nullable Object */;
1196 val* var29 /* : nullable Object */;
1197 short int var30 /* : Bool */;
1198 val* var31 /* : Sys */;
1199 val* var33 /* : Sys */;
1200 val* var34 /* : Writer */;
1201 val* var35 /* : NativeArray[String] */;
1202 static val* varonce;
1203 static val* varonce36;
1204 val* var37 /* : String */;
1205 char* var38 /* : NativeString */;
1206 val* var39 /* : String */;
1207 val* var40 /* : String */;
1208 val* var41 /* : String */;
1209 val* var42 /* : Sys */;
1210 val* var44 /* : Sys */;
1211 val* var45 /* : Writer */;
1212 val* var47 /* : NativeArray[String] */;
1213 static val* varonce46;
1214 static val* varonce48;
1215 val* var49 /* : String */;
1216 char* var50 /* : NativeString */;
1217 val* var51 /* : String */;
1218 val* var52 /* : String */;
1219 val* var53 /* : String */;
1220 val* var54 /* : Array[Message] */;
1221 val* var56 /* : Array[Message] */;
1222 long var57 /* : Int */;
1223 long var59 /* : Int */;
1224 short int var60 /* : Bool */;
1225 short int var62 /* : Bool */;
1226 int cltype63;
1227 int idtype64;
1228 const char* var_class_name65;
1229 short int var66 /* : Bool */;
1230 short int var67 /* : Bool */;
1231 short int var69 /* : Bool */;
1232 short int var70 /* : Bool */;
1233 val* var71 /* : Sys */;
1234 {
1235 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1236 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1237 if (unlikely(var3 == NULL)) {
1238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1240 fatal_exit(1);
1241 }
1242 var1 = var3;
1243 RET_LABEL2:(void)0;
1244 }
1245 }
1246 {
1247 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[Message]> */
1248 var6 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[Message]> */
1249 var4 = var6;
1250 RET_LABEL5:(void)0;
1251 }
1252 }
1253 {
1254 { /* Inline kernel#Int#> (var4,0l) on <var4:Int> */
1255 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1256 /* <0l:Int> isa OTHER */
1257 var9 = 1; /* easy <0l:Int> isa OTHER*/
1258 if (unlikely(!var9)) {
1259 var_class_name = type_core__Int.name;
1260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1261 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1262 fatal_exit(1);
1263 }
1264 var10 = var4 > 0l;
1265 var7 = var10;
1266 goto RET_LABEL8;
1267 RET_LABEL8:(void)0;
1268 }
1269 }
1270 if (var7){
1271 {
1272 { /* Inline toolcontext#ToolContext#message_sorter (self) on <self:ToolContext> */
1273 var13 = self->attrs[COLOR_nitc__toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
1274 if (unlikely(var13 == NULL)) {
1275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
1276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 145);
1277 fatal_exit(1);
1278 }
1279 var11 = var13;
1280 RET_LABEL12:(void)0;
1281 }
1282 }
1283 {
1284 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1285 var16 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1286 if (unlikely(var16 == NULL)) {
1287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1289 fatal_exit(1);
1290 }
1291 var14 = var16;
1292 RET_LABEL15:(void)0;
1293 }
1294 }
1295 {
1296 core___core__Comparator___sort(var11, var14); /* Direct call sorter#Comparator#sort on <var11:Comparator>*/
1297 }
1298 {
1299 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1300 var19 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1301 if (unlikely(var19 == NULL)) {
1302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1303 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1304 fatal_exit(1);
1305 }
1306 var17 = var19;
1307 RET_LABEL18:(void)0;
1308 }
1309 }
1310 var_ = var17;
1311 {
1312 var20 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1313 }
1314 var_21 = var20;
1315 for(;;) {
1316 {
1317 var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on <var_21:IndexedIterator[Message]>*/
1318 }
1319 if (var22){
1320 } else {
1321 goto BREAK_label;
1322 }
1323 {
1324 var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on <var_21:IndexedIterator[Message]>*/
1325 }
1326 var_m = var23;
1327 {
1328 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
1329 var26 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1330 if (unlikely(var26 == NULL)) {
1331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1332 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 381);
1333 fatal_exit(1);
1334 }
1335 var24 = var26;
1336 RET_LABEL25:(void)0;
1337 }
1338 }
1339 {
1340 { /* Inline opts#Option#value (var24) on <var24:OptionBool> */
1341 var29 = var24->attrs[COLOR_opts__Option___value].val; /* _value on <var24:OptionBool> */
1342 var27 = var29;
1343 RET_LABEL28:(void)0;
1344 }
1345 }
1346 var30 = (short int)((long)(var27)>>2);
1347 if (var30){
1348 {
1349 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1350 var33 = glob_sys;
1351 var31 = var33;
1352 goto RET_LABEL32;
1353 RET_LABEL32:(void)0;
1354 }
1355 }
1356 {
1357 var34 = core__file___Sys___stderr(var31);
1358 }
1359 if (unlikely(varonce==NULL)) {
1360 var35 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1361 if (likely(varonce36!=NULL)) {
1362 var37 = varonce36;
1363 } else {
1364 var38 = "\n";
1365 var39 = core__flat___NativeString___to_s_full(var38, 1l, 1l);
1366 var37 = var39;
1367 varonce36 = var37;
1368 }
1369 ((struct instance_core__NativeArray*)var35)->values[1]=var37;
1370 } else {
1371 var35 = varonce;
1372 varonce = NULL;
1373 }
1374 {
1375 var40 = ((val*(*)(val* self))(var_m->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_m); /* to_s on <var_m:Message>*/
1376 }
1377 ((struct instance_core__NativeArray*)var35)->values[0]=var40;
1378 {
1379 var41 = ((val*(*)(val* self))(var35->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var35); /* native_to_s on <var35:NativeArray[String]>*/
1380 }
1381 varonce = var35;
1382 {
1383 core___core__FileWriter___core__stream__Writer__write(var34, var41); /* Direct call file#FileWriter#write on <var34:Writer>*/
1384 }
1385 } else {
1386 {
1387 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1388 var44 = glob_sys;
1389 var42 = var44;
1390 goto RET_LABEL43;
1391 RET_LABEL43:(void)0;
1392 }
1393 }
1394 {
1395 var45 = core__file___Sys___stderr(var42);
1396 }
1397 if (unlikely(varonce46==NULL)) {
1398 var47 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1399 if (likely(varonce48!=NULL)) {
1400 var49 = varonce48;
1401 } else {
1402 var50 = "\n";
1403 var51 = core__flat___NativeString___to_s_full(var50, 1l, 1l);
1404 var49 = var51;
1405 varonce48 = var49;
1406 }
1407 ((struct instance_core__NativeArray*)var47)->values[1]=var49;
1408 } else {
1409 var47 = varonce46;
1410 varonce46 = NULL;
1411 }
1412 {
1413 var52 = nitc___nitc__Message___to_color_string(var_m);
1414 }
1415 ((struct instance_core__NativeArray*)var47)->values[0]=var52;
1416 {
1417 var53 = ((val*(*)(val* self))(var47->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var47); /* native_to_s on <var47:NativeArray[String]>*/
1418 }
1419 varonce46 = var47;
1420 {
1421 core___core__FileWriter___core__stream__Writer__write(var45, var53); /* Direct call file#FileWriter#write on <var45:Writer>*/
1422 }
1423 }
1424 {
1425 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on <var_21:IndexedIterator[Message]>*/
1426 }
1427 }
1428 BREAK_label: (void)0;
1429 {
1430 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on <var_21:IndexedIterator[Message]>*/
1431 }
1432 {
1433 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1434 var56 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1435 if (unlikely(var56 == NULL)) {
1436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1437 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1438 fatal_exit(1);
1439 }
1440 var54 = var56;
1441 RET_LABEL55:(void)0;
1442 }
1443 }
1444 {
1445 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var54); /* Direct call array#AbstractArray#clear on <var54:Array[Message]>*/
1446 }
1447 } else {
1448 }
1449 {
1450 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1451 var59 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1452 var57 = var59;
1453 RET_LABEL58:(void)0;
1454 }
1455 }
1456 {
1457 { /* Inline kernel#Int#> (var57,0l) on <var57:Int> */
1458 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1459 /* <0l:Int> isa OTHER */
1460 var62 = 1; /* easy <0l:Int> isa OTHER*/
1461 if (unlikely(!var62)) {
1462 var_class_name65 = type_core__Int.name;
1463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
1464 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1465 fatal_exit(1);
1466 }
1467 var66 = var57 > 0l;
1468 var60 = var66;
1469 goto RET_LABEL61;
1470 RET_LABEL61:(void)0;
1471 }
1472 }
1473 if (var60){
1474 {
1475 { /* Inline toolcontext#ToolContext#keep_going (self) on <self:ToolContext> */
1476 var69 = self->attrs[COLOR_nitc__toolcontext__ToolContext___keep_going].s; /* _keep_going on <self:ToolContext> */
1477 var67 = var69;
1478 RET_LABEL68:(void)0;
1479 }
1480 }
1481 var70 = !var67;
1482 if (var70){
1483 {
1484 nitc___nitc__ToolContext___errors_info(self); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
1485 }
1486 var71 = glob_sys;
1487 {
1488 { /* Inline kernel#Sys#exit (var71,1l) on <var71:Sys> */
1489 exit(1l);
1490 RET_LABEL72:(void)0;
1491 }
1492 }
1493 } else {
1494 }
1495 var = 0;
1496 goto RET_LABEL;
1497 } else {
1498 }
1499 var = 1;
1500 goto RET_LABEL;
1501 RET_LABEL:;
1502 return var;
1503 }
1504 /* method toolcontext#ToolContext#errors_info for (self: ToolContext) */
1505 void nitc___nitc__ToolContext___errors_info(val* self) {
1506 short int var /* : Bool */;
1507 long var1 /* : Int */;
1508 long var3 /* : Int */;
1509 short int var4 /* : Bool */;
1510 short int var6 /* : Bool */;
1511 short int var_ /* var : Bool */;
1512 long var7 /* : Int */;
1513 long var9 /* : Int */;
1514 short int var10 /* : Bool */;
1515 short int var12 /* : Bool */;
1516 val* var13 /* : OptionBool */;
1517 val* var15 /* : OptionBool */;
1518 val* var16 /* : nullable Object */;
1519 val* var18 /* : nullable Object */;
1520 short int var19 /* : Bool */;
1521 val* var20 /* : Sys */;
1522 val* var22 /* : Sys */;
1523 val* var23 /* : Writer */;
1524 val* var24 /* : NativeArray[String] */;
1525 static val* varonce;
1526 static val* varonce25;
1527 val* var26 /* : String */;
1528 char* var27 /* : NativeString */;
1529 val* var28 /* : String */;
1530 static val* varonce29;
1531 val* var30 /* : String */;
1532 char* var31 /* : NativeString */;
1533 val* var32 /* : String */;
1534 static val* varonce33;
1535 val* var34 /* : String */;
1536 char* var35 /* : NativeString */;
1537 val* var36 /* : String */;
1538 long var37 /* : Int */;
1539 long var39 /* : Int */;
1540 val* var40 /* : String */;
1541 long var41 /* : Int */;
1542 long var43 /* : Int */;
1543 val* var44 /* : String */;
1544 val* var45 /* : String */;
1545 {
1546 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1547 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1548 var1 = var3;
1549 RET_LABEL2:(void)0;
1550 }
1551 }
1552 {
1553 { /* Inline kernel#Int#== (var1,0l) on <var1:Int> */
1554 var6 = var1 == 0l;
1555 var4 = var6;
1556 goto RET_LABEL5;
1557 RET_LABEL5:(void)0;
1558 }
1559 }
1560 var_ = var4;
1561 if (var4){
1562 {
1563 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1564 var9 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1565 var7 = var9;
1566 RET_LABEL8:(void)0;
1567 }
1568 }
1569 {
1570 { /* Inline kernel#Int#== (var7,0l) on <var7:Int> */
1571 var12 = var7 == 0l;
1572 var10 = var12;
1573 goto RET_LABEL11;
1574 RET_LABEL11:(void)0;
1575 }
1576 }
1577 var = var10;
1578 } else {
1579 var = var_;
1580 }
1581 if (var){
1582 goto RET_LABEL;
1583 } else {
1584 }
1585 {
1586 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
1587 var15 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1588 if (unlikely(var15 == NULL)) {
1589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 381);
1591 fatal_exit(1);
1592 }
1593 var13 = var15;
1594 RET_LABEL14:(void)0;
1595 }
1596 }
1597 {
1598 { /* Inline opts#Option#value (var13) on <var13:OptionBool> */
1599 var18 = var13->attrs[COLOR_opts__Option___value].val; /* _value on <var13:OptionBool> */
1600 var16 = var18;
1601 RET_LABEL17:(void)0;
1602 }
1603 }
1604 var19 = (short int)((long)(var16)>>2);
1605 if (var19){
1606 goto RET_LABEL;
1607 } else {
1608 }
1609 {
1610 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1611 var22 = glob_sys;
1612 var20 = var22;
1613 goto RET_LABEL21;
1614 RET_LABEL21:(void)0;
1615 }
1616 }
1617 {
1618 var23 = core__file___Sys___stderr(var20);
1619 }
1620 if (unlikely(varonce==NULL)) {
1621 var24 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
1622 if (likely(varonce25!=NULL)) {
1623 var26 = varonce25;
1624 } else {
1625 var27 = "Errors: ";
1626 var28 = core__flat___NativeString___to_s_full(var27, 8l, 8l);
1627 var26 = var28;
1628 varonce25 = var26;
1629 }
1630 ((struct instance_core__NativeArray*)var24)->values[0]=var26;
1631 if (likely(varonce29!=NULL)) {
1632 var30 = varonce29;
1633 } else {
1634 var31 = ". Warnings: ";
1635 var32 = core__flat___NativeString___to_s_full(var31, 12l, 12l);
1636 var30 = var32;
1637 varonce29 = var30;
1638 }
1639 ((struct instance_core__NativeArray*)var24)->values[2]=var30;
1640 if (likely(varonce33!=NULL)) {
1641 var34 = varonce33;
1642 } else {
1643 var35 = ".\n";
1644 var36 = core__flat___NativeString___to_s_full(var35, 2l, 2l);
1645 var34 = var36;
1646 varonce33 = var34;
1647 }
1648 ((struct instance_core__NativeArray*)var24)->values[4]=var34;
1649 } else {
1650 var24 = varonce;
1651 varonce = NULL;
1652 }
1653 {
1654 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1655 var39 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1656 var37 = var39;
1657 RET_LABEL38:(void)0;
1658 }
1659 }
1660 var40 = core__flat___Int___core__abstract_text__Object__to_s(var37);
1661 ((struct instance_core__NativeArray*)var24)->values[1]=var40;
1662 {
1663 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1664 var43 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1665 var41 = var43;
1666 RET_LABEL42:(void)0;
1667 }
1668 }
1669 var44 = core__flat___Int___core__abstract_text__Object__to_s(var41);
1670 ((struct instance_core__NativeArray*)var24)->values[3]=var44;
1671 {
1672 var45 = ((val*(*)(val* self))(var24->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var24); /* native_to_s on <var24:NativeArray[String]>*/
1673 }
1674 varonce = var24;
1675 {
1676 core___core__FileWriter___core__stream__Writer__write(var23, var45); /* Direct call file#FileWriter#write on <var23:Writer>*/
1677 }
1678 RET_LABEL:;
1679 }
1680 /* method toolcontext#ToolContext#error for (self: ToolContext, nullable Location, String): Message */
1681 val* nitc___nitc__ToolContext___error(val* self, val* p0, val* p1) {
1682 val* var /* : Message */;
1683 val* var_l /* var l: nullable Location */;
1684 val* var_s /* var s: String */;
1685 val* var1 /* : Message */;
1686 val* var_m /* var m: Message */;
1687 val* var2 /* : Array[Message] */;
1688 val* var4 /* : Array[Message] */;
1689 short int var5 /* : Bool */;
1690 short int var6 /* : Bool */;
1691 short int var7 /* : Bool */;
1692 val* var_other /* var other: nullable Object */;
1693 short int var9 /* : Bool */;
1694 short int var10 /* : Bool */;
1695 val* var11 /* : Array[Message] */;
1696 val* var13 /* : Array[Message] */;
1697 long var14 /* : Int */;
1698 long var16 /* : Int */;
1699 long var17 /* : Int */;
1700 short int var19 /* : Bool */;
1701 int cltype;
1702 int idtype;
1703 const char* var_class_name;
1704 long var20 /* : Int */;
1705 val* var22 /* : OptionBool */;
1706 val* var24 /* : OptionBool */;
1707 val* var25 /* : nullable Object */;
1708 val* var27 /* : nullable Object */;
1709 short int var28 /* : Bool */;
1710 short int var29 /* : Bool */;
1711 var_l = p0;
1712 var_s = p1;
1713 var1 = NEW_nitc__Message(&type_nitc__Message);
1714 {
1715 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nitc__toolcontext__Message__location_61d]))(var1, var_l); /* location= on <var1:Message>*/
1716 }
1717 {
1718 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nitc__toolcontext__Message__tag_61d]))(var1, ((val*)NULL)); /* tag= on <var1:Message>*/
1719 }
1720 {
1721 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nitc__toolcontext__Message__text_61d]))(var1, var_s); /* text= on <var1:Message>*/
1722 }
1723 {
1724 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:Message>*/
1725 }
1726 var_m = var1;
1727 {
1728 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1729 var4 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1730 if (unlikely(var4 == NULL)) {
1731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1733 fatal_exit(1);
1734 }
1735 var2 = var4;
1736 RET_LABEL3:(void)0;
1737 }
1738 }
1739 {
1740 var5 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var2, var_m);
1741 }
1742 if (var5){
1743 var = var_m;
1744 goto RET_LABEL;
1745 } else {
1746 }
1747 if (var_l == NULL) {
1748 var6 = 0; /* is null */
1749 } else {
1750 var6 = 1; /* arg is null and recv is not */
1751 }
1752 if (0) {
1753 { /* Inline kernel#Object#!= (var_l,((val*)NULL)) on <var_l:nullable Location> */
1754 var_other = ((val*)NULL);
1755 {
1756 var9 = ((short int(*)(val* self, val* p0))(var_l->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_l, var_other); /* == on <var_l:nullable Location(Location)>*/
1757 }
1758 var10 = !var9;
1759 var7 = var10;
1760 goto RET_LABEL8;
1761 RET_LABEL8:(void)0;
1762 }
1763 var6 = var7;
1764 }
1765 if (var6){
1766 {
1767 nitc__toolcontext___Location___add_message(var_l, var_m); /* Direct call toolcontext#Location#add_message on <var_l:nullable Location(Location)>*/
1768 }
1769 } else {
1770 }
1771 {
1772 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1773 var13 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1774 if (unlikely(var13 == NULL)) {
1775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
1777 fatal_exit(1);
1778 }
1779 var11 = var13;
1780 RET_LABEL12:(void)0;
1781 }
1782 }
1783 {
1784 core___core__Array___core__abstract_collection__SimpleCollection__add(var11, var_m); /* Direct call array#Array#add on <var11:Array[Message]>*/
1785 }
1786 {
1787 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1788 var16 = self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1789 var14 = var16;
1790 RET_LABEL15:(void)0;
1791 }
1792 }
1793 {
1794 { /* Inline kernel#Int#+ (var14,1l) on <var14:Int> */
1795 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1796 /* <1l:Int> isa OTHER */
1797 var19 = 1; /* easy <1l:Int> isa OTHER*/
1798 if (unlikely(!var19)) {
1799 var_class_name = type_core__Int.name;
1800 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1801 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1802 fatal_exit(1);
1803 }
1804 var20 = var14 + 1l;
1805 var17 = var20;
1806 goto RET_LABEL18;
1807 RET_LABEL18:(void)0;
1808 }
1809 }
1810 {
1811 { /* Inline toolcontext#ToolContext#error_count= (self,var17) on <self:ToolContext> */
1812 self->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l = var17; /* _error_count on <self:ToolContext> */
1813 RET_LABEL21:(void)0;
1814 }
1815 }
1816 {
1817 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
1818 var24 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1819 if (unlikely(var24 == NULL)) {
1820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1821 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 375);
1822 fatal_exit(1);
1823 }
1824 var22 = var24;
1825 RET_LABEL23:(void)0;
1826 }
1827 }
1828 {
1829 { /* Inline opts#Option#value (var22) on <var22:OptionBool> */
1830 var27 = var22->attrs[COLOR_opts__Option___value].val; /* _value on <var22:OptionBool> */
1831 var25 = var27;
1832 RET_LABEL26:(void)0;
1833 }
1834 }
1835 var28 = (short int)((long)(var25)>>2);
1836 if (var28){
1837 {
1838 var29 = nitc___nitc__ToolContext___check_errors(self);
1839 }
1840 } else {
1841 }
1842 var = var_m;
1843 goto RET_LABEL;
1844 RET_LABEL:;
1845 return var;
1846 }
1847 /* method toolcontext#ToolContext#fatal_error for (self: ToolContext, nullable Location, String) */
1848 void nitc___nitc__ToolContext___fatal_error(val* self, val* p0, val* p1) {
1849 val* var_l /* var l: nullable Location */;
1850 val* var_s /* var s: String */;
1851 val* var /* : Message */;
1852 short int var1 /* : Bool */;
1853 var_l = p0;
1854 var_s = p1;
1855 {
1856 var = nitc___nitc__ToolContext___error(self, var_l, var_s);
1857 }
1858 {
1859 var1 = nitc___nitc__ToolContext___check_errors(self);
1860 }
1861 RET_LABEL:;
1862 }
1863 /* method toolcontext#ToolContext#warning for (self: ToolContext, nullable Location, String, String): nullable Message */
1864 val* nitc___nitc__ToolContext___warning(val* self, val* p0, val* p1, val* p2) {
1865 val* var /* : nullable Message */;
1866 val* var_l /* var l: nullable Location */;
1867 val* var_tag /* var tag: String */;
1868 val* var_text /* var text: String */;
1869 val* var1 /* : OptionArray */;
1870 val* var3 /* : OptionArray */;
1871 val* var4 /* : nullable Object */;
1872 val* var6 /* : nullable Object */;
1873 val* var7 /* : NativeArray[String] */;
1874 static val* varonce;
1875 static val* varonce8;
1876 val* var9 /* : String */;
1877 char* var10 /* : NativeString */;
1878 val* var11 /* : String */;
1879 val* var12 /* : String */;
1880 short int var13 /* : Bool */;
1881 short int var14 /* : Bool */;
1882 val* var15 /* : OptionArray */;
1883 val* var17 /* : OptionArray */;
1884 val* var18 /* : nullable Object */;
1885 val* var20 /* : nullable Object */;
1886 short int var21 /* : Bool */;
1887 short int var22 /* : Bool */;
1888 short int var_ /* var : Bool */;
1889 val* var23 /* : OptionCount */;
1890 val* var25 /* : OptionCount */;
1891 val* var26 /* : nullable Object */;
1892 val* var28 /* : nullable Object */;
1893 short int var29 /* : Bool */;
1894 short int var31 /* : Bool */;
1895 long var32 /* : Int */;
1896 short int var33 /* : Bool */;
1897 val* var34 /* : Message */;
1898 val* var_m /* var m: Message */;
1899 val* var35 /* : Array[Message] */;
1900 val* var37 /* : Array[Message] */;
1901 short int var38 /* : Bool */;
1902 short int var39 /* : Bool */;
1903 short int var40 /* : Bool */;
1904 val* var_other /* var other: nullable Object */;
1905 short int var42 /* : Bool */;
1906 short int var43 /* : Bool */;
1907 val* var44 /* : Array[Message] */;
1908 val* var46 /* : Array[Message] */;
1909 long var47 /* : Int */;
1910 long var49 /* : Int */;
1911 long var50 /* : Int */;
1912 short int var52 /* : Bool */;
1913 int cltype;
1914 int idtype;
1915 const char* var_class_name;
1916 long var53 /* : Int */;
1917 val* var55 /* : OptionBool */;
1918 val* var57 /* : OptionBool */;
1919 val* var58 /* : nullable Object */;
1920 val* var60 /* : nullable Object */;
1921 short int var61 /* : Bool */;
1922 short int var62 /* : Bool */;
1923 var_l = p0;
1924 var_tag = p1;
1925 var_text = p2;
1926 {
1927 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
1928 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
1929 if (unlikely(var3 == NULL)) {
1930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
1931 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
1932 fatal_exit(1);
1933 }
1934 var1 = var3;
1935 RET_LABEL2:(void)0;
1936 }
1937 }
1938 {
1939 { /* Inline opts#Option#value (var1) on <var1:OptionArray> */
1940 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionArray> */
1941 var4 = var6;
1942 RET_LABEL5:(void)0;
1943 }
1944 }
1945 if (unlikely(varonce==NULL)) {
1946 var7 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1947 if (likely(varonce8!=NULL)) {
1948 var9 = varonce8;
1949 } else {
1950 var10 = "no-";
1951 var11 = core__flat___NativeString___to_s_full(var10, 3l, 3l);
1952 var9 = var11;
1953 varonce8 = var9;
1954 }
1955 ((struct instance_core__NativeArray*)var7)->values[0]=var9;
1956 } else {
1957 var7 = varonce;
1958 varonce = NULL;
1959 }
1960 ((struct instance_core__NativeArray*)var7)->values[1]=var_tag;
1961 {
1962 var12 = ((val*(*)(val* self))(var7->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var7); /* native_to_s on <var7:NativeArray[String]>*/
1963 }
1964 varonce = var7;
1965 {
1966 var13 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var4, var12);
1967 }
1968 if (var13){
1969 var = ((val*)NULL);
1970 goto RET_LABEL;
1971 } else {
1972 }
1973 {
1974 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
1975 var17 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
1976 if (unlikely(var17 == NULL)) {
1977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
1978 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
1979 fatal_exit(1);
1980 }
1981 var15 = var17;
1982 RET_LABEL16:(void)0;
1983 }
1984 }
1985 {
1986 { /* Inline opts#Option#value (var15) on <var15:OptionArray> */
1987 var20 = var15->attrs[COLOR_opts__Option___value].val; /* _value on <var15:OptionArray> */
1988 var18 = var20;
1989 RET_LABEL19:(void)0;
1990 }
1991 }
1992 {
1993 var21 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var18, var_tag);
1994 }
1995 var22 = !var21;
1996 var_ = var22;
1997 if (var22){
1998 {
1999 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2000 var25 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2001 if (unlikely(var25 == NULL)) {
2002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2003 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
2004 fatal_exit(1);
2005 }
2006 var23 = var25;
2007 RET_LABEL24:(void)0;
2008 }
2009 }
2010 {
2011 { /* Inline opts#Option#value (var23) on <var23:OptionCount> */
2012 var28 = var23->attrs[COLOR_opts__Option___value].val; /* _value on <var23:OptionCount> */
2013 var26 = var28;
2014 RET_LABEL27:(void)0;
2015 }
2016 }
2017 {
2018 { /* Inline kernel#Int#== (var26,0l) on <var26:nullable Object(Int)> */
2019 var32 = (long)(var26)>>2;
2020 var31 = var32 == 0l;
2021 var29 = var31;
2022 goto RET_LABEL30;
2023 RET_LABEL30:(void)0;
2024 }
2025 }
2026 var14 = var29;
2027 } else {
2028 var14 = var_;
2029 }
2030 if (var14){
2031 var = ((val*)NULL);
2032 goto RET_LABEL;
2033 } else {
2034 }
2035 {
2036 var33 = nitc___nitc__ToolContext___is_warning_blacklisted(self, var_l, var_tag);
2037 }
2038 if (var33){
2039 var = ((val*)NULL);
2040 goto RET_LABEL;
2041 } else {
2042 }
2043 var34 = NEW_nitc__Message(&type_nitc__Message);
2044 {
2045 ((void(*)(val* self, val* p0))(var34->class->vft[COLOR_nitc__toolcontext__Message__location_61d]))(var34, var_l); /* location= on <var34:Message>*/
2046 }
2047 {
2048 ((void(*)(val* self, val* p0))(var34->class->vft[COLOR_nitc__toolcontext__Message__tag_61d]))(var34, var_tag); /* tag= on <var34:Message>*/
2049 }
2050 {
2051 ((void(*)(val* self, val* p0))(var34->class->vft[COLOR_nitc__toolcontext__Message__text_61d]))(var34, var_text); /* text= on <var34:Message>*/
2052 }
2053 {
2054 ((void(*)(val* self))(var34->class->vft[COLOR_core__kernel__Object__init]))(var34); /* init on <var34:Message>*/
2055 }
2056 var_m = var34;
2057 {
2058 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
2059 var37 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
2060 if (unlikely(var37 == NULL)) {
2061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
2062 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
2063 fatal_exit(1);
2064 }
2065 var35 = var37;
2066 RET_LABEL36:(void)0;
2067 }
2068 }
2069 {
2070 var38 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var35, var_m);
2071 }
2072 if (var38){
2073 var = ((val*)NULL);
2074 goto RET_LABEL;
2075 } else {
2076 }
2077 if (var_l == NULL) {
2078 var39 = 0; /* is null */
2079 } else {
2080 var39 = 1; /* arg is null and recv is not */
2081 }
2082 if (0) {
2083 { /* Inline kernel#Object#!= (var_l,((val*)NULL)) on <var_l:nullable Location> */
2084 var_other = ((val*)NULL);
2085 {
2086 var42 = ((short int(*)(val* self, val* p0))(var_l->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_l, var_other); /* == on <var_l:nullable Location(Location)>*/
2087 }
2088 var43 = !var42;
2089 var40 = var43;
2090 goto RET_LABEL41;
2091 RET_LABEL41:(void)0;
2092 }
2093 var39 = var40;
2094 }
2095 if (var39){
2096 {
2097 nitc__toolcontext___Location___add_message(var_l, var_m); /* Direct call toolcontext#Location#add_message on <var_l:nullable Location(Location)>*/
2098 }
2099 } else {
2100 }
2101 {
2102 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
2103 var46 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
2104 if (unlikely(var46 == NULL)) {
2105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
2106 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
2107 fatal_exit(1);
2108 }
2109 var44 = var46;
2110 RET_LABEL45:(void)0;
2111 }
2112 }
2113 {
2114 core___core__Array___core__abstract_collection__SimpleCollection__add(var44, var_m); /* Direct call array#Array#add on <var44:Array[Message]>*/
2115 }
2116 {
2117 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
2118 var49 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
2119 var47 = var49;
2120 RET_LABEL48:(void)0;
2121 }
2122 }
2123 {
2124 { /* Inline kernel#Int#+ (var47,1l) on <var47:Int> */
2125 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2126 /* <1l:Int> isa OTHER */
2127 var52 = 1; /* easy <1l:Int> isa OTHER*/
2128 if (unlikely(!var52)) {
2129 var_class_name = type_core__Int.name;
2130 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2131 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2132 fatal_exit(1);
2133 }
2134 var53 = var47 + 1l;
2135 var50 = var53;
2136 goto RET_LABEL51;
2137 RET_LABEL51:(void)0;
2138 }
2139 }
2140 {
2141 { /* Inline toolcontext#ToolContext#warning_count= (self,var50) on <self:ToolContext> */
2142 self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l = var50; /* _warning_count on <self:ToolContext> */
2143 RET_LABEL54:(void)0;
2144 }
2145 }
2146 {
2147 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2148 var57 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2149 if (unlikely(var57 == NULL)) {
2150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 375);
2152 fatal_exit(1);
2153 }
2154 var55 = var57;
2155 RET_LABEL56:(void)0;
2156 }
2157 }
2158 {
2159 { /* Inline opts#Option#value (var55) on <var55:OptionBool> */
2160 var60 = var55->attrs[COLOR_opts__Option___value].val; /* _value on <var55:OptionBool> */
2161 var58 = var60;
2162 RET_LABEL59:(void)0;
2163 }
2164 }
2165 var61 = (short int)((long)(var58)>>2);
2166 if (var61){
2167 {
2168 var62 = nitc___nitc__ToolContext___check_errors(self);
2169 }
2170 } else {
2171 }
2172 var = var_m;
2173 goto RET_LABEL;
2174 RET_LABEL:;
2175 return var;
2176 }
2177 /* method toolcontext#ToolContext#advice for (self: ToolContext, nullable Location, String, String): nullable Message */
2178 val* nitc___nitc__ToolContext___advice(val* self, val* p0, val* p1, val* p2) {
2179 val* var /* : nullable Message */;
2180 val* var_l /* var l: nullable Location */;
2181 val* var_tag /* var tag: String */;
2182 val* var_text /* var text: String */;
2183 val* var1 /* : OptionArray */;
2184 val* var3 /* : OptionArray */;
2185 val* var4 /* : nullable Object */;
2186 val* var6 /* : nullable Object */;
2187 val* var7 /* : NativeArray[String] */;
2188 static val* varonce;
2189 static val* varonce8;
2190 val* var9 /* : String */;
2191 char* var10 /* : NativeString */;
2192 val* var11 /* : String */;
2193 val* var12 /* : String */;
2194 short int var13 /* : Bool */;
2195 short int var14 /* : Bool */;
2196 val* var15 /* : OptionArray */;
2197 val* var17 /* : OptionArray */;
2198 val* var18 /* : nullable Object */;
2199 val* var20 /* : nullable Object */;
2200 short int var21 /* : Bool */;
2201 short int var22 /* : Bool */;
2202 short int var_ /* var : Bool */;
2203 val* var23 /* : OptionCount */;
2204 val* var25 /* : OptionCount */;
2205 val* var26 /* : nullable Object */;
2206 val* var28 /* : nullable Object */;
2207 short int var29 /* : Bool */;
2208 short int var31 /* : Bool */;
2209 int cltype;
2210 int idtype;
2211 const char* var_class_name;
2212 long var32 /* : Int */;
2213 short int var33 /* : Bool */;
2214 short int var34 /* : Bool */;
2215 val* var35 /* : Message */;
2216 val* var_m /* var m: Message */;
2217 val* var36 /* : Array[Message] */;
2218 val* var38 /* : Array[Message] */;
2219 short int var39 /* : Bool */;
2220 short int var40 /* : Bool */;
2221 short int var41 /* : Bool */;
2222 val* var_other /* var other: nullable Object */;
2223 short int var43 /* : Bool */;
2224 short int var44 /* : Bool */;
2225 val* var45 /* : Array[Message] */;
2226 val* var47 /* : Array[Message] */;
2227 long var48 /* : Int */;
2228 long var50 /* : Int */;
2229 long var51 /* : Int */;
2230 short int var53 /* : Bool */;
2231 int cltype54;
2232 int idtype55;
2233 const char* var_class_name56;
2234 long var57 /* : Int */;
2235 val* var59 /* : OptionBool */;
2236 val* var61 /* : OptionBool */;
2237 val* var62 /* : nullable Object */;
2238 val* var64 /* : nullable Object */;
2239 short int var65 /* : Bool */;
2240 short int var66 /* : Bool */;
2241 var_l = p0;
2242 var_tag = p1;
2243 var_text = p2;
2244 {
2245 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
2246 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2247 if (unlikely(var3 == NULL)) {
2248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2249 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
2250 fatal_exit(1);
2251 }
2252 var1 = var3;
2253 RET_LABEL2:(void)0;
2254 }
2255 }
2256 {
2257 { /* Inline opts#Option#value (var1) on <var1:OptionArray> */
2258 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionArray> */
2259 var4 = var6;
2260 RET_LABEL5:(void)0;
2261 }
2262 }
2263 if (unlikely(varonce==NULL)) {
2264 var7 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
2265 if (likely(varonce8!=NULL)) {
2266 var9 = varonce8;
2267 } else {
2268 var10 = "no-";
2269 var11 = core__flat___NativeString___to_s_full(var10, 3l, 3l);
2270 var9 = var11;
2271 varonce8 = var9;
2272 }
2273 ((struct instance_core__NativeArray*)var7)->values[0]=var9;
2274 } else {
2275 var7 = varonce;
2276 varonce = NULL;
2277 }
2278 ((struct instance_core__NativeArray*)var7)->values[1]=var_tag;
2279 {
2280 var12 = ((val*(*)(val* self))(var7->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var7); /* native_to_s on <var7:NativeArray[String]>*/
2281 }
2282 varonce = var7;
2283 {
2284 var13 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var4, var12);
2285 }
2286 if (var13){
2287 var = ((val*)NULL);
2288 goto RET_LABEL;
2289 } else {
2290 }
2291 {
2292 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
2293 var17 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2294 if (unlikely(var17 == NULL)) {
2295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2296 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
2297 fatal_exit(1);
2298 }
2299 var15 = var17;
2300 RET_LABEL16:(void)0;
2301 }
2302 }
2303 {
2304 { /* Inline opts#Option#value (var15) on <var15:OptionArray> */
2305 var20 = var15->attrs[COLOR_opts__Option___value].val; /* _value on <var15:OptionArray> */
2306 var18 = var20;
2307 RET_LABEL19:(void)0;
2308 }
2309 }
2310 {
2311 var21 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var18, var_tag);
2312 }
2313 var22 = !var21;
2314 var_ = var22;
2315 if (var22){
2316 {
2317 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2318 var25 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2319 if (unlikely(var25 == NULL)) {
2320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
2322 fatal_exit(1);
2323 }
2324 var23 = var25;
2325 RET_LABEL24:(void)0;
2326 }
2327 }
2328 {
2329 { /* Inline opts#Option#value (var23) on <var23:OptionCount> */
2330 var28 = var23->attrs[COLOR_opts__Option___value].val; /* _value on <var23:OptionCount> */
2331 var26 = var28;
2332 RET_LABEL27:(void)0;
2333 }
2334 }
2335 {
2336 { /* Inline kernel#Int#<= (var26,1l) on <var26:nullable Object(Int)> */
2337 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2338 /* <1l:Int> isa OTHER */
2339 var31 = 1; /* easy <1l:Int> isa OTHER*/
2340 if (unlikely(!var31)) {
2341 var_class_name = type_core__Int.name;
2342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2343 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2344 fatal_exit(1);
2345 }
2346 var32 = (long)(var26)>>2;
2347 var33 = var32 <= 1l;
2348 var29 = var33;
2349 goto RET_LABEL30;
2350 RET_LABEL30:(void)0;
2351 }
2352 }
2353 var14 = var29;
2354 } else {
2355 var14 = var_;
2356 }
2357 if (var14){
2358 var = ((val*)NULL);
2359 goto RET_LABEL;
2360 } else {
2361 }
2362 {
2363 var34 = nitc___nitc__ToolContext___is_warning_blacklisted(self, var_l, var_tag);
2364 }
2365 if (var34){
2366 var = ((val*)NULL);
2367 goto RET_LABEL;
2368 } else {
2369 }
2370 var35 = NEW_nitc__Message(&type_nitc__Message);
2371 {
2372 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_nitc__toolcontext__Message__location_61d]))(var35, var_l); /* location= on <var35:Message>*/
2373 }
2374 {
2375 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_nitc__toolcontext__Message__tag_61d]))(var35, var_tag); /* tag= on <var35:Message>*/
2376 }
2377 {
2378 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_nitc__toolcontext__Message__text_61d]))(var35, var_text); /* text= on <var35:Message>*/
2379 }
2380 {
2381 ((void(*)(val* self))(var35->class->vft[COLOR_core__kernel__Object__init]))(var35); /* init on <var35:Message>*/
2382 }
2383 var_m = var35;
2384 {
2385 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
2386 var38 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
2387 if (unlikely(var38 == NULL)) {
2388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
2389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
2390 fatal_exit(1);
2391 }
2392 var36 = var38;
2393 RET_LABEL37:(void)0;
2394 }
2395 }
2396 {
2397 var39 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var36, var_m);
2398 }
2399 if (var39){
2400 var = ((val*)NULL);
2401 goto RET_LABEL;
2402 } else {
2403 }
2404 if (var_l == NULL) {
2405 var40 = 0; /* is null */
2406 } else {
2407 var40 = 1; /* arg is null and recv is not */
2408 }
2409 if (0) {
2410 { /* Inline kernel#Object#!= (var_l,((val*)NULL)) on <var_l:nullable Location> */
2411 var_other = ((val*)NULL);
2412 {
2413 var43 = ((short int(*)(val* self, val* p0))(var_l->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_l, var_other); /* == on <var_l:nullable Location(Location)>*/
2414 }
2415 var44 = !var43;
2416 var41 = var44;
2417 goto RET_LABEL42;
2418 RET_LABEL42:(void)0;
2419 }
2420 var40 = var41;
2421 }
2422 if (var40){
2423 {
2424 nitc__toolcontext___Location___add_message(var_l, var_m); /* Direct call toolcontext#Location#add_message on <var_l:nullable Location(Location)>*/
2425 }
2426 } else {
2427 }
2428 {
2429 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
2430 var47 = self->attrs[COLOR_nitc__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
2431 if (unlikely(var47 == NULL)) {
2432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
2433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 143);
2434 fatal_exit(1);
2435 }
2436 var45 = var47;
2437 RET_LABEL46:(void)0;
2438 }
2439 }
2440 {
2441 core___core__Array___core__abstract_collection__SimpleCollection__add(var45, var_m); /* Direct call array#Array#add on <var45:Array[Message]>*/
2442 }
2443 {
2444 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
2445 var50 = self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
2446 var48 = var50;
2447 RET_LABEL49:(void)0;
2448 }
2449 }
2450 {
2451 { /* Inline kernel#Int#+ (var48,1l) on <var48:Int> */
2452 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2453 /* <1l:Int> isa OTHER */
2454 var53 = 1; /* easy <1l:Int> isa OTHER*/
2455 if (unlikely(!var53)) {
2456 var_class_name56 = type_core__Int.name;
2457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
2458 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2459 fatal_exit(1);
2460 }
2461 var57 = var48 + 1l;
2462 var51 = var57;
2463 goto RET_LABEL52;
2464 RET_LABEL52:(void)0;
2465 }
2466 }
2467 {
2468 { /* Inline toolcontext#ToolContext#warning_count= (self,var51) on <self:ToolContext> */
2469 self->attrs[COLOR_nitc__toolcontext__ToolContext___warning_count].l = var51; /* _warning_count on <self:ToolContext> */
2470 RET_LABEL58:(void)0;
2471 }
2472 }
2473 {
2474 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2475 var61 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2476 if (unlikely(var61 == NULL)) {
2477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2478 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 375);
2479 fatal_exit(1);
2480 }
2481 var59 = var61;
2482 RET_LABEL60:(void)0;
2483 }
2484 }
2485 {
2486 { /* Inline opts#Option#value (var59) on <var59:OptionBool> */
2487 var64 = var59->attrs[COLOR_opts__Option___value].val; /* _value on <var59:OptionBool> */
2488 var62 = var64;
2489 RET_LABEL63:(void)0;
2490 }
2491 }
2492 var65 = (short int)((long)(var62)>>2);
2493 if (var65){
2494 {
2495 var66 = nitc___nitc__ToolContext___check_errors(self);
2496 }
2497 } else {
2498 }
2499 var = var_m;
2500 goto RET_LABEL;
2501 RET_LABEL:;
2502 return var;
2503 }
2504 /* method toolcontext#ToolContext#info for (self: ToolContext, String, Int) */
2505 void nitc___nitc__ToolContext___info(val* self, val* p0, long p1) {
2506 val* var_s /* var s: String */;
2507 long var_level /* var level: Int */;
2508 long var /* : Int */;
2509 long var2 /* : Int */;
2510 short int var3 /* : Bool */;
2511 short int var5 /* : Bool */;
2512 int cltype;
2513 int idtype;
2514 const char* var_class_name;
2515 short int var6 /* : Bool */;
2516 val* var7 /* : Sys */;
2517 val* var8 /* : NativeArray[String] */;
2518 static val* varonce;
2519 val* var9 /* : String */;
2520 val* var10 /* : nullable Writer */;
2521 val* var12 /* : nullable Writer */;
2522 short int var13 /* : Bool */;
2523 short int var14 /* : Bool */;
2524 val* var_other /* var other: nullable Object */;
2525 short int var16 /* : Bool */;
2526 short int var17 /* : Bool */;
2527 val* var18 /* : nullable Writer */;
2528 val* var20 /* : nullable Writer */;
2529 val* var21 /* : nullable Writer */;
2530 val* var23 /* : nullable Writer */;
2531 static val* varonce24;
2532 val* var25 /* : String */;
2533 char* var26 /* : NativeString */;
2534 val* var27 /* : String */;
2535 var_s = p0;
2536 var_level = p1;
2537 {
2538 { /* Inline toolcontext#ToolContext#verbose_level (self) on <self:ToolContext> */
2539 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
2540 var = var2;
2541 RET_LABEL1:(void)0;
2542 }
2543 }
2544 {
2545 { /* Inline kernel#Int#<= (var_level,var) on <var_level:Int> */
2546 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
2547 /* <var:Int> isa OTHER */
2548 var5 = 1; /* easy <var:Int> isa OTHER*/
2549 if (unlikely(!var5)) {
2550 var_class_name = type_core__Int.name;
2551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2552 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2553 fatal_exit(1);
2554 }
2555 var6 = var_level <= var;
2556 var3 = var6;
2557 goto RET_LABEL4;
2558 RET_LABEL4:(void)0;
2559 }
2560 }
2561 if (var3){
2562 var7 = glob_sys;
2563 if (unlikely(varonce==NULL)) {
2564 var8 = NEW_core__NativeArray(1l, &type_core__NativeArray__core__String);
2565 } else {
2566 var8 = varonce;
2567 varonce = NULL;
2568 }
2569 ((struct instance_core__NativeArray*)var8)->values[0]=var_s;
2570 {
2571 var9 = ((val*(*)(val* self))(var8->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var8); /* native_to_s on <var8:NativeArray[String]>*/
2572 }
2573 varonce = var8;
2574 {
2575 core__file___Sys___print(var7, var9); /* Direct call file#Sys#print on <var7:Sys>*/
2576 }
2577 } else {
2578 }
2579 {
2580 { /* Inline toolcontext#ToolContext#log_info (self) on <self:ToolContext> */
2581 var12 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val; /* _log_info on <self:ToolContext> */
2582 var10 = var12;
2583 RET_LABEL11:(void)0;
2584 }
2585 }
2586 if (var10 == NULL) {
2587 var13 = 0; /* is null */
2588 } else {
2589 var13 = 1; /* arg is null and recv is not */
2590 }
2591 if (0) {
2592 { /* Inline kernel#Object#!= (var10,((val*)NULL)) on <var10:nullable Writer> */
2593 var_other = ((val*)NULL);
2594 {
2595 var16 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_core__kernel__Object___61d_61d]))(var10, var_other); /* == on <var10:nullable Writer(Writer)>*/
2596 }
2597 var17 = !var16;
2598 var14 = var17;
2599 goto RET_LABEL15;
2600 RET_LABEL15:(void)0;
2601 }
2602 var13 = var14;
2603 }
2604 if (var13){
2605 {
2606 { /* Inline toolcontext#ToolContext#log_info (self) on <self:ToolContext> */
2607 var20 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val; /* _log_info on <self:ToolContext> */
2608 var18 = var20;
2609 RET_LABEL19:(void)0;
2610 }
2611 }
2612 if (var18 == NULL) {
2613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 308);
2615 fatal_exit(1);
2616 } else {
2617 core___core__FileWriter___core__stream__Writer__write(var18, var_s); /* Direct call file#FileWriter#write on <var18:nullable Writer>*/
2618 }
2619 {
2620 { /* Inline toolcontext#ToolContext#log_info (self) on <self:ToolContext> */
2621 var23 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val; /* _log_info on <self:ToolContext> */
2622 var21 = var23;
2623 RET_LABEL22:(void)0;
2624 }
2625 }
2626 if (likely(varonce24!=NULL)) {
2627 var25 = varonce24;
2628 } else {
2629 var26 = "\n";
2630 var27 = core__flat___NativeString___to_s_full(var26, 1l, 1l);
2631 var25 = var27;
2632 varonce24 = var25;
2633 }
2634 if (var21 == NULL) {
2635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 309);
2637 fatal_exit(1);
2638 } else {
2639 core___core__FileWriter___core__stream__Writer__write(var21, var25); /* Direct call file#FileWriter#write on <var21:nullable Writer>*/
2640 }
2641 } else {
2642 }
2643 RET_LABEL:;
2644 }
2645 /* method toolcontext#ToolContext#option_context for (self: ToolContext): OptionContext */
2646 val* nitc___nitc__ToolContext___option_context(val* self) {
2647 val* var /* : OptionContext */;
2648 val* var1 /* : OptionContext */;
2649 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2650 if (unlikely(var1 == NULL)) {
2651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2652 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
2653 fatal_exit(1);
2654 }
2655 var = var1;
2656 RET_LABEL:;
2657 return var;
2658 }
2659 /* method toolcontext#ToolContext#opt_warn for (self: ToolContext): OptionCount */
2660 val* nitc___nitc__ToolContext___opt_warn(val* self) {
2661 val* var /* : OptionCount */;
2662 val* var1 /* : OptionCount */;
2663 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2664 if (unlikely(var1 == NULL)) {
2665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2666 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
2667 fatal_exit(1);
2668 }
2669 var = var1;
2670 RET_LABEL:;
2671 return var;
2672 }
2673 /* method toolcontext#ToolContext#opt_warning for (self: ToolContext): OptionArray */
2674 val* nitc___nitc__ToolContext___opt_warning(val* self) {
2675 val* var /* : OptionArray */;
2676 val* var1 /* : OptionArray */;
2677 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2678 if (unlikely(var1 == NULL)) {
2679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
2681 fatal_exit(1);
2682 }
2683 var = var1;
2684 RET_LABEL:;
2685 return var;
2686 }
2687 /* method toolcontext#ToolContext#opt_quiet for (self: ToolContext): OptionBool */
2688 val* nitc___nitc__ToolContext___opt_quiet(val* self) {
2689 val* var /* : OptionBool */;
2690 val* var1 /* : OptionBool */;
2691 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2692 if (unlikely(var1 == NULL)) {
2693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2694 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 351);
2695 fatal_exit(1);
2696 }
2697 var = var1;
2698 RET_LABEL:;
2699 return var;
2700 }
2701 /* method toolcontext#ToolContext#opt_log for (self: ToolContext): OptionBool */
2702 val* nitc___nitc__ToolContext___opt_log(val* self) {
2703 val* var /* : OptionBool */;
2704 val* var1 /* : OptionBool */;
2705 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
2706 if (unlikely(var1 == NULL)) {
2707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
2708 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 354);
2709 fatal_exit(1);
2710 }
2711 var = var1;
2712 RET_LABEL:;
2713 return var;
2714 }
2715 /* method toolcontext#ToolContext#opt_log_dir for (self: ToolContext): OptionString */
2716 val* nitc___nitc__ToolContext___opt_log_dir(val* self) {
2717 val* var /* : OptionString */;
2718 val* var1 /* : OptionString */;
2719 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2720 if (unlikely(var1 == NULL)) {
2721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2722 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
2723 fatal_exit(1);
2724 }
2725 var = var1;
2726 RET_LABEL:;
2727 return var;
2728 }
2729 /* method toolcontext#ToolContext#opt_nit_dir for (self: ToolContext): OptionString */
2730 val* nitc___nitc__ToolContext___opt_nit_dir(val* self) {
2731 val* var /* : OptionString */;
2732 val* var1 /* : OptionString */;
2733 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
2734 if (unlikely(var1 == NULL)) {
2735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
2736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 360);
2737 fatal_exit(1);
2738 }
2739 var = var1;
2740 RET_LABEL:;
2741 return var;
2742 }
2743 /* method toolcontext#ToolContext#opt_help for (self: ToolContext): OptionBool */
2744 val* nitc___nitc__ToolContext___opt_help(val* self) {
2745 val* var /* : OptionBool */;
2746 val* var1 /* : OptionBool */;
2747 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
2748 if (unlikely(var1 == NULL)) {
2749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
2750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 363);
2751 fatal_exit(1);
2752 }
2753 var = var1;
2754 RET_LABEL:;
2755 return var;
2756 }
2757 /* method toolcontext#ToolContext#opt_version for (self: ToolContext): OptionBool */
2758 val* nitc___nitc__ToolContext___opt_version(val* self) {
2759 val* var /* : OptionBool */;
2760 val* var1 /* : OptionBool */;
2761 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
2762 if (unlikely(var1 == NULL)) {
2763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
2764 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 366);
2765 fatal_exit(1);
2766 }
2767 var = var1;
2768 RET_LABEL:;
2769 return var;
2770 }
2771 /* method toolcontext#ToolContext#opt_set_dummy_tool for (self: ToolContext): OptionBool */
2772 val* nitc___nitc__ToolContext___opt_set_dummy_tool(val* self) {
2773 val* var /* : OptionBool */;
2774 val* var1 /* : OptionBool */;
2775 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
2776 if (unlikely(var1 == NULL)) {
2777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
2778 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 369);
2779 fatal_exit(1);
2780 }
2781 var = var1;
2782 RET_LABEL:;
2783 return var;
2784 }
2785 /* method toolcontext#ToolContext#opt_verbose for (self: ToolContext): OptionCount */
2786 val* nitc___nitc__ToolContext___opt_verbose(val* self) {
2787 val* var /* : OptionCount */;
2788 val* var1 /* : OptionCount */;
2789 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
2790 if (unlikely(var1 == NULL)) {
2791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
2792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 372);
2793 fatal_exit(1);
2794 }
2795 var = var1;
2796 RET_LABEL:;
2797 return var;
2798 }
2799 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: ToolContext): OptionBool */
2800 val* nitc___nitc__ToolContext___opt_stop_on_first_error(val* self) {
2801 val* var /* : OptionBool */;
2802 val* var1 /* : OptionBool */;
2803 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2804 if (unlikely(var1 == NULL)) {
2805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2806 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 375);
2807 fatal_exit(1);
2808 }
2809 var = var1;
2810 RET_LABEL:;
2811 return var;
2812 }
2813 /* method toolcontext#ToolContext#opt_keep_going for (self: ToolContext): OptionBool */
2814 val* nitc___nitc__ToolContext___opt_keep_going(val* self) {
2815 val* var /* : OptionBool */;
2816 val* var1 /* : OptionBool */;
2817 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_keep_going].val; /* _opt_keep_going on <self:ToolContext> */
2818 if (unlikely(var1 == NULL)) {
2819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_keep_going");
2820 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 378);
2821 fatal_exit(1);
2822 }
2823 var = var1;
2824 RET_LABEL:;
2825 return var;
2826 }
2827 /* method toolcontext#ToolContext#opt_no_color for (self: ToolContext): OptionBool */
2828 val* nitc___nitc__ToolContext___opt_no_color(val* self) {
2829 val* var /* : OptionBool */;
2830 val* var1 /* : OptionBool */;
2831 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
2832 if (unlikely(var1 == NULL)) {
2833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
2834 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 381);
2835 fatal_exit(1);
2836 }
2837 var = var1;
2838 RET_LABEL:;
2839 return var;
2840 }
2841 /* method toolcontext#ToolContext#opt_bash_completion for (self: ToolContext): OptionBool */
2842 val* nitc___nitc__ToolContext___opt_bash_completion(val* self) {
2843 val* var /* : OptionBool */;
2844 val* var1 /* : OptionBool */;
2845 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2846 if (unlikely(var1 == NULL)) {
2847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2848 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 384);
2849 fatal_exit(1);
2850 }
2851 var = var1;
2852 RET_LABEL:;
2853 return var;
2854 }
2855 /* method toolcontext#ToolContext#opt_stub_man for (self: ToolContext): OptionBool */
2856 val* nitc___nitc__ToolContext___opt_stub_man(val* self) {
2857 val* var /* : OptionBool */;
2858 val* var1 /* : OptionBool */;
2859 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
2860 if (unlikely(var1 == NULL)) {
2861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
2862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 387);
2863 fatal_exit(1);
2864 }
2865 var = var1;
2866 RET_LABEL:;
2867 return var;
2868 }
2869 /* method toolcontext#ToolContext#verbose_level for (self: ToolContext): Int */
2870 long nitc___nitc__ToolContext___verbose_level(val* self) {
2871 long var /* : Int */;
2872 long var1 /* : Int */;
2873 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
2874 var = var1;
2875 RET_LABEL:;
2876 return var;
2877 }
2878 /* method toolcontext#ToolContext#verbose_level= for (self: ToolContext, Int) */
2879 void nitc___nitc__ToolContext___verbose_level_61d(val* self, long p0) {
2880 self->attrs[COLOR_nitc__toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:ToolContext> */
2881 RET_LABEL:;
2882 }
2883 /* method toolcontext#ToolContext#init for (self: ToolContext) */
2884 void nitc___nitc__ToolContext___core__kernel__Object__init(val* self) {
2885 val* var /* : OptionContext */;
2886 val* var2 /* : OptionContext */;
2887 val* var3 /* : OptionCount */;
2888 val* var5 /* : OptionCount */;
2889 val* var6 /* : OptionArray */;
2890 val* var8 /* : OptionArray */;
2891 val* var9 /* : OptionBool */;
2892 val* var11 /* : OptionBool */;
2893 val* var12 /* : OptionBool */;
2894 val* var14 /* : OptionBool */;
2895 val* var15 /* : OptionBool */;
2896 val* var17 /* : OptionBool */;
2897 val* var18 /* : OptionBool */;
2898 val* var20 /* : OptionBool */;
2899 val* var21 /* : OptionBool */;
2900 val* var23 /* : OptionBool */;
2901 val* var24 /* : OptionString */;
2902 val* var26 /* : OptionString */;
2903 val* var27 /* : OptionString */;
2904 val* var29 /* : OptionString */;
2905 val* var30 /* : OptionBool */;
2906 val* var32 /* : OptionBool */;
2907 val* var33 /* : OptionBool */;
2908 val* var35 /* : OptionBool */;
2909 val* var36 /* : OptionBool */;
2910 val* var38 /* : OptionBool */;
2911 val* var39 /* : OptionCount */;
2912 val* var41 /* : OptionCount */;
2913 val* var42 /* : OptionBool */;
2914 val* var44 /* : OptionBool */;
2915 val* var45 /* : OptionBool */;
2916 val* var47 /* : OptionBool */;
2917 val* var48 /* : Array[Option] */;
2918 val* var49 /* : NativeArray[Option] */;
2919 val* var50 /* : OptionBool */;
2920 val* var52 /* : OptionBool */;
2921 val* var54 /* : OptionBool */;
2922 val* var56 /* : OptionBool */;
2923 val* var58 /* : OptionBool */;
2924 val* var60 /* : OptionBool */;
2925 {
2926 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__ToolContext___core__kernel__Object__init]))(self); /* init on <self:ToolContext>*/
2927 }
2928 {
2929 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2930 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2931 if (unlikely(var2 == NULL)) {
2932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2933 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
2934 fatal_exit(1);
2935 }
2936 var = var2;
2937 RET_LABEL1:(void)0;
2938 }
2939 }
2940 {
2941 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2942 var5 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2943 if (unlikely(var5 == NULL)) {
2944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
2946 fatal_exit(1);
2947 }
2948 var3 = var5;
2949 RET_LABEL4:(void)0;
2950 }
2951 }
2952 {
2953 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
2954 var8 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2955 if (unlikely(var8 == NULL)) {
2956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2957 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 348);
2958 fatal_exit(1);
2959 }
2960 var6 = var8;
2961 RET_LABEL7:(void)0;
2962 }
2963 }
2964 {
2965 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
2966 var11 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2967 if (unlikely(var11 == NULL)) {
2968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 351);
2970 fatal_exit(1);
2971 }
2972 var9 = var11;
2973 RET_LABEL10:(void)0;
2974 }
2975 }
2976 {
2977 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2978 var14 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2979 if (unlikely(var14 == NULL)) {
2980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 375);
2982 fatal_exit(1);
2983 }
2984 var12 = var14;
2985 RET_LABEL13:(void)0;
2986 }
2987 }
2988 {
2989 { /* Inline toolcontext#ToolContext#opt_keep_going (self) on <self:ToolContext> */
2990 var17 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_keep_going].val; /* _opt_keep_going on <self:ToolContext> */
2991 if (unlikely(var17 == NULL)) {
2992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_keep_going");
2993 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 378);
2994 fatal_exit(1);
2995 }
2996 var15 = var17;
2997 RET_LABEL16:(void)0;
2998 }
2999 }
3000 {
3001 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
3002 var20 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
3003 if (unlikely(var20 == NULL)) {
3004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
3005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 381);
3006 fatal_exit(1);
3007 }
3008 var18 = var20;
3009 RET_LABEL19:(void)0;
3010 }
3011 }
3012 {
3013 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
3014 var23 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
3015 if (unlikely(var23 == NULL)) {
3016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
3017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 354);
3018 fatal_exit(1);
3019 }
3020 var21 = var23;
3021 RET_LABEL22:(void)0;
3022 }
3023 }
3024 {
3025 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
3026 var26 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
3027 if (unlikely(var26 == NULL)) {
3028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
3029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
3030 fatal_exit(1);
3031 }
3032 var24 = var26;
3033 RET_LABEL25:(void)0;
3034 }
3035 }
3036 {
3037 { /* Inline toolcontext#ToolContext#opt_nit_dir (self) on <self:ToolContext> */
3038 var29 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
3039 if (unlikely(var29 == NULL)) {
3040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
3041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 360);
3042 fatal_exit(1);
3043 }
3044 var27 = var29;
3045 RET_LABEL28:(void)0;
3046 }
3047 }
3048 {
3049 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
3050 var32 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
3051 if (unlikely(var32 == NULL)) {
3052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
3053 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 363);
3054 fatal_exit(1);
3055 }
3056 var30 = var32;
3057 RET_LABEL31:(void)0;
3058 }
3059 }
3060 {
3061 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
3062 var35 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
3063 if (unlikely(var35 == NULL)) {
3064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
3065 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 366);
3066 fatal_exit(1);
3067 }
3068 var33 = var35;
3069 RET_LABEL34:(void)0;
3070 }
3071 }
3072 {
3073 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
3074 var38 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
3075 if (unlikely(var38 == NULL)) {
3076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
3077 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 369);
3078 fatal_exit(1);
3079 }
3080 var36 = var38;
3081 RET_LABEL37:(void)0;
3082 }
3083 }
3084 {
3085 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
3086 var41 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
3087 if (unlikely(var41 == NULL)) {
3088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
3089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 372);
3090 fatal_exit(1);
3091 }
3092 var39 = var41;
3093 RET_LABEL40:(void)0;
3094 }
3095 }
3096 {
3097 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
3098 var44 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
3099 if (unlikely(var44 == NULL)) {
3100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
3101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 384);
3102 fatal_exit(1);
3103 }
3104 var42 = var44;
3105 RET_LABEL43:(void)0;
3106 }
3107 }
3108 {
3109 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
3110 var47 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
3111 if (unlikely(var47 == NULL)) {
3112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
3113 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 387);
3114 fatal_exit(1);
3115 }
3116 var45 = var47;
3117 RET_LABEL46:(void)0;
3118 }
3119 }
3120 var48 = NEW_core__Array(&type_core__Array__opts__Option);
3121 { /* var48 = array_instance Array[Option] */
3122 var49 = NEW_core__NativeArray(15l, &type_core__NativeArray__opts__Option);
3123 ((struct instance_core__NativeArray*)var49)->values[0] = (val*) var3;
3124 ((struct instance_core__NativeArray*)var49)->values[1] = (val*) var6;
3125 ((struct instance_core__NativeArray*)var49)->values[2] = (val*) var9;
3126 ((struct instance_core__NativeArray*)var49)->values[3] = (val*) var12;
3127 ((struct instance_core__NativeArray*)var49)->values[4] = (val*) var15;
3128 ((struct instance_core__NativeArray*)var49)->values[5] = (val*) var18;
3129 ((struct instance_core__NativeArray*)var49)->values[6] = (val*) var21;
3130 ((struct instance_core__NativeArray*)var49)->values[7] = (val*) var24;
3131 ((struct instance_core__NativeArray*)var49)->values[8] = (val*) var27;
3132 ((struct instance_core__NativeArray*)var49)->values[9] = (val*) var30;
3133 ((struct instance_core__NativeArray*)var49)->values[10] = (val*) var33;
3134 ((struct instance_core__NativeArray*)var49)->values[11] = (val*) var36;
3135 ((struct instance_core__NativeArray*)var49)->values[12] = (val*) var39;
3136 ((struct instance_core__NativeArray*)var49)->values[13] = (val*) var42;
3137 ((struct instance_core__NativeArray*)var49)->values[14] = (val*) var45;
3138 {
3139 ((void(*)(val* self, val* p0, long p1))(var48->class->vft[COLOR_core__array__Array__with_native]))(var48, var49, 15l); /* with_native on <var48:Array[Option]>*/
3140 }
3141 }
3142 {
3143 opts___opts__OptionContext___add_option(var, var48); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
3144 }
3145 {
3146 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
3147 var52 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
3148 if (unlikely(var52 == NULL)) {
3149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
3150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 387);
3151 fatal_exit(1);
3152 }
3153 var50 = var52;
3154 RET_LABEL51:(void)0;
3155 }
3156 }
3157 {
3158 { /* Inline opts#Option#hidden= (var50,1) on <var50:OptionBool> */
3159 var50->attrs[COLOR_opts__Option___hidden].s = 1; /* _hidden on <var50:OptionBool> */
3160 RET_LABEL53:(void)0;
3161 }
3162 }
3163 {
3164 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
3165 var56 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
3166 if (unlikely(var56 == NULL)) {
3167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
3168 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 384);
3169 fatal_exit(1);
3170 }
3171 var54 = var56;
3172 RET_LABEL55:(void)0;
3173 }
3174 }
3175 {
3176 { /* Inline opts#Option#hidden= (var54,1) on <var54:OptionBool> */
3177 var54->attrs[COLOR_opts__Option___hidden].s = 1; /* _hidden on <var54:OptionBool> */
3178 RET_LABEL57:(void)0;
3179 }
3180 }
3181 {
3182 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
3183 var60 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
3184 if (unlikely(var60 == NULL)) {
3185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
3186 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 369);
3187 fatal_exit(1);
3188 }
3189 var58 = var60;
3190 RET_LABEL59:(void)0;
3191 }
3192 }
3193 {
3194 { /* Inline opts#Option#hidden= (var58,1) on <var58:OptionBool> */
3195 var58->attrs[COLOR_opts__Option___hidden].s = 1; /* _hidden on <var58:OptionBool> */
3196 RET_LABEL61:(void)0;
3197 }
3198 }
3199 RET_LABEL:;
3200 }
3201 /* method toolcontext#ToolContext#tooldescription for (self: ToolContext): String */
3202 val* nitc___nitc__ToolContext___tooldescription(val* self) {
3203 val* var /* : String */;
3204 val* var1 /* : String */;
3205 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3206 if (unlikely(var1 == NULL)) {
3207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 403);
3209 fatal_exit(1);
3210 }
3211 var = var1;
3212 RET_LABEL:;
3213 return var;
3214 }
3215 /* method toolcontext#ToolContext#tooldescription= for (self: ToolContext, String) */
3216 void nitc___nitc__ToolContext___tooldescription_61d(val* self, val* p0) {
3217 self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:ToolContext> */
3218 RET_LABEL:;
3219 }
3220 /* method toolcontext#ToolContext#accept_no_arguments for (self: ToolContext): Bool */
3221 short int nitc___nitc__ToolContext___accept_no_arguments(val* self) {
3222 short int var /* : Bool */;
3223 short int var1 /* : Bool */;
3224 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
3225 var = var1;
3226 RET_LABEL:;
3227 return var;
3228 }
3229 /* method toolcontext#ToolContext#usage for (self: ToolContext) */
3230 void nitc___nitc__ToolContext___usage(val* self) {
3231 val* var /* : Sys */;
3232 val* var1 /* : String */;
3233 val* var3 /* : String */;
3234 val* var4 /* : OptionContext */;
3235 val* var6 /* : OptionContext */;
3236 var = glob_sys;
3237 {
3238 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
3239 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3240 if (unlikely(var3 == NULL)) {
3241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3242 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 403);
3243 fatal_exit(1);
3244 }
3245 var1 = var3;
3246 RET_LABEL2:(void)0;
3247 }
3248 }
3249 {
3250 core__file___Sys___print(var, var1); /* Direct call file#Sys#print on <var:Sys>*/
3251 }
3252 {
3253 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3254 var6 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3255 if (unlikely(var6 == NULL)) {
3256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
3258 fatal_exit(1);
3259 }
3260 var4 = var6;
3261 RET_LABEL5:(void)0;
3262 }
3263 }
3264 {
3265 opts___opts__OptionContext___usage(var4); /* Direct call opts#OptionContext#usage on <var4:OptionContext>*/
3266 }
3267 RET_LABEL:;
3268 }
3269 /* method toolcontext#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
3270 void nitc___nitc__ToolContext___process_options(val* self, val* p0) {
3271 val* var_args /* var args: Sequence[String] */;
3272 val* var /* : OptionCount */;
3273 val* var2 /* : OptionCount */;
3274 short int var4 /* : Bool */;
3275 int cltype;
3276 int idtype;
3277 const struct type* type_struct;
3278 const char* var_class_name;
3279 val* var5 /* : nullable Object */;
3280 val* var6 /* : OptionContext */;
3281 val* var8 /* : OptionContext */;
3282 val* var9 /* : OptionBool */;
3283 val* var11 /* : OptionBool */;
3284 val* var12 /* : nullable Object */;
3285 val* var14 /* : nullable Object */;
3286 short int var15 /* : Bool */;
3287 val* var16 /* : Sys */;
3288 val* var18 /* : OptionBool */;
3289 val* var20 /* : OptionBool */;
3290 val* var21 /* : nullable Object */;
3291 val* var23 /* : nullable Object */;
3292 short int var24 /* : Bool */;
3293 val* var25 /* : Sys */;
3294 val* var26 /* : String */;
3295 val* var27 /* : Sys */;
3296 val* var29 /* : OptionBool */;
3297 val* var31 /* : OptionBool */;
3298 val* var32 /* : nullable Object */;
3299 val* var34 /* : nullable Object */;
3300 short int var35 /* : Bool */;
3301 val* var36 /* : BashCompletion */;
3302 val* var_bash_completion /* var bash_completion: BashCompletion */;
3303 val* var37 /* : Sys */;
3304 val* var39 /* : Sys */;
3305 val* var40 /* : Writer */;
3306 val* var41 /* : Sys */;
3307 val* var43 /* : OptionBool */;
3308 val* var45 /* : OptionBool */;
3309 val* var46 /* : nullable Object */;
3310 val* var48 /* : nullable Object */;
3311 short int var49 /* : Bool */;
3312 val* var50 /* : Sys */;
3313 val* var51 /* : NativeArray[String] */;
3314 static val* varonce;
3315 static val* varonce52;
3316 val* var53 /* : String */;
3317 char* var54 /* : NativeString */;
3318 val* var55 /* : String */;
3319 static val* varonce56;
3320 val* var57 /* : String */;
3321 char* var58 /* : NativeString */;
3322 val* var59 /* : String */;
3323 val* var60 /* : String */;
3324 val* var62 /* : String */;
3325 static val* varonce63;
3326 val* var64 /* : String */;
3327 char* var65 /* : NativeString */;
3328 val* var66 /* : String */;
3329 val* var67 /* : Array[String] */;
3330 val* var68 /* : nullable Object */;
3331 val* var69 /* : String */;
3332 val* var70 /* : OptionContext */;
3333 val* var72 /* : OptionContext */;
3334 val* var73 /* : Array[Option] */;
3335 val* var75 /* : Array[Option] */;
3336 val* var_ /* var : Array[Option] */;
3337 val* var76 /* : IndexedIterator[nullable Object] */;
3338 val* var_77 /* var : IndexedIterator[Option] */;
3339 short int var78 /* : Bool */;
3340 val* var79 /* : nullable Object */;
3341 val* var_o /* var o: Option */;
3342 short int var_first /* var first: Bool */;
3343 val* var80 /* : Sys */;
3344 static val* varonce81;
3345 val* var82 /* : String */;
3346 char* var83 /* : NativeString */;
3347 val* var84 /* : String */;
3348 val* var85 /* : Array[Object] */;
3349 val* var86 /* : NativeArray[Object] */;
3350 val* var87 /* : Array[String] */;
3351 val* var89 /* : Array[String] */;
3352 val* var_90 /* var : Array[String] */;
3353 val* var91 /* : IndexedIterator[nullable Object] */;
3354 val* var_92 /* var : IndexedIterator[String] */;
3355 short int var93 /* : Bool */;
3356 val* var95 /* : nullable Object */;
3357 val* var_n /* var n: String */;
3358 val* var96 /* : Sys */;
3359 static val* varonce97;
3360 val* var98 /* : String */;
3361 char* var99 /* : NativeString */;
3362 val* var100 /* : String */;
3363 val* var101 /* : Array[Object] */;
3364 val* var102 /* : NativeArray[Object] */;
3365 val* var103 /* : Sys */;
3366 val* var105 /* : NativeArray[String] */;
3367 static val* varonce104;
3368 static val* varonce106;
3369 val* var107 /* : String */;
3370 char* var108 /* : NativeString */;
3371 val* var109 /* : String */;
3372 static val* varonce110;
3373 val* var111 /* : String */;
3374 char* var112 /* : NativeString */;
3375 val* var113 /* : String */;
3376 val* var114 /* : String */;
3377 val* var115 /* : Array[Object] */;
3378 val* var116 /* : NativeArray[Object] */;
3379 val* var117 /* : Sys */;
3380 static val* varonce118;
3381 val* var119 /* : String */;
3382 char* var120 /* : NativeString */;
3383 val* var121 /* : String */;
3384 val* var122 /* : Sys */;
3385 val* var124 /* : NativeArray[String] */;
3386 static val* varonce123;
3387 static val* varonce125;
3388 val* var126 /* : String */;
3389 char* var127 /* : NativeString */;
3390 val* var128 /* : String */;
3391 val* var129 /* : String */;
3392 val* var131 /* : String */;
3393 val* var132 /* : String */;
3394 val* var133 /* : Sys */;
3395 static val* varonce134;
3396 val* var135 /* : String */;
3397 char* var136 /* : NativeString */;
3398 val* var137 /* : String */;
3399 val* var138 /* : Sys */;
3400 static val* varonce139;
3401 val* var140 /* : String */;
3402 char* var141 /* : NativeString */;
3403 val* var142 /* : String */;
3404 val* var143 /* : Sys */;
3405 val* var145 /* : OptionContext */;
3406 val* var147 /* : OptionContext */;
3407 val* var148 /* : Array[String] */;
3408 val* var_errors /* var errors: Array[String] */;
3409 short int var149 /* : Bool */;
3410 short int var150 /* : Bool */;
3411 val* var_151 /* var : Array[String] */;
3412 val* var152 /* : IndexedIterator[nullable Object] */;
3413 val* var_153 /* var : IndexedIterator[String] */;
3414 short int var154 /* : Bool */;
3415 val* var156 /* : nullable Object */;
3416 val* var_e /* var e: String */;
3417 val* var157 /* : Sys */;
3418 val* var159 /* : NativeArray[String] */;
3419 static val* varonce158;
3420 static val* varonce160;
3421 val* var161 /* : String */;
3422 char* var162 /* : NativeString */;
3423 val* var163 /* : String */;
3424 val* var164 /* : String */;
3425 val* var165 /* : Sys */;
3426 val* var166 /* : String */;
3427 val* var168 /* : String */;
3428 val* var169 /* : Sys */;
3429 static val* varonce170;
3430 val* var171 /* : String */;
3431 char* var172 /* : NativeString */;
3432 val* var173 /* : String */;
3433 val* var174 /* : Sys */;
3434 val* var176 /* : String */;
3435 short int var178 /* : Bool */;
3436 val* var179 /* : OptionContext */;
3437 val* var181 /* : OptionContext */;
3438 val* var182 /* : Array[String] */;
3439 val* var184 /* : Array[String] */;
3440 short int var185 /* : Bool */;
3441 short int var_186 /* var : Bool */;
3442 short int var187 /* : Bool */;
3443 short int var189 /* : Bool */;
3444 short int var190 /* : Bool */;
3445 val* var191 /* : Sys */;
3446 val* var192 /* : String */;
3447 val* var194 /* : String */;
3448 val* var195 /* : Sys */;
3449 static val* varonce196;
3450 val* var197 /* : String */;
3451 char* var198 /* : NativeString */;
3452 val* var199 /* : String */;
3453 val* var200 /* : Sys */;
3454 val* var202 /* : OptionCount */;
3455 val* var204 /* : OptionCount */;
3456 val* var205 /* : nullable Object */;
3457 val* var207 /* : nullable Object */;
3458 long var209 /* : Int */;
3459 val* var210 /* : OptionBool */;
3460 val* var212 /* : OptionBool */;
3461 val* var213 /* : nullable Object */;
3462 val* var215 /* : nullable Object */;
3463 short int var216 /* : Bool */;
3464 val* var218 /* : OptionBool */;
3465 val* var220 /* : OptionBool */;
3466 val* var221 /* : nullable Object */;
3467 val* var223 /* : nullable Object */;
3468 short int var224 /* : Bool */;
3469 val* var225 /* : OptionCount */;
3470 val* var227 /* : OptionCount */;
3471 short int var229 /* : Bool */;
3472 int cltype230;
3473 int idtype231;
3474 const struct type* type_struct232;
3475 const char* var_class_name233;
3476 val* var234 /* : nullable Object */;
3477 val* var235 /* : OptionString */;
3478 val* var237 /* : OptionString */;
3479 val* var238 /* : nullable Object */;
3480 val* var240 /* : nullable Object */;
3481 short int var241 /* : Bool */;
3482 short int var242 /* : Bool */;
3483 val* var_other /* var other: nullable Object */;
3484 short int var244 /* : Bool */;
3485 short int var245 /* : Bool */;
3486 val* var246 /* : OptionString */;
3487 val* var248 /* : OptionString */;
3488 val* var249 /* : nullable Object */;
3489 val* var251 /* : nullable Object */;
3490 val* var253 /* : OptionBool */;
3491 val* var255 /* : OptionBool */;
3492 val* var256 /* : nullable Object */;
3493 val* var258 /* : nullable Object */;
3494 short int var259 /* : Bool */;
3495 val* var260 /* : String */;
3496 val* var262 /* : String */;
3497 val* var263 /* : nullable Error */;
3498 val* var264 /* : String */;
3499 val* var266 /* : String */;
3500 static val* varonce267;
3501 val* var268 /* : String */;
3502 char* var269 /* : NativeString */;
3503 val* var270 /* : String */;
3504 val* var271 /* : String */;
3505 val* var272 /* : Path */;
3506 val* var273 /* : FileWriter */;
3507 var_args = p0;
3508 {
3509 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
3510 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
3511 if (unlikely(var2 == NULL)) {
3512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
3514 fatal_exit(1);
3515 }
3516 var = var2;
3517 RET_LABEL1:(void)0;
3518 }
3519 }
3520 {
3521 { /* Inline opts#Option#value= (var,1l) on <var:OptionCount> */
3522 /* Covariant cast for argument 0 (value) <1l:Int> isa VALUE */
3523 /* <1l:Int> isa VALUE */
3524 type_struct = var->type->resolution_table->types[COLOR_opts__Option__VALUE];
3525 cltype = type_struct->color;
3526 idtype = type_struct->id;
3527 if(cltype >= (&type_core__Int)->table_size) {
3528 var4 = 0;
3529 } else {
3530 var4 = (&type_core__Int)->type_table[cltype] == idtype;
3531 }
3532 if (unlikely(!var4)) {
3533 var_class_name = type_core__Int.name;
3534 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
3535 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
3536 fatal_exit(1);
3537 }
3538 var5 = (val*)(1l<<2|1);
3539 var->attrs[COLOR_opts__Option___value].val = var5; /* _value on <var:OptionCount> */
3540 RET_LABEL3:(void)0;
3541 }
3542 }
3543 {
3544 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3545 var8 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3546 if (unlikely(var8 == NULL)) {
3547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3548 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
3549 fatal_exit(1);
3550 }
3551 var6 = var8;
3552 RET_LABEL7:(void)0;
3553 }
3554 }
3555 {
3556 opts___opts__OptionContext___parse(var6, var_args); /* Direct call opts#OptionContext#parse on <var6:OptionContext>*/
3557 }
3558 {
3559 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
3560 var11 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
3561 if (unlikely(var11 == NULL)) {
3562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
3563 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 363);
3564 fatal_exit(1);
3565 }
3566 var9 = var11;
3567 RET_LABEL10:(void)0;
3568 }
3569 }
3570 {
3571 { /* Inline opts#Option#value (var9) on <var9:OptionBool> */
3572 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
3573 var12 = var14;
3574 RET_LABEL13:(void)0;
3575 }
3576 }
3577 var15 = (short int)((long)(var12)>>2);
3578 if (var15){
3579 {
3580 nitc___nitc__ToolContext___usage(self); /* Direct call toolcontext#ToolContext#usage on <self:ToolContext>*/
3581 }
3582 var16 = glob_sys;
3583 {
3584 { /* Inline kernel#Sys#exit (var16,0l) on <var16:Sys> */
3585 exit(0l);
3586 RET_LABEL17:(void)0;
3587 }
3588 }
3589 } else {
3590 }
3591 {
3592 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
3593 var20 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
3594 if (unlikely(var20 == NULL)) {
3595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
3596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 366);
3597 fatal_exit(1);
3598 }
3599 var18 = var20;
3600 RET_LABEL19:(void)0;
3601 }
3602 }
3603 {
3604 { /* Inline opts#Option#value (var18) on <var18:OptionBool> */
3605 var23 = var18->attrs[COLOR_opts__Option___value].val; /* _value on <var18:OptionBool> */
3606 var21 = var23;
3607 RET_LABEL22:(void)0;
3608 }
3609 }
3610 var24 = (short int)((long)(var21)>>2);
3611 if (var24){
3612 var25 = glob_sys;
3613 {
3614 var26 = nitc___nitc__ToolContext___version(self);
3615 }
3616 {
3617 core__file___Sys___print(var25, var26); /* Direct call file#Sys#print on <var25:Sys>*/
3618 }
3619 var27 = glob_sys;
3620 {
3621 { /* Inline kernel#Sys#exit (var27,0l) on <var27:Sys> */
3622 exit(0l);
3623 RET_LABEL28:(void)0;
3624 }
3625 }
3626 } else {
3627 }
3628 {
3629 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
3630 var31 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
3631 if (unlikely(var31 == NULL)) {
3632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
3633 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 384);
3634 fatal_exit(1);
3635 }
3636 var29 = var31;
3637 RET_LABEL30:(void)0;
3638 }
3639 }
3640 {
3641 { /* Inline opts#Option#value (var29) on <var29:OptionBool> */
3642 var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on <var29:OptionBool> */
3643 var32 = var34;
3644 RET_LABEL33:(void)0;
3645 }
3646 }
3647 var35 = (short int)((long)(var32)>>2);
3648 if (var35){
3649 var36 = NEW_nitc__BashCompletion(&type_nitc__BashCompletion);
3650 {
3651 ((void(*)(val* self, val* p0))(var36->class->vft[COLOR_nitc__toolcontext__BashCompletion__toolcontext_61d]))(var36, self); /* toolcontext= on <var36:BashCompletion>*/
3652 }
3653 {
3654 ((void(*)(val* self))(var36->class->vft[COLOR_core__kernel__Object__init]))(var36); /* init on <var36:BashCompletion>*/
3655 }
3656 var_bash_completion = var36;
3657 {
3658 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
3659 var39 = glob_sys;
3660 var37 = var39;
3661 goto RET_LABEL38;
3662 RET_LABEL38:(void)0;
3663 }
3664 }
3665 {
3666 var40 = core__file___Sys___stdout(var37);
3667 }
3668 {
3669 template___template__Template___core__stream__Writable__write_to(var_bash_completion, var40); /* Direct call template#Template#write_to on <var_bash_completion:BashCompletion>*/
3670 }
3671 var41 = glob_sys;
3672 {
3673 { /* Inline kernel#Sys#exit (var41,0l) on <var41:Sys> */
3674 exit(0l);
3675 RET_LABEL42:(void)0;
3676 }
3677 }
3678 } else {
3679 }
3680 {
3681 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
3682 var45 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
3683 if (unlikely(var45 == NULL)) {
3684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
3685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 387);
3686 fatal_exit(1);
3687 }
3688 var43 = var45;
3689 RET_LABEL44:(void)0;
3690 }
3691 }
3692 {
3693 { /* Inline opts#Option#value (var43) on <var43:OptionBool> */
3694 var48 = var43->attrs[COLOR_opts__Option___value].val; /* _value on <var43:OptionBool> */
3695 var46 = var48;
3696 RET_LABEL47:(void)0;
3697 }
3698 }
3699 var49 = (short int)((long)(var46)>>2);
3700 if (var49){
3701 var50 = glob_sys;
3702 if (unlikely(varonce==NULL)) {
3703 var51 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3704 if (likely(varonce52!=NULL)) {
3705 var53 = varonce52;
3706 } else {
3707 var54 = "# NAME\n\n";
3708 var55 = core__flat___NativeString___to_s_full(var54, 8l, 8l);
3709 var53 = var55;
3710 varonce52 = var53;
3711 }
3712 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
3713 if (likely(varonce56!=NULL)) {
3714 var57 = varonce56;
3715 } else {
3716 var58 = "\n\n# SYNOPSYS\n\n# OPTIONS\n";
3717 var59 = core__flat___NativeString___to_s_full(var58, 24l, 24l);
3718 var57 = var59;
3719 varonce56 = var57;
3720 }
3721 ((struct instance_core__NativeArray*)var51)->values[2]=var57;
3722 } else {
3723 var51 = varonce;
3724 varonce = NULL;
3725 }
3726 {
3727 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
3728 var62 = self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3729 if (unlikely(var62 == NULL)) {
3730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 403);
3732 fatal_exit(1);
3733 }
3734 var60 = var62;
3735 RET_LABEL61:(void)0;
3736 }
3737 }
3738 if (likely(varonce63!=NULL)) {
3739 var64 = varonce63;
3740 } else {
3741 var65 = "\n";
3742 var66 = core__flat___NativeString___to_s_full(var65, 1l, 1l);
3743 var64 = var66;
3744 varonce63 = var64;
3745 }
3746 {
3747 var67 = core__string_search___Text___split(var60, var64);
3748 }
3749 {
3750 var68 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var67, 1l);
3751 }
3752 ((struct instance_core__NativeArray*)var51)->values[1]=var68;
3753 {
3754 var69 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
3755 }
3756 varonce = var51;
3757 {
3758 core__file___Sys___print(var50, var69); /* Direct call file#Sys#print on <var50:Sys>*/
3759 }
3760 {
3761 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3762 var72 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3763 if (unlikely(var72 == NULL)) {
3764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3765 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
3766 fatal_exit(1);
3767 }
3768 var70 = var72;
3769 RET_LABEL71:(void)0;
3770 }
3771 }
3772 {
3773 { /* Inline opts#OptionContext#options (var70) on <var70:OptionContext> */
3774 var75 = var70->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var70:OptionContext> */
3775 if (unlikely(var75 == NULL)) {
3776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
3777 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 277);
3778 fatal_exit(1);
3779 }
3780 var73 = var75;
3781 RET_LABEL74:(void)0;
3782 }
3783 }
3784 var_ = var73;
3785 {
3786 var76 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3787 }
3788 var_77 = var76;
3789 for(;;) {
3790 {
3791 var78 = ((short int(*)(val* self))((((long)var_77&3)?class_info[((long)var_77&3)]:var_77->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_77); /* is_ok on <var_77:IndexedIterator[Option]>*/
3792 }
3793 if (var78){
3794 } else {
3795 goto BREAK_label;
3796 }
3797 {
3798 var79 = ((val*(*)(val* self))((((long)var_77&3)?class_info[((long)var_77&3)]:var_77->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_77); /* item on <var_77:IndexedIterator[Option]>*/
3799 }
3800 var_o = var79;
3801 var_first = 1;
3802 var80 = glob_sys;
3803 if (likely(varonce81!=NULL)) {
3804 var82 = varonce81;
3805 } else {
3806 var83 = "### ";
3807 var84 = core__flat___NativeString___to_s_full(var83, 4l, 4l);
3808 var82 = var84;
3809 varonce81 = var82;
3810 }
3811 var85 = NEW_core__Array(&type_core__Array__core__Object);
3812 { /* var85 = array_instance Array[Object] */
3813 var86 = NEW_core__NativeArray(1l, &type_core__NativeArray__core__Object);
3814 ((struct instance_core__NativeArray*)var86)->values[0] = (val*) var82;
3815 {
3816 ((void(*)(val* self, val* p0, long p1))(var85->class->vft[COLOR_core__array__Array__with_native]))(var85, var86, 1l); /* with_native on <var85:Array[Object]>*/
3817 }
3818 }
3819 {
3820 core__file___Sys___printn(var80, var85); /* Direct call file#Sys#printn on <var80:Sys>*/
3821 }
3822 {
3823 { /* Inline opts#Option#names (var_o) on <var_o:Option> */
3824 var89 = var_o->attrs[COLOR_opts__Option___names].val; /* _names on <var_o:Option> */
3825 if (unlikely(var89 == NULL)) {
3826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
3827 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
3828 fatal_exit(1);
3829 }
3830 var87 = var89;
3831 RET_LABEL88:(void)0;
3832 }
3833 }
3834 var_90 = var87;
3835 {
3836 var91 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_90);
3837 }
3838 var_92 = var91;
3839 for(;;) {
3840 {
3841 var93 = ((short int(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_92); /* is_ok on <var_92:IndexedIterator[String]>*/
3842 }
3843 if (var93){
3844 } else {
3845 goto BREAK_label94;
3846 }
3847 {
3848 var95 = ((val*(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_92); /* item on <var_92:IndexedIterator[String]>*/
3849 }
3850 var_n = var95;
3851 if (var_first){
3852 var_first = 0;
3853 } else {
3854 var96 = glob_sys;
3855 if (likely(varonce97!=NULL)) {
3856 var98 = varonce97;
3857 } else {
3858 var99 = ", ";
3859 var100 = core__flat___NativeString___to_s_full(var99, 2l, 2l);
3860 var98 = var100;
3861 varonce97 = var98;
3862 }
3863 var101 = NEW_core__Array(&type_core__Array__core__Object);
3864 { /* var101 = array_instance Array[Object] */
3865 var102 = NEW_core__NativeArray(1l, &type_core__NativeArray__core__Object);
3866 ((struct instance_core__NativeArray*)var102)->values[0] = (val*) var98;
3867 {
3868 ((void(*)(val* self, val* p0, long p1))(var101->class->vft[COLOR_core__array__Array__with_native]))(var101, var102, 1l); /* with_native on <var101:Array[Object]>*/
3869 }
3870 }
3871 {
3872 core__file___Sys___printn(var96, var101); /* Direct call file#Sys#printn on <var96:Sys>*/
3873 }
3874 }
3875 var103 = glob_sys;
3876 if (unlikely(varonce104==NULL)) {
3877 var105 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3878 if (likely(varonce106!=NULL)) {
3879 var107 = varonce106;
3880 } else {
3881 var108 = "`";
3882 var109 = core__flat___NativeString___to_s_full(var108, 1l, 1l);
3883 var107 = var109;
3884 varonce106 = var107;
3885 }
3886 ((struct instance_core__NativeArray*)var105)->values[0]=var107;
3887 if (likely(varonce110!=NULL)) {
3888 var111 = varonce110;
3889 } else {
3890 var112 = "`";
3891 var113 = core__flat___NativeString___to_s_full(var112, 1l, 1l);
3892 var111 = var113;
3893 varonce110 = var111;
3894 }
3895 ((struct instance_core__NativeArray*)var105)->values[2]=var111;
3896 } else {
3897 var105 = varonce104;
3898 varonce104 = NULL;
3899 }
3900 ((struct instance_core__NativeArray*)var105)->values[1]=var_n;
3901 {
3902 var114 = ((val*(*)(val* self))(var105->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var105); /* native_to_s on <var105:NativeArray[String]>*/
3903 }
3904 varonce104 = var105;
3905 var115 = NEW_core__Array(&type_core__Array__core__Object);
3906 { /* var115 = array_instance Array[Object] */
3907 var116 = NEW_core__NativeArray(1l, &type_core__NativeArray__core__Object);
3908 ((struct instance_core__NativeArray*)var116)->values[0] = (val*) var114;
3909 {
3910 ((void(*)(val* self, val* p0, long p1))(var115->class->vft[COLOR_core__array__Array__with_native]))(var115, var116, 1l); /* with_native on <var115:Array[Object]>*/
3911 }
3912 }
3913 {
3914 core__file___Sys___printn(var103, var115); /* Direct call file#Sys#printn on <var103:Sys>*/
3915 }
3916 {
3917 ((void(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_92); /* next on <var_92:IndexedIterator[String]>*/
3918 }
3919 }
3920 BREAK_label94: (void)0;
3921 {
3922 ((void(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_92); /* finish on <var_92:IndexedIterator[String]>*/
3923 }
3924 var117 = glob_sys;
3925 if (likely(varonce118!=NULL)) {
3926 var119 = varonce118;
3927 } else {
3928 var120 = "";
3929 var121 = core__flat___NativeString___to_s_full(var120, 0l, 0l);
3930 var119 = var121;
3931 varonce118 = var119;
3932 }
3933 {
3934 core__file___Sys___print(var117, var119); /* Direct call file#Sys#print on <var117:Sys>*/
3935 }
3936 var122 = glob_sys;
3937 if (unlikely(varonce123==NULL)) {
3938 var124 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
3939 if (likely(varonce125!=NULL)) {
3940 var126 = varonce125;
3941 } else {
3942 var127 = ".";
3943 var128 = core__flat___NativeString___to_s_full(var127, 1l, 1l);
3944 var126 = var128;
3945 varonce125 = var126;
3946 }
3947 ((struct instance_core__NativeArray*)var124)->values[1]=var126;
3948 } else {
3949 var124 = varonce123;
3950 varonce123 = NULL;
3951 }
3952 {
3953 { /* Inline opts#Option#helptext (var_o) on <var_o:Option> */
3954 var131 = var_o->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <var_o:Option> */
3955 if (unlikely(var131 == NULL)) {
3956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
3957 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
3958 fatal_exit(1);
3959 }
3960 var129 = var131;
3961 RET_LABEL130:(void)0;
3962 }
3963 }
3964 ((struct instance_core__NativeArray*)var124)->values[0]=var129;
3965 {
3966 var132 = ((val*(*)(val* self))(var124->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var124); /* native_to_s on <var124:NativeArray[String]>*/
3967 }
3968 varonce123 = var124;
3969 {
3970 core__file___Sys___print(var122, var132); /* Direct call file#Sys#print on <var122:Sys>*/
3971 }
3972 var133 = glob_sys;
3973 if (likely(varonce134!=NULL)) {
3974 var135 = varonce134;
3975 } else {
3976 var136 = "";
3977 var137 = core__flat___NativeString___to_s_full(var136, 0l, 0l);
3978 var135 = var137;
3979 varonce134 = var135;
3980 }
3981 {
3982 core__file___Sys___print(var133, var135); /* Direct call file#Sys#print on <var133:Sys>*/
3983 }
3984 {
3985 ((void(*)(val* self))((((long)var_77&3)?class_info[((long)var_77&3)]:var_77->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_77); /* next on <var_77:IndexedIterator[Option]>*/
3986 }
3987 }
3988 BREAK_label: (void)0;
3989 {
3990 ((void(*)(val* self))((((long)var_77&3)?class_info[((long)var_77&3)]:var_77->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_77); /* finish on <var_77:IndexedIterator[Option]>*/
3991 }
3992 var138 = glob_sys;
3993 if (likely(varonce139!=NULL)) {
3994 var140 = varonce139;
3995 } else {
3996 var141 = "# SEE ALSO\n\nThe Nit language documentation and the source code of its tools and libraries may be downloaded from <http://nitlanguage.org>";
3997 var142 = core__flat___NativeString___to_s_full(var141, 137l, 137l);
3998 var140 = var142;
3999 varonce139 = var140;
4000 }
4001 {
4002 core__file___Sys___print(var138, var140); /* Direct call file#Sys#print on <var138:Sys>*/
4003 }
4004 var143 = glob_sys;
4005 {
4006 { /* Inline kernel#Sys#exit (var143,0l) on <var143:Sys> */
4007 exit(0l);
4008 RET_LABEL144:(void)0;
4009 }
4010 }
4011 } else {
4012 }
4013 {
4014 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
4015 var147 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
4016 if (unlikely(var147 == NULL)) {
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
4019 fatal_exit(1);
4020 }
4021 var145 = var147;
4022 RET_LABEL146:(void)0;
4023 }
4024 }
4025 {
4026 var148 = opts___opts__OptionContext___errors(var145);
4027 }
4028 var_errors = var148;
4029 {
4030 var149 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_errors);
4031 }
4032 var150 = !var149;
4033 if (var150){
4034 var_151 = var_errors;
4035 {
4036 var152 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_151);
4037 }
4038 var_153 = var152;
4039 for(;;) {
4040 {
4041 var154 = ((short int(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_153); /* is_ok on <var_153:IndexedIterator[String]>*/
4042 }
4043 if (var154){
4044 } else {
4045 goto BREAK_label155;
4046 }
4047 {
4048 var156 = ((val*(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_153); /* item on <var_153:IndexedIterator[String]>*/
4049 }
4050 var_e = var156;
4051 var157 = glob_sys;
4052 if (unlikely(varonce158==NULL)) {
4053 var159 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
4054 if (likely(varonce160!=NULL)) {
4055 var161 = varonce160;
4056 } else {
4057 var162 = "Error: ";
4058 var163 = core__flat___NativeString___to_s_full(var162, 7l, 7l);
4059 var161 = var163;
4060 varonce160 = var161;
4061 }
4062 ((struct instance_core__NativeArray*)var159)->values[0]=var161;
4063 } else {
4064 var159 = varonce158;
4065 varonce158 = NULL;
4066 }
4067 ((struct instance_core__NativeArray*)var159)->values[1]=var_e;
4068 {
4069 var164 = ((val*(*)(val* self))(var159->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var159); /* native_to_s on <var159:NativeArray[String]>*/
4070 }
4071 varonce158 = var159;
4072 {
4073 core__file___Sys___print(var157, var164); /* Direct call file#Sys#print on <var157:Sys>*/
4074 }
4075 {
4076 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_153); /* next on <var_153:IndexedIterator[String]>*/
4077 }
4078 }
4079 BREAK_label155: (void)0;
4080 {
4081 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_153); /* finish on <var_153:IndexedIterator[String]>*/
4082 }
4083 var165 = glob_sys;
4084 {
4085 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
4086 var168 = self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
4087 if (unlikely(var168 == NULL)) {
4088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
4089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 403);
4090 fatal_exit(1);
4091 }
4092 var166 = var168;
4093 RET_LABEL167:(void)0;
4094 }
4095 }
4096 {
4097 core__file___Sys___print(var165, var166); /* Direct call file#Sys#print on <var165:Sys>*/
4098 }
4099 var169 = glob_sys;
4100 if (likely(varonce170!=NULL)) {
4101 var171 = varonce170;
4102 } else {
4103 var172 = "Use --help for help";
4104 var173 = core__flat___NativeString___to_s_full(var172, 19l, 19l);
4105 var171 = var173;
4106 varonce170 = var171;
4107 }
4108 {
4109 core__file___Sys___print(var169, var171); /* Direct call file#Sys#print on <var169:Sys>*/
4110 }
4111 var174 = glob_sys;
4112 {
4113 { /* Inline kernel#Sys#exit (var174,1l) on <var174:Sys> */
4114 exit(1l);
4115 RET_LABEL175:(void)0;
4116 }
4117 }
4118 } else {
4119 }
4120 {
4121 var176 = nitc___nitc__ToolContext___compute_nit_dir(self);
4122 }
4123 {
4124 { /* Inline toolcontext#ToolContext#nit_dir= (self,var176) on <self:ToolContext> */
4125 self->attrs[COLOR_nitc__toolcontext__ToolContext___nit_dir].val = var176; /* _nit_dir on <self:ToolContext> */
4126 RET_LABEL177:(void)0;
4127 }
4128 }
4129 {
4130 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
4131 var181 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
4132 if (unlikely(var181 == NULL)) {
4133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
4134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
4135 fatal_exit(1);
4136 }
4137 var179 = var181;
4138 RET_LABEL180:(void)0;
4139 }
4140 }
4141 {
4142 { /* Inline opts#OptionContext#rest (var179) on <var179:OptionContext> */
4143 var184 = var179->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <var179:OptionContext> */
4144 if (unlikely(var184 == NULL)) {
4145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
4146 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 280);
4147 fatal_exit(1);
4148 }
4149 var182 = var184;
4150 RET_LABEL183:(void)0;
4151 }
4152 }
4153 {
4154 var185 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var182);
4155 }
4156 var_186 = var185;
4157 if (var185){
4158 {
4159 { /* Inline toolcontext#ToolContext#accept_no_arguments (self) on <self:ToolContext> */
4160 var189 = self->attrs[COLOR_nitc__toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
4161 var187 = var189;
4162 RET_LABEL188:(void)0;
4163 }
4164 }
4165 var190 = !var187;
4166 var178 = var190;
4167 } else {
4168 var178 = var_186;
4169 }
4170 if (var178){
4171 var191 = glob_sys;
4172 {
4173 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
4174 var194 = self->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
4175 if (unlikely(var194 == NULL)) {
4176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
4177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 403);
4178 fatal_exit(1);
4179 }
4180 var192 = var194;
4181 RET_LABEL193:(void)0;
4182 }
4183 }
4184 {
4185 core__file___Sys___print(var191, var192); /* Direct call file#Sys#print on <var191:Sys>*/
4186 }
4187 var195 = glob_sys;
4188 if (likely(varonce196!=NULL)) {
4189 var197 = varonce196;
4190 } else {
4191 var198 = "Use --help for help";
4192 var199 = core__flat___NativeString___to_s_full(var198, 19l, 19l);
4193 var197 = var199;
4194 varonce196 = var197;
4195 }
4196 {
4197 core__file___Sys___print(var195, var197); /* Direct call file#Sys#print on <var195:Sys>*/
4198 }
4199 var200 = glob_sys;
4200 {
4201 { /* Inline kernel#Sys#exit (var200,1l) on <var200:Sys> */
4202 exit(1l);
4203 RET_LABEL201:(void)0;
4204 }
4205 }
4206 } else {
4207 }
4208 {
4209 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
4210 var204 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
4211 if (unlikely(var204 == NULL)) {
4212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
4213 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 372);
4214 fatal_exit(1);
4215 }
4216 var202 = var204;
4217 RET_LABEL203:(void)0;
4218 }
4219 }
4220 {
4221 { /* Inline opts#Option#value (var202) on <var202:OptionCount> */
4222 var207 = var202->attrs[COLOR_opts__Option___value].val; /* _value on <var202:OptionCount> */
4223 var205 = var207;
4224 RET_LABEL206:(void)0;
4225 }
4226 }
4227 {
4228 { /* Inline toolcontext#ToolContext#verbose_level= (self,var205) on <self:ToolContext> */
4229 var209 = (long)(var205)>>2;
4230 self->attrs[COLOR_nitc__toolcontext__ToolContext___verbose_level].l = var209; /* _verbose_level on <self:ToolContext> */
4231 RET_LABEL208:(void)0;
4232 }
4233 }
4234 {
4235 { /* Inline toolcontext#ToolContext#opt_keep_going (self) on <self:ToolContext> */
4236 var212 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_keep_going].val; /* _opt_keep_going on <self:ToolContext> */
4237 if (unlikely(var212 == NULL)) {
4238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_keep_going");
4239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 378);
4240 fatal_exit(1);
4241 }
4242 var210 = var212;
4243 RET_LABEL211:(void)0;
4244 }
4245 }
4246 {
4247 { /* Inline opts#Option#value (var210) on <var210:OptionBool> */
4248 var215 = var210->attrs[COLOR_opts__Option___value].val; /* _value on <var210:OptionBool> */
4249 var213 = var215;
4250 RET_LABEL214:(void)0;
4251 }
4252 }
4253 var216 = (short int)((long)(var213)>>2);
4254 if (var216){
4255 {
4256 { /* Inline toolcontext#ToolContext#keep_going= (self,1) on <self:ToolContext> */
4257 self->attrs[COLOR_nitc__toolcontext__ToolContext___keep_going].s = 1; /* _keep_going on <self:ToolContext> */
4258 RET_LABEL217:(void)0;
4259 }
4260 }
4261 } else {
4262 }
4263 {
4264 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
4265 var220 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
4266 if (unlikely(var220 == NULL)) {
4267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
4268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 351);
4269 fatal_exit(1);
4270 }
4271 var218 = var220;
4272 RET_LABEL219:(void)0;
4273 }
4274 }
4275 {
4276 { /* Inline opts#Option#value (var218) on <var218:OptionBool> */
4277 var223 = var218->attrs[COLOR_opts__Option___value].val; /* _value on <var218:OptionBool> */
4278 var221 = var223;
4279 RET_LABEL222:(void)0;
4280 }
4281 }
4282 var224 = (short int)((long)(var221)>>2);
4283 if (var224){
4284 {
4285 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
4286 var227 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
4287 if (unlikely(var227 == NULL)) {
4288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
4289 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 345);
4290 fatal_exit(1);
4291 }
4292 var225 = var227;
4293 RET_LABEL226:(void)0;
4294 }
4295 }
4296 {
4297 { /* Inline opts#Option#value= (var225,0l) on <var225:OptionCount> */
4298 /* Covariant cast for argument 0 (value) <0l:Int> isa VALUE */
4299 /* <0l:Int> isa VALUE */
4300 type_struct232 = var225->type->resolution_table->types[COLOR_opts__Option__VALUE];
4301 cltype230 = type_struct232->color;
4302 idtype231 = type_struct232->id;
4303 if(cltype230 >= (&type_core__Int)->table_size) {
4304 var229 = 0;
4305 } else {
4306 var229 = (&type_core__Int)->type_table[cltype230] == idtype231;
4307 }
4308 if (unlikely(!var229)) {
4309 var_class_name233 = type_core__Int.name;
4310 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name233);
4311 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
4312 fatal_exit(1);
4313 }
4314 var234 = (val*)(0l<<2|1);
4315 var225->attrs[COLOR_opts__Option___value].val = var234; /* _value on <var225:OptionCount> */
4316 RET_LABEL228:(void)0;
4317 }
4318 }
4319 } else {
4320 }
4321 {
4322 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
4323 var237 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
4324 if (unlikely(var237 == NULL)) {
4325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
4326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
4327 fatal_exit(1);
4328 }
4329 var235 = var237;
4330 RET_LABEL236:(void)0;
4331 }
4332 }
4333 {
4334 { /* Inline opts#Option#value (var235) on <var235:OptionString> */
4335 var240 = var235->attrs[COLOR_opts__Option___value].val; /* _value on <var235:OptionString> */
4336 var238 = var240;
4337 RET_LABEL239:(void)0;
4338 }
4339 }
4340 if (var238 == NULL) {
4341 var241 = 0; /* is null */
4342 } else {
4343 var241 = 1; /* arg is null and recv is not */
4344 }
4345 if (0) {
4346 { /* Inline kernel#Object#!= (var238,((val*)NULL)) on <var238:nullable Object(nullable String)> */
4347 var_other = ((val*)NULL);
4348 {
4349 var244 = ((short int(*)(val* self, val* p0))(var238->class->vft[COLOR_core__kernel__Object___61d_61d]))(var238, var_other); /* == on <var238:nullable String(String)>*/
4350 }
4351 var245 = !var244;
4352 var242 = var245;
4353 goto RET_LABEL243;
4354 RET_LABEL243:(void)0;
4355 }
4356 var241 = var242;
4357 }
4358 if (var241){
4359 {
4360 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
4361 var248 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
4362 if (unlikely(var248 == NULL)) {
4363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
4364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
4365 fatal_exit(1);
4366 }
4367 var246 = var248;
4368 RET_LABEL247:(void)0;
4369 }
4370 }
4371 {
4372 { /* Inline opts#Option#value (var246) on <var246:OptionString> */
4373 var251 = var246->attrs[COLOR_opts__Option___value].val; /* _value on <var246:OptionString> */
4374 var249 = var251;
4375 RET_LABEL250:(void)0;
4376 }
4377 }
4378 if (unlikely(var249 == NULL)) {
4379 PRINT_ERROR("Runtime error: %s", "Cast failed");
4380 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 502);
4381 fatal_exit(1);
4382 }
4383 {
4384 { /* Inline toolcontext#ToolContext#log_directory= (self,var249) on <self:ToolContext> */
4385 self->attrs[COLOR_nitc__toolcontext__ToolContext___log_directory].val = var249; /* _log_directory on <self:ToolContext> */
4386 RET_LABEL252:(void)0;
4387 }
4388 }
4389 } else {
4390 }
4391 {
4392 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
4393 var255 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
4394 if (unlikely(var255 == NULL)) {
4395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
4396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 354);
4397 fatal_exit(1);
4398 }
4399 var253 = var255;
4400 RET_LABEL254:(void)0;
4401 }
4402 }
4403 {
4404 { /* Inline opts#Option#value (var253) on <var253:OptionBool> */
4405 var258 = var253->attrs[COLOR_opts__Option___value].val; /* _value on <var253:OptionBool> */
4406 var256 = var258;
4407 RET_LABEL257:(void)0;
4408 }
4409 }
4410 var259 = (short int)((long)(var256)>>2);
4411 if (var259){
4412 {
4413 { /* Inline toolcontext#ToolContext#log_directory (self) on <self:ToolContext> */
4414 var262 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
4415 if (unlikely(var262 == NULL)) {
4416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
4417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 137);
4418 fatal_exit(1);
4419 }
4420 var260 = var262;
4421 RET_LABEL261:(void)0;
4422 }
4423 }
4424 {
4425 var263 = core__file___String___mkdir(var260);
4426 }
4427 {
4428 { /* Inline toolcontext#ToolContext#log_directory (self) on <self:ToolContext> */
4429 var266 = self->attrs[COLOR_nitc__toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
4430 if (unlikely(var266 == NULL)) {
4431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
4432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 137);
4433 fatal_exit(1);
4434 }
4435 var264 = var266;
4436 RET_LABEL265:(void)0;
4437 }
4438 }
4439 if (likely(varonce267!=NULL)) {
4440 var268 = varonce267;
4441 } else {
4442 var269 = "info.txt";
4443 var270 = core__flat___NativeString___to_s_full(var269, 8l, 8l);
4444 var268 = var270;
4445 varonce267 = var268;
4446 }
4447 {
4448 var271 = core__file___String____47d(var264, var268);
4449 }
4450 {
4451 var272 = core__file___Text___to_path(var271);
4452 }
4453 {
4454 var273 = core___core__Path___open_wo(var272);
4455 }
4456 {
4457 { /* Inline toolcontext#ToolContext#log_info= (self,var273) on <self:ToolContext> */
4458 self->attrs[COLOR_nitc__toolcontext__ToolContext___log_info].val = var273; /* _log_info on <self:ToolContext> */
4459 RET_LABEL274:(void)0;
4460 }
4461 }
4462 } else {
4463 }
4464 RET_LABEL:;
4465 }
4466 /* method toolcontext#ToolContext#version for (self: ToolContext): String */
4467 val* nitc___nitc__ToolContext___version(val* self) {
4468 val* var /* : String */;
4469 val* var1 /* : OptionBool */;
4470 val* var3 /* : OptionBool */;
4471 val* var4 /* : nullable Object */;
4472 val* var6 /* : nullable Object */;
4473 short int var7 /* : Bool */;
4474 static val* varonce;
4475 val* var8 /* : String */;
4476 char* var9 /* : NativeString */;
4477 val* var10 /* : String */;
4478 val* var11 /* : Sys */;
4479 val* var12 /* : String */;
4480 {
4481 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
4482 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
4483 if (unlikely(var3 == NULL)) {
4484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
4485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 369);
4486 fatal_exit(1);
4487 }
4488 var1 = var3;
4489 RET_LABEL2:(void)0;
4490 }
4491 }
4492 {
4493 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
4494 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
4495 var4 = var6;
4496 RET_LABEL5:(void)0;
4497 }
4498 }
4499 var7 = (short int)((long)(var4)>>2);
4500 if (var7){
4501 if (likely(varonce!=NULL)) {
4502 var8 = varonce;
4503 } else {
4504 var9 = "DUMMY_VERSION";
4505 var10 = core__flat___NativeString___to_s_full(var9, 13l, 13l);
4506 var8 = var10;
4507 varonce = var8;
4508 }
4509 var = var8;
4510 goto RET_LABEL;
4511 } else {
4512 }
4513 var11 = glob_sys;
4514 {
4515 var12 = nitc__version___core__Sys___nit_version(var11);
4516 }
4517 var = var12;
4518 goto RET_LABEL;
4519 RET_LABEL:;
4520 return var;
4521 }
4522 /* method toolcontext#ToolContext#toolname for (self: ToolContext): String */
4523 val* nitc___nitc__ToolContext___toolname(val* self) {
4524 val* var /* : String */;
4525 val* var1 /* : OptionBool */;
4526 val* var3 /* : OptionBool */;
4527 val* var4 /* : nullable Object */;
4528 val* var6 /* : nullable Object */;
4529 short int var7 /* : Bool */;
4530 static val* varonce;
4531 val* var8 /* : String */;
4532 char* var9 /* : NativeString */;
4533 val* var10 /* : String */;
4534 val* var11 /* : Sys */;
4535 val* var13 /* : Sys */;
4536 val* var14 /* : String */;
4537 val* var15 /* : String */;
4538 {
4539 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
4540 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
4541 if (unlikely(var3 == NULL)) {
4542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
4543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 369);
4544 fatal_exit(1);
4545 }
4546 var1 = var3;
4547 RET_LABEL2:(void)0;
4548 }
4549 }
4550 {
4551 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
4552 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
4553 var4 = var6;
4554 RET_LABEL5:(void)0;
4555 }
4556 }
4557 var7 = (short int)((long)(var4)>>2);
4558 if (var7){
4559 if (likely(varonce!=NULL)) {
4560 var8 = varonce;
4561 } else {
4562 var9 = "DUMMY_TOOL";
4563 var10 = core__flat___NativeString___to_s_full(var9, 10l, 10l);
4564 var8 = var10;
4565 varonce = var8;
4566 }
4567 var = var8;
4568 goto RET_LABEL;
4569 } else {
4570 }
4571 {
4572 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
4573 var13 = glob_sys;
4574 var11 = var13;
4575 goto RET_LABEL12;
4576 RET_LABEL12:(void)0;
4577 }
4578 }
4579 {
4580 var14 = core__abstract_text___Sys___program_name(var11);
4581 }
4582 {
4583 var15 = ((val*(*)(val* self, val* p0))(var14->class->vft[COLOR_core__file__String__basename]))(var14, ((val*)NULL)); /* basename on <var14:String>*/
4584 }
4585 var = var15;
4586 goto RET_LABEL;
4587 RET_LABEL:;
4588 return var;
4589 }
4590 /* method toolcontext#ToolContext#nit_dir for (self: ToolContext): String */
4591 val* nitc___nitc__ToolContext___nit_dir(val* self) {
4592 val* var /* : String */;
4593 val* var1 /* : String */;
4594 var1 = self->attrs[COLOR_nitc__toolcontext__ToolContext___nit_dir].val; /* _nit_dir on <self:ToolContext> */
4595 if (unlikely(var1 == NULL)) {
4596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nit_dir");
4597 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 528);
4598 fatal_exit(1);
4599 }
4600 var = var1;
4601 RET_LABEL:;
4602 return var;
4603 }
4604 /* method toolcontext#ToolContext#nit_dir= for (self: ToolContext, String) */
4605 void nitc___nitc__ToolContext___nit_dir_61d(val* self, val* p0) {
4606 self->attrs[COLOR_nitc__toolcontext__ToolContext___nit_dir].val = p0; /* _nit_dir on <self:ToolContext> */
4607 RET_LABEL:;
4608 }
4609 /* method toolcontext#ToolContext#compute_nit_dir for (self: ToolContext): String */
4610 val* nitc___nitc__ToolContext___compute_nit_dir(val* self) {
4611 val* var /* : String */;
4612 val* var1 /* : OptionString */;
4613 val* var3 /* : OptionString */;
4614 val* var4 /* : nullable Object */;
4615 val* var6 /* : nullable Object */;
4616 val* var_res /* var res: nullable String */;
4617 short int var7 /* : Bool */;
4618 short int var8 /* : Bool */;
4619 val* var_other /* var other: nullable Object */;
4620 short int var10 /* : Bool */;
4621 short int var11 /* : Bool */;
4622 short int var12 /* : Bool */;
4623 short int var13 /* : Bool */;
4624 val* var14 /* : NativeArray[String] */;
4625 static val* varonce;
4626 static val* varonce15;
4627 val* var16 /* : String */;
4628 char* var17 /* : NativeString */;
4629 val* var18 /* : String */;
4630 static val* varonce19;
4631 val* var20 /* : String */;
4632 char* var21 /* : NativeString */;
4633 val* var22 /* : String */;
4634 val* var23 /* : String */;
4635 static val* varonce24;
4636 val* var25 /* : String */;
4637 char* var26 /* : NativeString */;
4638 val* var27 /* : String */;
4639 val* var28 /* : String */;
4640 short int var29 /* : Bool */;
4641 short int var30 /* : Bool */;
4642 short int var31 /* : Bool */;
4643 short int var32 /* : Bool */;
4644 val* var34 /* : NativeArray[String] */;
4645 static val* varonce33;
4646 static val* varonce35;
4647 val* var36 /* : String */;
4648 char* var37 /* : NativeString */;
4649 val* var38 /* : String */;
4650 static val* varonce39;
4651 val* var40 /* : String */;
4652 char* var41 /* : NativeString */;
4653 val* var42 /* : String */;
4654 val* var43 /* : String */;
4655 val* var45 /* : NativeArray[String] */;
4656 static val* varonce44;
4657 static val* varonce46;
4658 val* var47 /* : String */;
4659 char* var48 /* : NativeString */;
4660 val* var49 /* : String */;
4661 val* var50 /* : Sys */;
4662 val* var52 /* : Sys */;
4663 val* var53 /* : String */;
4664 val* var54 /* : String */;
4665 val* var55 /* : String */;
4666 short int var56 /* : Bool */;
4667 val* var57 /* : String */;
4668 static val* varonce58;
4669 val* var59 /* : String */;
4670 char* var60 /* : NativeString */;
4671 val* var61 /* : String */;
4672 val* var_exe /* var exe: String */;
4673 short int var62 /* : Bool */;
4674 val* var63 /* : String */;
4675 val* var64 /* : String */;
4676 static val* varonce65;
4677 val* var66 /* : String */;
4678 char* var67 /* : NativeString */;
4679 val* var68 /* : String */;
4680 val* var69 /* : String */;
4681 short int var70 /* : Bool */;
4682 val* var71 /* : String */;
4683 static val* varonce72;
4684 val* var73 /* : String */;
4685 char* var74 /* : NativeString */;
4686 val* var75 /* : String */;
4687 val* var76 /* : String */;
4688 static val* varonce77;
4689 val* var78 /* : String */;
4690 char* var79 /* : NativeString */;
4691 val* var80 /* : String */;
4692 val* var81 /* : Array[String] */;
4693 val* var_ps /* var ps: Array[String] */;
4694 val* var_ /* var : Array[String] */;
4695 val* var82 /* : IndexedIterator[nullable Object] */;
4696 val* var_83 /* var : IndexedIterator[String] */;
4697 short int var84 /* : Bool */;
4698 val* var85 /* : nullable Object */;
4699 val* var_p /* var p: String */;
4700 static val* varonce86;
4701 val* var87 /* : String */;
4702 char* var88 /* : NativeString */;
4703 val* var89 /* : String */;
4704 val* var90 /* : String */;
4705 short int var91 /* : Bool */;
4706 val* var92 /* : String */;
4707 static val* varonce93;
4708 val* var94 /* : String */;
4709 char* var95 /* : NativeString */;
4710 val* var96 /* : String */;
4711 {
4712 { /* Inline toolcontext#ToolContext#opt_nit_dir (self) on <self:ToolContext> */
4713 var3 = self->attrs[COLOR_nitc__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
4714 if (unlikely(var3 == NULL)) {
4715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
4716 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 360);
4717 fatal_exit(1);
4718 }
4719 var1 = var3;
4720 RET_LABEL2:(void)0;
4721 }
4722 }
4723 {
4724 { /* Inline opts#Option#value (var1) on <var1:OptionString> */
4725 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionString> */
4726 var4 = var6;
4727 RET_LABEL5:(void)0;
4728 }
4729 }
4730 var_res = var4;
4731 if (var_res == NULL) {
4732 var7 = 0; /* is null */
4733 } else {
4734 var7 = 1; /* arg is null and recv is not */
4735 }
4736 if (0) {
4737 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable String> */
4738 var_other = ((val*)NULL);
4739 {
4740 var10 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable String(String)>*/
4741 }
4742 var11 = !var10;
4743 var8 = var11;
4744 goto RET_LABEL9;
4745 RET_LABEL9:(void)0;
4746 }
4747 var7 = var8;
4748 }
4749 if (var7){
4750 {
4751 var12 = nitc___nitc__ToolContext___check_nit_dir(self, var_res);
4752 }
4753 var13 = !var12;
4754 if (var13){
4755 if (unlikely(varonce==NULL)) {
4756 var14 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
4757 if (likely(varonce15!=NULL)) {
4758 var16 = varonce15;
4759 } else {
4760 var17 = "Fatal Error: the value of --nit-dir does not seem to be a valid base Nit directory: ";
4761 var18 = core__flat___NativeString___to_s_full(var17, 84l, 84l);
4762 var16 = var18;
4763 varonce15 = var16;
4764 }
4765 ((struct instance_core__NativeArray*)var14)->values[0]=var16;
4766 if (likely(varonce19!=NULL)) {
4767 var20 = varonce19;
4768 } else {
4769 var21 = ".";
4770 var22 = core__flat___NativeString___to_s_full(var21, 1l, 1l);
4771 var20 = var22;
4772 varonce19 = var20;
4773 }
4774 ((struct instance_core__NativeArray*)var14)->values[2]=var20;
4775 } else {
4776 var14 = varonce;
4777 varonce = NULL;
4778 }
4779 ((struct instance_core__NativeArray*)var14)->values[1]=var_res;
4780 {
4781 var23 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
4782 }
4783 varonce = var14;
4784 {
4785 nitc___nitc__ToolContext___fatal_error(self, ((val*)NULL), var23); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
4786 }
4787 } else {
4788 }
4789 var = var_res;
4790 goto RET_LABEL;
4791 } else {
4792 }
4793 if (likely(varonce24!=NULL)) {
4794 var25 = varonce24;
4795 } else {
4796 var26 = "NIT_DIR";
4797 var27 = core__flat___NativeString___to_s_full(var26, 7l, 7l);
4798 var25 = var27;
4799 varonce24 = var25;
4800 }
4801 {
4802 var28 = core__environ___String___environ(var25);
4803 }
4804 var_res = var28;
4805 {
4806 var29 = ((short int(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var_res); /* is_empty on <var_res:nullable String(String)>*/
4807 }
4808 var30 = !var29;
4809 if (var30){
4810 {
4811 var31 = nitc___nitc__ToolContext___check_nit_dir(self, var_res);
4812 }
4813 var32 = !var31;
4814 if (var32){
4815 if (unlikely(varonce33==NULL)) {
4816 var34 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
4817 if (likely(varonce35!=NULL)) {
4818 var36 = varonce35;
4819 } else {
4820 var37 = "Fatal Error: the value of NIT_DIR does not seem to be a valid base Nit directory: ";
4821 var38 = core__flat___NativeString___to_s_full(var37, 82l, 82l);
4822 var36 = var38;
4823 varonce35 = var36;
4824 }
4825 ((struct instance_core__NativeArray*)var34)->values[0]=var36;
4826 if (likely(varonce39!=NULL)) {
4827 var40 = varonce39;
4828 } else {
4829 var41 = ".";
4830 var42 = core__flat___NativeString___to_s_full(var41, 1l, 1l);
4831 var40 = var42;
4832 varonce39 = var40;
4833 }
4834 ((struct instance_core__NativeArray*)var34)->values[2]=var40;
4835 } else {
4836 var34 = varonce33;
4837 varonce33 = NULL;
4838 }
4839 ((struct instance_core__NativeArray*)var34)->values[1]=var_res;
4840 {
4841 var43 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var34); /* native_to_s on <var34:NativeArray[String]>*/
4842 }
4843 varonce33 = var34;
4844 {
4845 nitc___nitc__ToolContext___fatal_error(self, ((val*)NULL), var43); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
4846 }
4847 } else {
4848 }
4849 var = var_res;
4850 goto RET_LABEL;
4851 } else {
4852 }
4853 if (unlikely(varonce44==NULL)) {
4854 var45 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
4855 if (likely(varonce46!=NULL)) {
4856 var47 = varonce46;
4857 } else {
4858 var48 = "/..";
4859 var49 = core__flat___NativeString___to_s_full(var48, 3l, 3l);
4860 var47 = var49;
4861 varonce46 = var47;
4862 }
4863 ((struct instance_core__NativeArray*)var45)->values[1]=var47;
4864 } else {
4865 var45 = varonce44;
4866 varonce44 = NULL;
4867 }
4868 {
4869 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
4870 var52 = glob_sys;
4871 var50 = var52;
4872 goto RET_LABEL51;
4873 RET_LABEL51:(void)0;
4874 }
4875 }
4876 {
4877 var53 = core__abstract_text___Sys___program_name(var50);
4878 }
4879 {
4880 var54 = core__file___String___dirname(var53);
4881 }
4882 ((struct instance_core__NativeArray*)var45)->values[0]=var54;
4883 {
4884 var55 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
4885 }
4886 varonce44 = var45;
4887 var_res = var55;
4888 {
4889 var56 = nitc___nitc__ToolContext___check_nit_dir(self, var_res);
4890 }
4891 if (var56){
4892 {
4893 var57 = core__file___String___simplify_path(var_res);
4894 }
4895 var = var57;
4896 goto RET_LABEL;
4897 } else {
4898 }
4899 if (likely(varonce58!=NULL)) {
4900 var59 = varonce58;
4901 } else {
4902 var60 = "/proc/self/exe";
4903 var61 = core__flat___NativeString___to_s_full(var60, 14l, 14l);
4904 var59 = var61;
4905 varonce58 = var59;
4906 }
4907 var_exe = var59;
4908 {
4909 var62 = core__file___String___file_exists(var_exe);
4910 }
4911 if (var62){
4912 {
4913 var63 = core__file___String___realpath(var_exe);
4914 }
4915 var_res = var63;
4916 {
4917 var64 = core__file___String___dirname(var_res);
4918 }
4919 if (likely(varonce65!=NULL)) {
4920 var66 = varonce65;
4921 } else {
4922 var67 = "..";
4923 var68 = core__flat___NativeString___to_s_full(var67, 2l, 2l);
4924 var66 = var68;
4925 varonce65 = var66;
4926 }
4927 {
4928 var69 = core__file___String___join_path(var64, var66);
4929 }
4930 var_res = var69;
4931 {
4932 var70 = nitc___nitc__ToolContext___check_nit_dir(self, var_res);
4933 }
4934 if (var70){
4935 {
4936 var71 = core__file___String___simplify_path(var_res);
4937 }
4938 var = var71;
4939 goto RET_LABEL;
4940 } else {
4941 }
4942 } else {
4943 }
4944 if (likely(varonce72!=NULL)) {
4945 var73 = varonce72;
4946 } else {
4947 var74 = "PATH";
4948 var75 = core__flat___NativeString___to_s_full(var74, 4l, 4l);
4949 var73 = var75;
4950 varonce72 = var73;
4951 }
4952 {
4953 var76 = core__environ___String___environ(var73);
4954 }
4955 if (likely(varonce77!=NULL)) {
4956 var78 = varonce77;
4957 } else {
4958 var79 = ":";
4959 var80 = core__flat___NativeString___to_s_full(var79, 1l, 1l);
4960 var78 = var80;
4961 varonce77 = var78;
4962 }
4963 {
4964 var81 = core__string_search___Text___split(var76, var78);
4965 }
4966 var_ps = var81;
4967 var_ = var_ps;
4968 {
4969 var82 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
4970 }
4971 var_83 = var82;
4972 for(;;) {
4973 {
4974 var84 = ((short int(*)(val* self))((((long)var_83&3)?class_info[((long)var_83&3)]:var_83->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_83); /* is_ok on <var_83:IndexedIterator[String]>*/
4975 }
4976 if (var84){
4977 } else {
4978 goto BREAK_label;
4979 }
4980 {
4981 var85 = ((val*(*)(val* self))((((long)var_83&3)?class_info[((long)var_83&3)]:var_83->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_83); /* item on <var_83:IndexedIterator[String]>*/
4982 }
4983 var_p = var85;
4984 if (likely(varonce86!=NULL)) {
4985 var87 = varonce86;
4986 } else {
4987 var88 = "..";
4988 var89 = core__flat___NativeString___to_s_full(var88, 2l, 2l);
4989 var87 = var89;
4990 varonce86 = var87;
4991 }
4992 {
4993 var90 = core__file___String____47d(var_p, var87);
4994 }
4995 var_res = var90;
4996 {
4997 var91 = nitc___nitc__ToolContext___check_nit_dir(self, var_res);
4998 }
4999 if (var91){
5000 {
5001 var92 = core__file___String___simplify_path(var_res);
5002 }
5003 var = var92;
5004 goto RET_LABEL;
5005 } else {
5006 }
5007 {
5008 ((void(*)(val* self))((((long)var_83&3)?class_info[((long)var_83&3)]:var_83->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_83); /* next on <var_83:IndexedIterator[String]>*/
5009 }
5010 }
5011 BREAK_label: (void)0;
5012 {
5013 ((void(*)(val* self))((((long)var_83&3)?class_info[((long)var_83&3)]:var_83->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_83); /* finish on <var_83:IndexedIterator[String]>*/
5014 }
5015 if (likely(varonce93!=NULL)) {
5016 var94 = varonce93;
5017 } else {
5018 var95 = "Fatal Error: cannot locate a valid base Nit directory. It is quite unexpected. Try to set the environment variable `NIT_DIR` or to use the `--nit-dir` option.";
5019 var96 = core__flat___NativeString___to_s_full(var95, 158l, 158l);
5020 var94 = var96;
5021 varonce93 = var94;
5022 }
5023 {
5024 nitc___nitc__ToolContext___fatal_error(self, ((val*)NULL), var94); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
5025 }
5026 PRINT_ERROR("Runtime error: %s", "Aborted");
5027 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 571);
5028 fatal_exit(1);
5029 RET_LABEL:;
5030 return var;
5031 }
5032 /* method toolcontext#ToolContext#check_nit_dir for (self: ToolContext, String): Bool */
5033 short int nitc___nitc__ToolContext___check_nit_dir(val* self, val* p0) {
5034 short int var /* : Bool */;
5035 val* var_res /* var res: String */;
5036 short int var1 /* : Bool */;
5037 short int var2 /* : Bool */;
5038 short int var_ /* var : Bool */;
5039 val* var3 /* : NativeArray[String] */;
5040 static val* varonce;
5041 static val* varonce4;
5042 val* var5 /* : String */;
5043 char* var6 /* : NativeString */;
5044 val* var7 /* : String */;
5045 val* var8 /* : String */;
5046 short int var9 /* : Bool */;
5047 var_res = p0;
5048 {
5049 var2 = core__file___String___file_exists(var_res);
5050 }
5051 var_ = var2;
5052 if (var2){
5053 if (unlikely(varonce==NULL)) {
5054 var3 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5055 if (likely(varonce4!=NULL)) {
5056 var5 = varonce4;
5057 } else {
5058 var6 = "/src/nit.nit";
5059 var7 = core__flat___NativeString___to_s_full(var6, 12l, 12l);
5060 var5 = var7;
5061 varonce4 = var5;
5062 }
5063 ((struct instance_core__NativeArray*)var3)->values[1]=var5;
5064 } else {
5065 var3 = varonce;
5066 varonce = NULL;
5067 }
5068 ((struct instance_core__NativeArray*)var3)->values[0]=var_res;
5069 {
5070 var8 = ((val*(*)(val* self))(var3->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var3); /* native_to_s on <var3:NativeArray[String]>*/
5071 }
5072 varonce = var3;
5073 {
5074 var9 = core__file___String___file_exists(var8);
5075 }
5076 var1 = var9;
5077 } else {
5078 var1 = var_;
5079 }
5080 var = var1;
5081 goto RET_LABEL;
5082 RET_LABEL:;
5083 return var;
5084 }
5085 /* method toolcontext#BashCompletion#toolcontext for (self: BashCompletion): ToolContext */
5086 val* nitc___nitc__BashCompletion___toolcontext(val* self) {
5087 val* var /* : ToolContext */;
5088 val* var1 /* : ToolContext */;
5089 var1 = self->attrs[COLOR_nitc__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
5090 if (unlikely(var1 == NULL)) {
5091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5092 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 602);
5093 fatal_exit(1);
5094 }
5095 var = var1;
5096 RET_LABEL:;
5097 return var;
5098 }
5099 /* method toolcontext#BashCompletion#toolcontext= for (self: BashCompletion, ToolContext) */
5100 void nitc___nitc__BashCompletion___toolcontext_61d(val* self, val* p0) {
5101 self->attrs[COLOR_nitc__toolcontext__BashCompletion___toolcontext].val = p0; /* _toolcontext on <self:BashCompletion> */
5102 RET_LABEL:;
5103 }
5104 /* method toolcontext#BashCompletion#extract_options_names for (self: BashCompletion): Array[String] */
5105 val* nitc___nitc__BashCompletion___extract_options_names(val* self) {
5106 val* var /* : Array[String] */;
5107 val* var1 /* : Array[String] */;
5108 val* var_names /* var names: Array[String] */;
5109 val* var2 /* : ToolContext */;
5110 val* var4 /* : ToolContext */;
5111 val* var5 /* : OptionContext */;
5112 val* var7 /* : OptionContext */;
5113 val* var8 /* : Array[Option] */;
5114 val* var10 /* : Array[Option] */;
5115 val* var_ /* var : Array[Option] */;
5116 val* var11 /* : IndexedIterator[nullable Object] */;
5117 val* var_12 /* var : IndexedIterator[Option] */;
5118 short int var13 /* : Bool */;
5119 val* var14 /* : nullable Object */;
5120 val* var_option /* var option: Option */;
5121 val* var15 /* : Array[String] */;
5122 val* var17 /* : Array[String] */;
5123 val* var_18 /* var : Array[String] */;
5124 val* var19 /* : IndexedIterator[nullable Object] */;
5125 val* var_20 /* var : IndexedIterator[String] */;
5126 short int var21 /* : Bool */;
5127 val* var23 /* : nullable Object */;
5128 val* var_name /* var name: String */;
5129 static val* varonce;
5130 val* var24 /* : String */;
5131 char* var25 /* : NativeString */;
5132 val* var26 /* : String */;
5133 short int var27 /* : Bool */;
5134 var1 = NEW_core__Array(&type_core__Array__core__String);
5135 {
5136 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[String]>*/
5137 }
5138 var_names = var1;
5139 {
5140 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
5141 var4 = self->attrs[COLOR_nitc__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
5142 if (unlikely(var4 == NULL)) {
5143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5144 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 602);
5145 fatal_exit(1);
5146 }
5147 var2 = var4;
5148 RET_LABEL3:(void)0;
5149 }
5150 }
5151 {
5152 { /* Inline toolcontext#ToolContext#option_context (var2) on <var2:ToolContext> */
5153 var7 = var2->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <var2:ToolContext> */
5154 if (unlikely(var7 == NULL)) {
5155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
5156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
5157 fatal_exit(1);
5158 }
5159 var5 = var7;
5160 RET_LABEL6:(void)0;
5161 }
5162 }
5163 {
5164 { /* Inline opts#OptionContext#options (var5) on <var5:OptionContext> */
5165 var10 = var5->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var5:OptionContext> */
5166 if (unlikely(var10 == NULL)) {
5167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
5168 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 277);
5169 fatal_exit(1);
5170 }
5171 var8 = var10;
5172 RET_LABEL9:(void)0;
5173 }
5174 }
5175 var_ = var8;
5176 {
5177 var11 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5178 }
5179 var_12 = var11;
5180 for(;;) {
5181 {
5182 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:IndexedIterator[Option]>*/
5183 }
5184 if (var13){
5185 } else {
5186 goto BREAK_label;
5187 }
5188 {
5189 var14 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:IndexedIterator[Option]>*/
5190 }
5191 var_option = var14;
5192 {
5193 { /* Inline opts#Option#names (var_option) on <var_option:Option> */
5194 var17 = var_option->attrs[COLOR_opts__Option___names].val; /* _names on <var_option:Option> */
5195 if (unlikely(var17 == NULL)) {
5196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
5197 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
5198 fatal_exit(1);
5199 }
5200 var15 = var17;
5201 RET_LABEL16:(void)0;
5202 }
5203 }
5204 var_18 = var15;
5205 {
5206 var19 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_18);
5207 }
5208 var_20 = var19;
5209 for(;;) {
5210 {
5211 var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:IndexedIterator[String]>*/
5212 }
5213 if (var21){
5214 } else {
5215 goto BREAK_label22;
5216 }
5217 {
5218 var23 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:IndexedIterator[String]>*/
5219 }
5220 var_name = var23;
5221 if (likely(varonce!=NULL)) {
5222 var24 = varonce;
5223 } else {
5224 var25 = "--";
5225 var26 = core__flat___NativeString___to_s_full(var25, 2l, 2l);
5226 var24 = var26;
5227 varonce = var24;
5228 }
5229 {
5230 var27 = core___core__Text___has_prefix(var_name, var24);
5231 }
5232 if (var27){
5233 {
5234 core___core__Array___core__abstract_collection__SimpleCollection__add(var_names, var_name); /* Direct call array#Array#add on <var_names:Array[String]>*/
5235 }
5236 } else {
5237 }
5238 {
5239 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:IndexedIterator[String]>*/
5240 }
5241 }
5242 BREAK_label22: (void)0;
5243 {
5244 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:IndexedIterator[String]>*/
5245 }
5246 {
5247 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:IndexedIterator[Option]>*/
5248 }
5249 }
5250 BREAK_label: (void)0;
5251 {
5252 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:IndexedIterator[Option]>*/
5253 }
5254 var = var_names;
5255 goto RET_LABEL;
5256 RET_LABEL:;
5257 return var;
5258 }
5259 /* method toolcontext#BashCompletion#rendering for (self: BashCompletion) */
5260 void nitc___nitc__BashCompletion___template__Template__rendering(val* self) {
5261 val* var /* : ToolContext */;
5262 val* var2 /* : ToolContext */;
5263 val* var3 /* : String */;
5264 val* var_name /* var name: String */;
5265 val* var4 /* : Array[String] */;
5266 val* var_option_names /* var option_names: Array[String] */;
5267 val* var5 /* : NativeArray[String] */;
5268 static val* varonce;
5269 static val* varonce6;
5270 val* var7 /* : String */;
5271 char* var8 /* : NativeString */;
5272 val* var9 /* : String */;
5273 static val* varonce10;
5274 val* var11 /* : String */;
5275 char* var12 /* : NativeString */;
5276 val* var13 /* : String */;
5277 val* var14 /* : ToolContext */;
5278 val* var16 /* : ToolContext */;
5279 val* var17 /* : String */;
5280 val* var18 /* : String */;
5281 val* var20 /* : NativeArray[String] */;
5282 static val* varonce19;
5283 static val* varonce21;
5284 val* var22 /* : String */;
5285 char* var23 /* : NativeString */;
5286 val* var24 /* : String */;
5287 static val* varonce25;
5288 val* var26 /* : String */;
5289 char* var27 /* : NativeString */;
5290 val* var28 /* : String */;
5291 val* var29 /* : String */;
5292 static val* varonce30;
5293 val* var31 /* : String */;
5294 char* var32 /* : NativeString */;
5295 val* var33 /* : String */;
5296 static val* varonce34;
5297 val* var35 /* : String */;
5298 char* var36 /* : NativeString */;
5299 val* var37 /* : String */;
5300 static val* varonce38;
5301 val* var39 /* : String */;
5302 char* var40 /* : NativeString */;
5303 val* var41 /* : String */;
5304 static val* varonce42;
5305 val* var43 /* : String */;
5306 char* var44 /* : NativeString */;
5307 val* var45 /* : String */;
5308 static val* varonce46;
5309 val* var47 /* : String */;
5310 char* var48 /* : NativeString */;
5311 val* var49 /* : String */;
5312 short int var50 /* : Bool */;
5313 short int var51 /* : Bool */;
5314 val* var53 /* : NativeArray[String] */;
5315 static val* varonce52;
5316 static val* varonce54;
5317 val* var55 /* : String */;
5318 char* var56 /* : NativeString */;
5319 val* var57 /* : String */;
5320 static val* varonce58;
5321 val* var59 /* : String */;
5322 char* var60 /* : NativeString */;
5323 val* var61 /* : String */;
5324 static val* varonce62;
5325 val* var63 /* : String */;
5326 char* var64 /* : NativeString */;
5327 val* var65 /* : String */;
5328 val* var66 /* : String */;
5329 val* var67 /* : String */;
5330 static val* varonce68;
5331 val* var69 /* : String */;
5332 char* var70 /* : NativeString */;
5333 val* var71 /* : String */;
5334 static val* varonce72;
5335 val* var73 /* : String */;
5336 char* var74 /* : NativeString */;
5337 val* var75 /* : String */;
5338 static val* varonce76;
5339 val* var77 /* : String */;
5340 char* var78 /* : NativeString */;
5341 val* var79 /* : String */;
5342 static val* varonce80;
5343 val* var81 /* : String */;
5344 char* var82 /* : NativeString */;
5345 val* var83 /* : String */;
5346 static val* varonce84;
5347 val* var85 /* : String */;
5348 char* var86 /* : NativeString */;
5349 val* var87 /* : String */;
5350 val* var89 /* : NativeArray[String] */;
5351 static val* varonce88;
5352 static val* varonce90;
5353 val* var91 /* : String */;
5354 char* var92 /* : NativeString */;
5355 val* var93 /* : String */;
5356 static val* varonce94;
5357 val* var95 /* : String */;
5358 char* var96 /* : NativeString */;
5359 val* var97 /* : String */;
5360 val* var98 /* : String */;
5361 {
5362 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
5363 var2 = self->attrs[COLOR_nitc__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
5364 if (unlikely(var2 == NULL)) {
5365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 602);
5367 fatal_exit(1);
5368 }
5369 var = var2;
5370 RET_LABEL1:(void)0;
5371 }
5372 }
5373 {
5374 var3 = nitc___nitc__ToolContext___toolname(var);
5375 }
5376 var_name = var3;
5377 {
5378 var4 = nitc___nitc__BashCompletion___extract_options_names(self);
5379 }
5380 var_option_names = var4;
5381 if (unlikely(varonce==NULL)) {
5382 var5 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
5383 if (likely(varonce6!=NULL)) {
5384 var7 = varonce6;
5385 } else {
5386 var8 = "# generated bash completion file for ";
5387 var9 = core__flat___NativeString___to_s_full(var8, 37l, 37l);
5388 var7 = var9;
5389 varonce6 = var7;
5390 }
5391 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
5392 if (likely(varonce10!=NULL)) {
5393 var11 = varonce10;
5394 } else {
5395 var12 = " ";
5396 var13 = core__flat___NativeString___to_s_full(var12, 1l, 1l);
5397 var11 = var13;
5398 varonce10 = var11;
5399 }
5400 ((struct instance_core__NativeArray*)var5)->values[2]=var11;
5401 } else {
5402 var5 = varonce;
5403 varonce = NULL;
5404 }
5405 ((struct instance_core__NativeArray*)var5)->values[1]=var_name;
5406 {
5407 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
5408 var16 = self->attrs[COLOR_nitc__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
5409 if (unlikely(var16 == NULL)) {
5410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 602);
5412 fatal_exit(1);
5413 }
5414 var14 = var16;
5415 RET_LABEL15:(void)0;
5416 }
5417 }
5418 {
5419 var17 = nitc___nitc__ToolContext___version(var14);
5420 }
5421 ((struct instance_core__NativeArray*)var5)->values[3]=var17;
5422 {
5423 var18 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
5424 }
5425 varonce = var5;
5426 {
5427 template___template__Template___addn(self, var18); /* Direct call template#Template#addn on <self:BashCompletion>*/
5428 }
5429 if (unlikely(varonce19==NULL)) {
5430 var20 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5431 if (likely(varonce21!=NULL)) {
5432 var22 = varonce21;
5433 } else {
5434 var23 = "_";
5435 var24 = core__flat___NativeString___to_s_full(var23, 1l, 1l);
5436 var22 = var24;
5437 varonce21 = var22;
5438 }
5439 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
5440 if (likely(varonce25!=NULL)) {
5441 var26 = varonce25;
5442 } else {
5443 var27 = "()";
5444 var28 = core__flat___NativeString___to_s_full(var27, 2l, 2l);
5445 var26 = var28;
5446 varonce25 = var26;
5447 }
5448 ((struct instance_core__NativeArray*)var20)->values[2]=var26;
5449 } else {
5450 var20 = varonce19;
5451 varonce19 = NULL;
5452 }
5453 ((struct instance_core__NativeArray*)var20)->values[1]=var_name;
5454 {
5455 var29 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
5456 }
5457 varonce19 = var20;
5458 {
5459 template___template__Template___addn(self, var29); /* Direct call template#Template#addn on <self:BashCompletion>*/
5460 }
5461 if (likely(varonce30!=NULL)) {
5462 var31 = varonce30;
5463 } else {
5464 var32 = "{";
5465 var33 = core__flat___NativeString___to_s_full(var32, 1l, 1l);
5466 var31 = var33;
5467 varonce30 = var31;
5468 }
5469 {
5470 template___template__Template___addn(self, var31); /* Direct call template#Template#addn on <self:BashCompletion>*/
5471 }
5472 if (likely(varonce34!=NULL)) {
5473 var35 = varonce34;
5474 } else {
5475 var36 = "\tlocal cur prev opts";
5476 var37 = core__flat___NativeString___to_s_full(var36, 20l, 20l);
5477 var35 = var37;
5478 varonce34 = var35;
5479 }
5480 {
5481 template___template__Template___addn(self, var35); /* Direct call template#Template#addn on <self:BashCompletion>*/
5482 }
5483 if (likely(varonce38!=NULL)) {
5484 var39 = varonce38;
5485 } else {
5486 var40 = "\tCOMPREPLY=()";
5487 var41 = core__flat___NativeString___to_s_full(var40, 13l, 13l);
5488 var39 = var41;
5489 varonce38 = var39;
5490 }
5491 {
5492 template___template__Template___addn(self, var39); /* Direct call template#Template#addn on <self:BashCompletion>*/
5493 }
5494 if (likely(varonce42!=NULL)) {
5495 var43 = varonce42;
5496 } else {
5497 var44 = "\tcur=\"${COMP_WORDS[COMP_CWORD]}\"";
5498 var45 = core__flat___NativeString___to_s_full(var44, 32l, 32l);
5499 var43 = var45;
5500 varonce42 = var43;
5501 }
5502 {
5503 template___template__Template___addn(self, var43); /* Direct call template#Template#addn on <self:BashCompletion>*/
5504 }
5505 if (likely(varonce46!=NULL)) {
5506 var47 = varonce46;
5507 } else {
5508 var48 = "\tprev=\"${COMP_WORDS[COMP_CWORD-1]}\"";
5509 var49 = core__flat___NativeString___to_s_full(var48, 35l, 35l);
5510 var47 = var49;
5511 varonce46 = var47;
5512 }
5513 {
5514 template___template__Template___addn(self, var47); /* Direct call template#Template#addn on <self:BashCompletion>*/
5515 }
5516 {
5517 var50 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_option_names);
5518 }
5519 var51 = !var50;
5520 if (var51){
5521 if (unlikely(varonce52==NULL)) {
5522 var53 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5523 if (likely(varonce54!=NULL)) {
5524 var55 = varonce54;
5525 } else {
5526 var56 = "\topts=\"";
5527 var57 = core__flat___NativeString___to_s_full(var56, 7l, 7l);
5528 var55 = var57;
5529 varonce54 = var55;
5530 }
5531 ((struct instance_core__NativeArray*)var53)->values[0]=var55;
5532 if (likely(varonce58!=NULL)) {
5533 var59 = varonce58;
5534 } else {
5535 var60 = "\"";
5536 var61 = core__flat___NativeString___to_s_full(var60, 1l, 1l);
5537 var59 = var61;
5538 varonce58 = var59;
5539 }
5540 ((struct instance_core__NativeArray*)var53)->values[2]=var59;
5541 } else {
5542 var53 = varonce52;
5543 varonce52 = NULL;
5544 }
5545 if (likely(varonce62!=NULL)) {
5546 var63 = varonce62;
5547 } else {
5548 var64 = " ";
5549 var65 = core__flat___NativeString___to_s_full(var64, 1l, 1l);
5550 var63 = var65;
5551 varonce62 = var63;
5552 }
5553 {
5554 var66 = core__abstract_text___Collection___join(var_option_names, var63);
5555 }
5556 ((struct instance_core__NativeArray*)var53)->values[1]=var66;
5557 {
5558 var67 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
5559 }
5560 varonce52 = var53;
5561 {
5562 template___template__Template___addn(self, var67); /* Direct call template#Template#addn on <self:BashCompletion>*/
5563 }
5564 if (likely(varonce68!=NULL)) {
5565 var69 = varonce68;
5566 } else {
5567 var70 = "\tif [[ ${cur} == -* ]] ; then";
5568 var71 = core__flat___NativeString___to_s_full(var70, 29l, 29l);
5569 var69 = var71;
5570 varonce68 = var69;
5571 }
5572 {
5573 template___template__Template___addn(self, var69); /* Direct call template#Template#addn on <self:BashCompletion>*/
5574 }
5575 if (likely(varonce72!=NULL)) {
5576 var73 = varonce72;
5577 } else {
5578 var74 = "\t\tCOMPREPLY=( $(compgen -W \"${opts}\" -- ${cur}) )";
5579 var75 = core__flat___NativeString___to_s_full(var74, 49l, 49l);
5580 var73 = var75;
5581 varonce72 = var73;
5582 }
5583 {
5584 template___template__Template___addn(self, var73); /* Direct call template#Template#addn on <self:BashCompletion>*/
5585 }
5586 if (likely(varonce76!=NULL)) {
5587 var77 = varonce76;
5588 } else {
5589 var78 = "\t\treturn 0";
5590 var79 = core__flat___NativeString___to_s_full(var78, 10l, 10l);
5591 var77 = var79;
5592 varonce76 = var77;
5593 }
5594 {
5595 template___template__Template___addn(self, var77); /* Direct call template#Template#addn on <self:BashCompletion>*/
5596 }
5597 if (likely(varonce80!=NULL)) {
5598 var81 = varonce80;
5599 } else {
5600 var82 = "\tfi";
5601 var83 = core__flat___NativeString___to_s_full(var82, 3l, 3l);
5602 var81 = var83;
5603 varonce80 = var81;
5604 }
5605 {
5606 template___template__Template___addn(self, var81); /* Direct call template#Template#addn on <self:BashCompletion>*/
5607 }
5608 } else {
5609 }
5610 if (likely(varonce84!=NULL)) {
5611 var85 = varonce84;
5612 } else {
5613 var86 = "} &&";
5614 var87 = core__flat___NativeString___to_s_full(var86, 4l, 4l);
5615 var85 = var87;
5616 varonce84 = var85;
5617 }
5618 {
5619 template___template__Template___addn(self, var85); /* Direct call template#Template#addn on <self:BashCompletion>*/
5620 }
5621 if (unlikely(varonce88==NULL)) {
5622 var89 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
5623 if (likely(varonce90!=NULL)) {
5624 var91 = varonce90;
5625 } else {
5626 var92 = "complete -o default -F _";
5627 var93 = core__flat___NativeString___to_s_full(var92, 24l, 24l);
5628 var91 = var93;
5629 varonce90 = var91;
5630 }
5631 ((struct instance_core__NativeArray*)var89)->values[0]=var91;
5632 if (likely(varonce94!=NULL)) {
5633 var95 = varonce94;
5634 } else {
5635 var96 = " ";
5636 var97 = core__flat___NativeString___to_s_full(var96, 1l, 1l);
5637 var95 = var97;
5638 varonce94 = var95;
5639 }
5640 ((struct instance_core__NativeArray*)var89)->values[2]=var95;
5641 } else {
5642 var89 = varonce88;
5643 varonce88 = NULL;
5644 }
5645 ((struct instance_core__NativeArray*)var89)->values[1]=var_name;
5646 ((struct instance_core__NativeArray*)var89)->values[3]=var_name;
5647 {
5648 var98 = ((val*(*)(val* self))(var89->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var89); /* native_to_s on <var89:NativeArray[String]>*/
5649 }
5650 varonce88 = var89;
5651 {
5652 template___template__Template___addn(self, var98); /* Direct call template#Template#addn on <self:BashCompletion>*/
5653 }
5654 RET_LABEL:;
5655 }
5656 /* method toolcontext#BashCompletion#init for (self: BashCompletion) */
5657 void nitc___nitc__BashCompletion___core__kernel__Object__init(val* self) {
5658 {
5659 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__BashCompletion___core__kernel__Object__init]))(self); /* init on <self:BashCompletion>*/
5660 }
5661 RET_LABEL:;
5662 }