c_src: update
[nit.git] / c_src / string._sep.c
1 /* This C file is generated by NIT to compile module string. */
2 #include "string._sep.h"
3 void string___AbstractString___output(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_string;
10 fra.me.line = 151;
11 fra.me.meth = LOCATE_string___AbstractString___output;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 2;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 REGB0 = TAG_Int(0);
18 /* ./../lib/standard//string.nit:154 */
19 while(1) {
20 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
21 /* ./../lib/standard//collection//array.nit:23 */
22 if (UNTAG_Bool(REGB1)) {
23 } else {
24 fprintf(stderr, "Uninitialized attribute %s", "_length");
25 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
26 nit_exit(1);
27 }
28 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
29 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30 /* ./../lib/standard//string.nit:154 */
31 if (UNTAG_Bool(REGB1)) {
32 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
33 /* ./../lib/standard//string.nit:155 */
34 if (UNTAG_Bool(REGB1)) {
35 } else {
36 fprintf(stderr, "Uninitialized attribute %s", "_items");
37 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 155);
38 nit_exit(1);
39 }
40 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[0]);
41 REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
42 /* ./../lib/standard//kernel.nit:327 */
43 printf("%c", (unsigned char)UNTAG_Char(REGB1));;
44 REGB1 = TAG_Int(1);
45 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
46 REGB0 = REGB1;
47 /* ./../lib/standard//string.nit:156 */
48 } else {
49 /* ./../lib/standard//string.nit:154 */
50 goto label1;
51 }
52 }
53 label1: while(0);
54 stack_frame_head = fra.me.prev;
55 return;
56 }
57 val_t string___AbstractString_____bra(val_t p0, val_t p1){
58 struct {struct stack_frame_t me;} fra;
59 val_t REGB0;
60 val_t REGB1;
61 val_t tmp;
62 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
63 fra.me.file = LOCATE_string;
64 fra.me.line = 28;
65 fra.me.meth = LOCATE_string___AbstractString_____bra;
66 fra.me.has_broke = 0;
67 fra.me.REG_size = 1;
68 fra.me.REG[0] = NIT_NULL;
69 fra.me.REG[0] = p0;
70 REGB0 = p1;
71 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
72 /* ./../lib/standard//string.nit:28 */
73 if (UNTAG_Bool(REGB1)) {
74 } else {
75 fprintf(stderr, "Uninitialized attribute %s", "_items");
76 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 28);
77 nit_exit(1);
78 }
79 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
80 REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
81 /* ./../lib/standard//string.nit:28 */
82 goto label1;
83 label1: while(0);
84 stack_frame_head = fra.me.prev;
85 return REGB0;
86 }
87 val_t string___AbstractString___items(val_t p0){
88 struct {struct stack_frame_t me;} fra;
89 val_t REGB0;
90 val_t tmp;
91 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
92 fra.me.file = LOCATE_string;
93 fra.me.line = 26;
94 fra.me.meth = LOCATE_string___AbstractString___items;
95 fra.me.has_broke = 0;
96 fra.me.REG_size = 1;
97 fra.me.REG[0] = NIT_NULL;
98 fra.me.REG[0] = p0;
99 REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
100 /* ./../lib/standard//string.nit:26 */
101 if (UNTAG_Bool(REGB0)) {
102 } else {
103 fprintf(stderr, "Uninitialized attribute %s", "_items");
104 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 26);
105 nit_exit(1);
106 }
107 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
108 stack_frame_head = fra.me.prev;
109 return fra.me.REG[0];
110 }
111 val_t string___AbstractString___substring(val_t p0, val_t p1, val_t p2){
112 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
113 val_t REGB0;
114 val_t REGB1;
115 val_t REGB2;
116 val_t tmp;
117 static val_t once_value_3; /* Once value */
118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
119 fra.me.file = LOCATE_string;
120 fra.me.line = 30;
121 fra.me.meth = LOCATE_string___AbstractString___substring;
122 fra.me.has_broke = 0;
123 fra.me.REG_size = 3;
124 fra.me.REG[0] = NIT_NULL;
125 fra.me.REG[1] = NIT_NULL;
126 fra.me.REG[2] = NIT_NULL;
127 fra.me.REG[0] = p0;
128 REGB0 = p1;
129 REGB1 = p2;
130 REGB2 = TAG_Int(0);
131 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
132 /* ./../lib/standard//string.nit:38 */
133 if (UNTAG_Bool(REGB2)) {
134 } else {
135 fprintf(stderr, "Assert failed");
136 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 38);
137 nit_exit(1);
138 }
139 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
140 REGB1 = REGB2;
141 REGB2 = TAG_Int(0);
142 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
143 /* ./../lib/standard//string.nit:40 */
144 if (UNTAG_Bool(REGB2)) {
145 REGB2 = TAG_Int(0);
146 REGB0 = REGB2;
147 }
148 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
149 /* ./../lib/standard//collection//array.nit:23 */
150 if (UNTAG_Bool(REGB2)) {
151 } else {
152 fprintf(stderr, "Uninitialized attribute %s", "_length");
153 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
154 nit_exit(1);
155 }
156 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
157 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
158 /* ./../lib/standard//string.nit:41 */
159 if (UNTAG_Bool(REGB2)) {
160 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
161 /* ./../lib/standard//collection//array.nit:23 */
162 if (UNTAG_Bool(REGB2)) {
163 } else {
164 fprintf(stderr, "Uninitialized attribute %s", "_length");
165 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
166 nit_exit(1);
167 }
168 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
169 REGB1 = REGB2;
170 /* ./../lib/standard//string.nit:41 */
171 }
172 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
173 /* ./../lib/standard//string.nit:42 */
174 if (UNTAG_Bool(REGB2)) {
175 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
176 fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB2);
177 /* ./../lib/standard//string.nit:44 */
178 while(1) {
179 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
180 /* ./../lib/standard//string.nit:44 */
181 if (UNTAG_Bool(REGB2)) {
182 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
183 /* ./../lib/standard//string.nit:45 */
184 if (UNTAG_Bool(REGB2)) {
185 } else {
186 fprintf(stderr, "Uninitialized attribute %s", "_items");
187 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 45);
188 nit_exit(1);
189 }
190 fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]);
191 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
192 /* ./../lib/standard//string.nit:45 */
193 CALL_abstract_collection___Sequence___push(fra.me.REG[1])(fra.me.REG[1], REGB2);
194 REGB2 = TAG_Int(1);
195 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
196 REGB0 = REGB2;
197 /* ./../lib/standard//string.nit:46 */
198 } else {
199 /* ./../lib/standard//string.nit:44 */
200 goto label1;
201 }
202 }
203 label1: while(0);
204 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
205 /* ./../lib/standard//string.nit:48 */
206 goto label2;
207 } else {
208 /* ./../lib/standard//string.nit:50 */
209 if (!once_value_3) {
210 fra.me.REG[0] = BOX_NativeString("");
211 REGB0 = TAG_Int(0);
212 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
213 once_value_3 = fra.me.REG[0];
214 register_static_object(&once_value_3);
215 } else fra.me.REG[0] = once_value_3;
216 fra.me.REG[1] = fra.me.REG[0];
217 goto label2;
218 }
219 label2: while(0);
220 stack_frame_head = fra.me.prev;
221 return fra.me.REG[1];
222 }
223 val_t string___AbstractString___substring_from(val_t p0, val_t p1){
224 struct {struct stack_frame_t me;} fra;
225 val_t REGB0;
226 val_t REGB1;
227 val_t tmp;
228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
229 fra.me.file = LOCATE_string;
230 fra.me.line = 54;
231 fra.me.meth = LOCATE_string___AbstractString___substring_from;
232 fra.me.has_broke = 0;
233 fra.me.REG_size = 1;
234 fra.me.REG[0] = NIT_NULL;
235 fra.me.REG[0] = p0;
236 REGB0 = p1;
237 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
238 /* ./../lib/standard//collection//array.nit:23 */
239 if (UNTAG_Bool(REGB1)) {
240 } else {
241 fprintf(stderr, "Uninitialized attribute %s", "_length");
242 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
243 nit_exit(1);
244 }
245 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
246 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
247 /* ./../lib/standard//string.nit:61 */
248 if (UNTAG_Bool(REGB1)) {
249 } else {
250 fprintf(stderr, "Assert failed");
251 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 61);
252 nit_exit(1);
253 }
254 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
255 /* ./../lib/standard//collection//array.nit:23 */
256 if (UNTAG_Bool(REGB1)) {
257 } else {
258 fprintf(stderr, "Uninitialized attribute %s", "_length");
259 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
260 nit_exit(1);
261 }
262 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
263 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
264 fra.me.REG[0] = CALL_string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1);
265 /* ./../lib/standard//string.nit:62 */
266 goto label1;
267 label1: while(0);
268 stack_frame_head = fra.me.prev;
269 return fra.me.REG[0];
270 }
271 val_t string___AbstractString___has_substring(val_t p0, val_t p1, val_t p2){
272 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
273 val_t REGB0;
274 val_t REGB1;
275 val_t REGB2;
276 val_t REGB3;
277 val_t REGB4;
278 val_t REGB5;
279 val_t tmp;
280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
281 fra.me.file = LOCATE_string;
282 fra.me.line = 65;
283 fra.me.meth = LOCATE_string___AbstractString___has_substring;
284 fra.me.has_broke = 0;
285 fra.me.REG_size = 3;
286 fra.me.REG[0] = NIT_NULL;
287 fra.me.REG[1] = NIT_NULL;
288 fra.me.REG[2] = NIT_NULL;
289 fra.me.REG[0] = p0;
290 fra.me.REG[1] = p1;
291 REGB0 = p2;
292 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
293 /* ./../lib/standard//collection//array.nit:23 */
294 if (UNTAG_Bool(REGB1)) {
295 } else {
296 fprintf(stderr, "Uninitialized attribute %s", "_length");
297 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
298 nit_exit(1);
299 }
300 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
301 REGB2 = TAG_Int(1);
302 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
303 REGB0 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
304 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
305 /* ./../lib/standard//string.nit:73 */
306 if (UNTAG_Bool(REGB1)) {
307 } else {
308 fprintf(stderr, "Uninitialized attribute %s", "_items");
309 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 73);
310 nit_exit(1);
311 }
312 fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]);
313 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
314 /* ./../lib/standard//string.nit:74 */
315 if (UNTAG_Bool(REGB1)) {
316 } else {
317 fprintf(stderr, "Uninitialized attribute %s", "_items");
318 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 74);
319 nit_exit(1);
320 }
321 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]);
322 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
323 /* ./../lib/standard//collection//array.nit:23 */
324 if (UNTAG_Bool(REGB1)) {
325 } else {
326 fprintf(stderr, "Uninitialized attribute %s", "_length");
327 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
328 nit_exit(1);
329 }
330 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
331 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
332 /* ./../lib/standard//string.nit:75 */
333 if (UNTAG_Bool(REGB1)) {
334 REGB1 = TAG_Bool(true);
335 } else {
336 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
337 REGB1 = REGB3;
338 /* ./../lib/standard//string.nit:75 */
339 }
340 if (UNTAG_Bool(REGB1)) {
341 REGB1 = TAG_Bool(false);
342 goto label1;
343 }
344 /* ./../lib/standard//string.nit:76 */
345 while(1) {
346 REGB3 = TAG_Int(0);
347 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
348 /* ./../lib/standard//string.nit:76 */
349 if (UNTAG_Bool(REGB3)) {
350 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
351 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]);
352 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
353 /* ./../lib/standard//string.nit:77 */
354 if (UNTAG_Bool(REGB5)) {
355 } else {
356 REGB4 = TAG_Bool((REGB3)==(REGB4));
357 REGB5 = REGB4;
358 /* ./../lib/standard//string.nit:77 */
359 }
360 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
361 if (UNTAG_Bool(REGB5)) {
362 REGB5 = TAG_Bool(false);
363 REGB1 = REGB5;
364 goto label1;
365 }
366 REGB5 = TAG_Int(1);
367 REGB5 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB5));
368 REGB0 = REGB5;
369 REGB5 = TAG_Int(1);
370 REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
371 REGB2 = REGB5;
372 /* ./../lib/standard//string.nit:79 */
373 } else {
374 /* ./../lib/standard//string.nit:76 */
375 goto label2;
376 }
377 }
378 label2: while(0);
379 REGB2 = TAG_Bool(true);
380 REGB1 = REGB2;
381 /* ./../lib/standard//string.nit:81 */
382 goto label1;
383 label1: while(0);
384 stack_frame_head = fra.me.prev;
385 return REGB1;
386 }
387 val_t string___AbstractString___has_prefix(val_t p0, val_t p1){
388 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
389 val_t REGB0;
390 val_t tmp;
391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
392 fra.me.file = LOCATE_string;
393 fra.me.line = 84;
394 fra.me.meth = LOCATE_string___AbstractString___has_prefix;
395 fra.me.has_broke = 0;
396 fra.me.REG_size = 2;
397 fra.me.REG[0] = NIT_NULL;
398 fra.me.REG[1] = NIT_NULL;
399 fra.me.REG[0] = p0;
400 fra.me.REG[1] = p1;
401 REGB0 = TAG_Int(0);
402 REGB0 = CALL_string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
403 /* ./../lib/standard//string.nit:88 */
404 goto label1;
405 label1: while(0);
406 stack_frame_head = fra.me.prev;
407 return REGB0;
408 }
409 val_t string___AbstractString___has_suffix(val_t p0, val_t p1){
410 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
411 val_t REGB0;
412 val_t REGB1;
413 val_t tmp;
414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
415 fra.me.file = LOCATE_string;
416 fra.me.line = 90;
417 fra.me.meth = LOCATE_string___AbstractString___has_suffix;
418 fra.me.has_broke = 0;
419 fra.me.REG_size = 2;
420 fra.me.REG[0] = NIT_NULL;
421 fra.me.REG[1] = NIT_NULL;
422 fra.me.REG[0] = p0;
423 fra.me.REG[1] = p1;
424 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
425 /* ./../lib/standard//collection//array.nit:23 */
426 if (UNTAG_Bool(REGB0)) {
427 } else {
428 fprintf(stderr, "Uninitialized attribute %s", "_length");
429 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
430 nit_exit(1);
431 }
432 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
433 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
434 if (UNTAG_Bool(REGB1)) {
435 } else {
436 fprintf(stderr, "Uninitialized attribute %s", "_length");
437 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
438 nit_exit(1);
439 }
440 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
441 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
442 REGB1 = CALL_string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
443 /* ./../lib/standard//string.nit:94 */
444 goto label1;
445 label1: while(0);
446 stack_frame_head = fra.me.prev;
447 return REGB1;
448 }
449 val_t string___AbstractString___to_i(val_t p0){
450 struct {struct stack_frame_t me;} fra;
451 val_t REGB0;
452 val_t tmp;
453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
454 fra.me.file = LOCATE_string;
455 fra.me.line = 96;
456 fra.me.meth = LOCATE_string___AbstractString___to_i;
457 fra.me.has_broke = 0;
458 fra.me.REG_size = 1;
459 fra.me.REG[0] = NIT_NULL;
460 fra.me.REG[0] = p0;
461 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
462 fra.me.REG[0] = CALL_string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
463 REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
464 /* ./../lib/standard//string.nit:100 */
465 goto label1;
466 label1: while(0);
467 stack_frame_head = fra.me.prev;
468 return REGB0;
469 }
470 val_t string___AbstractString___to_hex(val_t p0){
471 struct {struct stack_frame_t me;} fra;
472 val_t REGB0;
473 val_t tmp;
474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
475 fra.me.file = LOCATE_string;
476 fra.me.line = 103;
477 fra.me.meth = LOCATE_string___AbstractString___to_hex;
478 fra.me.has_broke = 0;
479 fra.me.REG_size = 1;
480 fra.me.REG[0] = NIT_NULL;
481 fra.me.REG[0] = p0;
482 REGB0 = TAG_Int(16);
483 REGB0 = CALL_string___AbstractString___a_to(fra.me.REG[0])(fra.me.REG[0], REGB0);
484 /* ./../lib/standard//string.nit:104 */
485 goto label1;
486 label1: while(0);
487 stack_frame_head = fra.me.prev;
488 return REGB0;
489 }
490 val_t string___AbstractString___a_to(val_t p0, val_t p1){
491 struct {struct stack_frame_t me;} fra;
492 val_t REGB0;
493 val_t REGB1;
494 val_t REGB2;
495 val_t REGB3;
496 val_t REGB4;
497 val_t REGB5;
498 val_t tmp;
499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
500 fra.me.file = LOCATE_string;
501 fra.me.line = 106;
502 fra.me.meth = LOCATE_string___AbstractString___a_to;
503 fra.me.has_broke = 0;
504 fra.me.REG_size = 1;
505 fra.me.REG[0] = NIT_NULL;
506 fra.me.REG[0] = p0;
507 REGB0 = p1;
508 REGB1 = TAG_Int(0);
509 REGB2 = TAG_Bool(false);
510 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
511 /* ./../lib/standard//string.nit:112 */
512 while(1) {
513 REGB3 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
514 if (UNTAG_Bool(REGB3)) {
515 REGB3 = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
516 REGB3 = CALL_kernel___Char___to_i(REGB3)(REGB3);
517 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB0));
518 /* ./../lib/standard//string.nit:115 */
519 if (UNTAG_Bool(REGB4)) {
520 /* ./../lib/standard//string.nit:116 */
521 if (UNTAG_Bool(REGB2)) {
522 REGB4 = TAG_Int(-UNTAG_Int(REGB1));
523 /* ./../lib/standard//string.nit:117 */
524 goto label1;
525 } else {
526 REGB4 = REGB1;
527 /* ./../lib/standard//string.nit:119 */
528 goto label1;
529 }
530 } else {
531 REGB5 = TAG_Int(0);
532 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
533 /* ./../lib/standard//string.nit:121 */
534 if (UNTAG_Bool(REGB5)) {
535 REGB5 = TAG_Bool(true);
536 REGB2 = REGB5;
537 /* ./../lib/standard//string.nit:122 */
538 } else {
539 REGB5 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB0));
540 REGB3 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB3));
541 REGB1 = REGB3;
542 /* ./../lib/standard//string.nit:124 */
543 }
544 }
545 } else {
546 /* ./../lib/standard//string.nit:112 */
547 goto label2;
548 }
549 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
550 }
551 label2: while(0);
552 /* ./../lib/standard//string.nit:127 */
553 if (UNTAG_Bool(REGB2)) {
554 REGB2 = TAG_Int(-UNTAG_Int(REGB1));
555 REGB4 = REGB2;
556 /* ./../lib/standard//string.nit:128 */
557 goto label1;
558 } else {
559 REGB4 = REGB1;
560 /* ./../lib/standard//string.nit:130 */
561 goto label1;
562 }
563 label1: while(0);
564 stack_frame_head = fra.me.prev;
565 return REGB4;
566 }
567 val_t string___AbstractString___to_upper(val_t p0){
568 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
569 val_t REGB0;
570 val_t tmp;
571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
572 fra.me.file = LOCATE_string;
573 fra.me.line = 134;
574 fra.me.meth = LOCATE_string___AbstractString___to_upper;
575 fra.me.has_broke = 0;
576 fra.me.REG_size = 2;
577 fra.me.REG[0] = NIT_NULL;
578 fra.me.REG[1] = NIT_NULL;
579 fra.me.REG[0] = p0;
580 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
581 /* ./../lib/standard//collection//array.nit:23 */
582 if (UNTAG_Bool(REGB0)) {
583 } else {
584 fprintf(stderr, "Uninitialized attribute %s", "_length");
585 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
586 nit_exit(1);
587 }
588 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
589 fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0);
590 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
591 /* ./../lib/standard//string.nit:138 */
592 while(1) {
593 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
594 if (UNTAG_Bool(REGB0)) {
595 REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
596 REGB0 = CALL_kernel___Char___to_upper(REGB0)(REGB0);
597 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB0);
598 } else {
599 goto label1;
600 }
601 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
602 }
603 label1: while(0);
604 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
605 /* ./../lib/standard//string.nit:139 */
606 goto label2;
607 label2: while(0);
608 stack_frame_head = fra.me.prev;
609 return fra.me.REG[1];
610 }
611 val_t string___AbstractString___to_lower(val_t p0){
612 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
613 val_t REGB0;
614 val_t tmp;
615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
616 fra.me.file = LOCATE_string;
617 fra.me.line = 142;
618 fra.me.meth = LOCATE_string___AbstractString___to_lower;
619 fra.me.has_broke = 0;
620 fra.me.REG_size = 2;
621 fra.me.REG[0] = NIT_NULL;
622 fra.me.REG[1] = NIT_NULL;
623 fra.me.REG[0] = p0;
624 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
625 /* ./../lib/standard//collection//array.nit:23 */
626 if (UNTAG_Bool(REGB0)) {
627 } else {
628 fprintf(stderr, "Uninitialized attribute %s", "_length");
629 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
630 nit_exit(1);
631 }
632 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
633 fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0);
634 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
635 /* ./../lib/standard//string.nit:146 */
636 while(1) {
637 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
638 if (UNTAG_Bool(REGB0)) {
639 REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
640 REGB0 = CALL_kernel___Char___to_lower(REGB0)(REGB0);
641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB0);
642 } else {
643 goto label1;
644 }
645 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
646 }
647 label1: while(0);
648 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
649 /* ./../lib/standard//string.nit:147 */
650 goto label2;
651 label2: while(0);
652 stack_frame_head = fra.me.prev;
653 return fra.me.REG[1];
654 }
655 val_t string___String_____eqeq(val_t p0, val_t p1){
656 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
657 val_t REGB0;
658 val_t REGB1;
659 val_t REGB2;
660 val_t REGB3;
661 val_t REGB4;
662 val_t REGB5;
663 val_t tmp;
664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
665 fra.me.file = LOCATE_string;
666 fra.me.line = 189;
667 fra.me.meth = LOCATE_string___String_____eqeq;
668 fra.me.has_broke = 0;
669 fra.me.REG_size = 2;
670 fra.me.REG[0] = NIT_NULL;
671 fra.me.REG[1] = NIT_NULL;
672 fra.me.REG[0] = p0;
673 fra.me.REG[1] = p1;
674 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_String, ID_String)) /*cast String*/;
675 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
676 /* ./../lib/standard//string.nit:191 */
677 if (UNTAG_Bool(REGB0)) {
678 REGB0 = TAG_Bool(true);
679 } else {
680 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
681 REGB0 = REGB1;
682 }
683 if (UNTAG_Bool(REGB0)) {
684 REGB0 = TAG_Bool(false);
685 goto label1;
686 }
687 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
688 /* ./../lib/standard//collection//array.nit:23 */
689 if (UNTAG_Bool(REGB1)) {
690 } else {
691 fprintf(stderr, "Uninitialized attribute %s", "_length");
692 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
693 nit_exit(1);
694 }
695 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
696 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
697 /* ./../lib/standard//string.nit:193 */
698 if (UNTAG_Bool(REGB2)) {
699 fprintf(stderr, "Reciever is null");
700 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 193);
701 nit_exit(1);
702 }
703 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
704 /* ./../lib/standard//collection//array.nit:23 */
705 if (UNTAG_Bool(REGB2)) {
706 } else {
707 fprintf(stderr, "Uninitialized attribute %s", "_length");
708 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
709 nit_exit(1);
710 }
711 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
712 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
713 /* ./../lib/standard//string.nit:193 */
714 if (UNTAG_Bool(REGB3)) {
715 } else {
716 REGB2 = TAG_Bool((REGB2)==(REGB1));
717 REGB3 = REGB2;
718 /* ./../lib/standard//string.nit:193 */
719 }
720 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
721 if (UNTAG_Bool(REGB3)) {
722 REGB3 = TAG_Bool(false);
723 REGB0 = REGB3;
724 goto label1;
725 }
726 REGB3 = TAG_Int(0);
727 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
728 /* ./../lib/standard//string.nit:195 */
729 if (UNTAG_Bool(REGB2)) {
730 } else {
731 fprintf(stderr, "Uninitialized attribute %s", "_items");
732 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 195);
733 nit_exit(1);
734 }
735 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
736 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
737 /* ./../lib/standard//string.nit:196 */
738 if (UNTAG_Bool(REGB2)) {
739 } else {
740 fprintf(stderr, "Uninitialized attribute %s", "_items");
741 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 196);
742 nit_exit(1);
743 }
744 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]);
745 /* ./../lib/standard//string.nit:197 */
746 while(1) {
747 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
748 /* ./../lib/standard//string.nit:197 */
749 if (UNTAG_Bool(REGB2)) {
750 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
751 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
752 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
753 /* ./../lib/standard//string.nit:198 */
754 if (UNTAG_Bool(REGB5)) {
755 } else {
756 REGB4 = TAG_Bool((REGB2)==(REGB4));
757 REGB5 = REGB4;
758 /* ./../lib/standard//string.nit:198 */
759 }
760 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
761 if (UNTAG_Bool(REGB5)) {
762 REGB5 = TAG_Bool(false);
763 REGB0 = REGB5;
764 goto label1;
765 }
766 REGB5 = TAG_Int(1);
767 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
768 REGB3 = REGB5;
769 /* ./../lib/standard//string.nit:199 */
770 } else {
771 /* ./../lib/standard//string.nit:197 */
772 goto label2;
773 }
774 }
775 label2: while(0);
776 REGB3 = TAG_Bool(true);
777 REGB0 = REGB3;
778 /* ./../lib/standard//string.nit:201 */
779 goto label1;
780 label1: while(0);
781 stack_frame_head = fra.me.prev;
782 return REGB0;
783 }
784 val_t string___String_____l(val_t p0, val_t p1){
785 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
786 val_t REGB0;
787 val_t REGB1;
788 val_t REGB2;
789 val_t REGB3;
790 val_t REGB4;
791 val_t REGB5;
792 val_t tmp;
793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
794 fra.me.file = LOCATE_string;
795 fra.me.line = 204;
796 fra.me.meth = LOCATE_string___String_____l;
797 fra.me.has_broke = 0;
798 fra.me.REG_size = 2;
799 fra.me.REG[0] = NIT_NULL;
800 fra.me.REG[1] = NIT_NULL;
801 fra.me.REG[0] = p0;
802 fra.me.REG[1] = p1;
803 REGB0 = TAG_Int(0);
804 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
805 /* ./../lib/standard//collection//array.nit:23 */
806 if (UNTAG_Bool(REGB1)) {
807 } else {
808 fprintf(stderr, "Uninitialized attribute %s", "_length");
809 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
810 nit_exit(1);
811 }
812 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
813 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
814 /* ./../lib/standard//collection//array.nit:23 */
815 if (UNTAG_Bool(REGB2)) {
816 } else {
817 fprintf(stderr, "Uninitialized attribute %s", "_length");
818 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
819 nit_exit(1);
820 }
821 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
822 REGB3 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
823 /* ./../lib/standard//string.nit:209 */
824 if (UNTAG_Bool(REGB3)) {
825 } else {
826 fprintf(stderr, "Uninitialized attribute %s", "_items");
827 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 209);
828 nit_exit(1);
829 }
830 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
831 REGB3 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
832 /* ./../lib/standard//string.nit:210 */
833 if (UNTAG_Bool(REGB3)) {
834 } else {
835 fprintf(stderr, "Uninitialized attribute %s", "_items");
836 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 210);
837 nit_exit(1);
838 }
839 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]);
840 /* ./../lib/standard//string.nit:211 */
841 while(1) {
842 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
843 /* ./../lib/standard//string.nit:211 */
844 if (UNTAG_Bool(REGB3)) {
845 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
846 /* ./../lib/standard//string.nit:211 */
847 } else {
848 REGB4 = TAG_Bool(false);
849 REGB3 = REGB4;
850 }
851 if (UNTAG_Bool(REGB3)) {
852 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
853 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
854 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
855 REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
856 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
857 /* ./../lib/standard//string.nit:214 */
858 if (UNTAG_Bool(REGB5)) {
859 REGB5 = TAG_Bool(true);
860 /* ./../lib/standard//string.nit:215 */
861 goto label1;
862 } else {
863 REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
864 /* ./../lib/standard//string.nit:216 */
865 if (UNTAG_Bool(REGB3)) {
866 REGB3 = TAG_Bool(false);
867 REGB5 = REGB3;
868 /* ./../lib/standard//string.nit:217 */
869 goto label1;
870 }
871 }
872 REGB3 = TAG_Int(1);
873 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
874 REGB0 = REGB3;
875 /* ./../lib/standard//string.nit:219 */
876 } else {
877 /* ./../lib/standard//string.nit:211 */
878 goto label2;
879 }
880 }
881 label2: while(0);
882 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
883 /* ./../lib/standard//string.nit:221 */
884 if (UNTAG_Bool(REGB2)) {
885 REGB2 = TAG_Bool(true);
886 REGB5 = REGB2;
887 /* ./../lib/standard//string.nit:222 */
888 goto label1;
889 } else {
890 REGB2 = TAG_Bool(false);
891 REGB5 = REGB2;
892 /* ./../lib/standard//string.nit:224 */
893 goto label1;
894 }
895 label1: while(0);
896 stack_frame_head = fra.me.prev;
897 return REGB5;
898 }
899 val_t string___String___hash(val_t p0){
900 struct {struct stack_frame_t me;} fra;
901 val_t REGB0;
902 val_t REGB1;
903 val_t REGB2;
904 val_t REGB3;
905 val_t tmp;
906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
907 fra.me.file = LOCATE_string;
908 fra.me.line = 251;
909 fra.me.meth = LOCATE_string___String___hash;
910 fra.me.has_broke = 0;
911 fra.me.REG_size = 1;
912 fra.me.REG[0] = NIT_NULL;
913 fra.me.REG[0] = p0;
914 REGB0 = TAG_Int(5381);
915 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
916 /* ./../lib/standard//string.nit:255 */
917 if (UNTAG_Bool(REGB1)) {
918 } else {
919 fprintf(stderr, "Uninitialized attribute %s", "_length");
920 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 255);
921 nit_exit(1);
922 }
923 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
924 REGB2 = TAG_Int(1);
925 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
926 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
927 /* ./../lib/standard//string.nit:256 */
928 if (UNTAG_Bool(REGB1)) {
929 } else {
930 fprintf(stderr, "Uninitialized attribute %s", "_items");
931 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 256);
932 nit_exit(1);
933 }
934 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
935 /* ./../lib/standard//string.nit:257 */
936 while(1) {
937 REGB1 = TAG_Int(0);
938 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
939 /* ./../lib/standard//string.nit:257 */
940 if (UNTAG_Bool(REGB1)) {
941 REGB1 = TAG_Int(32);
942 REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
943 REGB1 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
944 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB2)]);
945 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
946 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
947 REGB0 = REGB3;
948 REGB3 = TAG_Int(1);
949 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
950 REGB2 = REGB3;
951 /* ./../lib/standard//string.nit:259 */
952 } else {
953 /* ./../lib/standard//string.nit:257 */
954 goto label1;
955 }
956 }
957 label1: while(0);
958 /* ./../lib/standard//string.nit:261 */
959 goto label2;
960 label2: while(0);
961 stack_frame_head = fra.me.prev;
962 return REGB0;
963 }
964 val_t string___String___to_s(val_t p0){
965 struct {struct stack_frame_t me;} fra;
966 val_t tmp;
967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
968 fra.me.file = LOCATE_string;
969 fra.me.line = 249;
970 fra.me.meth = LOCATE_string___String___to_s;
971 fra.me.has_broke = 0;
972 fra.me.REG_size = 1;
973 fra.me.REG[0] = NIT_NULL;
974 fra.me.REG[0] = p0;
975 /* ./../lib/standard//string.nit:249 */
976 goto label1;
977 label1: while(0);
978 stack_frame_head = fra.me.prev;
979 return fra.me.REG[0];
980 }
981 void string___String___with_native(val_t p0, val_t p1, val_t p2, int* init_table){
982 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_String].i;
983 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
984 val_t REGB0;
985 val_t REGB1;
986 val_t tmp;
987 if (init_table[itpos0]) return;
988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
989 fra.me.file = LOCATE_string;
990 fra.me.line = 167;
991 fra.me.meth = LOCATE_string___String___with_native;
992 fra.me.has_broke = 0;
993 fra.me.REG_size = 2;
994 fra.me.REG[0] = NIT_NULL;
995 fra.me.REG[1] = NIT_NULL;
996 fra.me.REG[0] = p0;
997 fra.me.REG[1] = p1;
998 REGB0 = p2;
999 REGB1 = TAG_Int(0);
1000 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1001 /* ./../lib/standard//string.nit:170 */
1002 if (UNTAG_Bool(REGB1)) {
1003 } else {
1004 fprintf(stderr, "Assert failed");
1005 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 170);
1006 nit_exit(1);
1007 }
1008 /* ./../lib/standard//string.nit:171 */
1009 ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
1010 /* ./../lib/standard//string.nit:172 */
1011 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1012 stack_frame_head = fra.me.prev;
1013 init_table[itpos0] = 1;
1014 return;
1015 }
1016 void string___String___from_cstring(val_t p0, val_t p1, int* init_table){
1017 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_String].i;
1018 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1019 val_t REGB0;
1020 val_t tmp;
1021 if (init_table[itpos1]) return;
1022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1023 fra.me.file = LOCATE_string;
1024 fra.me.line = 175;
1025 fra.me.meth = LOCATE_string___String___from_cstring;
1026 fra.me.has_broke = 0;
1027 fra.me.REG_size = 2;
1028 fra.me.REG[0] = NIT_NULL;
1029 fra.me.REG[1] = NIT_NULL;
1030 fra.me.REG[0] = p0;
1031 fra.me.REG[1] = p1;
1032 REGB0 = CALL_string___NativeString___cstring_length(fra.me.REG[1])(fra.me.REG[1]);
1033 /* ./../lib/standard//string.nit:179 */
1034 ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
1035 /* ./../lib/standard//string.nit:180 */
1036 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1037 stack_frame_head = fra.me.prev;
1038 init_table[itpos1] = 1;
1039 return;
1040 }
1041 val_t string___String___to_cstring(val_t p0){
1042 struct {struct stack_frame_t me;} fra;
1043 val_t REGB0;
1044 val_t tmp;
1045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1046 fra.me.file = LOCATE_string;
1047 fra.me.line = 183;
1048 fra.me.meth = LOCATE_string___String___to_cstring;
1049 fra.me.has_broke = 0;
1050 fra.me.REG_size = 1;
1051 fra.me.REG[0] = NIT_NULL;
1052 fra.me.REG[0] = p0;
1053 REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1054 /* ./../lib/standard//string.nit:186 */
1055 if (UNTAG_Bool(REGB0)) {
1056 } else {
1057 fprintf(stderr, "Uninitialized attribute %s", "_items");
1058 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 186);
1059 nit_exit(1);
1060 }
1061 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1062 goto label1;
1063 label1: while(0);
1064 stack_frame_head = fra.me.prev;
1065 return fra.me.REG[0];
1066 }
1067 val_t string___String_____plus(val_t p0, val_t p1){
1068 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1069 val_t REGB0;
1070 val_t REGB1;
1071 val_t tmp;
1072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1073 fra.me.file = LOCATE_string;
1074 fra.me.line = 228;
1075 fra.me.meth = LOCATE_string___String_____plus;
1076 fra.me.has_broke = 0;
1077 fra.me.REG_size = 3;
1078 fra.me.REG[0] = NIT_NULL;
1079 fra.me.REG[1] = NIT_NULL;
1080 fra.me.REG[2] = NIT_NULL;
1081 fra.me.REG[0] = p0;
1082 fra.me.REG[1] = p1;
1083 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1084 /* ./../lib/standard//collection//array.nit:23 */
1085 if (UNTAG_Bool(REGB0)) {
1086 } else {
1087 fprintf(stderr, "Uninitialized attribute %s", "_length");
1088 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1089 nit_exit(1);
1090 }
1091 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1092 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1093 if (UNTAG_Bool(REGB1)) {
1094 } else {
1095 fprintf(stderr, "Uninitialized attribute %s", "_length");
1096 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1097 nit_exit(1);
1098 }
1099 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1100 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1101 fra.me.REG[2] = NEW_Buffer_string___Buffer___with_capacity(REGB1);
1102 /* ./../lib/standard//string.nit:232 */
1103 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1104 /* ./../lib/standard//string.nit:233 */
1105 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1106 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1107 /* ./../lib/standard//string.nit:234 */
1108 goto label1;
1109 label1: while(0);
1110 stack_frame_head = fra.me.prev;
1111 return fra.me.REG[2];
1112 }
1113 val_t string___String_____star(val_t p0, val_t p1){
1114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1115 val_t REGB0;
1116 val_t REGB1;
1117 val_t tmp;
1118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1119 fra.me.file = LOCATE_string;
1120 fra.me.line = 237;
1121 fra.me.meth = LOCATE_string___String_____star;
1122 fra.me.has_broke = 0;
1123 fra.me.REG_size = 2;
1124 fra.me.REG[0] = NIT_NULL;
1125 fra.me.REG[1] = NIT_NULL;
1126 fra.me.REG[0] = p0;
1127 REGB0 = p1;
1128 REGB1 = TAG_Int(0);
1129 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1130 /* ./../lib/standard//string.nit:240 */
1131 if (UNTAG_Bool(REGB1)) {
1132 } else {
1133 fprintf(stderr, "Assert failed");
1134 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 240);
1135 nit_exit(1);
1136 }
1137 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1138 /* ./../lib/standard//collection//array.nit:23 */
1139 if (UNTAG_Bool(REGB1)) {
1140 } else {
1141 fprintf(stderr, "Uninitialized attribute %s", "_length");
1142 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1143 nit_exit(1);
1144 }
1145 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1146 REGB1 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB0));
1147 fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB1);
1148 /* ./../lib/standard//string.nit:242 */
1149 while(1) {
1150 REGB1 = TAG_Int(0);
1151 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1152 /* ./../lib/standard//string.nit:242 */
1153 if (UNTAG_Bool(REGB1)) {
1154 /* ./../lib/standard//string.nit:243 */
1155 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1156 REGB1 = TAG_Int(1);
1157 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1158 REGB0 = REGB1;
1159 /* ./../lib/standard//string.nit:244 */
1160 } else {
1161 /* ./../lib/standard//string.nit:242 */
1162 goto label1;
1163 }
1164 }
1165 label1: while(0);
1166 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1167 /* ./../lib/standard//string.nit:246 */
1168 goto label2;
1169 label2: while(0);
1170 stack_frame_head = fra.me.prev;
1171 return fra.me.REG[1];
1172 }
1173 val_t string___Buffer_____eqeq(val_t p0, val_t p1){
1174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1175 val_t REGB0;
1176 val_t REGB1;
1177 val_t REGB2;
1178 val_t REGB3;
1179 val_t REGB4;
1180 val_t REGB5;
1181 val_t tmp;
1182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1183 fra.me.file = LOCATE_string;
1184 fra.me.line = 373;
1185 fra.me.meth = LOCATE_string___Buffer_____eqeq;
1186 fra.me.has_broke = 0;
1187 fra.me.REG_size = 2;
1188 fra.me.REG[0] = NIT_NULL;
1189 fra.me.REG[1] = NIT_NULL;
1190 fra.me.REG[0] = p0;
1191 fra.me.REG[1] = p1;
1192 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Buffer, ID_Buffer)) /*cast Buffer*/;
1193 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1194 /* ./../lib/standard//string.nit:375 */
1195 if (UNTAG_Bool(REGB0)) {
1196 REGB0 = TAG_Bool(true);
1197 } else {
1198 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1199 REGB0 = REGB1;
1200 }
1201 if (UNTAG_Bool(REGB0)) {
1202 REGB0 = TAG_Bool(false);
1203 goto label1;
1204 }
1205 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1206 /* ./../lib/standard//collection//array.nit:23 */
1207 if (UNTAG_Bool(REGB1)) {
1208 } else {
1209 fprintf(stderr, "Uninitialized attribute %s", "_length");
1210 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1211 nit_exit(1);
1212 }
1213 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1214 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1215 /* ./../lib/standard//string.nit:377 */
1216 if (UNTAG_Bool(REGB2)) {
1217 fprintf(stderr, "Reciever is null");
1218 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 377);
1219 nit_exit(1);
1220 }
1221 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1222 /* ./../lib/standard//collection//array.nit:23 */
1223 if (UNTAG_Bool(REGB2)) {
1224 } else {
1225 fprintf(stderr, "Uninitialized attribute %s", "_length");
1226 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1227 nit_exit(1);
1228 }
1229 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1230 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
1231 /* ./../lib/standard//string.nit:377 */
1232 if (UNTAG_Bool(REGB3)) {
1233 } else {
1234 REGB2 = TAG_Bool((REGB2)==(REGB1));
1235 REGB3 = REGB2;
1236 /* ./../lib/standard//string.nit:377 */
1237 }
1238 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
1239 if (UNTAG_Bool(REGB3)) {
1240 REGB3 = TAG_Bool(false);
1241 REGB0 = REGB3;
1242 goto label1;
1243 }
1244 REGB3 = TAG_Int(0);
1245 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1246 /* ./../lib/standard//string.nit:379 */
1247 if (UNTAG_Bool(REGB2)) {
1248 } else {
1249 fprintf(stderr, "Uninitialized attribute %s", "_items");
1250 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 379);
1251 nit_exit(1);
1252 }
1253 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1254 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
1255 /* ./../lib/standard//string.nit:380 */
1256 if (UNTAG_Bool(REGB2)) {
1257 } else {
1258 fprintf(stderr, "Uninitialized attribute %s", "_items");
1259 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 380);
1260 nit_exit(1);
1261 }
1262 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]);
1263 /* ./../lib/standard//string.nit:381 */
1264 while(1) {
1265 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
1266 /* ./../lib/standard//string.nit:381 */
1267 if (UNTAG_Bool(REGB2)) {
1268 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
1269 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
1270 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
1271 /* ./../lib/standard//string.nit:382 */
1272 if (UNTAG_Bool(REGB5)) {
1273 } else {
1274 REGB4 = TAG_Bool((REGB2)==(REGB4));
1275 REGB5 = REGB4;
1276 /* ./../lib/standard//string.nit:382 */
1277 }
1278 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
1279 if (UNTAG_Bool(REGB5)) {
1280 REGB5 = TAG_Bool(false);
1281 REGB0 = REGB5;
1282 goto label1;
1283 }
1284 REGB5 = TAG_Int(1);
1285 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1286 REGB3 = REGB5;
1287 /* ./../lib/standard//string.nit:383 */
1288 } else {
1289 /* ./../lib/standard//string.nit:381 */
1290 goto label2;
1291 }
1292 }
1293 label2: while(0);
1294 REGB3 = TAG_Bool(true);
1295 REGB0 = REGB3;
1296 /* ./../lib/standard//string.nit:385 */
1297 goto label1;
1298 label1: while(0);
1299 stack_frame_head = fra.me.prev;
1300 return REGB0;
1301 }
1302 val_t string___Buffer___to_s(val_t p0){
1303 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1304 val_t REGB0;
1305 val_t REGB1;
1306 val_t REGB2;
1307 val_t tmp;
1308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1309 fra.me.file = LOCATE_string;
1310 fra.me.line = 315;
1311 fra.me.meth = LOCATE_string___Buffer___to_s;
1312 fra.me.has_broke = 0;
1313 fra.me.REG_size = 3;
1314 fra.me.REG[0] = NIT_NULL;
1315 fra.me.REG[1] = NIT_NULL;
1316 fra.me.REG[2] = NIT_NULL;
1317 fra.me.REG[0] = p0;
1318 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1319 /* ./../lib/standard//collection//array.nit:23 */
1320 if (UNTAG_Bool(REGB0)) {
1321 } else {
1322 fprintf(stderr, "Uninitialized attribute %s", "_length");
1323 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1324 nit_exit(1);
1325 }
1326 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1327 REGB1 = TAG_Int(1);
1328 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1329 fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
1330 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1331 /* ./../lib/standard//string.nit:319 */
1332 if (UNTAG_Bool(REGB1)) {
1333 } else {
1334 fprintf(stderr, "Uninitialized attribute %s", "_items");
1335 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 319);
1336 nit_exit(1);
1337 }
1338 fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1339 REGB1 = TAG_Int(0);
1340 REGB2 = TAG_Int(0);
1341 /* ./../lib/standard//string.nit:587 */
1342 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
1343 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1344 /* ./../lib/standard//collection//array.nit:23 */
1345 if (UNTAG_Bool(REGB0)) {
1346 } else {
1347 fprintf(stderr, "Uninitialized attribute %s", "_length");
1348 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1349 nit_exit(1);
1350 }
1351 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1352 REGB1 = TAG_Char('\0');
1353 /* ./../lib/standard//string.nit:586 */
1354 UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
1355 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1356 /* ./../lib/standard//collection//array.nit:23 */
1357 if (UNTAG_Bool(REGB1)) {
1358 } else {
1359 fprintf(stderr, "Uninitialized attribute %s", "_length");
1360 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1361 nit_exit(1);
1362 }
1363 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1364 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
1365 /* ./../lib/standard//string.nit:324 */
1366 goto label1;
1367 label1: while(0);
1368 stack_frame_head = fra.me.prev;
1369 return fra.me.REG[1];
1370 }
1371 val_t string___Buffer_____l(val_t p0, val_t p1){
1372 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1373 val_t REGB0;
1374 val_t REGB1;
1375 val_t REGB2;
1376 val_t REGB3;
1377 val_t REGB4;
1378 val_t REGB5;
1379 val_t tmp;
1380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1381 fra.me.file = LOCATE_string;
1382 fra.me.line = 327;
1383 fra.me.meth = LOCATE_string___Buffer_____l;
1384 fra.me.has_broke = 0;
1385 fra.me.REG_size = 2;
1386 fra.me.REG[0] = NIT_NULL;
1387 fra.me.REG[1] = NIT_NULL;
1388 fra.me.REG[0] = p0;
1389 fra.me.REG[1] = p1;
1390 REGB0 = TAG_Int(0);
1391 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1392 /* ./../lib/standard//collection//array.nit:23 */
1393 if (UNTAG_Bool(REGB1)) {
1394 } else {
1395 fprintf(stderr, "Uninitialized attribute %s", "_length");
1396 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1397 nit_exit(1);
1398 }
1399 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1400 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1401 /* ./../lib/standard//collection//array.nit:23 */
1402 if (UNTAG_Bool(REGB2)) {
1403 } else {
1404 fprintf(stderr, "Uninitialized attribute %s", "_length");
1405 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1406 nit_exit(1);
1407 }
1408 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1409 /* ./../lib/standard//string.nit:332 */
1410 while(1) {
1411 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1412 /* ./../lib/standard//string.nit:332 */
1413 if (UNTAG_Bool(REGB3)) {
1414 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1415 /* ./../lib/standard//string.nit:332 */
1416 } else {
1417 REGB4 = TAG_Bool(false);
1418 REGB3 = REGB4;
1419 }
1420 if (UNTAG_Bool(REGB3)) {
1421 REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
1422 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
1423 REGB4 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
1424 REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
1425 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1426 /* ./../lib/standard//string.nit:335 */
1427 if (UNTAG_Bool(REGB5)) {
1428 REGB5 = TAG_Bool(true);
1429 /* ./../lib/standard//string.nit:336 */
1430 goto label1;
1431 } else {
1432 REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
1433 /* ./../lib/standard//string.nit:337 */
1434 if (UNTAG_Bool(REGB3)) {
1435 REGB3 = TAG_Bool(false);
1436 REGB5 = REGB3;
1437 /* ./../lib/standard//string.nit:338 */
1438 goto label1;
1439 }
1440 }
1441 REGB3 = TAG_Int(1);
1442 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
1443 REGB0 = REGB3;
1444 /* ./../lib/standard//string.nit:340 */
1445 } else {
1446 /* ./../lib/standard//string.nit:332 */
1447 goto label2;
1448 }
1449 }
1450 label2: while(0);
1451 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1452 /* ./../lib/standard//string.nit:342 */
1453 if (UNTAG_Bool(REGB2)) {
1454 REGB2 = TAG_Bool(true);
1455 REGB5 = REGB2;
1456 /* ./../lib/standard//string.nit:343 */
1457 goto label1;
1458 } else {
1459 REGB2 = TAG_Bool(false);
1460 REGB5 = REGB2;
1461 /* ./../lib/standard//string.nit:345 */
1462 goto label1;
1463 }
1464 label1: while(0);
1465 stack_frame_head = fra.me.prev;
1466 return REGB5;
1467 }
1468 void string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
1469 struct {struct stack_frame_t me;} fra;
1470 val_t REGB0;
1471 val_t REGB1;
1472 val_t REGB2;
1473 val_t REGB3;
1474 val_t tmp;
1475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1476 fra.me.file = LOCATE_string;
1477 fra.me.line = 275;
1478 fra.me.meth = LOCATE_string___Buffer_____braeq;
1479 fra.me.has_broke = 0;
1480 fra.me.REG_size = 1;
1481 fra.me.REG[0] = NIT_NULL;
1482 fra.me.REG[0] = p0;
1483 REGB0 = p1;
1484 REGB1 = p2;
1485 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1486 /* ./../lib/standard//collection//array.nit:23 */
1487 if (UNTAG_Bool(REGB2)) {
1488 } else {
1489 fprintf(stderr, "Uninitialized attribute %s", "_length");
1490 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1491 nit_exit(1);
1492 }
1493 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1494 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
1495 /* ./../lib/standard//string.nit:277 */
1496 if (UNTAG_Bool(REGB3)) {
1497 } else {
1498 REGB2 = TAG_Bool((REGB0)==(REGB2));
1499 REGB3 = REGB2;
1500 /* ./../lib/standard//string.nit:277 */
1501 }
1502 if (UNTAG_Bool(REGB3)) {
1503 /* ./../lib/standard//string.nit:278 */
1504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
1505 /* ./../lib/standard//string.nit:279 */
1506 goto label1;
1507 }
1508 REGB3 = TAG_Int(0);
1509 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3));
1510 /* ./../lib/standard//string.nit:281 */
1511 if (UNTAG_Bool(REGB3)) {
1512 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1513 /* ./../lib/standard//collection//array.nit:23 */
1514 if (UNTAG_Bool(REGB3)) {
1515 } else {
1516 fprintf(stderr, "Uninitialized attribute %s", "_length");
1517 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1518 nit_exit(1);
1519 }
1520 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1521 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
1522 /* ./../lib/standard//string.nit:281 */
1523 } else {
1524 REGB2 = TAG_Bool(false);
1525 REGB3 = REGB2;
1526 }
1527 if (UNTAG_Bool(REGB3)) {
1528 } else {
1529 fprintf(stderr, "Assert failed");
1530 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 281);
1531 nit_exit(1);
1532 }
1533 REGB3 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1534 /* ./../lib/standard//string.nit:282 */
1535 if (UNTAG_Bool(REGB3)) {
1536 } else {
1537 fprintf(stderr, "Uninitialized attribute %s", "_items");
1538 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 282);
1539 nit_exit(1);
1540 }
1541 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1542 /* ./../lib/standard//string.nit:586 */
1543 UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
1544 label1: while(0);
1545 stack_frame_head = fra.me.prev;
1546 return;
1547 }
1548 void string___Buffer___add(val_t p0, val_t p1){
1549 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1550 val_t REGB0;
1551 val_t REGB1;
1552 val_t REGB2;
1553 val_t tmp;
1554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1555 fra.me.file = LOCATE_string;
1556 fra.me.line = 285;
1557 fra.me.meth = LOCATE_string___Buffer___add;
1558 fra.me.has_broke = 0;
1559 fra.me.REG_size = 2;
1560 fra.me.REG[0] = NIT_NULL;
1561 fra.me.REG[1] = NIT_NULL;
1562 fra.me.REG[0] = p0;
1563 REGB0 = p1;
1564 REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
1565 /* ./../lib/standard//string.nit:287 */
1566 if (UNTAG_Bool(REGB1)) {
1567 } else {
1568 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1569 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 287);
1570 nit_exit(1);
1571 }
1572 REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[0]);
1573 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1574 /* ./../lib/standard//collection//array.nit:23 */
1575 if (UNTAG_Bool(REGB2)) {
1576 } else {
1577 fprintf(stderr, "Uninitialized attribute %s", "_length");
1578 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1579 nit_exit(1);
1580 }
1581 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1582 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB2));
1583 /* ./../lib/standard//string.nit:287 */
1584 if (UNTAG_Bool(REGB2)) {
1585 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1586 /* ./../lib/standard//collection//array.nit:23 */
1587 if (UNTAG_Bool(REGB2)) {
1588 } else {
1589 fprintf(stderr, "Uninitialized attribute %s", "_length");
1590 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1591 nit_exit(1);
1592 }
1593 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1594 REGB1 = TAG_Int(5);
1595 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
1596 /* ./../lib/standard//string.nit:287 */
1597 CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
1598 }
1599 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1600 /* ./../lib/standard//string.nit:288 */
1601 if (UNTAG_Bool(REGB1)) {
1602 } else {
1603 fprintf(stderr, "Uninitialized attribute %s", "_items");
1604 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 288);
1605 nit_exit(1);
1606 }
1607 fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1608 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1609 /* ./../lib/standard//collection//array.nit:23 */
1610 if (UNTAG_Bool(REGB1)) {
1611 } else {
1612 fprintf(stderr, "Uninitialized attribute %s", "_length");
1613 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1614 nit_exit(1);
1615 }
1616 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1617 /* ./../lib/standard//string.nit:586 */
1618 UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB1)]=UNTAG_Char(REGB0);;
1619 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1620 REGB1 = TAG_Int(1);
1621 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1622 /* ./../lib/standard//string.nit:289 */
1623 ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
1624 stack_frame_head = fra.me.prev;
1625 return;
1626 }
1627 void string___Buffer___append(val_t p0, val_t p1){
1628 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1629 val_t REGB0;
1630 val_t REGB1;
1631 val_t REGB2;
1632 val_t tmp;
1633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1634 fra.me.file = LOCATE_string;
1635 fra.me.line = 303;
1636 fra.me.meth = LOCATE_string___Buffer___append;
1637 fra.me.has_broke = 0;
1638 fra.me.REG_size = 5;
1639 fra.me.REG[0] = NIT_NULL;
1640 fra.me.REG[1] = NIT_NULL;
1641 fra.me.REG[2] = NIT_NULL;
1642 fra.me.REG[3] = NIT_NULL;
1643 fra.me.REG[4] = NIT_NULL;
1644 fra.me.REG[0] = p0;
1645 fra.me.REG[1] = p1;
1646 fra.me.REG[2] = fra.me.REG[0];
1647 fra.me.REG[3] = fra.me.REG[1];
1648 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_String, ID_String)) /*cast String*/;
1649 /* ./../lib/standard//string.nit:305 */
1650 if (UNTAG_Bool(REGB0)) {
1651 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1652 /* ./../lib/standard//collection//array.nit:23 */
1653 if (UNTAG_Bool(REGB0)) {
1654 } else {
1655 fprintf(stderr, "Uninitialized attribute %s", "_length");
1656 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1657 nit_exit(1);
1658 }
1659 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1660 REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL);
1661 /* ./../lib/standard//string.nit:307 */
1662 if (UNTAG_Bool(REGB1)) {
1663 } else {
1664 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1665 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 307);
1666 nit_exit(1);
1667 }
1668 REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[2]);
1669 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1670 /* ./../lib/standard//collection//array.nit:23 */
1671 if (UNTAG_Bool(REGB2)) {
1672 } else {
1673 fprintf(stderr, "Uninitialized attribute %s", "_length");
1674 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1675 nit_exit(1);
1676 }
1677 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1678 REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1679 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1680 /* ./../lib/standard//string.nit:307 */
1681 if (UNTAG_Bool(REGB2)) {
1682 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1683 /* ./../lib/standard//collection//array.nit:23 */
1684 if (UNTAG_Bool(REGB2)) {
1685 } else {
1686 fprintf(stderr, "Uninitialized attribute %s", "_length");
1687 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1688 nit_exit(1);
1689 }
1690 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1691 REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1692 /* ./../lib/standard//string.nit:307 */
1693 CALL_array___AbstractArray___enlarge(fra.me.REG[2])(fra.me.REG[2], REGB2);
1694 }
1695 fra.me.REG[3] = CALL_string___AbstractString___items(fra.me.REG[3])(fra.me.REG[3]);
1696 REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
1697 /* ./../lib/standard//string.nit:308 */
1698 if (UNTAG_Bool(REGB2)) {
1699 } else {
1700 fprintf(stderr, "Uninitialized attribute %s", "_items");
1701 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 308);
1702 nit_exit(1);
1703 }
1704 fra.me.REG[4] = ATTR_string___AbstractString____items(fra.me.REG[2]);
1705 REGB2 = TAG_Int(0);
1706 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1707 /* ./../lib/standard//collection//array.nit:23 */
1708 if (UNTAG_Bool(REGB1)) {
1709 } else {
1710 fprintf(stderr, "Uninitialized attribute %s", "_length");
1711 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1712 nit_exit(1);
1713 }
1714 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1715 /* ./../lib/standard//string.nit:587 */
1716 (void)memcpy(UNBOX_NativeString(fra.me.REG[4])+UNTAG_Int(REGB1), UNBOX_NativeString(fra.me.REG[3])+UNTAG_Int(REGB2), UNTAG_Int(REGB0));;
1717 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1718 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1719 /* ./../lib/standard//string.nit:309 */
1720 ATTR_array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
1721 } else {
1722 /* ./../lib/standard//string.nit:311 */
1723 CALL_SUPER_string___Buffer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1724 }
1725 stack_frame_head = fra.me.prev;
1726 return;
1727 }
1728 void string___Buffer___enlarge(val_t p0, val_t p1){
1729 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1730 val_t REGB0;
1731 val_t REGB1;
1732 val_t REGB2;
1733 val_t REGB3;
1734 val_t tmp;
1735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1736 fra.me.file = LOCATE_string;
1737 fra.me.line = 292;
1738 fra.me.meth = LOCATE_string___Buffer___enlarge;
1739 fra.me.has_broke = 0;
1740 fra.me.REG_size = 3;
1741 fra.me.REG[0] = NIT_NULL;
1742 fra.me.REG[1] = NIT_NULL;
1743 fra.me.REG[2] = NIT_NULL;
1744 fra.me.REG[0] = p0;
1745 REGB0 = p1;
1746 REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
1747 /* ./../lib/standard//string.nit:294 */
1748 if (UNTAG_Bool(REGB1)) {
1749 } else {
1750 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1751 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 294);
1752 nit_exit(1);
1753 }
1754 REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[0]);
1755 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1756 /* ./../lib/standard//string.nit:295 */
1757 if (UNTAG_Bool(REGB2)) {
1758 goto label1;
1759 }
1760 /* ./../lib/standard//string.nit:296 */
1761 while(1) {
1762 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1763 /* ./../lib/standard//string.nit:296 */
1764 if (UNTAG_Bool(REGB2)) {
1765 REGB2 = TAG_Int(2);
1766 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
1767 REGB3 = TAG_Int(2);
1768 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1769 REGB1 = REGB3;
1770 /* ./../lib/standard//string.nit:296 */
1771 } else {
1772 goto label2;
1773 }
1774 }
1775 label2: while(0);
1776 REGB0 = TAG_Int(1);
1777 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1778 fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
1779 REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1780 /* ./../lib/standard//string.nit:298 */
1781 if (UNTAG_Bool(REGB0)) {
1782 } else {
1783 fprintf(stderr, "Uninitialized attribute %s", "_items");
1784 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 298);
1785 nit_exit(1);
1786 }
1787 fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]);
1788 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1789 /* ./../lib/standard//collection//array.nit:23 */
1790 if (UNTAG_Bool(REGB0)) {
1791 } else {
1792 fprintf(stderr, "Uninitialized attribute %s", "_length");
1793 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1794 nit_exit(1);
1795 }
1796 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1797 REGB3 = TAG_Int(0);
1798 REGB2 = TAG_Int(0);
1799 /* ./../lib/standard//string.nit:587 */
1800 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB3), UNTAG_Int(REGB0));;
1801 /* ./../lib/standard//string.nit:299 */
1802 ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
1803 /* ./../lib/standard//string.nit:300 */
1804 ATTR_string___Buffer____capacity(fra.me.REG[0]) = REGB1;
1805 label1: while(0);
1806 stack_frame_head = fra.me.prev;
1807 return;
1808 }
1809 void string___Buffer___init(val_t p0, int* init_table){
1810 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Buffer].i;
1811 struct {struct stack_frame_t me;} fra;
1812 val_t REGB0;
1813 val_t tmp;
1814 if (init_table[itpos2]) return;
1815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1816 fra.me.file = LOCATE_string;
1817 fra.me.line = 349;
1818 fra.me.meth = LOCATE_string___Buffer___init;
1819 fra.me.has_broke = 0;
1820 fra.me.REG_size = 1;
1821 fra.me.REG[0] = NIT_NULL;
1822 fra.me.REG[0] = p0;
1823 REGB0 = TAG_Int(5);
1824 /* ./../lib/standard//string.nit:352 */
1825 CALL_string___Buffer___with_capacity(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
1826 stack_frame_head = fra.me.prev;
1827 init_table[itpos2] = 1;
1828 return;
1829 }
1830 void string___Buffer___from(val_t p0, val_t p1, int* init_table){
1831 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Buffer].i;
1832 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1833 val_t REGB0;
1834 val_t REGB1;
1835 val_t REGB2;
1836 val_t tmp;
1837 if (init_table[itpos3]) return;
1838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1839 fra.me.file = LOCATE_string;
1840 fra.me.line = 355;
1841 fra.me.meth = LOCATE_string___Buffer___from;
1842 fra.me.has_broke = 0;
1843 fra.me.REG_size = 3;
1844 fra.me.REG[0] = NIT_NULL;
1845 fra.me.REG[1] = NIT_NULL;
1846 fra.me.REG[2] = NIT_NULL;
1847 fra.me.REG[0] = p0;
1848 fra.me.REG[1] = p1;
1849 fra.me.REG[2] = fra.me.REG[0];
1850 /* ./../lib/standard//string.nit:355 */
1851 CALL_string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1852 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1853 /* ./../lib/standard//collection//array.nit:23 */
1854 if (UNTAG_Bool(REGB0)) {
1855 } else {
1856 fprintf(stderr, "Uninitialized attribute %s", "_length");
1857 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1858 nit_exit(1);
1859 }
1860 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1861 REGB1 = TAG_Int(1);
1862 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1863 /* ./../lib/standard//string.nit:357 */
1864 ATTR_string___Buffer____capacity(fra.me.REG[2]) = REGB1;
1865 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1866 /* ./../lib/standard//collection//array.nit:23 */
1867 if (UNTAG_Bool(REGB1)) {
1868 } else {
1869 fprintf(stderr, "Uninitialized attribute %s", "_length");
1870 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1871 nit_exit(1);
1872 }
1873 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
1874 /* ./../lib/standard//string.nit:358 */
1875 ATTR_array___AbstractArrayRead____length(fra.me.REG[2]) = REGB1;
1876 REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL);
1877 /* ./../lib/standard//string.nit:359 */
1878 if (UNTAG_Bool(REGB1)) {
1879 } else {
1880 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1881 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 359);
1882 nit_exit(1);
1883 }
1884 REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[2]);
1885 fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
1886 /* ./../lib/standard//string.nit:359 */
1887 ATTR_string___AbstractString____items(fra.me.REG[2]) = fra.me.REG[0];
1888 fra.me.REG[1] = CALL_string___AbstractString___items(fra.me.REG[1])(fra.me.REG[1]);
1889 REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
1890 /* ./../lib/standard//string.nit:360 */
1891 if (UNTAG_Bool(REGB1)) {
1892 } else {
1893 fprintf(stderr, "Uninitialized attribute %s", "_items");
1894 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 360);
1895 nit_exit(1);
1896 }
1897 fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[2]);
1898 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1899 if (UNTAG_Bool(REGB1)) {
1900 } else {
1901 fprintf(stderr, "Uninitialized attribute %s", "_length");
1902 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 360);
1903 nit_exit(1);
1904 }
1905 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1906 REGB0 = TAG_Int(0);
1907 REGB2 = TAG_Int(0);
1908 /* ./../lib/standard//string.nit:587 */
1909 (void)memcpy(UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB0), UNTAG_Int(REGB1));;
1910 stack_frame_head = fra.me.prev;
1911 init_table[itpos3] = 1;
1912 return;
1913 }
1914 void string___Buffer___with_capacity(val_t p0, val_t p1, int* init_table){
1915 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Buffer].i;
1916 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1917 val_t REGB0;
1918 val_t REGB1;
1919 val_t tmp;
1920 if (init_table[itpos4]) return;
1921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1922 fra.me.file = LOCATE_string;
1923 fra.me.line = 363;
1924 fra.me.meth = LOCATE_string___Buffer___with_capacity;
1925 fra.me.has_broke = 0;
1926 fra.me.REG_size = 2;
1927 fra.me.REG[0] = NIT_NULL;
1928 fra.me.REG[1] = NIT_NULL;
1929 fra.me.REG[0] = p0;
1930 REGB0 = p1;
1931 fra.me.REG[1] = fra.me.REG[0];
1932 /* ./../lib/standard//string.nit:363 */
1933 CALL_string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1934 REGB1 = TAG_Int(0);
1935 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1936 /* ./../lib/standard//string.nit:366 */
1937 if (UNTAG_Bool(REGB1)) {
1938 } else {
1939 fprintf(stderr, "Assert failed");
1940 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 366);
1941 nit_exit(1);
1942 }
1943 REGB1 = TAG_Int(1);
1944 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1945 fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
1946 /* ./../lib/standard//string.nit:368 */
1947 ATTR_string___AbstractString____items(fra.me.REG[1]) = fra.me.REG[0];
1948 /* ./../lib/standard//string.nit:369 */
1949 ATTR_string___Buffer____capacity(fra.me.REG[1]) = REGB0;
1950 REGB0 = TAG_Int(0);
1951 /* ./../lib/standard//string.nit:370 */
1952 ATTR_array___AbstractArrayRead____length(fra.me.REG[1]) = REGB0;
1953 stack_frame_head = fra.me.prev;
1954 init_table[itpos4] = 1;
1955 return;
1956 }
1957 val_t string___Buffer___capacity(val_t p0){
1958 struct {struct stack_frame_t me;} fra;
1959 val_t REGB0;
1960 val_t tmp;
1961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1962 fra.me.file = LOCATE_string;
1963 fra.me.line = 388;
1964 fra.me.meth = LOCATE_string___Buffer___capacity;
1965 fra.me.has_broke = 0;
1966 fra.me.REG_size = 1;
1967 fra.me.REG[0] = NIT_NULL;
1968 fra.me.REG[0] = p0;
1969 REGB0 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
1970 /* ./../lib/standard//string.nit:388 */
1971 if (UNTAG_Bool(REGB0)) {
1972 } else {
1973 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1974 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 388);
1975 nit_exit(1);
1976 }
1977 REGB0 = ATTR_string___Buffer____capacity(fra.me.REG[0]);
1978 stack_frame_head = fra.me.prev;
1979 return REGB0;
1980 }
1981 val_t string___Object___to_s(val_t p0){
1982 struct {struct stack_frame_t me;} fra;
1983 val_t tmp;
1984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1985 fra.me.file = LOCATE_string;
1986 fra.me.line = 398;
1987 fra.me.meth = LOCATE_string___Object___to_s;
1988 fra.me.has_broke = 0;
1989 fra.me.REG_size = 1;
1990 fra.me.REG[0] = NIT_NULL;
1991 fra.me.REG[0] = p0;
1992 fra.me.REG[0] = CALL_string___Object___inspect(fra.me.REG[0])(fra.me.REG[0]);
1993 /* ./../lib/standard//string.nit:399 */
1994 goto label1;
1995 label1: while(0);
1996 stack_frame_head = fra.me.prev;
1997 return fra.me.REG[0];
1998 }
1999 val_t string___Object___inspect(val_t p0){
2000 struct {struct stack_frame_t me;} fra;
2001 val_t tmp;
2002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2003 fra.me.file = LOCATE_string;
2004 fra.me.line = 401;
2005 fra.me.meth = LOCATE_string___Object___inspect;
2006 fra.me.has_broke = 0;
2007 fra.me.REG_size = 1;
2008 fra.me.REG[0] = NIT_NULL;
2009 fra.me.REG[0] = p0;
2010 fra.me.REG[0] = CALL_string___Object___inspect_head(fra.me.REG[0])(fra.me.REG[0]);
2011 /* ./../lib/standard//string.nit:407 */
2012 goto label1;
2013 label1: while(0);
2014 stack_frame_head = fra.me.prev;
2015 return fra.me.REG[0];
2016 }
2017 val_t string___Object___inspect_head(val_t p0){
2018 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2019 val_t REGB0;
2020 val_t tmp;
2021 static val_t once_value_1; /* Once value */
2022 static val_t once_value_2; /* Once value */
2023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2024 fra.me.file = LOCATE_string;
2025 fra.me.line = 410;
2026 fra.me.meth = LOCATE_string___Object___inspect_head;
2027 fra.me.has_broke = 0;
2028 fra.me.REG_size = 3;
2029 fra.me.REG[0] = NIT_NULL;
2030 fra.me.REG[1] = NIT_NULL;
2031 fra.me.REG[2] = NIT_NULL;
2032 fra.me.REG[0] = p0;
2033 REGB0 = TAG_Int(3);
2034 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
2035 /* ./../lib/standard//string.nit:414 */
2036 if (!once_value_1) {
2037 fra.me.REG[2] = BOX_NativeString("<");
2038 REGB0 = TAG_Int(1);
2039 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2040 once_value_1 = fra.me.REG[2];
2041 register_static_object(&once_value_1);
2042 } else fra.me.REG[2] = once_value_1;
2043 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
2044 REGB0 = CALL_kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]);
2045 fra.me.REG[0] = CALL_string___Int___to_hex(REGB0)(REGB0);
2046 array___Array___add(fra.me.REG[1], fra.me.REG[0]);
2047 if (!once_value_2) {
2048 fra.me.REG[0] = BOX_NativeString("");
2049 REGB0 = TAG_Int(0);
2050 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2051 once_value_2 = fra.me.REG[0];
2052 register_static_object(&once_value_2);
2053 } else fra.me.REG[0] = once_value_2;
2054 array___Array___add(fra.me.REG[1], fra.me.REG[0]);
2055 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2056 goto label3;
2057 label3: while(0);
2058 stack_frame_head = fra.me.prev;
2059 return fra.me.REG[1];
2060 }
2061 val_t string___Object___args(val_t p0){
2062 struct {struct stack_frame_t me;} fra;
2063 val_t tmp;
2064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2065 fra.me.file = LOCATE_string;
2066 fra.me.line = 417;
2067 fra.me.meth = LOCATE_string___Object___args;
2068 fra.me.has_broke = 0;
2069 fra.me.REG_size = 1;
2070 fra.me.REG[0] = NIT_NULL;
2071 fra.me.REG[0] = p0;
2072 fra.me.REG[0] = CALL_kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]);
2073 fra.me.REG[0] = CALL_string___Object___args(fra.me.REG[0])(fra.me.REG[0]);
2074 /* ./../lib/standard//string.nit:419 */
2075 goto label1;
2076 label1: while(0);
2077 stack_frame_head = fra.me.prev;
2078 return fra.me.REG[0];
2079 }
2080 val_t string___Bool___to_s(val_t p0){
2081 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2082 val_t REGB0;
2083 val_t tmp;
2084 static val_t once_value_1; /* Once value */
2085 static val_t once_value_2; /* Once value */
2086 static val_t once_value_4; /* Once value */
2087 static val_t once_value_5; /* Once value */
2088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2089 fra.me.file = LOCATE_string;
2090 fra.me.line = 424;
2091 fra.me.meth = LOCATE_string___Bool___to_s;
2092 fra.me.has_broke = 0;
2093 fra.me.REG_size = 2;
2094 fra.me.REG[0] = NIT_NULL;
2095 fra.me.REG[1] = NIT_NULL;
2096 REGB0 = p0;
2097 /* ./../lib/standard//string.nit:426 */
2098 if (UNTAG_Bool(REGB0)) {
2099 /* ./../lib/standard//string.nit:427 */
2100 if (!once_value_1) {
2101 if (!once_value_2) {
2102 fra.me.REG[0] = BOX_NativeString("true");
2103 REGB0 = TAG_Int(4);
2104 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2105 once_value_2 = fra.me.REG[0];
2106 register_static_object(&once_value_2);
2107 } else fra.me.REG[0] = once_value_2;
2108 once_value_1 = fra.me.REG[0];
2109 register_static_object(&once_value_1);
2110 } else fra.me.REG[0] = once_value_1;
2111 goto label3;
2112 } else {
2113 /* ./../lib/standard//string.nit:429 */
2114 if (!once_value_4) {
2115 if (!once_value_5) {
2116 fra.me.REG[1] = BOX_NativeString("false");
2117 REGB0 = TAG_Int(5);
2118 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2119 once_value_5 = fra.me.REG[1];
2120 register_static_object(&once_value_5);
2121 } else fra.me.REG[1] = once_value_5;
2122 once_value_4 = fra.me.REG[1];
2123 register_static_object(&once_value_4);
2124 } else fra.me.REG[1] = once_value_4;
2125 fra.me.REG[0] = fra.me.REG[1];
2126 goto label3;
2127 }
2128 label3: while(0);
2129 stack_frame_head = fra.me.prev;
2130 return fra.me.REG[0];
2131 }
2132 val_t string___Int___to_s(val_t p0){
2133 struct {struct stack_frame_t me;} fra;
2134 val_t REGB0;
2135 val_t REGB1;
2136 val_t REGB2;
2137 val_t tmp;
2138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2139 fra.me.file = LOCATE_string;
2140 fra.me.line = 459;
2141 fra.me.meth = LOCATE_string___Int___to_s;
2142 fra.me.has_broke = 0;
2143 fra.me.REG_size = 1;
2144 fra.me.REG[0] = NIT_NULL;
2145 REGB0 = p0;
2146 REGB1 = TAG_Int(10);
2147 REGB2 = TAG_Bool(true);
2148 fra.me.REG[0] = CALL_string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
2149 /* ./../lib/standard//string.nit:460 */
2150 goto label1;
2151 label1: while(0);
2152 stack_frame_head = fra.me.prev;
2153 return fra.me.REG[0];
2154 }
2155 void string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p3){
2156 struct {struct stack_frame_t me;} fra;
2157 val_t REGB0;
2158 val_t REGB1;
2159 val_t REGB2;
2160 val_t REGB3;
2161 val_t REGB4;
2162 val_t tmp;
2163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2164 fra.me.file = LOCATE_string;
2165 fra.me.line = 435;
2166 fra.me.meth = LOCATE_string___Int___fill_buffer;
2167 fra.me.has_broke = 0;
2168 fra.me.REG_size = 1;
2169 fra.me.REG[0] = NIT_NULL;
2170 REGB0 = p0;
2171 fra.me.REG[0] = p1;
2172 REGB1 = p2;
2173 REGB2 = p3;
2174 REGB2 = TAG_Int(0);
2175 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
2176 /* ./../lib/standard//string.nit:441 */
2177 if (UNTAG_Bool(REGB2)) {
2178 REGB2 = TAG_Int(-UNTAG_Int(REGB0));
2179 REGB3 = TAG_Int(0);
2180 REGB4 = TAG_Char('-');
2181 /* ./../lib/standard//string.nit:443 */
2182 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
2183 } else {
2184 REGB4 = TAG_Int(0);
2185 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
2186 /* ./../lib/standard//string.nit:444 */
2187 if (UNTAG_Bool(REGB3)) {
2188 } else {
2189 REGB4 = TAG_Bool((REGB0)==(REGB4));
2190 REGB3 = REGB4;
2191 /* ./../lib/standard//string.nit:444 */
2192 }
2193 if (UNTAG_Bool(REGB3)) {
2194 REGB3 = TAG_Int(0);
2195 REGB4 = TAG_Char('0');
2196 /* ./../lib/standard//string.nit:445 */
2197 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
2198 /* ./../lib/standard//string.nit:446 */
2199 goto label1;
2200 } else {
2201 REGB2 = REGB0;
2202 /* ./../lib/standard//string.nit:448 */
2203 }
2204 }
2205 REGB0 = CALL_kernel___Int___digit_count(REGB0)(REGB0, REGB1);
2206 REGB4 = TAG_Int(1);
2207 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
2208 /* ./../lib/standard//string.nit:452 */
2209 while(1) {
2210 REGB0 = TAG_Int(0);
2211 REGB0 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB0));
2212 /* ./../lib/standard//string.nit:452 */
2213 if (UNTAG_Bool(REGB0)) {
2214 REGB0 = TAG_Int(0);
2215 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
2216 /* ./../lib/standard//string.nit:452 */
2217 } else {
2218 REGB3 = TAG_Bool(false);
2219 REGB0 = REGB3;
2220 }
2221 if (UNTAG_Bool(REGB0)) {
2222 REGB0 = TAG_Int(UNTAG_Int(REGB2)%UNTAG_Int(REGB1));
2223 REGB0 = CALL_kernel___Int___to_c(REGB0)(REGB0);
2224 /* ./../lib/standard//string.nit:453 */
2225 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB0);
2226 REGB0 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
2227 REGB2 = REGB0;
2228 REGB0 = TAG_Int(1);
2229 REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0));
2230 REGB4 = REGB0;
2231 /* ./../lib/standard//string.nit:455 */
2232 } else {
2233 /* ./../lib/standard//string.nit:452 */
2234 goto label2;
2235 }
2236 }
2237 label2: while(0);
2238 label1: while(0);
2239 stack_frame_head = fra.me.prev;
2240 return;
2241 }
2242 val_t string___Int___to_hex(val_t p0){
2243 struct {struct stack_frame_t me;} fra;
2244 val_t REGB0;
2245 val_t REGB1;
2246 val_t REGB2;
2247 val_t tmp;
2248 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2249 fra.me.file = LOCATE_string;
2250 fra.me.line = 462;
2251 fra.me.meth = LOCATE_string___Int___to_hex;
2252 fra.me.has_broke = 0;
2253 fra.me.REG_size = 1;
2254 fra.me.REG[0] = NIT_NULL;
2255 REGB0 = p0;
2256 REGB1 = TAG_Int(16);
2257 REGB2 = TAG_Bool(false);
2258 fra.me.REG[0] = CALL_string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
2259 /* ./../lib/standard//string.nit:463 */
2260 goto label1;
2261 label1: while(0);
2262 stack_frame_head = fra.me.prev;
2263 return fra.me.REG[0];
2264 }
2265 val_t string___Int___to_base(val_t p0, val_t p1, val_t p2){
2266 struct {struct stack_frame_t me;} fra;
2267 val_t REGB0;
2268 val_t REGB1;
2269 val_t REGB2;
2270 val_t REGB3;
2271 val_t REGB4;
2272 val_t tmp;
2273 static val_t once_value_1; /* Once value */
2274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2275 fra.me.file = LOCATE_string;
2276 fra.me.line = 465;
2277 fra.me.meth = LOCATE_string___Int___to_base;
2278 fra.me.has_broke = 0;
2279 fra.me.REG_size = 1;
2280 fra.me.REG[0] = NIT_NULL;
2281 REGB0 = p0;
2282 REGB1 = p1;
2283 REGB2 = p2;
2284 REGB3 = CALL_kernel___Int___digit_count(REGB0)(REGB0, REGB1);
2285 /* ./../lib/standard//string.nit:469 */
2286 if (!once_value_1) {
2287 fra.me.REG[0] = BOX_NativeString(" ");
2288 REGB4 = TAG_Int(1);
2289 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB4);
2290 once_value_1 = fra.me.REG[0];
2291 register_static_object(&once_value_1);
2292 } else fra.me.REG[0] = once_value_1;
2293 fra.me.REG[0] = CALL_string___String_____star(fra.me.REG[0])(fra.me.REG[0], REGB3);
2294 fra.me.REG[0] = NEW_Buffer_string___Buffer___from(fra.me.REG[0]);
2295 /* ./../lib/standard//string.nit:470 */
2296 CALL_string___Int___fill_buffer(REGB0)(REGB0, fra.me.REG[0], REGB1, REGB2);
2297 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2298 /* ./../lib/standard//string.nit:471 */
2299 goto label2;
2300 label2: while(0);
2301 stack_frame_head = fra.me.prev;
2302 return fra.me.REG[0];
2303 }
2304 val_t string___Float___to_s(val_t p0){
2305 struct {struct stack_frame_t me;} fra;
2306 val_t REGB0;
2307 val_t tmp;
2308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2309 fra.me.file = LOCATE_string;
2310 fra.me.line = 476;
2311 fra.me.meth = LOCATE_string___Float___to_s;
2312 fra.me.has_broke = 0;
2313 fra.me.REG_size = 1;
2314 fra.me.REG[0] = NIT_NULL;
2315 fra.me.REG[0] = p0;
2316 REGB0 = TAG_Int(6);
2317 fra.me.REG[0] = CALL_string___Float___to_precision(fra.me.REG[0])(fra.me.REG[0], REGB0);
2318 /* ./../lib/standard//string.nit:476 */
2319 goto label1;
2320 label1: while(0);
2321 stack_frame_head = fra.me.prev;
2322 return fra.me.REG[0];
2323 }
2324 val_t string___Float___to_precision(val_t p0, val_t p1){
2325 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2326 val_t REGB0;
2327 val_t REGB1;
2328 val_t REGB2;
2329 val_t tmp;
2330 static val_t once_value_3; /* Once value */
2331 static val_t once_value_4; /* Once value */
2332 static val_t once_value_5; /* Once value */
2333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2334 fra.me.file = LOCATE_string;
2335 fra.me.line = 478;
2336 fra.me.meth = LOCATE_string___Float___to_precision;
2337 fra.me.has_broke = 0;
2338 fra.me.REG_size = 4;
2339 fra.me.REG[0] = NIT_NULL;
2340 fra.me.REG[1] = NIT_NULL;
2341 fra.me.REG[2] = NIT_NULL;
2342 fra.me.REG[3] = NIT_NULL;
2343 fra.me.REG[0] = p0;
2344 REGB0 = p1;
2345 REGB1 = TAG_Int(0);
2346 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2347 /* ./../lib/standard//string.nit:481 */
2348 if (UNTAG_Bool(REGB2)) {
2349 } else {
2350 REGB1 = TAG_Bool((REGB0)==(REGB1));
2351 REGB2 = REGB1;
2352 /* ./../lib/standard//string.nit:481 */
2353 }
2354 if (UNTAG_Bool(REGB2)) {
2355 REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
2356 fra.me.REG[1] = CALL_string___Object___to_s(REGB2)(REGB2);
2357 /* ./../lib/standard//string.nit:481 */
2358 goto label1;
2359 }
2360 REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
2361 fra.me.REG[2] = BOX_Float(1.0);
2362 /* ./../lib/standard//string.nit:485 */
2363 while(1) {
2364 REGB1 = TAG_Int(0);
2365 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
2366 /* ./../lib/standard//string.nit:485 */
2367 if (UNTAG_Bool(REGB1)) {
2368 fra.me.REG[3] = BOX_Float(10.0);
2369 fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[2])*UNBOX_Float(fra.me.REG[3]));
2370 fra.me.REG[2] = fra.me.REG[3];
2371 REGB1 = TAG_Int(1);
2372 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
2373 REGB0 = REGB1;
2374 /* ./../lib/standard//string.nit:487 */
2375 } else {
2376 /* ./../lib/standard//string.nit:485 */
2377 goto label2;
2378 }
2379 }
2380 label2: while(0);
2381 fra.me.REG[3] = BOX_Float((float)UNTAG_Int(REGB2));
2382 fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[3]));
2383 fra.me.REG[2] = BOX_Float(UNBOX_Float(fra.me.REG[3])*UNBOX_Float(fra.me.REG[2]));
2384 REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[2]));
2385 REGB1 = TAG_Int(5);
2386 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
2387 /* ./../lib/standard//string.nit:490 */
2388 if (!once_value_3) {
2389 fra.me.REG[3] = BOX_NativeString("");
2390 REGB1 = TAG_Int(0);
2391 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
2392 once_value_3 = fra.me.REG[3];
2393 register_static_object(&once_value_3);
2394 } else fra.me.REG[3] = once_value_3;
2395 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2396 fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
2397 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2398 if (!once_value_4) {
2399 fra.me.REG[3] = BOX_NativeString(".");
2400 REGB2 = TAG_Int(1);
2401 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
2402 once_value_4 = fra.me.REG[3];
2403 register_static_object(&once_value_4);
2404 } else fra.me.REG[3] = once_value_4;
2405 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2406 fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0);
2407 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2408 if (!once_value_5) {
2409 fra.me.REG[3] = BOX_NativeString("");
2410 REGB0 = TAG_Int(0);
2411 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2412 once_value_5 = fra.me.REG[3];
2413 register_static_object(&once_value_5);
2414 } else fra.me.REG[3] = once_value_5;
2415 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2416 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2417 fra.me.REG[1] = fra.me.REG[2];
2418 goto label1;
2419 label1: while(0);
2420 stack_frame_head = fra.me.prev;
2421 return fra.me.REG[1];
2422 }
2423 val_t string___Char___to_s(val_t p0){
2424 struct {struct stack_frame_t me;} fra;
2425 val_t REGB0;
2426 val_t REGB1;
2427 val_t tmp;
2428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2429 fra.me.file = LOCATE_string;
2430 fra.me.line = 495;
2431 fra.me.meth = LOCATE_string___Char___to_s;
2432 fra.me.has_broke = 0;
2433 fra.me.REG_size = 1;
2434 fra.me.REG[0] = NIT_NULL;
2435 REGB0 = p0;
2436 REGB1 = TAG_Int(1);
2437 fra.me.REG[0] = NEW_Buffer_string___Buffer___with_capacity(REGB1);
2438 REGB1 = TAG_Int(0);
2439 /* ./../lib/standard//string.nit:498 */
2440 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
2441 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2442 /* ./../lib/standard//string.nit:499 */
2443 goto label1;
2444 label1: while(0);
2445 stack_frame_head = fra.me.prev;
2446 return fra.me.REG[0];
2447 }
2448 val_t string___Collection___to_s(val_t p0){
2449 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2450 val_t REGB0;
2451 val_t REGB1;
2452 val_t tmp;
2453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2454 fra.me.file = LOCATE_string;
2455 fra.me.line = 504;
2456 fra.me.meth = LOCATE_string___Collection___to_s;
2457 fra.me.has_broke = 0;
2458 fra.me.REG_size = 3;
2459 fra.me.REG[0] = NIT_NULL;
2460 fra.me.REG[1] = NIT_NULL;
2461 fra.me.REG[2] = NIT_NULL;
2462 fra.me.REG[0] = p0;
2463 fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
2464 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2465 /* ./../lib/standard//string.nit:508 */
2466 while(1) {
2467 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2468 if (UNTAG_Bool(REGB0)) {
2469 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2470 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2471 if (UNTAG_Bool(REGB0)) {
2472 } else {
2473 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2474 if (UNTAG_Bool(REGB1)) {
2475 REGB1 = TAG_Bool(false);
2476 REGB0 = REGB1;
2477 } else {
2478 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2479 REGB0 = REGB1;
2480 }
2481 }
2482 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2483 if (UNTAG_Bool(REGB0)) {
2484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2485 if (UNTAG_Bool(REGB0)) {
2486 fprintf(stderr, "Reciever is null");
2487 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 508);
2488 nit_exit(1);
2489 }
2490 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2491 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2492 }
2493 } else {
2494 goto label1;
2495 }
2496 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2497 }
2498 label1: while(0);
2499 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2500 /* ./../lib/standard//string.nit:509 */
2501 goto label2;
2502 label2: while(0);
2503 stack_frame_head = fra.me.prev;
2504 return fra.me.REG[1];
2505 }
2506 val_t string___Collection___join(val_t p0, val_t p1){
2507 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2508 val_t REGB0;
2509 val_t REGB1;
2510 val_t tmp;
2511 static val_t once_value_1; /* Once value */
2512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2513 fra.me.file = LOCATE_string;
2514 fra.me.line = 512;
2515 fra.me.meth = LOCATE_string___Collection___join;
2516 fra.me.has_broke = 0;
2517 fra.me.REG_size = 6;
2518 fra.me.REG[0] = NIT_NULL;
2519 fra.me.REG[1] = NIT_NULL;
2520 fra.me.REG[2] = NIT_NULL;
2521 fra.me.REG[3] = NIT_NULL;
2522 fra.me.REG[4] = NIT_NULL;
2523 fra.me.REG[5] = NIT_NULL;
2524 fra.me.REG[0] = p0;
2525 fra.me.REG[1] = p1;
2526 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
2527 /* ./../lib/standard//string.nit:515 */
2528 if (UNTAG_Bool(REGB0)) {
2529 if (!once_value_1) {
2530 fra.me.REG[2] = BOX_NativeString("");
2531 REGB0 = TAG_Int(0);
2532 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2533 once_value_1 = fra.me.REG[2];
2534 register_static_object(&once_value_1);
2535 } else fra.me.REG[2] = once_value_1;
2536 goto label2;
2537 }
2538 fra.me.REG[3] = NEW_Buffer_string___Buffer___init();
2539 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2540 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2541 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2542 /* ./../lib/standard//string.nit:522 */
2543 if (UNTAG_Bool(REGB0)) {
2544 } else {
2545 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2546 if (UNTAG_Bool(REGB1)) {
2547 REGB1 = TAG_Bool(false);
2548 REGB0 = REGB1;
2549 } else {
2550 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2551 REGB0 = REGB1;
2552 }
2553 }
2554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2555 if (UNTAG_Bool(REGB0)) {
2556 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2557 if (UNTAG_Bool(REGB0)) {
2558 fprintf(stderr, "Reciever is null");
2559 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 522);
2560 nit_exit(1);
2561 }
2562 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2563 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
2564 }
2565 /* ./../lib/standard//string.nit:525 */
2566 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2567 /* ./../lib/standard//string.nit:526 */
2568 while(1) {
2569 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2570 if (UNTAG_Bool(REGB0)) {
2571 /* ./../lib/standard//string.nit:527 */
2572 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2573 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2574 fra.me.REG[4] = fra.me.REG[5];
2575 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2576 /* ./../lib/standard//string.nit:529 */
2577 if (UNTAG_Bool(REGB0)) {
2578 } else {
2579 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2580 if (UNTAG_Bool(REGB1)) {
2581 REGB1 = TAG_Bool(false);
2582 REGB0 = REGB1;
2583 } else {
2584 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2585 REGB0 = REGB1;
2586 }
2587 }
2588 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2589 if (UNTAG_Bool(REGB0)) {
2590 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2591 if (UNTAG_Bool(REGB0)) {
2592 fprintf(stderr, "Reciever is null");
2593 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 529);
2594 nit_exit(1);
2595 }
2596 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2597 CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
2598 }
2599 /* ./../lib/standard//string.nit:530 */
2600 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2601 } else {
2602 /* ./../lib/standard//string.nit:526 */
2603 goto label3;
2604 }
2605 }
2606 label3: while(0);
2607 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2608 fra.me.REG[2] = fra.me.REG[3];
2609 /* ./../lib/standard//string.nit:532 */
2610 goto label2;
2611 label2: while(0);
2612 stack_frame_head = fra.me.prev;
2613 return fra.me.REG[2];
2614 }
2615 val_t string___Array___to_s(val_t p0){
2616 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2617 val_t REGB0;
2618 val_t REGB1;
2619 val_t REGB2;
2620 val_t REGB3;
2621 val_t REGB4;
2622 val_t tmp;
2623 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2624 fra.me.file = LOCATE_string;
2625 fra.me.line = 537;
2626 fra.me.meth = LOCATE_string___Array___to_s;
2627 fra.me.has_broke = 0;
2628 fra.me.REG_size = 3;
2629 fra.me.REG[0] = NIT_NULL;
2630 fra.me.REG[1] = NIT_NULL;
2631 fra.me.REG[2] = NIT_NULL;
2632 fra.me.REG[0] = p0;
2633 fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
2634 REGB0 = TAG_Int(0);
2635 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2636 /* ./../lib/standard//collection//array.nit:23 */
2637 if (UNTAG_Bool(REGB1)) {
2638 } else {
2639 fprintf(stderr, "Uninitialized attribute %s", "_length");
2640 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
2641 nit_exit(1);
2642 }
2643 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
2644 /* ./../lib/standard//string.nit:543 */
2645 while(1) {
2646 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2647 /* ./../lib/standard//string.nit:543 */
2648 if (UNTAG_Bool(REGB2)) {
2649 fra.me.REG[2] = fra.me.REG[0];
2650 REGB2 = REGB0;
2651 REGB3 = TAG_Int(0);
2652 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
2653 /* ./../lib/standard//collection//array.nit:233 */
2654 if (UNTAG_Bool(REGB3)) {
2655 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2656 if (UNTAG_Bool(REGB3)) {
2657 } else {
2658 fprintf(stderr, "Uninitialized attribute %s", "_length");
2659 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2660 nit_exit(1);
2661 }
2662 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2663 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2664 /* ./../lib/standard//collection//array.nit:233 */
2665 } else {
2666 REGB4 = TAG_Bool(false);
2667 REGB3 = REGB4;
2668 }
2669 if (UNTAG_Bool(REGB3)) {
2670 } else {
2671 fprintf(stderr, "Assert %s failed", "'index'");
2672 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2673 nit_exit(1);
2674 }
2675 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
2676 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2677 /* ./../lib/standard//collection//array.nit:234 */
2678 if (UNTAG_Bool(REGB3)) {
2679 fprintf(stderr, "Reciever is null");
2680 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
2681 nit_exit(1);
2682 }
2683 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
2684 /* ./../lib/standard//collection//array.nit:234 */
2685 goto label1;
2686 label1: while(0);
2687 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2688 /* ./../lib/standard//string.nit:545 */
2689 if (UNTAG_Bool(REGB2)) {
2690 } else {
2691 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2692 if (UNTAG_Bool(REGB3)) {
2693 REGB3 = TAG_Bool(false);
2694 REGB2 = REGB3;
2695 } else {
2696 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2697 REGB2 = REGB3;
2698 }
2699 }
2700 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2701 if (UNTAG_Bool(REGB2)) {
2702 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2703 if (UNTAG_Bool(REGB2)) {
2704 fprintf(stderr, "Reciever is null");
2705 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 545);
2706 nit_exit(1);
2707 }
2708 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2709 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2710 }
2711 REGB2 = TAG_Int(1);
2712 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2713 REGB0 = REGB2;
2714 /* ./../lib/standard//string.nit:546 */
2715 } else {
2716 /* ./../lib/standard//string.nit:543 */
2717 goto label2;
2718 }
2719 }
2720 label2: while(0);
2721 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2722 /* ./../lib/standard//string.nit:548 */
2723 goto label3;
2724 label3: while(0);
2725 stack_frame_head = fra.me.prev;
2726 return fra.me.REG[1];
2727 }
2728 val_t string___Map___map_join(val_t p0, val_t p1, val_t p2){
2729 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2730 val_t REGB0;
2731 val_t REGB1;
2732 val_t tmp;
2733 static val_t once_value_1; /* Once value */
2734 static val_t once_value_3; /* Once value */
2735 static val_t once_value_4; /* Once value */
2736 static val_t once_value_5; /* Once value */
2737 static val_t once_value_6; /* Once value */
2738 static val_t once_value_7; /* Once value */
2739 static val_t once_value_8; /* Once value */
2740 static val_t once_value_9; /* Once value */
2741 static val_t once_value_10; /* Once value */
2742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2743 fra.me.file = LOCATE_string;
2744 fra.me.line = 553;
2745 fra.me.meth = LOCATE_string___Map___map_join;
2746 fra.me.has_broke = 0;
2747 fra.me.REG_size = 9;
2748 fra.me.REG[0] = NIT_NULL;
2749 fra.me.REG[1] = NIT_NULL;
2750 fra.me.REG[2] = NIT_NULL;
2751 fra.me.REG[3] = NIT_NULL;
2752 fra.me.REG[4] = NIT_NULL;
2753 fra.me.REG[5] = NIT_NULL;
2754 fra.me.REG[6] = NIT_NULL;
2755 fra.me.REG[7] = NIT_NULL;
2756 fra.me.REG[8] = NIT_NULL;
2757 fra.me.REG[0] = p0;
2758 fra.me.REG[1] = p1;
2759 fra.me.REG[2] = p2;
2760 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
2761 /* ./../lib/standard//string.nit:556 */
2762 if (UNTAG_Bool(REGB0)) {
2763 if (!once_value_1) {
2764 fra.me.REG[3] = BOX_NativeString("");
2765 REGB0 = TAG_Int(0);
2766 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2767 once_value_1 = fra.me.REG[3];
2768 register_static_object(&once_value_1);
2769 } else fra.me.REG[3] = once_value_1;
2770 goto label2;
2771 }
2772 fra.me.REG[4] = NEW_Buffer_string___Buffer___init();
2773 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2774 fra.me.REG[5] = CALL_abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
2775 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2776 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2777 /* ./../lib/standard//string.nit:564 */
2778 if (UNTAG_Bool(REGB0)) {
2779 } else {
2780 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2781 if (UNTAG_Bool(REGB1)) {
2782 REGB1 = TAG_Bool(false);
2783 REGB0 = REGB1;
2784 } else {
2785 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2786 REGB0 = REGB1;
2787 }
2788 }
2789 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2790 if (UNTAG_Bool(REGB0)) {
2791 REGB0 = TAG_Int(7);
2792 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
2793 if (!once_value_3) {
2794 fra.me.REG[8] = BOX_NativeString("");
2795 REGB0 = TAG_Int(0);
2796 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2797 once_value_3 = fra.me.REG[8];
2798 register_static_object(&once_value_3);
2799 } else fra.me.REG[8] = once_value_3;
2800 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2801 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2802 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2803 if (!once_value_4) {
2804 fra.me.REG[8] = BOX_NativeString("");
2805 REGB0 = TAG_Int(0);
2806 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2807 once_value_4 = fra.me.REG[8];
2808 register_static_object(&once_value_4);
2809 } else fra.me.REG[8] = once_value_4;
2810 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2811 array___Array___add(fra.me.REG[7], fra.me.REG[2]);
2812 if (!once_value_5) {
2813 fra.me.REG[8] = BOX_NativeString("");
2814 REGB0 = TAG_Int(0);
2815 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2816 once_value_5 = fra.me.REG[8];
2817 register_static_object(&once_value_5);
2818 } else fra.me.REG[8] = once_value_5;
2819 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2820 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
2821 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2822 if (!once_value_6) {
2823 fra.me.REG[8] = BOX_NativeString("");
2824 REGB0 = TAG_Int(0);
2825 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2826 once_value_6 = fra.me.REG[8];
2827 register_static_object(&once_value_6);
2828 } else fra.me.REG[8] = once_value_6;
2829 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2830 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2831 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2832 }
2833 /* ./../lib/standard//string.nit:567 */
2834 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2835 /* ./../lib/standard//string.nit:568 */
2836 while(1) {
2837 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2838 if (UNTAG_Bool(REGB0)) {
2839 /* ./../lib/standard//string.nit:569 */
2840 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2841 fra.me.REG[7] = CALL_abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
2842 fra.me.REG[5] = fra.me.REG[7];
2843 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2844 fra.me.REG[6] = fra.me.REG[7];
2845 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2846 /* ./../lib/standard//string.nit:572 */
2847 if (UNTAG_Bool(REGB0)) {
2848 } else {
2849 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2850 if (UNTAG_Bool(REGB1)) {
2851 REGB1 = TAG_Bool(false);
2852 REGB0 = REGB1;
2853 } else {
2854 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2855 REGB0 = REGB1;
2856 }
2857 }
2858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2859 if (UNTAG_Bool(REGB0)) {
2860 REGB0 = TAG_Int(7);
2861 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
2862 if (!once_value_7) {
2863 fra.me.REG[8] = BOX_NativeString("");
2864 REGB0 = TAG_Int(0);
2865 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2866 once_value_7 = fra.me.REG[8];
2867 register_static_object(&once_value_7);
2868 } else fra.me.REG[8] = once_value_7;
2869 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2870 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2871 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2872 if (!once_value_8) {
2873 fra.me.REG[8] = BOX_NativeString("");
2874 REGB0 = TAG_Int(0);
2875 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2876 once_value_8 = fra.me.REG[8];
2877 register_static_object(&once_value_8);
2878 } else fra.me.REG[8] = once_value_8;
2879 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2880 array___Array___add(fra.me.REG[7], fra.me.REG[2]);
2881 if (!once_value_9) {
2882 fra.me.REG[8] = BOX_NativeString("");
2883 REGB0 = TAG_Int(0);
2884 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2885 once_value_9 = fra.me.REG[8];
2886 register_static_object(&once_value_9);
2887 } else fra.me.REG[8] = once_value_9;
2888 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2889 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
2890 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2891 if (!once_value_10) {
2892 fra.me.REG[8] = BOX_NativeString("");
2893 REGB0 = TAG_Int(0);
2894 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2895 once_value_10 = fra.me.REG[8];
2896 register_static_object(&once_value_10);
2897 } else fra.me.REG[8] = once_value_10;
2898 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2899 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2900 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2901 }
2902 /* ./../lib/standard//string.nit:573 */
2903 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2904 } else {
2905 /* ./../lib/standard//string.nit:568 */
2906 goto label11;
2907 }
2908 }
2909 label11: while(0);
2910 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2911 fra.me.REG[3] = fra.me.REG[4];
2912 /* ./../lib/standard//string.nit:575 */
2913 goto label2;
2914 label2: while(0);
2915 stack_frame_head = fra.me.prev;
2916 return fra.me.REG[3];
2917 }
2918 val_t string___NativeString_____bra(val_t p0, val_t p1){
2919 struct {struct stack_frame_t me;} fra;
2920 val_t REGB0;
2921 val_t tmp;
2922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2923 fra.me.file = LOCATE_string;
2924 fra.me.line = 585;
2925 fra.me.meth = LOCATE_string___NativeString_____bra;
2926 fra.me.has_broke = 0;
2927 fra.me.REG_size = 1;
2928 fra.me.REG[0] = NIT_NULL;
2929 fra.me.REG[0] = p0;
2930 REGB0 = p1;
2931 REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
2932 /* ./../lib/standard//string.nit:585 */
2933 stack_frame_head = fra.me.prev;
2934 return REGB0;
2935 }
2936 void string___NativeString_____braeq(val_t p0, val_t p1, val_t p2){
2937 struct {struct stack_frame_t me;} fra;
2938 val_t REGB0;
2939 val_t REGB1;
2940 val_t tmp;
2941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2942 fra.me.file = LOCATE_string;
2943 fra.me.line = 586;
2944 fra.me.meth = LOCATE_string___NativeString_____braeq;
2945 fra.me.has_broke = 0;
2946 fra.me.REG_size = 1;
2947 fra.me.REG[0] = NIT_NULL;
2948 fra.me.REG[0] = p0;
2949 REGB0 = p1;
2950 REGB1 = p2;
2951 /* ./../lib/standard//string.nit:586 */
2952 UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
2953 stack_frame_head = fra.me.prev;
2954 return;
2955 }
2956 void string___NativeString___copy_to(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
2957 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2958 val_t REGB0;
2959 val_t REGB1;
2960 val_t REGB2;
2961 val_t tmp;
2962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2963 fra.me.file = LOCATE_string;
2964 fra.me.line = 587;
2965 fra.me.meth = LOCATE_string___NativeString___copy_to;
2966 fra.me.has_broke = 0;
2967 fra.me.REG_size = 2;
2968 fra.me.REG[0] = NIT_NULL;
2969 fra.me.REG[1] = NIT_NULL;
2970 fra.me.REG[0] = p0;
2971 fra.me.REG[1] = p1;
2972 REGB0 = p2;
2973 REGB1 = p3;
2974 REGB2 = p4;
2975 /* ./../lib/standard//string.nit:587 */
2976 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
2977 stack_frame_head = fra.me.prev;
2978 return;
2979 }
2980 val_t string___NativeString___cstring_length(val_t p0){
2981 struct {struct stack_frame_t me;} fra;
2982 val_t REGB0;
2983 val_t REGB1;
2984 val_t REGB2;
2985 val_t REGB3;
2986 val_t tmp;
2987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2988 fra.me.file = LOCATE_string;
2989 fra.me.line = 589;
2990 fra.me.meth = LOCATE_string___NativeString___cstring_length;
2991 fra.me.has_broke = 0;
2992 fra.me.REG_size = 1;
2993 fra.me.REG[0] = NIT_NULL;
2994 fra.me.REG[0] = p0;
2995 REGB0 = TAG_Int(0);
2996 /* ./../lib/standard//string.nit:593 */
2997 while(1) {
2998 REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
2999 REGB2 = TAG_Char('\0');
3000 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
3001 /* ./../lib/standard//string.nit:593 */
3002 if (UNTAG_Bool(REGB3)) {
3003 } else {
3004 REGB2 = TAG_Bool((REGB1)==(REGB2));
3005 REGB3 = REGB2;
3006 /* ./../lib/standard//string.nit:593 */
3007 }
3008 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3009 if (UNTAG_Bool(REGB3)) {
3010 REGB3 = TAG_Int(1);
3011 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
3012 REGB0 = REGB3;
3013 /* ./../lib/standard//string.nit:593 */
3014 } else {
3015 goto label1;
3016 }
3017 }
3018 label1: while(0);
3019 /* ./../lib/standard//string.nit:594 */
3020 goto label2;
3021 label2: while(0);
3022 stack_frame_head = fra.me.prev;
3023 return REGB0;
3024 }
3025 val_t string___NativeString___atoi(val_t p0){
3026 struct {struct stack_frame_t me;} fra;
3027 val_t REGB0;
3028 val_t tmp;
3029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3030 fra.me.file = LOCATE_string;
3031 fra.me.line = 596;
3032 fra.me.meth = LOCATE_string___NativeString___atoi;
3033 fra.me.has_broke = 0;
3034 fra.me.REG_size = 1;
3035 fra.me.REG[0] = NIT_NULL;
3036 fra.me.REG[0] = p0;
3037 REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
3038 /* ./../lib/standard//string.nit:596 */
3039 stack_frame_head = fra.me.prev;
3040 return REGB0;
3041 }
3042 void string___NativeString___init(val_t p0, int* init_table){
3043 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_NativeString].i;
3044 struct {struct stack_frame_t me;} fra;
3045 val_t tmp;
3046 if (init_table[itpos5]) return;
3047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3048 fra.me.file = LOCATE_string;
3049 fra.me.line = 0;
3050 fra.me.meth = LOCATE_string___NativeString___init;
3051 fra.me.has_broke = 0;
3052 fra.me.REG_size = 0;
3053 stack_frame_head = fra.me.prev;
3054 init_table[itpos5] = 1;
3055 return;
3056 }
3057 val_t string___StringCapable___calloc_string(val_t p0, val_t p1){
3058 struct {struct stack_frame_t me;} fra;
3059 val_t REGB0;
3060 val_t tmp;
3061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3062 fra.me.file = LOCATE_string;
3063 fra.me.line = 601;
3064 fra.me.meth = LOCATE_string___StringCapable___calloc_string;
3065 fra.me.has_broke = 0;
3066 fra.me.REG_size = 1;
3067 fra.me.REG[0] = NIT_NULL;
3068 REGB0 = p1;
3069 fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
3070 /* ./../lib/standard//string.nit:601 */
3071 stack_frame_head = fra.me.prev;
3072 return fra.me.REG[0];
3073 }
3074 void string___StringCapable___init(val_t p0, int* init_table){
3075 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_StringCapable].i;
3076 struct {struct stack_frame_t me;} fra;
3077 val_t tmp;
3078 if (init_table[itpos6]) return;
3079 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3080 fra.me.file = LOCATE_string;
3081 fra.me.line = 0;
3082 fra.me.meth = LOCATE_string___StringCapable___init;
3083 fra.me.has_broke = 0;
3084 fra.me.REG_size = 0;
3085 stack_frame_head = fra.me.prev;
3086 init_table[itpos6] = 1;
3087 return;
3088 }
3089 val_t string___Sys___args(val_t p0){
3090 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3091 val_t REGB0;
3092 val_t REGB1;
3093 val_t tmp;
3094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3095 fra.me.file = LOCATE_string;
3096 fra.me.line = 607;
3097 fra.me.meth = LOCATE_string___Sys___args;
3098 fra.me.has_broke = 0;
3099 fra.me.REG_size = 2;
3100 fra.me.REG[0] = NIT_NULL;
3101 fra.me.REG[1] = NIT_NULL;
3102 fra.me.REG[0] = p0;
3103 fra.me.REG[1] = ATTR_string___Sys____args_cache(fra.me.REG[0]);
3104 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3105 /* ./../lib/standard//string.nit:609 */
3106 if (UNTAG_Bool(REGB0)) {
3107 } else {
3108 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3109 if (UNTAG_Bool(REGB1)) {
3110 REGB1 = TAG_Bool(false);
3111 REGB0 = REGB1;
3112 } else {
3113 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3114 REGB0 = REGB1;
3115 }
3116 }
3117 if (UNTAG_Bool(REGB0)) {
3118 CALL_string___Sys___init_args(fra.me.REG[0])(fra.me.REG[0]);
3119 }
3120 fra.me.REG[0] = ATTR_string___Sys____args_cache(fra.me.REG[0]);
3121 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
3122 /* ./../lib/standard//string.nit:610 */
3123 if (UNTAG_Bool(REGB0)) {
3124 } else {
3125 fprintf(stderr, "Cast failed");
3126 fprintf(stderr, " (%s:%d)\n", LOCATE_string, 610);
3127 nit_exit(1);
3128 }
3129 goto label1;
3130 label1: while(0);
3131 stack_frame_head = fra.me.prev;
3132 return fra.me.REG[0];
3133 }
3134 val_t string___Sys___program_name(val_t p0){
3135 struct {struct stack_frame_t me;} fra;
3136 val_t REGB0;
3137 val_t tmp;
3138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3139 fra.me.file = LOCATE_string;
3140 fra.me.line = 613;
3141 fra.me.meth = LOCATE_string___Sys___program_name;
3142 fra.me.has_broke = 0;
3143 fra.me.REG_size = 1;
3144 fra.me.REG[0] = NIT_NULL;
3145 fra.me.REG[0] = p0;
3146 REGB0 = TAG_Int(0);
3147 fra.me.REG[0] = CALL_string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB0);
3148 fra.me.REG[0] = NEW_String_string___String___from_cstring(fra.me.REG[0]);
3149 /* ./../lib/standard//string.nit:616 */
3150 goto label1;
3151 label1: while(0);
3152 stack_frame_head = fra.me.prev;
3153 return fra.me.REG[0];
3154 }
3155 void string___Sys___init_args(val_t p0){
3156 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3157 val_t REGB0;
3158 val_t REGB1;
3159 val_t REGB2;
3160 val_t tmp;
3161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3162 fra.me.file = LOCATE_string;
3163 fra.me.line = 619;
3164 fra.me.meth = LOCATE_string___Sys___init_args;
3165 fra.me.has_broke = 0;
3166 fra.me.REG_size = 3;
3167 fra.me.REG[0] = NIT_NULL;
3168 fra.me.REG[1] = NIT_NULL;
3169 fra.me.REG[2] = NIT_NULL;
3170 fra.me.REG[0] = p0;
3171 REGB0 = CALL_string___Sys___native_argc(fra.me.REG[0])(fra.me.REG[0]);
3172 REGB1 = TAG_Int(0);
3173 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB1);
3174 REGB1 = TAG_Int(1);
3175 /* ./../lib/standard//string.nit:625 */
3176 while(1) {
3177 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
3178 /* ./../lib/standard//string.nit:625 */
3179 if (UNTAG_Bool(REGB2)) {
3180 REGB2 = TAG_Int(1);
3181 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
3182 fra.me.REG[2] = CALL_string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB1);
3183 fra.me.REG[2] = NEW_String_string___String___from_cstring(fra.me.REG[2]);
3184 /* ./../lib/standard//string.nit:626 */
3185 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[2]);
3186 REGB2 = TAG_Int(1);
3187 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
3188 REGB1 = REGB2;
3189 /* ./../lib/standard//string.nit:627 */
3190 } else {
3191 /* ./../lib/standard//string.nit:625 */
3192 goto label1;
3193 }
3194 }
3195 label1: while(0);
3196 /* ./../lib/standard//string.nit:629 */
3197 ATTR_string___Sys____args_cache(fra.me.REG[0]) = fra.me.REG[1];
3198 stack_frame_head = fra.me.prev;
3199 return;
3200 }
3201 val_t string___Sys___native_argc(val_t p0){
3202 struct {struct stack_frame_t me;} fra;
3203 val_t REGB0;
3204 val_t tmp;
3205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3206 fra.me.file = LOCATE_string;
3207 fra.me.line = 632;
3208 fra.me.meth = LOCATE_string___Sys___native_argc;
3209 fra.me.has_broke = 0;
3210 fra.me.REG_size = 1;
3211 fra.me.REG[0] = NIT_NULL;
3212 fra.me.REG[0] = p0;
3213 REGB0 = TAG_Int(kernel_Sys_Sys_native_argc_0(fra.me.REG[0]));
3214 /* ./../lib/standard//string.nit:632 */
3215 stack_frame_head = fra.me.prev;
3216 return REGB0;
3217 }
3218 val_t string___Sys___native_argv(val_t p0, val_t p1){
3219 struct {struct stack_frame_t me;} fra;
3220 val_t REGB0;
3221 val_t tmp;
3222 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3223 fra.me.file = LOCATE_string;
3224 fra.me.line = 634;
3225 fra.me.meth = LOCATE_string___Sys___native_argv;
3226 fra.me.has_broke = 0;
3227 fra.me.REG_size = 1;
3228 fra.me.REG[0] = NIT_NULL;
3229 fra.me.REG[0] = p0;
3230 REGB0 = p1;
3231 fra.me.REG[0] = BOX_NativeString(kernel_Sys_Sys_native_argv_1(fra.me.REG[0], UNTAG_Int(REGB0)));
3232 /* ./../lib/standard//string.nit:634 */
3233 stack_frame_head = fra.me.prev;
3234 return fra.me.REG[0];
3235 }