Merge: doc: fixed some typos and other misc. corrections
[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 if(catchStack.cursor >= 0){
9 longjmp(catchStack.envs[catchStack.cursor], 1);
10 }
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
12 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
13 fatal_exit(1);
14 }
15 var = var1;
16 RET_LABEL:;
17 return var;
18 }
19 /* method opts$Option$names= for (self: Option, Array[String]) */
20 void opts___opts__Option___names_61d(val* self, val* p0) {
21 self->attrs[COLOR_opts__Option___names].val = p0; /* _names on <self:Option> */
22 RET_LABEL:;
23 }
24 /* method opts$Option$helptext for (self: Option): String */
25 val* opts___opts__Option___helptext(val* self) {
26 val* var /* : String */;
27 val* var1 /* : String */;
28 var1 = self->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <self:Option> */
29 if (unlikely(var1 == NULL)) {
30 if(catchStack.cursor >= 0){
31 longjmp(catchStack.envs[catchStack.cursor], 1);
32 }
33 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
34 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
35 fatal_exit(1);
36 }
37 var = var1;
38 RET_LABEL:;
39 return var;
40 }
41 /* method opts$Option$helptext= for (self: Option, String) */
42 void opts___opts__Option___helptext_61d(val* self, val* p0) {
43 self->attrs[COLOR_opts__Option___helptext].val = p0; /* _helptext on <self:Option> */
44 RET_LABEL:;
45 }
46 /* method opts$Option$errors for (self: Option): Array[String] */
47 val* opts___opts__Option___errors(val* self) {
48 val* var /* : Array[String] */;
49 val* var1 /* : Array[String] */;
50 var1 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:Option> */
51 if (unlikely(var1 == NULL)) {
52 if(catchStack.cursor >= 0){
53 longjmp(catchStack.envs[catchStack.cursor], 1);
54 }
55 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
56 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
57 fatal_exit(1);
58 }
59 var = var1;
60 RET_LABEL:;
61 return var;
62 }
63 /* method opts$Option$mandatory for (self: Option): Bool */
64 short int opts___opts__Option___mandatory(val* self) {
65 short int var /* : Bool */;
66 short int var1 /* : Bool */;
67 var1 = self->attrs[COLOR_opts__Option___mandatory].s; /* _mandatory on <self:Option> */
68 var = var1;
69 RET_LABEL:;
70 return var;
71 }
72 /* method opts$Option$hidden for (self: Option): Bool */
73 short int opts___opts__Option___hidden(val* self) {
74 short int var /* : Bool */;
75 short int var1 /* : Bool */;
76 var1 = self->attrs[COLOR_opts__Option___hidden].s; /* _hidden on <self:Option> */
77 var = var1;
78 RET_LABEL:;
79 return var;
80 }
81 /* method opts$Option$hidden= for (self: Option, Bool) */
82 void opts___opts__Option___hidden_61d(val* self, short int p0) {
83 self->attrs[COLOR_opts__Option___hidden].s = p0; /* _hidden on <self:Option> */
84 RET_LABEL:;
85 }
86 /* method opts$Option$read for (self: Option): Bool */
87 short int opts___opts__Option___read(val* self) {
88 short int var /* : Bool */;
89 short int var1 /* : Bool */;
90 var1 = self->attrs[COLOR_opts__Option___read].s; /* _read on <self:Option> */
91 var = var1;
92 RET_LABEL:;
93 return var;
94 }
95 /* method opts$Option$read= for (self: Option, Bool) */
96 void opts___opts__Option___read_61d(val* self, short int p0) {
97 self->attrs[COLOR_opts__Option___read].s = p0; /* _read on <self:Option> */
98 RET_LABEL:;
99 }
100 /* method opts$Option$value for (self: Option): nullable Object */
101 val* opts___opts__Option___value(val* self) {
102 val* var /* : nullable Object */;
103 val* var1 /* : nullable Object */;
104 var1 = self->attrs[COLOR_opts__Option___value].val; /* _value on <self:Option> */
105 var = var1;
106 RET_LABEL:;
107 return var;
108 }
109 /* method opts$Option$value= for (self: Option, nullable Object) */
110 void opts___opts__Option___value_61d(val* self, val* p0) {
111 short int var /* : Bool */;
112 int cltype;
113 int idtype;
114 const struct type* type_struct;
115 short int is_nullable;
116 const char* var_class_name;
117 /* Covariant cast for argument 0 (value) <p0:nullable Object> isa VALUE */
118 /* <p0:nullable Object> isa VALUE */
119 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
120 cltype = type_struct->color;
121 idtype = type_struct->id;
122 is_nullable = type_struct->is_nullable;
123 if(p0 == NULL) {
124 var = is_nullable;
125 } else {
126 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
127 var = 0;
128 } else {
129 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
130 }
131 }
132 if (unlikely(!var)) {
133 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
135 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
136 fatal_exit(1);
137 }
138 self->attrs[COLOR_opts__Option___value].val = p0; /* _value on <self:Option> */
139 RET_LABEL:;
140 }
141 /* method opts$Option$default_value= for (self: Option, nullable Object) */
142 void opts___opts__Option___default_value_61d(val* self, val* p0) {
143 short int var /* : Bool */;
144 int cltype;
145 int idtype;
146 const struct type* type_struct;
147 short int is_nullable;
148 const char* var_class_name;
149 /* Covariant cast for argument 0 (default_value) <p0:nullable Object> isa VALUE */
150 /* <p0:nullable Object> isa VALUE */
151 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
152 cltype = type_struct->color;
153 idtype = type_struct->id;
154 is_nullable = type_struct->is_nullable;
155 if(p0 == NULL) {
156 var = is_nullable;
157 } else {
158 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
159 var = 0;
160 } else {
161 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
162 }
163 }
164 if (unlikely(!var)) {
165 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
167 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 43);
168 fatal_exit(1);
169 }
170 self->attrs[COLOR_opts__Option___default_value].val = p0; /* _default_value on <self:Option> */
171 RET_LABEL:;
172 }
173 /* method opts$Option$init for (self: Option, String, nullable Object, nullable Array[String]) */
174 void opts___opts__Option___init(val* self, val* p0, val* p1, val* p2) {
175 short int var /* : Bool */;
176 int cltype;
177 int idtype;
178 const struct type* type_struct;
179 short int is_nullable;
180 const char* var_class_name;
181 val* var_help /* var help: String */;
182 val* var_default /* var default: nullable Object */;
183 val* var_names /* var names: nullable Array[String] */;
184 /* Covariant cast for argument 1 (default) <p1:nullable Object> isa VALUE */
185 /* <p1:nullable Object> isa VALUE */
186 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
187 cltype = type_struct->color;
188 idtype = type_struct->id;
189 is_nullable = type_struct->is_nullable;
190 if(p1 == NULL) {
191 var = is_nullable;
192 } else {
193 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
194 var = 0;
195 } else {
196 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
197 }
198 }
199 if (unlikely(!var)) {
200 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
201 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
202 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 46);
203 fatal_exit(1);
204 }
205 {
206 { /* Inline kernel$Object$init (self) on <self:Option> */
207 RET_LABEL1:(void)0;
208 }
209 }
210 var_help = p0;
211 var_default = p1;
212 var_names = p2;
213 {
214 opts___opts__Option___init_opt(self, var_help, var_default, var_names); /* Direct call opts$Option$init_opt on <self:Option>*/
215 }
216 RET_LABEL:;
217 }
218 /* method opts$Option$init_opt for (self: Option, String, nullable Object, nullable Array[String]) */
219 void opts___opts__Option___init_opt(val* self, val* p0, val* p1, val* p2) {
220 short int var /* : Bool */;
221 int cltype;
222 int idtype;
223 const struct type* type_struct;
224 short int is_nullable;
225 const char* var_class_name;
226 val* var_help /* var help: String */;
227 val* var_default /* var default: nullable Object */;
228 val* var_names /* var names: nullable Array[String] */;
229 short int var1 /* : Bool */;
230 short int var2 /* : Bool */;
231 val* var3 /* : Array[String] */;
232 val* var5 /* : Array[nullable Object] */;
233 short int var9 /* : Bool */;
234 int cltype10;
235 int idtype11;
236 const struct type* type_struct12;
237 short int is_nullable13;
238 const char* var_class_name14;
239 short int var16 /* : Bool */;
240 int cltype17;
241 int idtype18;
242 const struct type* type_struct19;
243 short int is_nullable20;
244 const char* var_class_name21;
245 /* Covariant cast for argument 1 (default) <p1:nullable Object> isa VALUE */
246 /* <p1:nullable Object> isa VALUE */
247 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
248 cltype = type_struct->color;
249 idtype = type_struct->id;
250 is_nullable = type_struct->is_nullable;
251 if(p1 == NULL) {
252 var = is_nullable;
253 } else {
254 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
255 var = 0;
256 } else {
257 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
258 }
259 }
260 if (unlikely(!var)) {
261 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
262 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
263 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 51);
264 fatal_exit(1);
265 }
266 var_help = p0;
267 var_default = p1;
268 var_names = p2;
269 if (var_names == NULL) {
270 var1 = 1; /* is null */
271 } else {
272 var1 = 0; /* arg is null but recv is not */
273 }
274 if (0) {
275 var2 = core___core__Array___core__kernel__Object___61d_61d(var_names, ((val*)NULL));
276 var1 = var2;
277 }
278 if (var1){
279 var3 = NEW_core__Array(&type_core__Array__core__String);
280 {
281 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[String]>*/
282 }
283 {
284 { /* Inline opts$Option$names= (self,var3) on <self:Option> */
285 self->attrs[COLOR_opts__Option___names].val = var3; /* _names on <self:Option> */
286 RET_LABEL4:(void)0;
287 }
288 }
289 } else {
290 {
291 var5 = core__array___Collection___to_a(var_names);
292 }
293 {
294 { /* Inline opts$Option$names= (self,var5) on <self:Option> */
295 self->attrs[COLOR_opts__Option___names].val = var5; /* _names on <self:Option> */
296 RET_LABEL6:(void)0;
297 }
298 }
299 }
300 {
301 { /* Inline opts$Option$helptext= (self,var_help) on <self:Option> */
302 self->attrs[COLOR_opts__Option___helptext].val = var_help; /* _helptext on <self:Option> */
303 RET_LABEL7:(void)0;
304 }
305 }
306 {
307 { /* Inline opts$Option$default_value= (self,var_default) on <self:Option> */
308 /* Covariant cast for argument 0 (default_value) <var_default:nullable Object> isa VALUE */
309 /* <var_default:nullable Object> isa VALUE */
310 type_struct12 = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
311 cltype10 = type_struct12->color;
312 idtype11 = type_struct12->id;
313 is_nullable13 = type_struct12->is_nullable;
314 if(var_default == NULL) {
315 var9 = is_nullable13;
316 } else {
317 if(cltype10 >= (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->table_size) {
318 var9 = 0;
319 } else {
320 var9 = (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->type_table[cltype10] == idtype11;
321 }
322 }
323 if (unlikely(!var9)) {
324 var_class_name14 = var_default == NULL ? "null" : (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->name;
325 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name14);
326 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 43);
327 fatal_exit(1);
328 }
329 self->attrs[COLOR_opts__Option___default_value].val = var_default; /* _default_value on <self:Option> */
330 RET_LABEL8:(void)0;
331 }
332 }
333 {
334 { /* Inline opts$Option$value= (self,var_default) on <self:Option> */
335 /* Covariant cast for argument 0 (value) <var_default:nullable Object> isa VALUE */
336 /* <var_default:nullable Object> isa VALUE */
337 type_struct19 = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
338 cltype17 = type_struct19->color;
339 idtype18 = type_struct19->id;
340 is_nullable20 = type_struct19->is_nullable;
341 if(var_default == NULL) {
342 var16 = is_nullable20;
343 } else {
344 if(cltype17 >= (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->table_size) {
345 var16 = 0;
346 } else {
347 var16 = (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->type_table[cltype17] == idtype18;
348 }
349 }
350 if (unlikely(!var16)) {
351 var_class_name21 = var_default == NULL ? "null" : (((long)var_default&3)?type_info[((long)var_default&3)]:var_default->type)->name;
352 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name21);
353 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
354 fatal_exit(1);
355 }
356 self->attrs[COLOR_opts__Option___value].val = var_default; /* _value on <self:Option> */
357 RET_LABEL15:(void)0;
358 }
359 }
360 RET_LABEL:;
361 }
362 /* method opts$Option$to_s for (self: Option): String */
363 val* opts___opts__Option___core__abstract_text__Object__to_s(val* self) {
364 val* var /* : String */;
365 val* var1 /* : String */;
366 {
367 var1 = opts___opts__Option___pretty(self, 2l);
368 }
369 var = var1;
370 goto RET_LABEL;
371 RET_LABEL:;
372 return var;
373 }
374 /* method opts$Option$pretty for (self: Option, Int): String */
375 val* opts___opts__Option___pretty(val* self, long p0) {
376 val* var /* : String */;
377 long var_off /* var off: Int */;
378 val* var1 /* : FlatBuffer */;
379 static val* varonce;
380 val* var2 /* : String */;
381 char* var3 /* : CString */;
382 val* var4 /* : String */;
383 val* var5 /* : nullable Int */;
384 val* var6 /* : nullable Int */;
385 val* var7 /* : nullable Bool */;
386 val* var8 /* : nullable Bool */;
387 val* var_text /* var text: FlatBuffer */;
388 val* var9 /* : Array[String] */;
389 val* var11 /* : Array[String] */;
390 static val* varonce12;
391 val* var13 /* : String */;
392 char* var14 /* : CString */;
393 val* var15 /* : String */;
394 val* var16 /* : nullable Int */;
395 val* var17 /* : nullable Int */;
396 val* var18 /* : nullable Bool */;
397 val* var19 /* : nullable Bool */;
398 val* var20 /* : String */;
399 static val* varonce21;
400 val* var22 /* : String */;
401 char* var23 /* : CString */;
402 val* var24 /* : String */;
403 val* var25 /* : nullable Int */;
404 val* var26 /* : nullable Int */;
405 val* var27 /* : nullable Bool */;
406 val* var28 /* : nullable Bool */;
407 long var29 /* : Int */;
408 long var31 /* : Int */;
409 long var32 /* : Int */;
410 short int var34 /* : Bool */;
411 int cltype;
412 int idtype;
413 const char* var_class_name;
414 long var35 /* : Int */;
415 long var_rest /* var rest: Int */;
416 short int var36 /* : Bool */;
417 short int var38 /* : Bool */;
418 int cltype39;
419 int idtype40;
420 const char* var_class_name41;
421 short int var42 /* : Bool */;
422 static val* varonce43;
423 val* var44 /* : String */;
424 char* var45 /* : CString */;
425 val* var46 /* : String */;
426 val* var47 /* : nullable Int */;
427 val* var48 /* : nullable Int */;
428 val* var49 /* : nullable Bool */;
429 val* var50 /* : nullable Bool */;
430 val* var51 /* : Text */;
431 val* var52 /* : String */;
432 val* var54 /* : String */;
433 val* var55 /* : String */;
434 var_off = p0;
435 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
436 if (likely(varonce!=NULL)) {
437 var2 = varonce;
438 } else {
439 var3 = " ";
440 var5 = (val*)(2l<<2|1);
441 var6 = (val*)(2l<<2|1);
442 var7 = (val*)((long)(0)<<2|3);
443 var8 = (val*)((long)(0)<<2|3);
444 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
445 var2 = var4;
446 varonce = var2;
447 }
448 {
449 core___core__FlatBuffer___from(var1, var2); /* Direct call flat$FlatBuffer$from on <var1:FlatBuffer>*/
450 }
451 var_text = var1;
452 {
453 { /* Inline opts$Option$names (self) on <self:Option> */
454 var11 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:Option> */
455 if (unlikely(var11 == NULL)) {
456 if(catchStack.cursor >= 0){
457 longjmp(catchStack.envs[catchStack.cursor], 1);
458 }
459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
460 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
461 fatal_exit(1);
462 }
463 var9 = var11;
464 RET_LABEL10:(void)0;
465 }
466 }
467 if (likely(varonce12!=NULL)) {
468 var13 = varonce12;
469 } else {
470 var14 = ", ";
471 var16 = (val*)(2l<<2|1);
472 var17 = (val*)(2l<<2|1);
473 var18 = (val*)((long)(0)<<2|3);
474 var19 = (val*)((long)(0)<<2|3);
475 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
476 var13 = var15;
477 varonce12 = var13;
478 }
479 {
480 var20 = core__abstract_text___Collection___join(var9, var13, ((val*)NULL));
481 }
482 {
483 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_text, var20); /* Direct call flat$FlatBuffer$append on <var_text:FlatBuffer>*/
484 }
485 if (likely(varonce21!=NULL)) {
486 var22 = varonce21;
487 } else {
488 var23 = " ";
489 var25 = (val*)(2l<<2|1);
490 var26 = (val*)(2l<<2|1);
491 var27 = (val*)((long)(0)<<2|3);
492 var28 = (val*)((long)(0)<<2|3);
493 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
494 var22 = var24;
495 varonce21 = var22;
496 }
497 {
498 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_text, var22); /* Direct call flat$FlatBuffer$append on <var_text:FlatBuffer>*/
499 }
500 {
501 { /* Inline abstract_text$FlatText$length (var_text) on <var_text:FlatBuffer> */
502 var31 = var_text->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_text:FlatBuffer> */
503 var29 = var31;
504 RET_LABEL30:(void)0;
505 }
506 }
507 {
508 { /* Inline kernel$Int$- (var_off,var29) on <var_off:Int> */
509 /* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
510 /* <var29:Int> isa OTHER */
511 var34 = 1; /* easy <var29:Int> isa OTHER*/
512 if (unlikely(!var34)) {
513 var_class_name = type_core__Int.name;
514 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
515 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
516 fatal_exit(1);
517 }
518 var35 = var_off - var29;
519 var32 = var35;
520 goto RET_LABEL33;
521 RET_LABEL33:(void)0;
522 }
523 }
524 var_rest = var32;
525 {
526 { /* Inline kernel$Int$> (var_rest,0l) on <var_rest:Int> */
527 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
528 /* <0l:Int> isa OTHER */
529 var38 = 1; /* easy <0l:Int> isa OTHER*/
530 if (unlikely(!var38)) {
531 var_class_name41 = type_core__Int.name;
532 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
533 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
534 fatal_exit(1);
535 }
536 var42 = var_rest > 0l;
537 var36 = var42;
538 goto RET_LABEL37;
539 RET_LABEL37:(void)0;
540 }
541 }
542 if (var36){
543 if (likely(varonce43!=NULL)) {
544 var44 = varonce43;
545 } else {
546 var45 = " ";
547 var47 = (val*)(1l<<2|1);
548 var48 = (val*)(1l<<2|1);
549 var49 = (val*)((long)(0)<<2|3);
550 var50 = (val*)((long)(0)<<2|3);
551 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
552 var44 = var46;
553 varonce43 = var44;
554 }
555 {
556 var51 = ((val*(*)(val* self, long p0))(var44->class->vft[COLOR_core__abstract_text__Text___42d]))(var44, var_rest); /* * on <var44:String>*/
557 }
558 {
559 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_text, var51); /* Direct call flat$FlatBuffer$append on <var_text:FlatBuffer>*/
560 }
561 } else {
562 }
563 {
564 { /* Inline opts$Option$helptext (self) on <self:Option> */
565 var54 = self->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <self:Option> */
566 if (unlikely(var54 == NULL)) {
567 if(catchStack.cursor >= 0){
568 longjmp(catchStack.envs[catchStack.cursor], 1);
569 }
570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
571 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
572 fatal_exit(1);
573 }
574 var52 = var54;
575 RET_LABEL53:(void)0;
576 }
577 }
578 {
579 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_text, var52); /* Direct call flat$FlatBuffer$append on <var_text:FlatBuffer>*/
580 }
581 {
582 var55 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_text);
583 }
584 var = var55;
585 goto RET_LABEL;
586 RET_LABEL:;
587 return var;
588 }
589 /* method opts$Option$read_param for (self: Option, OptionContext, Iterator[String]) */
590 void opts___opts__Option___read_param(val* self, val* p0, val* p1) {
591 val* var_opts /* var opts: OptionContext */;
592 val* var_it /* var it: Iterator[String] */;
593 var_opts = p0;
594 var_it = p1;
595 {
596 { /* Inline opts$Option$read= (self,1) on <self:Option> */
597 self->attrs[COLOR_opts__Option___read].s = 1; /* _read on <self:Option> */
598 RET_LABEL1:(void)0;
599 }
600 }
601 RET_LABEL:;
602 }
603 /* method opts$OptionBool$init for (self: OptionBool, String, Array[String]) */
604 void opts___opts__OptionBool___init(val* self, val* p0, val* p1) {
605 val* var_help /* var help: String */;
606 val* var_names /* var names: Array[String] */;
607 val* var /* : nullable Object */;
608 var_help = p0;
609 var_names = p1;
610 {
611 var = (val*)((long)(0)<<2|3);
612 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts$Option$init on <self:OptionBool>*/
613 }
614 RET_LABEL:;
615 }
616 /* method opts$OptionBool$read_param for (self: OptionBool, OptionContext, Iterator[String]) */
617 void opts___opts__OptionBool___Option__read_param(val* self, val* p0, val* p1) {
618 val* var_opts /* var opts: OptionContext */;
619 val* var_it /* var it: Iterator[String] */;
620 short int var /* : Bool */;
621 int cltype;
622 int idtype;
623 const struct type* type_struct;
624 const char* var_class_name;
625 val* var2 /* : nullable Object */;
626 var_opts = p0;
627 var_it = p1;
628 {
629 ((void(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_opts___opts__OptionBool___Option__read_param]))(self, p0, p1); /* read_param on <self:OptionBool>*/
630 }
631 {
632 { /* Inline opts$Option$value= (self,1) on <self:OptionBool> */
633 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
634 /* <1:Bool> isa VALUE */
635 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
636 cltype = type_struct->color;
637 idtype = type_struct->id;
638 if(cltype >= (&type_core__Bool)->table_size) {
639 var = 0;
640 } else {
641 var = (&type_core__Bool)->type_table[cltype] == idtype;
642 }
643 if (unlikely(!var)) {
644 var_class_name = type_core__Bool.name;
645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
646 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
647 fatal_exit(1);
648 }
649 var2 = (val*)((long)(1)<<2|3);
650 self->attrs[COLOR_opts__Option___value].val = var2; /* _value on <self:OptionBool> */
651 RET_LABEL1:(void)0;
652 }
653 }
654 RET_LABEL:;
655 }
656 /* method opts$OptionCount$init for (self: OptionCount, String, Array[String]) */
657 void opts___opts__OptionCount___init(val* self, val* p0, val* p1) {
658 val* var_help /* var help: String */;
659 val* var_names /* var names: Array[String] */;
660 val* var /* : nullable Object */;
661 var_help = p0;
662 var_names = p1;
663 {
664 var = (val*)(0l<<2|1);
665 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts$Option$init on <self:OptionCount>*/
666 }
667 RET_LABEL:;
668 }
669 /* method opts$OptionCount$read_param for (self: OptionCount, OptionContext, Iterator[String]) */
670 void opts___opts__OptionCount___Option__read_param(val* self, val* p0, val* p1) {
671 val* var_opts /* var opts: OptionContext */;
672 val* var_it /* var it: Iterator[String] */;
673 val* var_ /* var : OptionCount */;
674 val* var /* : nullable Object */;
675 val* var2 /* : nullable Object */;
676 long var3 /* : Int */;
677 short int var5 /* : Bool */;
678 int cltype;
679 int idtype;
680 const char* var_class_name;
681 long var6 /* : Int */;
682 long var7 /* : Int */;
683 short int var9 /* : Bool */;
684 int cltype10;
685 int idtype11;
686 const struct type* type_struct;
687 const char* var_class_name12;
688 val* var13 /* : nullable Object */;
689 var_opts = p0;
690 var_it = p1;
691 {
692 ((void(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_opts___opts__OptionCount___Option__read_param]))(self, p0, p1); /* read_param on <self:OptionCount>*/
693 }
694 var_ = self;
695 {
696 { /* Inline opts$Option$value (var_) on <var_:OptionCount> */
697 var2 = var_->attrs[COLOR_opts__Option___value].val; /* _value on <var_:OptionCount> */
698 var = var2;
699 RET_LABEL1:(void)0;
700 }
701 }
702 {
703 { /* Inline kernel$Int$+ (var,1l) on <var:nullable Object(Int)> */
704 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
705 /* <1l:Int> isa OTHER */
706 var5 = 1; /* easy <1l:Int> isa OTHER*/
707 if (unlikely(!var5)) {
708 var_class_name = type_core__Int.name;
709 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
710 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
711 fatal_exit(1);
712 }
713 var6 = (long)(var)>>2;
714 var7 = var6 + 1l;
715 var3 = var7;
716 goto RET_LABEL4;
717 RET_LABEL4:(void)0;
718 }
719 }
720 {
721 { /* Inline opts$Option$value= (var_,var3) on <var_:OptionCount> */
722 /* Covariant cast for argument 0 (value) <var3:Int> isa VALUE */
723 /* <var3:Int> isa VALUE */
724 type_struct = var_->type->resolution_table->types[COLOR_opts__Option__VALUE];
725 cltype10 = type_struct->color;
726 idtype11 = type_struct->id;
727 if(cltype10 >= (&type_core__Int)->table_size) {
728 var9 = 0;
729 } else {
730 var9 = (&type_core__Int)->type_table[cltype10] == idtype11;
731 }
732 if (unlikely(!var9)) {
733 var_class_name12 = type_core__Int.name;
734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name12);
735 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
736 fatal_exit(1);
737 }
738 var13 = (val*)(var3<<2|1);
739 var_->attrs[COLOR_opts__Option___value].val = var13; /* _value on <var_:OptionCount> */
740 RET_LABEL8:(void)0;
741 }
742 }
743 RET_LABEL:;
744 }
745 /* method opts$OptionParameter$parameter_mandatory for (self: OptionParameter): Bool */
746 short int opts___opts__OptionParameter___parameter_mandatory(val* self) {
747 short int var /* : Bool */;
748 short int var1 /* : Bool */;
749 var1 = self->attrs[COLOR_opts__OptionParameter___parameter_mandatory].s; /* _parameter_mandatory on <self:OptionParameter> */
750 var = var1;
751 RET_LABEL:;
752 return var;
753 }
754 /* method opts$OptionParameter$read_param for (self: OptionParameter, OptionContext, Iterator[String]) */
755 void opts___opts__OptionParameter___Option__read_param(val* self, val* p0, val* p1) {
756 val* var_opts /* var opts: OptionContext */;
757 val* var_it /* var it: Iterator[String] */;
758 short int var /* : Bool */;
759 short int var_ok /* var ok: Bool */;
760 short int var1 /* : Bool */;
761 short int var2 /* : Bool */;
762 short int var3 /* : Bool */;
763 short int var_ /* var : Bool */;
764 short int var4 /* : Bool */;
765 short int var6 /* : Bool */;
766 short int var7 /* : Bool */;
767 short int var_8 /* var : Bool */;
768 val* var9 /* : nullable Object */;
769 short int var10 /* : Bool */;
770 short int var11 /* : Bool */;
771 short int var_12 /* var : Bool */;
772 val* var13 /* : nullable Object */;
773 val* var14 /* : SequenceRead[Char] */;
774 val* var15 /* : nullable Object */;
775 short int var16 /* : Bool */;
776 short int var18 /* : Bool */;
777 uint32_t var19 /* : Char */;
778 val* var20 /* : Array[Option] */;
779 val* var22 /* : Array[Option] */;
780 val* var_23 /* var : Array[Option] */;
781 val* var24 /* : IndexedIterator[nullable Object] */;
782 val* var_25 /* var : IndexedIterator[Option] */;
783 short int var26 /* : Bool */;
784 val* var27 /* : nullable Object */;
785 val* var_opt /* var opt: Option */;
786 val* var28 /* : Array[String] */;
787 val* var30 /* : Array[String] */;
788 val* var31 /* : nullable Object */;
789 short int var32 /* : Bool */;
790 val* var33 /* : nullable Object */;
791 val* var34 /* : nullable Object */;
792 short int var36 /* : Bool */;
793 int cltype;
794 int idtype;
795 const struct type* type_struct;
796 short int is_nullable;
797 const char* var_class_name;
798 val* var37 /* : Array[String] */;
799 val* var39 /* : Array[String] */;
800 val* var40 /* : NativeArray[String] */;
801 static val* varonce;
802 static val* varonce41;
803 val* var42 /* : String */;
804 char* var43 /* : CString */;
805 val* var44 /* : String */;
806 val* var45 /* : nullable Int */;
807 val* var46 /* : nullable Int */;
808 val* var47 /* : nullable Bool */;
809 val* var48 /* : nullable Bool */;
810 static val* varonce49;
811 val* var50 /* : String */;
812 char* var51 /* : CString */;
813 val* var52 /* : String */;
814 val* var53 /* : nullable Int */;
815 val* var54 /* : nullable Int */;
816 val* var55 /* : nullable Bool */;
817 val* var56 /* : nullable Bool */;
818 val* var57 /* : Array[String] */;
819 val* var59 /* : Array[String] */;
820 val* var60 /* : nullable Object */;
821 val* var61 /* : String */;
822 var_opts = p0;
823 var_it = p1;
824 {
825 ((void(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_opts___opts__OptionParameter___Option__read_param]))(self, p0, p1); /* read_param on <self:OptionParameter>*/
826 }
827 {
828 var = ((short int(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_it); /* is_ok on <var_it:Iterator[String]>*/
829 }
830 var_ok = var;
831 var_ = var_ok;
832 if (var_ok){
833 {
834 { /* Inline opts$OptionParameter$parameter_mandatory (self) on <self:OptionParameter> */
835 var6 = self->attrs[COLOR_opts__OptionParameter___parameter_mandatory].s; /* _parameter_mandatory on <self:OptionParameter> */
836 var4 = var6;
837 RET_LABEL5:(void)0;
838 }
839 }
840 var7 = !var4;
841 var3 = var7;
842 } else {
843 var3 = var_;
844 }
845 var_8 = var3;
846 if (var3){
847 {
848 var9 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
849 }
850 {
851 var10 = ((short int(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var9); /* is_empty on <var9:nullable Object(String)>*/
852 }
853 var11 = !var10;
854 var2 = var11;
855 } else {
856 var2 = var_8;
857 }
858 var_12 = var2;
859 if (var2){
860 {
861 var13 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
862 }
863 {
864 var14 = ((val*(*)(val* self))(var13->class->vft[COLOR_core__abstract_text__Text__chars]))(var13); /* chars on <var13:nullable Object(String)>*/
865 }
866 {
867 var15 = ((val*(*)(val* self))((((long)var14&3)?class_info[((long)var14&3)]:var14->class)->vft[COLOR_core__abstract_collection__Collection__first]))(var14); /* first on <var14:SequenceRead[Char]>*/
868 }
869 {
870 { /* Inline kernel$Char$== (var15,'-') on <var15:nullable Object(Char)> */
871 var19 = (uint32_t)((long)(var15)>>2);
872 var18 = var19 == '-';
873 var16 = var18;
874 goto RET_LABEL17;
875 RET_LABEL17:(void)0;
876 }
877 }
878 var1 = var16;
879 } else {
880 var1 = var_12;
881 }
882 if (var1){
883 {
884 { /* Inline opts$OptionContext$options (var_opts) on <var_opts:OptionContext> */
885 var22 = var_opts->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var_opts:OptionContext> */
886 if (unlikely(var22 == NULL)) {
887 if(catchStack.cursor >= 0){
888 longjmp(catchStack.envs[catchStack.cursor], 1);
889 }
890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
891 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
892 fatal_exit(1);
893 }
894 var20 = var22;
895 RET_LABEL21:(void)0;
896 }
897 }
898 var_23 = var20;
899 {
900 var24 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_23);
901 }
902 var_25 = var24;
903 for(;;) {
904 {
905 var26 = ((short int(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_25); /* is_ok on <var_25:IndexedIterator[Option]>*/
906 }
907 if (var26){
908 } else {
909 goto BREAK_label;
910 }
911 {
912 var27 = ((val*(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_25); /* item on <var_25:IndexedIterator[Option]>*/
913 }
914 var_opt = var27;
915 {
916 { /* Inline opts$Option$names (var_opt) on <var_opt:Option> */
917 var30 = var_opt->attrs[COLOR_opts__Option___names].val; /* _names on <var_opt:Option> */
918 if (unlikely(var30 == NULL)) {
919 if(catchStack.cursor >= 0){
920 longjmp(catchStack.envs[catchStack.cursor], 1);
921 }
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
923 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
924 fatal_exit(1);
925 }
926 var28 = var30;
927 RET_LABEL29:(void)0;
928 }
929 }
930 {
931 var31 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
932 }
933 {
934 var32 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var28, var31);
935 }
936 if (var32){
937 var_ok = 0;
938 goto BREAK_label;
939 } else {
940 }
941 {
942 ((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_25); /* next on <var_25:IndexedIterator[Option]>*/
943 }
944 }
945 BREAK_label: (void)0;
946 {
947 ((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_25); /* finish on <var_25:IndexedIterator[Option]>*/
948 }
949 } else {
950 }
951 if (var_ok){
952 {
953 var33 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
954 }
955 {
956 var34 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_opts__OptionParameter__convert]))(self, var33); /* convert on <self:OptionParameter>*/
957 }
958 {
959 { /* Inline opts$Option$value= (self,var34) on <self:OptionParameter> */
960 /* Covariant cast for argument 0 (value) <var34:nullable Object> isa VALUE */
961 /* <var34:nullable Object> isa VALUE */
962 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
963 cltype = type_struct->color;
964 idtype = type_struct->id;
965 is_nullable = type_struct->is_nullable;
966 if(var34 == NULL) {
967 var36 = is_nullable;
968 } else {
969 if(cltype >= (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->table_size) {
970 var36 = 0;
971 } else {
972 var36 = (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->type_table[cltype] == idtype;
973 }
974 }
975 if (unlikely(!var36)) {
976 var_class_name = var34 == NULL ? "null" : (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->name;
977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
978 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
979 fatal_exit(1);
980 }
981 self->attrs[COLOR_opts__Option___value].val = var34; /* _value on <self:OptionParameter> */
982 RET_LABEL35:(void)0;
983 }
984 }
985 {
986 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
987 }
988 } else {
989 {
990 { /* Inline opts$Option$errors (self) on <self:OptionParameter> */
991 var39 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:OptionParameter> */
992 if (unlikely(var39 == NULL)) {
993 if(catchStack.cursor >= 0){
994 longjmp(catchStack.envs[catchStack.cursor], 1);
995 }
996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
997 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
998 fatal_exit(1);
999 }
1000 var37 = var39;
1001 RET_LABEL38:(void)0;
1002 }
1003 }
1004 if (unlikely(varonce==NULL)) {
1005 var40 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1006 if (likely(varonce41!=NULL)) {
1007 var42 = varonce41;
1008 } else {
1009 var43 = "Parameter expected for option ";
1010 var45 = (val*)(30l<<2|1);
1011 var46 = (val*)(30l<<2|1);
1012 var47 = (val*)((long)(0)<<2|3);
1013 var48 = (val*)((long)(0)<<2|3);
1014 var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
1015 var42 = var44;
1016 varonce41 = var42;
1017 }
1018 ((struct instance_core__NativeArray*)var40)->values[0]=var42;
1019 if (likely(varonce49!=NULL)) {
1020 var50 = varonce49;
1021 } else {
1022 var51 = ".";
1023 var53 = (val*)(1l<<2|1);
1024 var54 = (val*)(1l<<2|1);
1025 var55 = (val*)((long)(0)<<2|3);
1026 var56 = (val*)((long)(0)<<2|3);
1027 var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
1028 var50 = var52;
1029 varonce49 = var50;
1030 }
1031 ((struct instance_core__NativeArray*)var40)->values[2]=var50;
1032 } else {
1033 var40 = varonce;
1034 varonce = NULL;
1035 }
1036 {
1037 { /* Inline opts$Option$names (self) on <self:OptionParameter> */
1038 var59 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:OptionParameter> */
1039 if (unlikely(var59 == NULL)) {
1040 if(catchStack.cursor >= 0){
1041 longjmp(catchStack.envs[catchStack.cursor], 1);
1042 }
1043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1044 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
1045 fatal_exit(1);
1046 }
1047 var57 = var59;
1048 RET_LABEL58:(void)0;
1049 }
1050 }
1051 {
1052 var60 = core___core__SequenceRead___Collection__first(var57);
1053 }
1054 ((struct instance_core__NativeArray*)var40)->values[1]=var60;
1055 {
1056 var61 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
1057 }
1058 varonce = var40;
1059 {
1060 core___core__Array___core__abstract_collection__SimpleCollection__add(var37, var61); /* Direct call array$Array$add on <var37:Array[String]>*/
1061 }
1062 }
1063 RET_LABEL:;
1064 }
1065 /* method opts$OptionString$init for (self: OptionString, String, Array[String]) */
1066 void opts___opts__OptionString___init(val* self, val* p0, val* p1) {
1067 val* var_help /* var help: String */;
1068 val* var_names /* var names: Array[String] */;
1069 short int var /* : Bool */;
1070 int cltype;
1071 int idtype;
1072 const struct type* type_struct;
1073 short int is_nullable;
1074 const char* var_class_name;
1075 var_help = p0;
1076 var_names = p1;
1077 /* <((val*)NULL):null> isa VALUE */
1078 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1079 cltype = type_struct->color;
1080 idtype = type_struct->id;
1081 is_nullable = type_struct->is_nullable;
1082 if(((val*)NULL) == NULL) {
1083 var = is_nullable;
1084 } else {
1085 if(cltype >= ((val*)NULL)->type->table_size) {
1086 var = 0;
1087 } else {
1088 var = ((val*)NULL)->type->type_table[cltype] == idtype;
1089 }
1090 }
1091 if (unlikely(!var)) {
1092 var_class_name = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name;
1093 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1094 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 184);
1095 fatal_exit(1);
1096 }
1097 {
1098 opts___opts__Option___init(self, var_help, ((val*)NULL), var_names); /* Direct call opts$Option$init on <self:OptionString>*/
1099 }
1100 RET_LABEL:;
1101 }
1102 /* method opts$OptionString$convert for (self: OptionString, String): nullable String */
1103 val* opts___opts__OptionString___OptionParameter__convert(val* self, val* p0) {
1104 val* var /* : nullable String */;
1105 val* var_str /* var str: String */;
1106 short int var1 /* : Bool */;
1107 int cltype;
1108 int idtype;
1109 const struct type* type_struct;
1110 const char* var_class_name;
1111 var_str = p0;
1112 /* <var_str:String> isa VALUE */
1113 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1114 cltype = type_struct->color;
1115 idtype = type_struct->id;
1116 if(cltype >= var_str->type->table_size) {
1117 var1 = 0;
1118 } else {
1119 var1 = var_str->type->type_table[cltype] == idtype;
1120 }
1121 if (unlikely(!var1)) {
1122 var_class_name = var_str == NULL ? "null" : var_str->type->name;
1123 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1124 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 186);
1125 fatal_exit(1);
1126 }
1127 var = var_str;
1128 goto RET_LABEL;
1129 RET_LABEL:;
1130 return var;
1131 }
1132 /* method opts$OptionInt$init for (self: OptionInt, String, Int, Array[String]) */
1133 void opts___opts__OptionInt___init(val* self, val* p0, long p1, val* p2) {
1134 val* var_help /* var help: String */;
1135 long var_default /* var default: Int */;
1136 val* var_names /* var names: Array[String] */;
1137 val* var /* : nullable Object */;
1138 var_help = p0;
1139 var_default = p1;
1140 var_names = p2;
1141 {
1142 var = (val*)(var_default<<2|1);
1143 opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts$Option$init on <self:OptionInt>*/
1144 }
1145 RET_LABEL:;
1146 }
1147 /* method opts$OptionInt$convert for (self: OptionInt, String): Int */
1148 long opts___opts__OptionInt___OptionParameter__convert(val* self, val* p0) {
1149 long var /* : Int */;
1150 val* var_str /* var str: String */;
1151 short int var1 /* : Bool */;
1152 long var2 /* : Int */;
1153 val* var3 /* : Array[String] */;
1154 val* var5 /* : Array[String] */;
1155 val* var6 /* : NativeArray[String] */;
1156 static val* varonce;
1157 static val* varonce7;
1158 val* var8 /* : String */;
1159 char* var9 /* : CString */;
1160 val* var10 /* : String */;
1161 val* var11 /* : nullable Int */;
1162 val* var12 /* : nullable Int */;
1163 val* var13 /* : nullable Bool */;
1164 val* var14 /* : nullable Bool */;
1165 static val* varonce15;
1166 val* var16 /* : String */;
1167 char* var17 /* : CString */;
1168 val* var18 /* : String */;
1169 val* var19 /* : nullable Int */;
1170 val* var20 /* : nullable Int */;
1171 val* var21 /* : nullable Bool */;
1172 val* var22 /* : nullable Bool */;
1173 val* var23 /* : Array[String] */;
1174 val* var25 /* : Array[String] */;
1175 static val* varonce26;
1176 val* var27 /* : String */;
1177 char* var28 /* : CString */;
1178 val* var29 /* : String */;
1179 val* var30 /* : nullable Int */;
1180 val* var31 /* : nullable Int */;
1181 val* var32 /* : nullable Bool */;
1182 val* var33 /* : nullable Bool */;
1183 val* var34 /* : String */;
1184 val* var35 /* : String */;
1185 var_str = p0;
1186 {
1187 var1 = core__fixed_ints_text___Text___is_int(var_str);
1188 }
1189 if (var1){
1190 {
1191 var2 = core__fixed_ints_text___Text___to_i(var_str);
1192 }
1193 var = var2;
1194 goto RET_LABEL;
1195 } else {
1196 }
1197 {
1198 { /* Inline opts$Option$errors (self) on <self:OptionInt> */
1199 var5 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:OptionInt> */
1200 if (unlikely(var5 == NULL)) {
1201 if(catchStack.cursor >= 0){
1202 longjmp(catchStack.envs[catchStack.cursor], 1);
1203 }
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
1206 fatal_exit(1);
1207 }
1208 var3 = var5;
1209 RET_LABEL4:(void)0;
1210 }
1211 }
1212 if (unlikely(varonce==NULL)) {
1213 var6 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1214 if (likely(varonce7!=NULL)) {
1215 var8 = varonce7;
1216 } else {
1217 var9 = "Expected an integer for option ";
1218 var11 = (val*)(31l<<2|1);
1219 var12 = (val*)(31l<<2|1);
1220 var13 = (val*)((long)(0)<<2|3);
1221 var14 = (val*)((long)(0)<<2|3);
1222 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
1223 var8 = var10;
1224 varonce7 = var8;
1225 }
1226 ((struct instance_core__NativeArray*)var6)->values[0]=var8;
1227 if (likely(varonce15!=NULL)) {
1228 var16 = varonce15;
1229 } else {
1230 var17 = ".";
1231 var19 = (val*)(1l<<2|1);
1232 var20 = (val*)(1l<<2|1);
1233 var21 = (val*)((long)(0)<<2|3);
1234 var22 = (val*)((long)(0)<<2|3);
1235 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
1236 var16 = var18;
1237 varonce15 = var16;
1238 }
1239 ((struct instance_core__NativeArray*)var6)->values[2]=var16;
1240 } else {
1241 var6 = varonce;
1242 varonce = NULL;
1243 }
1244 {
1245 { /* Inline opts$Option$names (self) on <self:OptionInt> */
1246 var25 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:OptionInt> */
1247 if (unlikely(var25 == NULL)) {
1248 if(catchStack.cursor >= 0){
1249 longjmp(catchStack.envs[catchStack.cursor], 1);
1250 }
1251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1252 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
1253 fatal_exit(1);
1254 }
1255 var23 = var25;
1256 RET_LABEL24:(void)0;
1257 }
1258 }
1259 if (likely(varonce26!=NULL)) {
1260 var27 = varonce26;
1261 } else {
1262 var28 = ", ";
1263 var30 = (val*)(2l<<2|1);
1264 var31 = (val*)(2l<<2|1);
1265 var32 = (val*)((long)(0)<<2|3);
1266 var33 = (val*)((long)(0)<<2|3);
1267 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
1268 var27 = var29;
1269 varonce26 = var27;
1270 }
1271 {
1272 var34 = core__abstract_text___Collection___join(var23, var27, ((val*)NULL));
1273 }
1274 ((struct instance_core__NativeArray*)var6)->values[1]=var34;
1275 {
1276 var35 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
1277 }
1278 varonce = var6;
1279 {
1280 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, var35); /* Direct call array$Array$add on <var3:Array[String]>*/
1281 }
1282 var = 0l;
1283 goto RET_LABEL;
1284 RET_LABEL:;
1285 return var;
1286 }
1287 /* method opts$OptionInt$convert for (self: OptionParameter, String): nullable Object */
1288 val* VIRTUAL_opts___opts__OptionInt___OptionParameter__convert(val* self, val* p0) {
1289 val* var /* : nullable Object */;
1290 long var1 /* : Int */;
1291 val* var2 /* : nullable Object */;
1292 var1 = opts___opts__OptionInt___OptionParameter__convert(self, p0);
1293 var2 = (val*)(var1<<2|1);
1294 var = var2;
1295 RET_LABEL:;
1296 return var;
1297 }
1298 /* method opts$OptionArray$init for (self: OptionArray, String, Array[String]) */
1299 void opts___opts__OptionArray___init(val* self, val* p0, val* p1) {
1300 val* var_help /* var help: String */;
1301 val* var_names /* var names: Array[String] */;
1302 val* var /* : Array[String] */;
1303 val* var2 /* : Array[String] */;
1304 val* var4 /* : Array[String] */;
1305 short int var5 /* : Bool */;
1306 int cltype;
1307 int idtype;
1308 const struct type* type_struct;
1309 const char* var_class_name;
1310 var_help = p0;
1311 var_names = p1;
1312 var = NEW_core__Array(&type_core__Array__core__String);
1313 {
1314 core___core__Array___core__kernel__Object__init(var); /* Direct call array$Array$init on <var:Array[String]>*/
1315 }
1316 {
1317 { /* Inline opts$OptionArray$values= (self,var) on <self:OptionArray> */
1318 self->attrs[COLOR_opts__OptionArray___values].val = var; /* _values on <self:OptionArray> */
1319 RET_LABEL1:(void)0;
1320 }
1321 }
1322 {
1323 { /* Inline opts$OptionArray$values (self) on <self:OptionArray> */
1324 var4 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1325 if (unlikely(var4 == NULL)) {
1326 if(catchStack.cursor >= 0){
1327 longjmp(catchStack.envs[catchStack.cursor], 1);
1328 }
1329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1330 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1331 fatal_exit(1);
1332 }
1333 var2 = var4;
1334 RET_LABEL3:(void)0;
1335 }
1336 }
1337 /* <var2:Array[String]> isa VALUE */
1338 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1339 cltype = type_struct->color;
1340 idtype = type_struct->id;
1341 if(cltype >= var2->type->table_size) {
1342 var5 = 0;
1343 } else {
1344 var5 = var2->type->type_table[cltype] == idtype;
1345 }
1346 if (unlikely(!var5)) {
1347 var_class_name = var2 == NULL ? "null" : var2->type->name;
1348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1349 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 270);
1350 fatal_exit(1);
1351 }
1352 {
1353 opts___opts__Option___init(self, var_help, var2, var_names); /* Direct call opts$Option$init on <self:OptionArray>*/
1354 }
1355 RET_LABEL:;
1356 }
1357 /* method opts$OptionArray$values for (self: OptionArray): Array[String] */
1358 val* opts___opts__OptionArray___values(val* self) {
1359 val* var /* : Array[String] */;
1360 val* var1 /* : Array[String] */;
1361 var1 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1362 if (unlikely(var1 == NULL)) {
1363 if(catchStack.cursor >= 0){
1364 longjmp(catchStack.envs[catchStack.cursor], 1);
1365 }
1366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1367 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1368 fatal_exit(1);
1369 }
1370 var = var1;
1371 RET_LABEL:;
1372 return var;
1373 }
1374 /* method opts$OptionArray$values= for (self: OptionArray, Array[String]) */
1375 void opts___opts__OptionArray___values_61d(val* self, val* p0) {
1376 self->attrs[COLOR_opts__OptionArray___values].val = p0; /* _values on <self:OptionArray> */
1377 RET_LABEL:;
1378 }
1379 /* method opts$OptionArray$convert for (self: OptionArray, String): Array[String] */
1380 val* opts___opts__OptionArray___OptionParameter__convert(val* self, val* p0) {
1381 val* var /* : Array[String] */;
1382 val* var_str /* var str: String */;
1383 val* var1 /* : Array[String] */;
1384 val* var3 /* : Array[String] */;
1385 val* var4 /* : Array[String] */;
1386 val* var6 /* : Array[String] */;
1387 short int var7 /* : Bool */;
1388 int cltype;
1389 int idtype;
1390 const struct type* type_struct;
1391 const char* var_class_name;
1392 var_str = p0;
1393 {
1394 { /* Inline opts$OptionArray$values (self) on <self:OptionArray> */
1395 var3 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1396 if (unlikely(var3 == NULL)) {
1397 if(catchStack.cursor >= 0){
1398 longjmp(catchStack.envs[catchStack.cursor], 1);
1399 }
1400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1401 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1402 fatal_exit(1);
1403 }
1404 var1 = var3;
1405 RET_LABEL2:(void)0;
1406 }
1407 }
1408 {
1409 core___core__Array___core__abstract_collection__SimpleCollection__add(var1, var_str); /* Direct call array$Array$add on <var1:Array[String]>*/
1410 }
1411 {
1412 { /* Inline opts$OptionArray$values (self) on <self:OptionArray> */
1413 var6 = self->attrs[COLOR_opts__OptionArray___values].val; /* _values on <self:OptionArray> */
1414 if (unlikely(var6 == NULL)) {
1415 if(catchStack.cursor >= 0){
1416 longjmp(catchStack.envs[catchStack.cursor], 1);
1417 }
1418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
1419 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 273);
1420 fatal_exit(1);
1421 }
1422 var4 = var6;
1423 RET_LABEL5:(void)0;
1424 }
1425 }
1426 /* <var4:Array[String]> isa VALUE */
1427 type_struct = self->type->resolution_table->types[COLOR_opts__Option__VALUE];
1428 cltype = type_struct->color;
1429 idtype = type_struct->id;
1430 if(cltype >= var4->type->table_size) {
1431 var7 = 0;
1432 } else {
1433 var7 = var4->type->type_table[cltype] == idtype;
1434 }
1435 if (unlikely(!var7)) {
1436 var_class_name = var4 == NULL ? "null" : var4->type->name;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
1438 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 277);
1439 fatal_exit(1);
1440 }
1441 var = var4;
1442 goto RET_LABEL;
1443 RET_LABEL:;
1444 return var;
1445 }
1446 /* method opts$OptionContext$options for (self: OptionContext): Array[Option] */
1447 val* opts___opts__OptionContext___options(val* self) {
1448 val* var /* : Array[Option] */;
1449 val* var1 /* : Array[Option] */;
1450 var1 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1451 if (unlikely(var1 == NULL)) {
1452 if(catchStack.cursor >= 0){
1453 longjmp(catchStack.envs[catchStack.cursor], 1);
1454 }
1455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1456 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
1457 fatal_exit(1);
1458 }
1459 var = var1;
1460 RET_LABEL:;
1461 return var;
1462 }
1463 /* method opts$OptionContext$rest for (self: OptionContext): Array[String] */
1464 val* opts___opts__OptionContext___rest(val* self) {
1465 val* var /* : Array[String] */;
1466 val* var1 /* : Array[String] */;
1467 var1 = self->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <self:OptionContext> */
1468 if (unlikely(var1 == NULL)) {
1469 if(catchStack.cursor >= 0){
1470 longjmp(catchStack.envs[catchStack.cursor], 1);
1471 }
1472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
1473 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 286);
1474 fatal_exit(1);
1475 }
1476 var = var1;
1477 RET_LABEL:;
1478 return var;
1479 }
1480 /* method opts$OptionContext$context_errors for (self: OptionContext): Array[String] */
1481 val* opts___opts__OptionContext___context_errors(val* self) {
1482 val* var /* : Array[String] */;
1483 val* var1 /* : Array[String] */;
1484 var1 = self->attrs[COLOR_opts__OptionContext___context_errors].val; /* _context_errors on <self:OptionContext> */
1485 if (unlikely(var1 == NULL)) {
1486 if(catchStack.cursor >= 0){
1487 longjmp(catchStack.envs[catchStack.cursor], 1);
1488 }
1489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _context_errors");
1490 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 289);
1491 fatal_exit(1);
1492 }
1493 var = var1;
1494 RET_LABEL:;
1495 return var;
1496 }
1497 /* method opts$OptionContext$optmap for (self: OptionContext): HashMap[String, Option] */
1498 val* opts___opts__OptionContext___optmap(val* self) {
1499 val* var /* : HashMap[String, Option] */;
1500 val* var1 /* : HashMap[String, Option] */;
1501 var1 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
1502 if (unlikely(var1 == NULL)) {
1503 if(catchStack.cursor >= 0){
1504 longjmp(catchStack.envs[catchStack.cursor], 1);
1505 }
1506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
1507 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
1508 fatal_exit(1);
1509 }
1510 var = var1;
1511 RET_LABEL:;
1512 return var;
1513 }
1514 /* method opts$OptionContext$add_option for (self: OptionContext, Array[Option]) */
1515 void opts___opts__OptionContext___add_option(val* self, val* p0) {
1516 val* var_opts /* var opts: Array[Option] */;
1517 val* var /* : Array[Option] */;
1518 val* var2 /* : Array[Option] */;
1519 var_opts = p0;
1520 {
1521 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
1522 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1523 if (unlikely(var2 == NULL)) {
1524 if(catchStack.cursor >= 0){
1525 longjmp(catchStack.envs[catchStack.cursor], 1);
1526 }
1527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1528 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
1529 fatal_exit(1);
1530 }
1531 var = var2;
1532 RET_LABEL1:(void)0;
1533 }
1534 }
1535 {
1536 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var, var_opts); /* Direct call array$Array$add_all on <var:Array[Option]>*/
1537 }
1538 RET_LABEL:;
1539 }
1540 /* method opts$OptionContext$usage for (self: OptionContext) */
1541 void opts___opts__OptionContext___usage(val* self) {
1542 long var_lmax /* var lmax: Int */;
1543 val* var /* : Array[Option] */;
1544 val* var2 /* : Array[Option] */;
1545 val* var_ /* var : Array[Option] */;
1546 val* var3 /* : IndexedIterator[nullable Object] */;
1547 val* var_4 /* var : IndexedIterator[Option] */;
1548 short int var5 /* : Bool */;
1549 val* var6 /* : nullable Object */;
1550 val* var_i /* var i: Option */;
1551 long var_l /* var l: Int */;
1552 val* var7 /* : Array[String] */;
1553 val* var9 /* : Array[String] */;
1554 val* var_10 /* var : Array[String] */;
1555 val* var11 /* : IndexedIterator[nullable Object] */;
1556 val* var_12 /* var : IndexedIterator[String] */;
1557 short int var13 /* : Bool */;
1558 val* var15 /* : nullable Object */;
1559 val* var_n /* var n: String */;
1560 long var16 /* : Int */;
1561 long var17 /* : Int */;
1562 short int var19 /* : Bool */;
1563 int cltype;
1564 int idtype;
1565 const char* var_class_name;
1566 long var20 /* : Int */;
1567 long var21 /* : Int */;
1568 short int var23 /* : Bool */;
1569 int cltype24;
1570 int idtype25;
1571 const char* var_class_name26;
1572 long var27 /* : Int */;
1573 short int var28 /* : Bool */;
1574 short int var30 /* : Bool */;
1575 int cltype31;
1576 int idtype32;
1577 const char* var_class_name33;
1578 short int var34 /* : Bool */;
1579 val* var35 /* : Array[Option] */;
1580 val* var37 /* : Array[Option] */;
1581 val* var_38 /* var : Array[Option] */;
1582 val* var39 /* : IndexedIterator[nullable Object] */;
1583 val* var_40 /* var : IndexedIterator[Option] */;
1584 short int var41 /* : Bool */;
1585 val* var43 /* : nullable Object */;
1586 val* var_i44 /* var i: Option */;
1587 short int var45 /* : Bool */;
1588 short int var47 /* : Bool */;
1589 short int var48 /* : Bool */;
1590 val* var49 /* : Sys */;
1591 val* var50 /* : String */;
1592 var_lmax = 1l;
1593 {
1594 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
1595 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1596 if (unlikely(var2 == NULL)) {
1597 if(catchStack.cursor >= 0){
1598 longjmp(catchStack.envs[catchStack.cursor], 1);
1599 }
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
1602 fatal_exit(1);
1603 }
1604 var = var2;
1605 RET_LABEL1:(void)0;
1606 }
1607 }
1608 var_ = var;
1609 {
1610 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1611 }
1612 var_4 = var3;
1613 for(;;) {
1614 {
1615 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:IndexedIterator[Option]>*/
1616 }
1617 if (var5){
1618 } else {
1619 goto BREAK_label;
1620 }
1621 {
1622 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:IndexedIterator[Option]>*/
1623 }
1624 var_i = var6;
1625 var_l = 3l;
1626 {
1627 { /* Inline opts$Option$names (var_i) on <var_i:Option> */
1628 var9 = var_i->attrs[COLOR_opts__Option___names].val; /* _names on <var_i:Option> */
1629 if (unlikely(var9 == NULL)) {
1630 if(catchStack.cursor >= 0){
1631 longjmp(catchStack.envs[catchStack.cursor], 1);
1632 }
1633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1634 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
1635 fatal_exit(1);
1636 }
1637 var7 = var9;
1638 RET_LABEL8:(void)0;
1639 }
1640 }
1641 var_10 = var7;
1642 {
1643 var11 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_10);
1644 }
1645 var_12 = var11;
1646 for(;;) {
1647 {
1648 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:IndexedIterator[String]>*/
1649 }
1650 if (var13){
1651 } else {
1652 goto BREAK_label14;
1653 }
1654 {
1655 var15 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:IndexedIterator[String]>*/
1656 }
1657 var_n = var15;
1658 {
1659 var16 = ((long(*)(val* self))(var_n->class->vft[COLOR_core__abstract_text__Text__length]))(var_n); /* length on <var_n:String>*/
1660 }
1661 {
1662 { /* Inline kernel$Int$+ (var16,2l) on <var16:Int> */
1663 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1664 /* <2l:Int> isa OTHER */
1665 var19 = 1; /* easy <2l:Int> isa OTHER*/
1666 if (unlikely(!var19)) {
1667 var_class_name = type_core__Int.name;
1668 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1669 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1670 fatal_exit(1);
1671 }
1672 var20 = var16 + 2l;
1673 var17 = var20;
1674 goto RET_LABEL18;
1675 RET_LABEL18:(void)0;
1676 }
1677 }
1678 {
1679 { /* Inline kernel$Int$+ (var_l,var17) on <var_l:Int> */
1680 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
1681 /* <var17:Int> isa OTHER */
1682 var23 = 1; /* easy <var17:Int> isa OTHER*/
1683 if (unlikely(!var23)) {
1684 var_class_name26 = type_core__Int.name;
1685 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
1686 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1687 fatal_exit(1);
1688 }
1689 var27 = var_l + var17;
1690 var21 = var27;
1691 goto RET_LABEL22;
1692 RET_LABEL22:(void)0;
1693 }
1694 }
1695 var_l = var21;
1696 {
1697 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:IndexedIterator[String]>*/
1698 }
1699 }
1700 BREAK_label14: (void)0;
1701 {
1702 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:IndexedIterator[String]>*/
1703 }
1704 {
1705 { /* Inline kernel$Int$< (var_lmax,var_l) on <var_lmax:Int> */
1706 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1707 /* <var_l:Int> isa OTHER */
1708 var30 = 1; /* easy <var_l:Int> isa OTHER*/
1709 if (unlikely(!var30)) {
1710 var_class_name33 = type_core__Int.name;
1711 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
1712 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1713 fatal_exit(1);
1714 }
1715 var34 = var_lmax < var_l;
1716 var28 = var34;
1717 goto RET_LABEL29;
1718 RET_LABEL29:(void)0;
1719 }
1720 }
1721 if (var28){
1722 var_lmax = var_l;
1723 } else {
1724 }
1725 {
1726 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:IndexedIterator[Option]>*/
1727 }
1728 }
1729 BREAK_label: (void)0;
1730 {
1731 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:IndexedIterator[Option]>*/
1732 }
1733 {
1734 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
1735 var37 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
1736 if (unlikely(var37 == NULL)) {
1737 if(catchStack.cursor >= 0){
1738 longjmp(catchStack.envs[catchStack.cursor], 1);
1739 }
1740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
1741 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
1742 fatal_exit(1);
1743 }
1744 var35 = var37;
1745 RET_LABEL36:(void)0;
1746 }
1747 }
1748 var_38 = var35;
1749 {
1750 var39 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_38);
1751 }
1752 var_40 = var39;
1753 for(;;) {
1754 {
1755 var41 = ((short int(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_40); /* is_ok on <var_40:IndexedIterator[Option]>*/
1756 }
1757 if (var41){
1758 } else {
1759 goto BREAK_label42;
1760 }
1761 {
1762 var43 = ((val*(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_40); /* item on <var_40:IndexedIterator[Option]>*/
1763 }
1764 var_i44 = var43;
1765 {
1766 { /* Inline opts$Option$hidden (var_i44) on <var_i44:Option> */
1767 var47 = var_i44->attrs[COLOR_opts__Option___hidden].s; /* _hidden on <var_i44:Option> */
1768 var45 = var47;
1769 RET_LABEL46:(void)0;
1770 }
1771 }
1772 var48 = !var45;
1773 if (var48){
1774 var49 = glob_sys;
1775 {
1776 var50 = opts___opts__Option___pretty(var_i44, var_lmax);
1777 }
1778 {
1779 core__file___Sys___print(var49, var50); /* Direct call file$Sys$print on <var49:Sys>*/
1780 }
1781 } else {
1782 }
1783 {
1784 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_40); /* next on <var_40:IndexedIterator[Option]>*/
1785 }
1786 }
1787 BREAK_label42: (void)0;
1788 {
1789 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_40); /* finish on <var_40:IndexedIterator[Option]>*/
1790 }
1791 RET_LABEL:;
1792 }
1793 /* method opts$OptionContext$parse for (self: OptionContext, nullable Collection[String]) */
1794 void opts___opts__OptionContext___parse(val* self, val* p0) {
1795 val* var_argv /* var argv: nullable Collection[String] */;
1796 short int var /* : Bool */;
1797 short int var1 /* : Bool */;
1798 val* var2 /* : Sys */;
1799 val* var3 /* : Sequence[String] */;
1800 val* var4 /* : Iterator[nullable Object] */;
1801 val* var_it /* var it: Iterator[String] */;
1802 var_argv = p0;
1803 if (var_argv == NULL) {
1804 var = 1; /* is null */
1805 } else {
1806 var = 0; /* arg is null but recv is not */
1807 }
1808 if (0) {
1809 var1 = ((short int(*)(val* self, val* p0))((((long)var_argv&3)?class_info[((long)var_argv&3)]:var_argv->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var_argv, ((val*)NULL)); /* == on <var_argv:nullable Collection[String]>*/
1810 var = var1;
1811 }
1812 if (var){
1813 var2 = glob_sys;
1814 {
1815 var3 = core__abstract_text___Sys___args(var2);
1816 }
1817 var_argv = var3;
1818 } else {
1819 }
1820 {
1821 var4 = ((val*(*)(val* self))((((long)var_argv&3)?class_info[((long)var_argv&3)]:var_argv->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_argv); /* iterator on <var_argv:nullable Collection[String](Collection[String])>*/
1822 }
1823 var_it = var4;
1824 {
1825 opts___opts__OptionContext___parse_intern(self, var_it); /* Direct call opts$OptionContext$parse_intern on <self:OptionContext>*/
1826 }
1827 RET_LABEL:;
1828 }
1829 /* method opts$OptionContext$options_before_rest for (self: OptionContext): Bool */
1830 short int opts___opts__OptionContext___options_before_rest(val* self) {
1831 short int var /* : Bool */;
1832 short int var1 /* : Bool */;
1833 var1 = self->attrs[COLOR_opts__OptionContext___options_before_rest].s; /* _options_before_rest on <self:OptionContext> */
1834 var = var1;
1835 RET_LABEL:;
1836 return var;
1837 }
1838 /* method opts$OptionContext$parse_intern for (self: OptionContext, Iterator[String]) */
1839 void opts___opts__OptionContext___parse_intern(val* self, val* p0) {
1840 val* var_it /* var it: Iterator[String] */;
1841 short int var_parseargs /* var parseargs: Bool */;
1842 val* var /* : Array[String] */;
1843 val* var2 /* : Array[String] */;
1844 val* var_rest /* var rest: Array[String] */;
1845 short int var3 /* : Bool */;
1846 short int var_ /* var : Bool */;
1847 short int var4 /* : Bool */;
1848 val* var5 /* : nullable Object */;
1849 val* var_str /* var str: String */;
1850 static val* varonce;
1851 val* var6 /* : String */;
1852 char* var7 /* : CString */;
1853 val* var8 /* : String */;
1854 val* var9 /* : nullable Int */;
1855 val* var10 /* : nullable Int */;
1856 val* var11 /* : nullable Bool */;
1857 val* var12 /* : nullable Bool */;
1858 short int var13 /* : Bool */;
1859 val* var14 /* : Array[nullable Object] */;
1860 short int var15 /* : Bool */;
1861 val* var16 /* : SequenceRead[Char] */;
1862 val* var17 /* : nullable Object */;
1863 long var18 /* : Int */;
1864 short int var19 /* : Bool */;
1865 short int var21 /* : Bool */;
1866 short int var_22 /* var : Bool */;
1867 long var23 /* : Int */;
1868 short int var24 /* : Bool */;
1869 short int var26 /* : Bool */;
1870 int cltype;
1871 int idtype;
1872 const char* var_class_name;
1873 short int var27 /* : Bool */;
1874 short int var_next_called /* var next_called: Bool */;
1875 long var_i /* var i: Int */;
1876 long var28 /* : Int */;
1877 long var_29 /* var : Int */;
1878 short int var30 /* : Bool */;
1879 short int var32 /* : Bool */;
1880 int cltype33;
1881 int idtype34;
1882 const char* var_class_name35;
1883 short int var36 /* : Bool */;
1884 static val* varonce37;
1885 val* var38 /* : String */;
1886 char* var39 /* : CString */;
1887 val* var40 /* : String */;
1888 val* var41 /* : nullable Int */;
1889 val* var42 /* : nullable Int */;
1890 val* var43 /* : nullable Bool */;
1891 val* var44 /* : nullable Bool */;
1892 val* var45 /* : SequenceRead[Char] */;
1893 val* var46 /* : nullable Object */;
1894 val* var47 /* : String */;
1895 uint32_t var48 /* : Char */;
1896 val* var49 /* : Text */;
1897 val* var_short_opt /* var short_opt: String */;
1898 val* var50 /* : HashMap[String, Option] */;
1899 val* var52 /* : HashMap[String, Option] */;
1900 short int var53 /* : Bool */;
1901 val* var54 /* : HashMap[String, Option] */;
1902 val* var56 /* : HashMap[String, Option] */;
1903 val* var57 /* : nullable Object */;
1904 val* var_option /* var option: Option */;
1905 short int var58 /* : Bool */;
1906 int cltype59;
1907 int idtype60;
1908 long var61 /* : Int */;
1909 short int var62 /* : Bool */;
1910 val* var63 /* : HashMap[String, Option] */;
1911 val* var65 /* : HashMap[String, Option] */;
1912 short int var66 /* : Bool */;
1913 val* var67 /* : HashMap[String, Option] */;
1914 val* var69 /* : HashMap[String, Option] */;
1915 val* var70 /* : nullable Object */;
1916 val* var_opt /* var opt: Option */;
1917 val* var71 /* : nullable Object */;
1918 short int var72 /* : Bool */;
1919 short int var74 /* : Bool */;
1920 val* var75 /* : Array[nullable Object] */;
1921 val* var77 /* : Array[Option] */;
1922 val* var79 /* : Array[Option] */;
1923 val* var_80 /* var : Array[Option] */;
1924 val* var81 /* : IndexedIterator[nullable Object] */;
1925 val* var_82 /* var : IndexedIterator[Option] */;
1926 short int var83 /* : Bool */;
1927 val* var85 /* : nullable Object */;
1928 val* var_opt86 /* var opt: Option */;
1929 short int var87 /* : Bool */;
1930 short int var88 /* : Bool */;
1931 short int var90 /* : Bool */;
1932 short int var_91 /* var : Bool */;
1933 short int var92 /* : Bool */;
1934 short int var94 /* : Bool */;
1935 short int var95 /* : Bool */;
1936 val* var96 /* : Array[String] */;
1937 val* var98 /* : Array[String] */;
1938 val* var100 /* : NativeArray[String] */;
1939 static val* varonce99;
1940 static val* varonce101;
1941 val* var102 /* : String */;
1942 char* var103 /* : CString */;
1943 val* var104 /* : String */;
1944 val* var105 /* : nullable Int */;
1945 val* var106 /* : nullable Int */;
1946 val* var107 /* : nullable Bool */;
1947 val* var108 /* : nullable Bool */;
1948 static val* varonce109;
1949 val* var110 /* : String */;
1950 char* var111 /* : CString */;
1951 val* var112 /* : String */;
1952 val* var113 /* : nullable Int */;
1953 val* var114 /* : nullable Int */;
1954 val* var115 /* : nullable Bool */;
1955 val* var116 /* : nullable Bool */;
1956 val* var117 /* : Array[String] */;
1957 val* var119 /* : Array[String] */;
1958 static val* varonce120;
1959 val* var121 /* : String */;
1960 char* var122 /* : CString */;
1961 val* var123 /* : String */;
1962 val* var124 /* : nullable Int */;
1963 val* var125 /* : nullable Int */;
1964 val* var126 /* : nullable Bool */;
1965 val* var127 /* : nullable Bool */;
1966 val* var128 /* : String */;
1967 val* var129 /* : String */;
1968 var_it = p0;
1969 var_parseargs = 1;
1970 {
1971 opts___opts__OptionContext___build(self); /* Direct call opts$OptionContext$build on <self:OptionContext>*/
1972 }
1973 {
1974 { /* Inline opts$OptionContext$rest (self) on <self:OptionContext> */
1975 var2 = self->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <self:OptionContext> */
1976 if (unlikely(var2 == NULL)) {
1977 if(catchStack.cursor >= 0){
1978 longjmp(catchStack.envs[catchStack.cursor], 1);
1979 }
1980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
1981 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 286);
1982 fatal_exit(1);
1983 }
1984 var = var2;
1985 RET_LABEL1:(void)0;
1986 }
1987 }
1988 var_rest = var;
1989 for(;;) {
1990 var_ = var_parseargs;
1991 if (var_parseargs){
1992 {
1993 var4 = ((short int(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_it); /* is_ok on <var_it:Iterator[String]>*/
1994 }
1995 var3 = var4;
1996 } else {
1997 var3 = var_;
1998 }
1999 if (var3){
2000 {
2001 var5 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
2002 }
2003 var_str = var5;
2004 if (likely(varonce!=NULL)) {
2005 var6 = varonce;
2006 } else {
2007 var7 = "--";
2008 var9 = (val*)(2l<<2|1);
2009 var10 = (val*)(2l<<2|1);
2010 var11 = (val*)((long)(0)<<2|3);
2011 var12 = (val*)((long)(0)<<2|3);
2012 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
2013 var6 = var8;
2014 varonce = var6;
2015 }
2016 {
2017 var13 = ((short int(*)(val* self, val* p0))(var_str->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_str, var6); /* == on <var_str:String>*/
2018 }
2019 if (var13){
2020 {
2021 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
2022 }
2023 {
2024 var14 = core__array___Iterator___to_a(var_it);
2025 }
2026 {
2027 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_rest, var14); /* Direct call array$Array$add_all on <var_rest:Array[String]>*/
2028 }
2029 var_parseargs = 0;
2030 } else {
2031 {
2032 var16 = ((val*(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__chars]))(var_str); /* chars on <var_str:String>*/
2033 }
2034 {
2035 var17 = (val*)((long)('-')<<2|2);
2036 var18 = ((long(*)(val* self, val* p0))((((long)var16&3)?class_info[((long)var16&3)]:var16->class)->vft[COLOR_core__abstract_collection__SequenceRead__last_index_of]))(var16, var17); /* last_index_of on <var16:SequenceRead[Char]>*/
2037 }
2038 {
2039 { /* Inline kernel$Int$== (var18,0l) on <var18:Int> */
2040 var21 = var18 == 0l;
2041 var19 = var21;
2042 goto RET_LABEL20;
2043 RET_LABEL20:(void)0;
2044 }
2045 }
2046 var_22 = var19;
2047 if (var19){
2048 {
2049 var23 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
2050 }
2051 {
2052 { /* Inline kernel$Int$> (var23,2l) on <var23:Int> */
2053 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2054 /* <2l:Int> isa OTHER */
2055 var26 = 1; /* easy <2l:Int> isa OTHER*/
2056 if (unlikely(!var26)) {
2057 var_class_name = type_core__Int.name;
2058 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2059 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2060 fatal_exit(1);
2061 }
2062 var27 = var23 > 2l;
2063 var24 = var27;
2064 goto RET_LABEL25;
2065 RET_LABEL25:(void)0;
2066 }
2067 }
2068 var15 = var24;
2069 } else {
2070 var15 = var_22;
2071 }
2072 if (var15){
2073 var_next_called = 0;
2074 var_i = 1l;
2075 {
2076 var28 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
2077 }
2078 var_29 = var28;
2079 for(;;) {
2080 {
2081 { /* Inline kernel$Int$< (var_i,var_29) on <var_i:Int> */
2082 /* Covariant cast for argument 0 (i) <var_29:Int> isa OTHER */
2083 /* <var_29:Int> isa OTHER */
2084 var32 = 1; /* easy <var_29:Int> isa OTHER*/
2085 if (unlikely(!var32)) {
2086 var_class_name35 = type_core__Int.name;
2087 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
2088 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2089 fatal_exit(1);
2090 }
2091 var36 = var_i < var_29;
2092 var30 = var36;
2093 goto RET_LABEL31;
2094 RET_LABEL31:(void)0;
2095 }
2096 }
2097 if (var30){
2098 } else {
2099 goto BREAK_label;
2100 }
2101 if (likely(varonce37!=NULL)) {
2102 var38 = varonce37;
2103 } else {
2104 var39 = "-";
2105 var41 = (val*)(1l<<2|1);
2106 var42 = (val*)(1l<<2|1);
2107 var43 = (val*)((long)(0)<<2|3);
2108 var44 = (val*)((long)(0)<<2|3);
2109 var40 = core__flat___CString___to_s_unsafe(var39, var41, var42, var43, var44);
2110 var38 = var40;
2111 varonce37 = var38;
2112 }
2113 {
2114 var45 = ((val*(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__chars]))(var_str); /* chars on <var_str:String>*/
2115 }
2116 {
2117 var46 = ((val*(*)(val* self, long p0))((((long)var45&3)?class_info[((long)var45&3)]:var45->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var45, var_i); /* [] on <var45:SequenceRead[Char]>*/
2118 }
2119 {
2120 var48 = (uint32_t)((long)(var46)>>2);
2121 var47 = core__abstract_text___Char___Object__to_s(var48);
2122 }
2123 {
2124 var49 = ((val*(*)(val* self, val* p0))(var38->class->vft[COLOR_core__abstract_text__Text___43d]))(var38, var47); /* + on <var38:String>*/
2125 }
2126 var_short_opt = var49;
2127 {
2128 { /* Inline opts$OptionContext$optmap (self) on <self:OptionContext> */
2129 var52 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2130 if (unlikely(var52 == NULL)) {
2131 if(catchStack.cursor >= 0){
2132 longjmp(catchStack.envs[catchStack.cursor], 1);
2133 }
2134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2135 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
2136 fatal_exit(1);
2137 }
2138 var50 = var52;
2139 RET_LABEL51:(void)0;
2140 }
2141 }
2142 {
2143 var53 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var50, var_short_opt);
2144 }
2145 if (var53){
2146 {
2147 { /* Inline opts$OptionContext$optmap (self) on <self:OptionContext> */
2148 var56 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2149 if (unlikely(var56 == NULL)) {
2150 if(catchStack.cursor >= 0){
2151 longjmp(catchStack.envs[catchStack.cursor], 1);
2152 }
2153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2154 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
2155 fatal_exit(1);
2156 }
2157 var54 = var56;
2158 RET_LABEL55:(void)0;
2159 }
2160 }
2161 {
2162 var57 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var54, var_short_opt);
2163 }
2164 var_option = var57;
2165 /* <var_option:Option> isa OptionParameter */
2166 cltype59 = type_opts__OptionParameter.color;
2167 idtype60 = type_opts__OptionParameter.id;
2168 if(cltype59 >= var_option->type->table_size) {
2169 var58 = 0;
2170 } else {
2171 var58 = var_option->type->type_table[cltype59] == idtype60;
2172 }
2173 if (var58){
2174 {
2175 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
2176 }
2177 var_next_called = 1;
2178 } else {
2179 }
2180 {
2181 ((void(*)(val* self, val* p0, val* p1))(var_option->class->vft[COLOR_opts__Option__read_param]))(var_option, self, var_it); /* read_param on <var_option:Option>*/
2182 }
2183 } else {
2184 }
2185 {
2186 var61 = core___core__Int___Discrete__successor(var_i, 1l);
2187 }
2188 var_i = var61;
2189 }
2190 BREAK_label: (void)0;
2191 var62 = !var_next_called;
2192 if (var62){
2193 {
2194 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
2195 }
2196 } else {
2197 }
2198 } else {
2199 {
2200 { /* Inline opts$OptionContext$optmap (self) on <self:OptionContext> */
2201 var65 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2202 if (unlikely(var65 == NULL)) {
2203 if(catchStack.cursor >= 0){
2204 longjmp(catchStack.envs[catchStack.cursor], 1);
2205 }
2206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2207 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
2208 fatal_exit(1);
2209 }
2210 var63 = var65;
2211 RET_LABEL64:(void)0;
2212 }
2213 }
2214 {
2215 var66 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var63, var_str);
2216 }
2217 if (var66){
2218 {
2219 { /* Inline opts$OptionContext$optmap (self) on <self:OptionContext> */
2220 var69 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2221 if (unlikely(var69 == NULL)) {
2222 if(catchStack.cursor >= 0){
2223 longjmp(catchStack.envs[catchStack.cursor], 1);
2224 }
2225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2226 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
2227 fatal_exit(1);
2228 }
2229 var67 = var69;
2230 RET_LABEL68:(void)0;
2231 }
2232 }
2233 {
2234 var70 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var67, var_str);
2235 }
2236 var_opt = var70;
2237 {
2238 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
2239 }
2240 {
2241 ((void(*)(val* self, val* p0, val* p1))(var_opt->class->vft[COLOR_opts__Option__read_param]))(var_opt, self, var_it); /* read_param on <var_opt:Option>*/
2242 }
2243 } else {
2244 {
2245 var71 = ((val*(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_it); /* item on <var_it:Iterator[String]>*/
2246 }
2247 {
2248 core___core__Array___core__abstract_collection__SimpleCollection__add(var_rest, var71); /* Direct call array$Array$add on <var_rest:Array[String]>*/
2249 }
2250 {
2251 ((void(*)(val* self))((((long)var_it&3)?class_info[((long)var_it&3)]:var_it->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_it); /* next on <var_it:Iterator[String]>*/
2252 }
2253 {
2254 { /* Inline opts$OptionContext$options_before_rest (self) on <self:OptionContext> */
2255 var74 = self->attrs[COLOR_opts__OptionContext___options_before_rest].s; /* _options_before_rest on <self:OptionContext> */
2256 var72 = var74;
2257 RET_LABEL73:(void)0;
2258 }
2259 }
2260 if (var72){
2261 {
2262 var75 = core__array___Iterator___to_a(var_it);
2263 }
2264 {
2265 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_rest, var75); /* Direct call array$Array$add_all on <var_rest:Array[String]>*/
2266 }
2267 var_parseargs = 0;
2268 } else {
2269 }
2270 }
2271 }
2272 }
2273 } else {
2274 goto BREAK_label76;
2275 }
2276 }
2277 BREAK_label76: (void)0;
2278 {
2279 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
2280 var79 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
2281 if (unlikely(var79 == NULL)) {
2282 if(catchStack.cursor >= 0){
2283 longjmp(catchStack.envs[catchStack.cursor], 1);
2284 }
2285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
2286 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
2287 fatal_exit(1);
2288 }
2289 var77 = var79;
2290 RET_LABEL78:(void)0;
2291 }
2292 }
2293 var_80 = var77;
2294 {
2295 var81 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_80);
2296 }
2297 var_82 = var81;
2298 for(;;) {
2299 {
2300 var83 = ((short int(*)(val* self))((((long)var_82&3)?class_info[((long)var_82&3)]:var_82->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_82); /* is_ok on <var_82:IndexedIterator[Option]>*/
2301 }
2302 if (var83){
2303 } else {
2304 goto BREAK_label84;
2305 }
2306 {
2307 var85 = ((val*(*)(val* self))((((long)var_82&3)?class_info[((long)var_82&3)]:var_82->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_82); /* item on <var_82:IndexedIterator[Option]>*/
2308 }
2309 var_opt86 = var85;
2310 {
2311 { /* Inline opts$Option$mandatory (var_opt86) on <var_opt86:Option> */
2312 var90 = var_opt86->attrs[COLOR_opts__Option___mandatory].s; /* _mandatory on <var_opt86:Option> */
2313 var88 = var90;
2314 RET_LABEL89:(void)0;
2315 }
2316 }
2317 var_91 = var88;
2318 if (var88){
2319 {
2320 { /* Inline opts$Option$read (var_opt86) on <var_opt86:Option> */
2321 var94 = var_opt86->attrs[COLOR_opts__Option___read].s; /* _read on <var_opt86:Option> */
2322 var92 = var94;
2323 RET_LABEL93:(void)0;
2324 }
2325 }
2326 var95 = !var92;
2327 var87 = var95;
2328 } else {
2329 var87 = var_91;
2330 }
2331 if (var87){
2332 {
2333 { /* Inline opts$OptionContext$context_errors (self) on <self:OptionContext> */
2334 var98 = self->attrs[COLOR_opts__OptionContext___context_errors].val; /* _context_errors on <self:OptionContext> */
2335 if (unlikely(var98 == NULL)) {
2336 if(catchStack.cursor >= 0){
2337 longjmp(catchStack.envs[catchStack.cursor], 1);
2338 }
2339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _context_errors");
2340 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 289);
2341 fatal_exit(1);
2342 }
2343 var96 = var98;
2344 RET_LABEL97:(void)0;
2345 }
2346 }
2347 if (unlikely(varonce99==NULL)) {
2348 var100 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2349 if (likely(varonce101!=NULL)) {
2350 var102 = varonce101;
2351 } else {
2352 var103 = "Mandatory option ";
2353 var105 = (val*)(17l<<2|1);
2354 var106 = (val*)(17l<<2|1);
2355 var107 = (val*)((long)(0)<<2|3);
2356 var108 = (val*)((long)(0)<<2|3);
2357 var104 = core__flat___CString___to_s_unsafe(var103, var105, var106, var107, var108);
2358 var102 = var104;
2359 varonce101 = var102;
2360 }
2361 ((struct instance_core__NativeArray*)var100)->values[0]=var102;
2362 if (likely(varonce109!=NULL)) {
2363 var110 = varonce109;
2364 } else {
2365 var111 = " not found.";
2366 var113 = (val*)(11l<<2|1);
2367 var114 = (val*)(11l<<2|1);
2368 var115 = (val*)((long)(0)<<2|3);
2369 var116 = (val*)((long)(0)<<2|3);
2370 var112 = core__flat___CString___to_s_unsafe(var111, var113, var114, var115, var116);
2371 var110 = var112;
2372 varonce109 = var110;
2373 }
2374 ((struct instance_core__NativeArray*)var100)->values[2]=var110;
2375 } else {
2376 var100 = varonce99;
2377 varonce99 = NULL;
2378 }
2379 {
2380 { /* Inline opts$Option$names (var_opt86) on <var_opt86:Option> */
2381 var119 = var_opt86->attrs[COLOR_opts__Option___names].val; /* _names on <var_opt86:Option> */
2382 if (unlikely(var119 == NULL)) {
2383 if(catchStack.cursor >= 0){
2384 longjmp(catchStack.envs[catchStack.cursor], 1);
2385 }
2386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2387 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
2388 fatal_exit(1);
2389 }
2390 var117 = var119;
2391 RET_LABEL118:(void)0;
2392 }
2393 }
2394 if (likely(varonce120!=NULL)) {
2395 var121 = varonce120;
2396 } else {
2397 var122 = ", ";
2398 var124 = (val*)(2l<<2|1);
2399 var125 = (val*)(2l<<2|1);
2400 var126 = (val*)((long)(0)<<2|3);
2401 var127 = (val*)((long)(0)<<2|3);
2402 var123 = core__flat___CString___to_s_unsafe(var122, var124, var125, var126, var127);
2403 var121 = var123;
2404 varonce120 = var121;
2405 }
2406 {
2407 var128 = core__abstract_text___Collection___join(var117, var121, ((val*)NULL));
2408 }
2409 ((struct instance_core__NativeArray*)var100)->values[1]=var128;
2410 {
2411 var129 = ((val*(*)(val* self))(var100->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var100); /* native_to_s on <var100:NativeArray[String]>*/
2412 }
2413 varonce99 = var100;
2414 {
2415 core___core__Array___core__abstract_collection__SimpleCollection__add(var96, var129); /* Direct call array$Array$add on <var96:Array[String]>*/
2416 }
2417 } else {
2418 }
2419 {
2420 ((void(*)(val* self))((((long)var_82&3)?class_info[((long)var_82&3)]:var_82->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_82); /* next on <var_82:IndexedIterator[Option]>*/
2421 }
2422 }
2423 BREAK_label84: (void)0;
2424 {
2425 ((void(*)(val* self))((((long)var_82&3)?class_info[((long)var_82&3)]:var_82->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_82); /* finish on <var_82:IndexedIterator[Option]>*/
2426 }
2427 RET_LABEL:;
2428 }
2429 /* method opts$OptionContext$build for (self: OptionContext) */
2430 void opts___opts__OptionContext___build(val* self) {
2431 val* var /* : Array[Option] */;
2432 val* var2 /* : Array[Option] */;
2433 val* var_ /* var : Array[Option] */;
2434 val* var3 /* : IndexedIterator[nullable Object] */;
2435 val* var_4 /* var : IndexedIterator[Option] */;
2436 short int var5 /* : Bool */;
2437 val* var6 /* : nullable Object */;
2438 val* var_o /* var o: Option */;
2439 val* var7 /* : Array[String] */;
2440 val* var9 /* : Array[String] */;
2441 val* var_10 /* var : Array[String] */;
2442 val* var11 /* : IndexedIterator[nullable Object] */;
2443 val* var_12 /* var : IndexedIterator[String] */;
2444 short int var13 /* : Bool */;
2445 val* var15 /* : nullable Object */;
2446 val* var_n /* var n: String */;
2447 val* var16 /* : HashMap[String, Option] */;
2448 val* var18 /* : HashMap[String, Option] */;
2449 {
2450 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
2451 var2 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
2452 if (unlikely(var2 == NULL)) {
2453 if(catchStack.cursor >= 0){
2454 longjmp(catchStack.envs[catchStack.cursor], 1);
2455 }
2456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
2457 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
2458 fatal_exit(1);
2459 }
2460 var = var2;
2461 RET_LABEL1:(void)0;
2462 }
2463 }
2464 var_ = var;
2465 {
2466 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
2467 }
2468 var_4 = var3;
2469 for(;;) {
2470 {
2471 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:IndexedIterator[Option]>*/
2472 }
2473 if (var5){
2474 } else {
2475 goto BREAK_label;
2476 }
2477 {
2478 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:IndexedIterator[Option]>*/
2479 }
2480 var_o = var6;
2481 {
2482 { /* Inline opts$Option$names (var_o) on <var_o:Option> */
2483 var9 = var_o->attrs[COLOR_opts__Option___names].val; /* _names on <var_o:Option> */
2484 if (unlikely(var9 == NULL)) {
2485 if(catchStack.cursor >= 0){
2486 longjmp(catchStack.envs[catchStack.cursor], 1);
2487 }
2488 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2489 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
2490 fatal_exit(1);
2491 }
2492 var7 = var9;
2493 RET_LABEL8:(void)0;
2494 }
2495 }
2496 var_10 = var7;
2497 {
2498 var11 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_10);
2499 }
2500 var_12 = var11;
2501 for(;;) {
2502 {
2503 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:IndexedIterator[String]>*/
2504 }
2505 if (var13){
2506 } else {
2507 goto BREAK_label14;
2508 }
2509 {
2510 var15 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:IndexedIterator[String]>*/
2511 }
2512 var_n = var15;
2513 {
2514 { /* Inline opts$OptionContext$optmap (self) on <self:OptionContext> */
2515 var18 = self->attrs[COLOR_opts__OptionContext___optmap].val; /* _optmap on <self:OptionContext> */
2516 if (unlikely(var18 == NULL)) {
2517 if(catchStack.cursor >= 0){
2518 longjmp(catchStack.envs[catchStack.cursor], 1);
2519 }
2520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _optmap");
2521 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 292);
2522 fatal_exit(1);
2523 }
2524 var16 = var18;
2525 RET_LABEL17:(void)0;
2526 }
2527 }
2528 {
2529 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var16, var_n, var_o); /* Direct call hash_collection$HashMap$[]= on <var16:HashMap[String, Option]>*/
2530 }
2531 {
2532 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:IndexedIterator[String]>*/
2533 }
2534 }
2535 BREAK_label14: (void)0;
2536 {
2537 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:IndexedIterator[String]>*/
2538 }
2539 {
2540 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:IndexedIterator[Option]>*/
2541 }
2542 }
2543 BREAK_label: (void)0;
2544 {
2545 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:IndexedIterator[Option]>*/
2546 }
2547 RET_LABEL:;
2548 }
2549 /* method opts$OptionContext$errors for (self: OptionContext): Array[String] */
2550 val* opts___opts__OptionContext___errors(val* self) {
2551 val* var /* : Array[String] */;
2552 val* var1 /* : Array[String] */;
2553 val* var_errors /* var errors: Array[String] */;
2554 val* var2 /* : Array[String] */;
2555 val* var4 /* : Array[String] */;
2556 val* var5 /* : Array[Option] */;
2557 val* var7 /* : Array[Option] */;
2558 val* var_ /* var : Array[Option] */;
2559 val* var8 /* : IndexedIterator[nullable Object] */;
2560 val* var_9 /* var : IndexedIterator[Option] */;
2561 short int var10 /* : Bool */;
2562 val* var11 /* : nullable Object */;
2563 val* var_o /* var o: Option */;
2564 val* var12 /* : Array[String] */;
2565 val* var14 /* : Array[String] */;
2566 val* var_15 /* var : Array[String] */;
2567 val* var16 /* : IndexedIterator[nullable Object] */;
2568 val* var_17 /* var : IndexedIterator[String] */;
2569 short int var18 /* : Bool */;
2570 val* var20 /* : nullable Object */;
2571 val* var_e /* var e: String */;
2572 var1 = NEW_core__Array(&type_core__Array__core__String);
2573 {
2574 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[String]>*/
2575 }
2576 var_errors = var1;
2577 {
2578 { /* Inline opts$OptionContext$context_errors (self) on <self:OptionContext> */
2579 var4 = self->attrs[COLOR_opts__OptionContext___context_errors].val; /* _context_errors on <self:OptionContext> */
2580 if (unlikely(var4 == NULL)) {
2581 if(catchStack.cursor >= 0){
2582 longjmp(catchStack.envs[catchStack.cursor], 1);
2583 }
2584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _context_errors");
2585 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 289);
2586 fatal_exit(1);
2587 }
2588 var2 = var4;
2589 RET_LABEL3:(void)0;
2590 }
2591 }
2592 {
2593 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_errors, var2); /* Direct call array$Array$add_all on <var_errors:Array[String]>*/
2594 }
2595 {
2596 { /* Inline opts$OptionContext$options (self) on <self:OptionContext> */
2597 var7 = self->attrs[COLOR_opts__OptionContext___options].val; /* _options on <self:OptionContext> */
2598 if (unlikely(var7 == NULL)) {
2599 if(catchStack.cursor >= 0){
2600 longjmp(catchStack.envs[catchStack.cursor], 1);
2601 }
2602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
2603 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 283);
2604 fatal_exit(1);
2605 }
2606 var5 = var7;
2607 RET_LABEL6:(void)0;
2608 }
2609 }
2610 var_ = var5;
2611 {
2612 var8 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
2613 }
2614 var_9 = var8;
2615 for(;;) {
2616 {
2617 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:IndexedIterator[Option]>*/
2618 }
2619 if (var10){
2620 } else {
2621 goto BREAK_label;
2622 }
2623 {
2624 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:IndexedIterator[Option]>*/
2625 }
2626 var_o = var11;
2627 {
2628 { /* Inline opts$Option$errors (var_o) on <var_o:Option> */
2629 var14 = var_o->attrs[COLOR_opts__Option___errors].val; /* _errors on <var_o:Option> */
2630 if (unlikely(var14 == NULL)) {
2631 if(catchStack.cursor >= 0){
2632 longjmp(catchStack.envs[catchStack.cursor], 1);
2633 }
2634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
2635 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
2636 fatal_exit(1);
2637 }
2638 var12 = var14;
2639 RET_LABEL13:(void)0;
2640 }
2641 }
2642 var_15 = var12;
2643 {
2644 var16 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_15);
2645 }
2646 var_17 = var16;
2647 for(;;) {
2648 {
2649 var18 = ((short int(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_17); /* is_ok on <var_17:IndexedIterator[String]>*/
2650 }
2651 if (var18){
2652 } else {
2653 goto BREAK_label19;
2654 }
2655 {
2656 var20 = ((val*(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_17); /* item on <var_17:IndexedIterator[String]>*/
2657 }
2658 var_e = var20;
2659 {
2660 core___core__Array___core__abstract_collection__SimpleCollection__add(var_errors, var_e); /* Direct call array$Array$add on <var_errors:Array[String]>*/
2661 }
2662 {
2663 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_17); /* next on <var_17:IndexedIterator[String]>*/
2664 }
2665 }
2666 BREAK_label19: (void)0;
2667 {
2668 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_17); /* finish on <var_17:IndexedIterator[String]>*/
2669 }
2670 {
2671 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:IndexedIterator[Option]>*/
2672 }
2673 }
2674 BREAK_label: (void)0;
2675 {
2676 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:IndexedIterator[Option]>*/
2677 }
2678 var = var_errors;
2679 goto RET_LABEL;
2680 RET_LABEL:;
2681 return var;
2682 }