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