niti, nitg & rta: use lookup_first_definition
[nit.git] / c_src / opts._sep.c
1 /* This C file is generated by NIT to compile module opts. */
2 #include "opts._sep.h"
3 val_t opts___Option___names(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_opts;
9 fra.me.line = 19;
10 fra.me.meth = LOCATE_opts___Option___names;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* ../lib/opts.nit:19 */
17 REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
18 if (UNTAG_Bool(REGB0)) {
19 } else {
20 nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 19);
21 }
22 fra.me.REG[0] = ATTR_opts___Option____names(fra.me.REG[0]);
23 stack_frame_head = fra.me.prev;
24 return fra.me.REG[0];
25 }
26 val_t opts___Option___helptext(val_t p0){
27 struct {struct stack_frame_t me;} fra;
28 val_t REGB0;
29 val_t tmp;
30 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31 fra.me.file = LOCATE_opts;
32 fra.me.line = 25;
33 fra.me.meth = LOCATE_opts___Option___helptext;
34 fra.me.has_broke = 0;
35 fra.me.REG_size = 1;
36 fra.me.nitni_local_ref_head = NULL;
37 fra.me.REG[0] = NIT_NULL;
38 fra.me.REG[0] = p0;
39 /* ../lib/opts.nit:25 */
40 REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_opts, 25);
44 }
45 fra.me.REG[0] = ATTR_opts___Option____helptext(fra.me.REG[0]);
46 stack_frame_head = fra.me.prev;
47 return fra.me.REG[0];
48 }
49 val_t opts___Option___mandatory(val_t p0){
50 struct {struct stack_frame_t me;} fra;
51 val_t REGB0;
52 val_t tmp;
53 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
54 fra.me.file = LOCATE_opts;
55 fra.me.line = 28;
56 fra.me.meth = LOCATE_opts___Option___mandatory;
57 fra.me.has_broke = 0;
58 fra.me.REG_size = 1;
59 fra.me.nitni_local_ref_head = NULL;
60 fra.me.REG[0] = NIT_NULL;
61 fra.me.REG[0] = p0;
62 /* ../lib/opts.nit:28 */
63 REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
64 if (UNTAG_Bool(REGB0)) {
65 } else {
66 nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_opts, 28);
67 }
68 REGB0 = ATTR_opts___Option____mandatory(fra.me.REG[0]);
69 stack_frame_head = fra.me.prev;
70 return REGB0;
71 }
72 void opts___Option___mandatory__eq(val_t p0, val_t p1){
73 struct {struct stack_frame_t me;} fra;
74 val_t REGB0;
75 val_t tmp;
76 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
77 fra.me.file = LOCATE_opts;
78 fra.me.line = 28;
79 fra.me.meth = LOCATE_opts___Option___mandatory__eq;
80 fra.me.has_broke = 0;
81 fra.me.REG_size = 1;
82 fra.me.nitni_local_ref_head = NULL;
83 fra.me.REG[0] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 REGB0 = p1;
86 /* ../lib/opts.nit:28 */
87 ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
88 stack_frame_head = fra.me.prev;
89 return;
90 }
91 void opts___Option___value__eq(val_t p0, val_t p1){
92 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
93 val_t tmp;
94 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
95 fra.me.file = LOCATE_opts;
96 fra.me.line = 31;
97 fra.me.meth = LOCATE_opts___Option___value__eq;
98 fra.me.has_broke = 0;
99 fra.me.REG_size = 2;
100 fra.me.nitni_local_ref_head = NULL;
101 fra.me.REG[0] = NIT_NULL;
102 fra.me.REG[1] = NIT_NULL;
103 fra.me.REG[0] = p0;
104 fra.me.REG[1] = p1;
105 /* ../lib/opts.nit:31 */
106 ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[1];
107 stack_frame_head = fra.me.prev;
108 return;
109 }
110 val_t opts___Option___value(val_t p0){
111 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
112 val_t REGB0;
113 val_t tmp;
114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
115 fra.me.file = LOCATE_opts;
116 fra.me.line = 34;
117 fra.me.meth = LOCATE_opts___Option___value;
118 fra.me.has_broke = 0;
119 fra.me.REG_size = 2;
120 fra.me.nitni_local_ref_head = NULL;
121 fra.me.REG[0] = NIT_NULL;
122 fra.me.REG[1] = NIT_NULL;
123 fra.me.REG[0] = p0;
124 /* ../lib/opts.nit:34 */
125 fra.me.REG[1] = fra.me.REG[0];
126 /* ../lib/opts.nit:35 */
127 fra.me.REG[1] = ATTR_opts___Option____value(fra.me.REG[1]);
128 REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], VTCOLOR_opts___Option___VALUE(fra.me.REG[0]), VTID_opts___Option___VALUE(fra.me.REG[0]))) /*cast VALUE*/;
129 if (UNTAG_Bool(REGB0)) {
130 } else {
131 nit_abort("Cast failed", NULL, LOCATE_opts, 35);
132 }
133 goto label1;
134 label1: while(0);
135 stack_frame_head = fra.me.prev;
136 return fra.me.REG[1];
137 }
138 val_t opts___Option___default_value(val_t p0){
139 struct {struct stack_frame_t me;} fra;
140 val_t tmp;
141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
142 fra.me.file = LOCATE_opts;
143 fra.me.line = 37;
144 fra.me.meth = LOCATE_opts___Option___default_value;
145 fra.me.has_broke = 0;
146 fra.me.REG_size = 1;
147 fra.me.nitni_local_ref_head = NULL;
148 fra.me.REG[0] = NIT_NULL;
149 fra.me.REG[0] = p0;
150 /* ../lib/opts.nit:37 */
151 fra.me.REG[0] = ATTR_opts___Option____default_value(fra.me.REG[0]);
152 stack_frame_head = fra.me.prev;
153 return fra.me.REG[0];
154 }
155 void opts___Option___default_value__eq(val_t p0, val_t p1){
156 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
157 val_t tmp;
158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
159 fra.me.file = LOCATE_opts;
160 fra.me.line = 37;
161 fra.me.meth = LOCATE_opts___Option___default_value__eq;
162 fra.me.has_broke = 0;
163 fra.me.REG_size = 2;
164 fra.me.nitni_local_ref_head = NULL;
165 fra.me.REG[0] = NIT_NULL;
166 fra.me.REG[1] = NIT_NULL;
167 fra.me.REG[0] = p0;
168 fra.me.REG[1] = p1;
169 /* ../lib/opts.nit:37 */
170 ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[1];
171 stack_frame_head = fra.me.prev;
172 return;
173 }
174 void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
175 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___Option].i;
176 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
177 val_t REGB0;
178 val_t REGB1;
179 val_t tmp;
180 if (init_table[itpos0]) return;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_opts;
183 fra.me.line = 40;
184 fra.me.meth = LOCATE_opts___Option___init_opt;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 5;
187 fra.me.nitni_local_ref_head = NULL;
188 fra.me.REG[0] = NIT_NULL;
189 fra.me.REG[1] = NIT_NULL;
190 fra.me.REG[2] = NIT_NULL;
191 fra.me.REG[3] = NIT_NULL;
192 fra.me.REG[4] = NIT_NULL;
193 fra.me.REG[0] = p0;
194 fra.me.REG[1] = p1;
195 fra.me.REG[2] = p2;
196 fra.me.REG[3] = p3;
197 /* ../lib/opts.nit:43 */
198 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
199 if (UNTAG_Bool(REGB0)) {
200 } else {
201 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
202 if (UNTAG_Bool(REGB1)) {
203 REGB1 = TAG_Bool(false);
204 REGB0 = REGB1;
205 } else {
206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
207 REGB0 = REGB1;
208 }
209 }
210 if (UNTAG_Bool(REGB0)) {
211 /* ../lib/opts.nit:44 */
212 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
213 ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[4];
214 } else {
215 /* ../lib/opts.nit:46 */
216 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
217 if (UNTAG_Bool(REGB0)) {
218 nit_abort("Reciever is null", NULL, LOCATE_opts, 46);
219 }
220 fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
221 ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[3];
222 }
223 /* ../lib/opts.nit:48 */
224 ATTR_opts___Option____helptext(fra.me.REG[0]) = fra.me.REG[1];
225 /* ../lib/opts.nit:49 */
226 REGB0 = TAG_Bool(false);
227 ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
228 /* ../lib/opts.nit:50 */
229 ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[2];
230 /* ../lib/opts.nit:51 */
231 ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[2];
232 stack_frame_head = fra.me.prev;
233 init_table[itpos0] = 1;
234 return;
235 }
236 void opts___Option___add_aliases(val_t p0, val_t p1){
237 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
238 val_t REGB0;
239 val_t tmp;
240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
241 fra.me.file = LOCATE_opts;
242 fra.me.line = 54;
243 fra.me.meth = LOCATE_opts___Option___add_aliases;
244 fra.me.has_broke = 0;
245 fra.me.REG_size = 3;
246 fra.me.nitni_local_ref_head = NULL;
247 fra.me.REG[0] = NIT_NULL;
248 fra.me.REG[1] = NIT_NULL;
249 fra.me.REG[2] = NIT_NULL;
250 fra.me.REG[0] = p0;
251 fra.me.REG[1] = p1;
252 /* ../lib/opts.nit:54 */
253 fra.me.REG[2] = fra.me.REG[0];
254 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
255 if (UNTAG_Bool(REGB0)) {
256 } else {
257 nit_abort("Cast failed", NULL, LOCATE_opts, 54);
258 }
259 /* ../lib/opts.nit:55 */
260 REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[2])!=NIT_NULL);
261 if (UNTAG_Bool(REGB0)) {
262 } else {
263 nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 55);
264 }
265 fra.me.REG[2] = ATTR_opts___Option____names(fra.me.REG[2]);
266 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
267 stack_frame_head = fra.me.prev;
268 return;
269 }
270 val_t opts___Option___to_s(val_t p0){
271 struct {struct stack_frame_t me;} fra;
272 val_t REGB0;
273 val_t tmp;
274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
275 fra.me.file = LOCATE_opts;
276 fra.me.line = 57;
277 fra.me.meth = LOCATE_opts___Option___to_s;
278 fra.me.has_broke = 0;
279 fra.me.REG_size = 1;
280 fra.me.nitni_local_ref_head = NULL;
281 fra.me.REG[0] = NIT_NULL;
282 fra.me.REG[0] = p0;
283 /* ../lib/opts.nit:58 */
284 REGB0 = TAG_Int(2);
285 fra.me.REG[0] = CALL_opts___Option___pretty(fra.me.REG[0])(fra.me.REG[0], REGB0);
286 goto label1;
287 label1: while(0);
288 stack_frame_head = fra.me.prev;
289 return fra.me.REG[0];
290 }
291 val_t opts___Option___pretty(val_t p0, val_t p1){
292 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
293 val_t REGB0;
294 val_t REGB1;
295 val_t REGB2;
296 val_t tmp;
297 static val_t once_value_1; /* Once value */
298 static val_t once_value_2; /* Once value */
299 static val_t once_value_3; /* Once value */
300 static val_t once_value_4; /* Once value */
301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
302 fra.me.file = LOCATE_opts;
303 fra.me.line = 60;
304 fra.me.meth = LOCATE_opts___Option___pretty;
305 fra.me.has_broke = 0;
306 fra.me.REG_size = 4;
307 fra.me.nitni_local_ref_head = NULL;
308 fra.me.REG[0] = NIT_NULL;
309 fra.me.REG[1] = NIT_NULL;
310 fra.me.REG[2] = NIT_NULL;
311 fra.me.REG[3] = NIT_NULL;
312 fra.me.REG[0] = p0;
313 REGB0 = p1;
314 /* ../lib/opts.nit:63 */
315 if (!once_value_1) {
316 fra.me.REG[1] = BOX_NativeString(" ");
317 REGB1 = TAG_Int(2);
318 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
319 once_value_1 = fra.me.REG[1];
320 register_static_object(&once_value_1);
321 } else fra.me.REG[1] = once_value_1;
322 fra.me.REG[1] = fra.me.REG[1];
323 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[1]);
324 /* ../lib/opts.nit:64 */
325 REGB1 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
326 if (UNTAG_Bool(REGB1)) {
327 } else {
328 nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 64);
329 }
330 fra.me.REG[2] = ATTR_opts___Option____names(fra.me.REG[0]);
331 if (!once_value_2) {
332 fra.me.REG[3] = BOX_NativeString(", ");
333 REGB1 = TAG_Int(2);
334 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
335 once_value_2 = fra.me.REG[3];
336 register_static_object(&once_value_2);
337 } else fra.me.REG[3] = once_value_2;
338 fra.me.REG[3] = fra.me.REG[3];
339 fra.me.REG[3] = CALL_standard___string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
340 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
341 /* ../lib/opts.nit:65 */
342 if (!once_value_3) {
343 fra.me.REG[3] = BOX_NativeString(" ");
344 REGB1 = TAG_Int(2);
345 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
346 once_value_3 = fra.me.REG[3];
347 register_static_object(&once_value_3);
348 } else fra.me.REG[3] = once_value_3;
349 fra.me.REG[3] = fra.me.REG[3];
350 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
351 /* ../lib/standard/collection/array.nit:24 */
352 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
353 if (UNTAG_Bool(REGB1)) {
354 } else {
355 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
356 }
357 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
358 /* ../lib/standard/kernel.nit:237 */
359 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
360 /* ../lib/opts.nit:67 */
361 REGB0 = TAG_Int(0);
362 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
363 if (UNTAG_Bool(REGB2)) {
364 } else {
365 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
366 }
367 /* ../lib/standard/kernel.nit:234 */
368 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
369 /* ../lib/opts.nit:67 */
370 if (UNTAG_Bool(REGB0)) {
371 if (!once_value_4) {
372 fra.me.REG[3] = BOX_NativeString(" ");
373 REGB0 = TAG_Int(1);
374 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
375 once_value_4 = fra.me.REG[3];
376 register_static_object(&once_value_4);
377 } else fra.me.REG[3] = once_value_4;
378 fra.me.REG[3] = fra.me.REG[3];
379 fra.me.REG[3] = CALL_standard___string___String_____star(fra.me.REG[3])(fra.me.REG[3], REGB1);
380 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
381 }
382 /* ../lib/opts.nit:68 */
383 fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
384 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
385 /* ../lib/opts.nit:70 */
386 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
387 goto label5;
388 label5: while(0);
389 stack_frame_head = fra.me.prev;
390 return fra.me.REG[1];
391 }
392 val_t opts___Option___pretty_default(val_t p0){
393 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
394 val_t REGB0;
395 val_t REGB1;
396 val_t tmp;
397 static val_t once_value_1; /* Once value */
398 static val_t once_value_2; /* Once value */
399 static val_t once_value_4; /* Once value */
400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
401 fra.me.file = LOCATE_opts;
402 fra.me.line = 73;
403 fra.me.meth = LOCATE_opts___Option___pretty_default;
404 fra.me.has_broke = 0;
405 fra.me.REG_size = 3;
406 fra.me.nitni_local_ref_head = NULL;
407 fra.me.REG[0] = NIT_NULL;
408 fra.me.REG[1] = NIT_NULL;
409 fra.me.REG[2] = NIT_NULL;
410 fra.me.REG[0] = p0;
411 /* ../lib/opts.nit:75 */
412 fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
413 /* ../lib/opts.nit:76 */
414 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
415 if (UNTAG_Bool(REGB0)) {
416 } else {
417 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
418 if (UNTAG_Bool(REGB1)) {
419 REGB1 = TAG_Bool(false);
420 REGB0 = REGB1;
421 } else {
422 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
423 REGB0 = REGB1;
424 }
425 }
426 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
427 if (UNTAG_Bool(REGB0)) {
428 REGB0 = TAG_Int(3);
429 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
430 if (!once_value_1) {
431 fra.me.REG[2] = BOX_NativeString(" (");
432 REGB0 = TAG_Int(2);
433 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
434 once_value_1 = fra.me.REG[2];
435 register_static_object(&once_value_1);
436 } else fra.me.REG[2] = once_value_1;
437 fra.me.REG[2] = fra.me.REG[2];
438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
439 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
441 if (!once_value_2) {
442 fra.me.REG[0] = BOX_NativeString(")");
443 REGB0 = TAG_Int(1);
444 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
445 once_value_2 = fra.me.REG[0];
446 register_static_object(&once_value_2);
447 } else fra.me.REG[0] = once_value_2;
448 fra.me.REG[0] = fra.me.REG[0];
449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
450 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
451 goto label3;
452 }
453 /* ../lib/opts.nit:77 */
454 if (!once_value_4) {
455 fra.me.REG[0] = BOX_NativeString("");
456 REGB0 = TAG_Int(0);
457 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
458 once_value_4 = fra.me.REG[0];
459 register_static_object(&once_value_4);
460 } else fra.me.REG[0] = once_value_4;
461 fra.me.REG[0] = fra.me.REG[0];
462 fra.me.REG[1] = fra.me.REG[0];
463 goto label3;
464 label3: while(0);
465 stack_frame_head = fra.me.prev;
466 return fra.me.REG[1];
467 }
468 void opts___Option___read_param(val_t p0, val_t p1){
469 struct {struct stack_frame_t me;} fra;
470 val_t tmp;
471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
472 fra.me.file = LOCATE_opts;
473 fra.me.line = 80;
474 fra.me.meth = LOCATE_opts___Option___read_param;
475 fra.me.has_broke = 0;
476 fra.me.REG_size = 0;
477 fra.me.nitni_local_ref_head = NULL;
478 /* ../lib/opts.nit:80 */
479 nit_abort("Deferred method called", NULL, LOCATE_opts, 80);
480 stack_frame_head = fra.me.prev;
481 return;
482 }
483 void opts___OptionText___init(val_t p0, val_t p1, int* init_table){
484 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionText].i;
485 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
486 val_t tmp;
487 if (init_table[itpos1]) return;
488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
489 fra.me.file = LOCATE_opts;
490 fra.me.line = 86;
491 fra.me.meth = LOCATE_opts___OptionText___init;
492 fra.me.has_broke = 0;
493 fra.me.REG_size = 2;
494 fra.me.nitni_local_ref_head = NULL;
495 fra.me.REG[0] = NIT_NULL;
496 fra.me.REG[1] = NIT_NULL;
497 fra.me.REG[0] = p0;
498 fra.me.REG[1] = p1;
499 /* ../lib/opts.nit:86 */
500 CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, NIT_NULL, init_table);
501 stack_frame_head = fra.me.prev;
502 init_table[itpos1] = 1;
503 return;
504 }
505 val_t opts___OptionText___pretty(val_t p0, val_t p1){
506 struct {struct stack_frame_t me;} fra;
507 val_t REGB0;
508 val_t tmp;
509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
510 fra.me.file = LOCATE_opts;
511 fra.me.line = 88;
512 fra.me.meth = LOCATE_opts___OptionText___pretty;
513 fra.me.has_broke = 0;
514 fra.me.REG_size = 1;
515 fra.me.nitni_local_ref_head = NULL;
516 fra.me.REG[0] = NIT_NULL;
517 fra.me.REG[0] = p0;
518 REGB0 = p1;
519 /* ../lib/opts.nit:88 */
520 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
521 goto label1;
522 label1: while(0);
523 stack_frame_head = fra.me.prev;
524 return fra.me.REG[0];
525 }
526 val_t opts___OptionText___to_s(val_t p0){
527 struct {struct stack_frame_t me;} fra;
528 val_t tmp;
529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
530 fra.me.file = LOCATE_opts;
531 fra.me.line = 90;
532 fra.me.meth = LOCATE_opts___OptionText___to_s;
533 fra.me.has_broke = 0;
534 fra.me.REG_size = 1;
535 fra.me.nitni_local_ref_head = NULL;
536 fra.me.REG[0] = NIT_NULL;
537 fra.me.REG[0] = p0;
538 /* ../lib/opts.nit:90 */
539 fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
540 goto label1;
541 label1: while(0);
542 stack_frame_head = fra.me.prev;
543 return fra.me.REG[0];
544 }
545 void opts___OptionBool___init(val_t p0, val_t p1, val_t p2, int* init_table){
546 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionBool].i;
547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
548 val_t REGB0;
549 val_t tmp;
550 if (init_table[itpos2]) return;
551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
552 fra.me.file = LOCATE_opts;
553 fra.me.line = 97;
554 fra.me.meth = LOCATE_opts___OptionBool___init;
555 fra.me.has_broke = 0;
556 fra.me.REG_size = 4;
557 fra.me.nitni_local_ref_head = NULL;
558 fra.me.REG[0] = NIT_NULL;
559 fra.me.REG[1] = NIT_NULL;
560 fra.me.REG[2] = NIT_NULL;
561 fra.me.REG[3] = NIT_NULL;
562 fra.me.REG[0] = p0;
563 fra.me.REG[1] = p1;
564 fra.me.REG[2] = p2;
565 /* ../lib/opts.nit:97 */
566 fra.me.REG[3] = fra.me.REG[0];
567 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
568 if (UNTAG_Bool(REGB0)) {
569 } else {
570 nit_abort("Cast failed", NULL, LOCATE_opts, 97);
571 }
572 REGB0 = TAG_Bool(false);
573 CALL_opts___Option___init_opt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
574 stack_frame_head = fra.me.prev;
575 init_table[itpos2] = 1;
576 return;
577 }
578 void opts___OptionBool___read_param(val_t p0, val_t p1){
579 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
580 val_t REGB0;
581 val_t tmp;
582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
583 fra.me.file = LOCATE_opts;
584 fra.me.line = 99;
585 fra.me.meth = LOCATE_opts___OptionBool___read_param;
586 fra.me.has_broke = 0;
587 fra.me.REG_size = 2;
588 fra.me.nitni_local_ref_head = NULL;
589 fra.me.REG[0] = NIT_NULL;
590 fra.me.REG[1] = NIT_NULL;
591 fra.me.REG[0] = p0;
592 fra.me.REG[1] = p1;
593 /* ../lib/opts.nit:99 */
594 REGB0 = TAG_Bool(true);
595 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
596 stack_frame_head = fra.me.prev;
597 return;
598 }
599 void opts___OptionCount___init(val_t p0, val_t p1, val_t p2, int* init_table){
600 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionCount].i;
601 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
602 val_t REGB0;
603 val_t tmp;
604 if (init_table[itpos3]) return;
605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
606 fra.me.file = LOCATE_opts;
607 fra.me.line = 106;
608 fra.me.meth = LOCATE_opts___OptionCount___init;
609 fra.me.has_broke = 0;
610 fra.me.REG_size = 4;
611 fra.me.nitni_local_ref_head = NULL;
612 fra.me.REG[0] = NIT_NULL;
613 fra.me.REG[1] = NIT_NULL;
614 fra.me.REG[2] = NIT_NULL;
615 fra.me.REG[3] = NIT_NULL;
616 fra.me.REG[0] = p0;
617 fra.me.REG[1] = p1;
618 fra.me.REG[2] = p2;
619 /* ../lib/opts.nit:106 */
620 fra.me.REG[3] = fra.me.REG[0];
621 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
622 if (UNTAG_Bool(REGB0)) {
623 } else {
624 nit_abort("Cast failed", NULL, LOCATE_opts, 106);
625 }
626 REGB0 = TAG_Int(0);
627 CALL_opts___Option___init_opt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
628 stack_frame_head = fra.me.prev;
629 init_table[itpos3] = 1;
630 return;
631 }
632 void opts___OptionCount___read_param(val_t p0, val_t p1){
633 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
634 val_t REGB0;
635 val_t tmp;
636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
637 fra.me.file = LOCATE_opts;
638 fra.me.line = 108;
639 fra.me.meth = LOCATE_opts___OptionCount___read_param;
640 fra.me.has_broke = 0;
641 fra.me.REG_size = 2;
642 fra.me.nitni_local_ref_head = NULL;
643 fra.me.REG[0] = NIT_NULL;
644 fra.me.REG[1] = NIT_NULL;
645 fra.me.REG[0] = p0;
646 fra.me.REG[1] = p1;
647 /* ../lib/opts.nit:108 */
648 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
649 REGB0 = TAG_Int(1);
650 /* ../lib/standard/kernel.nit:235 */
651 REGB0 = TAG_Int(UNTAG_Int(fra.me.REG[1])+UNTAG_Int(REGB0));
652 /* ../lib/opts.nit:108 */
653 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
654 stack_frame_head = fra.me.prev;
655 return;
656 }
657 val_t opts___OptionParameter___convert(val_t p0, val_t p1){
658 struct {struct stack_frame_t me;} fra;
659 val_t tmp;
660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
661 fra.me.file = LOCATE_opts;
662 fra.me.line = 114;
663 fra.me.meth = LOCATE_opts___OptionParameter___convert;
664 fra.me.has_broke = 0;
665 fra.me.REG_size = 0;
666 fra.me.nitni_local_ref_head = NULL;
667 /* ../lib/opts.nit:114 */
668 nit_abort("Deferred method called", NULL, LOCATE_opts, 114);
669 stack_frame_head = fra.me.prev;
670 return NIT_NULL;
671 }
672 void opts___OptionParameter___read_param(val_t p0, val_t p1){
673 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
674 val_t REGB0;
675 val_t tmp;
676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
677 fra.me.file = LOCATE_opts;
678 fra.me.line = 116;
679 fra.me.meth = LOCATE_opts___OptionParameter___read_param;
680 fra.me.has_broke = 0;
681 fra.me.REG_size = 3;
682 fra.me.nitni_local_ref_head = NULL;
683 fra.me.REG[0] = NIT_NULL;
684 fra.me.REG[1] = NIT_NULL;
685 fra.me.REG[2] = NIT_NULL;
686 fra.me.REG[0] = p0;
687 fra.me.REG[1] = p1;
688 /* ../lib/opts.nit:118 */
689 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
690 if (UNTAG_Bool(REGB0)) {
691 /* ../lib/opts.nit:119 */
692 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
693 fra.me.REG[2] = CALL_opts___OptionParameter___convert(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
694 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
695 /* ../lib/opts.nit:120 */
696 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
697 }
698 stack_frame_head = fra.me.prev;
699 return;
700 }
701 void opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
702 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionParameter].i;
703 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
704 val_t tmp;
705 if (init_table[itpos4]) return;
706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
707 fra.me.file = LOCATE_opts;
708 fra.me.line = 126;
709 fra.me.meth = LOCATE_opts___OptionParameter___init_opt;
710 fra.me.has_broke = 0;
711 fra.me.REG_size = 4;
712 fra.me.nitni_local_ref_head = NULL;
713 fra.me.REG[0] = NIT_NULL;
714 fra.me.REG[1] = NIT_NULL;
715 fra.me.REG[2] = NIT_NULL;
716 fra.me.REG[3] = NIT_NULL;
717 fra.me.REG[0] = p0;
718 fra.me.REG[1] = p1;
719 fra.me.REG[2] = p2;
720 fra.me.REG[3] = p3;
721 /* ../lib/opts.nit:126 */
722 CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
723 stack_frame_head = fra.me.prev;
724 init_table[itpos4] = 1;
725 return;
726 }
727 void opts___OptionString___init(val_t p0, val_t p1, val_t p2, int* init_table){
728 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionString].i;
729 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
730 val_t REGB0;
731 val_t tmp;
732 if (init_table[itpos5]) return;
733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
734 fra.me.file = LOCATE_opts;
735 fra.me.line = 133;
736 fra.me.meth = LOCATE_opts___OptionString___init;
737 fra.me.has_broke = 0;
738 fra.me.REG_size = 4;
739 fra.me.nitni_local_ref_head = NULL;
740 fra.me.REG[0] = NIT_NULL;
741 fra.me.REG[1] = NIT_NULL;
742 fra.me.REG[2] = NIT_NULL;
743 fra.me.REG[3] = NIT_NULL;
744 fra.me.REG[0] = p0;
745 fra.me.REG[1] = p1;
746 fra.me.REG[2] = p2;
747 /* ../lib/opts.nit:133 */
748 fra.me.REG[3] = fra.me.REG[0];
749 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
750 if (UNTAG_Bool(REGB0)) {
751 } else {
752 nit_abort("Cast failed", NULL, LOCATE_opts, 133);
753 }
754 CALL_opts___OptionParameter___init_opt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], NIT_NULL, fra.me.REG[2], init_table);
755 stack_frame_head = fra.me.prev;
756 init_table[itpos5] = 1;
757 return;
758 }
759 val_t opts___OptionString___convert(val_t p0, val_t p1){
760 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
761 val_t tmp;
762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
763 fra.me.file = LOCATE_opts;
764 fra.me.line = 135;
765 fra.me.meth = LOCATE_opts___OptionString___convert;
766 fra.me.has_broke = 0;
767 fra.me.REG_size = 2;
768 fra.me.nitni_local_ref_head = NULL;
769 fra.me.REG[0] = NIT_NULL;
770 fra.me.REG[1] = NIT_NULL;
771 fra.me.REG[0] = p0;
772 fra.me.REG[1] = p1;
773 /* ../lib/opts.nit:135 */
774 goto label1;
775 label1: while(0);
776 stack_frame_head = fra.me.prev;
777 return fra.me.REG[1];
778 }
779 void opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
780 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionEnum].i;
781 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
782 val_t REGB0;
783 val_t REGB1;
784 val_t REGB2;
785 val_t REGB3;
786 val_t tmp;
787 static val_t once_value_1; /* Once value */
788 static val_t once_value_2; /* Once value */
789 static val_t once_value_3; /* Once value */
790 static val_t once_value_4; /* Once value */
791 if (init_table[itpos6]) return;
792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
793 fra.me.file = LOCATE_opts;
794 fra.me.line = 143;
795 fra.me.meth = LOCATE_opts___OptionEnum___init;
796 fra.me.has_broke = 0;
797 fra.me.REG_size = 6;
798 fra.me.nitni_local_ref_head = NULL;
799 fra.me.REG[0] = NIT_NULL;
800 fra.me.REG[1] = NIT_NULL;
801 fra.me.REG[2] = NIT_NULL;
802 fra.me.REG[3] = NIT_NULL;
803 fra.me.REG[4] = NIT_NULL;
804 fra.me.REG[5] = NIT_NULL;
805 fra.me.REG[0] = p0;
806 fra.me.REG[1] = p1;
807 fra.me.REG[2] = p2;
808 REGB0 = p3;
809 fra.me.REG[3] = p4;
810 /* ../lib/opts.nit:143 */
811 fra.me.REG[4] = fra.me.REG[0];
812 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
813 if (UNTAG_Bool(REGB1)) {
814 } else {
815 nit_abort("Cast failed", NULL, LOCATE_opts, 143);
816 }
817 /* ../lib/standard/collection/array.nit:24 */
818 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
819 if (UNTAG_Bool(REGB1)) {
820 } else {
821 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
822 }
823 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
824 /* ../lib/opts.nit:145 */
825 REGB2 = TAG_Int(0);
826 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
827 if (UNTAG_Bool(REGB3)) {
828 } else {
829 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
830 }
831 /* ../lib/standard/kernel.nit:234 */
832 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
833 /* ../lib/opts.nit:145 */
834 if (UNTAG_Bool(REGB2)) {
835 } else {
836 nit_abort("Assert failed", NULL, LOCATE_opts, 145);
837 }
838 /* ../lib/opts.nit:146 */
839 fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
840 ATTR_opts___OptionEnum____values(fra.me.REG[4]) = fra.me.REG[0];
841 /* ../lib/opts.nit:147 */
842 REGB2 = TAG_Int(5);
843 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
844 if (!once_value_1) {
845 fra.me.REG[5] = BOX_NativeString("");
846 REGB2 = TAG_Int(0);
847 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
848 once_value_1 = fra.me.REG[5];
849 register_static_object(&once_value_1);
850 } else fra.me.REG[5] = once_value_1;
851 fra.me.REG[5] = fra.me.REG[5];
852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
854 if (!once_value_2) {
855 fra.me.REG[2] = BOX_NativeString(" <");
856 REGB2 = TAG_Int(2);
857 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
858 once_value_2 = fra.me.REG[2];
859 register_static_object(&once_value_2);
860 } else fra.me.REG[2] = once_value_2;
861 fra.me.REG[2] = fra.me.REG[2];
862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
863 if (!once_value_3) {
864 fra.me.REG[2] = BOX_NativeString(", ");
865 REGB2 = TAG_Int(2);
866 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
867 once_value_3 = fra.me.REG[2];
868 register_static_object(&once_value_3);
869 } else fra.me.REG[2] = once_value_3;
870 fra.me.REG[2] = fra.me.REG[2];
871 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
873 if (!once_value_4) {
874 fra.me.REG[2] = BOX_NativeString(">");
875 REGB2 = TAG_Int(1);
876 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
877 once_value_4 = fra.me.REG[2];
878 register_static_object(&once_value_4);
879 } else fra.me.REG[2] = once_value_4;
880 fra.me.REG[2] = fra.me.REG[2];
881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
882 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
883 CALL_opts___OptionParameter___init_opt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0, fra.me.REG[3], init_table);
884 stack_frame_head = fra.me.prev;
885 init_table[itpos6] = 1;
886 return;
887 }
888 val_t opts___OptionEnum___convert(val_t p0, val_t p1){
889 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
890 val_t REGB0;
891 val_t tmp;
892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
893 fra.me.file = LOCATE_opts;
894 fra.me.line = 150;
895 fra.me.meth = LOCATE_opts___OptionEnum___convert;
896 fra.me.has_broke = 0;
897 fra.me.REG_size = 2;
898 fra.me.nitni_local_ref_head = NULL;
899 fra.me.REG[0] = NIT_NULL;
900 fra.me.REG[1] = NIT_NULL;
901 fra.me.REG[0] = p0;
902 fra.me.REG[1] = p1;
903 /* ../lib/opts.nit:152 */
904 REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[0])!=NIT_NULL);
905 if (UNTAG_Bool(REGB0)) {
906 } else {
907 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 152);
908 }
909 fra.me.REG[0] = ATTR_opts___OptionEnum____values(fra.me.REG[0]);
910 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
911 /* ../lib/opts.nit:153 */
912 goto label1;
913 label1: while(0);
914 stack_frame_head = fra.me.prev;
915 return REGB0;
916 }
917 val_t opts___OptionEnum___value_name(val_t p0){
918 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
919 val_t REGB0;
920 val_t REGB1;
921 val_t REGB2;
922 val_t tmp;
923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
924 fra.me.file = LOCATE_opts;
925 fra.me.line = 156;
926 fra.me.meth = LOCATE_opts___OptionEnum___value_name;
927 fra.me.has_broke = 0;
928 fra.me.REG_size = 2;
929 fra.me.nitni_local_ref_head = NULL;
930 fra.me.REG[0] = NIT_NULL;
931 fra.me.REG[1] = NIT_NULL;
932 fra.me.REG[0] = p0;
933 /* ../lib/opts.nit:156 */
934 REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[0])!=NIT_NULL);
935 if (UNTAG_Bool(REGB0)) {
936 } else {
937 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 156);
938 }
939 fra.me.REG[1] = ATTR_opts___OptionEnum____values(fra.me.REG[0]);
940 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
941 /* ../lib/standard/collection/array.nit:278 */
942 REGB0 = fra.me.REG[0];
943 /* ../lib/standard/collection/array.nit:280 */
944 REGB1 = TAG_Int(0);
945 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
946 if (UNTAG_Bool(REGB2)) {
947 } else {
948 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
949 }
950 /* ../lib/standard/kernel.nit:233 */
951 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
952 /* ../lib/standard/collection/array.nit:280 */
953 if (UNTAG_Bool(REGB1)) {
954 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
955 if (UNTAG_Bool(REGB1)) {
956 } else {
957 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
958 }
959 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
960 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
961 if (UNTAG_Bool(REGB2)) {
962 } else {
963 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
964 }
965 /* ../lib/standard/kernel.nit:232 */
966 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
967 } else {
968 /* ../lib/standard/collection/array.nit:280 */
969 REGB2 = TAG_Bool(false);
970 REGB1 = REGB2;
971 }
972 if (UNTAG_Bool(REGB1)) {
973 } else {
974 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
975 }
976 /* ../lib/standard/collection/array.nit:281 */
977 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
978 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
979 if (UNTAG_Bool(REGB1)) {
980 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
981 }
982 /* ../lib/standard/collection/array.nit:718 */
983 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
984 /* ../lib/standard/collection/array.nit:281 */
985 goto label1;
986 label1: while(0);
987 /* ../lib/opts.nit:156 */
988 goto label2;
989 label2: while(0);
990 stack_frame_head = fra.me.prev;
991 return fra.me.REG[1];
992 }
993 val_t opts___OptionEnum___pretty_default(val_t p0){
994 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
995 val_t REGB0;
996 val_t REGB1;
997 val_t REGB2;
998 val_t tmp;
999 static val_t once_value_1; /* Once value */
1000 static val_t once_value_3; /* Once value */
1001 static val_t once_value_5; /* Once value */
1002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1003 fra.me.file = LOCATE_opts;
1004 fra.me.line = 158;
1005 fra.me.meth = LOCATE_opts___OptionEnum___pretty_default;
1006 fra.me.has_broke = 0;
1007 fra.me.REG_size = 4;
1008 fra.me.nitni_local_ref_head = NULL;
1009 fra.me.REG[0] = NIT_NULL;
1010 fra.me.REG[1] = NIT_NULL;
1011 fra.me.REG[2] = NIT_NULL;
1012 fra.me.REG[3] = NIT_NULL;
1013 fra.me.REG[0] = p0;
1014 /* ../lib/opts.nit:158 */
1015 fra.me.REG[1] = fra.me.REG[0];
1016 /* ../lib/opts.nit:160 */
1017 fra.me.REG[2] = CALL_opts___Option___default_value(fra.me.REG[1])(fra.me.REG[1]);
1018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1019 if (UNTAG_Bool(REGB0)) {
1020 } else {
1021 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1022 if (UNTAG_Bool(REGB1)) {
1023 REGB1 = TAG_Bool(false);
1024 REGB0 = REGB1;
1025 } else {
1026 /* ../lib/standard/kernel.nit:227 */
1027 REGB1 = TAG_Bool((fra.me.REG[2])==(NIT_NULL));
1028 /* ../lib/opts.nit:160 */
1029 REGB0 = REGB1;
1030 }
1031 }
1032 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1033 if (UNTAG_Bool(REGB0)) {
1034 /* ../lib/opts.nit:161 */
1035 REGB0 = TAG_Int(3);
1036 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1037 if (!once_value_1) {
1038 fra.me.REG[3] = BOX_NativeString(" (");
1039 REGB0 = TAG_Int(2);
1040 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1041 once_value_1 = fra.me.REG[3];
1042 register_static_object(&once_value_1);
1043 } else fra.me.REG[3] = once_value_1;
1044 fra.me.REG[3] = fra.me.REG[3];
1045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1046 REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[1])!=NIT_NULL);
1047 if (UNTAG_Bool(REGB0)) {
1048 } else {
1049 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 161);
1050 }
1051 fra.me.REG[3] = ATTR_opts___OptionEnum____values(fra.me.REG[1]);
1052 fra.me.REG[1] = CALL_opts___Option___default_value(fra.me.REG[1])(fra.me.REG[1]);
1053 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], VTCOLOR_opts___Option___VALUE(fra.me.REG[0]), VTID_opts___Option___VALUE(fra.me.REG[0]))) /*cast VALUE*/;
1054 if (UNTAG_Bool(REGB0)) {
1055 } else {
1056 nit_abort("Cast failed", NULL, LOCATE_opts, 161);
1057 }
1058 /* ../lib/standard/collection/array.nit:278 */
1059 REGB0 = fra.me.REG[1];
1060 /* ../lib/standard/collection/array.nit:280 */
1061 REGB1 = TAG_Int(0);
1062 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1063 if (UNTAG_Bool(REGB2)) {
1064 } else {
1065 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1066 }
1067 /* ../lib/standard/kernel.nit:233 */
1068 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1069 /* ../lib/standard/collection/array.nit:280 */
1070 if (UNTAG_Bool(REGB1)) {
1071 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1072 if (UNTAG_Bool(REGB1)) {
1073 } else {
1074 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1075 }
1076 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1077 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1078 if (UNTAG_Bool(REGB2)) {
1079 } else {
1080 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1081 }
1082 /* ../lib/standard/kernel.nit:232 */
1083 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1084 } else {
1085 /* ../lib/standard/collection/array.nit:280 */
1086 REGB2 = TAG_Bool(false);
1087 REGB1 = REGB2;
1088 }
1089 if (UNTAG_Bool(REGB1)) {
1090 } else {
1091 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
1092 }
1093 /* ../lib/standard/collection/array.nit:281 */
1094 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1095 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1096 if (UNTAG_Bool(REGB1)) {
1097 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1098 }
1099 /* ../lib/standard/collection/array.nit:718 */
1100 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
1101 /* ../lib/standard/collection/array.nit:281 */
1102 goto label2;
1103 label2: while(0);
1104 /* ../lib/opts.nit:161 */
1105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1106 if (!once_value_3) {
1107 fra.me.REG[3] = BOX_NativeString(")");
1108 REGB0 = TAG_Int(1);
1109 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1110 once_value_3 = fra.me.REG[3];
1111 register_static_object(&once_value_3);
1112 } else fra.me.REG[3] = once_value_3;
1113 fra.me.REG[3] = fra.me.REG[3];
1114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1115 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1116 goto label4;
1117 } else {
1118 /* ../lib/opts.nit:163 */
1119 if (!once_value_5) {
1120 fra.me.REG[3] = BOX_NativeString("");
1121 REGB0 = TAG_Int(0);
1122 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1123 once_value_5 = fra.me.REG[3];
1124 register_static_object(&once_value_5);
1125 } else fra.me.REG[3] = once_value_5;
1126 fra.me.REG[3] = fra.me.REG[3];
1127 fra.me.REG[2] = fra.me.REG[3];
1128 goto label4;
1129 }
1130 label4: while(0);
1131 stack_frame_head = fra.me.prev;
1132 return fra.me.REG[2];
1133 }
1134 void opts___OptionInt___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1135 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionInt].i;
1136 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1137 val_t REGB0;
1138 val_t REGB1;
1139 val_t tmp;
1140 if (init_table[itpos7]) return;
1141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1142 fra.me.file = LOCATE_opts;
1143 fra.me.line = 172;
1144 fra.me.meth = LOCATE_opts___OptionInt___init;
1145 fra.me.has_broke = 0;
1146 fra.me.REG_size = 4;
1147 fra.me.nitni_local_ref_head = NULL;
1148 fra.me.REG[0] = NIT_NULL;
1149 fra.me.REG[1] = NIT_NULL;
1150 fra.me.REG[2] = NIT_NULL;
1151 fra.me.REG[3] = NIT_NULL;
1152 fra.me.REG[0] = p0;
1153 fra.me.REG[1] = p1;
1154 REGB0 = p2;
1155 fra.me.REG[2] = p3;
1156 /* ../lib/opts.nit:172 */
1157 fra.me.REG[3] = fra.me.REG[0];
1158 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
1159 if (UNTAG_Bool(REGB1)) {
1160 } else {
1161 nit_abort("Cast failed", NULL, LOCATE_opts, 172);
1162 }
1163 CALL_opts___OptionParameter___init_opt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
1164 stack_frame_head = fra.me.prev;
1165 init_table[itpos7] = 1;
1166 return;
1167 }
1168 val_t opts___OptionInt___convert(val_t p0, val_t p1){
1169 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1170 val_t REGB0;
1171 val_t tmp;
1172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1173 fra.me.file = LOCATE_opts;
1174 fra.me.line = 174;
1175 fra.me.meth = LOCATE_opts___OptionInt___convert;
1176 fra.me.has_broke = 0;
1177 fra.me.REG_size = 2;
1178 fra.me.nitni_local_ref_head = NULL;
1179 fra.me.REG[0] = NIT_NULL;
1180 fra.me.REG[1] = NIT_NULL;
1181 fra.me.REG[0] = p0;
1182 fra.me.REG[1] = p1;
1183 /* ../lib/opts.nit:174 */
1184 REGB0 = CALL_standard___string___AbstractString___to_i(fra.me.REG[1])(fra.me.REG[1]);
1185 goto label1;
1186 label1: while(0);
1187 stack_frame_head = fra.me.prev;
1188 return REGB0;
1189 }
1190 void opts___OptionArray___init(val_t p0, val_t p1, val_t p2, int* init_table){
1191 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionArray].i;
1192 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1193 val_t REGB0;
1194 val_t tmp;
1195 if (init_table[itpos8]) return;
1196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1197 fra.me.file = LOCATE_opts;
1198 fra.me.line = 181;
1199 fra.me.meth = LOCATE_opts___OptionArray___init;
1200 fra.me.has_broke = 0;
1201 fra.me.REG_size = 4;
1202 fra.me.nitni_local_ref_head = NULL;
1203 fra.me.REG[0] = NIT_NULL;
1204 fra.me.REG[1] = NIT_NULL;
1205 fra.me.REG[2] = NIT_NULL;
1206 fra.me.REG[3] = NIT_NULL;
1207 fra.me.REG[0] = p0;
1208 fra.me.REG[1] = p1;
1209 fra.me.REG[2] = p2;
1210 /* ../lib/opts.nit:181 */
1211 fra.me.REG[3] = fra.me.REG[0];
1212 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
1213 if (UNTAG_Bool(REGB0)) {
1214 } else {
1215 nit_abort("Cast failed", NULL, LOCATE_opts, 181);
1216 }
1217 /* ../lib/opts.nit:183 */
1218 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
1219 ATTR_opts___OptionArray____values(fra.me.REG[3]) = fra.me.REG[0];
1220 /* ../lib/opts.nit:184 */
1221 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[3])!=NIT_NULL);
1222 if (UNTAG_Bool(REGB0)) {
1223 } else {
1224 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 184);
1225 }
1226 fra.me.REG[0] = ATTR_opts___OptionArray____values(fra.me.REG[3]);
1227 CALL_opts___OptionParameter___init_opt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[2], init_table);
1228 stack_frame_head = fra.me.prev;
1229 init_table[itpos8] = 1;
1230 return;
1231 }
1232 val_t opts___OptionArray___convert(val_t p0, val_t p1){
1233 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1234 val_t REGB0;
1235 val_t tmp;
1236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1237 fra.me.file = LOCATE_opts;
1238 fra.me.line = 188;
1239 fra.me.meth = LOCATE_opts___OptionArray___convert;
1240 fra.me.has_broke = 0;
1241 fra.me.REG_size = 3;
1242 fra.me.nitni_local_ref_head = NULL;
1243 fra.me.REG[0] = NIT_NULL;
1244 fra.me.REG[1] = NIT_NULL;
1245 fra.me.REG[2] = NIT_NULL;
1246 fra.me.REG[0] = p0;
1247 fra.me.REG[1] = p1;
1248 /* ../lib/opts.nit:190 */
1249 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
1250 if (UNTAG_Bool(REGB0)) {
1251 } else {
1252 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 190);
1253 }
1254 fra.me.REG[2] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
1255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1256 /* ../lib/opts.nit:191 */
1257 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
1258 if (UNTAG_Bool(REGB0)) {
1259 } else {
1260 nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 191);
1261 }
1262 fra.me.REG[0] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
1263 goto label1;
1264 label1: while(0);
1265 stack_frame_head = fra.me.prev;
1266 return fra.me.REG[0];
1267 }
1268 val_t opts___OptionContext___options(val_t p0){
1269 struct {struct stack_frame_t me;} fra;
1270 val_t REGB0;
1271 val_t tmp;
1272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1273 fra.me.file = LOCATE_opts;
1274 fra.me.line = 196;
1275 fra.me.meth = LOCATE_opts___OptionContext___options;
1276 fra.me.has_broke = 0;
1277 fra.me.REG_size = 1;
1278 fra.me.nitni_local_ref_head = NULL;
1279 fra.me.REG[0] = NIT_NULL;
1280 fra.me.REG[0] = p0;
1281 /* ../lib/opts.nit:196 */
1282 REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1283 if (UNTAG_Bool(REGB0)) {
1284 } else {
1285 nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 196);
1286 }
1287 fra.me.REG[0] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1288 stack_frame_head = fra.me.prev;
1289 return fra.me.REG[0];
1290 }
1291 val_t opts___OptionContext___rest(val_t p0){
1292 struct {struct stack_frame_t me;} fra;
1293 val_t REGB0;
1294 val_t tmp;
1295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1296 fra.me.file = LOCATE_opts;
1297 fra.me.line = 197;
1298 fra.me.meth = LOCATE_opts___OptionContext___rest;
1299 fra.me.has_broke = 0;
1300 fra.me.REG_size = 1;
1301 fra.me.nitni_local_ref_head = NULL;
1302 fra.me.REG[0] = NIT_NULL;
1303 fra.me.REG[0] = p0;
1304 /* ../lib/opts.nit:197 */
1305 REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
1306 if (UNTAG_Bool(REGB0)) {
1307 } else {
1308 nit_abort("Uninitialized attribute %s", "_rest", LOCATE_opts, 197);
1309 }
1310 fra.me.REG[0] = ATTR_opts___OptionContext____rest(fra.me.REG[0]);
1311 stack_frame_head = fra.me.prev;
1312 return fra.me.REG[0];
1313 }
1314 void opts___OptionContext___usage(val_t p0){
1315 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1316 val_t REGB0;
1317 val_t REGB1;
1318 val_t REGB2;
1319 val_t REGB3;
1320 val_t REGB4;
1321 val_t REGB5;
1322 val_t tmp;
1323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1324 fra.me.file = LOCATE_opts;
1325 fra.me.line = 201;
1326 fra.me.meth = LOCATE_opts___OptionContext___usage;
1327 fra.me.has_broke = 0;
1328 fra.me.REG_size = 6;
1329 fra.me.nitni_local_ref_head = NULL;
1330 fra.me.REG[0] = NIT_NULL;
1331 fra.me.REG[1] = NIT_NULL;
1332 fra.me.REG[2] = NIT_NULL;
1333 fra.me.REG[3] = NIT_NULL;
1334 fra.me.REG[4] = NIT_NULL;
1335 fra.me.REG[5] = NIT_NULL;
1336 fra.me.REG[0] = p0;
1337 /* ../lib/opts.nit:203 */
1338 REGB0 = TAG_Int(1);
1339 /* ../lib/opts.nit:204 */
1340 REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1341 if (UNTAG_Bool(REGB1)) {
1342 } else {
1343 nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 204);
1344 }
1345 fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1346 /* ../lib/standard/collection/array.nit:269 */
1347 REGB1 = TAG_Int(0);
1348 /* ../lib/standard/collection/array.nit:270 */
1349 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1350 if (UNTAG_Bool(REGB2)) {
1351 } else {
1352 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1353 }
1354 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1355 /* ../lib/standard/collection/array.nit:271 */
1356 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1357 /* ../lib/standard/collection/array.nit:272 */
1358 while(1) {
1359 /* ../lib/standard/collection/array.nit:24 */
1360 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1361 if (UNTAG_Bool(REGB2)) {
1362 } else {
1363 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1364 }
1365 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1366 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1367 if (UNTAG_Bool(REGB3)) {
1368 } else {
1369 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1370 }
1371 /* ../lib/standard/kernel.nit:232 */
1372 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1373 /* ../lib/standard/collection/array.nit:272 */
1374 if (UNTAG_Bool(REGB2)) {
1375 /* ../lib/standard/collection/array.nit:273 */
1376 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1377 if (UNTAG_Bool(REGB2)) {
1378 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1379 }
1380 /* ../lib/standard/collection/array.nit:718 */
1381 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
1382 /* ../lib/opts.nit:205 */
1383 REGB2 = TAG_Int(3);
1384 /* ../lib/opts.nit:206 */
1385 fra.me.REG[3] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]);
1386 /* ../lib/standard/collection/array.nit:269 */
1387 REGB3 = TAG_Int(0);
1388 /* ../lib/standard/collection/array.nit:270 */
1389 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1390 if (UNTAG_Bool(REGB4)) {
1391 } else {
1392 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1393 }
1394 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1395 /* ../lib/standard/collection/array.nit:271 */
1396 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1397 /* ../lib/standard/collection/array.nit:272 */
1398 while(1) {
1399 /* ../lib/standard/collection/array.nit:24 */
1400 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1401 if (UNTAG_Bool(REGB4)) {
1402 } else {
1403 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1404 }
1405 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1406 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1407 if (UNTAG_Bool(REGB5)) {
1408 } else {
1409 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1410 }
1411 /* ../lib/standard/kernel.nit:232 */
1412 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1413 /* ../lib/standard/collection/array.nit:272 */
1414 if (UNTAG_Bool(REGB4)) {
1415 /* ../lib/standard/collection/array.nit:273 */
1416 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1417 if (UNTAG_Bool(REGB4)) {
1418 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1419 }
1420 /* ../lib/standard/collection/array.nit:718 */
1421 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
1422 /* ../lib/standard/collection/array.nit:24 */
1423 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1424 if (UNTAG_Bool(REGB4)) {
1425 } else {
1426 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1427 }
1428 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1429 /* ../lib/opts.nit:207 */
1430 REGB5 = TAG_Int(2);
1431 /* ../lib/standard/kernel.nit:235 */
1432 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
1433 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
1434 /* ../lib/opts.nit:207 */
1435 REGB2 = REGB5;
1436 /* ../lib/standard/collection/array.nit:274 */
1437 REGB5 = TAG_Int(1);
1438 /* ../lib/standard/kernel.nit:235 */
1439 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1440 /* ../lib/standard/collection/array.nit:274 */
1441 REGB3 = REGB5;
1442 } else {
1443 /* ../lib/standard/collection/array.nit:272 */
1444 goto label1;
1445 }
1446 }
1447 label1: while(0);
1448 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1449 if (UNTAG_Bool(REGB3)) {
1450 } else {
1451 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1452 }
1453 /* ../lib/standard/kernel.nit:232 */
1454 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1455 /* ../lib/opts.nit:209 */
1456 if (UNTAG_Bool(REGB3)) {
1457 REGB0 = REGB2;
1458 }
1459 /* ../lib/standard/collection/array.nit:274 */
1460 REGB2 = TAG_Int(1);
1461 /* ../lib/standard/kernel.nit:235 */
1462 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1463 /* ../lib/standard/collection/array.nit:274 */
1464 REGB1 = REGB2;
1465 } else {
1466 /* ../lib/standard/collection/array.nit:272 */
1467 goto label2;
1468 }
1469 }
1470 label2: while(0);
1471 /* ../lib/opts.nit:212 */
1472 REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1473 if (UNTAG_Bool(REGB1)) {
1474 } else {
1475 nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 212);
1476 }
1477 fra.me.REG[2] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1478 /* ../lib/standard/collection/array.nit:269 */
1479 REGB1 = TAG_Int(0);
1480 /* ../lib/standard/collection/array.nit:270 */
1481 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1482 if (UNTAG_Bool(REGB2)) {
1483 } else {
1484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1485 }
1486 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1487 /* ../lib/standard/collection/array.nit:271 */
1488 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1489 /* ../lib/standard/collection/array.nit:272 */
1490 while(1) {
1491 /* ../lib/standard/collection/array.nit:24 */
1492 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1493 if (UNTAG_Bool(REGB2)) {
1494 } else {
1495 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1496 }
1497 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1498 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1499 if (UNTAG_Bool(REGB3)) {
1500 } else {
1501 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1502 }
1503 /* ../lib/standard/kernel.nit:232 */
1504 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1505 /* ../lib/standard/collection/array.nit:272 */
1506 if (UNTAG_Bool(REGB2)) {
1507 /* ../lib/standard/collection/array.nit:273 */
1508 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1509 if (UNTAG_Bool(REGB2)) {
1510 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1511 }
1512 /* ../lib/standard/collection/array.nit:718 */
1513 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
1514 /* ../lib/opts.nit:213 */
1515 fra.me.REG[4] = CALL_opts___Option___pretty(fra.me.REG[4])(fra.me.REG[4], REGB0);
1516 CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
1517 /* ../lib/standard/collection/array.nit:274 */
1518 REGB2 = TAG_Int(1);
1519 /* ../lib/standard/kernel.nit:235 */
1520 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1521 /* ../lib/standard/collection/array.nit:274 */
1522 REGB1 = REGB2;
1523 } else {
1524 /* ../lib/standard/collection/array.nit:272 */
1525 goto label3;
1526 }
1527 }
1528 label3: while(0);
1529 stack_frame_head = fra.me.prev;
1530 return;
1531 }
1532 void opts___OptionContext___parse(val_t p0, val_t p1){
1533 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1534 val_t tmp;
1535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1536 fra.me.file = LOCATE_opts;
1537 fra.me.line = 217;
1538 fra.me.meth = LOCATE_opts___OptionContext___parse;
1539 fra.me.has_broke = 0;
1540 fra.me.REG_size = 2;
1541 fra.me.nitni_local_ref_head = NULL;
1542 fra.me.REG[0] = NIT_NULL;
1543 fra.me.REG[1] = NIT_NULL;
1544 fra.me.REG[0] = p0;
1545 fra.me.REG[1] = p1;
1546 /* ../lib/opts.nit:220 */
1547 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1548 /* ../lib/opts.nit:221 */
1549 CALL_opts___OptionContext___parse_intern(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1550 stack_frame_head = fra.me.prev;
1551 return;
1552 }
1553 void opts___OptionContext___parse_intern(val_t p0, val_t p1){
1554 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1555 val_t REGB0;
1556 val_t REGB1;
1557 val_t REGB2;
1558 val_t tmp;
1559 static val_t once_value_1; /* Once value */
1560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1561 fra.me.file = LOCATE_opts;
1562 fra.me.line = 224;
1563 fra.me.meth = LOCATE_opts___OptionContext___parse_intern;
1564 fra.me.has_broke = 0;
1565 fra.me.REG_size = 5;
1566 fra.me.nitni_local_ref_head = NULL;
1567 fra.me.REG[0] = NIT_NULL;
1568 fra.me.REG[1] = NIT_NULL;
1569 fra.me.REG[2] = NIT_NULL;
1570 fra.me.REG[3] = NIT_NULL;
1571 fra.me.REG[4] = NIT_NULL;
1572 fra.me.REG[0] = p0;
1573 fra.me.REG[1] = p1;
1574 /* ../lib/opts.nit:226 */
1575 REGB0 = TAG_Bool(true);
1576 /* ../lib/opts.nit:227 */
1577 CALL_opts___OptionContext___build(fra.me.REG[0])(fra.me.REG[0]);
1578 /* ../lib/opts.nit:228 */
1579 REGB1 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
1580 if (UNTAG_Bool(REGB1)) {
1581 } else {
1582 nit_abort("Uninitialized attribute %s", "_rest", LOCATE_opts, 228);
1583 }
1584 fra.me.REG[2] = ATTR_opts___OptionContext____rest(fra.me.REG[0]);
1585 /* ../lib/opts.nit:230 */
1586 while(1) {
1587 if (UNTAG_Bool(REGB0)) {
1588 REGB1 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1589 } else {
1590 REGB2 = TAG_Bool(false);
1591 REGB1 = REGB2;
1592 }
1593 if (UNTAG_Bool(REGB1)) {
1594 /* ../lib/opts.nit:231 */
1595 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1596 /* ../lib/opts.nit:232 */
1597 if (!once_value_1) {
1598 fra.me.REG[4] = BOX_NativeString("--");
1599 REGB1 = TAG_Int(2);
1600 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1601 once_value_1 = fra.me.REG[4];
1602 register_static_object(&once_value_1);
1603 } else fra.me.REG[4] = once_value_1;
1604 fra.me.REG[4] = fra.me.REG[4];
1605 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1606 if (UNTAG_Bool(REGB1)) {
1607 } else {
1608 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1609 REGB1 = REGB2;
1610 }
1611 if (UNTAG_Bool(REGB1)) {
1612 /* ../lib/opts.nit:233 */
1613 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1614 /* ../lib/opts.nit:234 */
1615 fra.me.REG[4] = CALL_standard___collection___array___Iterator___to_a(fra.me.REG[1])(fra.me.REG[1]);
1616 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1617 /* ../lib/opts.nit:235 */
1618 REGB1 = TAG_Bool(false);
1619 REGB0 = REGB1;
1620 } else {
1621 /* ../lib/opts.nit:237 */
1622 REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1623 if (UNTAG_Bool(REGB1)) {
1624 } else {
1625 nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 237);
1626 }
1627 fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1628 REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1629 if (UNTAG_Bool(REGB1)) {
1630 /* ../lib/opts.nit:238 */
1631 REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1632 if (UNTAG_Bool(REGB1)) {
1633 } else {
1634 nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 238);
1635 }
1636 fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1637 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1638 /* ../lib/opts.nit:239 */
1639 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1640 /* ../lib/opts.nit:240 */
1641 CALL_opts___Option___read_param(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1642 } else {
1643 /* ../lib/opts.nit:242 */
1644 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1646 /* ../lib/opts.nit:243 */
1647 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1648 }
1649 }
1650 } else {
1651 /* ../lib/opts.nit:230 */
1652 goto label2;
1653 }
1654 }
1655 label2: while(0);
1656 stack_frame_head = fra.me.prev;
1657 return;
1658 }
1659 void opts___OptionContext___add_option(val_t p0, val_t p1){
1660 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1661 val_t REGB0;
1662 val_t REGB1;
1663 val_t REGB2;
1664 val_t tmp;
1665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1666 fra.me.file = LOCATE_opts;
1667 fra.me.line = 249;
1668 fra.me.meth = LOCATE_opts___OptionContext___add_option;
1669 fra.me.has_broke = 0;
1670 fra.me.REG_size = 5;
1671 fra.me.nitni_local_ref_head = NULL;
1672 fra.me.REG[0] = NIT_NULL;
1673 fra.me.REG[1] = NIT_NULL;
1674 fra.me.REG[2] = NIT_NULL;
1675 fra.me.REG[3] = NIT_NULL;
1676 fra.me.REG[4] = NIT_NULL;
1677 fra.me.REG[0] = p0;
1678 fra.me.REG[1] = p1;
1679 /* ../lib/opts.nit:249 */
1680 fra.me.REG[2] = fra.me.REG[0];
1681 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Option]*/;
1682 if (UNTAG_Bool(REGB0)) {
1683 } else {
1684 nit_abort("Cast failed", NULL, LOCATE_opts, 249);
1685 }
1686 /* ../lib/standard/collection/array.nit:269 */
1687 REGB0 = TAG_Int(0);
1688 /* ../lib/standard/collection/array.nit:270 */
1689 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1690 if (UNTAG_Bool(REGB1)) {
1691 } else {
1692 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1693 }
1694 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1695 /* ../lib/standard/collection/array.nit:271 */
1696 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1697 /* ../lib/standard/collection/array.nit:272 */
1698 while(1) {
1699 /* ../lib/standard/collection/array.nit:24 */
1700 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1701 if (UNTAG_Bool(REGB1)) {
1702 } else {
1703 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1704 }
1705 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1706 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1707 if (UNTAG_Bool(REGB2)) {
1708 } else {
1709 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1710 }
1711 /* ../lib/standard/kernel.nit:232 */
1712 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1713 /* ../lib/standard/collection/array.nit:272 */
1714 if (UNTAG_Bool(REGB1)) {
1715 /* ../lib/standard/collection/array.nit:273 */
1716 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1717 if (UNTAG_Bool(REGB1)) {
1718 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1719 }
1720 /* ../lib/standard/collection/array.nit:718 */
1721 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1722 /* ../lib/opts.nit:252 */
1723 REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[2])!=NIT_NULL);
1724 if (UNTAG_Bool(REGB1)) {
1725 } else {
1726 nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 252);
1727 }
1728 fra.me.REG[4] = ATTR_opts___OptionContext____options(fra.me.REG[2]);
1729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1730 /* ../lib/standard/collection/array.nit:274 */
1731 REGB1 = TAG_Int(1);
1732 /* ../lib/standard/kernel.nit:235 */
1733 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1734 /* ../lib/standard/collection/array.nit:274 */
1735 REGB0 = REGB1;
1736 } else {
1737 /* ../lib/standard/collection/array.nit:272 */
1738 goto label1;
1739 }
1740 }
1741 label1: while(0);
1742 stack_frame_head = fra.me.prev;
1743 return;
1744 }
1745 void opts___OptionContext___init(val_t p0, int* init_table){
1746 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_opts___OptionContext].i;
1747 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1748 val_t tmp;
1749 if (init_table[itpos9]) return;
1750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1751 fra.me.file = LOCATE_opts;
1752 fra.me.line = 256;
1753 fra.me.meth = LOCATE_opts___OptionContext___init;
1754 fra.me.has_broke = 0;
1755 fra.me.REG_size = 2;
1756 fra.me.nitni_local_ref_head = NULL;
1757 fra.me.REG[0] = NIT_NULL;
1758 fra.me.REG[1] = NIT_NULL;
1759 fra.me.REG[0] = p0;
1760 /* ../lib/opts.nit:258 */
1761 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1762 ATTR_opts___OptionContext____options(fra.me.REG[0]) = fra.me.REG[1];
1763 /* ../lib/opts.nit:259 */
1764 fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
1765 ATTR_opts___OptionContext____optmap(fra.me.REG[0]) = fra.me.REG[1];
1766 /* ../lib/opts.nit:260 */
1767 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1768 ATTR_opts___OptionContext____rest(fra.me.REG[0]) = fra.me.REG[1];
1769 stack_frame_head = fra.me.prev;
1770 init_table[itpos9] = 1;
1771 return;
1772 }
1773 void opts___OptionContext___build(val_t p0){
1774 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1775 val_t REGB0;
1776 val_t REGB1;
1777 val_t REGB2;
1778 val_t REGB3;
1779 val_t tmp;
1780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1781 fra.me.file = LOCATE_opts;
1782 fra.me.line = 263;
1783 fra.me.meth = LOCATE_opts___OptionContext___build;
1784 fra.me.has_broke = 0;
1785 fra.me.REG_size = 8;
1786 fra.me.nitni_local_ref_head = NULL;
1787 fra.me.REG[0] = NIT_NULL;
1788 fra.me.REG[1] = NIT_NULL;
1789 fra.me.REG[2] = NIT_NULL;
1790 fra.me.REG[3] = NIT_NULL;
1791 fra.me.REG[4] = NIT_NULL;
1792 fra.me.REG[5] = NIT_NULL;
1793 fra.me.REG[6] = NIT_NULL;
1794 fra.me.REG[7] = NIT_NULL;
1795 fra.me.REG[0] = p0;
1796 /* ../lib/opts.nit:265 */
1797 REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1798 if (UNTAG_Bool(REGB0)) {
1799 } else {
1800 nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 265);
1801 }
1802 fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1803 /* ../lib/standard/collection/array.nit:269 */
1804 REGB0 = TAG_Int(0);
1805 /* ../lib/standard/collection/array.nit:270 */
1806 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1807 if (UNTAG_Bool(REGB1)) {
1808 } else {
1809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1810 }
1811 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1812 /* ../lib/standard/collection/array.nit:271 */
1813 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1814 /* ../lib/standard/collection/array.nit:272 */
1815 while(1) {
1816 /* ../lib/standard/collection/array.nit:24 */
1817 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1818 if (UNTAG_Bool(REGB1)) {
1819 } else {
1820 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1821 }
1822 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1823 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1824 if (UNTAG_Bool(REGB2)) {
1825 } else {
1826 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1827 }
1828 /* ../lib/standard/kernel.nit:232 */
1829 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1830 /* ../lib/standard/collection/array.nit:272 */
1831 if (UNTAG_Bool(REGB1)) {
1832 /* ../lib/standard/collection/array.nit:273 */
1833 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1834 if (UNTAG_Bool(REGB1)) {
1835 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1836 }
1837 /* ../lib/standard/collection/array.nit:718 */
1838 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1839 /* ../lib/opts.nit:266 */
1840 fra.me.REG[4] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]);
1841 /* ../lib/standard/collection/array.nit:269 */
1842 REGB1 = TAG_Int(0);
1843 /* ../lib/standard/collection/array.nit:270 */
1844 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1845 if (UNTAG_Bool(REGB2)) {
1846 } else {
1847 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1848 }
1849 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1850 /* ../lib/standard/collection/array.nit:271 */
1851 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1852 /* ../lib/standard/collection/array.nit:272 */
1853 while(1) {
1854 /* ../lib/standard/collection/array.nit:24 */
1855 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1856 if (UNTAG_Bool(REGB2)) {
1857 } else {
1858 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1859 }
1860 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1861 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1862 if (UNTAG_Bool(REGB3)) {
1863 } else {
1864 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1865 }
1866 /* ../lib/standard/kernel.nit:232 */
1867 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1868 /* ../lib/standard/collection/array.nit:272 */
1869 if (UNTAG_Bool(REGB2)) {
1870 /* ../lib/standard/collection/array.nit:273 */
1871 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1872 if (UNTAG_Bool(REGB2)) {
1873 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1874 }
1875 /* ../lib/standard/collection/array.nit:718 */
1876 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1877 /* ../lib/opts.nit:267 */
1878 REGB2 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1879 if (UNTAG_Bool(REGB2)) {
1880 } else {
1881 nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 267);
1882 }
1883 fra.me.REG[7] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1884 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6], fra.me.REG[3]);
1885 /* ../lib/standard/collection/array.nit:274 */
1886 REGB2 = TAG_Int(1);
1887 /* ../lib/standard/kernel.nit:235 */
1888 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1889 /* ../lib/standard/collection/array.nit:274 */
1890 REGB1 = REGB2;
1891 } else {
1892 /* ../lib/standard/collection/array.nit:272 */
1893 goto label1;
1894 }
1895 }
1896 label1: while(0);
1897 /* ../lib/standard/collection/array.nit:274 */
1898 REGB1 = TAG_Int(1);
1899 /* ../lib/standard/kernel.nit:235 */
1900 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1901 /* ../lib/standard/collection/array.nit:274 */
1902 REGB0 = REGB1;
1903 } else {
1904 /* ../lib/standard/collection/array.nit:272 */
1905 goto label2;
1906 }
1907 }
1908 label2: while(0);
1909 stack_frame_head = fra.me.prev;
1910 return;
1911 }