niti, nitg & rta: use lookup_first_definition
[nit.git] / c_src / standard___string._sep.c
1 /* This C file is generated by NIT to compile module standard___string. */
2 #include "standard___string._sep.h"
3 val_t standard___string___AbstractString___items(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_standard___string;
9 fra.me.line = 28;
10 fra.me.meth = LOCATE_standard___string___AbstractString___items;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* ../lib/standard/string.nit:28 */
17 REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
18 if (UNTAG_Bool(REGB0)) {
19 } else {
20 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 28);
21 }
22 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
23 stack_frame_head = fra.me.prev;
24 return fra.me.REG[0];
25 }
26 val_t standard___string___AbstractString_____bra(val_t p0, val_t p1){
27 struct {struct stack_frame_t me;} fra;
28 val_t REGB0;
29 val_t REGB1;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_standard___string;
33 fra.me.line = 30;
34 fra.me.meth = LOCATE_standard___string___AbstractString_____bra;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 1;
37 fra.me.nitni_local_ref_head = NULL;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[0] = p0;
40 REGB0 = p1;
41 /* ../lib/standard/string.nit:30 */
42 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
43 if (UNTAG_Bool(REGB1)) {
44 } else {
45 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 30);
46 }
47 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
48 /* ../lib/standard/string.nit:595 */
49 REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
50 /* ../lib/standard/string.nit:30 */
51 goto label1;
52 label1: while(0);
53 stack_frame_head = fra.me.prev;
54 return REGB0;
55 }
56 val_t standard___string___AbstractString___substring(val_t p0, val_t p1, val_t p2){
57 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
58 val_t REGB0;
59 val_t REGB1;
60 val_t REGB2;
61 val_t REGB3;
62 val_t tmp;
63 static val_t once_value_3; /* Once value */
64 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
65 fra.me.file = LOCATE_standard___string;
66 fra.me.line = 32;
67 fra.me.meth = LOCATE_standard___string___AbstractString___substring;
68 fra.me.has_broke = 0;
69 fra.me.REG_size = 3;
70 fra.me.nitni_local_ref_head = NULL;
71 fra.me.REG[0] = NIT_NULL;
72 fra.me.REG[1] = NIT_NULL;
73 fra.me.REG[2] = NIT_NULL;
74 fra.me.REG[0] = p0;
75 REGB0 = p1;
76 REGB1 = p2;
77 /* ../lib/standard/string.nit:40 */
78 REGB2 = TAG_Int(0);
79 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
80 if (UNTAG_Bool(REGB3)) {
81 } else {
82 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
83 }
84 /* ../lib/standard/kernel.nit:233 */
85 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
86 /* ../lib/standard/string.nit:40 */
87 if (UNTAG_Bool(REGB2)) {
88 } else {
89 nit_abort("Assert failed", NULL, LOCATE_standard___string, 40);
90 }
91 /* ../lib/standard/kernel.nit:235 */
92 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
93 /* ../lib/standard/string.nit:41 */
94 REGB1 = REGB2;
95 /* ../lib/standard/string.nit:42 */
96 REGB2 = TAG_Int(0);
97 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
98 if (UNTAG_Bool(REGB3)) {
99 } else {
100 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
101 }
102 /* ../lib/standard/kernel.nit:232 */
103 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
104 /* ../lib/standard/string.nit:42 */
105 if (UNTAG_Bool(REGB2)) {
106 REGB2 = TAG_Int(0);
107 REGB0 = REGB2;
108 }
109 /* ../lib/standard/collection/array.nit:24 */
110 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
111 if (UNTAG_Bool(REGB2)) {
112 } else {
113 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
114 }
115 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
116 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
117 if (UNTAG_Bool(REGB3)) {
118 } else {
119 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
120 }
121 /* ../lib/standard/kernel.nit:234 */
122 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
123 /* ../lib/standard/string.nit:43 */
124 if (UNTAG_Bool(REGB2)) {
125 /* ../lib/standard/collection/array.nit:24 */
126 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
127 if (UNTAG_Bool(REGB2)) {
128 } else {
129 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
130 }
131 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
132 /* ../lib/standard/string.nit:43 */
133 REGB1 = REGB2;
134 }
135 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
136 if (UNTAG_Bool(REGB2)) {
137 } else {
138 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
139 }
140 /* ../lib/standard/kernel.nit:232 */
141 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
142 /* ../lib/standard/string.nit:44 */
143 if (UNTAG_Bool(REGB2)) {
144 /* ../lib/standard/kernel.nit:237 */
145 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
146 /* ../lib/standard/string.nit:45 */
147 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB2);
148 /* ../lib/standard/string.nit:46 */
149 while(1) {
150 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
151 if (UNTAG_Bool(REGB2)) {
152 } else {
153 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
154 }
155 /* ../lib/standard/kernel.nit:232 */
156 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
157 /* ../lib/standard/string.nit:46 */
158 if (UNTAG_Bool(REGB2)) {
159 /* ../lib/standard/string.nit:47 */
160 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
161 if (UNTAG_Bool(REGB2)) {
162 } else {
163 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 47);
164 }
165 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
166 /* ../lib/standard/string.nit:595 */
167 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
168 /* ../lib/standard/string.nit:47 */
169 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[1])(fra.me.REG[1], REGB2);
170 /* ../lib/standard/string.nit:48 */
171 REGB2 = TAG_Int(1);
172 /* ../lib/standard/kernel.nit:235 */
173 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
174 /* ../lib/standard/string.nit:48 */
175 REGB0 = REGB2;
176 } else {
177 /* ../lib/standard/string.nit:46 */
178 goto label1;
179 }
180 }
181 label1: while(0);
182 /* ../lib/standard/string.nit:50 */
183 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
184 goto label2;
185 } else {
186 /* ../lib/standard/string.nit:52 */
187 if (!once_value_3) {
188 fra.me.REG[0] = BOX_NativeString("");
189 REGB0 = TAG_Int(0);
190 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
191 once_value_3 = fra.me.REG[0];
192 register_static_object(&once_value_3);
193 } else fra.me.REG[0] = once_value_3;
194 fra.me.REG[0] = fra.me.REG[0];
195 fra.me.REG[1] = fra.me.REG[0];
196 goto label2;
197 }
198 label2: while(0);
199 stack_frame_head = fra.me.prev;
200 return fra.me.REG[1];
201 }
202 val_t standard___string___AbstractString___substring_from(val_t p0, val_t p1){
203 struct {struct stack_frame_t me;} fra;
204 val_t REGB0;
205 val_t REGB1;
206 val_t REGB2;
207 val_t tmp;
208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
209 fra.me.file = LOCATE_standard___string;
210 fra.me.line = 56;
211 fra.me.meth = LOCATE_standard___string___AbstractString___substring_from;
212 fra.me.has_broke = 0;
213 fra.me.REG_size = 1;
214 fra.me.nitni_local_ref_head = NULL;
215 fra.me.REG[0] = NIT_NULL;
216 fra.me.REG[0] = p0;
217 REGB0 = p1;
218 /* ../lib/standard/collection/array.nit:24 */
219 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
220 if (UNTAG_Bool(REGB1)) {
221 } else {
222 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
223 }
224 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
225 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
226 if (UNTAG_Bool(REGB2)) {
227 } else {
228 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
229 }
230 /* ../lib/standard/kernel.nit:232 */
231 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
232 /* ../lib/standard/string.nit:63 */
233 if (UNTAG_Bool(REGB1)) {
234 } else {
235 nit_abort("Assert failed", NULL, LOCATE_standard___string, 63);
236 }
237 /* ../lib/standard/collection/array.nit:24 */
238 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
239 if (UNTAG_Bool(REGB1)) {
240 } else {
241 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
242 }
243 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
244 /* ../lib/standard/kernel.nit:237 */
245 REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
246 /* ../lib/standard/string.nit:64 */
247 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1);
248 goto label1;
249 label1: while(0);
250 stack_frame_head = fra.me.prev;
251 return fra.me.REG[0];
252 }
253 val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val_t p2){
254 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
255 val_t REGB0;
256 val_t REGB1;
257 val_t REGB2;
258 val_t REGB3;
259 val_t REGB4;
260 val_t REGB5;
261 val_t tmp;
262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
263 fra.me.file = LOCATE_standard___string;
264 fra.me.line = 67;
265 fra.me.meth = LOCATE_standard___string___AbstractString___has_substring;
266 fra.me.has_broke = 0;
267 fra.me.REG_size = 3;
268 fra.me.nitni_local_ref_head = NULL;
269 fra.me.REG[0] = NIT_NULL;
270 fra.me.REG[1] = NIT_NULL;
271 fra.me.REG[2] = NIT_NULL;
272 fra.me.REG[0] = p0;
273 fra.me.REG[1] = p1;
274 REGB0 = p2;
275 /* ../lib/standard/collection/array.nit:24 */
276 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
277 if (UNTAG_Bool(REGB1)) {
278 } else {
279 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
280 }
281 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
282 /* ../lib/standard/string.nit:73 */
283 REGB2 = TAG_Int(1);
284 /* ../lib/standard/kernel.nit:237 */
285 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
286 /* ../lib/standard/kernel.nit:235 */
287 REGB0 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
288 /* ../lib/standard/string.nit:75 */
289 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
290 if (UNTAG_Bool(REGB1)) {
291 } else {
292 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 75);
293 }
294 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
295 /* ../lib/standard/string.nit:76 */
296 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
297 if (UNTAG_Bool(REGB1)) {
298 } else {
299 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 76);
300 }
301 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
302 /* ../lib/standard/collection/array.nit:24 */
303 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
304 if (UNTAG_Bool(REGB1)) {
305 } else {
306 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
307 }
308 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
309 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
310 if (UNTAG_Bool(REGB3)) {
311 } else {
312 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
313 }
314 /* ../lib/standard/kernel.nit:234 */
315 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
316 /* ../lib/standard/string.nit:77 */
317 if (UNTAG_Bool(REGB1)) {
318 REGB1 = TAG_Bool(true);
319 } else {
320 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
321 if (UNTAG_Bool(REGB3)) {
322 } else {
323 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
324 }
325 /* ../lib/standard/kernel.nit:234 */
326 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
327 /* ../lib/standard/string.nit:77 */
328 REGB1 = REGB3;
329 }
330 if (UNTAG_Bool(REGB1)) {
331 REGB1 = TAG_Bool(false);
332 goto label1;
333 }
334 /* ../lib/standard/string.nit:78 */
335 while(1) {
336 REGB3 = TAG_Int(0);
337 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
338 if (UNTAG_Bool(REGB4)) {
339 } else {
340 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
341 }
342 /* ../lib/standard/kernel.nit:233 */
343 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
344 /* ../lib/standard/string.nit:78 */
345 if (UNTAG_Bool(REGB3)) {
346 /* ../lib/standard/string.nit:595 */
347 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
348 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]);
349 /* ../lib/standard/string.nit:79 */
350 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
351 if (UNTAG_Bool(REGB5)) {
352 } else {
353 /* ../lib/standard/kernel.nit:378 */
354 REGB4 = TAG_Bool((REGB3)==(REGB4));
355 /* ../lib/standard/string.nit:79 */
356 REGB5 = REGB4;
357 }
358 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
359 if (UNTAG_Bool(REGB5)) {
360 REGB5 = TAG_Bool(false);
361 REGB1 = REGB5;
362 goto label1;
363 }
364 /* ../lib/standard/string.nit:80 */
365 REGB5 = TAG_Int(1);
366 /* ../lib/standard/kernel.nit:237 */
367 REGB5 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB5));
368 /* ../lib/standard/string.nit:80 */
369 REGB0 = REGB5;
370 /* ../lib/standard/string.nit:81 */
371 REGB5 = TAG_Int(1);
372 /* ../lib/standard/kernel.nit:237 */
373 REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
374 /* ../lib/standard/string.nit:81 */
375 REGB2 = REGB5;
376 } else {
377 /* ../lib/standard/string.nit:78 */
378 goto label2;
379 }
380 }
381 label2: while(0);
382 /* ../lib/standard/string.nit:83 */
383 REGB2 = TAG_Bool(true);
384 REGB1 = REGB2;
385 goto label1;
386 label1: while(0);
387 stack_frame_head = fra.me.prev;
388 return REGB1;
389 }
390 val_t standard___string___AbstractString___has_prefix(val_t p0, val_t p1){
391 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
392 val_t REGB0;
393 val_t tmp;
394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
395 fra.me.file = LOCATE_standard___string;
396 fra.me.line = 86;
397 fra.me.meth = LOCATE_standard___string___AbstractString___has_prefix;
398 fra.me.has_broke = 0;
399 fra.me.REG_size = 2;
400 fra.me.nitni_local_ref_head = NULL;
401 fra.me.REG[0] = NIT_NULL;
402 fra.me.REG[1] = NIT_NULL;
403 fra.me.REG[0] = p0;
404 fra.me.REG[1] = p1;
405 /* ../lib/standard/string.nit:90 */
406 REGB0 = TAG_Int(0);
407 REGB0 = CALL_standard___string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
408 goto label1;
409 label1: while(0);
410 stack_frame_head = fra.me.prev;
411 return REGB0;
412 }
413 val_t standard___string___AbstractString___has_suffix(val_t p0, val_t p1){
414 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
415 val_t REGB0;
416 val_t REGB1;
417 val_t tmp;
418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
419 fra.me.file = LOCATE_standard___string;
420 fra.me.line = 92;
421 fra.me.meth = LOCATE_standard___string___AbstractString___has_suffix;
422 fra.me.has_broke = 0;
423 fra.me.REG_size = 2;
424 fra.me.nitni_local_ref_head = NULL;
425 fra.me.REG[0] = NIT_NULL;
426 fra.me.REG[1] = NIT_NULL;
427 fra.me.REG[0] = p0;
428 fra.me.REG[1] = p1;
429 /* ../lib/standard/collection/array.nit:24 */
430 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
434 }
435 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
436 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
437 if (UNTAG_Bool(REGB1)) {
438 } else {
439 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
440 }
441 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
442 /* ../lib/standard/kernel.nit:237 */
443 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
444 /* ../lib/standard/string.nit:96 */
445 REGB1 = CALL_standard___string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
446 goto label1;
447 label1: while(0);
448 stack_frame_head = fra.me.prev;
449 return REGB1;
450 }
451 val_t standard___string___AbstractString___to_i(val_t p0){
452 struct {struct stack_frame_t me;} fra;
453 val_t REGB0;
454 val_t tmp;
455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
456 fra.me.file = LOCATE_standard___string;
457 fra.me.line = 98;
458 fra.me.meth = LOCATE_standard___string___AbstractString___to_i;
459 fra.me.has_broke = 0;
460 fra.me.REG_size = 1;
461 fra.me.nitni_local_ref_head = NULL;
462 fra.me.REG[0] = NIT_NULL;
463 fra.me.REG[0] = p0;
464 /* ../lib/standard/string.nit:102 */
465 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
466 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
467 /* ../lib/standard/string.nit:606 */
468 REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
469 /* ../lib/standard/string.nit:102 */
470 goto label1;
471 label1: while(0);
472 stack_frame_head = fra.me.prev;
473 return REGB0;
474 }
475 val_t standard___string___AbstractString___to_hex(val_t p0){
476 struct {struct stack_frame_t me;} fra;
477 val_t REGB0;
478 val_t tmp;
479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
480 fra.me.file = LOCATE_standard___string;
481 fra.me.line = 105;
482 fra.me.meth = LOCATE_standard___string___AbstractString___to_hex;
483 fra.me.has_broke = 0;
484 fra.me.REG_size = 1;
485 fra.me.nitni_local_ref_head = NULL;
486 fra.me.REG[0] = NIT_NULL;
487 fra.me.REG[0] = p0;
488 /* ../lib/standard/string.nit:106 */
489 REGB0 = TAG_Int(16);
490 REGB0 = CALL_standard___string___AbstractString___a_to(fra.me.REG[0])(fra.me.REG[0], REGB0);
491 goto label1;
492 label1: while(0);
493 stack_frame_head = fra.me.prev;
494 return REGB0;
495 }
496 val_t standard___string___AbstractString___a_to(val_t p0, val_t p1){
497 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
498 val_t REGB0;
499 val_t tmp;
500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
501 fra.me.file = LOCATE_standard___string;
502 fra.me.line = 108;
503 fra.me.meth = LOCATE_standard___string___AbstractString___a_to;
504 fra.me.has_broke = 0;
505 fra.me.REG_size = 4;
506 fra.me.nitni_local_ref_head = NULL;
507 fra.me.REG[0] = NIT_NULL;
508 fra.me.REG[1] = NIT_NULL;
509 fra.me.REG[2] = NIT_NULL;
510 fra.me.REG[3] = NIT_NULL;
511 fra.me.REG[0] = p0;
512 REGB0 = p1;
513 /* ../lib/standard/string.nit:108 */
514 fra.me.REG[1] = REGB0;
515 /* ../lib/standard/string.nit:111 */
516 REGB0 = TAG_Int(0);
517 fra.me.REG[2] = REGB0;
518 /* ../lib/standard/string.nit:112 */
519 REGB0 = TAG_Bool(false);
520 fra.me.REG[3] = REGB0;
521 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___a_to_1));
522 switch ((&(fra.me))->has_broke) {
523 case 0: break;
524 case 1: (&(fra.me))->has_broke = 0; goto label3;
525 }
526 /* ../lib/standard/string.nit:129 */
527 if (UNTAG_Bool(fra.me.REG[3])) {
528 /* ../lib/standard/kernel.nit:236 */
529 REGB0 = TAG_Int(-UNTAG_Int(fra.me.REG[2]));
530 /* ../lib/standard/string.nit:130 */
531 fra.me.REG[0] = REGB0;
532 goto label3;
533 } else {
534 /* ../lib/standard/string.nit:132 */
535 fra.me.REG[0] = fra.me.REG[2];
536 goto label3;
537 }
538 label3: while(0);
539 stack_frame_head = fra.me.prev;
540 return fra.me.REG[0];
541 }
542 void OC_standard___string___AbstractString___a_to_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
543 struct {struct stack_frame_t me;} fra;
544 val_t REGB0;
545 val_t REGB1;
546 val_t REGB2;
547 fun_t CREG[1];
548 val_t tmp;
549 /* ../lib/standard/string.nit:114 */
550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
551 fra.me.file = LOCATE_standard___string;
552 fra.me.line = 0;
553 fra.me.meth = LOCATE_standard___string___AbstractString___a_to;
554 fra.me.has_broke = 0;
555 fra.me.REG_size = 1;
556 fra.me.nitni_local_ref_head = NULL;
557 fra.me.REG[0] = NIT_NULL;
558 fra.me.closure_ctx = closctx_param;
559 fra.me.closure_funs = CREG;
560 fra.me.REG[0] = p0;
561 CREG[0] = clos_fun0;
562 REGB0 = fra.me.REG[0];
563 /* ../lib/standard/string.nit:116 */
564 REGB0 = CALL_standard___kernel___Char___to_i(REGB0)(REGB0);
565 REGB1 = TAG_Bool(VAL_ISA(closctx->REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
566 if (UNTAG_Bool(REGB1)) {
567 } else {
568 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
569 }
570 /* ../lib/standard/kernel.nit:234 */
571 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(closctx->REG[1]));
572 /* ../lib/standard/string.nit:117 */
573 if (UNTAG_Bool(REGB1)) {
574 /* ../lib/standard/string.nit:118 */
575 if (UNTAG_Bool(closctx->REG[3])) {
576 /* ../lib/standard/kernel.nit:236 */
577 REGB1 = TAG_Int(-UNTAG_Int(closctx->REG[2]));
578 /* ../lib/standard/string.nit:119 */
579 closctx->REG[0] = REGB1;
580 closctx->has_broke = 1;
581 goto label2;
582 } else {
583 /* ../lib/standard/string.nit:121 */
584 closctx->REG[0] = closctx->REG[2];
585 closctx->has_broke = 1;
586 goto label2;
587 }
588 } else {
589 /* ../lib/standard/string.nit:123 */
590 REGB1 = TAG_Int(0);
591 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
592 if (UNTAG_Bool(REGB2)) {
593 } else {
594 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
595 }
596 /* ../lib/standard/kernel.nit:232 */
597 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
598 /* ../lib/standard/string.nit:123 */
599 if (UNTAG_Bool(REGB1)) {
600 /* ../lib/standard/string.nit:124 */
601 REGB1 = TAG_Bool(true);
602 closctx->REG[3] = REGB1;
603 } else {
604 /* ../lib/standard/kernel.nit:238 */
605 REGB1 = TAG_Int(UNTAG_Int(closctx->REG[2])*UNTAG_Int(closctx->REG[1]));
606 /* ../lib/standard/kernel.nit:235 */
607 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
608 /* ../lib/standard/string.nit:126 */
609 closctx->REG[2] = REGB0;
610 }
611 }
612 label2: while(0);
613 stack_frame_head = fra.me.prev;
614 return;
615 }
616 val_t standard___string___AbstractString___to_upper(val_t p0){
617 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
618 val_t REGB0;
619 val_t tmp;
620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
621 fra.me.file = LOCATE_standard___string;
622 fra.me.line = 136;
623 fra.me.meth = LOCATE_standard___string___AbstractString___to_upper;
624 fra.me.has_broke = 0;
625 fra.me.REG_size = 2;
626 fra.me.nitni_local_ref_head = NULL;
627 fra.me.REG[0] = NIT_NULL;
628 fra.me.REG[1] = NIT_NULL;
629 fra.me.REG[0] = p0;
630 /* ../lib/standard/collection/array.nit:24 */
631 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
632 if (UNTAG_Bool(REGB0)) {
633 } else {
634 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
635 }
636 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
637 /* ../lib/standard/string.nit:139 */
638 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
639 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___to_upper_1));
640 /* ../lib/standard/string.nit:141 */
641 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
642 goto label2;
643 label2: while(0);
644 stack_frame_head = fra.me.prev;
645 return fra.me.REG[1];
646 }
647 void OC_standard___string___AbstractString___to_upper_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
648 struct {struct stack_frame_t me;} fra;
649 val_t REGB0;
650 fun_t CREG[1];
651 val_t tmp;
652 /* ../lib/standard/string.nit:140 */
653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
654 fra.me.file = LOCATE_standard___string;
655 fra.me.line = 0;
656 fra.me.meth = LOCATE_standard___string___AbstractString___to_upper;
657 fra.me.has_broke = 0;
658 fra.me.REG_size = 1;
659 fra.me.nitni_local_ref_head = NULL;
660 fra.me.REG[0] = NIT_NULL;
661 fra.me.closure_ctx = closctx_param;
662 fra.me.closure_funs = CREG;
663 fra.me.REG[0] = p0;
664 CREG[0] = clos_fun0;
665 REGB0 = fra.me.REG[0];
666 REGB0 = CALL_standard___kernel___Char___to_upper(REGB0)(REGB0);
667 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], REGB0);
668 stack_frame_head = fra.me.prev;
669 return;
670 }
671 val_t standard___string___AbstractString___to_lower(val_t p0){
672 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
673 val_t REGB0;
674 val_t tmp;
675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
676 fra.me.file = LOCATE_standard___string;
677 fra.me.line = 144;
678 fra.me.meth = LOCATE_standard___string___AbstractString___to_lower;
679 fra.me.has_broke = 0;
680 fra.me.REG_size = 2;
681 fra.me.nitni_local_ref_head = NULL;
682 fra.me.REG[0] = NIT_NULL;
683 fra.me.REG[1] = NIT_NULL;
684 fra.me.REG[0] = p0;
685 /* ../lib/standard/collection/array.nit:24 */
686 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
687 if (UNTAG_Bool(REGB0)) {
688 } else {
689 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
690 }
691 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
692 /* ../lib/standard/string.nit:147 */
693 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
694 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___to_lower_1));
695 /* ../lib/standard/string.nit:149 */
696 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
697 goto label2;
698 label2: while(0);
699 stack_frame_head = fra.me.prev;
700 return fra.me.REG[1];
701 }
702 void OC_standard___string___AbstractString___to_lower_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
703 struct {struct stack_frame_t me;} fra;
704 val_t REGB0;
705 fun_t CREG[1];
706 val_t tmp;
707 /* ../lib/standard/string.nit:148 */
708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
709 fra.me.file = LOCATE_standard___string;
710 fra.me.line = 0;
711 fra.me.meth = LOCATE_standard___string___AbstractString___to_lower;
712 fra.me.has_broke = 0;
713 fra.me.REG_size = 1;
714 fra.me.nitni_local_ref_head = NULL;
715 fra.me.REG[0] = NIT_NULL;
716 fra.me.closure_ctx = closctx_param;
717 fra.me.closure_funs = CREG;
718 fra.me.REG[0] = p0;
719 CREG[0] = clos_fun0;
720 REGB0 = fra.me.REG[0];
721 REGB0 = CALL_standard___kernel___Char___to_lower(REGB0)(REGB0);
722 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], REGB0);
723 stack_frame_head = fra.me.prev;
724 return;
725 }
726 void standard___string___AbstractString___output(val_t p0){
727 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
728 val_t REGB0;
729 val_t REGB1;
730 val_t REGB2;
731 val_t tmp;
732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
733 fra.me.file = LOCATE_standard___string;
734 fra.me.line = 153;
735 fra.me.meth = LOCATE_standard___string___AbstractString___output;
736 fra.me.has_broke = 0;
737 fra.me.REG_size = 2;
738 fra.me.nitni_local_ref_head = NULL;
739 fra.me.REG[0] = NIT_NULL;
740 fra.me.REG[1] = NIT_NULL;
741 fra.me.REG[0] = p0;
742 /* ../lib/standard/string.nit:155 */
743 REGB0 = TAG_Int(0);
744 /* ../lib/standard/string.nit:156 */
745 while(1) {
746 /* ../lib/standard/collection/array.nit:24 */
747 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
748 if (UNTAG_Bool(REGB1)) {
749 } else {
750 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
751 }
752 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
753 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
754 if (UNTAG_Bool(REGB2)) {
755 } else {
756 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
757 }
758 /* ../lib/standard/kernel.nit:232 */
759 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
760 /* ../lib/standard/string.nit:156 */
761 if (UNTAG_Bool(REGB1)) {
762 /* ../lib/standard/string.nit:157 */
763 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
764 if (UNTAG_Bool(REGB1)) {
765 } else {
766 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 157);
767 }
768 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
769 /* ../lib/standard/string.nit:595 */
770 REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
771 /* ../lib/standard/kernel.nit:380 */
772 printf("%c", (unsigned char)UNTAG_Char(REGB1));;
773 /* ../lib/standard/string.nit:158 */
774 REGB1 = TAG_Int(1);
775 /* ../lib/standard/kernel.nit:235 */
776 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
777 /* ../lib/standard/string.nit:158 */
778 REGB0 = REGB1;
779 } else {
780 /* ../lib/standard/string.nit:156 */
781 goto label1;
782 }
783 }
784 label1: while(0);
785 stack_frame_head = fra.me.prev;
786 return;
787 }
788 void standard___string___String___with_native(val_t p0, val_t p1, val_t p2, int* init_table){
789 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___String].i;
790 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
791 val_t REGB0;
792 val_t REGB1;
793 val_t REGB2;
794 val_t tmp;
795 if (init_table[itpos0]) return;
796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
797 fra.me.file = LOCATE_standard___string;
798 fra.me.line = 170;
799 fra.me.meth = LOCATE_standard___string___String___with_native;
800 fra.me.has_broke = 0;
801 fra.me.REG_size = 2;
802 fra.me.nitni_local_ref_head = NULL;
803 fra.me.REG[0] = NIT_NULL;
804 fra.me.REG[1] = NIT_NULL;
805 fra.me.REG[0] = p0;
806 fra.me.REG[1] = p1;
807 REGB0 = p2;
808 /* ../lib/standard/string.nit:173 */
809 REGB1 = TAG_Int(0);
810 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
811 if (UNTAG_Bool(REGB2)) {
812 } else {
813 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
814 }
815 /* ../lib/standard/kernel.nit:233 */
816 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
817 /* ../lib/standard/string.nit:173 */
818 if (UNTAG_Bool(REGB1)) {
819 } else {
820 nit_abort("Assert failed", NULL, LOCATE_standard___string, 173);
821 }
822 /* ../lib/standard/string.nit:174 */
823 ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
824 /* ../lib/standard/string.nit:175 */
825 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
826 stack_frame_head = fra.me.prev;
827 init_table[itpos0] = 1;
828 return;
829 }
830 void standard___string___String___from_cstring(val_t p0, val_t p1, int* init_table){
831 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___String].i;
832 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
833 val_t REGB0;
834 val_t tmp;
835 if (init_table[itpos1]) return;
836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
837 fra.me.file = LOCATE_standard___string;
838 fra.me.line = 178;
839 fra.me.meth = LOCATE_standard___string___String___from_cstring;
840 fra.me.has_broke = 0;
841 fra.me.REG_size = 2;
842 fra.me.nitni_local_ref_head = NULL;
843 fra.me.REG[0] = NIT_NULL;
844 fra.me.REG[1] = NIT_NULL;
845 fra.me.REG[0] = p0;
846 fra.me.REG[1] = p1;
847 /* ../lib/standard/string.nit:181 */
848 REGB0 = CALL_standard___string___NativeString___cstring_length(fra.me.REG[1])(fra.me.REG[1]);
849 /* ../lib/standard/string.nit:182 */
850 ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
851 /* ../lib/standard/string.nit:183 */
852 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
853 stack_frame_head = fra.me.prev;
854 init_table[itpos1] = 1;
855 return;
856 }
857 val_t standard___string___String___to_cstring(val_t p0){
858 struct {struct stack_frame_t me;} fra;
859 val_t REGB0;
860 val_t tmp;
861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
862 fra.me.file = LOCATE_standard___string;
863 fra.me.line = 186;
864 fra.me.meth = LOCATE_standard___string___String___to_cstring;
865 fra.me.has_broke = 0;
866 fra.me.REG_size = 1;
867 fra.me.nitni_local_ref_head = NULL;
868 fra.me.REG[0] = NIT_NULL;
869 fra.me.REG[0] = p0;
870 /* ../lib/standard/string.nit:189 */
871 REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
872 if (UNTAG_Bool(REGB0)) {
873 } else {
874 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 189);
875 }
876 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
877 goto label1;
878 label1: while(0);
879 stack_frame_head = fra.me.prev;
880 return fra.me.REG[0];
881 }
882 val_t standard___string___String_____eqeq(val_t p0, val_t p1){
883 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
884 val_t REGB0;
885 val_t REGB1;
886 val_t REGB2;
887 val_t REGB3;
888 val_t REGB4;
889 val_t REGB5;
890 val_t tmp;
891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
892 fra.me.file = LOCATE_standard___string;
893 fra.me.line = 192;
894 fra.me.meth = LOCATE_standard___string___String_____eqeq;
895 fra.me.has_broke = 0;
896 fra.me.REG_size = 2;
897 fra.me.nitni_local_ref_head = NULL;
898 fra.me.REG[0] = NIT_NULL;
899 fra.me.REG[1] = NIT_NULL;
900 fra.me.REG[0] = p0;
901 fra.me.REG[1] = p1;
902 /* ../lib/standard/string.nit:194 */
903 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
905 if (UNTAG_Bool(REGB0)) {
906 REGB0 = TAG_Bool(true);
907 } else {
908 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
909 REGB0 = REGB1;
910 }
911 if (UNTAG_Bool(REGB0)) {
912 REGB0 = TAG_Bool(false);
913 goto label1;
914 }
915 /* ../lib/standard/collection/array.nit:24 */
916 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
917 if (UNTAG_Bool(REGB1)) {
918 } else {
919 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
920 }
921 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
922 /* ../lib/standard/string.nit:196 */
923 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
924 if (UNTAG_Bool(REGB2)) {
925 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 196);
926 }
927 /* ../lib/standard/collection/array.nit:24 */
928 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
929 if (UNTAG_Bool(REGB2)) {
930 } else {
931 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
932 }
933 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
934 /* ../lib/standard/string.nit:196 */
935 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
936 if (UNTAG_Bool(REGB3)) {
937 } else {
938 /* ../lib/standard/kernel.nit:227 */
939 REGB2 = TAG_Bool((REGB2)==(REGB1));
940 /* ../lib/standard/string.nit:196 */
941 REGB3 = REGB2;
942 }
943 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
944 if (UNTAG_Bool(REGB3)) {
945 REGB3 = TAG_Bool(false);
946 REGB0 = REGB3;
947 goto label1;
948 }
949 /* ../lib/standard/string.nit:197 */
950 REGB3 = TAG_Int(0);
951 /* ../lib/standard/string.nit:198 */
952 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
953 if (UNTAG_Bool(REGB2)) {
954 } else {
955 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 198);
956 }
957 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
958 /* ../lib/standard/string.nit:199 */
959 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
960 if (UNTAG_Bool(REGB2)) {
961 } else {
962 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 199);
963 }
964 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
965 /* ../lib/standard/string.nit:200 */
966 while(1) {
967 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
968 if (UNTAG_Bool(REGB2)) {
969 } else {
970 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
971 }
972 /* ../lib/standard/kernel.nit:232 */
973 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
974 /* ../lib/standard/string.nit:200 */
975 if (UNTAG_Bool(REGB2)) {
976 /* ../lib/standard/string.nit:595 */
977 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
978 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
979 /* ../lib/standard/string.nit:201 */
980 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
981 if (UNTAG_Bool(REGB5)) {
982 } else {
983 /* ../lib/standard/kernel.nit:378 */
984 REGB4 = TAG_Bool((REGB2)==(REGB4));
985 /* ../lib/standard/string.nit:201 */
986 REGB5 = REGB4;
987 }
988 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
989 if (UNTAG_Bool(REGB5)) {
990 REGB5 = TAG_Bool(false);
991 REGB0 = REGB5;
992 goto label1;
993 }
994 /* ../lib/standard/string.nit:202 */
995 REGB5 = TAG_Int(1);
996 /* ../lib/standard/kernel.nit:235 */
997 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
998 /* ../lib/standard/string.nit:202 */
999 REGB3 = REGB5;
1000 } else {
1001 /* ../lib/standard/string.nit:200 */
1002 goto label2;
1003 }
1004 }
1005 label2: while(0);
1006 /* ../lib/standard/string.nit:204 */
1007 REGB3 = TAG_Bool(true);
1008 REGB0 = REGB3;
1009 goto label1;
1010 label1: while(0);
1011 stack_frame_head = fra.me.prev;
1012 return REGB0;
1013 }
1014 val_t standard___string___String_____l(val_t p0, val_t p1){
1015 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1016 val_t REGB0;
1017 val_t REGB1;
1018 val_t REGB2;
1019 val_t REGB3;
1020 val_t REGB4;
1021 val_t REGB5;
1022 val_t REGB6;
1023 val_t tmp;
1024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1025 fra.me.file = LOCATE_standard___string;
1026 fra.me.line = 207;
1027 fra.me.meth = LOCATE_standard___string___String_____l;
1028 fra.me.has_broke = 0;
1029 fra.me.REG_size = 2;
1030 fra.me.nitni_local_ref_head = NULL;
1031 fra.me.REG[0] = NIT_NULL;
1032 fra.me.REG[1] = NIT_NULL;
1033 fra.me.REG[0] = p0;
1034 fra.me.REG[1] = p1;
1035 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[0]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[0]))) /*cast OTHER*/;
1036 if (UNTAG_Bool(REGB0)) {
1037 } else {
1038 nit_abort("Cast failed", NULL, LOCATE_standard___string, 0);
1039 }
1040 /* ../lib/standard/string.nit:209 */
1041 REGB0 = TAG_Int(0);
1042 /* ../lib/standard/collection/array.nit:24 */
1043 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1044 if (UNTAG_Bool(REGB1)) {
1045 } else {
1046 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1047 }
1048 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1049 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1050 if (UNTAG_Bool(REGB2)) {
1051 } else {
1052 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1053 }
1054 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1055 /* ../lib/standard/string.nit:212 */
1056 REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1057 if (UNTAG_Bool(REGB3)) {
1058 } else {
1059 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 212);
1060 }
1061 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1062 /* ../lib/standard/string.nit:213 */
1063 REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
1064 if (UNTAG_Bool(REGB3)) {
1065 } else {
1066 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 213);
1067 }
1068 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
1069 /* ../lib/standard/string.nit:214 */
1070 while(1) {
1071 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1072 if (UNTAG_Bool(REGB3)) {
1073 } else {
1074 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1075 }
1076 /* ../lib/standard/kernel.nit:232 */
1077 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1078 /* ../lib/standard/string.nit:214 */
1079 if (UNTAG_Bool(REGB3)) {
1080 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1081 if (UNTAG_Bool(REGB3)) {
1082 } else {
1083 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1084 }
1085 /* ../lib/standard/kernel.nit:232 */
1086 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1087 } else {
1088 /* ../lib/standard/string.nit:214 */
1089 REGB4 = TAG_Bool(false);
1090 REGB3 = REGB4;
1091 }
1092 if (UNTAG_Bool(REGB3)) {
1093 /* ../lib/standard/string.nit:595 */
1094 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
1095 /* ../lib/standard/kernel.nit:413 */
1096 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
1097 /* ../lib/standard/string.nit:595 */
1098 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
1099 /* ../lib/standard/kernel.nit:413 */
1100 REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
1101 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1102 if (UNTAG_Bool(REGB5)) {
1103 } else {
1104 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1105 }
1106 /* ../lib/standard/kernel.nit:232 */
1107 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1108 /* ../lib/standard/string.nit:217 */
1109 if (UNTAG_Bool(REGB5)) {
1110 /* ../lib/standard/string.nit:218 */
1111 REGB5 = TAG_Bool(true);
1112 goto label1;
1113 } else {
1114 REGB6 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1115 if (UNTAG_Bool(REGB6)) {
1116 } else {
1117 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1118 }
1119 /* ../lib/standard/kernel.nit:232 */
1120 REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
1121 /* ../lib/standard/string.nit:219 */
1122 if (UNTAG_Bool(REGB3)) {
1123 /* ../lib/standard/string.nit:220 */
1124 REGB3 = TAG_Bool(false);
1125 REGB5 = REGB3;
1126 goto label1;
1127 }
1128 }
1129 /* ../lib/standard/string.nit:222 */
1130 REGB3 = TAG_Int(1);
1131 /* ../lib/standard/kernel.nit:235 */
1132 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
1133 /* ../lib/standard/string.nit:222 */
1134 REGB0 = REGB3;
1135 } else {
1136 /* ../lib/standard/string.nit:214 */
1137 goto label2;
1138 }
1139 }
1140 label2: while(0);
1141 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1142 if (UNTAG_Bool(REGB0)) {
1143 } else {
1144 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1145 }
1146 /* ../lib/standard/kernel.nit:232 */
1147 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1148 /* ../lib/standard/string.nit:224 */
1149 if (UNTAG_Bool(REGB2)) {
1150 /* ../lib/standard/string.nit:225 */
1151 REGB2 = TAG_Bool(true);
1152 REGB5 = REGB2;
1153 goto label1;
1154 } else {
1155 /* ../lib/standard/string.nit:227 */
1156 REGB2 = TAG_Bool(false);
1157 REGB5 = REGB2;
1158 goto label1;
1159 }
1160 label1: while(0);
1161 stack_frame_head = fra.me.prev;
1162 return REGB5;
1163 }
1164 val_t standard___string___String_____plus(val_t p0, val_t p1){
1165 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1166 val_t REGB0;
1167 val_t REGB1;
1168 val_t tmp;
1169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1170 fra.me.file = LOCATE_standard___string;
1171 fra.me.line = 231;
1172 fra.me.meth = LOCATE_standard___string___String_____plus;
1173 fra.me.has_broke = 0;
1174 fra.me.REG_size = 3;
1175 fra.me.nitni_local_ref_head = NULL;
1176 fra.me.REG[0] = NIT_NULL;
1177 fra.me.REG[1] = NIT_NULL;
1178 fra.me.REG[2] = NIT_NULL;
1179 fra.me.REG[0] = p0;
1180 fra.me.REG[1] = p1;
1181 /* ../lib/standard/collection/array.nit:24 */
1182 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1183 if (UNTAG_Bool(REGB0)) {
1184 } else {
1185 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1186 }
1187 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1188 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1189 if (UNTAG_Bool(REGB1)) {
1190 } else {
1191 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1192 }
1193 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1194 /* ../lib/standard/kernel.nit:235 */
1195 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1196 /* ../lib/standard/string.nit:234 */
1197 fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
1198 /* ../lib/standard/string.nit:235 */
1199 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1200 /* ../lib/standard/string.nit:236 */
1201 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1202 /* ../lib/standard/string.nit:237 */
1203 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1204 goto label1;
1205 label1: while(0);
1206 stack_frame_head = fra.me.prev;
1207 return fra.me.REG[2];
1208 }
1209 val_t standard___string___String_____star(val_t p0, val_t p1){
1210 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1211 val_t REGB0;
1212 val_t REGB1;
1213 val_t REGB2;
1214 val_t tmp;
1215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1216 fra.me.file = LOCATE_standard___string;
1217 fra.me.line = 240;
1218 fra.me.meth = LOCATE_standard___string___String_____star;
1219 fra.me.has_broke = 0;
1220 fra.me.REG_size = 2;
1221 fra.me.nitni_local_ref_head = NULL;
1222 fra.me.REG[0] = NIT_NULL;
1223 fra.me.REG[1] = NIT_NULL;
1224 fra.me.REG[0] = p0;
1225 REGB0 = p1;
1226 /* ../lib/standard/string.nit:243 */
1227 REGB1 = TAG_Int(0);
1228 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1229 if (UNTAG_Bool(REGB2)) {
1230 } else {
1231 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1232 }
1233 /* ../lib/standard/kernel.nit:233 */
1234 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1235 /* ../lib/standard/string.nit:243 */
1236 if (UNTAG_Bool(REGB1)) {
1237 } else {
1238 nit_abort("Assert failed", NULL, LOCATE_standard___string, 243);
1239 }
1240 /* ../lib/standard/collection/array.nit:24 */
1241 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1242 if (UNTAG_Bool(REGB1)) {
1243 } else {
1244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1245 }
1246 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1247 /* ../lib/standard/kernel.nit:238 */
1248 REGB1 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB0));
1249 /* ../lib/standard/string.nit:244 */
1250 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
1251 /* ../lib/standard/string.nit:245 */
1252 while(1) {
1253 REGB1 = TAG_Int(0);
1254 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1255 if (UNTAG_Bool(REGB2)) {
1256 } else {
1257 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1258 }
1259 /* ../lib/standard/kernel.nit:234 */
1260 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1261 /* ../lib/standard/string.nit:245 */
1262 if (UNTAG_Bool(REGB1)) {
1263 /* ../lib/standard/string.nit:246 */
1264 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1265 /* ../lib/standard/string.nit:247 */
1266 REGB1 = TAG_Int(1);
1267 /* ../lib/standard/kernel.nit:237 */
1268 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1269 /* ../lib/standard/string.nit:247 */
1270 REGB0 = REGB1;
1271 } else {
1272 /* ../lib/standard/string.nit:245 */
1273 goto label1;
1274 }
1275 }
1276 label1: while(0);
1277 /* ../lib/standard/string.nit:249 */
1278 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1279 goto label2;
1280 label2: while(0);
1281 stack_frame_head = fra.me.prev;
1282 return fra.me.REG[1];
1283 }
1284 val_t standard___string___String___to_s(val_t p0){
1285 struct {struct stack_frame_t me;} fra;
1286 val_t tmp;
1287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1288 fra.me.file = LOCATE_standard___string;
1289 fra.me.line = 252;
1290 fra.me.meth = LOCATE_standard___string___String___to_s;
1291 fra.me.has_broke = 0;
1292 fra.me.REG_size = 1;
1293 fra.me.nitni_local_ref_head = NULL;
1294 fra.me.REG[0] = NIT_NULL;
1295 fra.me.REG[0] = p0;
1296 /* ../lib/standard/string.nit:252 */
1297 goto label1;
1298 label1: while(0);
1299 stack_frame_head = fra.me.prev;
1300 return fra.me.REG[0];
1301 }
1302 val_t standard___string___String___hash(val_t p0){
1303 struct {struct stack_frame_t me;} fra;
1304 val_t REGB0;
1305 val_t REGB1;
1306 val_t REGB2;
1307 val_t REGB3;
1308 val_t tmp;
1309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1310 fra.me.file = LOCATE_standard___string;
1311 fra.me.line = 254;
1312 fra.me.meth = LOCATE_standard___string___String___hash;
1313 fra.me.has_broke = 0;
1314 fra.me.REG_size = 1;
1315 fra.me.nitni_local_ref_head = NULL;
1316 fra.me.REG[0] = NIT_NULL;
1317 fra.me.REG[0] = p0;
1318 /* ../lib/standard/string.nit:257 */
1319 REGB0 = TAG_Int(5381);
1320 /* ../lib/standard/string.nit:258 */
1321 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1322 if (UNTAG_Bool(REGB1)) {
1323 } else {
1324 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string, 258);
1325 }
1326 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1327 REGB2 = TAG_Int(1);
1328 /* ../lib/standard/kernel.nit:237 */
1329 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1330 /* ../lib/standard/string.nit:259 */
1331 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1332 if (UNTAG_Bool(REGB1)) {
1333 } else {
1334 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 259);
1335 }
1336 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1337 /* ../lib/standard/string.nit:260 */
1338 while(1) {
1339 REGB1 = TAG_Int(0);
1340 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1341 if (UNTAG_Bool(REGB3)) {
1342 } else {
1343 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1344 }
1345 /* ../lib/standard/kernel.nit:233 */
1346 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
1347 /* ../lib/standard/string.nit:260 */
1348 if (UNTAG_Bool(REGB1)) {
1349 /* ../lib/standard/string.nit:261 */
1350 REGB1 = TAG_Int(32);
1351 /* ../lib/standard/kernel.nit:238 */
1352 REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
1353 /* ../lib/standard/kernel.nit:235 */
1354 REGB1 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1355 /* ../lib/standard/string.nit:595 */
1356 REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB2)]);
1357 /* ../lib/standard/kernel.nit:413 */
1358 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
1359 /* ../lib/standard/kernel.nit:235 */
1360 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1361 /* ../lib/standard/string.nit:261 */
1362 REGB0 = REGB3;
1363 /* ../lib/standard/string.nit:262 */
1364 REGB3 = TAG_Int(1);
1365 /* ../lib/standard/kernel.nit:237 */
1366 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
1367 /* ../lib/standard/string.nit:262 */
1368 REGB2 = REGB3;
1369 } else {
1370 /* ../lib/standard/string.nit:260 */
1371 goto label1;
1372 }
1373 }
1374 label1: while(0);
1375 /* ../lib/standard/string.nit:264 */
1376 goto label2;
1377 label2: while(0);
1378 stack_frame_head = fra.me.prev;
1379 return REGB0;
1380 }
1381 val_t standard___string___String___to_f(val_t p0){
1382 struct {struct stack_frame_t me;} fra;
1383 val_t tmp;
1384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1385 fra.me.file = LOCATE_standard___string;
1386 fra.me.line = 268;
1387 fra.me.meth = LOCATE_standard___string___String___to_f;
1388 fra.me.has_broke = 0;
1389 fra.me.REG_size = 1;
1390 fra.me.nitni_local_ref_head = NULL;
1391 fra.me.REG[0] = NIT_NULL;
1392 fra.me.REG[0] = p0;
1393 /* ../lib/standard/string.nit:268 */
1394 fra.me.REG[0] = String_to_f___out(fra.me.REG[0]);
1395 ;
1396 stack_frame_head = fra.me.prev;
1397 return fra.me.REG[0];
1398 }
1399 void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
1400 struct {struct stack_frame_t me;} fra;
1401 val_t REGB0;
1402 val_t REGB1;
1403 val_t REGB2;
1404 val_t REGB3;
1405 val_t tmp;
1406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1407 fra.me.file = LOCATE_standard___string;
1408 fra.me.line = 280;
1409 fra.me.meth = LOCATE_standard___string___Buffer_____braeq;
1410 fra.me.has_broke = 0;
1411 fra.me.REG_size = 1;
1412 fra.me.nitni_local_ref_head = NULL;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[0] = p0;
1415 REGB0 = p1;
1416 REGB1 = p2;
1417 /* ../lib/standard/collection/array.nit:24 */
1418 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1419 if (UNTAG_Bool(REGB2)) {
1420 } else {
1421 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1422 }
1423 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1424 /* ../lib/standard/string.nit:282 */
1425 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
1426 if (UNTAG_Bool(REGB3)) {
1427 } else {
1428 /* ../lib/standard/kernel.nit:227 */
1429 REGB2 = TAG_Bool((REGB0)==(REGB2));
1430 /* ../lib/standard/string.nit:282 */
1431 REGB3 = REGB2;
1432 }
1433 if (UNTAG_Bool(REGB3)) {
1434 /* ../lib/standard/string.nit:283 */
1435 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
1436 /* ../lib/standard/string.nit:284 */
1437 goto label1;
1438 }
1439 /* ../lib/standard/string.nit:286 */
1440 REGB3 = TAG_Int(0);
1441 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1442 if (UNTAG_Bool(REGB2)) {
1443 } else {
1444 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1445 }
1446 /* ../lib/standard/kernel.nit:233 */
1447 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3));
1448 /* ../lib/standard/string.nit:286 */
1449 if (UNTAG_Bool(REGB3)) {
1450 /* ../lib/standard/collection/array.nit:24 */
1451 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1452 if (UNTAG_Bool(REGB3)) {
1453 } else {
1454 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1455 }
1456 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1457 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1458 if (UNTAG_Bool(REGB2)) {
1459 } else {
1460 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1461 }
1462 /* ../lib/standard/kernel.nit:232 */
1463 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
1464 } else {
1465 /* ../lib/standard/string.nit:286 */
1466 REGB2 = TAG_Bool(false);
1467 REGB3 = REGB2;
1468 }
1469 if (UNTAG_Bool(REGB3)) {
1470 } else {
1471 nit_abort("Assert failed", NULL, LOCATE_standard___string, 286);
1472 }
1473 /* ../lib/standard/string.nit:287 */
1474 REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1475 if (UNTAG_Bool(REGB3)) {
1476 } else {
1477 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 287);
1478 }
1479 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1480 /* ../lib/standard/string.nit:596 */
1481 UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
1482 label1: while(0);
1483 stack_frame_head = fra.me.prev;
1484 return;
1485 }
1486 void standard___string___Buffer___add(val_t p0, val_t p1){
1487 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1488 val_t REGB0;
1489 val_t REGB1;
1490 val_t REGB2;
1491 val_t REGB3;
1492 val_t tmp;
1493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1494 fra.me.file = LOCATE_standard___string;
1495 fra.me.line = 290;
1496 fra.me.meth = LOCATE_standard___string___Buffer___add;
1497 fra.me.has_broke = 0;
1498 fra.me.REG_size = 2;
1499 fra.me.nitni_local_ref_head = NULL;
1500 fra.me.REG[0] = NIT_NULL;
1501 fra.me.REG[1] = NIT_NULL;
1502 fra.me.REG[0] = p0;
1503 REGB0 = p1;
1504 /* ../lib/standard/string.nit:292 */
1505 REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
1506 if (UNTAG_Bool(REGB1)) {
1507 } else {
1508 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 292);
1509 }
1510 REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
1511 /* ../lib/standard/collection/array.nit:24 */
1512 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1513 if (UNTAG_Bool(REGB2)) {
1514 } else {
1515 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1516 }
1517 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1518 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1519 if (UNTAG_Bool(REGB3)) {
1520 } else {
1521 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1522 }
1523 /* ../lib/standard/kernel.nit:231 */
1524 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB2));
1525 /* ../lib/standard/string.nit:292 */
1526 if (UNTAG_Bool(REGB2)) {
1527 /* ../lib/standard/collection/array.nit:24 */
1528 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1529 if (UNTAG_Bool(REGB2)) {
1530 } else {
1531 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1532 }
1533 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1534 /* ../lib/standard/string.nit:292 */
1535 REGB1 = TAG_Int(5);
1536 /* ../lib/standard/kernel.nit:235 */
1537 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
1538 /* ../lib/standard/string.nit:292 */
1539 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
1540 }
1541 /* ../lib/standard/string.nit:293 */
1542 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1543 if (UNTAG_Bool(REGB1)) {
1544 } else {
1545 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 293);
1546 }
1547 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1548 /* ../lib/standard/collection/array.nit:24 */
1549 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1550 if (UNTAG_Bool(REGB1)) {
1551 } else {
1552 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1553 }
1554 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1555 /* ../lib/standard/string.nit:596 */
1556 UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB1)]=UNTAG_Char(REGB0);;
1557 /* ../lib/standard/string.nit:294 */
1558 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1559 REGB1 = TAG_Int(1);
1560 /* ../lib/standard/kernel.nit:235 */
1561 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1562 /* ../lib/standard/string.nit:294 */
1563 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
1564 stack_frame_head = fra.me.prev;
1565 return;
1566 }
1567 void standard___string___Buffer___enlarge(val_t p0, val_t p1){
1568 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1569 val_t REGB0;
1570 val_t REGB1;
1571 val_t REGB2;
1572 val_t REGB3;
1573 val_t tmp;
1574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1575 fra.me.file = LOCATE_standard___string;
1576 fra.me.line = 297;
1577 fra.me.meth = LOCATE_standard___string___Buffer___enlarge;
1578 fra.me.has_broke = 0;
1579 fra.me.REG_size = 3;
1580 fra.me.nitni_local_ref_head = NULL;
1581 fra.me.REG[0] = NIT_NULL;
1582 fra.me.REG[1] = NIT_NULL;
1583 fra.me.REG[2] = NIT_NULL;
1584 fra.me.REG[0] = p0;
1585 REGB0 = p1;
1586 /* ../lib/standard/string.nit:299 */
1587 REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
1588 if (UNTAG_Bool(REGB1)) {
1589 } else {
1590 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 299);
1591 }
1592 REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
1593 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1594 if (UNTAG_Bool(REGB2)) {
1595 } else {
1596 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1597 }
1598 /* ../lib/standard/kernel.nit:231 */
1599 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1600 /* ../lib/standard/string.nit:300 */
1601 if (UNTAG_Bool(REGB2)) {
1602 goto label1;
1603 }
1604 /* ../lib/standard/string.nit:301 */
1605 while(1) {
1606 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1607 if (UNTAG_Bool(REGB2)) {
1608 } else {
1609 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1610 }
1611 /* ../lib/standard/kernel.nit:231 */
1612 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1613 /* ../lib/standard/string.nit:301 */
1614 if (UNTAG_Bool(REGB2)) {
1615 REGB2 = TAG_Int(2);
1616 /* ../lib/standard/kernel.nit:238 */
1617 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
1618 /* ../lib/standard/string.nit:301 */
1619 REGB3 = TAG_Int(2);
1620 /* ../lib/standard/kernel.nit:235 */
1621 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1622 /* ../lib/standard/string.nit:301 */
1623 REGB1 = REGB3;
1624 } else {
1625 goto label2;
1626 }
1627 }
1628 label2: while(0);
1629 /* ../lib/standard/string.nit:302 */
1630 REGB0 = TAG_Int(1);
1631 /* ../lib/standard/kernel.nit:235 */
1632 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1633 /* ../lib/standard/string.nit:611 */
1634 fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
1635 /* ../lib/standard/string.nit:303 */
1636 REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1637 if (UNTAG_Bool(REGB0)) {
1638 } else {
1639 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 303);
1640 }
1641 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1642 /* ../lib/standard/collection/array.nit:24 */
1643 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1644 if (UNTAG_Bool(REGB0)) {
1645 } else {
1646 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1647 }
1648 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1649 /* ../lib/standard/string.nit:303 */
1650 REGB3 = TAG_Int(0);
1651 REGB2 = TAG_Int(0);
1652 /* ../lib/standard/string.nit:597 */
1653 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB3), UNTAG_Int(REGB0));;
1654 /* ../lib/standard/string.nit:304 */
1655 ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
1656 /* ../lib/standard/string.nit:305 */
1657 ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB1;
1658 label1: while(0);
1659 stack_frame_head = fra.me.prev;
1660 return;
1661 }
1662 void standard___string___Buffer___append(val_t p0, val_t p1){
1663 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1664 val_t REGB0;
1665 val_t REGB1;
1666 val_t REGB2;
1667 val_t REGB3;
1668 val_t tmp;
1669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1670 fra.me.file = LOCATE_standard___string;
1671 fra.me.line = 308;
1672 fra.me.meth = LOCATE_standard___string___Buffer___append;
1673 fra.me.has_broke = 0;
1674 fra.me.REG_size = 5;
1675 fra.me.nitni_local_ref_head = NULL;
1676 fra.me.REG[0] = NIT_NULL;
1677 fra.me.REG[1] = NIT_NULL;
1678 fra.me.REG[2] = NIT_NULL;
1679 fra.me.REG[3] = NIT_NULL;
1680 fra.me.REG[4] = NIT_NULL;
1681 fra.me.REG[0] = p0;
1682 fra.me.REG[1] = p1;
1683 /* ../lib/standard/string.nit:308 */
1684 fra.me.REG[2] = fra.me.REG[0];
1685 fra.me.REG[3] = fra.me.REG[1];
1686 /* ../lib/standard/string.nit:310 */
1687 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
1688 if (UNTAG_Bool(REGB0)) {
1689 /* ../lib/standard/collection/array.nit:24 */
1690 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1691 if (UNTAG_Bool(REGB0)) {
1692 } else {
1693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1694 }
1695 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1696 /* ../lib/standard/string.nit:312 */
1697 REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL);
1698 if (UNTAG_Bool(REGB1)) {
1699 } else {
1700 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 312);
1701 }
1702 REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[2]);
1703 /* ../lib/standard/collection/array.nit:24 */
1704 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1705 if (UNTAG_Bool(REGB2)) {
1706 } else {
1707 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1708 }
1709 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1710 /* ../lib/standard/kernel.nit:235 */
1711 REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1712 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1713 if (UNTAG_Bool(REGB3)) {
1714 } else {
1715 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1716 }
1717 /* ../lib/standard/kernel.nit:232 */
1718 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1719 /* ../lib/standard/string.nit:312 */
1720 if (UNTAG_Bool(REGB2)) {
1721 /* ../lib/standard/collection/array.nit:24 */
1722 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1723 if (UNTAG_Bool(REGB2)) {
1724 } else {
1725 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1726 }
1727 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1728 /* ../lib/standard/kernel.nit:235 */
1729 REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1730 /* ../lib/standard/string.nit:312 */
1731 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[2])(fra.me.REG[2], REGB2);
1732 }
1733 /* ../lib/standard/string.nit:313 */
1734 fra.me.REG[3] = CALL_standard___string___AbstractString___items(fra.me.REG[3])(fra.me.REG[3]);
1735 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
1736 if (UNTAG_Bool(REGB2)) {
1737 } else {
1738 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 313);
1739 }
1740 fra.me.REG[4] = ATTR_standard___string___AbstractString____items(fra.me.REG[2]);
1741 REGB2 = TAG_Int(0);
1742 /* ../lib/standard/collection/array.nit:24 */
1743 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1744 if (UNTAG_Bool(REGB1)) {
1745 } else {
1746 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1747 }
1748 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1749 /* ../lib/standard/string.nit:597 */
1750 (void)memcpy(UNBOX_NativeString(fra.me.REG[4])+UNTAG_Int(REGB1), UNBOX_NativeString(fra.me.REG[3])+UNTAG_Int(REGB2), UNTAG_Int(REGB0));;
1751 /* ../lib/standard/string.nit:314 */
1752 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1753 /* ../lib/standard/kernel.nit:235 */
1754 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1755 /* ../lib/standard/string.nit:314 */
1756 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
1757 } else {
1758 /* ../lib/standard/string.nit:316 */
1759 CALL_SUPER_standard___string___Buffer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1760 }
1761 stack_frame_head = fra.me.prev;
1762 return;
1763 }
1764 val_t standard___string___Buffer___to_s(val_t p0){
1765 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1766 val_t REGB0;
1767 val_t REGB1;
1768 val_t REGB2;
1769 val_t tmp;
1770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1771 fra.me.file = LOCATE_standard___string;
1772 fra.me.line = 320;
1773 fra.me.meth = LOCATE_standard___string___Buffer___to_s;
1774 fra.me.has_broke = 0;
1775 fra.me.REG_size = 3;
1776 fra.me.nitni_local_ref_head = NULL;
1777 fra.me.REG[0] = NIT_NULL;
1778 fra.me.REG[1] = NIT_NULL;
1779 fra.me.REG[2] = NIT_NULL;
1780 fra.me.REG[0] = p0;
1781 /* ../lib/standard/collection/array.nit:24 */
1782 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1783 if (UNTAG_Bool(REGB0)) {
1784 } else {
1785 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1786 }
1787 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1788 /* ../lib/standard/string.nit:323 */
1789 REGB1 = TAG_Int(1);
1790 /* ../lib/standard/kernel.nit:235 */
1791 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1792 /* ../lib/standard/string.nit:611 */
1793 fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
1794 /* ../lib/standard/string.nit:324 */
1795 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
1796 if (UNTAG_Bool(REGB1)) {
1797 } else {
1798 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 324);
1799 }
1800 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
1801 REGB1 = TAG_Int(0);
1802 REGB2 = TAG_Int(0);
1803 /* ../lib/standard/string.nit:597 */
1804 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
1805 /* ../lib/standard/collection/array.nit:24 */
1806 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1807 if (UNTAG_Bool(REGB2)) {
1808 } else {
1809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1810 }
1811 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1812 /* ../lib/standard/string.nit:327 */
1813 REGB1 = TAG_Char('\0');
1814 /* ../lib/standard/string.nit:596 */
1815 UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]=UNTAG_Char(REGB1);;
1816 /* ../lib/standard/collection/array.nit:24 */
1817 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1818 if (UNTAG_Bool(REGB1)) {
1819 } else {
1820 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1821 }
1822 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1823 /* ../lib/standard/string.nit:329 */
1824 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
1825 goto label1;
1826 label1: while(0);
1827 stack_frame_head = fra.me.prev;
1828 return fra.me.REG[1];
1829 }
1830 val_t standard___string___Buffer_____l(val_t p0, val_t p1){
1831 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1832 val_t REGB0;
1833 val_t REGB1;
1834 val_t REGB2;
1835 val_t REGB3;
1836 val_t REGB4;
1837 val_t REGB5;
1838 val_t REGB6;
1839 val_t tmp;
1840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1841 fra.me.file = LOCATE_standard___string;
1842 fra.me.line = 332;
1843 fra.me.meth = LOCATE_standard___string___Buffer_____l;
1844 fra.me.has_broke = 0;
1845 fra.me.REG_size = 2;
1846 fra.me.nitni_local_ref_head = NULL;
1847 fra.me.REG[0] = NIT_NULL;
1848 fra.me.REG[1] = NIT_NULL;
1849 fra.me.REG[0] = p0;
1850 fra.me.REG[1] = p1;
1851 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[0]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[0]))) /*cast OTHER*/;
1852 if (UNTAG_Bool(REGB0)) {
1853 } else {
1854 nit_abort("Cast failed", NULL, LOCATE_standard___string, 0);
1855 }
1856 /* ../lib/standard/string.nit:334 */
1857 REGB0 = TAG_Int(0);
1858 /* ../lib/standard/collection/array.nit:24 */
1859 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1860 if (UNTAG_Bool(REGB1)) {
1861 } else {
1862 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1863 }
1864 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1865 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1866 if (UNTAG_Bool(REGB2)) {
1867 } else {
1868 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1869 }
1870 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1871 /* ../lib/standard/string.nit:337 */
1872 while(1) {
1873 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1874 if (UNTAG_Bool(REGB3)) {
1875 } else {
1876 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1877 }
1878 /* ../lib/standard/kernel.nit:232 */
1879 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1880 /* ../lib/standard/string.nit:337 */
1881 if (UNTAG_Bool(REGB3)) {
1882 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1883 if (UNTAG_Bool(REGB3)) {
1884 } else {
1885 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1886 }
1887 /* ../lib/standard/kernel.nit:232 */
1888 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1889 } else {
1890 /* ../lib/standard/string.nit:337 */
1891 REGB4 = TAG_Bool(false);
1892 REGB3 = REGB4;
1893 }
1894 if (UNTAG_Bool(REGB3)) {
1895 /* ../lib/standard/string.nit:338 */
1896 REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
1897 /* ../lib/standard/kernel.nit:413 */
1898 REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
1899 /* ../lib/standard/string.nit:339 */
1900 REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
1901 /* ../lib/standard/kernel.nit:413 */
1902 REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
1903 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1904 if (UNTAG_Bool(REGB5)) {
1905 } else {
1906 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1907 }
1908 /* ../lib/standard/kernel.nit:232 */
1909 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1910 /* ../lib/standard/string.nit:340 */
1911 if (UNTAG_Bool(REGB5)) {
1912 /* ../lib/standard/string.nit:341 */
1913 REGB5 = TAG_Bool(true);
1914 goto label1;
1915 } else {
1916 REGB6 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
1917 if (UNTAG_Bool(REGB6)) {
1918 } else {
1919 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1920 }
1921 /* ../lib/standard/kernel.nit:232 */
1922 REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
1923 /* ../lib/standard/string.nit:342 */
1924 if (UNTAG_Bool(REGB3)) {
1925 /* ../lib/standard/string.nit:343 */
1926 REGB3 = TAG_Bool(false);
1927 REGB5 = REGB3;
1928 goto label1;
1929 }
1930 }
1931 /* ../lib/standard/string.nit:345 */
1932 REGB3 = TAG_Int(1);
1933 /* ../lib/standard/kernel.nit:235 */
1934 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
1935 /* ../lib/standard/string.nit:345 */
1936 REGB0 = REGB3;
1937 } else {
1938 /* ../lib/standard/string.nit:337 */
1939 goto label2;
1940 }
1941 }
1942 label2: while(0);
1943 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1944 if (UNTAG_Bool(REGB0)) {
1945 } else {
1946 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1947 }
1948 /* ../lib/standard/kernel.nit:232 */
1949 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1950 /* ../lib/standard/string.nit:347 */
1951 if (UNTAG_Bool(REGB2)) {
1952 /* ../lib/standard/string.nit:348 */
1953 REGB2 = TAG_Bool(true);
1954 REGB5 = REGB2;
1955 goto label1;
1956 } else {
1957 /* ../lib/standard/string.nit:350 */
1958 REGB2 = TAG_Bool(false);
1959 REGB5 = REGB2;
1960 goto label1;
1961 }
1962 label1: while(0);
1963 stack_frame_head = fra.me.prev;
1964 return REGB5;
1965 }
1966 void standard___string___Buffer___init(val_t p0, int* init_table){
1967 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___Buffer].i;
1968 struct {struct stack_frame_t me;} fra;
1969 val_t REGB0;
1970 val_t tmp;
1971 if (init_table[itpos2]) return;
1972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1973 fra.me.file = LOCATE_standard___string;
1974 fra.me.line = 354;
1975 fra.me.meth = LOCATE_standard___string___Buffer___init;
1976 fra.me.has_broke = 0;
1977 fra.me.REG_size = 1;
1978 fra.me.nitni_local_ref_head = NULL;
1979 fra.me.REG[0] = NIT_NULL;
1980 fra.me.REG[0] = p0;
1981 /* ../lib/standard/string.nit:357 */
1982 REGB0 = TAG_Int(5);
1983 CALL_standard___string___Buffer___with_capacity(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
1984 stack_frame_head = fra.me.prev;
1985 init_table[itpos2] = 1;
1986 return;
1987 }
1988 void standard___string___Buffer___from(val_t p0, val_t p1, int* init_table){
1989 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___Buffer].i;
1990 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1991 val_t REGB0;
1992 val_t REGB1;
1993 val_t REGB2;
1994 val_t tmp;
1995 if (init_table[itpos3]) return;
1996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1997 fra.me.file = LOCATE_standard___string;
1998 fra.me.line = 360;
1999 fra.me.meth = LOCATE_standard___string___Buffer___from;
2000 fra.me.has_broke = 0;
2001 fra.me.REG_size = 3;
2002 fra.me.nitni_local_ref_head = NULL;
2003 fra.me.REG[0] = NIT_NULL;
2004 fra.me.REG[1] = NIT_NULL;
2005 fra.me.REG[2] = NIT_NULL;
2006 fra.me.REG[0] = p0;
2007 fra.me.REG[1] = p1;
2008 /* ../lib/standard/collection/array.nit:24 */
2009 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2010 if (UNTAG_Bool(REGB0)) {
2011 } else {
2012 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2013 }
2014 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2015 /* ../lib/standard/string.nit:362 */
2016 REGB1 = TAG_Int(1);
2017 /* ../lib/standard/kernel.nit:235 */
2018 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2019 /* ../lib/standard/string.nit:362 */
2020 ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB1;
2021 /* ../lib/standard/collection/array.nit:24 */
2022 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2023 if (UNTAG_Bool(REGB1)) {
2024 } else {
2025 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2026 }
2027 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2028 /* ../lib/standard/string.nit:363 */
2029 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
2030 /* ../lib/standard/string.nit:364 */
2031 REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
2032 if (UNTAG_Bool(REGB1)) {
2033 } else {
2034 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 364);
2035 }
2036 REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
2037 /* ../lib/standard/string.nit:611 */
2038 fra.me.REG[2] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
2039 /* ../lib/standard/string.nit:364 */
2040 ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[2];
2041 /* ../lib/standard/string.nit:365 */
2042 fra.me.REG[1] = CALL_standard___string___AbstractString___items(fra.me.REG[1])(fra.me.REG[1]);
2043 REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
2044 if (UNTAG_Bool(REGB1)) {
2045 } else {
2046 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 365);
2047 }
2048 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
2049 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2050 if (UNTAG_Bool(REGB1)) {
2051 } else {
2052 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string, 365);
2053 }
2054 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2055 REGB0 = TAG_Int(0);
2056 REGB2 = TAG_Int(0);
2057 /* ../lib/standard/string.nit:597 */
2058 (void)memcpy(UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB0), UNTAG_Int(REGB1));;
2059 stack_frame_head = fra.me.prev;
2060 init_table[itpos3] = 1;
2061 return;
2062 }
2063 void standard___string___Buffer___with_capacity(val_t p0, val_t p1, int* init_table){
2064 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___Buffer].i;
2065 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2066 val_t REGB0;
2067 val_t REGB1;
2068 val_t REGB2;
2069 val_t tmp;
2070 if (init_table[itpos4]) return;
2071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2072 fra.me.file = LOCATE_standard___string;
2073 fra.me.line = 368;
2074 fra.me.meth = LOCATE_standard___string___Buffer___with_capacity;
2075 fra.me.has_broke = 0;
2076 fra.me.REG_size = 2;
2077 fra.me.nitni_local_ref_head = NULL;
2078 fra.me.REG[0] = NIT_NULL;
2079 fra.me.REG[1] = NIT_NULL;
2080 fra.me.REG[0] = p0;
2081 REGB0 = p1;
2082 /* ../lib/standard/string.nit:371 */
2083 REGB1 = TAG_Int(0);
2084 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2085 if (UNTAG_Bool(REGB2)) {
2086 } else {
2087 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2088 }
2089 /* ../lib/standard/kernel.nit:233 */
2090 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2091 /* ../lib/standard/string.nit:371 */
2092 if (UNTAG_Bool(REGB1)) {
2093 } else {
2094 nit_abort("Assert failed", NULL, LOCATE_standard___string, 371);
2095 }
2096 /* ../lib/standard/string.nit:373 */
2097 REGB1 = TAG_Int(1);
2098 /* ../lib/standard/kernel.nit:235 */
2099 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2100 /* ../lib/standard/string.nit:611 */
2101 fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
2102 /* ../lib/standard/string.nit:373 */
2103 ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
2104 /* ../lib/standard/string.nit:374 */
2105 ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB0;
2106 /* ../lib/standard/string.nit:375 */
2107 REGB0 = TAG_Int(0);
2108 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
2109 stack_frame_head = fra.me.prev;
2110 init_table[itpos4] = 1;
2111 return;
2112 }
2113 val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
2114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2115 val_t REGB0;
2116 val_t REGB1;
2117 val_t REGB2;
2118 val_t REGB3;
2119 val_t REGB4;
2120 val_t REGB5;
2121 val_t tmp;
2122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2123 fra.me.file = LOCATE_standard___string;
2124 fra.me.line = 378;
2125 fra.me.meth = LOCATE_standard___string___Buffer_____eqeq;
2126 fra.me.has_broke = 0;
2127 fra.me.REG_size = 2;
2128 fra.me.nitni_local_ref_head = NULL;
2129 fra.me.REG[0] = NIT_NULL;
2130 fra.me.REG[1] = NIT_NULL;
2131 fra.me.REG[0] = p0;
2132 fra.me.REG[1] = p1;
2133 /* ../lib/standard/string.nit:380 */
2134 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___Buffer, ID_standard___string___Buffer)) /*cast Buffer*/;
2135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2136 if (UNTAG_Bool(REGB0)) {
2137 REGB0 = TAG_Bool(true);
2138 } else {
2139 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2140 REGB0 = REGB1;
2141 }
2142 if (UNTAG_Bool(REGB0)) {
2143 REGB0 = TAG_Bool(false);
2144 goto label1;
2145 }
2146 /* ../lib/standard/collection/array.nit:24 */
2147 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2148 if (UNTAG_Bool(REGB1)) {
2149 } else {
2150 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2151 }
2152 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2153 /* ../lib/standard/string.nit:382 */
2154 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2155 if (UNTAG_Bool(REGB2)) {
2156 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 382);
2157 }
2158 /* ../lib/standard/collection/array.nit:24 */
2159 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2160 if (UNTAG_Bool(REGB2)) {
2161 } else {
2162 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2163 }
2164 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2165 /* ../lib/standard/string.nit:382 */
2166 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
2167 if (UNTAG_Bool(REGB3)) {
2168 } else {
2169 /* ../lib/standard/kernel.nit:227 */
2170 REGB2 = TAG_Bool((REGB2)==(REGB1));
2171 /* ../lib/standard/string.nit:382 */
2172 REGB3 = REGB2;
2173 }
2174 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2175 if (UNTAG_Bool(REGB3)) {
2176 REGB3 = TAG_Bool(false);
2177 REGB0 = REGB3;
2178 goto label1;
2179 }
2180 /* ../lib/standard/string.nit:383 */
2181 REGB3 = TAG_Int(0);
2182 /* ../lib/standard/string.nit:384 */
2183 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
2184 if (UNTAG_Bool(REGB2)) {
2185 } else {
2186 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 384);
2187 }
2188 fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
2189 /* ../lib/standard/string.nit:385 */
2190 REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
2191 if (UNTAG_Bool(REGB2)) {
2192 } else {
2193 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 385);
2194 }
2195 fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
2196 /* ../lib/standard/string.nit:386 */
2197 while(1) {
2198 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2199 if (UNTAG_Bool(REGB2)) {
2200 } else {
2201 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2202 }
2203 /* ../lib/standard/kernel.nit:232 */
2204 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
2205 /* ../lib/standard/string.nit:386 */
2206 if (UNTAG_Bool(REGB2)) {
2207 /* ../lib/standard/string.nit:595 */
2208 REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
2209 REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
2210 /* ../lib/standard/string.nit:387 */
2211 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
2212 if (UNTAG_Bool(REGB5)) {
2213 } else {
2214 /* ../lib/standard/kernel.nit:378 */
2215 REGB4 = TAG_Bool((REGB2)==(REGB4));
2216 /* ../lib/standard/string.nit:387 */
2217 REGB5 = REGB4;
2218 }
2219 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
2220 if (UNTAG_Bool(REGB5)) {
2221 REGB5 = TAG_Bool(false);
2222 REGB0 = REGB5;
2223 goto label1;
2224 }
2225 /* ../lib/standard/string.nit:388 */
2226 REGB5 = TAG_Int(1);
2227 /* ../lib/standard/kernel.nit:235 */
2228 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
2229 /* ../lib/standard/string.nit:388 */
2230 REGB3 = REGB5;
2231 } else {
2232 /* ../lib/standard/string.nit:386 */
2233 goto label2;
2234 }
2235 }
2236 label2: while(0);
2237 /* ../lib/standard/string.nit:390 */
2238 REGB3 = TAG_Bool(true);
2239 REGB0 = REGB3;
2240 goto label1;
2241 label1: while(0);
2242 stack_frame_head = fra.me.prev;
2243 return REGB0;
2244 }
2245 val_t standard___string___Buffer___capacity(val_t p0){
2246 struct {struct stack_frame_t me;} fra;
2247 val_t REGB0;
2248 val_t tmp;
2249 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2250 fra.me.file = LOCATE_standard___string;
2251 fra.me.line = 393;
2252 fra.me.meth = LOCATE_standard___string___Buffer___capacity;
2253 fra.me.has_broke = 0;
2254 fra.me.REG_size = 1;
2255 fra.me.nitni_local_ref_head = NULL;
2256 fra.me.REG[0] = NIT_NULL;
2257 fra.me.REG[0] = p0;
2258 /* ../lib/standard/string.nit:393 */
2259 REGB0 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
2260 if (UNTAG_Bool(REGB0)) {
2261 } else {
2262 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 393);
2263 }
2264 REGB0 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
2265 stack_frame_head = fra.me.prev;
2266 return REGB0;
2267 }
2268 val_t standard___string___Object___to_s(val_t p0){
2269 struct {struct stack_frame_t me;} fra;
2270 val_t tmp;
2271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2272 fra.me.file = LOCATE_standard___string;
2273 fra.me.line = 403;
2274 fra.me.meth = LOCATE_standard___string___Object___to_s;
2275 fra.me.has_broke = 0;
2276 fra.me.REG_size = 1;
2277 fra.me.nitni_local_ref_head = NULL;
2278 fra.me.REG[0] = NIT_NULL;
2279 fra.me.REG[0] = p0;
2280 /* ../lib/standard/string.nit:404 */
2281 fra.me.REG[0] = CALL_standard___string___Object___inspect(fra.me.REG[0])(fra.me.REG[0]);
2282 goto label1;
2283 label1: while(0);
2284 stack_frame_head = fra.me.prev;
2285 return fra.me.REG[0];
2286 }
2287 val_t standard___string___Object___native_class_name(val_t p0){
2288 struct {struct stack_frame_t me;} fra;
2289 val_t tmp;
2290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2291 fra.me.file = LOCATE_standard___string;
2292 fra.me.line = 406;
2293 fra.me.meth = LOCATE_standard___string___Object___native_class_name;
2294 fra.me.has_broke = 0;
2295 fra.me.REG_size = 1;
2296 fra.me.nitni_local_ref_head = NULL;
2297 fra.me.REG[0] = NIT_NULL;
2298 fra.me.REG[0] = p0;
2299 /* ../lib/standard/string.nit:406 */
2300 fra.me.REG[0] = BOX_NativeString(VAL2VFT(fra.me.REG[0])[2].cname);;
2301 stack_frame_head = fra.me.prev;
2302 return fra.me.REG[0];
2303 }
2304 val_t standard___string___Object___class_name(val_t p0){
2305 struct {struct stack_frame_t me;} fra;
2306 val_t tmp;
2307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2308 fra.me.file = LOCATE_standard___string;
2309 fra.me.line = 409;
2310 fra.me.meth = LOCATE_standard___string___Object___class_name;
2311 fra.me.has_broke = 0;
2312 fra.me.REG_size = 1;
2313 fra.me.nitni_local_ref_head = NULL;
2314 fra.me.REG[0] = NIT_NULL;
2315 fra.me.REG[0] = p0;
2316 /* ../lib/standard/string.nit:411 */
2317 fra.me.REG[0] = CALL_standard___string___Object___native_class_name(fra.me.REG[0])(fra.me.REG[0]);
2318 fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
2319 goto label1;
2320 label1: while(0);
2321 stack_frame_head = fra.me.prev;
2322 return fra.me.REG[0];
2323 }
2324 val_t standard___string___Object___inspect(val_t p0){
2325 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2326 val_t REGB0;
2327 val_t tmp;
2328 static val_t once_value_1; /* Once value */
2329 static val_t once_value_2; /* Once value */
2330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2331 fra.me.file = LOCATE_standard___string;
2332 fra.me.line = 413;
2333 fra.me.meth = LOCATE_standard___string___Object___inspect;
2334 fra.me.has_broke = 0;
2335 fra.me.REG_size = 3;
2336 fra.me.nitni_local_ref_head = NULL;
2337 fra.me.REG[0] = NIT_NULL;
2338 fra.me.REG[1] = NIT_NULL;
2339 fra.me.REG[2] = NIT_NULL;
2340 fra.me.REG[0] = p0;
2341 /* ../lib/standard/string.nit:417 */
2342 REGB0 = TAG_Int(3);
2343 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2344 if (!once_value_1) {
2345 fra.me.REG[2] = BOX_NativeString("<");
2346 REGB0 = TAG_Int(1);
2347 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2348 once_value_1 = fra.me.REG[2];
2349 register_static_object(&once_value_1);
2350 } else fra.me.REG[2] = once_value_1;
2351 fra.me.REG[2] = fra.me.REG[2];
2352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2353 fra.me.REG[0] = CALL_standard___string___Object___inspect_head(fra.me.REG[0])(fra.me.REG[0]);
2354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2355 if (!once_value_2) {
2356 fra.me.REG[0] = BOX_NativeString(">");
2357 REGB0 = TAG_Int(1);
2358 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2359 once_value_2 = fra.me.REG[0];
2360 register_static_object(&once_value_2);
2361 } else fra.me.REG[0] = once_value_2;
2362 fra.me.REG[0] = fra.me.REG[0];
2363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2364 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2365 goto label3;
2366 label3: while(0);
2367 stack_frame_head = fra.me.prev;
2368 return fra.me.REG[1];
2369 }
2370 val_t standard___string___Object___inspect_head(val_t p0){
2371 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2372 val_t REGB0;
2373 val_t tmp;
2374 static val_t once_value_1; /* Once value */
2375 static val_t once_value_2; /* Once value */
2376 static val_t once_value_3; /* Once value */
2377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2378 fra.me.file = LOCATE_standard___string;
2379 fra.me.line = 420;
2380 fra.me.meth = LOCATE_standard___string___Object___inspect_head;
2381 fra.me.has_broke = 0;
2382 fra.me.REG_size = 3;
2383 fra.me.nitni_local_ref_head = NULL;
2384 fra.me.REG[0] = NIT_NULL;
2385 fra.me.REG[1] = NIT_NULL;
2386 fra.me.REG[2] = NIT_NULL;
2387 fra.me.REG[0] = p0;
2388 /* ../lib/standard/string.nit:424 */
2389 REGB0 = TAG_Int(5);
2390 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2391 if (!once_value_1) {
2392 fra.me.REG[2] = BOX_NativeString("");
2393 REGB0 = TAG_Int(0);
2394 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2395 once_value_1 = fra.me.REG[2];
2396 register_static_object(&once_value_1);
2397 } else fra.me.REG[2] = once_value_1;
2398 fra.me.REG[2] = fra.me.REG[2];
2399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2400 fra.me.REG[2] = CALL_standard___string___Object___class_name(fra.me.REG[0])(fra.me.REG[0]);
2401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2402 if (!once_value_2) {
2403 fra.me.REG[2] = BOX_NativeString(":#");
2404 REGB0 = TAG_Int(2);
2405 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2406 once_value_2 = fra.me.REG[2];
2407 register_static_object(&once_value_2);
2408 } else fra.me.REG[2] = once_value_2;
2409 fra.me.REG[2] = fra.me.REG[2];
2410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2411 REGB0 = CALL_standard___kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]);
2412 fra.me.REG[0] = CALL_standard___string___Int___to_hex(REGB0)(REGB0);
2413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2414 if (!once_value_3) {
2415 fra.me.REG[0] = BOX_NativeString("");
2416 REGB0 = TAG_Int(0);
2417 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2418 once_value_3 = fra.me.REG[0];
2419 register_static_object(&once_value_3);
2420 } else fra.me.REG[0] = once_value_3;
2421 fra.me.REG[0] = fra.me.REG[0];
2422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2423 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2424 goto label4;
2425 label4: while(0);
2426 stack_frame_head = fra.me.prev;
2427 return fra.me.REG[1];
2428 }
2429 val_t standard___string___Object___args(val_t p0){
2430 struct {struct stack_frame_t me;} fra;
2431 val_t tmp;
2432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2433 fra.me.file = LOCATE_standard___string;
2434 fra.me.line = 427;
2435 fra.me.meth = LOCATE_standard___string___Object___args;
2436 fra.me.has_broke = 0;
2437 fra.me.REG_size = 1;
2438 fra.me.nitni_local_ref_head = NULL;
2439 fra.me.REG[0] = NIT_NULL;
2440 fra.me.REG[0] = p0;
2441 /* ../lib/standard/string.nit:429 */
2442 fra.me.REG[0] = CALL_standard___kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]);
2443 fra.me.REG[0] = CALL_standard___string___Object___args(fra.me.REG[0])(fra.me.REG[0]);
2444 goto label1;
2445 label1: while(0);
2446 stack_frame_head = fra.me.prev;
2447 return fra.me.REG[0];
2448 }
2449 val_t standard___string___Bool___to_s(val_t p0){
2450 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2451 val_t REGB0;
2452 val_t tmp;
2453 static val_t once_value_1; /* Once value */
2454 static val_t once_value_2; /* Once value */
2455 static val_t once_value_4; /* Once value */
2456 static val_t once_value_5; /* Once value */
2457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2458 fra.me.file = LOCATE_standard___string;
2459 fra.me.line = 434;
2460 fra.me.meth = LOCATE_standard___string___Bool___to_s;
2461 fra.me.has_broke = 0;
2462 fra.me.REG_size = 2;
2463 fra.me.nitni_local_ref_head = NULL;
2464 fra.me.REG[0] = NIT_NULL;
2465 fra.me.REG[1] = NIT_NULL;
2466 REGB0 = p0;
2467 /* ../lib/standard/string.nit:436 */
2468 if (UNTAG_Bool(REGB0)) {
2469 /* ../lib/standard/string.nit:437 */
2470 if (!once_value_1) {
2471 if (!once_value_2) {
2472 fra.me.REG[0] = BOX_NativeString("true");
2473 REGB0 = TAG_Int(4);
2474 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2475 once_value_2 = fra.me.REG[0];
2476 register_static_object(&once_value_2);
2477 } else fra.me.REG[0] = once_value_2;
2478 fra.me.REG[0] = fra.me.REG[0];
2479 once_value_1 = fra.me.REG[0];
2480 register_static_object(&once_value_1);
2481 } else fra.me.REG[0] = once_value_1;
2482 fra.me.REG[0] = fra.me.REG[0];
2483 goto label3;
2484 } else {
2485 /* ../lib/standard/string.nit:439 */
2486 if (!once_value_4) {
2487 if (!once_value_5) {
2488 fra.me.REG[1] = BOX_NativeString("false");
2489 REGB0 = TAG_Int(5);
2490 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2491 once_value_5 = fra.me.REG[1];
2492 register_static_object(&once_value_5);
2493 } else fra.me.REG[1] = once_value_5;
2494 fra.me.REG[1] = fra.me.REG[1];
2495 once_value_4 = fra.me.REG[1];
2496 register_static_object(&once_value_4);
2497 } else fra.me.REG[1] = once_value_4;
2498 fra.me.REG[1] = fra.me.REG[1];
2499 fra.me.REG[0] = fra.me.REG[1];
2500 goto label3;
2501 }
2502 label3: while(0);
2503 stack_frame_head = fra.me.prev;
2504 return fra.me.REG[0];
2505 }
2506 void standard___string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p3){
2507 struct {struct stack_frame_t me;} fra;
2508 val_t REGB0;
2509 val_t REGB1;
2510 val_t REGB2;
2511 val_t REGB3;
2512 val_t REGB4;
2513 val_t tmp;
2514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2515 fra.me.file = LOCATE_standard___string;
2516 fra.me.line = 445;
2517 fra.me.meth = LOCATE_standard___string___Int___fill_buffer;
2518 fra.me.has_broke = 0;
2519 fra.me.REG_size = 1;
2520 fra.me.nitni_local_ref_head = NULL;
2521 fra.me.REG[0] = NIT_NULL;
2522 REGB0 = p0;
2523 fra.me.REG[0] = p1;
2524 REGB1 = p2;
2525 REGB2 = p3;
2526 /* ../lib/standard/string.nit:451 */
2527 REGB2 = TAG_Int(0);
2528 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2529 if (UNTAG_Bool(REGB3)) {
2530 } else {
2531 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2532 }
2533 /* ../lib/standard/kernel.nit:232 */
2534 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
2535 /* ../lib/standard/string.nit:451 */
2536 if (UNTAG_Bool(REGB2)) {
2537 /* ../lib/standard/kernel.nit:236 */
2538 REGB2 = TAG_Int(-UNTAG_Int(REGB0));
2539 /* ../lib/standard/string.nit:453 */
2540 REGB3 = TAG_Int(0);
2541 REGB4 = TAG_Char('-');
2542 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
2543 } else {
2544 /* ../lib/standard/string.nit:454 */
2545 REGB4 = TAG_Int(0);
2546 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
2547 if (UNTAG_Bool(REGB3)) {
2548 } else {
2549 /* ../lib/standard/kernel.nit:227 */
2550 REGB4 = TAG_Bool((REGB0)==(REGB4));
2551 /* ../lib/standard/string.nit:454 */
2552 REGB3 = REGB4;
2553 }
2554 if (UNTAG_Bool(REGB3)) {
2555 /* ../lib/standard/string.nit:455 */
2556 REGB3 = TAG_Int(0);
2557 REGB4 = TAG_Char('0');
2558 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
2559 /* ../lib/standard/string.nit:456 */
2560 goto label1;
2561 } else {
2562 /* ../lib/standard/string.nit:458 */
2563 REGB2 = REGB0;
2564 }
2565 }
2566 /* ../lib/standard/string.nit:461 */
2567 REGB0 = CALL_standard___kernel___Int___digit_count(REGB0)(REGB0, REGB1);
2568 REGB4 = TAG_Int(1);
2569 /* ../lib/standard/kernel.nit:237 */
2570 REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
2571 /* ../lib/standard/string.nit:462 */
2572 while(1) {
2573 REGB0 = TAG_Int(0);
2574 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2575 if (UNTAG_Bool(REGB3)) {
2576 } else {
2577 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2578 }
2579 /* ../lib/standard/kernel.nit:233 */
2580 REGB0 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB0));
2581 /* ../lib/standard/string.nit:462 */
2582 if (UNTAG_Bool(REGB0)) {
2583 REGB0 = TAG_Int(0);
2584 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2585 if (UNTAG_Bool(REGB3)) {
2586 } else {
2587 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2588 }
2589 /* ../lib/standard/kernel.nit:234 */
2590 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
2591 } else {
2592 /* ../lib/standard/string.nit:462 */
2593 REGB3 = TAG_Bool(false);
2594 REGB0 = REGB3;
2595 }
2596 if (UNTAG_Bool(REGB0)) {
2597 /* ../lib/standard/kernel.nit:240 */
2598 REGB0 = TAG_Int(UNTAG_Int(REGB2)%UNTAG_Int(REGB1));
2599 /* ../lib/standard/string.nit:463 */
2600 REGB0 = CALL_standard___kernel___Int___to_c(REGB0)(REGB0);
2601 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB0);
2602 /* ../lib/standard/kernel.nit:239 */
2603 REGB0 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
2604 /* ../lib/standard/string.nit:464 */
2605 REGB2 = REGB0;
2606 /* ../lib/standard/string.nit:465 */
2607 REGB0 = TAG_Int(1);
2608 /* ../lib/standard/kernel.nit:237 */
2609 REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0));
2610 /* ../lib/standard/string.nit:465 */
2611 REGB4 = REGB0;
2612 } else {
2613 /* ../lib/standard/string.nit:462 */
2614 goto label2;
2615 }
2616 }
2617 label2: while(0);
2618 label1: while(0);
2619 stack_frame_head = fra.me.prev;
2620 return;
2621 }
2622 val_t standard___string___Int___to_s(val_t p0){
2623 struct {struct stack_frame_t me;} fra;
2624 val_t REGB0;
2625 val_t REGB1;
2626 val_t REGB2;
2627 val_t tmp;
2628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2629 fra.me.file = LOCATE_standard___string;
2630 fra.me.line = 469;
2631 fra.me.meth = LOCATE_standard___string___Int___to_s;
2632 fra.me.has_broke = 0;
2633 fra.me.REG_size = 1;
2634 fra.me.nitni_local_ref_head = NULL;
2635 fra.me.REG[0] = NIT_NULL;
2636 REGB0 = p0;
2637 /* ../lib/standard/string.nit:470 */
2638 REGB1 = TAG_Int(10);
2639 REGB2 = TAG_Bool(true);
2640 fra.me.REG[0] = CALL_standard___string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
2641 goto label1;
2642 label1: while(0);
2643 stack_frame_head = fra.me.prev;
2644 return fra.me.REG[0];
2645 }
2646 val_t standard___string___Int___to_hex(val_t p0){
2647 struct {struct stack_frame_t me;} fra;
2648 val_t REGB0;
2649 val_t REGB1;
2650 val_t REGB2;
2651 val_t tmp;
2652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2653 fra.me.file = LOCATE_standard___string;
2654 fra.me.line = 472;
2655 fra.me.meth = LOCATE_standard___string___Int___to_hex;
2656 fra.me.has_broke = 0;
2657 fra.me.REG_size = 1;
2658 fra.me.nitni_local_ref_head = NULL;
2659 fra.me.REG[0] = NIT_NULL;
2660 REGB0 = p0;
2661 /* ../lib/standard/string.nit:473 */
2662 REGB1 = TAG_Int(16);
2663 REGB2 = TAG_Bool(false);
2664 fra.me.REG[0] = CALL_standard___string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
2665 goto label1;
2666 label1: while(0);
2667 stack_frame_head = fra.me.prev;
2668 return fra.me.REG[0];
2669 }
2670 val_t standard___string___Int___to_base(val_t p0, val_t p1, val_t p2){
2671 struct {struct stack_frame_t me;} fra;
2672 val_t REGB0;
2673 val_t REGB1;
2674 val_t REGB2;
2675 val_t REGB3;
2676 val_t REGB4;
2677 val_t tmp;
2678 static val_t once_value_1; /* Once value */
2679 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2680 fra.me.file = LOCATE_standard___string;
2681 fra.me.line = 475;
2682 fra.me.meth = LOCATE_standard___string___Int___to_base;
2683 fra.me.has_broke = 0;
2684 fra.me.REG_size = 1;
2685 fra.me.nitni_local_ref_head = NULL;
2686 fra.me.REG[0] = NIT_NULL;
2687 REGB0 = p0;
2688 REGB1 = p1;
2689 REGB2 = p2;
2690 /* ../lib/standard/string.nit:478 */
2691 REGB3 = CALL_standard___kernel___Int___digit_count(REGB0)(REGB0, REGB1);
2692 /* ../lib/standard/string.nit:479 */
2693 if (!once_value_1) {
2694 fra.me.REG[0] = BOX_NativeString(" ");
2695 REGB4 = TAG_Int(1);
2696 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB4);
2697 once_value_1 = fra.me.REG[0];
2698 register_static_object(&once_value_1);
2699 } else fra.me.REG[0] = once_value_1;
2700 fra.me.REG[0] = fra.me.REG[0];
2701 fra.me.REG[0] = CALL_standard___string___String_____star(fra.me.REG[0])(fra.me.REG[0], REGB3);
2702 fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[0]);
2703 /* ../lib/standard/string.nit:480 */
2704 CALL_standard___string___Int___fill_buffer(REGB0)(REGB0, fra.me.REG[0], REGB1, REGB2);
2705 /* ../lib/standard/string.nit:481 */
2706 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2707 goto label2;
2708 label2: while(0);
2709 stack_frame_head = fra.me.prev;
2710 return fra.me.REG[0];
2711 }
2712 val_t standard___string___Float___to_s(val_t p0){
2713 struct {struct stack_frame_t me;} fra;
2714 val_t REGB0;
2715 val_t tmp;
2716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2717 fra.me.file = LOCATE_standard___string;
2718 fra.me.line = 486;
2719 fra.me.meth = LOCATE_standard___string___Float___to_s;
2720 fra.me.has_broke = 0;
2721 fra.me.REG_size = 1;
2722 fra.me.nitni_local_ref_head = NULL;
2723 fra.me.REG[0] = NIT_NULL;
2724 fra.me.REG[0] = p0;
2725 /* ../lib/standard/string.nit:486 */
2726 REGB0 = TAG_Int(6);
2727 fra.me.REG[0] = CALL_standard___string___Float___to_precision(fra.me.REG[0])(fra.me.REG[0], REGB0);
2728 goto label1;
2729 label1: while(0);
2730 stack_frame_head = fra.me.prev;
2731 return fra.me.REG[0];
2732 }
2733 val_t standard___string___Float___to_precision(val_t p0, val_t p1){
2734 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2735 val_t REGB0;
2736 val_t REGB1;
2737 val_t REGB2;
2738 val_t REGB3;
2739 val_t tmp;
2740 static val_t once_value_3; /* Once value */
2741 static val_t once_value_4; /* Once value */
2742 static val_t once_value_5; /* Once value */
2743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2744 fra.me.file = LOCATE_standard___string;
2745 fra.me.line = 488;
2746 fra.me.meth = LOCATE_standard___string___Float___to_precision;
2747 fra.me.has_broke = 0;
2748 fra.me.REG_size = 4;
2749 fra.me.nitni_local_ref_head = NULL;
2750 fra.me.REG[0] = NIT_NULL;
2751 fra.me.REG[1] = NIT_NULL;
2752 fra.me.REG[2] = NIT_NULL;
2753 fra.me.REG[3] = NIT_NULL;
2754 fra.me.REG[0] = p0;
2755 REGB0 = p1;
2756 /* ../lib/standard/string.nit:491 */
2757 REGB1 = TAG_Int(0);
2758 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2759 if (UNTAG_Bool(REGB2)) {
2760 } else {
2761 /* ../lib/standard/kernel.nit:227 */
2762 REGB1 = TAG_Bool((REGB0)==(REGB1));
2763 /* ../lib/standard/string.nit:491 */
2764 REGB2 = REGB1;
2765 }
2766 if (UNTAG_Bool(REGB2)) {
2767 /* ../lib/standard/kernel.nit:216 */
2768 REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
2769 /* ../lib/standard/string.nit:491 */
2770 fra.me.REG[1] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2771 goto label1;
2772 }
2773 /* ../lib/standard/kernel.nit:216 */
2774 REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
2775 /* ../lib/standard/string.nit:494 */
2776 fra.me.REG[2] = BOX_Float(1.0);
2777 /* ../lib/standard/string.nit:495 */
2778 while(1) {
2779 REGB1 = TAG_Int(0);
2780 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2781 if (UNTAG_Bool(REGB3)) {
2782 } else {
2783 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2784 }
2785 /* ../lib/standard/kernel.nit:234 */
2786 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
2787 /* ../lib/standard/string.nit:495 */
2788 if (UNTAG_Bool(REGB1)) {
2789 /* ../lib/standard/string.nit:496 */
2790 fra.me.REG[3] = BOX_Float(10.0);
2791 /* ../lib/standard/kernel.nit:213 */
2792 fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[2])*UNBOX_Float(fra.me.REG[3]));
2793 /* ../lib/standard/string.nit:496 */
2794 fra.me.REG[2] = fra.me.REG[3];
2795 /* ../lib/standard/string.nit:497 */
2796 REGB1 = TAG_Int(1);
2797 /* ../lib/standard/kernel.nit:237 */
2798 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
2799 /* ../lib/standard/string.nit:497 */
2800 REGB0 = REGB1;
2801 } else {
2802 /* ../lib/standard/string.nit:495 */
2803 goto label2;
2804 }
2805 }
2806 label2: while(0);
2807 /* ../lib/standard/kernel.nit:244 */
2808 fra.me.REG[3] = BOX_Float((float)UNTAG_Int(REGB2));
2809 /* ../lib/standard/kernel.nit:212 */
2810 fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[3]));
2811 /* ../lib/standard/kernel.nit:213 */
2812 fra.me.REG[2] = BOX_Float(UNBOX_Float(fra.me.REG[3])*UNBOX_Float(fra.me.REG[2]));
2813 /* ../lib/standard/kernel.nit:216 */
2814 REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[2]));
2815 /* ../lib/standard/string.nit:500 */
2816 REGB1 = TAG_Int(5);
2817 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2818 if (!once_value_3) {
2819 fra.me.REG[3] = BOX_NativeString("");
2820 REGB1 = TAG_Int(0);
2821 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2822 once_value_3 = fra.me.REG[3];
2823 register_static_object(&once_value_3);
2824 } else fra.me.REG[3] = once_value_3;
2825 fra.me.REG[3] = fra.me.REG[3];
2826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2827 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2829 if (!once_value_4) {
2830 fra.me.REG[3] = BOX_NativeString(".");
2831 REGB2 = TAG_Int(1);
2832 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
2833 once_value_4 = fra.me.REG[3];
2834 register_static_object(&once_value_4);
2835 } else fra.me.REG[3] = once_value_4;
2836 fra.me.REG[3] = fra.me.REG[3];
2837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2838 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2840 if (!once_value_5) {
2841 fra.me.REG[3] = BOX_NativeString("");
2842 REGB0 = TAG_Int(0);
2843 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2844 once_value_5 = fra.me.REG[3];
2845 register_static_object(&once_value_5);
2846 } else fra.me.REG[3] = once_value_5;
2847 fra.me.REG[3] = fra.me.REG[3];
2848 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2849 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2850 fra.me.REG[1] = fra.me.REG[2];
2851 goto label1;
2852 label1: while(0);
2853 stack_frame_head = fra.me.prev;
2854 return fra.me.REG[1];
2855 }
2856 val_t standard___string___Char___to_s(val_t p0){
2857 struct {struct stack_frame_t me;} fra;
2858 val_t REGB0;
2859 val_t REGB1;
2860 val_t tmp;
2861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2862 fra.me.file = LOCATE_standard___string;
2863 fra.me.line = 505;
2864 fra.me.meth = LOCATE_standard___string___Char___to_s;
2865 fra.me.has_broke = 0;
2866 fra.me.REG_size = 1;
2867 fra.me.nitni_local_ref_head = NULL;
2868 fra.me.REG[0] = NIT_NULL;
2869 REGB0 = p0;
2870 /* ../lib/standard/string.nit:507 */
2871 REGB1 = TAG_Int(1);
2872 fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
2873 /* ../lib/standard/string.nit:508 */
2874 REGB1 = TAG_Int(0);
2875 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
2876 /* ../lib/standard/string.nit:509 */
2877 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2878 goto label1;
2879 label1: while(0);
2880 stack_frame_head = fra.me.prev;
2881 return fra.me.REG[0];
2882 }
2883 val_t standard___string___Collection___to_s(val_t p0){
2884 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2885 val_t tmp;
2886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2887 fra.me.file = LOCATE_standard___string;
2888 fra.me.line = 514;
2889 fra.me.meth = LOCATE_standard___string___Collection___to_s;
2890 fra.me.has_broke = 0;
2891 fra.me.REG_size = 2;
2892 fra.me.nitni_local_ref_head = NULL;
2893 fra.me.REG[0] = NIT_NULL;
2894 fra.me.REG[1] = NIT_NULL;
2895 fra.me.REG[0] = p0;
2896 /* ../lib/standard/string.nit:517 */
2897 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
2898 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___Collection___to_s_1));
2899 /* ../lib/standard/string.nit:519 */
2900 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2901 goto label2;
2902 label2: while(0);
2903 stack_frame_head = fra.me.prev;
2904 return fra.me.REG[1];
2905 }
2906 void OC_standard___string___Collection___to_s_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2907 struct {struct stack_frame_t me;} fra;
2908 val_t REGB0;
2909 val_t REGB1;
2910 fun_t CREG[1];
2911 val_t tmp;
2912 /* ../lib/standard/string.nit:518 */
2913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2914 fra.me.file = LOCATE_standard___string;
2915 fra.me.line = 0;
2916 fra.me.meth = LOCATE_standard___string___Collection___to_s;
2917 fra.me.has_broke = 0;
2918 fra.me.REG_size = 1;
2919 fra.me.nitni_local_ref_head = NULL;
2920 fra.me.REG[0] = NIT_NULL;
2921 fra.me.closure_ctx = closctx_param;
2922 fra.me.closure_funs = CREG;
2923 fra.me.REG[0] = p0;
2924 CREG[0] = clos_fun0;
2925 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2926 if (UNTAG_Bool(REGB0)) {
2927 } else {
2928 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2929 if (UNTAG_Bool(REGB1)) {
2930 REGB1 = TAG_Bool(false);
2931 REGB0 = REGB1;
2932 } else {
2933 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2934 REGB0 = REGB1;
2935 }
2936 }
2937 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2938 if (UNTAG_Bool(REGB0)) {
2939 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2940 if (UNTAG_Bool(REGB0)) {
2941 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 518);
2942 }
2943 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2944 CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
2945 }
2946 stack_frame_head = fra.me.prev;
2947 return;
2948 }
2949 val_t standard___string___Collection___join(val_t p0, val_t p1){
2950 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2951 val_t REGB0;
2952 val_t REGB1;
2953 val_t tmp;
2954 static val_t once_value_1; /* Once value */
2955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2956 fra.me.file = LOCATE_standard___string;
2957 fra.me.line = 522;
2958 fra.me.meth = LOCATE_standard___string___Collection___join;
2959 fra.me.has_broke = 0;
2960 fra.me.REG_size = 6;
2961 fra.me.nitni_local_ref_head = NULL;
2962 fra.me.REG[0] = NIT_NULL;
2963 fra.me.REG[1] = NIT_NULL;
2964 fra.me.REG[2] = NIT_NULL;
2965 fra.me.REG[3] = NIT_NULL;
2966 fra.me.REG[4] = NIT_NULL;
2967 fra.me.REG[5] = NIT_NULL;
2968 fra.me.REG[0] = p0;
2969 fra.me.REG[1] = p1;
2970 /* ../lib/standard/string.nit:525 */
2971 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
2972 if (UNTAG_Bool(REGB0)) {
2973 if (!once_value_1) {
2974 fra.me.REG[2] = BOX_NativeString("");
2975 REGB0 = TAG_Int(0);
2976 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2977 once_value_1 = fra.me.REG[2];
2978 register_static_object(&once_value_1);
2979 } else fra.me.REG[2] = once_value_1;
2980 fra.me.REG[2] = fra.me.REG[2];
2981 goto label2;
2982 }
2983 /* ../lib/standard/string.nit:527 */
2984 fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
2985 /* ../lib/standard/string.nit:530 */
2986 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2987 /* ../lib/standard/string.nit:531 */
2988 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2989 /* ../lib/standard/string.nit:532 */
2990 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2991 if (UNTAG_Bool(REGB0)) {
2992 } else {
2993 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2994 if (UNTAG_Bool(REGB1)) {
2995 REGB1 = TAG_Bool(false);
2996 REGB0 = REGB1;
2997 } else {
2998 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2999 REGB0 = REGB1;
3000 }
3001 }
3002 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3003 if (UNTAG_Bool(REGB0)) {
3004 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3005 if (UNTAG_Bool(REGB0)) {
3006 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 532);
3007 }
3008 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3009 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
3010 }
3011 /* ../lib/standard/string.nit:535 */
3012 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
3013 /* ../lib/standard/string.nit:536 */
3014 while(1) {
3015 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
3016 if (UNTAG_Bool(REGB0)) {
3017 /* ../lib/standard/string.nit:537 */
3018 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3019 /* ../lib/standard/string.nit:538 */
3020 fra.me.REG[5] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
3021 fra.me.REG[4] = fra.me.REG[5];
3022 /* ../lib/standard/string.nit:539 */
3023 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3024 if (UNTAG_Bool(REGB0)) {
3025 } else {
3026 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3027 if (UNTAG_Bool(REGB1)) {
3028 REGB1 = TAG_Bool(false);
3029 REGB0 = REGB1;
3030 } else {
3031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3032 REGB0 = REGB1;
3033 }
3034 }
3035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3036 if (UNTAG_Bool(REGB0)) {
3037 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3038 if (UNTAG_Bool(REGB0)) {
3039 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 539);
3040 }
3041 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3042 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
3043 }
3044 /* ../lib/standard/string.nit:540 */
3045 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
3046 } else {
3047 /* ../lib/standard/string.nit:536 */
3048 goto label3;
3049 }
3050 }
3051 label3: while(0);
3052 /* ../lib/standard/string.nit:542 */
3053 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3054 fra.me.REG[2] = fra.me.REG[3];
3055 goto label2;
3056 label2: while(0);
3057 stack_frame_head = fra.me.prev;
3058 return fra.me.REG[2];
3059 }
3060 val_t standard___string___Array___to_s(val_t p0){
3061 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3062 val_t REGB0;
3063 val_t REGB1;
3064 val_t REGB2;
3065 val_t REGB3;
3066 val_t REGB4;
3067 val_t tmp;
3068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3069 fra.me.file = LOCATE_standard___string;
3070 fra.me.line = 547;
3071 fra.me.meth = LOCATE_standard___string___Array___to_s;
3072 fra.me.has_broke = 0;
3073 fra.me.REG_size = 3;
3074 fra.me.nitni_local_ref_head = NULL;
3075 fra.me.REG[0] = NIT_NULL;
3076 fra.me.REG[1] = NIT_NULL;
3077 fra.me.REG[2] = NIT_NULL;
3078 fra.me.REG[0] = p0;
3079 /* ../lib/standard/string.nit:550 */
3080 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
3081 /* ../lib/standard/string.nit:551 */
3082 REGB0 = TAG_Int(0);
3083 /* ../lib/standard/collection/array.nit:24 */
3084 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3085 if (UNTAG_Bool(REGB1)) {
3086 } else {
3087 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3088 }
3089 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3090 /* ../lib/standard/string.nit:553 */
3091 while(1) {
3092 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3093 if (UNTAG_Bool(REGB2)) {
3094 } else {
3095 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3096 }
3097 /* ../lib/standard/kernel.nit:232 */
3098 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3099 /* ../lib/standard/string.nit:553 */
3100 if (UNTAG_Bool(REGB2)) {
3101 /* ../lib/standard/collection/array.nit:278 */
3102 fra.me.REG[2] = fra.me.REG[0];
3103 REGB2 = REGB0;
3104 /* ../lib/standard/collection/array.nit:280 */
3105 REGB3 = TAG_Int(0);
3106 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
3107 if (UNTAG_Bool(REGB4)) {
3108 } else {
3109 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3110 }
3111 /* ../lib/standard/kernel.nit:233 */
3112 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
3113 /* ../lib/standard/collection/array.nit:280 */
3114 if (UNTAG_Bool(REGB3)) {
3115 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
3116 if (UNTAG_Bool(REGB3)) {
3117 } else {
3118 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
3119 }
3120 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
3121 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
3122 if (UNTAG_Bool(REGB4)) {
3123 } else {
3124 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3125 }
3126 /* ../lib/standard/kernel.nit:232 */
3127 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
3128 } else {
3129 /* ../lib/standard/collection/array.nit:280 */
3130 REGB4 = TAG_Bool(false);
3131 REGB3 = REGB4;
3132 }
3133 if (UNTAG_Bool(REGB3)) {
3134 } else {
3135 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
3136 }
3137 /* ../lib/standard/collection/array.nit:281 */
3138 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
3139 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3140 if (UNTAG_Bool(REGB3)) {
3141 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
3142 }
3143 /* ../lib/standard/collection/array.nit:718 */
3144 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
3145 /* ../lib/standard/collection/array.nit:281 */
3146 goto label1;
3147 label1: while(0);
3148 /* ../lib/standard/string.nit:555 */
3149 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3150 if (UNTAG_Bool(REGB2)) {
3151 } else {
3152 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3153 if (UNTAG_Bool(REGB3)) {
3154 REGB3 = TAG_Bool(false);
3155 REGB2 = REGB3;
3156 } else {
3157 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3158 REGB2 = REGB3;
3159 }
3160 }
3161 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3162 if (UNTAG_Bool(REGB2)) {
3163 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3164 if (UNTAG_Bool(REGB2)) {
3165 nit_abort("Reciever is null", NULL, LOCATE_standard___string, 555);
3166 }
3167 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3168 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3169 }
3170 /* ../lib/standard/string.nit:556 */
3171 REGB2 = TAG_Int(1);
3172 /* ../lib/standard/kernel.nit:235 */
3173 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3174 /* ../lib/standard/string.nit:556 */
3175 REGB0 = REGB2;
3176 } else {
3177 /* ../lib/standard/string.nit:553 */
3178 goto label2;
3179 }
3180 }
3181 label2: while(0);
3182 /* ../lib/standard/string.nit:558 */
3183 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3184 goto label3;
3185 label3: while(0);
3186 stack_frame_head = fra.me.prev;
3187 return fra.me.REG[1];
3188 }
3189 val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
3190 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3191 val_t REGB0;
3192 val_t REGB1;
3193 val_t tmp;
3194 static val_t once_value_1; /* Once value */
3195 static val_t once_value_3; /* Once value */
3196 static val_t once_value_4; /* Once value */
3197 static val_t once_value_5; /* Once value */
3198 static val_t once_value_6; /* Once value */
3199 static val_t once_value_7; /* Once value */
3200 static val_t once_value_8; /* Once value */
3201 static val_t once_value_9; /* Once value */
3202 static val_t once_value_10; /* Once value */
3203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3204 fra.me.file = LOCATE_standard___string;
3205 fra.me.line = 563;
3206 fra.me.meth = LOCATE_standard___string___Map___join;
3207 fra.me.has_broke = 0;
3208 fra.me.REG_size = 9;
3209 fra.me.nitni_local_ref_head = NULL;
3210 fra.me.REG[0] = NIT_NULL;
3211 fra.me.REG[1] = NIT_NULL;
3212 fra.me.REG[2] = NIT_NULL;
3213 fra.me.REG[3] = NIT_NULL;
3214 fra.me.REG[4] = NIT_NULL;
3215 fra.me.REG[5] = NIT_NULL;
3216 fra.me.REG[6] = NIT_NULL;
3217 fra.me.REG[7] = NIT_NULL;
3218 fra.me.REG[8] = NIT_NULL;
3219 fra.me.REG[0] = p0;
3220 fra.me.REG[1] = p1;
3221 fra.me.REG[2] = p2;
3222 /* ../lib/standard/string.nit:566 */
3223 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
3224 if (UNTAG_Bool(REGB0)) {
3225 if (!once_value_1) {
3226 fra.me.REG[3] = BOX_NativeString("");
3227 REGB0 = TAG_Int(0);
3228 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3229 once_value_1 = fra.me.REG[3];
3230 register_static_object(&once_value_1);
3231 } else fra.me.REG[3] = once_value_1;
3232 fra.me.REG[3] = fra.me.REG[3];
3233 goto label2;
3234 }
3235 /* ../lib/standard/string.nit:568 */
3236 fra.me.REG[4] = NEW_Buffer_standard___string___Buffer___init();
3237 /* ../lib/standard/string.nit:571 */
3238 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
3239 /* ../lib/standard/string.nit:572 */
3240 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
3241 /* ../lib/standard/string.nit:573 */
3242 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
3243 /* ../lib/standard/string.nit:574 */
3244 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3245 if (UNTAG_Bool(REGB0)) {
3246 } else {
3247 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3248 if (UNTAG_Bool(REGB1)) {
3249 REGB1 = TAG_Bool(false);
3250 REGB0 = REGB1;
3251 } else {
3252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3253 REGB0 = REGB1;
3254 }
3255 }
3256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3257 if (UNTAG_Bool(REGB0)) {
3258 REGB0 = TAG_Int(7);
3259 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3260 if (!once_value_3) {
3261 fra.me.REG[8] = BOX_NativeString("");
3262 REGB0 = TAG_Int(0);
3263 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3264 once_value_3 = fra.me.REG[8];
3265 register_static_object(&once_value_3);
3266 } else fra.me.REG[8] = once_value_3;
3267 fra.me.REG[8] = fra.me.REG[8];
3268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3269 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3271 if (!once_value_4) {
3272 fra.me.REG[8] = BOX_NativeString("");
3273 REGB0 = TAG_Int(0);
3274 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3275 once_value_4 = fra.me.REG[8];
3276 register_static_object(&once_value_4);
3277 } else fra.me.REG[8] = once_value_4;
3278 fra.me.REG[8] = fra.me.REG[8];
3279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3281 if (!once_value_5) {
3282 fra.me.REG[8] = BOX_NativeString("");
3283 REGB0 = TAG_Int(0);
3284 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3285 once_value_5 = fra.me.REG[8];
3286 register_static_object(&once_value_5);
3287 } else fra.me.REG[8] = once_value_5;
3288 fra.me.REG[8] = fra.me.REG[8];
3289 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3290 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3292 if (!once_value_6) {
3293 fra.me.REG[8] = BOX_NativeString("");
3294 REGB0 = TAG_Int(0);
3295 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3296 once_value_6 = fra.me.REG[8];
3297 register_static_object(&once_value_6);
3298 } else fra.me.REG[8] = once_value_6;
3299 fra.me.REG[8] = fra.me.REG[8];
3300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3301 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3302 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3303 }
3304 /* ../lib/standard/string.nit:577 */
3305 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
3306 /* ../lib/standard/string.nit:578 */
3307 while(1) {
3308 REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
3309 if (UNTAG_Bool(REGB0)) {
3310 /* ../lib/standard/string.nit:579 */
3311 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
3312 /* ../lib/standard/string.nit:580 */
3313 fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
3314 fra.me.REG[5] = fra.me.REG[7];
3315 /* ../lib/standard/string.nit:581 */
3316 fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
3317 fra.me.REG[6] = fra.me.REG[7];
3318 /* ../lib/standard/string.nit:582 */
3319 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3320 if (UNTAG_Bool(REGB0)) {
3321 } else {
3322 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3323 if (UNTAG_Bool(REGB1)) {
3324 REGB1 = TAG_Bool(false);
3325 REGB0 = REGB1;
3326 } else {
3327 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3328 REGB0 = REGB1;
3329 }
3330 }
3331 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3332 if (UNTAG_Bool(REGB0)) {
3333 REGB0 = TAG_Int(7);
3334 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3335 if (!once_value_7) {
3336 fra.me.REG[8] = BOX_NativeString("");
3337 REGB0 = TAG_Int(0);
3338 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3339 once_value_7 = fra.me.REG[8];
3340 register_static_object(&once_value_7);
3341 } else fra.me.REG[8] = once_value_7;
3342 fra.me.REG[8] = fra.me.REG[8];
3343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3344 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3346 if (!once_value_8) {
3347 fra.me.REG[8] = BOX_NativeString("");
3348 REGB0 = TAG_Int(0);
3349 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3350 once_value_8 = fra.me.REG[8];
3351 register_static_object(&once_value_8);
3352 } else fra.me.REG[8] = once_value_8;
3353 fra.me.REG[8] = fra.me.REG[8];
3354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3356 if (!once_value_9) {
3357 fra.me.REG[8] = BOX_NativeString("");
3358 REGB0 = TAG_Int(0);
3359 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3360 once_value_9 = fra.me.REG[8];
3361 register_static_object(&once_value_9);
3362 } else fra.me.REG[8] = once_value_9;
3363 fra.me.REG[8] = fra.me.REG[8];
3364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3365 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3367 if (!once_value_10) {
3368 fra.me.REG[8] = BOX_NativeString("");
3369 REGB0 = TAG_Int(0);
3370 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3371 once_value_10 = fra.me.REG[8];
3372 register_static_object(&once_value_10);
3373 } else fra.me.REG[8] = once_value_10;
3374 fra.me.REG[8] = fra.me.REG[8];
3375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3376 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3377 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3378 }
3379 /* ../lib/standard/string.nit:583 */
3380 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
3381 } else {
3382 /* ../lib/standard/string.nit:578 */
3383 goto label11;
3384 }
3385 }
3386 label11: while(0);
3387 /* ../lib/standard/string.nit:585 */
3388 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3389 fra.me.REG[3] = fra.me.REG[4];
3390 goto label2;
3391 label2: while(0);
3392 stack_frame_head = fra.me.prev;
3393 return fra.me.REG[3];
3394 }
3395 val_t standard___string___NativeString_____bra(val_t p0, val_t p1){
3396 struct {struct stack_frame_t me;} fra;
3397 val_t REGB0;
3398 val_t tmp;
3399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3400 fra.me.file = LOCATE_standard___string;
3401 fra.me.line = 595;
3402 fra.me.meth = LOCATE_standard___string___NativeString_____bra;
3403 fra.me.has_broke = 0;
3404 fra.me.REG_size = 1;
3405 fra.me.nitni_local_ref_head = NULL;
3406 fra.me.REG[0] = NIT_NULL;
3407 fra.me.REG[0] = p0;
3408 REGB0 = p1;
3409 /* ../lib/standard/string.nit:595 */
3410 REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
3411 stack_frame_head = fra.me.prev;
3412 return REGB0;
3413 }
3414 void standard___string___NativeString_____braeq(val_t p0, val_t p1, val_t p2){
3415 struct {struct stack_frame_t me;} fra;
3416 val_t REGB0;
3417 val_t REGB1;
3418 val_t tmp;
3419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3420 fra.me.file = LOCATE_standard___string;
3421 fra.me.line = 596;
3422 fra.me.meth = LOCATE_standard___string___NativeString_____braeq;
3423 fra.me.has_broke = 0;
3424 fra.me.REG_size = 1;
3425 fra.me.nitni_local_ref_head = NULL;
3426 fra.me.REG[0] = NIT_NULL;
3427 fra.me.REG[0] = p0;
3428 REGB0 = p1;
3429 REGB1 = p2;
3430 /* ../lib/standard/string.nit:596 */
3431 UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
3432 stack_frame_head = fra.me.prev;
3433 return;
3434 }
3435 void standard___string___NativeString___copy_to(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
3436 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3437 val_t REGB0;
3438 val_t REGB1;
3439 val_t REGB2;
3440 val_t tmp;
3441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3442 fra.me.file = LOCATE_standard___string;
3443 fra.me.line = 597;
3444 fra.me.meth = LOCATE_standard___string___NativeString___copy_to;
3445 fra.me.has_broke = 0;
3446 fra.me.REG_size = 2;
3447 fra.me.nitni_local_ref_head = NULL;
3448 fra.me.REG[0] = NIT_NULL;
3449 fra.me.REG[1] = NIT_NULL;
3450 fra.me.REG[0] = p0;
3451 fra.me.REG[1] = p1;
3452 REGB0 = p2;
3453 REGB1 = p3;
3454 REGB2 = p4;
3455 /* ../lib/standard/string.nit:597 */
3456 (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
3457 stack_frame_head = fra.me.prev;
3458 return;
3459 }
3460 val_t standard___string___NativeString___cstring_length(val_t p0){
3461 struct {struct stack_frame_t me;} fra;
3462 val_t REGB0;
3463 val_t REGB1;
3464 val_t REGB2;
3465 val_t REGB3;
3466 val_t tmp;
3467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3468 fra.me.file = LOCATE_standard___string;
3469 fra.me.line = 599;
3470 fra.me.meth = LOCATE_standard___string___NativeString___cstring_length;
3471 fra.me.has_broke = 0;
3472 fra.me.REG_size = 1;
3473 fra.me.nitni_local_ref_head = NULL;
3474 fra.me.REG[0] = NIT_NULL;
3475 fra.me.REG[0] = p0;
3476 /* ../lib/standard/string.nit:602 */
3477 REGB0 = TAG_Int(0);
3478 /* ../lib/standard/string.nit:603 */
3479 while(1) {
3480 /* ../lib/standard/string.nit:595 */
3481 REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
3482 /* ../lib/standard/string.nit:603 */
3483 REGB2 = TAG_Char('\0');
3484 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
3485 if (UNTAG_Bool(REGB3)) {
3486 } else {
3487 /* ../lib/standard/kernel.nit:378 */
3488 REGB2 = TAG_Bool((REGB1)==(REGB2));
3489 /* ../lib/standard/string.nit:603 */
3490 REGB3 = REGB2;
3491 }
3492 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3493 if (UNTAG_Bool(REGB3)) {
3494 REGB3 = TAG_Int(1);
3495 /* ../lib/standard/kernel.nit:235 */
3496 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
3497 /* ../lib/standard/string.nit:603 */
3498 REGB0 = REGB3;
3499 } else {
3500 goto label1;
3501 }
3502 }
3503 label1: while(0);
3504 /* ../lib/standard/string.nit:604 */
3505 goto label2;
3506 label2: while(0);
3507 stack_frame_head = fra.me.prev;
3508 return REGB0;
3509 }
3510 val_t standard___string___NativeString___atoi(val_t p0){
3511 struct {struct stack_frame_t me;} fra;
3512 val_t REGB0;
3513 val_t tmp;
3514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3515 fra.me.file = LOCATE_standard___string;
3516 fra.me.line = 606;
3517 fra.me.meth = LOCATE_standard___string___NativeString___atoi;
3518 fra.me.has_broke = 0;
3519 fra.me.REG_size = 1;
3520 fra.me.nitni_local_ref_head = NULL;
3521 fra.me.REG[0] = NIT_NULL;
3522 fra.me.REG[0] = p0;
3523 /* ../lib/standard/string.nit:606 */
3524 REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
3525 stack_frame_head = fra.me.prev;
3526 return REGB0;
3527 }
3528 void standard___string___NativeString___init(val_t p0, int* init_table){
3529 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___NativeString].i;
3530 struct {struct stack_frame_t me;} fra;
3531 val_t tmp;
3532 if (init_table[itpos5]) return;
3533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3534 fra.me.file = LOCATE_standard___string;
3535 fra.me.line = 0;
3536 fra.me.meth = LOCATE_standard___string___NativeString___init;
3537 fra.me.has_broke = 0;
3538 fra.me.REG_size = 0;
3539 fra.me.nitni_local_ref_head = NULL;
3540 stack_frame_head = fra.me.prev;
3541 init_table[itpos5] = 1;
3542 return;
3543 }
3544 val_t standard___string___StringCapable___calloc_string(val_t p0, val_t p1){
3545 struct {struct stack_frame_t me;} fra;
3546 val_t REGB0;
3547 val_t tmp;
3548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3549 fra.me.file = LOCATE_standard___string;
3550 fra.me.line = 611;
3551 fra.me.meth = LOCATE_standard___string___StringCapable___calloc_string;
3552 fra.me.has_broke = 0;
3553 fra.me.REG_size = 1;
3554 fra.me.nitni_local_ref_head = NULL;
3555 fra.me.REG[0] = NIT_NULL;
3556 fra.me.REG[0] = p0;
3557 REGB0 = p1;
3558 /* ../lib/standard/string.nit:611 */
3559 fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
3560 stack_frame_head = fra.me.prev;
3561 return fra.me.REG[0];
3562 }
3563 val_t standard___string___Sys___args(val_t p0){
3564 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3565 val_t REGB0;
3566 val_t REGB1;
3567 val_t tmp;
3568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3569 fra.me.file = LOCATE_standard___string;
3570 fra.me.line = 617;
3571 fra.me.meth = LOCATE_standard___string___Sys___args;
3572 fra.me.has_broke = 0;
3573 fra.me.REG_size = 3;
3574 fra.me.nitni_local_ref_head = NULL;
3575 fra.me.REG[0] = NIT_NULL;
3576 fra.me.REG[1] = NIT_NULL;
3577 fra.me.REG[2] = NIT_NULL;
3578 fra.me.REG[0] = p0;
3579 /* ../lib/standard/string.nit:617 */
3580 fra.me.REG[1] = fra.me.REG[0];
3581 /* ../lib/standard/string.nit:619 */
3582 fra.me.REG[2] = ATTR_standard___string___Sys____args_cache(fra.me.REG[1]);
3583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3584 if (UNTAG_Bool(REGB0)) {
3585 } else {
3586 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3587 if (UNTAG_Bool(REGB1)) {
3588 REGB1 = TAG_Bool(false);
3589 REGB0 = REGB1;
3590 } else {
3591 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3592 REGB0 = REGB1;
3593 }
3594 }
3595 if (UNTAG_Bool(REGB0)) {
3596 CALL_standard___string___Sys___init_args(fra.me.REG[1])(fra.me.REG[1]);
3597 }
3598 /* ../lib/standard/string.nit:620 */
3599 fra.me.REG[1] = ATTR_standard___string___Sys____args_cache(fra.me.REG[1]);
3600 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3601 if (UNTAG_Bool(REGB0)) {
3602 } else {
3603 nit_abort("Cast failed", NULL, LOCATE_standard___string, 620);
3604 }
3605 goto label1;
3606 label1: while(0);
3607 stack_frame_head = fra.me.prev;
3608 return fra.me.REG[1];
3609 }
3610 val_t standard___string___Sys___program_name(val_t p0){
3611 struct {struct stack_frame_t me;} fra;
3612 val_t REGB0;
3613 val_t tmp;
3614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3615 fra.me.file = LOCATE_standard___string;
3616 fra.me.line = 623;
3617 fra.me.meth = LOCATE_standard___string___Sys___program_name;
3618 fra.me.has_broke = 0;
3619 fra.me.REG_size = 1;
3620 fra.me.nitni_local_ref_head = NULL;
3621 fra.me.REG[0] = NIT_NULL;
3622 fra.me.REG[0] = p0;
3623 /* ../lib/standard/string.nit:626 */
3624 REGB0 = TAG_Int(0);
3625 fra.me.REG[0] = CALL_standard___string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB0);
3626 fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
3627 goto label1;
3628 label1: while(0);
3629 stack_frame_head = fra.me.prev;
3630 return fra.me.REG[0];
3631 }
3632 void standard___string___Sys___init_args(val_t p0){
3633 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3634 val_t REGB0;
3635 val_t REGB1;
3636 val_t REGB2;
3637 val_t tmp;
3638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3639 fra.me.file = LOCATE_standard___string;
3640 fra.me.line = 629;
3641 fra.me.meth = LOCATE_standard___string___Sys___init_args;
3642 fra.me.has_broke = 0;
3643 fra.me.REG_size = 3;
3644 fra.me.nitni_local_ref_head = NULL;
3645 fra.me.REG[0] = NIT_NULL;
3646 fra.me.REG[1] = NIT_NULL;
3647 fra.me.REG[2] = NIT_NULL;
3648 fra.me.REG[0] = p0;
3649 /* ../lib/standard/string.nit:632 */
3650 REGB0 = CALL_standard___string___Sys___native_argc(fra.me.REG[0])(fra.me.REG[0]);
3651 /* ../lib/standard/string.nit:633 */
3652 REGB1 = TAG_Int(0);
3653 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3654 /* ../lib/standard/string.nit:634 */
3655 REGB1 = TAG_Int(1);
3656 /* ../lib/standard/string.nit:635 */
3657 while(1) {
3658 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
3659 if (UNTAG_Bool(REGB2)) {
3660 } else {
3661 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3662 }
3663 /* ../lib/standard/kernel.nit:232 */
3664 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
3665 /* ../lib/standard/string.nit:635 */
3666 if (UNTAG_Bool(REGB2)) {
3667 /* ../lib/standard/string.nit:636 */
3668 REGB2 = TAG_Int(1);
3669 /* ../lib/standard/kernel.nit:237 */
3670 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
3671 /* ../lib/standard/string.nit:636 */
3672 fra.me.REG[2] = CALL_standard___string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB1);
3673 fra.me.REG[2] = NEW_String_standard___string___String___from_cstring(fra.me.REG[2]);
3674 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[2]);
3675 /* ../lib/standard/string.nit:637 */
3676 REGB2 = TAG_Int(1);
3677 /* ../lib/standard/kernel.nit:235 */
3678 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
3679 /* ../lib/standard/string.nit:637 */
3680 REGB1 = REGB2;
3681 } else {
3682 /* ../lib/standard/string.nit:635 */
3683 goto label1;
3684 }
3685 }
3686 label1: while(0);
3687 /* ../lib/standard/string.nit:639 */
3688 ATTR_standard___string___Sys____args_cache(fra.me.REG[0]) = fra.me.REG[1];
3689 stack_frame_head = fra.me.prev;
3690 return;
3691 }
3692 val_t standard___string___Sys___native_argc(val_t p0){
3693 struct {struct stack_frame_t me;} fra;
3694 val_t REGB0;
3695 val_t tmp;
3696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3697 fra.me.file = LOCATE_standard___string;
3698 fra.me.line = 642;
3699 fra.me.meth = LOCATE_standard___string___Sys___native_argc;
3700 fra.me.has_broke = 0;
3701 fra.me.REG_size = 1;
3702 fra.me.nitni_local_ref_head = NULL;
3703 fra.me.REG[0] = NIT_NULL;
3704 fra.me.REG[0] = p0;
3705 /* ../lib/standard/string.nit:642 */
3706 REGB0 = Sys_native_argc___out(fra.me.REG[0]);
3707 stack_frame_head = fra.me.prev;
3708 return REGB0;
3709 }
3710 val_t standard___string___Sys___native_argv(val_t p0, val_t p1){
3711 struct {struct stack_frame_t me;} fra;
3712 val_t REGB0;
3713 val_t tmp;
3714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3715 fra.me.file = LOCATE_standard___string;
3716 fra.me.line = 644;
3717 fra.me.meth = LOCATE_standard___string___Sys___native_argv;
3718 fra.me.has_broke = 0;
3719 fra.me.REG_size = 1;
3720 fra.me.nitni_local_ref_head = NULL;
3721 fra.me.REG[0] = NIT_NULL;
3722 fra.me.REG[0] = p0;
3723 REGB0 = p1;
3724 /* ../lib/standard/string.nit:644 */
3725 fra.me.REG[0] = Sys_native_argv___out(fra.me.REG[0], REGB0);
3726 stack_frame_head = fra.me.prev;
3727 return fra.me.REG[0];
3728 }