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