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