Merge remote branch 'pu/new-style_attributes' into wip
[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___to_s(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 = 54;
10 fra.me.meth = LOCATE_opts___Option___to_s;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 REGB0 = TAG_Int(2);
16 fra.me.REG[0] = CALL_opts___Option___pretty(fra.me.REG[0])(fra.me.REG[0], REGB0);
17 /* ./../lib/opts.nit:55 */
18 goto label1;
19 label1: while(0);
20 stack_frame_head = fra.me.prev;
21 return fra.me.REG[0];
22 }
23 val_t opts___Option___names(val_t p0){
24 struct {struct stack_frame_t me;} fra;
25 val_t REGB0;
26 val_t tmp;
27 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28 fra.me.file = LOCATE_opts;
29 fra.me.line = 16;
30 fra.me.meth = LOCATE_opts___Option___names;
31 fra.me.has_broke = 0;
32 fra.me.REG_size = 1;
33 fra.me.REG[0] = NIT_NULL;
34 fra.me.REG[0] = p0;
35 REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
36 /* ./../lib/opts.nit:16 */
37 if (UNTAG_Bool(REGB0)) {
38 } else {
39 fprintf(stderr, "Uninitialized attribute %s", "_names");
40 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 16);
41 nit_exit(1);
42 }
43 fra.me.REG[0] = ATTR_opts___Option____names(fra.me.REG[0]);
44 stack_frame_head = fra.me.prev;
45 return fra.me.REG[0];
46 }
47 val_t opts___Option___helptext(val_t p0){
48 struct {struct stack_frame_t me;} fra;
49 val_t REGB0;
50 val_t tmp;
51 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52 fra.me.file = LOCATE_opts;
53 fra.me.line = 22;
54 fra.me.meth = LOCATE_opts___Option___helptext;
55 fra.me.has_broke = 0;
56 fra.me.REG_size = 1;
57 fra.me.REG[0] = NIT_NULL;
58 fra.me.REG[0] = p0;
59 REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
60 /* ./../lib/opts.nit:22 */
61 if (UNTAG_Bool(REGB0)) {
62 } else {
63 fprintf(stderr, "Uninitialized attribute %s", "_helptext");
64 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 22);
65 nit_exit(1);
66 }
67 fra.me.REG[0] = ATTR_opts___Option____helptext(fra.me.REG[0]);
68 stack_frame_head = fra.me.prev;
69 return fra.me.REG[0];
70 }
71 val_t opts___Option___mandatory(val_t p0){
72 struct {struct stack_frame_t me;} fra;
73 val_t REGB0;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_opts;
77 fra.me.line = 25;
78 fra.me.meth = LOCATE_opts___Option___mandatory;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 1;
81 fra.me.REG[0] = NIT_NULL;
82 fra.me.REG[0] = p0;
83 REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
84 /* ./../lib/opts.nit:25 */
85 if (UNTAG_Bool(REGB0)) {
86 } else {
87 fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
88 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 25);
89 nit_exit(1);
90 }
91 REGB0 = ATTR_opts___Option____mandatory(fra.me.REG[0]);
92 stack_frame_head = fra.me.prev;
93 return REGB0;
94 }
95 void opts___Option___mandatory__eq(val_t p0, val_t p1){
96 struct {struct stack_frame_t me;} fra;
97 val_t REGB0;
98 val_t tmp;
99 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
100 fra.me.file = LOCATE_opts;
101 fra.me.line = 25;
102 fra.me.meth = LOCATE_opts___Option___mandatory__eq;
103 fra.me.has_broke = 0;
104 fra.me.REG_size = 1;
105 fra.me.REG[0] = NIT_NULL;
106 fra.me.REG[0] = p0;
107 REGB0 = p1;
108 /* ./../lib/opts.nit:25 */
109 ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
110 stack_frame_head = fra.me.prev;
111 return;
112 }
113 void opts___Option___value__eq(val_t p0, val_t p1){
114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
115 val_t tmp;
116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
117 fra.me.file = LOCATE_opts;
118 fra.me.line = 28;
119 fra.me.meth = LOCATE_opts___Option___value__eq;
120 fra.me.has_broke = 0;
121 fra.me.REG_size = 2;
122 fra.me.REG[0] = NIT_NULL;
123 fra.me.REG[1] = NIT_NULL;
124 fra.me.REG[0] = p0;
125 fra.me.REG[1] = p1;
126 /* ./../lib/opts.nit:28 */
127 ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[1];
128 stack_frame_head = fra.me.prev;
129 return;
130 }
131 val_t opts___Option___value(val_t p0){
132 struct {struct stack_frame_t me;} fra;
133 val_t REGB0;
134 val_t tmp;
135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
136 fra.me.file = LOCATE_opts;
137 fra.me.line = 31;
138 fra.me.meth = LOCATE_opts___Option___value;
139 fra.me.has_broke = 0;
140 fra.me.REG_size = 1;
141 fra.me.REG[0] = NIT_NULL;
142 fra.me.REG[0] = p0;
143 fra.me.REG[0] = ATTR_opts___Option____value(fra.me.REG[0]);
144 REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_Object, ID_Object)) /*cast VALUE*/;
145 /* ./../lib/opts.nit:32 */
146 if (UNTAG_Bool(REGB0)) {
147 } else {
148 fprintf(stderr, "Cast failed");
149 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 32);
150 nit_exit(1);
151 }
152 goto label1;
153 label1: while(0);
154 stack_frame_head = fra.me.prev;
155 return fra.me.REG[0];
156 }
157 val_t opts___Option___default_value(val_t p0){
158 struct {struct stack_frame_t me;} fra;
159 val_t tmp;
160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
161 fra.me.file = LOCATE_opts;
162 fra.me.line = 34;
163 fra.me.meth = LOCATE_opts___Option___default_value;
164 fra.me.has_broke = 0;
165 fra.me.REG_size = 1;
166 fra.me.REG[0] = NIT_NULL;
167 fra.me.REG[0] = p0;
168 fra.me.REG[0] = ATTR_opts___Option____default_value(fra.me.REG[0]);
169 /* ./../lib/opts.nit:34 */
170 stack_frame_head = fra.me.prev;
171 return fra.me.REG[0];
172 }
173 void opts___Option___default_value__eq(val_t p0, val_t p1){
174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
175 val_t tmp;
176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
177 fra.me.file = LOCATE_opts;
178 fra.me.line = 34;
179 fra.me.meth = LOCATE_opts___Option___default_value__eq;
180 fra.me.has_broke = 0;
181 fra.me.REG_size = 2;
182 fra.me.REG[0] = NIT_NULL;
183 fra.me.REG[1] = NIT_NULL;
184 fra.me.REG[0] = p0;
185 fra.me.REG[1] = p1;
186 /* ./../lib/opts.nit:34 */
187 ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[1];
188 stack_frame_head = fra.me.prev;
189 return;
190 }
191 void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
192 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Option].i;
193 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
194 val_t REGB0;
195 val_t REGB1;
196 val_t tmp;
197 if (init_table[itpos0]) return;
198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
199 fra.me.file = LOCATE_opts;
200 fra.me.line = 37;
201 fra.me.meth = LOCATE_opts___Option___init_opt;
202 fra.me.has_broke = 0;
203 fra.me.REG_size = 5;
204 fra.me.REG[0] = NIT_NULL;
205 fra.me.REG[1] = NIT_NULL;
206 fra.me.REG[2] = NIT_NULL;
207 fra.me.REG[3] = NIT_NULL;
208 fra.me.REG[4] = NIT_NULL;
209 fra.me.REG[0] = p0;
210 fra.me.REG[1] = p1;
211 fra.me.REG[2] = p2;
212 fra.me.REG[3] = p3;
213 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
214 /* ./../lib/opts.nit:40 */
215 if (UNTAG_Bool(REGB0)) {
216 } else {
217 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
218 if (UNTAG_Bool(REGB1)) {
219 REGB1 = TAG_Bool(false);
220 REGB0 = REGB1;
221 } else {
222 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
223 REGB0 = REGB1;
224 }
225 }
226 if (UNTAG_Bool(REGB0)) {
227 fra.me.REG[4] = NEW_Array_array___Array___init();
228 /* ./../lib/opts.nit:41 */
229 ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[4];
230 } else {
231 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
232 /* ./../lib/opts.nit:43 */
233 if (UNTAG_Bool(REGB0)) {
234 fprintf(stderr, "Reciever is null");
235 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 43);
236 nit_exit(1);
237 }
238 fra.me.REG[3] = CALL_array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
239 ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[3];
240 }
241 /* ./../lib/opts.nit:45 */
242 ATTR_opts___Option____helptext(fra.me.REG[0]) = fra.me.REG[1];
243 REGB0 = TAG_Bool(false);
244 /* ./../lib/opts.nit:46 */
245 ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
246 /* ./../lib/opts.nit:47 */
247 ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[2];
248 /* ./../lib/opts.nit:48 */
249 ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[2];
250 stack_frame_head = fra.me.prev;
251 init_table[itpos0] = 1;
252 return;
253 }
254 void opts___Option___add_aliases(val_t p0, val_t p1){
255 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
256 val_t REGB0;
257 val_t tmp;
258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
259 fra.me.file = LOCATE_opts;
260 fra.me.line = 51;
261 fra.me.meth = LOCATE_opts___Option___add_aliases;
262 fra.me.has_broke = 0;
263 fra.me.REG_size = 2;
264 fra.me.REG[0] = NIT_NULL;
265 fra.me.REG[1] = NIT_NULL;
266 fra.me.REG[0] = p0;
267 fra.me.REG[1] = p1;
268 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_Array, ID_Array)) /*cast Array[String]*/;
269 /* ./../lib/opts.nit:51 */
270 if (UNTAG_Bool(REGB0)) {
271 } else {
272 fprintf(stderr, "Cast failed");
273 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 51);
274 nit_exit(1);
275 }
276 REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
277 /* ./../lib/opts.nit:52 */
278 if (UNTAG_Bool(REGB0)) {
279 } else {
280 fprintf(stderr, "Uninitialized attribute %s", "_names");
281 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 52);
282 nit_exit(1);
283 }
284 fra.me.REG[0] = ATTR_opts___Option____names(fra.me.REG[0]);
285 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
286 stack_frame_head = fra.me.prev;
287 return;
288 }
289 val_t opts___Option___pretty(val_t p0, val_t p1){
290 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
291 val_t REGB0;
292 val_t REGB1;
293 val_t tmp;
294 static val_t once_value_1; /* Once value */
295 static val_t once_value_2; /* Once value */
296 static val_t once_value_3; /* Once value */
297 static val_t once_value_4; /* Once value */
298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
299 fra.me.file = LOCATE_opts;
300 fra.me.line = 57;
301 fra.me.meth = LOCATE_opts___Option___pretty;
302 fra.me.has_broke = 0;
303 fra.me.REG_size = 4;
304 fra.me.REG[0] = NIT_NULL;
305 fra.me.REG[1] = NIT_NULL;
306 fra.me.REG[2] = NIT_NULL;
307 fra.me.REG[3] = NIT_NULL;
308 fra.me.REG[0] = p0;
309 REGB0 = p1;
310 /* ./../lib/opts.nit:60 */
311 if (!once_value_1) {
312 fra.me.REG[1] = BOX_NativeString(" ");
313 REGB1 = TAG_Int(2);
314 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
315 once_value_1 = fra.me.REG[1];
316 register_static_object(&once_value_1);
317 } else fra.me.REG[1] = once_value_1;
318 fra.me.REG[1] = NEW_Buffer_string___Buffer___from(fra.me.REG[1]);
319 REGB1 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
320 /* ./../lib/opts.nit:61 */
321 if (UNTAG_Bool(REGB1)) {
322 } else {
323 fprintf(stderr, "Uninitialized attribute %s", "_names");
324 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 61);
325 nit_exit(1);
326 }
327 fra.me.REG[2] = ATTR_opts___Option____names(fra.me.REG[0]);
328 if (!once_value_2) {
329 fra.me.REG[3] = BOX_NativeString(", ");
330 REGB1 = TAG_Int(2);
331 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
332 once_value_2 = fra.me.REG[3];
333 register_static_object(&once_value_2);
334 } else fra.me.REG[3] = once_value_2;
335 fra.me.REG[3] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
336 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
337 /* ./../lib/opts.nit:62 */
338 if (!once_value_3) {
339 fra.me.REG[3] = BOX_NativeString(" ");
340 REGB1 = TAG_Int(2);
341 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
342 once_value_3 = fra.me.REG[3];
343 register_static_object(&once_value_3);
344 } else fra.me.REG[3] = once_value_3;
345 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
346 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
347 /* ./../lib/standard//collection//array.nit:23 */
348 if (UNTAG_Bool(REGB1)) {
349 } else {
350 fprintf(stderr, "Uninitialized attribute %s", "_length");
351 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
352 nit_exit(1);
353 }
354 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
355 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
356 REGB0 = TAG_Int(0);
357 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
358 /* ./../lib/opts.nit:64 */
359 if (UNTAG_Bool(REGB0)) {
360 if (!once_value_4) {
361 fra.me.REG[3] = BOX_NativeString(" ");
362 REGB0 = TAG_Int(1);
363 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
364 once_value_4 = fra.me.REG[3];
365 register_static_object(&once_value_4);
366 } else fra.me.REG[3] = once_value_4;
367 fra.me.REG[3] = CALL_string___String_____star(fra.me.REG[3])(fra.me.REG[3], REGB1);
368 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
369 }
370 fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
371 /* ./../lib/opts.nit:65 */
372 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
373 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
374 /* ./../lib/opts.nit:67 */
375 goto label5;
376 label5: while(0);
377 stack_frame_head = fra.me.prev;
378 return fra.me.REG[1];
379 }
380 val_t opts___Option___pretty_default(val_t p0){
381 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
382 val_t REGB0;
383 val_t REGB1;
384 val_t tmp;
385 static val_t once_value_1; /* Once value */
386 static val_t once_value_2; /* Once value */
387 static val_t once_value_4; /* Once value */
388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
389 fra.me.file = LOCATE_opts;
390 fra.me.line = 70;
391 fra.me.meth = LOCATE_opts___Option___pretty_default;
392 fra.me.has_broke = 0;
393 fra.me.REG_size = 3;
394 fra.me.REG[0] = NIT_NULL;
395 fra.me.REG[1] = NIT_NULL;
396 fra.me.REG[2] = NIT_NULL;
397 fra.me.REG[0] = p0;
398 fra.me.REG[1] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
399 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
400 /* ./../lib/opts.nit:72 */
401 if (UNTAG_Bool(REGB0)) {
402 } else {
403 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
404 if (UNTAG_Bool(REGB1)) {
405 REGB1 = TAG_Bool(false);
406 REGB0 = REGB1;
407 } else {
408 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
409 REGB0 = REGB1;
410 }
411 }
412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
413 if (UNTAG_Bool(REGB0)) {
414 REGB0 = TAG_Int(3);
415 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
416 /* ./../lib/opts.nit:73 */
417 if (!once_value_1) {
418 fra.me.REG[2] = BOX_NativeString(" (");
419 REGB0 = TAG_Int(2);
420 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
421 once_value_1 = fra.me.REG[2];
422 register_static_object(&once_value_1);
423 } else fra.me.REG[2] = once_value_1;
424 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
425 fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
426 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
427 array___Array___add(fra.me.REG[1], fra.me.REG[0]);
428 if (!once_value_2) {
429 fra.me.REG[0] = BOX_NativeString(")");
430 REGB0 = TAG_Int(1);
431 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
432 once_value_2 = fra.me.REG[0];
433 register_static_object(&once_value_2);
434 } else fra.me.REG[0] = once_value_2;
435 array___Array___add(fra.me.REG[1], fra.me.REG[0]);
436 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
437 goto label3;
438 }
439 /* ./../lib/opts.nit:75 */
440 if (!once_value_4) {
441 fra.me.REG[0] = BOX_NativeString("");
442 REGB0 = TAG_Int(0);
443 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
444 once_value_4 = fra.me.REG[0];
445 register_static_object(&once_value_4);
446 } else fra.me.REG[0] = once_value_4;
447 fra.me.REG[1] = fra.me.REG[0];
448 goto label3;
449 label3: while(0);
450 stack_frame_head = fra.me.prev;
451 return fra.me.REG[1];
452 }
453 void opts___Option___read_param(val_t p0, val_t p1){
454 struct {struct stack_frame_t me;} fra;
455 val_t tmp;
456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
457 fra.me.file = LOCATE_opts;
458 fra.me.line = 78;
459 fra.me.meth = LOCATE_opts___Option___read_param;
460 fra.me.has_broke = 0;
461 fra.me.REG_size = 0;
462 /* ./../lib/opts.nit:78 */
463 fprintf(stderr, "Deferred method called");
464 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 78);
465 nit_exit(1);
466 stack_frame_head = fra.me.prev;
467 return;
468 }
469 val_t opts___OptionText___to_s(val_t p0){
470 struct {struct stack_frame_t me;} fra;
471 val_t tmp;
472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
473 fra.me.file = LOCATE_opts;
474 fra.me.line = 88;
475 fra.me.meth = LOCATE_opts___OptionText___to_s;
476 fra.me.has_broke = 0;
477 fra.me.REG_size = 1;
478 fra.me.REG[0] = NIT_NULL;
479 fra.me.REG[0] = p0;
480 fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
481 /* ./../lib/opts.nit:88 */
482 goto label1;
483 label1: while(0);
484 stack_frame_head = fra.me.prev;
485 return fra.me.REG[0];
486 }
487 val_t opts___OptionText___pretty(val_t p0, val_t p1){
488 struct {struct stack_frame_t me;} fra;
489 val_t REGB0;
490 val_t tmp;
491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
492 fra.me.file = LOCATE_opts;
493 fra.me.line = 86;
494 fra.me.meth = LOCATE_opts___OptionText___pretty;
495 fra.me.has_broke = 0;
496 fra.me.REG_size = 1;
497 fra.me.REG[0] = NIT_NULL;
498 fra.me.REG[0] = p0;
499 REGB0 = p1;
500 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
501 /* ./../lib/opts.nit:86 */
502 goto label1;
503 label1: while(0);
504 stack_frame_head = fra.me.prev;
505 return fra.me.REG[0];
506 }
507 void opts___OptionText___init(val_t p0, val_t p1, int* init_table){
508 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionText].i;
509 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
510 val_t tmp;
511 if (init_table[itpos1]) return;
512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
513 fra.me.file = LOCATE_opts;
514 fra.me.line = 84;
515 fra.me.meth = LOCATE_opts___OptionText___init;
516 fra.me.has_broke = 0;
517 fra.me.REG_size = 2;
518 fra.me.REG[0] = NIT_NULL;
519 fra.me.REG[1] = NIT_NULL;
520 fra.me.REG[0] = p0;
521 fra.me.REG[1] = p1;
522 /* ./../lib/opts.nit:84 */
523 CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, NIT_NULL, init_table);
524 stack_frame_head = fra.me.prev;
525 init_table[itpos1] = 1;
526 return;
527 }
528 void opts___OptionBool___read_param(val_t p0, val_t p1){
529 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
530 val_t REGB0;
531 val_t tmp;
532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
533 fra.me.file = LOCATE_opts;
534 fra.me.line = 97;
535 fra.me.meth = LOCATE_opts___OptionBool___read_param;
536 fra.me.has_broke = 0;
537 fra.me.REG_size = 2;
538 fra.me.REG[0] = NIT_NULL;
539 fra.me.REG[1] = NIT_NULL;
540 fra.me.REG[0] = p0;
541 fra.me.REG[1] = p1;
542 REGB0 = TAG_Bool(true);
543 /* ./../lib/opts.nit:97 */
544 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
545 stack_frame_head = fra.me.prev;
546 return;
547 }
548 void opts___OptionBool___init(val_t p0, val_t p1, val_t p2, int* init_table){
549 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionBool].i;
550 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
551 val_t REGB0;
552 val_t tmp;
553 if (init_table[itpos2]) return;
554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
555 fra.me.file = LOCATE_opts;
556 fra.me.line = 95;
557 fra.me.meth = LOCATE_opts___OptionBool___init;
558 fra.me.has_broke = 0;
559 fra.me.REG_size = 3;
560 fra.me.REG[0] = NIT_NULL;
561 fra.me.REG[1] = NIT_NULL;
562 fra.me.REG[2] = NIT_NULL;
563 fra.me.REG[0] = p0;
564 fra.me.REG[1] = p1;
565 fra.me.REG[2] = p2;
566 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/;
567 /* ./../lib/opts.nit:95 */
568 if (UNTAG_Bool(REGB0)) {
569 } else {
570 fprintf(stderr, "Cast failed");
571 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 95);
572 nit_exit(1);
573 }
574 REGB0 = TAG_Bool(false);
575 CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
576 stack_frame_head = fra.me.prev;
577 init_table[itpos2] = 1;
578 return;
579 }
580 void opts___OptionCount___read_param(val_t p0, val_t p1){
581 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
582 val_t REGB0;
583 val_t tmp;
584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
585 fra.me.file = LOCATE_opts;
586 fra.me.line = 106;
587 fra.me.meth = LOCATE_opts___OptionCount___read_param;
588 fra.me.has_broke = 0;
589 fra.me.REG_size = 2;
590 fra.me.REG[0] = NIT_NULL;
591 fra.me.REG[1] = NIT_NULL;
592 fra.me.REG[0] = p0;
593 fra.me.REG[1] = p1;
594 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
595 REGB0 = TAG_Int(1);
596 REGB0 = TAG_Int(UNTAG_Int(fra.me.REG[1])+UNTAG_Int(REGB0));
597 /* ./../lib/opts.nit:106 */
598 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
599 stack_frame_head = fra.me.prev;
600 return;
601 }
602 void opts___OptionCount___init(val_t p0, val_t p1, val_t p2, int* init_table){
603 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionCount].i;
604 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
605 val_t REGB0;
606 val_t tmp;
607 if (init_table[itpos3]) return;
608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
609 fra.me.file = LOCATE_opts;
610 fra.me.line = 104;
611 fra.me.meth = LOCATE_opts___OptionCount___init;
612 fra.me.has_broke = 0;
613 fra.me.REG_size = 3;
614 fra.me.REG[0] = NIT_NULL;
615 fra.me.REG[1] = NIT_NULL;
616 fra.me.REG[2] = NIT_NULL;
617 fra.me.REG[0] = p0;
618 fra.me.REG[1] = p1;
619 fra.me.REG[2] = p2;
620 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/;
621 /* ./../lib/opts.nit:104 */
622 if (UNTAG_Bool(REGB0)) {
623 } else {
624 fprintf(stderr, "Cast failed");
625 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 104);
626 nit_exit(1);
627 }
628 REGB0 = TAG_Int(0);
629 CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
630 stack_frame_head = fra.me.prev;
631 init_table[itpos3] = 1;
632 return;
633 }
634 void opts___OptionParameter___read_param(val_t p0, val_t p1){
635 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
636 val_t REGB0;
637 val_t tmp;
638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
639 fra.me.file = LOCATE_opts;
640 fra.me.line = 114;
641 fra.me.meth = LOCATE_opts___OptionParameter___read_param;
642 fra.me.has_broke = 0;
643 fra.me.REG_size = 3;
644 fra.me.REG[0] = NIT_NULL;
645 fra.me.REG[1] = NIT_NULL;
646 fra.me.REG[2] = NIT_NULL;
647 fra.me.REG[0] = p0;
648 fra.me.REG[1] = p1;
649 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
650 /* ./../lib/opts.nit:116 */
651 if (UNTAG_Bool(REGB0)) {
652 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
653 fra.me.REG[2] = CALL_opts___OptionParameter___convert(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
654 /* ./../lib/opts.nit:117 */
655 CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
656 /* ./../lib/opts.nit:118 */
657 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
658 }
659 stack_frame_head = fra.me.prev;
660 return;
661 }
662 val_t opts___OptionParameter___convert(val_t p0, val_t p1){
663 struct {struct stack_frame_t me;} fra;
664 val_t tmp;
665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
666 fra.me.file = LOCATE_opts;
667 fra.me.line = 112;
668 fra.me.meth = LOCATE_opts___OptionParameter___convert;
669 fra.me.has_broke = 0;
670 fra.me.REG_size = 0;
671 /* ./../lib/opts.nit:112 */
672 fprintf(stderr, "Deferred method called");
673 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 112);
674 nit_exit(1);
675 stack_frame_head = fra.me.prev;
676 return NIT_NULL;
677 }
678 void opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
679 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionParameter].i;
680 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
681 val_t tmp;
682 if (init_table[itpos4]) return;
683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
684 fra.me.file = LOCATE_opts;
685 fra.me.line = 124;
686 fra.me.meth = LOCATE_opts___OptionParameter___init_opt;
687 fra.me.has_broke = 0;
688 fra.me.REG_size = 4;
689 fra.me.REG[0] = NIT_NULL;
690 fra.me.REG[1] = NIT_NULL;
691 fra.me.REG[2] = NIT_NULL;
692 fra.me.REG[3] = NIT_NULL;
693 fra.me.REG[0] = p0;
694 fra.me.REG[1] = p1;
695 fra.me.REG[2] = p2;
696 fra.me.REG[3] = p3;
697 /* ./../lib/opts.nit:124 */
698 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);
699 stack_frame_head = fra.me.prev;
700 init_table[itpos4] = 1;
701 return;
702 }
703 val_t opts___OptionString___convert(val_t p0, val_t p1){
704 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
705 val_t tmp;
706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
707 fra.me.file = LOCATE_opts;
708 fra.me.line = 133;
709 fra.me.meth = LOCATE_opts___OptionString___convert;
710 fra.me.has_broke = 0;
711 fra.me.REG_size = 2;
712 fra.me.REG[0] = NIT_NULL;
713 fra.me.REG[1] = NIT_NULL;
714 fra.me.REG[0] = p0;
715 fra.me.REG[1] = p1;
716 /* ./../lib/opts.nit:133 */
717 goto label1;
718 label1: while(0);
719 stack_frame_head = fra.me.prev;
720 return fra.me.REG[1];
721 }
722 void opts___OptionString___init(val_t p0, val_t p1, val_t p2, int* init_table){
723 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionString].i;
724 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
725 val_t REGB0;
726 val_t tmp;
727 if (init_table[itpos5]) return;
728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
729 fra.me.file = LOCATE_opts;
730 fra.me.line = 131;
731 fra.me.meth = LOCATE_opts___OptionString___init;
732 fra.me.has_broke = 0;
733 fra.me.REG_size = 3;
734 fra.me.REG[0] = NIT_NULL;
735 fra.me.REG[1] = NIT_NULL;
736 fra.me.REG[2] = NIT_NULL;
737 fra.me.REG[0] = p0;
738 fra.me.REG[1] = p1;
739 fra.me.REG[2] = p2;
740 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/;
741 /* ./../lib/opts.nit:131 */
742 if (UNTAG_Bool(REGB0)) {
743 } else {
744 fprintf(stderr, "Cast failed");
745 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 131);
746 nit_exit(1);
747 }
748 CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, fra.me.REG[2], init_table);
749 stack_frame_head = fra.me.prev;
750 init_table[itpos5] = 1;
751 return;
752 }
753 val_t opts___OptionEnum___pretty_default(val_t p0){
754 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
755 val_t REGB0;
756 val_t REGB1;
757 val_t REGB2;
758 val_t tmp;
759 static val_t once_value_1; /* Once value */
760 static val_t once_value_3; /* Once value */
761 static val_t once_value_5; /* Once value */
762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
763 fra.me.file = LOCATE_opts;
764 fra.me.line = 154;
765 fra.me.meth = LOCATE_opts___OptionEnum___pretty_default;
766 fra.me.has_broke = 0;
767 fra.me.REG_size = 3;
768 fra.me.REG[0] = NIT_NULL;
769 fra.me.REG[1] = NIT_NULL;
770 fra.me.REG[2] = NIT_NULL;
771 fra.me.REG[0] = p0;
772 fra.me.REG[1] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
773 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
774 /* ./../lib/opts.nit:156 */
775 if (UNTAG_Bool(REGB0)) {
776 } else {
777 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
778 if (UNTAG_Bool(REGB1)) {
779 REGB1 = TAG_Bool(false);
780 REGB0 = REGB1;
781 } else {
782 REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
783 REGB0 = REGB1;
784 /* ./../lib/opts.nit:156 */
785 }
786 }
787 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
788 if (UNTAG_Bool(REGB0)) {
789 REGB0 = TAG_Int(3);
790 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
791 /* ./../lib/opts.nit:157 */
792 if (!once_value_1) {
793 fra.me.REG[2] = BOX_NativeString(" (");
794 REGB0 = TAG_Int(2);
795 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
796 once_value_1 = fra.me.REG[2];
797 register_static_object(&once_value_1);
798 } else fra.me.REG[2] = once_value_1;
799 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
800 REGB0 = TAG_Bool(ATTR_opts___OptionEnum____enum(fra.me.REG[0])!=NIT_NULL);
801 if (UNTAG_Bool(REGB0)) {
802 } else {
803 fprintf(stderr, "Uninitialized attribute %s", "_enum");
804 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 157);
805 nit_exit(1);
806 }
807 fra.me.REG[2] = ATTR_opts___OptionEnum____enum(fra.me.REG[0]);
808 fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
809 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_Int, ID_Int)) /*cast VALUE*/;
810 if (UNTAG_Bool(REGB0)) {
811 } else {
812 fprintf(stderr, "Cast failed");
813 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 157);
814 nit_exit(1);
815 }
816 REGB0 = fra.me.REG[0];
817 REGB1 = TAG_Int(0);
818 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
819 /* ./../lib/standard//collection//array.nit:233 */
820 if (UNTAG_Bool(REGB1)) {
821 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
822 if (UNTAG_Bool(REGB1)) {
823 } else {
824 fprintf(stderr, "Uninitialized attribute %s", "_length");
825 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
826 nit_exit(1);
827 }
828 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
829 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
830 /* ./../lib/standard//collection//array.nit:233 */
831 } else {
832 REGB2 = TAG_Bool(false);
833 REGB1 = REGB2;
834 }
835 if (UNTAG_Bool(REGB1)) {
836 } else {
837 fprintf(stderr, "Assert %s failed", "'index'");
838 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
839 nit_exit(1);
840 }
841 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
843 /* ./../lib/standard//collection//array.nit:234 */
844 if (UNTAG_Bool(REGB1)) {
845 fprintf(stderr, "Reciever is null");
846 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
847 nit_exit(1);
848 }
849 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
850 /* ./../lib/standard//collection//array.nit:234 */
851 goto label2;
852 label2: while(0);
853 /* ./../lib/opts.nit:157 */
854 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
855 if (!once_value_3) {
856 fra.me.REG[2] = BOX_NativeString(")");
857 REGB0 = TAG_Int(1);
858 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
859 once_value_3 = fra.me.REG[2];
860 register_static_object(&once_value_3);
861 } else fra.me.REG[2] = once_value_3;
862 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
863 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
864 goto label4;
865 } else {
866 /* ./../lib/opts.nit:159 */
867 if (!once_value_5) {
868 fra.me.REG[2] = BOX_NativeString("");
869 REGB0 = TAG_Int(0);
870 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
871 once_value_5 = fra.me.REG[2];
872 register_static_object(&once_value_5);
873 } else fra.me.REG[2] = once_value_5;
874 fra.me.REG[1] = fra.me.REG[2];
875 goto label4;
876 }
877 label4: while(0);
878 stack_frame_head = fra.me.prev;
879 return fra.me.REG[1];
880 }
881 val_t opts___OptionEnum___convert(val_t p0, val_t p1){
882 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
883 val_t REGB0;
884 val_t tmp;
885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
886 fra.me.file = LOCATE_opts;
887 fra.me.line = 148;
888 fra.me.meth = LOCATE_opts___OptionEnum___convert;
889 fra.me.has_broke = 0;
890 fra.me.REG_size = 2;
891 fra.me.REG[0] = NIT_NULL;
892 fra.me.REG[1] = NIT_NULL;
893 fra.me.REG[0] = p0;
894 fra.me.REG[1] = p1;
895 REGB0 = TAG_Bool(ATTR_opts___OptionEnum____enum(fra.me.REG[0])!=NIT_NULL);
896 /* ./../lib/opts.nit:150 */
897 if (UNTAG_Bool(REGB0)) {
898 } else {
899 fprintf(stderr, "Uninitialized attribute %s", "_enum");
900 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 150);
901 nit_exit(1);
902 }
903 fra.me.REG[0] = ATTR_opts___OptionEnum____enum(fra.me.REG[0]);
904 REGB0 = CALL_abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
905 /* ./../lib/opts.nit:151 */
906 goto label1;
907 label1: while(0);
908 stack_frame_head = fra.me.prev;
909 return REGB0;
910 }
911 void opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
912 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionEnum].i;
913 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
914 val_t REGB0;
915 val_t REGB1;
916 val_t REGB2;
917 val_t tmp;
918 static val_t once_value_1; /* Once value */
919 static val_t once_value_2; /* Once value */
920 static val_t once_value_3; /* Once value */
921 static val_t once_value_4; /* Once value */
922 if (init_table[itpos6]) return;
923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
924 fra.me.file = LOCATE_opts;
925 fra.me.line = 141;
926 fra.me.meth = LOCATE_opts___OptionEnum___init;
927 fra.me.has_broke = 0;
928 fra.me.REG_size = 6;
929 fra.me.REG[0] = NIT_NULL;
930 fra.me.REG[1] = NIT_NULL;
931 fra.me.REG[2] = NIT_NULL;
932 fra.me.REG[3] = NIT_NULL;
933 fra.me.REG[4] = NIT_NULL;
934 fra.me.REG[5] = NIT_NULL;
935 fra.me.REG[0] = p0;
936 fra.me.REG[1] = p1;
937 fra.me.REG[2] = p2;
938 REGB0 = p3;
939 fra.me.REG[3] = p4;
940 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[String]*/;
941 /* ./../lib/opts.nit:141 */
942 if (UNTAG_Bool(REGB1)) {
943 } else {
944 fprintf(stderr, "Cast failed");
945 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 141);
946 nit_exit(1);
947 }
948 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
949 /* ./../lib/standard//collection//array.nit:23 */
950 if (UNTAG_Bool(REGB1)) {
951 } else {
952 fprintf(stderr, "Uninitialized attribute %s", "_length");
953 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
954 nit_exit(1);
955 }
956 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
957 REGB2 = TAG_Int(0);
958 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
959 /* ./../lib/opts.nit:143 */
960 if (UNTAG_Bool(REGB2)) {
961 } else {
962 fprintf(stderr, "Assert failed");
963 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 143);
964 nit_exit(1);
965 }
966 fra.me.REG[4] = CALL_array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
967 /* ./../lib/opts.nit:144 */
968 ATTR_opts___OptionEnum____enum(fra.me.REG[0]) = fra.me.REG[4];
969 REGB2 = TAG_Int(5);
970 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
971 /* ./../lib/opts.nit:145 */
972 if (!once_value_1) {
973 fra.me.REG[5] = BOX_NativeString("");
974 REGB2 = TAG_Int(0);
975 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
976 once_value_1 = fra.me.REG[5];
977 register_static_object(&once_value_1);
978 } else fra.me.REG[5] = once_value_1;
979 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
980 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
981 if (!once_value_2) {
982 fra.me.REG[2] = BOX_NativeString(" <");
983 REGB2 = TAG_Int(2);
984 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
985 once_value_2 = fra.me.REG[2];
986 register_static_object(&once_value_2);
987 } else fra.me.REG[2] = once_value_2;
988 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
989 if (!once_value_3) {
990 fra.me.REG[2] = BOX_NativeString(", ");
991 REGB2 = TAG_Int(2);
992 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
993 once_value_3 = fra.me.REG[2];
994 register_static_object(&once_value_3);
995 } else fra.me.REG[2] = once_value_3;
996 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
997 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
998 if (!once_value_4) {
999 fra.me.REG[2] = BOX_NativeString(">");
1000 REGB2 = TAG_Int(1);
1001 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
1002 once_value_4 = fra.me.REG[2];
1003 register_static_object(&once_value_4);
1004 } else fra.me.REG[2] = once_value_4;
1005 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
1006 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1007 CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], REGB0, fra.me.REG[3], init_table);
1008 stack_frame_head = fra.me.prev;
1009 init_table[itpos6] = 1;
1010 return;
1011 }
1012 val_t opts___OptionInt___convert(val_t p0, val_t p1){
1013 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1014 val_t REGB0;
1015 val_t tmp;
1016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1017 fra.me.file = LOCATE_opts;
1018 fra.me.line = 170;
1019 fra.me.meth = LOCATE_opts___OptionInt___convert;
1020 fra.me.has_broke = 0;
1021 fra.me.REG_size = 2;
1022 fra.me.REG[0] = NIT_NULL;
1023 fra.me.REG[1] = NIT_NULL;
1024 fra.me.REG[0] = p0;
1025 fra.me.REG[1] = p1;
1026 REGB0 = CALL_string___AbstractString___to_i(fra.me.REG[1])(fra.me.REG[1]);
1027 /* ./../lib/opts.nit:170 */
1028 goto label1;
1029 label1: while(0);
1030 stack_frame_head = fra.me.prev;
1031 return REGB0;
1032 }
1033 void opts___OptionInt___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1034 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionInt].i;
1035 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1036 val_t REGB0;
1037 val_t REGB1;
1038 val_t tmp;
1039 if (init_table[itpos7]) return;
1040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1041 fra.me.file = LOCATE_opts;
1042 fra.me.line = 168;
1043 fra.me.meth = LOCATE_opts___OptionInt___init;
1044 fra.me.has_broke = 0;
1045 fra.me.REG_size = 3;
1046 fra.me.REG[0] = NIT_NULL;
1047 fra.me.REG[1] = NIT_NULL;
1048 fra.me.REG[2] = NIT_NULL;
1049 fra.me.REG[0] = p0;
1050 fra.me.REG[1] = p1;
1051 REGB0 = p2;
1052 fra.me.REG[2] = p3;
1053 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/;
1054 /* ./../lib/opts.nit:168 */
1055 if (UNTAG_Bool(REGB1)) {
1056 } else {
1057 fprintf(stderr, "Cast failed");
1058 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 168);
1059 nit_exit(1);
1060 }
1061 CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
1062 stack_frame_head = fra.me.prev;
1063 init_table[itpos7] = 1;
1064 return;
1065 }
1066 val_t opts___OptionArray___convert(val_t p0, val_t p1){
1067 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1068 val_t REGB0;
1069 val_t tmp;
1070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1071 fra.me.file = LOCATE_opts;
1072 fra.me.line = 184;
1073 fra.me.meth = LOCATE_opts___OptionArray___convert;
1074 fra.me.has_broke = 0;
1075 fra.me.REG_size = 3;
1076 fra.me.REG[0] = NIT_NULL;
1077 fra.me.REG[1] = NIT_NULL;
1078 fra.me.REG[2] = NIT_NULL;
1079 fra.me.REG[0] = p0;
1080 fra.me.REG[1] = p1;
1081 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
1082 /* ./../lib/opts.nit:186 */
1083 if (UNTAG_Bool(REGB0)) {
1084 } else {
1085 fprintf(stderr, "Uninitialized attribute %s", "_values");
1086 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 186);
1087 nit_exit(1);
1088 }
1089 fra.me.REG[2] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
1090 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
1091 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
1092 /* ./../lib/opts.nit:187 */
1093 if (UNTAG_Bool(REGB0)) {
1094 } else {
1095 fprintf(stderr, "Uninitialized attribute %s", "_values");
1096 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 187);
1097 nit_exit(1);
1098 }
1099 fra.me.REG[0] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
1100 goto label1;
1101 label1: while(0);
1102 stack_frame_head = fra.me.prev;
1103 return fra.me.REG[0];
1104 }
1105 void opts___OptionArray___init(val_t p0, val_t p1, val_t p2, int* init_table){
1106 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionArray].i;
1107 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1108 val_t REGB0;
1109 val_t tmp;
1110 if (init_table[itpos8]) return;
1111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1112 fra.me.file = LOCATE_opts;
1113 fra.me.line = 177;
1114 fra.me.meth = LOCATE_opts___OptionArray___init;
1115 fra.me.has_broke = 0;
1116 fra.me.REG_size = 4;
1117 fra.me.REG[0] = NIT_NULL;
1118 fra.me.REG[1] = NIT_NULL;
1119 fra.me.REG[2] = NIT_NULL;
1120 fra.me.REG[3] = NIT_NULL;
1121 fra.me.REG[0] = p0;
1122 fra.me.REG[1] = p1;
1123 fra.me.REG[2] = p2;
1124 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/;
1125 /* ./../lib/opts.nit:177 */
1126 if (UNTAG_Bool(REGB0)) {
1127 } else {
1128 fprintf(stderr, "Cast failed");
1129 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 177);
1130 nit_exit(1);
1131 }
1132 fra.me.REG[3] = NEW_Array_array___Array___init();
1133 /* ./../lib/opts.nit:179 */
1134 ATTR_opts___OptionArray____values(fra.me.REG[0]) = fra.me.REG[3];
1135 REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
1136 /* ./../lib/opts.nit:180 */
1137 if (UNTAG_Bool(REGB0)) {
1138 } else {
1139 fprintf(stderr, "Uninitialized attribute %s", "_values");
1140 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 180);
1141 nit_exit(1);
1142 }
1143 fra.me.REG[3] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
1144 CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], init_table);
1145 stack_frame_head = fra.me.prev;
1146 init_table[itpos8] = 1;
1147 return;
1148 }
1149 val_t opts___OptionContext___options(val_t p0){
1150 struct {struct stack_frame_t me;} fra;
1151 val_t REGB0;
1152 val_t tmp;
1153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1154 fra.me.file = LOCATE_opts;
1155 fra.me.line = 192;
1156 fra.me.meth = LOCATE_opts___OptionContext___options;
1157 fra.me.has_broke = 0;
1158 fra.me.REG_size = 1;
1159 fra.me.REG[0] = NIT_NULL;
1160 fra.me.REG[0] = p0;
1161 REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1162 /* ./../lib/opts.nit:192 */
1163 if (UNTAG_Bool(REGB0)) {
1164 } else {
1165 fprintf(stderr, "Uninitialized attribute %s", "_options");
1166 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 192);
1167 nit_exit(1);
1168 }
1169 fra.me.REG[0] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1170 stack_frame_head = fra.me.prev;
1171 return fra.me.REG[0];
1172 }
1173 val_t opts___OptionContext___rest(val_t p0){
1174 struct {struct stack_frame_t me;} fra;
1175 val_t REGB0;
1176 val_t tmp;
1177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1178 fra.me.file = LOCATE_opts;
1179 fra.me.line = 193;
1180 fra.me.meth = LOCATE_opts___OptionContext___rest;
1181 fra.me.has_broke = 0;
1182 fra.me.REG_size = 1;
1183 fra.me.REG[0] = NIT_NULL;
1184 fra.me.REG[0] = p0;
1185 REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
1186 /* ./../lib/opts.nit:193 */
1187 if (UNTAG_Bool(REGB0)) {
1188 } else {
1189 fprintf(stderr, "Uninitialized attribute %s", "_rest");
1190 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 193);
1191 nit_exit(1);
1192 }
1193 fra.me.REG[0] = ATTR_opts___OptionContext____rest(fra.me.REG[0]);
1194 stack_frame_head = fra.me.prev;
1195 return fra.me.REG[0];
1196 }
1197 void opts___OptionContext___usage(val_t p0){
1198 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1199 val_t REGB0;
1200 val_t REGB1;
1201 val_t REGB2;
1202 val_t REGB3;
1203 val_t tmp;
1204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1205 fra.me.file = LOCATE_opts;
1206 fra.me.line = 197;
1207 fra.me.meth = LOCATE_opts___OptionContext___usage;
1208 fra.me.has_broke = 0;
1209 fra.me.REG_size = 4;
1210 fra.me.REG[0] = NIT_NULL;
1211 fra.me.REG[1] = NIT_NULL;
1212 fra.me.REG[2] = NIT_NULL;
1213 fra.me.REG[3] = NIT_NULL;
1214 fra.me.REG[0] = p0;
1215 REGB0 = TAG_Int(1);
1216 REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1217 /* ./../lib/opts.nit:200 */
1218 if (UNTAG_Bool(REGB1)) {
1219 } else {
1220 fprintf(stderr, "Uninitialized attribute %s", "_options");
1221 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 200);
1222 nit_exit(1);
1223 }
1224 fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1225 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1226 while(1) {
1227 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1228 if (UNTAG_Bool(REGB1)) {
1229 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1230 REGB1 = TAG_Int(3);
1231 fra.me.REG[2] = CALL_opts___Option___names(fra.me.REG[2])(fra.me.REG[2]);
1232 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
1233 /* ./../lib/opts.nit:202 */
1234 while(1) {
1235 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
1236 if (UNTAG_Bool(REGB2)) {
1237 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
1238 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1239 /* ./../lib/standard//collection//array.nit:23 */
1240 if (UNTAG_Bool(REGB2)) {
1241 } else {
1242 fprintf(stderr, "Uninitialized attribute %s", "_length");
1243 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1244 nit_exit(1);
1245 }
1246 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1247 REGB3 = TAG_Int(2);
1248 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1249 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1250 REGB1 = REGB3;
1251 /* ./../lib/opts.nit:203 */
1252 } else {
1253 /* ./../lib/opts.nit:202 */
1254 goto label1;
1255 }
1256 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
1257 }
1258 label1: while(0);
1259 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1260 /* ./../lib/opts.nit:205 */
1261 if (UNTAG_Bool(REGB3)) {
1262 REGB0 = REGB1;
1263 }
1264 } else {
1265 /* ./../lib/opts.nit:200 */
1266 goto label2;
1267 }
1268 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1269 }
1270 label2: while(0);
1271 REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1272 /* ./../lib/opts.nit:208 */
1273 if (UNTAG_Bool(REGB1)) {
1274 } else {
1275 fprintf(stderr, "Uninitialized attribute %s", "_options");
1276 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 208);
1277 nit_exit(1);
1278 }
1279 fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1280 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1281 while(1) {
1282 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1283 if (UNTAG_Bool(REGB1)) {
1284 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1285 fra.me.REG[2] = CALL_opts___Option___pretty(fra.me.REG[2])(fra.me.REG[2], REGB0);
1286 /* ./../lib/opts.nit:209 */
1287 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1288 } else {
1289 /* ./../lib/opts.nit:208 */
1290 goto label3;
1291 }
1292 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1293 }
1294 label3: while(0);
1295 stack_frame_head = fra.me.prev;
1296 return;
1297 }
1298 void opts___OptionContext___parse(val_t p0, val_t p1){
1299 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1300 val_t tmp;
1301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1302 fra.me.file = LOCATE_opts;
1303 fra.me.line = 213;
1304 fra.me.meth = LOCATE_opts___OptionContext___parse;
1305 fra.me.has_broke = 0;
1306 fra.me.REG_size = 2;
1307 fra.me.REG[0] = NIT_NULL;
1308 fra.me.REG[1] = NIT_NULL;
1309 fra.me.REG[0] = p0;
1310 fra.me.REG[1] = p1;
1311 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1312 /* ./../lib/opts.nit:217 */
1313 CALL_opts___OptionContext___parse_intern(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1314 stack_frame_head = fra.me.prev;
1315 return;
1316 }
1317 void opts___OptionContext___parse_intern(val_t p0, val_t p1){
1318 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1319 val_t REGB0;
1320 val_t REGB1;
1321 val_t REGB2;
1322 val_t tmp;
1323 static val_t once_value_1; /* Once value */
1324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1325 fra.me.file = LOCATE_opts;
1326 fra.me.line = 220;
1327 fra.me.meth = LOCATE_opts___OptionContext___parse_intern;
1328 fra.me.has_broke = 0;
1329 fra.me.REG_size = 5;
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[0] = p0;
1336 fra.me.REG[1] = p1;
1337 REGB0 = TAG_Bool(true);
1338 /* ./../lib/opts.nit:223 */
1339 CALL_opts___OptionContext___build(fra.me.REG[0])(fra.me.REG[0]);
1340 REGB1 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
1341 /* ./../lib/opts.nit:224 */
1342 if (UNTAG_Bool(REGB1)) {
1343 } else {
1344 fprintf(stderr, "Uninitialized attribute %s", "_rest");
1345 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 224);
1346 nit_exit(1);
1347 }
1348 fra.me.REG[2] = ATTR_opts___OptionContext____rest(fra.me.REG[0]);
1349 /* ./../lib/opts.nit:226 */
1350 while(1) {
1351 if (UNTAG_Bool(REGB0)) {
1352 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1353 } else {
1354 REGB2 = TAG_Bool(false);
1355 REGB1 = REGB2;
1356 }
1357 if (UNTAG_Bool(REGB1)) {
1358 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1359 /* ./../lib/opts.nit:228 */
1360 if (!once_value_1) {
1361 fra.me.REG[4] = BOX_NativeString("--");
1362 REGB1 = TAG_Int(2);
1363 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1364 once_value_1 = fra.me.REG[4];
1365 register_static_object(&once_value_1);
1366 } else fra.me.REG[4] = once_value_1;
1367 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1368 if (UNTAG_Bool(REGB1)) {
1369 } else {
1370 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1371 REGB1 = REGB2;
1372 }
1373 if (UNTAG_Bool(REGB1)) {
1374 /* ./../lib/opts.nit:229 */
1375 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1376 fra.me.REG[4] = CALL_array___Iterator___to_a(fra.me.REG[1])(fra.me.REG[1]);
1377 /* ./../lib/opts.nit:230 */
1378 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1379 REGB1 = TAG_Bool(false);
1380 REGB0 = REGB1;
1381 /* ./../lib/opts.nit:231 */
1382 } else {
1383 REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1384 /* ./../lib/opts.nit:233 */
1385 if (UNTAG_Bool(REGB1)) {
1386 } else {
1387 fprintf(stderr, "Uninitialized attribute %s", "_optmap");
1388 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 233);
1389 nit_exit(1);
1390 }
1391 fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1392 REGB1 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1393 if (UNTAG_Bool(REGB1)) {
1394 REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1395 /* ./../lib/opts.nit:234 */
1396 if (UNTAG_Bool(REGB1)) {
1397 } else {
1398 fprintf(stderr, "Uninitialized attribute %s", "_optmap");
1399 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 234);
1400 nit_exit(1);
1401 }
1402 fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1403 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1404 /* ./../lib/opts.nit:235 */
1405 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1406 /* ./../lib/opts.nit:236 */
1407 CALL_opts___Option___read_param(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1408 } else {
1409 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1410 /* ./../lib/opts.nit:238 */
1411 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1412 /* ./../lib/opts.nit:239 */
1413 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1414 }
1415 }
1416 } else {
1417 /* ./../lib/opts.nit:226 */
1418 goto label2;
1419 }
1420 }
1421 label2: while(0);
1422 stack_frame_head = fra.me.prev;
1423 return;
1424 }
1425 void opts___OptionContext___add_option(val_t p0, val_t p1){
1426 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1427 val_t REGB0;
1428 val_t tmp;
1429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1430 fra.me.file = LOCATE_opts;
1431 fra.me.line = 245;
1432 fra.me.meth = LOCATE_opts___OptionContext___add_option;
1433 fra.me.has_broke = 0;
1434 fra.me.REG_size = 4;
1435 fra.me.REG[0] = NIT_NULL;
1436 fra.me.REG[1] = NIT_NULL;
1437 fra.me.REG[2] = NIT_NULL;
1438 fra.me.REG[3] = NIT_NULL;
1439 fra.me.REG[0] = p0;
1440 fra.me.REG[1] = p1;
1441 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_Array, ID_Array)) /*cast Array[Option]*/;
1442 /* ./../lib/opts.nit:245 */
1443 if (UNTAG_Bool(REGB0)) {
1444 } else {
1445 fprintf(stderr, "Cast failed");
1446 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 245);
1447 nit_exit(1);
1448 }
1449 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1450 /* ./../lib/opts.nit:247 */
1451 while(1) {
1452 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1453 if (UNTAG_Bool(REGB0)) {
1454 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1455 REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1456 /* ./../lib/opts.nit:248 */
1457 if (UNTAG_Bool(REGB0)) {
1458 } else {
1459 fprintf(stderr, "Uninitialized attribute %s", "_options");
1460 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 248);
1461 nit_exit(1);
1462 }
1463 fra.me.REG[3] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1464 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1465 } else {
1466 /* ./../lib/opts.nit:247 */
1467 goto label1;
1468 }
1469 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1470 }
1471 label1: while(0);
1472 stack_frame_head = fra.me.prev;
1473 return;
1474 }
1475 void opts___OptionContext___init(val_t p0, int* init_table){
1476 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionContext].i;
1477 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1478 val_t tmp;
1479 if (init_table[itpos9]) return;
1480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1481 fra.me.file = LOCATE_opts;
1482 fra.me.line = 252;
1483 fra.me.meth = LOCATE_opts___OptionContext___init;
1484 fra.me.has_broke = 0;
1485 fra.me.REG_size = 2;
1486 fra.me.REG[0] = NIT_NULL;
1487 fra.me.REG[1] = NIT_NULL;
1488 fra.me.REG[0] = p0;
1489 fra.me.REG[1] = NEW_Array_array___Array___init();
1490 /* ./../lib/opts.nit:254 */
1491 ATTR_opts___OptionContext____options(fra.me.REG[0]) = fra.me.REG[1];
1492 fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
1493 /* ./../lib/opts.nit:255 */
1494 ATTR_opts___OptionContext____optmap(fra.me.REG[0]) = fra.me.REG[1];
1495 fra.me.REG[1] = NEW_Array_array___Array___init();
1496 /* ./../lib/opts.nit:256 */
1497 ATTR_opts___OptionContext____rest(fra.me.REG[0]) = fra.me.REG[1];
1498 stack_frame_head = fra.me.prev;
1499 init_table[itpos9] = 1;
1500 return;
1501 }
1502 void opts___OptionContext___build(val_t p0){
1503 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1504 val_t REGB0;
1505 val_t tmp;
1506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1507 fra.me.file = LOCATE_opts;
1508 fra.me.line = 259;
1509 fra.me.meth = LOCATE_opts___OptionContext___build;
1510 fra.me.has_broke = 0;
1511 fra.me.REG_size = 6;
1512 fra.me.REG[0] = NIT_NULL;
1513 fra.me.REG[1] = NIT_NULL;
1514 fra.me.REG[2] = NIT_NULL;
1515 fra.me.REG[3] = NIT_NULL;
1516 fra.me.REG[4] = NIT_NULL;
1517 fra.me.REG[5] = NIT_NULL;
1518 fra.me.REG[0] = p0;
1519 REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
1520 /* ./../lib/opts.nit:261 */
1521 if (UNTAG_Bool(REGB0)) {
1522 } else {
1523 fprintf(stderr, "Uninitialized attribute %s", "_options");
1524 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 261);
1525 nit_exit(1);
1526 }
1527 fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
1528 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1529 while(1) {
1530 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1531 if (UNTAG_Bool(REGB0)) {
1532 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1533 fra.me.REG[3] = CALL_opts___Option___names(fra.me.REG[2])(fra.me.REG[2]);
1534 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1535 /* ./../lib/opts.nit:262 */
1536 while(1) {
1537 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1538 if (UNTAG_Bool(REGB0)) {
1539 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1540 REGB0 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
1541 /* ./../lib/opts.nit:263 */
1542 if (UNTAG_Bool(REGB0)) {
1543 } else {
1544 fprintf(stderr, "Uninitialized attribute %s", "_optmap");
1545 fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 263);
1546 nit_exit(1);
1547 }
1548 fra.me.REG[5] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
1549 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[2]);
1550 } else {
1551 /* ./../lib/opts.nit:262 */
1552 goto label1;
1553 }
1554 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1555 }
1556 label1: while(0);
1557 } else {
1558 /* ./../lib/opts.nit:261 */
1559 goto label2;
1560 }
1561 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1562 }
1563 label2: while(0);
1564 stack_frame_head = fra.me.prev;
1565 return;
1566 }