README: document nit_env.sh
[nit.git] / c_src / opts.sep.1.c
1 #include "opts.sep.0.h"
2 /* method opts#Option#names for (self: Option): Array[String] */
3 val* opts___opts__Option___names(val* self) {
4 val* var /* : Array[String] */;
5 val* var1 /* : Array[String] */;
6 var1 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:Option> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
9 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method opts#Option#names= for (self: Option, Array[String]) */
17 void opts___opts__Option___names_61d(val* self, val* p0) {
18 self->attrs[COLOR_opts__Option___names].val = p0; /* _names on <self:Option> */
19 RET_LABEL:;
20 }
21 /* method opts#Option#helptext for (self: Option): String */
22 val* opts___opts__Option___helptext(val* self) {
23 val* var /* : String */;
24 val* var1 /* : String */;
25 var1 = self->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <self:Option> */
26 if (unlikely(var1 == NULL)) {
27 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
28 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
29 fatal_exit(1);
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method opts#Option#helptext= for (self: Option, String) */
36 void opts___opts__Option___helptext_61d(val* self, val* p0) {
37 self->attrs[COLOR_opts__Option___helptext].val = p0; /* _helptext on <self:Option> */
38 RET_LABEL:;
39 }
40 /* method opts#Option#errors for (self: Option): Array[String] */
41 val* opts___opts__Option___errors(val* self) {
42 val* var /* : Array[String] */;
43 val* var1 /* : Array[String] */;
44 var1 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:Option> */
45 if (unlikely(var1 == NULL)) {
46 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
47 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
48 fatal_exit(1);
49 }
50 var = var1;
51 RET_LABEL:;
52 return var;
53 }
54 /* method opts#Option#mandatory for (self: Option): Bool */
55 short int opts___opts__Option___mandatory(val* self) {
56 short int var /* : Bool */;
57 short int var1 /* : Bool */;
58 var1 = self->attrs[COLOR_opts__Option___mandatory].s; /* _mandatory on <self:Option> */
59 var = var1;
60 RET_LABEL:;
61 return var;
62 }
63 /* method opts#Option#hidden for (self: Option): Bool */
64 short int opts___opts__Option___hidden(val* self) {
65 short int var /* : Bool */;
66 short int var1 /* : Bool */;
67 var1 = self->attrs[COLOR_opts__Option___hidden].s; /* _hidden on <self:Option> */
68 var = var1;
69 RET_LABEL:;
70 return var;
71 }
72 /* method opts#Option#hidden= for (self: Option, Bool) */
73 void opts___opts__Option___hidden_61d(val* self, short int p0) {
74 self->attrs[COLOR_opts__Option___hidden].s = p0; /* _hidden on <self:Option> */
75 RET_LABEL:;
76 }
77 /* method opts#Option#read for (self: Option): Bool */
78 short int opts___opts__Option___read(val* self) {
79 short int var /* : Bool */;
80 short int var1 /* : Bool */;
81 var1 = self->attrs[COLOR_opts__Option___read].s; /* _read on <self:Option> */
82 var = var1;
83 RET_LABEL:;
84 return var;
85 }
86 /* method opts#Option#read= for (self: Option, Bool) */
87 void opts___opts__Option___read_61d(val* self, short int p0) {
88 self->attrs[COLOR_opts__Option___read].s = p0; /* _read on <self:Option> */
89 RET_LABEL:;
90 }
91 /* method opts#Option#value for (self: Option): nullable Object */
92 val* opts___opts__Option___value(val* self) {
93 val* var /* : nullable Object */;
94 val* var1 /* : nullable Object */;
95 var1 = self->attrs[COLOR_opts__Option___value].val; /* _value on <self:Option> */
96 var = var1;
97 RET_LABEL:;
98 return var;
99 }
100 /* method opts#Option#value= for (self: Option, nullable Object) */
101 void opts___opts__Option___value_61d(val* self, val* p0) {
102 short int var /* : Bool */;
103 int cltype;
104 int idtype;
105 const struct type* type_struct;
106 short int is_nullable;
107 const char* var_class_name;
108 /* Covariant cast for argument 0 (value) <p0:nullable Object> isa VALUE */
109 /* <p0:nullable Object> isa VALUE */
110 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
111 cltype = type_struct->color;
112 idtype = type_struct->id;
113 is_nullable = type_struct->is_nullable;
114 if(p0 == NULL) {
115 var = is_nullable;
116 } else {
117 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
118 var = 0;
119 } else {
120 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
121 }
122 }
123 if (unlikely(!var)) {
124 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
125 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
126 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
127 fatal_exit(1);
128 }
129 self->attrs[COLOR_opts__Option___value].val = p0; /* _value on <self:Option> */
130 RET_LABEL:;
131 }
132 /* method opts#Option#default_value= for (self: Option, nullable Object) */
133 void opts___opts__Option___default_value_61d(val* self, val* p0) {
134 short int var /* : Bool */;
135 int cltype;
136 int idtype;
137 const struct type* type_struct;
138 short int is_nullable;
139 const char* var_class_name;
140 /* Covariant cast for argument 0 (default_value) <p0:nullable Object> isa VALUE */
141 /* <p0:nullable Object> isa VALUE */
142 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
143 cltype = type_struct->color;
144 idtype = type_struct->id;
145 is_nullable = type_struct->is_nullable;
146 if(p0 == NULL) {
147 var = is_nullable;
148 } else {
149 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
150 var = 0;
151 } else {
152 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
153 }
154 }
155 if (unlikely(!var)) {
156 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
158 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 43);
159 fatal_exit(1);
160 }
161 self->attrs[COLOR_opts__Option___default_value].val = p0; /* _default_value on <self:Option> */
162 RET_LABEL:;
163 }
164 /* method opts#Option#init for (self: Option, String, nullable Object, nullable Array[String]) */
165 void opts___opts__Option___init(val* self, val* p0, val* p1, val* p2) {
166 short int var /* : Bool */;
167 int cltype;
168 int idtype;
169 const struct type* type_struct;
170 short int is_nullable;
171 const char* var_class_name;
172 val* var_help /* var help: String */;
173 val* var_default /* var default: nullable Object */;
174 val* var_names /* var names: nullable Array[String] */;
175 /* Covariant cast for argument 1 (default) <p1:nullable Object> isa VALUE */
176 /* <p1:nullable Object> isa VALUE */
177 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
178 cltype = type_struct->color;
179 idtype = type_struct->id;
180 is_nullable = type_struct->is_nullable;
181 if(p1 == NULL) {
182 var = is_nullable;
183 } else {
184 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
185 var = 0;
186 } else {
187 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
188 }
189 }
190 if (unlikely(!var)) {
191 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
192 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
193 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 46);
194 fatal_exit(1);
195 }
196 var_help = p0;
197 var_default = p1;
198 var_names = p2;
199 {
200 opts___opts__Option___init_opt(self, var_help, var_default, var_names); /* Direct call opts#Option#init_opt on <self:Option>*/
201 }
202 RET_LABEL:;
203 }
204 /* method opts#Option#init_opt for (self: Option, String, nullable Object, nullable Array[String]) */
205 void opts___opts__Option___init_opt(val* self, val* p0, val* p1, val* p2) {
206 short int var /* : Bool */;
207 int cltype;
208 int idtype;
209 const struct type* type_struct;
210 short int is_nullable;
211 const char* var_class_name;
212 val* var_help /* var help: String */;
213 val* var_default /* var default: nullable Object */;
214 val* var_names /* var names: nullable Array[String] */;
215 short int var1 /* : Bool */;
216 short int var2 /* : Bool */;
217 val* var3 /* : Array[String] */;
218 val* var5 /* : Array[nullable Object] */;
219 short int var9 /* : Bool */;
220 int cltype10;
221 int idtype11;
222 const struct type* type_struct12;
223 short int is_nullable13;
224 const char* var_class_name14;
225 short int var16 /* : Bool */;
226 int cltype17;
227 int idtype18;
228 const struct type* type_struct19;
229 short int is_nullable20;
230 const char* var_class_name21;
231 /* Covariant cast for argument 1 (default) <p1:nullable Object> isa VALUE */
232 /* <p1:nullable Object> isa VALUE */
233 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
234 cltype = type_struct->color;
235 idtype = type_struct->id;
236 is_nullable = type_struct->is_nullable;
237 if(p1 == NULL) {
238 var = is_nullable;
239 } else {
240 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
241 var = 0;
242 } else {
243 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
244 }
245 }
246 if (unlikely(!var)) {
247 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
248 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
249 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 51);
250 fatal_exit(1);
251 }
252 var_help = p0;
253 var_default = p1;
254 var_names = p2;
255 if (var_names == NULL) {
256 var1 = 1; /* is null */
257 } else {
258 var1 = 0; /* arg is null but recv is not */
259 }
260 if (0) {
261 var2 = standard___standard__Array___standard__kernel__Object___61d_61d(var_names, ((val*)NULL));
262 var1 = var2;
263 }
264 if (var1){
265 var3 = NEW_standard__Array(&type_standard__Array__standard__String);
266 {
267 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[String]>*/
268 }
269 {
270 { /* Inline opts#Option#names= (self,var3) on <self:Option> */
271 self->attrs[COLOR_opts__Option___names].val = var3; /* _names on <self:Option> */
272 RET_LABEL4:(void)0;
273 }
274 }
275 } else {
276 {
277 var5 = standard__array___Collection___to_a(var_names);
278 }
279 {
280 { /* Inline opts#Option#names= (self,var5) on <self:Option> */
281 self->attrs[COLOR_opts__Option___names].val = var5; /* _names on <self:Option> */
282 RET_LABEL6:(void)0;
283 }
284 }
285 }
286 {
287 { /* Inline opts#Option#helptext= (self,var_help) on <self:Option> */
288 self->attrs[COLOR_opts__Option___helptext].val = var_help; /* _helptext on <self:Option> */
289 RET_LABEL7:(void)0;
290 }
291 }
292 {
293 { /* Inline opts#Option#default_value= (self,var_default) on <self:Option> */
294 /* Covariant cast for argument 0 (default_value) <var_default:nullable Object> isa VALUE */
295 /* <var_default:nullable Object> isa VALUE */
296 type_struct12 = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
297 cltype10 = type_struct12->color;
298 idtype11 = type_struct12->id;
299 is_nullable13 = type_struct12->is_nullable;
300 if(var_default == NULL) {
301 var9 = is_nullable13;
302 } else {
303 if(cltype10 >= (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->table_size) {
304 var9 = 0;
305 } else {
306 var9 = (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->type_table[cltype10] == idtype11;
307 }
308 }
309 if (unlikely(!var9)) {
310 var_class_name14 = var_default == NULL ? "null" : (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->name;
311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name14);
312 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 43);
313 fatal_exit(1);
314 }
315 self->attrs[COLOR_opts__Option___default_value].val = var_default; /* _default_value on <self:Option> */
316 RET_LABEL8:(void)0;
317 }
318 }
319 {
320 { /* Inline opts#Option#value= (self,var_default) on <self:Option> */
321 /* Covariant cast for argument 0 (value) <var_default:nullable Object> isa VALUE */
322 /* <var_default:nullable Object> isa VALUE */
323 type_struct19 = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
324 cltype17 = type_struct19->color;
325 idtype18 = type_struct19->id;
326 is_nullable20 = type_struct19->is_nullable;
327 if(var_default == NULL) {
328 var16 = is_nullable20;
329 } else {
330 if(cltype17 >= (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->table_size) {
331 var16 = 0;
332 } else {
333 var16 = (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->type_table[cltype17] == idtype18;
334 }
335 }
336 if (unlikely(!var16)) {
337 var_class_name21 = var_default == NULL ? "null" : (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->name;
338 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name21);
339 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
340 fatal_exit(1);
341 }
342 self->attrs[COLOR_opts__Option___value].val = var_default; /* _value on <self:Option> */
343 RET_LABEL15:(void)0;
344 }
345 }
346 RET_LABEL:;
347 }
348 /* method opts#Option#to_s for (self: Option): String */
349 val* opts___opts__Option___standard__string__Object__to_s(val* self) {
350 val* var /* : String */;
351 val* var1 /* : String */;
352 {
353 var1 = opts___opts__Option___pretty(self, 2l);
354 }
355 var = var1;
356 goto RET_LABEL;
357 RET_LABEL:;
358 return var;
359 }
360 /* method opts#Option#pretty for (self: Option, Int): String */
361 val* opts___opts__Option___pretty(val* self, long p0) {
362 val* var /* : String */;
363 long var_off /* var off: Int */;
364 val* var1 /* : FlatBuffer */;
365 static val* varonce;
366 val* var2 /* : String */;
367 char* var3 /* : NativeString */;
368 val* var4 /* : FlatString */;
369 val* var_text /* var text: FlatBuffer */;
370 val* var5 /* : Array[String] */;
371 val* var7 /* : Array[String] */;
372 static val* varonce8;
373 val* var9 /* : String */;
374 char* var10 /* : NativeString */;
375 val* var11 /* : FlatString */;
376 val* var12 /* : String */;
377 static val* varonce13;
378 val* var14 /* : String */;
379 char* var15 /* : NativeString */;
380 val* var16 /* : FlatString */;
381 long var17 /* : Int */;
382 long var19 /* : Int */;
383 long var20 /* : Int */;
384 short int var22 /* : Bool */;
385 int cltype;
386 int idtype;
387 const char* var_class_name;
388 long var23 /* : Int */;
389 long var_rest /* var rest: Int */;
390 short int var24 /* : Bool */;
391 short int var26 /* : Bool */;
392 int cltype27;
393 int idtype28;
394 const char* var_class_name29;
395 short int var30 /* : Bool */;
396 static val* varonce31;
397 val* var32 /* : String */;
398 char* var33 /* : NativeString */;
399 val* var34 /* : FlatString */;
400 val* var35 /* : String */;
401 val* var36 /* : String */;
402 val* var38 /* : String */;
403 val* var39 /* : String */;
404 var_off = p0;
405 var1 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer);
406 if (likely(varonce!=NULL)) {
407 var2 = varonce;
408 } else {
409 var3 = " ";
410 var4 = standard___standard__NativeString___to_s_with_length(var3, 2l);
411 var2 = var4;
412 varonce = var2;
413 }
414 {
415 standard___standard__FlatBuffer___from(var1, var2); /* Direct call string#FlatBuffer#from on <var1:FlatBuffer>*/
416 }
417 var_text = var1;
418 {
419 { /* Inline opts#Option#names (self) on <self:Option> */
420 var7 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:Option> */
421 if (unlikely(var7 == NULL)) {
422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
423 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
424 fatal_exit(1);
425 }
426 var5 = var7;
427 RET_LABEL6:(void)0;
428 }
429 }
430 if (likely(varonce8!=NULL)) {
431 var9 = varonce8;
432 } else {
433 var10 = ", ";
434 var11 = standard___standard__NativeString___to_s_with_length(var10, 2l);
435 var9 = var11;
436 varonce8 = var9;
437 }
438 {
439 var12 = standard__string___Collection___join(var5, var9);
440 }
441 {
442 standard___standard__FlatBuffer___Buffer__append(var_text, var12); /* Direct call string#FlatBuffer#append on <var_text:FlatBuffer>*/
443 }
444 if (likely(varonce13!=NULL)) {
445 var14 = varonce13;
446 } else {
447 var15 = " ";
448 var16 = standard___standard__NativeString___to_s_with_length(var15, 2l);
449 var14 = var16;
450 varonce13 = var14;
451 }
452 {
453 standard___standard__FlatBuffer___Buffer__append(var_text, var14); /* Direct call string#FlatBuffer#append on <var_text:FlatBuffer>*/
454 }
455 {
456 { /* Inline string#FlatText#length (var_text) on <var_text:FlatBuffer> */
457 var19 = var_text->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <var_text:FlatBuffer> */
458 var17 = var19;
459 RET_LABEL18:(void)0;
460 }
461 }
462 {
463 { /* Inline kernel#Int#- (var_off,var17) on <var_off:Int> */
464 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
465 /* <var17:Int> isa OTHER */
466 var22 = 1; /* easy <var17:Int> isa OTHER*/
467 if (unlikely(!var22)) {
468 var_class_name = type_standard__Int.name;
469 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
470 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
471 fatal_exit(1);
472 }
473 var23 = var_off - var17;
474 var20 = var23;
475 goto RET_LABEL21;
476 RET_LABEL21:(void)0;
477 }
478 }
479 var_rest = var20;
480 {
481 { /* Inline kernel#Int#> (var_rest,0l) on <var_rest:Int> */
482 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
483 /* <0l:Int> isa OTHER */
484 var26 = 1; /* easy <0l:Int> isa OTHER*/
485 if (unlikely(!var26)) {
486 var_class_name29 = type_standard__Int.name;
487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
488 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
489 fatal_exit(1);
490 }
491 var30 = var_rest > 0l;
492 var24 = var30;
493 goto RET_LABEL25;
494 RET_LABEL25:(void)0;
495 }
496 }
497 if (var24){
498 if (likely(varonce31!=NULL)) {
499 var32 = varonce31;
500 } else {
501 var33 = " ";
502 var34 = standard___standard__NativeString___to_s_with_length(var33, 1l);
503 var32 = var34;
504 varonce31 = var32;
505 }
506 {
507 var35 = ((val*(*)(val* self, long p0))(var32->class->vft[COLOR_standard__string__String___42d]))(var32, var_rest); /* * on <var32:String>*/
508 }
509 {
510 standard___standard__FlatBuffer___Buffer__append(var_text, var35); /* Direct call string#FlatBuffer#append on <var_text:FlatBuffer>*/
511 }
512 } else {
513 }
514 {
515 { /* Inline opts#Option#helptext (self) on <self:Option> */
516 var38 = self->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <self:Option> */
517 if (unlikely(var38 == NULL)) {
518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
519 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
520 fatal_exit(1);
521 }
522 var36 = var38;
523 RET_LABEL37:(void)0;
524 }
525 }
526 {
527 standard___standard__FlatBuffer___Buffer__append(var_text, var36); /* Direct call string#FlatBuffer#append on <var_text:FlatBuffer>*/
528 }
529 {
530 var39 = standard___standard__FlatBuffer___Object__to_s(var_text);
531 }
532 var = var39;
533 goto RET_LABEL;
534 RET_LABEL:;
535 return var;
536 }
537 /* method opts#Option#read_param for (self: Option, Iterator[String]) */
538 void opts___opts__Option___read_param(val* self, val* p0) {
539 val* var_it /* var it: Iterator[String] */;
540 var_it = p0;
541 {
542 { /* Inline opts#Option#read= (self,1) on <self:Option> */
543 self->attrs[COLOR_opts__Option___read].s = 1; /* _read on <self:Option> */
544 RET_LABEL1:(void)0;
545 }
546 }
547 RET_LABEL:;
548 }
549 /* method opts#OptionBool#init for (self: OptionBool, String, Array[String]) */
550 void opts___opts__OptionBool___init(val* self, val* p0, val* p1) {
551 val* var_help /* var help: String */;
552 val* var_names /* var names: Array[String] */;
553 val* var /* : nullable Object */;
554 var_help = p0;
555 var_names = p1;
556 {
557 var = (val*)((long)(0)<<2|3);
558 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts#Option#init on <self:OptionBool>*/
559 }
560 RET_LABEL:;
561 }
562 /* method opts#OptionBool#read_param for (self: OptionBool, Iterator[String]) */
563 void opts___opts__OptionBool___Option__read_param(val* self, val* p0) {
564 val* var_it /* var it: Iterator[String] */;
565 short int var /* : Bool */;
566 int cltype;
567 int idtype;
568 const struct type* type_struct;
569 const char* var_class_name;
570 val* var2 /* : nullable Object */;
571 var_it = p0;
572 {
573 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_opts___opts__OptionBool___Option__read_param]))(self, p0); /* read_param on <self:OptionBool>*/
574 }
575 {
576 { /* Inline opts#Option#value= (self,1) on <self:OptionBool> */
577 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
578 /* <1:Bool> isa VALUE */
579 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
580 cltype = type_struct->color;
581 idtype = type_struct->id;
582 if(cltype >= (&type_standard__Bool)->table_size) {
583 var = 0;
584 } else {
585 var = (&type_standard__Bool)->type_table[cltype] == idtype;
586 }
587 if (unlikely(!var)) {
588 var_class_name = type_standard__Bool.name;
589 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
590 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
591 fatal_exit(1);
592 }
593 var2 = (val*)((long)(1)<<2|3);
594 self->attrs[COLOR_opts__Option___value].val = var2; /* _value on <self:OptionBool> */
595 RET_LABEL1:(void)0;
596 }
597 }
598 RET_LABEL:;
599 }
600 /* method opts#OptionCount#init for (self: OptionCount, String, Array[String]) */
601 void opts___opts__OptionCount___init(val* self, val* p0, val* p1) {
602 val* var_help /* var help: String */;
603 val* var_names /* var names: Array[String] */;
604 val* var /* : nullable Object */;
605 var_help = p0;
606 var_names = p1;
607 {
608 var = (val*)(0l<<2|1);
609 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts#Option#init on <self:OptionCount>*/
610 }
611 RET_LABEL:;
612 }
613 /* method opts#OptionCount#read_param for (self: OptionCount, Iterator[String]) */
614 void opts___opts__OptionCount___Option__read_param(val* self, val* p0) {
615 val* var_it /* var it: Iterator[String] */;
616 val* var_ /* var : OptionCount */;
617 val* var /* : nullable Object */;
618 val* var2 /* : nullable Object */;
619 long var3 /* : Int */;
620 short int var5 /* : Bool */;
621 int cltype;
622 int idtype;
623 const char* var_class_name;
624 long var6 /* : Int */;
625 long var7 /* : Int */;
626 short int var9 /* : Bool */;
627 int cltype10;
628 int idtype11;
629 const struct type* type_struct;
630 const char* var_class_name12;
631 val* var13 /* : nullable Object */;
632 var_it = p0;
633 {
634 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_opts___opts__OptionCount___Option__read_param]))(self, p0); /* read_param on <self:OptionCount>*/
635 }
636 var_ = self;
637 {
638 { /* Inline opts#Option#value (var_) on <var_:OptionCount> */
639 var2 = var_->attrs[COLOR_opts__Option___value].val; /* _value on <var_:OptionCount> */
640 var = var2;
641 RET_LABEL1:(void)0;
642 }
643 }
644 {
645 { /* Inline kernel#Int#+ (var,1l) on <var:nullable Object(Int)> */
646 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
647 /* <1l:Int> isa OTHER */
648 var5 = 1; /* easy <1l:Int> isa OTHER*/
649 if (unlikely(!var5)) {
650 var_class_name = type_standard__Int.name;
651 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
652 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
653 fatal_exit(1);
654 }
655 var6 = (long)(var)>>2;
656 var7 = var6 + 1l;
657 var3 = var7;
658 goto RET_LABEL4;
659 RET_LABEL4:(void)0;
660 }
661 }
662 {
663 { /* Inline opts#Option#value= (var_,var3) on <var_:OptionCount> */
664 /* Covariant cast for argument 0 (value) <var3:Int> isa VALUE */
665 /* <var3:Int> isa VALUE */
666 type_struct = var_->type->resolution_table->types[COLOR_opts__Option__VALUE];
667 cltype10 = type_struct->color;
668 idtype11 = type_struct->id;
669 if(cltype10 >= (&type_standard__Int)->table_size) {
670 var9 = 0;
671 } else {
672 var9 = (&type_standard__Int)->type_table[cltype10] == idtype11;
673 }
674 if (unlikely(!var9)) {
675 var_class_name12 = type_standard__Int.name;
676 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name12);
677 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
678 fatal_exit(1);
679 }
680 var13 = (val*)(var3<<2|1);
681 var_->attrs[COLOR_opts__Option___value].val = var13; /* _value on <var_:OptionCount> */
682 RET_LABEL8:(void)0;
683 }
684 }
685 RET_LABEL:;
686 }
687 /* method opts#OptionParameter#parameter_mandatory for (self: OptionParameter): Bool */
688 short int opts___opts__OptionParameter___parameter_mandatory(val* self) {
689 short int var /* : Bool */;
690 short int var1 /* : Bool */;
691 var1 = self->attrs[COLOR_opts__OptionParameter___parameter_mandatory].s; /* _parameter_mandatory on <self:OptionParameter> */
692 var = var1;
693 RET_LABEL:;
694 return var;
695 }
696 /* method opts#OptionParameter#read_param for (self: OptionParameter, Iterator[String]) */
697 void opts___opts__OptionParameter___Option__read_param(val* self, val* p0) {
698 val* var_it /* var it: Iterator[String] */;
699 short int var /* : Bool */;
700 short int var1 /* : Bool */;
701 short int var_ /* var : Bool */;
702 short int var2 /* : Bool */;
703 val* var3 /* : nullable Object */;
704 short int var4 /* : Bool */;
705 short int var_5 /* var : Bool */;
706 val* var6 /* : nullable Object */;
707 val* var7 /* : SequenceRead[Char] */;
708 val* var8 /* : nullable Object */;
709 short int var9 /* : Bool */;
710 short int var11 /* : Bool */;
711 uint32_t var12 /* : Char */;
712 short int var13 /* : Bool */;
713 val* var14 /* : nullable Object */;
714 val* var15 /* : nullable Object */;
715 short int var17 /* : Bool */;
716 int cltype;
717 int idtype;
718 const struct type* type_struct;
719 short int is_nullable;
720 const char* var_class_name;
721 short int var18 /* : Bool */;
722 short int var20 /* : Bool */;
723 val* var21 /* : Array[String] */;
724 val* var23 /* : Array[String] */;
725 val* var24 /* : NativeArray[String] */;
726 static val* varonce;
727 static val* varonce25;
728 val* var26 /* : String */;
729 char* var27 /* : NativeString */;
730 val* var28 /* : FlatString */;
731 static val* varonce29;
732 val* var30 /* : String */;
733 char* var31 /* : NativeString */;
734 val* var32 /* : FlatString */;
735 val* var33 /* : Array[String] */;
736 val* var35 /* : Array[String] */;
737 val* var36 /* : nullable Object */;
738 val* var37 /* : String */;
739 var_it = p0;
740 {
741 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_opts___opts__OptionParameter___Option__read_param]))(self, p0); /* read_param on <self:OptionParameter>*/
742 }
743 {
744 var1 = ((short int(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_it); /* is_ok on <var_it:Iterator[String]>*/
745 }
746 var_ = var1;
747 if (var1){
748 {
749 var3 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
750 }
751 {
752 var4 = standard___standard__Text___is_empty(var3);
753 }
754 var_5 = var4;
755 if (var4){
756 var2 = var_5;
757 } else {
758 {
759 var6 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
760 }
761 {
762 var7 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__Text__chars]))(var6); /* chars on <var6:nullable Object(String)>*/
763 }
764 {
765 var8 = ((val*(*)(val* self))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_standard__abstract_collection__Collection__first]))(var7); /* first on <var7:SequenceRead[Char]>*/
766 }
767 {
768 { /* Inline kernel#Char#!= (var8,'-') on <var8:nullable Object(Char)> */
769 var12 = (uint32_t)((long)(var8)>>2);
770 var11 = (var8 != NULL) && (var12 == '-');
771 var13 = !var11;
772 var9 = var13;
773 goto RET_LABEL10;
774 RET_LABEL10:(void)0;
775 }
776 }
777 var2 = var9;
778 }
779 var = var2;
780 } else {
781 var = var_;
782 }
783 if (var){
784 {
785 var14 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
786 }
787 {
788 var15 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_opts__OptionParameter__convert]))(self, var14); /* convert on <self:OptionParameter>*/
789 }
790 {
791 { /* Inline opts#Option#value= (self,var15) on <self:OptionParameter> */
792 /* Covariant cast for argument 0 (value) <var15:nullable Object> isa VALUE */
793 /* <var15:nullable Object> isa VALUE */
794 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
795 cltype = type_struct->color;
796 idtype = type_struct->id;
797 is_nullable = type_struct->is_nullable;
798 if(var15 == NULL) {
799 var17 = is_nullable;
800 } else {
801 if(cltype >= (((long)var15&3)?type_info[((long)var15&3)]:var15->type)->table_size) {
802 var17 = 0;
803 } else {
804 var17 = (((long)var15&3)?type_info[((long)var15&3)]:var15->type)->type_table[cltype] == idtype;
805 }
806 }
807 if (unlikely(!var17)) {
808 var_class_name = var15 == NULL ? "null" : (((long)var15&3)?type_info[((long)var15&3)]:var15->type)->name;
809 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
810 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
811 fatal_exit(1);
812 }
813 self->attrs[COLOR_opts__Option___value].val = var15; /* _value on <self:OptionParameter> */
814 RET_LABEL16:(void)0;
815 }
816 }
817 {
818 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
819 }
820 } else {
821 {
822 { /* Inline opts#OptionParameter#parameter_mandatory (self) on <self:OptionParameter> */
823 var20 = self->attrs[COLOR_opts__OptionParameter___parameter_mandatory].s; /* _parameter_mandatory on <self:OptionParameter> */
824 var18 = var20;
825 RET_LABEL19:(void)0;
826 }
827 }
828 if (var18){
829 {
830 { /* Inline opts#Option#errors (self) on <self:OptionParameter> */
831 var23 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:OptionParameter> */
832 if (unlikely(var23 == NULL)) {
833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
834 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
835 fatal_exit(1);
836 }
837 var21 = var23;
838 RET_LABEL22:(void)0;
839 }
840 }
841 if (unlikely(varonce==NULL)) {
842 var24 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
843 if (likely(varonce25!=NULL)) {
844 var26 = varonce25;
845 } else {
846 var27 = "Parameter expected for option ";
847 var28 = standard___standard__NativeString___to_s_with_length(var27, 30l);
848 var26 = var28;
849 varonce25 = var26;
850 }
851 ((struct instance_standard__NativeArray*)var24)->values[0]=var26;
852 if (likely(varonce29!=NULL)) {
853 var30 = varonce29;
854 } else {
855 var31 = ".";
856 var32 = standard___standard__NativeString___to_s_with_length(var31, 1l);
857 var30 = var32;
858 varonce29 = var30;
859 }
860 ((struct instance_standard__NativeArray*)var24)->values[2]=var30;
861 } else {
862 var24 = varonce;
863 varonce = NULL;
864 }
865 {
866 { /* Inline opts#Option#names (self) on <self:OptionParameter> */
867 var35 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:OptionParameter> */
868 if (unlikely(var35 == NULL)) {
869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
870 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
871 fatal_exit(1);
872 }
873 var33 = var35;
874 RET_LABEL34:(void)0;
875 }
876 }
877 {
878 var36 = standard___standard__SequenceRead___Collection__first(var33);
879 }
880 ((struct instance_standard__NativeArray*)var24)->values[1]=var36;
881 {
882 var37 = ((val*(*)(val* self))(var24->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var24); /* native_to_s on <var24:NativeArray[String]>*/
883 }
884 varonce = var24;
885 {
886 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var21, var37); /* Direct call array#Array#add on <var21:Array[String]>*/
887 }
888 } else {
889 }
890 }
891 RET_LABEL:;
892 }
893 /* method opts#OptionString#init for (self: OptionString, String, Array[String]) */
894 void opts___opts__OptionString___init(val* self, val* p0, val* p1) {
895 val* var_help /* var help: String */;
896 val* var_names /* var names: Array[String] */;
897 short int var /* : Bool */;
898 int cltype;
899 int idtype;
900 const struct type* type_struct;
901 short int is_nullable;
902 const char* var_class_name;
903 var_help = p0;
904 var_names = p1;
905 /* <((val*)NULL):null> isa VALUE */
906 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
907 cltype = type_struct->color;
908 idtype = type_struct->id;
909 is_nullable = type_struct->is_nullable;
910 if(((val*)NULL) == NULL) {
911 var = is_nullable;
912 } else {
913 if(cltype >= ((val*)NULL)->type->table_size) {
914 var = 0;
915 } else {
916 var = ((val*)NULL)->type->type_table[cltype] == idtype;
917 }
918 }
919 if (unlikely(!var)) {
920 var_class_name = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name;
921 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
922 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 172);
923 fatal_exit(1);
924 }
925 {
926 opts___opts__Option___init(self, var_help, ((val*)NULL), var_names); /* Direct call opts#Option#init on <self:OptionString>*/
927 }
928 RET_LABEL:;
929 }
930 /* method opts#OptionString#convert for (self: OptionString, String): nullable String */
931 val* opts___opts__OptionString___OptionParameter__convert(val* self, val* p0) {
932 val* var /* : nullable String */;
933 val* var_str /* var str: String */;
934 short int var1 /* : Bool */;
935 int cltype;
936 int idtype;
937 const struct type* type_struct;
938 const char* var_class_name;
939 var_str = p0;
940 /* <var_str:String> isa VALUE */
941 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
942 cltype = type_struct->color;
943 idtype = type_struct->id;
944 if(cltype >= var_str->type->table_size) {
945 var1 = 0;
946 } else {
947 var1 = var_str->type->type_table[cltype] == idtype;
948 }
949 if (unlikely(!var1)) {
950 var_class_name = var_str == NULL ? "null" : var_str->type->name;
951 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
952 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 174);
953 fatal_exit(1);
954 }
955 var = var_str;
956 goto RET_LABEL;
957 RET_LABEL:;
958 return var;
959 }
960 /* method opts#OptionInt#init for (self: OptionInt, String, Int, Array[String]) */
961 void opts___opts__OptionInt___init(val* self, val* p0, long p1, val* p2) {
962 val* var_help /* var help: String */;
963 long var_default /* var default: Int */;
964 val* var_names /* var names: Array[String] */;
965 val* var /* : nullable Object */;
966 var_help = p0;
967 var_default = p1;
968 var_names = p2;
969 {
970 var = (val*)(var_default<<2|1);
971 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts#Option#init on <self:OptionInt>*/
972 }
973 RET_LABEL:;
974 }
975 /* method opts#OptionInt#convert for (self: OptionInt, String): Int */
976 long opts___opts__OptionInt___OptionParameter__convert(val* self, val* p0) {
977 long var /* : Int */;
978 val* var_str /* var str: String */;
979 long var1 /* : Int */;
980 var_str = p0;
981 {
982 var1 = standard___standard__Text___to_i(var_str);
983 }
984 var = var1;
985 goto RET_LABEL;
986 RET_LABEL:;
987 return var;
988 }
989 /* method opts#OptionInt#convert for (self: OptionParameter, String): nullable Object */
990 val* VIRTUAL_opts___opts__OptionInt___OptionParameter__convert(val* self, val* p0) {
991 val* var /* : nullable Object */;
992 long var1 /* : Int */;
993 val* var2 /* : nullable Object */;
994 var1 = opts___opts__OptionInt___OptionParameter__convert(self, p0);
995 var2 = (val*)(var1<<2|1);
996 var = var2;
997 RET_LABEL:;
998 return var;
999 }
1000 /* method opts#OptionArray#init for (self: OptionArray, String, Array[String]) */
1001 void opts___opts__OptionArray___init(val* self, val* p0, val* p1) {
1002 val* var_help /* var help: String */;
1003 val* var_names /* var names: Array[String] */;
1004 val* var /* : Array[String] */;
1005 val* var2 /* : Array[String] */;
1006 val* var4 /* : Array[String] */;
1007 short int var5 /* : Bool */;
1008 int cltype;
1009 int idtype;
1010 const struct type* type_struct;
1011 const char* var_class_name;
1012 var_help = p0;
1013 var_names = p1;
1014 var = NEW_standard__Array(&type_standard__Array__standard__String);
1015 {
1016 standard___standard__Array___standard__kernel__Object__init(var); /* Direct call array#Array#init on <var:Array[String]>*/
1017 }
1018 {
1019 { /* Inline opts#OptionArray#values= (self,var) on <self:OptionArray> */
1020 self->attrs[COLOR_opts__OptionArray___values].val = var; /* _values on <self:OptionArray> */
1021 RET_LABEL1:(void)0;
1022 }
1023 }
1024 {
1025 { /* Inline opts#OptionArray#values (self) on <self:OptionArray> */
1026 var4 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1027 if (unlikely(var4 == NULL)) {
1028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1029 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 254);
1030 fatal_exit(1);
1031 }
1032 var2 = var4;
1033 RET_LABEL3:(void)0;
1034 }
1035 }
1036 /* <var2:Array[String]> isa VALUE */
1037 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1038 cltype = type_struct->color;
1039 idtype = type_struct->id;
1040 if(cltype >= var2->type->table_size) {
1041 var5 = 0;
1042 } else {
1043 var5 = var2->type->type_table[cltype] == idtype;
1044 }
1045 if (unlikely(!var5)) {
1046 var_class_name = var2 == NULL ? "null" : var2->type->name;
1047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1048 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 251);
1049 fatal_exit(1);
1050 }
1051 {
1052 opts___opts__Option___init(self, var_help, var2, var_names); /* Direct call opts#Option#init on <self:OptionArray>*/
1053 }
1054 RET_LABEL:;
1055 }
1056 /* method opts#OptionArray#values for (self: OptionArray): Array[String] */
1057 val* opts___opts__OptionArray___values(val* self) {
1058 val* var /* : Array[String] */;
1059 val* var1 /* : Array[String] */;
1060 var1 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1061 if (unlikely(var1 == NULL)) {
1062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1063 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 254);
1064 fatal_exit(1);
1065 }
1066 var = var1;
1067 RET_LABEL:;
1068 return var;
1069 }
1070 /* method opts#OptionArray#values= for (self: OptionArray, Array[String]) */
1071 void opts___opts__OptionArray___values_61d(val* self, val* p0) {
1072 self->attrs[COLOR_opts__OptionArray___values].val = p0; /* _values on <self:OptionArray> */
1073 RET_LABEL:;
1074 }
1075 /* method opts#OptionArray#convert for (self: OptionArray, String): Array[String] */
1076 val* opts___opts__OptionArray___OptionParameter__convert(val* self, val* p0) {
1077 val* var /* : Array[String] */;
1078 val* var_str /* var str: String */;
1079 val* var1 /* : Array[String] */;
1080 val* var3 /* : Array[String] */;
1081 val* var4 /* : Array[String] */;
1082 val* var6 /* : Array[String] */;
1083 short int var7 /* : Bool */;
1084 int cltype;
1085 int idtype;
1086 const struct type* type_struct;
1087 const char* var_class_name;
1088 var_str = p0;
1089 {
1090 { /* Inline opts#OptionArray#values (self) on <self:OptionArray> */
1091 var3 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1092 if (unlikely(var3 == NULL)) {
1093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1094 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 254);
1095 fatal_exit(1);
1096 }
1097 var1 = var3;
1098 RET_LABEL2:(void)0;
1099 }
1100 }
1101 {
1102 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var1, var_str); /* Direct call array#Array#add on <var1:Array[String]>*/
1103 }
1104 {
1105 { /* Inline opts#OptionArray#values (self) on <self:OptionArray> */
1106 var6 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1107 if (unlikely(var6 == NULL)) {
1108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1109 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 254);
1110 fatal_exit(1);
1111 }
1112 var4 = var6;
1113 RET_LABEL5:(void)0;
1114 }
1115 }
1116 /* <var4:Array[String]> isa VALUE */
1117 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1118 cltype = type_struct->color;
1119 idtype = type_struct->id;
1120 if(cltype >= var4->type->table_size) {
1121 var7 = 0;
1122 } else {
1123 var7 = var4->type->type_table[cltype] == idtype;
1124 }
1125 if (unlikely(!var7)) {
1126 var_class_name = var4 == NULL ? "null" : var4->type->name;
1127 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1128 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 258);
1129 fatal_exit(1);
1130 }
1131 var = var4;
1132 goto RET_LABEL;
1133 RET_LABEL:;
1134 return var;
1135 }
1136 /* method opts#OptionContext#options for (self: OptionContext): Array[Option] */
1137 val* opts___opts__OptionContext___options(val* self) {
1138 val* var /* : Array[Option] */;
1139 val* var1 /* : Array[Option] */;
1140 var1 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1141 if (unlikely(var1 == NULL)) {
1142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1143 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
1144 fatal_exit(1);
1145 }
1146 var = var1;
1147 RET_LABEL:;
1148 return var;
1149 }
1150 /* method opts#OptionContext#rest for (self: OptionContext): Array[String] */
1151 val* opts___opts__OptionContext___rest(val* self) {
1152 val* var /* : Array[String] */;
1153 val* var1 /* : Array[String] */;
1154 var1 = self->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <self:OptionContext> */
1155 if (unlikely(var1 == NULL)) {
1156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
1157 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 267);
1158 fatal_exit(1);
1159 }
1160 var = var1;
1161 RET_LABEL:;
1162 return var;
1163 }
1164 /* method opts#OptionContext#errors for (self: OptionContext): Array[String] */
1165 val* opts___opts__OptionContext___errors(val* self) {
1166 val* var /* : Array[String] */;
1167 val* var1 /* : Array[String] */;
1168 var1 = self->attrs[COLOR_opts__OptionContext___errors].val; /* _errors on <self:OptionContext> */
1169 if (unlikely(var1 == NULL)) {
1170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
1171 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 270);
1172 fatal_exit(1);
1173 }
1174 var = var1;
1175 RET_LABEL:;
1176 return var;
1177 }
1178 /* method opts#OptionContext#optmap for (self: OptionContext): HashMap[String, Option] */
1179 val* opts___opts__OptionContext___optmap(val* self) {
1180 val* var /* : HashMap[String, Option] */;
1181 val* var1 /* : HashMap[String, Option] */;
1182 var1 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1183 if (unlikely(var1 == NULL)) {
1184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1185 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1186 fatal_exit(1);
1187 }
1188 var = var1;
1189 RET_LABEL:;
1190 return var;
1191 }
1192 /* method opts#OptionContext#add_option for (self: OptionContext, Array[Option]) */
1193 void opts___opts__OptionContext___add_option(val* self, val* p0) {
1194 val* var_opts /* var opts: Array[Option] */;
1195 val* var /* : Array[Option] */;
1196 val* var2 /* : Array[Option] */;
1197 var_opts = p0;
1198 {
1199 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
1200 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1201 if (unlikely(var2 == NULL)) {
1202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1203 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
1204 fatal_exit(1);
1205 }
1206 var = var2;
1207 RET_LABEL1:(void)0;
1208 }
1209 }
1210 {
1211 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var, var_opts); /* Direct call array#Array#add_all on <var:Array[Option]>*/
1212 }
1213 RET_LABEL:;
1214 }
1215 /* method opts#OptionContext#usage for (self: OptionContext) */
1216 void opts___opts__OptionContext___usage(val* self) {
1217 long var_lmax /* var lmax: Int */;
1218 val* var /* : Array[Option] */;
1219 val* var2 /* : Array[Option] */;
1220 val* var_ /* var : Array[Option] */;
1221 val* var3 /* : ArrayIterator[nullable Object] */;
1222 val* var_4 /* var : ArrayIterator[Option] */;
1223 short int var5 /* : Bool */;
1224 val* var6 /* : nullable Object */;
1225 val* var_i /* var i: Option */;
1226 long var_l /* var l: Int */;
1227 val* var7 /* : Array[String] */;
1228 val* var9 /* : Array[String] */;
1229 val* var_10 /* var : Array[String] */;
1230 val* var11 /* : ArrayIterator[nullable Object] */;
1231 val* var_12 /* var : ArrayIterator[String] */;
1232 short int var13 /* : Bool */;
1233 val* var14 /* : nullable Object */;
1234 val* var_n /* var n: String */;
1235 long var15 /* : Int */;
1236 long var16 /* : Int */;
1237 short int var18 /* : Bool */;
1238 int cltype;
1239 int idtype;
1240 const char* var_class_name;
1241 long var19 /* : Int */;
1242 long var20 /* : Int */;
1243 short int var22 /* : Bool */;
1244 int cltype23;
1245 int idtype24;
1246 const char* var_class_name25;
1247 long var26 /* : Int */;
1248 short int var27 /* : Bool */;
1249 short int var29 /* : Bool */;
1250 int cltype30;
1251 int idtype31;
1252 const char* var_class_name32;
1253 short int var33 /* : Bool */;
1254 val* var35 /* : Array[Option] */;
1255 val* var37 /* : Array[Option] */;
1256 val* var_38 /* var : Array[Option] */;
1257 val* var39 /* : ArrayIterator[nullable Object] */;
1258 val* var_40 /* var : ArrayIterator[Option] */;
1259 short int var41 /* : Bool */;
1260 val* var42 /* : nullable Object */;
1261 val* var_i43 /* var i: Option */;
1262 short int var44 /* : Bool */;
1263 short int var46 /* : Bool */;
1264 short int var47 /* : Bool */;
1265 val* var48 /* : Sys */;
1266 val* var49 /* : String */;
1267 var_lmax = 1l;
1268 {
1269 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
1270 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1271 if (unlikely(var2 == NULL)) {
1272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1273 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
1274 fatal_exit(1);
1275 }
1276 var = var2;
1277 RET_LABEL1:(void)0;
1278 }
1279 }
1280 var_ = var;
1281 {
1282 var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
1283 }
1284 var_4 = var3;
1285 for(;;) {
1286 {
1287 var5 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_4);
1288 }
1289 if (var5){
1290 {
1291 var6 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_4);
1292 }
1293 var_i = var6;
1294 var_l = 3l;
1295 {
1296 { /* Inline opts#Option#names (var_i) on <var_i:Option> */
1297 var9 = var_i->attrs[COLOR_opts__Option___names].val; /* _names on <var_i:Option> */
1298 if (unlikely(var9 == NULL)) {
1299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1300 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
1301 fatal_exit(1);
1302 }
1303 var7 = var9;
1304 RET_LABEL8:(void)0;
1305 }
1306 }
1307 var_10 = var7;
1308 {
1309 var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_10);
1310 }
1311 var_12 = var11;
1312 for(;;) {
1313 {
1314 var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12);
1315 }
1316 if (var13){
1317 {
1318 var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12);
1319 }
1320 var_n = var14;
1321 {
1322 var15 = ((long(*)(val* self))(var_n->class->vft[COLOR_standard__string__Text__length]))(var_n); /* length on <var_n:String>*/
1323 }
1324 {
1325 { /* Inline kernel#Int#+ (var15,2l) on <var15:Int> */
1326 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1327 /* <2l:Int> isa OTHER */
1328 var18 = 1; /* easy <2l:Int> isa OTHER*/
1329 if (unlikely(!var18)) {
1330 var_class_name = type_standard__Int.name;
1331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1332 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1333 fatal_exit(1);
1334 }
1335 var19 = var15 + 2l;
1336 var16 = var19;
1337 goto RET_LABEL17;
1338 RET_LABEL17:(void)0;
1339 }
1340 }
1341 {
1342 { /* Inline kernel#Int#+ (var_l,var16) on <var_l:Int> */
1343 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1344 /* <var16:Int> isa OTHER */
1345 var22 = 1; /* easy <var16:Int> isa OTHER*/
1346 if (unlikely(!var22)) {
1347 var_class_name25 = type_standard__Int.name;
1348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
1349 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1350 fatal_exit(1);
1351 }
1352 var26 = var_l + var16;
1353 var20 = var26;
1354 goto RET_LABEL21;
1355 RET_LABEL21:(void)0;
1356 }
1357 }
1358 var_l = var20;
1359 {
1360 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12); /* Direct call array#ArrayIterator#next on <var_12:ArrayIterator[String]>*/
1361 }
1362 } else {
1363 goto BREAK_label;
1364 }
1365 }
1366 BREAK_label: (void)0;
1367 {
1368 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_12); /* Direct call array#ArrayIterator#finish on <var_12:ArrayIterator[String]>*/
1369 }
1370 {
1371 { /* Inline kernel#Int#< (var_lmax,var_l) on <var_lmax:Int> */
1372 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1373 /* <var_l:Int> isa OTHER */
1374 var29 = 1; /* easy <var_l:Int> isa OTHER*/
1375 if (unlikely(!var29)) {
1376 var_class_name32 = type_standard__Int.name;
1377 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1378 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1379 fatal_exit(1);
1380 }
1381 var33 = var_lmax < var_l;
1382 var27 = var33;
1383 goto RET_LABEL28;
1384 RET_LABEL28:(void)0;
1385 }
1386 }
1387 if (var27){
1388 var_lmax = var_l;
1389 } else {
1390 }
1391 {
1392 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_4); /* Direct call array#ArrayIterator#next on <var_4:ArrayIterator[Option]>*/
1393 }
1394 } else {
1395 goto BREAK_label34;
1396 }
1397 }
1398 BREAK_label34: (void)0;
1399 {
1400 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_4); /* Direct call array#ArrayIterator#finish on <var_4:ArrayIterator[Option]>*/
1401 }
1402 {
1403 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
1404 var37 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1405 if (unlikely(var37 == NULL)) {
1406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1407 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
1408 fatal_exit(1);
1409 }
1410 var35 = var37;
1411 RET_LABEL36:(void)0;
1412 }
1413 }
1414 var_38 = var35;
1415 {
1416 var39 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_38);
1417 }
1418 var_40 = var39;
1419 for(;;) {
1420 {
1421 var41 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_40);
1422 }
1423 if (var41){
1424 {
1425 var42 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_40);
1426 }
1427 var_i43 = var42;
1428 {
1429 { /* Inline opts#Option#hidden (var_i43) on <var_i43:Option> */
1430 var46 = var_i43->attrs[COLOR_opts__Option___hidden].s; /* _hidden on <var_i43:Option> */
1431 var44 = var46;
1432 RET_LABEL45:(void)0;
1433 }
1434 }
1435 var47 = !var44;
1436 if (var47){
1437 var48 = glob_sys;
1438 {
1439 var49 = opts___opts__Option___pretty(var_i43, var_lmax);
1440 }
1441 {
1442 standard__file___Sys___print(var48, var49); /* Direct call file#Sys#print on <var48:Sys>*/
1443 }
1444 } else {
1445 }
1446 {
1447 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_40); /* Direct call array#ArrayIterator#next on <var_40:ArrayIterator[Option]>*/
1448 }
1449 } else {
1450 goto BREAK_label50;
1451 }
1452 }
1453 BREAK_label50: (void)0;
1454 {
1455 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_40); /* Direct call array#ArrayIterator#finish on <var_40:ArrayIterator[Option]>*/
1456 }
1457 RET_LABEL:;
1458 }
1459 /* method opts#OptionContext#parse for (self: OptionContext, Collection[String]) */
1460 void opts___opts__OptionContext___parse(val* self, val* p0) {
1461 val* var_argv /* var argv: Collection[String] */;
1462 val* var /* : Iterator[nullable Object] */;
1463 val* var_it /* var it: Iterator[String] */;
1464 var_argv = p0;
1465 {
1466 var = ((val*(*)(val* self))((((long)var_argv&3)?class_info[((long)var_argv&3)]:var_argv->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_argv); /* iterator on <var_argv:Collection[String]>*/
1467 }
1468 var_it = var;
1469 {
1470 opts___opts__OptionContext___parse_intern(self, var_it); /* Direct call opts#OptionContext#parse_intern on <self:OptionContext>*/
1471 }
1472 RET_LABEL:;
1473 }
1474 /* method opts#OptionContext#options_before_rest for (self: OptionContext): Bool */
1475 short int opts___opts__OptionContext___options_before_rest(val* self) {
1476 short int var /* : Bool */;
1477 short int var1 /* : Bool */;
1478 var1 = self->attrs[COLOR_opts__OptionContext___options_before_rest].s; /* _options_before_rest on <self:OptionContext> */
1479 var = var1;
1480 RET_LABEL:;
1481 return var;
1482 }
1483 /* method opts#OptionContext#parse_intern for (self: OptionContext, Iterator[String]) */
1484 void opts___opts__OptionContext___parse_intern(val* self, val* p0) {
1485 val* var_it /* var it: Iterator[String] */;
1486 short int var_parseargs /* var parseargs: Bool */;
1487 val* var /* : Array[String] */;
1488 val* var2 /* : Array[String] */;
1489 val* var_rest /* var rest: Array[String] */;
1490 short int var3 /* : Bool */;
1491 short int var_ /* var : Bool */;
1492 short int var4 /* : Bool */;
1493 val* var5 /* : nullable Object */;
1494 val* var_str /* var str: String */;
1495 static val* varonce;
1496 val* var6 /* : String */;
1497 char* var7 /* : NativeString */;
1498 val* var8 /* : FlatString */;
1499 short int var9 /* : Bool */;
1500 val* var10 /* : Array[nullable Object] */;
1501 short int var11 /* : Bool */;
1502 val* var12 /* : SequenceRead[Char] */;
1503 val* var13 /* : nullable Object */;
1504 long var14 /* : Int */;
1505 short int var15 /* : Bool */;
1506 short int var17 /* : Bool */;
1507 short int var_18 /* var : Bool */;
1508 long var19 /* : Int */;
1509 short int var20 /* : Bool */;
1510 short int var22 /* : Bool */;
1511 int cltype;
1512 int idtype;
1513 const char* var_class_name;
1514 short int var23 /* : Bool */;
1515 short int var_next_called /* var next_called: Bool */;
1516 long var_i /* var i: Int */;
1517 long var24 /* : Int */;
1518 long var_25 /* var : Int */;
1519 short int var26 /* : Bool */;
1520 short int var28 /* : Bool */;
1521 int cltype29;
1522 int idtype30;
1523 const char* var_class_name31;
1524 short int var32 /* : Bool */;
1525 static val* varonce33;
1526 val* var34 /* : String */;
1527 char* var35 /* : NativeString */;
1528 val* var36 /* : FlatString */;
1529 val* var37 /* : SequenceRead[Char] */;
1530 val* var38 /* : nullable Object */;
1531 val* var39 /* : String */;
1532 uint32_t var40 /* : Char */;
1533 val* var41 /* : String */;
1534 val* var_short_opt /* var short_opt: String */;
1535 val* var42 /* : HashMap[String, Option] */;
1536 val* var44 /* : HashMap[String, Option] */;
1537 short int var45 /* : Bool */;
1538 val* var46 /* : HashMap[String, Option] */;
1539 val* var48 /* : HashMap[String, Option] */;
1540 val* var49 /* : nullable Object */;
1541 val* var_option /* var option: Option */;
1542 short int var50 /* : Bool */;
1543 int cltype51;
1544 int idtype52;
1545 long var53 /* : Int */;
1546 short int var54 /* : Bool */;
1547 val* var55 /* : HashMap[String, Option] */;
1548 val* var57 /* : HashMap[String, Option] */;
1549 short int var58 /* : Bool */;
1550 val* var59 /* : HashMap[String, Option] */;
1551 val* var61 /* : HashMap[String, Option] */;
1552 val* var62 /* : nullable Object */;
1553 val* var_opt /* var opt: Option */;
1554 val* var63 /* : nullable Object */;
1555 short int var64 /* : Bool */;
1556 short int var66 /* : Bool */;
1557 val* var67 /* : Array[nullable Object] */;
1558 val* var69 /* : Array[Option] */;
1559 val* var71 /* : Array[Option] */;
1560 val* var_72 /* var : Array[Option] */;
1561 val* var73 /* : ArrayIterator[nullable Object] */;
1562 val* var_74 /* var : ArrayIterator[Option] */;
1563 short int var75 /* : Bool */;
1564 val* var76 /* : nullable Object */;
1565 val* var_opt77 /* var opt: Option */;
1566 short int var78 /* : Bool */;
1567 short int var79 /* : Bool */;
1568 short int var81 /* : Bool */;
1569 short int var_82 /* var : Bool */;
1570 short int var83 /* : Bool */;
1571 short int var85 /* : Bool */;
1572 short int var86 /* : Bool */;
1573 val* var87 /* : Array[String] */;
1574 val* var89 /* : Array[String] */;
1575 val* var91 /* : NativeArray[String] */;
1576 static val* varonce90;
1577 static val* varonce92;
1578 val* var93 /* : String */;
1579 char* var94 /* : NativeString */;
1580 val* var95 /* : FlatString */;
1581 static val* varonce96;
1582 val* var97 /* : String */;
1583 char* var98 /* : NativeString */;
1584 val* var99 /* : FlatString */;
1585 val* var100 /* : Array[String] */;
1586 val* var102 /* : Array[String] */;
1587 static val* varonce103;
1588 val* var104 /* : String */;
1589 char* var105 /* : NativeString */;
1590 val* var106 /* : FlatString */;
1591 val* var107 /* : String */;
1592 val* var108 /* : String */;
1593 var_it = p0;
1594 var_parseargs = 1;
1595 {
1596 opts___opts__OptionContext___build(self); /* Direct call opts#OptionContext#build on <self:OptionContext>*/
1597 }
1598 {
1599 { /* Inline opts#OptionContext#rest (self) on <self:OptionContext> */
1600 var2 = self->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <self:OptionContext> */
1601 if (unlikely(var2 == NULL)) {
1602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
1603 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 267);
1604 fatal_exit(1);
1605 }
1606 var = var2;
1607 RET_LABEL1:(void)0;
1608 }
1609 }
1610 var_rest = var;
1611 for(;;) {
1612 var_ = var_parseargs;
1613 if (var_parseargs){
1614 {
1615 var4 = ((short int(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_it); /* is_ok on <var_it:Iterator[String]>*/
1616 }
1617 var3 = var4;
1618 } else {
1619 var3 = var_;
1620 }
1621 if (var3){
1622 {
1623 var5 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
1624 }
1625 var_str = var5;
1626 if (likely(varonce!=NULL)) {
1627 var6 = varonce;
1628 } else {
1629 var7 = "--";
1630 var8 = standard___standard__NativeString___to_s_with_length(var7, 2l);
1631 var6 = var8;
1632 varonce = var6;
1633 }
1634 {
1635 var9 = ((short int(*)(val* self, val* p0))(var_str->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_str, var6); /* == on <var_str:String>*/
1636 }
1637 if (var9){
1638 {
1639 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
1640 }
1641 {
1642 var10 = standard__array___Iterator___to_a(var_it);
1643 }
1644 {
1645 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_rest, var10); /* Direct call array#Array#add_all on <var_rest:Array[String]>*/
1646 }
1647 var_parseargs = 0;
1648 } else {
1649 {
1650 var12 = ((val*(*)(val* self))(var_str->class->vft[COLOR_standard__string__Text__chars]))(var_str); /* chars on <var_str:String>*/
1651 }
1652 {
1653 var13 = (val*)((long)('-')<<2|2);
1654 var14 = ((long(*)(val* self, val* p0))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_standard__abstract_collection__SequenceRead__last_index_of]))(var12, var13); /* last_index_of on <var12:SequenceRead[Char]>*/
1655 }
1656 {
1657 { /* Inline kernel#Int#== (var14,0l) on <var14:Int> */
1658 var17 = var14 == 0l;
1659 var15 = var17;
1660 goto RET_LABEL16;
1661 RET_LABEL16:(void)0;
1662 }
1663 }
1664 var_18 = var15;
1665 if (var15){
1666 {
1667 var19 = ((long(*)(val* self))(var_str->class->vft[COLOR_standard__string__Text__length]))(var_str); /* length on <var_str:String>*/
1668 }
1669 {
1670 { /* Inline kernel#Int#> (var19,2l) on <var19:Int> */
1671 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1672 /* <2l:Int> isa OTHER */
1673 var22 = 1; /* easy <2l:Int> isa OTHER*/
1674 if (unlikely(!var22)) {
1675 var_class_name = type_standard__Int.name;
1676 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1677 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1678 fatal_exit(1);
1679 }
1680 var23 = var19 > 2l;
1681 var20 = var23;
1682 goto RET_LABEL21;
1683 RET_LABEL21:(void)0;
1684 }
1685 }
1686 var11 = var20;
1687 } else {
1688 var11 = var_18;
1689 }
1690 if (var11){
1691 var_next_called = 0;
1692 var_i = 1l;
1693 {
1694 var24 = ((long(*)(val* self))(var_str->class->vft[COLOR_standard__string__Text__length]))(var_str); /* length on <var_str:String>*/
1695 }
1696 var_25 = var24;
1697 for(;;) {
1698 {
1699 { /* Inline kernel#Int#< (var_i,var_25) on <var_i:Int> */
1700 /* Covariant cast for argument 0 (i) <var_25:Int> isa OTHER */
1701 /* <var_25:Int> isa OTHER */
1702 var28 = 1; /* easy <var_25:Int> isa OTHER*/
1703 if (unlikely(!var28)) {
1704 var_class_name31 = type_standard__Int.name;
1705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
1706 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1707 fatal_exit(1);
1708 }
1709 var32 = var_i < var_25;
1710 var26 = var32;
1711 goto RET_LABEL27;
1712 RET_LABEL27:(void)0;
1713 }
1714 }
1715 if (var26){
1716 if (likely(varonce33!=NULL)) {
1717 var34 = varonce33;
1718 } else {
1719 var35 = "-";
1720 var36 = standard___standard__NativeString___to_s_with_length(var35, 1l);
1721 var34 = var36;
1722 varonce33 = var34;
1723 }
1724 {
1725 var37 = ((val*(*)(val* self))(var_str->class->vft[COLOR_standard__string__Text__chars]))(var_str); /* chars on <var_str:String>*/
1726 }
1727 {
1728 var38 = ((val*(*)(val* self, long p0))((((long)var37&3)?class_info[((long)var37&3)]:var37->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var37, var_i); /* [] on <var37:SequenceRead[Char]>*/
1729 }
1730 {
1731 var40 = (uint32_t)((long)(var38)>>2);
1732 var39 = standard__string___Char___Object__to_s(var40);
1733 }
1734 {
1735 var41 = ((val*(*)(val* self, val* p0))(var34->class->vft[COLOR_standard__string__String___43d]))(var34, var39); /* + on <var34:String>*/
1736 }
1737 var_short_opt = var41;
1738 {
1739 { /* Inline opts#OptionContext#optmap (self) on <self:OptionContext> */
1740 var44 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1741 if (unlikely(var44 == NULL)) {
1742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1743 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1744 fatal_exit(1);
1745 }
1746 var42 = var44;
1747 RET_LABEL43:(void)0;
1748 }
1749 }
1750 {
1751 var45 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var42, var_short_opt);
1752 }
1753 if (var45){
1754 {
1755 { /* Inline opts#OptionContext#optmap (self) on <self:OptionContext> */
1756 var48 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1757 if (unlikely(var48 == NULL)) {
1758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1759 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1760 fatal_exit(1);
1761 }
1762 var46 = var48;
1763 RET_LABEL47:(void)0;
1764 }
1765 }
1766 {
1767 var49 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var46, var_short_opt);
1768 }
1769 var_option = var49;
1770 /* <var_option:Option> isa OptionParameter */
1771 cltype51 = type_opts__OptionParameter.color;
1772 idtype52 = type_opts__OptionParameter.id;
1773 if(cltype51 >= var_option->type->table_size) {
1774 var50 = 0;
1775 } else {
1776 var50 = var_option->type->type_table[cltype51] == idtype52;
1777 }
1778 if (var50){
1779 {
1780 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
1781 }
1782 var_next_called = 1;
1783 } else {
1784 }
1785 {
1786 ((void(*)(val* self, val* p0))(var_option->class->vft[COLOR_opts__Option__read_param]))(var_option, var_it); /* read_param on <var_option:Option>*/
1787 }
1788 } else {
1789 }
1790 {
1791 var53 = standard___standard__Int___Discrete__successor(var_i, 1l);
1792 }
1793 var_i = var53;
1794 } else {
1795 goto BREAK_label;
1796 }
1797 }
1798 BREAK_label: (void)0;
1799 var54 = !var_next_called;
1800 if (var54){
1801 {
1802 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
1803 }
1804 } else {
1805 }
1806 } else {
1807 {
1808 { /* Inline opts#OptionContext#optmap (self) on <self:OptionContext> */
1809 var57 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1810 if (unlikely(var57 == NULL)) {
1811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1812 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1813 fatal_exit(1);
1814 }
1815 var55 = var57;
1816 RET_LABEL56:(void)0;
1817 }
1818 }
1819 {
1820 var58 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var55, var_str);
1821 }
1822 if (var58){
1823 {
1824 { /* Inline opts#OptionContext#optmap (self) on <self:OptionContext> */
1825 var61 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1826 if (unlikely(var61 == NULL)) {
1827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1828 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1829 fatal_exit(1);
1830 }
1831 var59 = var61;
1832 RET_LABEL60:(void)0;
1833 }
1834 }
1835 {
1836 var62 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var59, var_str);
1837 }
1838 var_opt = var62;
1839 {
1840 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
1841 }
1842 {
1843 ((void(*)(val* self, val* p0))(var_opt->class->vft[COLOR_opts__Option__read_param]))(var_opt, var_it); /* read_param on <var_opt:Option>*/
1844 }
1845 } else {
1846 {
1847 var63 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
1848 }
1849 {
1850 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_rest, var63); /* Direct call array#Array#add on <var_rest:Array[String]>*/
1851 }
1852 {
1853 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
1854 }
1855 {
1856 { /* Inline opts#OptionContext#options_before_rest (self) on <self:OptionContext> */
1857 var66 = self->attrs[COLOR_opts__OptionContext___options_before_rest].s; /* _options_before_rest on <self:OptionContext> */
1858 var64 = var66;
1859 RET_LABEL65:(void)0;
1860 }
1861 }
1862 if (var64){
1863 {
1864 var67 = standard__array___Iterator___to_a(var_it);
1865 }
1866 {
1867 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_rest, var67); /* Direct call array#Array#add_all on <var_rest:Array[String]>*/
1868 }
1869 var_parseargs = 0;
1870 } else {
1871 }
1872 }
1873 }
1874 }
1875 } else {
1876 goto BREAK_label68;
1877 }
1878 }
1879 BREAK_label68: (void)0;
1880 {
1881 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
1882 var71 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1883 if (unlikely(var71 == NULL)) {
1884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1885 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
1886 fatal_exit(1);
1887 }
1888 var69 = var71;
1889 RET_LABEL70:(void)0;
1890 }
1891 }
1892 var_72 = var69;
1893 {
1894 var73 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_72);
1895 }
1896 var_74 = var73;
1897 for(;;) {
1898 {
1899 var75 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_74);
1900 }
1901 if (var75){
1902 {
1903 var76 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_74);
1904 }
1905 var_opt77 = var76;
1906 {
1907 { /* Inline opts#Option#mandatory (var_opt77) on <var_opt77:Option> */
1908 var81 = var_opt77->attrs[COLOR_opts__Option___mandatory].s; /* _mandatory on <var_opt77:Option> */
1909 var79 = var81;
1910 RET_LABEL80:(void)0;
1911 }
1912 }
1913 var_82 = var79;
1914 if (var79){
1915 {
1916 { /* Inline opts#Option#read (var_opt77) on <var_opt77:Option> */
1917 var85 = var_opt77->attrs[COLOR_opts__Option___read].s; /* _read on <var_opt77:Option> */
1918 var83 = var85;
1919 RET_LABEL84:(void)0;
1920 }
1921 }
1922 var86 = !var83;
1923 var78 = var86;
1924 } else {
1925 var78 = var_82;
1926 }
1927 if (var78){
1928 {
1929 { /* Inline opts#OptionContext#errors (self) on <self:OptionContext> */
1930 var89 = self->attrs[COLOR_opts__OptionContext___errors].val; /* _errors on <self:OptionContext> */
1931 if (unlikely(var89 == NULL)) {
1932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
1933 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 270);
1934 fatal_exit(1);
1935 }
1936 var87 = var89;
1937 RET_LABEL88:(void)0;
1938 }
1939 }
1940 if (unlikely(varonce90==NULL)) {
1941 var91 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1942 if (likely(varonce92!=NULL)) {
1943 var93 = varonce92;
1944 } else {
1945 var94 = "Mandatory option ";
1946 var95 = standard___standard__NativeString___to_s_with_length(var94, 17l);
1947 var93 = var95;
1948 varonce92 = var93;
1949 }
1950 ((struct instance_standard__NativeArray*)var91)->values[0]=var93;
1951 if (likely(varonce96!=NULL)) {
1952 var97 = varonce96;
1953 } else {
1954 var98 = " not found.";
1955 var99 = standard___standard__NativeString___to_s_with_length(var98, 11l);
1956 var97 = var99;
1957 varonce96 = var97;
1958 }
1959 ((struct instance_standard__NativeArray*)var91)->values[2]=var97;
1960 } else {
1961 var91 = varonce90;
1962 varonce90 = NULL;
1963 }
1964 {
1965 { /* Inline opts#Option#names (var_opt77) on <var_opt77:Option> */
1966 var102 = var_opt77->attrs[COLOR_opts__Option___names].val; /* _names on <var_opt77:Option> */
1967 if (unlikely(var102 == NULL)) {
1968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1969 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
1970 fatal_exit(1);
1971 }
1972 var100 = var102;
1973 RET_LABEL101:(void)0;
1974 }
1975 }
1976 if (likely(varonce103!=NULL)) {
1977 var104 = varonce103;
1978 } else {
1979 var105 = ", ";
1980 var106 = standard___standard__NativeString___to_s_with_length(var105, 2l);
1981 var104 = var106;
1982 varonce103 = var104;
1983 }
1984 {
1985 var107 = standard__string___Collection___join(var100, var104);
1986 }
1987 ((struct instance_standard__NativeArray*)var91)->values[1]=var107;
1988 {
1989 var108 = ((val*(*)(val* self))(var91->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var91); /* native_to_s on <var91:NativeArray[String]>*/
1990 }
1991 varonce90 = var91;
1992 {
1993 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var87, var108); /* Direct call array#Array#add on <var87:Array[String]>*/
1994 }
1995 } else {
1996 }
1997 {
1998 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_74); /* Direct call array#ArrayIterator#next on <var_74:ArrayIterator[Option]>*/
1999 }
2000 } else {
2001 goto BREAK_label109;
2002 }
2003 }
2004 BREAK_label109: (void)0;
2005 {
2006 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_74); /* Direct call array#ArrayIterator#finish on <var_74:ArrayIterator[Option]>*/
2007 }
2008 RET_LABEL:;
2009 }
2010 /* method opts#OptionContext#build for (self: OptionContext) */
2011 void opts___opts__OptionContext___build(val* self) {
2012 val* var /* : Array[Option] */;
2013 val* var2 /* : Array[Option] */;
2014 val* var_ /* var : Array[Option] */;
2015 val* var3 /* : ArrayIterator[nullable Object] */;
2016 val* var_4 /* var : ArrayIterator[Option] */;
2017 short int var5 /* : Bool */;
2018 val* var6 /* : nullable Object */;
2019 val* var_o /* var o: Option */;
2020 val* var7 /* : Array[String] */;
2021 val* var9 /* : Array[String] */;
2022 val* var_10 /* var : Array[String] */;
2023 val* var11 /* : ArrayIterator[nullable Object] */;
2024 val* var_12 /* var : ArrayIterator[String] */;
2025 short int var13 /* : Bool */;
2026 val* var14 /* : nullable Object */;
2027 val* var_n /* var n: String */;
2028 val* var15 /* : HashMap[String, Option] */;
2029 val* var17 /* : HashMap[String, Option] */;
2030 {
2031 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
2032 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
2033 if (unlikely(var2 == NULL)) {
2034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
2035 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
2036 fatal_exit(1);
2037 }
2038 var = var2;
2039 RET_LABEL1:(void)0;
2040 }
2041 }
2042 var_ = var;
2043 {
2044 var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
2045 }
2046 var_4 = var3;
2047 for(;;) {
2048 {
2049 var5 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_4);
2050 }
2051 if (var5){
2052 {
2053 var6 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_4);
2054 }
2055 var_o = var6;
2056 {
2057 { /* Inline opts#Option#names (var_o) on <var_o:Option> */
2058 var9 = var_o->attrs[COLOR_opts__Option___names].val; /* _names on <var_o:Option> */
2059 if (unlikely(var9 == NULL)) {
2060 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2061 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
2062 fatal_exit(1);
2063 }
2064 var7 = var9;
2065 RET_LABEL8:(void)0;
2066 }
2067 }
2068 var_10 = var7;
2069 {
2070 var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_10);
2071 }
2072 var_12 = var11;
2073 for(;;) {
2074 {
2075 var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12);
2076 }
2077 if (var13){
2078 {
2079 var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12);
2080 }
2081 var_n = var14;
2082 {
2083 { /* Inline opts#OptionContext#optmap (self) on <self:OptionContext> */
2084 var17 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2085 if (unlikely(var17 == NULL)) {
2086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2087 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
2088 fatal_exit(1);
2089 }
2090 var15 = var17;
2091 RET_LABEL16:(void)0;
2092 }
2093 }
2094 {
2095 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var15, var_n, var_o); /* Direct call hash_collection#HashMap#[]= on <var15:HashMap[String, Option]>*/
2096 }
2097 {
2098 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12); /* Direct call array#ArrayIterator#next on <var_12:ArrayIterator[String]>*/
2099 }
2100 } else {
2101 goto BREAK_label;
2102 }
2103 }
2104 BREAK_label: (void)0;
2105 {
2106 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_12); /* Direct call array#ArrayIterator#finish on <var_12:ArrayIterator[String]>*/
2107 }
2108 {
2109 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_4); /* Direct call array#ArrayIterator#next on <var_4:ArrayIterator[Option]>*/
2110 }
2111 } else {
2112 goto BREAK_label18;
2113 }
2114 }
2115 BREAK_label18: (void)0;
2116 {
2117 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_4); /* Direct call array#ArrayIterator#finish on <var_4:ArrayIterator[Option]>*/
2118 }
2119 RET_LABEL:;
2120 }
2121 /* method opts#OptionContext#get_errors for (self: OptionContext): Array[String] */
2122 val* opts___opts__OptionContext___get_errors(val* self) {
2123 val* var /* : Array[String] */;
2124 val* var1 /* : Array[String] */;
2125 val* var_errors /* var errors: Array[String] */;
2126 val* var2 /* : Array[Option] */;
2127 val* var4 /* : Array[Option] */;
2128 val* var_ /* var : Array[Option] */;
2129 val* var5 /* : ArrayIterator[nullable Object] */;
2130 val* var_6 /* var : ArrayIterator[Option] */;
2131 short int var7 /* : Bool */;
2132 val* var8 /* : nullable Object */;
2133 val* var_o /* var o: Option */;
2134 val* var9 /* : Array[String] */;
2135 val* var11 /* : Array[String] */;
2136 val* var_12 /* var : Array[String] */;
2137 val* var13 /* : ArrayIterator[nullable Object] */;
2138 val* var_14 /* var : ArrayIterator[String] */;
2139 short int var15 /* : Bool */;
2140 val* var16 /* : nullable Object */;
2141 val* var_e /* var e: String */;
2142 var1 = NEW_standard__Array(&type_standard__Array__standard__String);
2143 {
2144 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[String]>*/
2145 }
2146 var_errors = var1;
2147 {
2148 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_errors, var_errors); /* Direct call array#Array#add_all on <var_errors:Array[String]>*/
2149 }
2150 {
2151 { /* Inline opts#OptionContext#options (self) on <self:OptionContext> */
2152 var4 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
2153 if (unlikely(var4 == NULL)) {
2154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
2155 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
2156 fatal_exit(1);
2157 }
2158 var2 = var4;
2159 RET_LABEL3:(void)0;
2160 }
2161 }
2162 var_ = var2;
2163 {
2164 var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
2165 }
2166 var_6 = var5;
2167 for(;;) {
2168 {
2169 var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6);
2170 }
2171 if (var7){
2172 {
2173 var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6);
2174 }
2175 var_o = var8;
2176 {
2177 { /* Inline opts#Option#errors (var_o) on <var_o:Option> */
2178 var11 = var_o->attrs[COLOR_opts__Option___errors].val; /* _errors on <var_o:Option> */
2179 if (unlikely(var11 == NULL)) {
2180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
2181 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
2182 fatal_exit(1);
2183 }
2184 var9 = var11;
2185 RET_LABEL10:(void)0;
2186 }
2187 }
2188 var_12 = var9;
2189 {
2190 var13 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_12);
2191 }
2192 var_14 = var13;
2193 for(;;) {
2194 {
2195 var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_14);
2196 }
2197 if (var15){
2198 {
2199 var16 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_14);
2200 }
2201 var_e = var16;
2202 {
2203 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_errors, var_e); /* Direct call array#Array#add on <var_errors:Array[String]>*/
2204 }
2205 {
2206 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_14); /* Direct call array#ArrayIterator#next on <var_14:ArrayIterator[String]>*/
2207 }
2208 } else {
2209 goto BREAK_label;
2210 }
2211 }
2212 BREAK_label: (void)0;
2213 {
2214 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_14); /* Direct call array#ArrayIterator#finish on <var_14:ArrayIterator[String]>*/
2215 }
2216 {
2217 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[Option]>*/
2218 }
2219 } else {
2220 goto BREAK_label17;
2221 }
2222 }
2223 BREAK_label17: (void)0;
2224 {
2225 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_6); /* Direct call array#ArrayIterator#finish on <var_6:ArrayIterator[Option]>*/
2226 }
2227 var = var_errors;
2228 goto RET_LABEL;
2229 RET_LABEL:;
2230 return var;
2231 }