First NIT release and new clean mercurial repository
[nit.git] / c_src / string._sep.c
1 #include "string._sep.h"
2 val_t string___String_____bra(val_t self, val_t param0) {
3 struct trace_t trace = {NULL, "string::String::[] (bin/../lib/standard//string.nit:31,2--44)"};
4 val_t variable0;
5 val_t variable1;
6 trace.prev = tracehead; tracehead = &trace;
7 variable0 = param0;
8 variable1 = ATTR_string___String____items( self) /*String::_items*/;
9 variable1 = TAG_Char(UNBOX_NativeString(variable1)[UNTAG_Int( variable0 /*index*/)]);
10 goto return_label0;
11 return_label0: while(false);
12 tracehead = trace.prev;
13 return variable1;
14 }
15 void string___String_____braeq(val_t self, val_t param0, val_t param1) {
16 struct trace_t trace = {NULL, "string::String::[]= (bin/../lib/standard//string.nit:33,2--40:22)"};
17 val_t variable0;
18 val_t variable1;
19 val_t variable2;
20 val_t variable3;
21 trace.prev = tracehead; tracehead = &trace;
22 variable0 = param0;
23 variable1 = param1;
24 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
25 variable2 = TAG_Bool(( variable0 /*index*/)==(variable2));
26 if (UNTAG_Bool(variable2)) { /*if*/
27 ((string___String___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self, variable1 /*item*/) /*String::add*/;
28 goto return_label1;
29 }
30 variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0)));
31 variable3 = variable2;
32 if (UNTAG_Bool(variable3)) { /* and */
33 variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
34 variable3 = TAG_Bool(UNTAG_Int( variable0 /*index*/)<UNTAG_Int(variable3));
35 }
36 variable2 = variable3;
37 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:39,3--38\n"); nit_exit(1);}
38 variable2 = ATTR_string___String____items( self) /*String::_items*/;
39 UNBOX_NativeString(variable2)[UNTAG_Int( variable0 /*index*/)]=UNTAG_Char( variable1 /*item*/);
40 return_label1: while(false);
41 tracehead = trace.prev;
42 return;
43 }
44 void string___String___add(val_t self, val_t param0) {
45 struct trace_t trace = {NULL, "string::String::add (bin/../lib/standard//string.nit:43,2--47:14)"};
46 val_t variable0;
47 val_t variable1;
48 val_t variable2;
49 trace.prev = tracehead; tracehead = &trace;
50 variable0 = param0;
51 variable1 = ATTR_string___String____capacity( self) /*String::_capacity*/;
52 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
53 variable1 = TAG_Bool(UNTAG_Int(variable1)<=UNTAG_Int(variable2));
54 if (UNTAG_Bool(variable1)) { /*if*/
55 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
56 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(5)));
57 ((string___String___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable1) /*String::enlarge*/;
58 }
59 variable1 = ATTR_string___String____items( self) /*String::_items*/;
60 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
61 UNBOX_NativeString(variable1)[UNTAG_Int(variable2)]=UNTAG_Char( variable0 /*c*/);
62 ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)+UNTAG_Int( TAG_Int(1)));
63 tracehead = trace.prev;
64 return;
65 }
66 void string___String___enlarge(val_t self, val_t param0) {
67 struct trace_t trace = {NULL, "string::String::enlarge (bin/../lib/standard//string.nit:50,2--58:15)"};
68 val_t variable0;
69 val_t variable1;
70 val_t variable2;
71 val_t variable3;
72 val_t variable4;
73 trace.prev = tracehead; tracehead = &trace;
74 variable0 = param0;
75 variable2 = ATTR_string___String____capacity( self) /*String::_capacity*/;
76 variable1 = variable2;
77 variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<=UNTAG_Int( variable1 /*c*/));
78 if (UNTAG_Bool(variable2)) { /*if*/
79 goto return_label3;
80 }
81 while (true) { /*while*/
82 variable2 = TAG_Bool(UNTAG_Int( variable1 /*c*/)<=UNTAG_Int( variable0 /*cap*/));
83 if (!UNTAG_Bool(variable2)) break; /* while*/
84 variable2 = TAG_Int(UNTAG_Int( variable1 /*c*/)*UNTAG_Int( TAG_Int(2)));
85 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(2)));
86 variable1 = variable2 /*c=*/;
87 continue_4: while(0);
88 }
89 break_4: while(0);
90 variable3 = BOX_NativeString((char*)malloc((UNTAG_Int( variable1 /*c*/) * sizeof(char))));
91 variable2 = variable3;
92 variable3 = ATTR_string___String____items( self) /*String::_items*/;
93 variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
94 (void)memcpy(UNBOX_NativeString( variable2 /*a*/)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable3)+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable4));
95 ATTR_string___String____items( self) /*String::_items*/ = variable2 /*a*/;
96 ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1 /*c*/;
97 return_label3: while(false);
98 tracehead = trace.prev;
99 return;
100 }
101 void string___String___append(val_t self, val_t param0) {
102 struct trace_t trace = {NULL, "string::String::append (bin/../lib/standard//string.nit:61,2--69:8)"};
103 val_t variable0;
104 val_t variable1;
105 val_t variable2;
106 val_t variable3;
107 val_t variable4;
108 trace.prev = tracehead; tracehead = &trace;
109 variable0 = param0;
110 variable1 = TAG_Bool(( variable0 /*s*/==NIT_NULL) || VAL_ISA( variable0 /*s*/, COLOR_String, ID_String)) /*cast String*/;
111 if (UNTAG_Bool(variable1)) { /*if*/
112 variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
113 variable1 = variable2;
114 variable2 = ATTR_string___String____capacity( self) /*String::_capacity*/;
115 variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
116 variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( variable1 /*sl*/));
117 variable2 = TAG_Bool(UNTAG_Int(variable2)<UNTAG_Int(variable3));
118 if (UNTAG_Bool(variable2)) { /*if*/
119 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
120 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( variable1 /*sl*/));
121 ((string___String___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable2) /*String::enlarge*/;
122 }
123 variable2 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/;
124 variable3 = ATTR_string___String____items( self) /*String::_items*/;
125 variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
126 (void)memcpy(UNBOX_NativeString(variable3)+UNTAG_Int(variable4), UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNTAG_Int( variable1 /*sl*/));
127 ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)+UNTAG_Int( variable1 /*sl*/));
128 } else { /*if*/
129 ((string___String___append_t)CALL( self,COLOR_SUPER_string___String___append))( self, param0) /*super String::append*/;
130 }
131 tracehead = trace.prev;
132 return;
133 }
134 val_t string___String_____plus(val_t self, val_t param0) {
135 struct trace_t trace = {NULL, "string::String::+ (bin/../lib/standard//string.nit:73,2--79:10)"};
136 val_t variable0;
137 val_t variable1;
138 val_t variable2;
139 val_t variable3;
140 trace.prev = tracehead; tracehead = &trace;
141 variable0 = param0;
142 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
143 variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
144 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int(variable3));
145 variable3 = NEW_string___String___with_capacity(variable2); /*new String*/
146 variable2 = variable3;
147 variable1 = variable2;
148 ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, self) /*String::append*/;
149 ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, variable0 /*s*/) /*String::append*/;
150 variable1 = variable1 /*r*/;
151 goto return_label6;
152 return_label6: while(false);
153 tracehead = trace.prev;
154 return variable1;
155 }
156 val_t string___String_____star(val_t self, val_t param0) {
157 struct trace_t trace = {NULL, "string::String::* (bin/../lib/standard//string.nit:82,2--91:10)"};
158 val_t variable0;
159 val_t variable1;
160 val_t variable2;
161 val_t variable3;
162 trace.prev = tracehead; tracehead = &trace;
163 variable0 = param0;
164 variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
165 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:85,3--15\n"); nit_exit(1);}
166 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
167 variable2 = TAG_Int(UNTAG_Int(variable2)*UNTAG_Int( variable0 /*i*/));
168 variable3 = NEW_string___String___with_capacity(variable2); /*new String*/
169 variable2 = variable3;
170 variable1 = variable2;
171 while (true) { /*while*/
172 variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
173 if (!UNTAG_Bool(variable2)) break; /* while*/
174 ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, self) /*String::append*/;
175 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
176 continue_8: while(0);
177 }
178 break_8: while(0);
179 variable1 = variable1 /*r*/;
180 goto return_label7;
181 return_label7: while(false);
182 tracehead = trace.prev;
183 return variable1;
184 }
185 val_t string___String___to_s(val_t self) {
186 struct trace_t trace = {NULL, "string::String::to_s (bin/../lib/standard//string.nit:94,2--95:55)"};
187 val_t variable0;
188 trace.prev = tracehead; tracehead = &trace;
189 variable0 = NEW_string___String___from( self); /*new String*/
190 goto return_label9;
191 return_label9: while(false);
192 tracehead = trace.prev;
193 return variable0;
194 }
195 val_t string___String___to_i(val_t self) {
196 struct trace_t trace = {NULL, "string::String::to_i (bin/../lib/standard//string.nit:97,2--101:24)"};
197 val_t variable0;
198 trace.prev = tracehead; tracehead = &trace;
199 variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
200 variable0 = TAG_Int(atoi(UNBOX_NativeString(variable0)));
201 goto return_label10;
202 return_label10: while(false);
203 tracehead = trace.prev;
204 return variable0;
205 }
206 val_t string___String___to_hex(val_t self) {
207 struct trace_t trace = {NULL, "string::String::to_hex (bin/../lib/standard//string.nit:104,2--105:35)"};
208 val_t variable0;
209 trace.prev = tracehead; tracehead = &trace;
210 variable0 = ((string___String___a_to_t)CALL( self,COLOR_string___String___a_to))( self, TAG_Int(16)) /*String::a_to*/;
211 goto return_label11;
212 return_label11: while(false);
213 tracehead = trace.prev;
214 return variable0;
215 }
216 val_t string___String___a_to(val_t self, val_t param0) {
217 struct trace_t trace = {NULL, "string::String::a_to (bin/../lib/standard//string.nit:107,2--131:11)"};
218 val_t variable0;
219 val_t variable1;
220 val_t variable2;
221 val_t variable3;
222 val_t variable4;
223 val_t variable5;
224 val_t variable6;
225 trace.prev = tracehead; tracehead = &trace;
226 variable0 = param0;
227 variable1 = TAG_Int(0);
228 variable2 = TAG_Bool(false);
229 variable3 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
230 while (true) { /*for*/
231 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
232 if (!UNTAG_Bool(variable4)) break; /*for*/
233 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
234 variable6 = ((kernel___Char___to_i_t)CALL( variable4 /*c*/,COLOR_kernel___Char___to_i))( variable4 /*c*/) /*Char::to_i*/;
235 variable5 = variable6;
236 variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)>UNTAG_Int( variable0 /*base*/));
237 if (UNTAG_Bool(variable6)) { /*if*/
238 if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/
239 variable6 = TAG_Int(-UNTAG_Int( variable1 /*i*/));
240 variable1 = variable6;
241 goto return_label12;
242 } else { /*if*/
243 variable1 = variable1 /*i*/;
244 goto return_label12;
245 }
246 } else { /*if*/
247 variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)<UNTAG_Int( TAG_Int(0)));
248 if (UNTAG_Bool(variable6)) { /*if*/
249 variable2 = TAG_Bool(true) /*neg=*/;
250 } else { /*if*/
251 variable6 = TAG_Int(UNTAG_Int( variable1 /*i*/)*UNTAG_Int( variable0 /*base*/));
252 variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( variable5 /*v*/));
253 variable1 = variable6 /*i=*/;
254 }
255 }
256 continue_13: while(0);
257 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
258 }
259 break_13: while(0);
260 if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/
261 variable3 = TAG_Int(-UNTAG_Int( variable1 /*i*/));
262 variable1 = variable3;
263 goto return_label12;
264 } else { /*if*/
265 variable1 = variable1 /*i*/;
266 goto return_label12;
267 }
268 return_label12: while(false);
269 tracehead = trace.prev;
270 return variable1;
271 }
272 val_t string___String___to_cstring(val_t self) {
273 struct trace_t trace = {NULL, "string::String::to_cstring (bin/../lib/standard//string.nit:135,2--140:15)"};
274 val_t variable0;
275 trace.prev = tracehead; tracehead = &trace;
276 variable0 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
277 ((string___String_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable0, TAG_Char('\0')) /*String::[]=*/;
278 ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)-UNTAG_Int( TAG_Int(1)));
279 variable0 = ATTR_string___String____items( self) /*String::_items*/;
280 goto return_label14;
281 return_label14: while(false);
282 tracehead = trace.prev;
283 return variable0;
284 }
285 val_t string___String___substring(val_t self, val_t param0, val_t param1) {
286 struct trace_t trace = {NULL, "string::String::substring (bin/../lib/standard//string.nit:143,2--163:12)"};
287 val_t variable0;
288 val_t variable1;
289 val_t variable2;
290 val_t variable3;
291 val_t variable4;
292 trace.prev = tracehead; tracehead = &trace;
293 variable0 = param0;
294 variable1 = param1;
295 variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>=UNTAG_Int( TAG_Int(0)));
296 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:151,3--19\n"); nit_exit(1);}
297 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( variable0 /*from*/)) /*count*/;
298 variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( TAG_Int(0)));
299 if (UNTAG_Bool(variable2)) { /*if*/
300 variable0 = TAG_Int(0) /*from=*/;
301 }
302 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
303 variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>UNTAG_Int(variable2));
304 if (UNTAG_Bool(variable2)) { /*if*/
305 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
306 variable1 = variable2 /*count=*/;
307 }
308 variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( variable1 /*count*/));
309 if (UNTAG_Bool(variable2)) { /*if*/
310 variable3 = TAG_Int(UNTAG_Int( variable1 /*count*/)-UNTAG_Int( variable0 /*from*/));
311 variable4 = NEW_string___String___with_capacity(variable3); /*new String*/
312 variable3 = variable4;
313 variable2 = variable3;
314 while (true) { /*while*/
315 variable3 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( variable1 /*count*/));
316 if (!UNTAG_Bool(variable3)) break; /* while*/
317 variable3 = ATTR_string___String____items( self) /*String::_items*/;
318 variable3 = TAG_Char(UNBOX_NativeString(variable3)[UNTAG_Int( variable0 /*from*/)]);
319 ((array___AbstractArray___push_t)CALL( variable2 /*r*/,COLOR_abstract_collection___IndexedCollection___push))( variable2 /*r*/, variable3) /*String::push*/;
320 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*from*/;
321 continue_16: while(0);
322 }
323 break_16: while(0);
324 variable2 = variable2 /*r*/;
325 goto return_label15;
326 } else { /*if*/
327 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
328 goto return_label15;
329 }
330 return_label15: while(false);
331 tracehead = trace.prev;
332 return variable2;
333 }
334 val_t string___String___substring_from(val_t self, val_t param0) {
335 struct trace_t trace = {NULL, "string::String::substring_from (bin/../lib/standard//string.nit:167,2--175:38)"};
336 val_t variable0;
337 val_t variable1;
338 trace.prev = tracehead; tracehead = &trace;
339 variable0 = param0;
340 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
341 variable1 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int(variable1));
342 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:174,3--22\n"); nit_exit(1);}
343 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
344 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( variable0 /*from*/));
345 variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self, variable0 /*from*/, variable1) /*String::substring*/;
346 goto return_label17;
347 return_label17: while(false);
348 tracehead = trace.prev;
349 return variable1;
350 }
351 val_t string___String___has_substring(val_t self, val_t param0, val_t param1) {
352 struct trace_t trace = {NULL, "string::String::has_substring (bin/../lib/standard//string.nit:178,2--194:13)"};
353 val_t variable0;
354 val_t variable1;
355 val_t variable2;
356 val_t variable3;
357 val_t variable4;
358 val_t variable5;
359 val_t variable6;
360 val_t variable7;
361 trace.prev = tracehead; tracehead = &trace;
362 variable0 = param0;
363 variable1 = param1;
364 variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*str*/,COLOR_abstract_collection___Collection___length))( variable0 /*str*/) /*String::length*/;
365 variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1)));
366 variable2 = variable3;
367 variable4 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( variable2 /*itsindex*/));
368 variable3 = variable4;
369 variable5 = ATTR_string___String____items( self) /*String::_items*/;
370 variable4 = variable5;
371 variable6 = ATTR_string___String____items( variable0 /*str*/) /*String::_items*/;
372 variable5 = variable6;
373 variable6 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
374 variable6 = TAG_Bool(UNTAG_Int( variable3 /*myindex*/)>UNTAG_Int(variable6));
375 variable7 = variable6;
376 if (!UNTAG_Bool(variable7)) { /* or */
377 variable7 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( variable3 /*myindex*/));
378 }
379 variable6 = variable7;
380 if (UNTAG_Bool(variable6)) { /*if*/
381 variable2 = TAG_Bool(false);
382 goto return_label18;
383 }
384 while (true) { /*while*/
385 variable6 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( TAG_Int(0)));
386 if (!UNTAG_Bool(variable6)) break; /* while*/
387 variable6 = TAG_Char(UNBOX_NativeString( variable4 /*myitems*/)[UNTAG_Int( variable3 /*myindex*/)]);
388 variable7 = TAG_Char(UNBOX_NativeString( variable5 /*itsitems*/)[UNTAG_Int( variable2 /*itsindex*/)]);
389 variable6 = TAG_Bool((variable6)!=(variable7));
390 if (UNTAG_Bool(variable6)) { /*if*/
391 variable2 = TAG_Bool(false);
392 goto return_label18;
393 }
394 variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( variable3 /*myindex*/)) /*myindex*/;
395 variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( variable2 /*itsindex*/)) /*itsindex*/;
396 continue_19: while(0);
397 }
398 break_19: while(0);
399 variable2 = TAG_Bool(true);
400 goto return_label18;
401 return_label18: while(false);
402 tracehead = trace.prev;
403 return variable2;
404 }
405 val_t string___String___has_prefix(val_t self, val_t param0) {
406 struct trace_t trace = {NULL, "string::String::has_prefix (bin/../lib/standard//string.nit:197,2--201:71)"};
407 val_t variable0;
408 val_t variable1;
409 trace.prev = tracehead; tracehead = &trace;
410 variable0 = param0;
411 variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self, variable0 /*prefix*/, TAG_Int(0)) /*String::has_substring*/;
412 goto return_label20;
413 return_label20: while(false);
414 tracehead = trace.prev;
415 return variable1;
416 }
417 val_t string___String___has_suffix(val_t self, val_t param0) {
418 struct trace_t trace = {NULL, "string::String::has_suffix (bin/../lib/standard//string.nit:203,2--207:93)"};
419 val_t variable0;
420 val_t variable1;
421 val_t variable2;
422 trace.prev = tracehead; tracehead = &trace;
423 variable0 = param0;
424 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
425 variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*suffix*/,COLOR_abstract_collection___Collection___length))( variable0 /*suffix*/) /*String::length*/;
426 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int(variable2));
427 variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self, variable0 /*suffix*/, variable1) /*String::has_substring*/;
428 goto return_label21;
429 return_label21: while(false);
430 tracehead = trace.prev;
431 return variable1;
432 }
433 val_t string___String_____l(val_t self, val_t param0) {
434 struct trace_t trace = {NULL, "string::String::< (bin/../lib/standard//string.nit:209,2--227:15)"};
435 val_t variable0;
436 val_t variable1;
437 val_t variable2;
438 val_t variable3;
439 val_t variable4;
440 val_t variable5;
441 val_t variable6;
442 trace.prev = tracehead; tracehead = &trace;
443 variable0 = param0;
444 variable1 = TAG_Int(0);
445 variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
446 variable2 = variable3;
447 variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
448 variable3 = variable4;
449 while (true) { /*while*/
450 variable4 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l1*/));
451 variable5 = variable4;
452 if (UNTAG_Bool(variable5)) { /* and */
453 variable5 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable3 /*l2*/));
454 }
455 variable4 = variable5;
456 if (!UNTAG_Bool(variable4)) break; /* while*/
457 variable5 = ((string___String_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self, variable1 /*i*/) /*String::[]*/;
458 variable5 = TAG_Int((unsigned char)UNTAG_Char(variable5));
459 variable4 = variable5;
460 variable6 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/, variable1 /*i*/) /*String::[]*/;
461 variable6 = TAG_Int((unsigned char)UNTAG_Char(variable6));
462 variable5 = variable6;
463 variable6 = TAG_Bool(UNTAG_Int( variable4 /*c1*/)<UNTAG_Int( variable5 /*c2*/));
464 if (UNTAG_Bool(variable6)) { /*if*/
465 variable1 = TAG_Bool(true);
466 goto return_label22;
467 } else { /*if*/
468 variable6 = TAG_Bool(UNTAG_Int( variable5 /*c2*/)<UNTAG_Int( variable4 /*c1*/));
469 if (UNTAG_Bool(variable6)) { /*if*/
470 variable1 = TAG_Bool(false);
471 goto return_label22;
472 }
473 }
474 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
475 continue_23: while(0);
476 }
477 break_23: while(0);
478 variable4 = TAG_Bool(UNTAG_Int( variable2 /*l1*/)<UNTAG_Int( variable3 /*l2*/));
479 if (UNTAG_Bool(variable4)) { /*if*/
480 variable1 = TAG_Bool(true);
481 goto return_label22;
482 } else { /*if*/
483 variable1 = TAG_Bool(false);
484 goto return_label22;
485 }
486 return_label22: while(false);
487 tracehead = trace.prev;
488 return variable1;
489 }
490 void string___String___init(val_t self, int* init_table) {
491 struct trace_t trace = {NULL, "string::String::init (bin/../lib/standard//string.nit:231,2--234:17)"};
492 trace.prev = tracehead; tracehead = &trace;
493 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
494 ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self, TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/;
495 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
496 tracehead = trace.prev;
497 return;
498 }
499 void string___String___from(val_t self, val_t param0, int* init_table) {
500 struct trace_t trace = {NULL, "string::String::from (bin/../lib/standard//string.nit:237,2--242:39)"};
501 val_t variable0;
502 val_t variable1;
503 val_t variable2;
504 val_t variable3;
505 trace.prev = tracehead; tracehead = &trace;
506 variable0 = param0;
507 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
508 variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
509 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
510 ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1;
511 variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
512 ATTR_array___AbstractArray____length( self) /*String::_length*/ = variable1;
513 variable1 = ATTR_string___String____capacity( self) /*String::_capacity*/;
514 variable1 = BOX_NativeString((char*)malloc((UNTAG_Int(variable1) * sizeof(char))));
515 ATTR_string___String____items( self) /*String::_items*/ = variable1;
516 variable1 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/;
517 variable2 = ATTR_string___String____items( self) /*String::_items*/;
518 variable3 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
519 (void)memcpy(UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable1)+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable3));
520 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
521 tracehead = trace.prev;
522 return;
523 }
524 void string___String___with_capacity(val_t self, val_t param0, int* init_table) {
525 struct trace_t trace = {NULL, "string::String::with_capacity (bin/../lib/standard//string.nit:245,2--252:13)"};
526 val_t variable0;
527 val_t variable1;
528 trace.prev = tracehead; tracehead = &trace;
529 variable0 = param0;
530 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
531 variable1 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)>=UNTAG_Int( TAG_Int(0)));
532 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:248,3--17\n"); nit_exit(1);}
533 variable1 = BOX_NativeString((char*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(char))));
534 ATTR_string___String____items( self) /*String::_items*/ = variable1;
535 ATTR_string___String____capacity( self) /*String::_capacity*/ = variable0 /*cap*/;
536 ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(0);
537 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
538 tracehead = trace.prev;
539 return;
540 }
541 void string___String___with_native(val_t self, val_t param0, val_t param1, int* init_table) {
542 struct trace_t trace = {NULL, "string::String::with_native (bin/../lib/standard//string.nit:255,2--261:16)"};
543 val_t variable0;
544 val_t variable1;
545 val_t variable2;
546 trace.prev = tracehead; tracehead = &trace;
547 variable0 = param0;
548 variable1 = param1;
549 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
550 variable2 = TAG_Bool(UNTAG_Int( variable1 /*size*/)>=UNTAG_Int( TAG_Int(0)));
551 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:258,3--18\n"); nit_exit(1);}
552 ATTR_string___String____items( self) /*String::_items*/ = variable0 /*nat*/;
553 ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1 /*size*/;
554 ATTR_array___AbstractArray____length( self) /*String::_length*/ = variable1 /*size*/;
555 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
556 tracehead = trace.prev;
557 return;
558 }
559 void string___String___from_cstring(val_t self, val_t param0, int* init_table) {
560 struct trace_t trace = {NULL, "string::String::from_cstring (bin/../lib/standard//string.nit:264,2--270:16)"};
561 val_t variable0;
562 val_t variable1;
563 val_t variable2;
564 trace.prev = tracehead; tracehead = &trace;
565 variable0 = param0;
566 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
567 variable2 = ((string___NativeString___cstring_length_t)CALL( variable0 /*str*/,COLOR_string___NativeString___cstring_length))( variable0 /*str*/) /*NativeString::cstring_length*/;
568 variable1 = variable2;
569 ATTR_string___String____items( self) /*String::_items*/ = variable0 /*str*/;
570 variable2 = TAG_Int(UNTAG_Int( variable1 /*size*/)+UNTAG_Int( TAG_Int(1)));
571 ATTR_string___String____capacity( self) /*String::_capacity*/ = variable2;
572 ATTR_array___AbstractArray____length( self) /*String::_length*/ = variable1 /*size*/;
573 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
574 tracehead = trace.prev;
575 return;
576 }
577 void string___String___filled_with(val_t self, val_t param0, val_t param1, int* init_table) {
578 struct trace_t trace = {NULL, "string::String::filled_with (bin/../lib/standard//string.nit:273,2--282:17)"};
579 val_t variable0;
580 val_t variable1;
581 val_t variable2;
582 val_t variable3;
583 trace.prev = tracehead; tracehead = &trace;
584 variable0 = param0;
585 variable1 = param1;
586 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
587 ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self, variable1 /*count*/, init_table /*YYY*/) /*String::with_capacity*/;
588 variable2 = TAG_Int(0);
589 while (true) { /*while*/
590 variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*count*/));
591 if (!UNTAG_Bool(variable3)) break; /* while*/
592 variable3 = ATTR_string___String____items( self) /*String::_items*/;
593 UNBOX_NativeString(variable3)[UNTAG_Int( variable2 /*i*/)]=UNTAG_Char( variable0 /*c*/);
594 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
595 continue_30: while(0);
596 }
597 break_30: while(0);
598 ATTR_array___AbstractArray____length( self) /*String::_length*/ = variable1 /*count*/;
599 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
600 tracehead = trace.prev;
601 return;
602 }
603 void string___String___output(val_t self) {
604 struct trace_t trace = {NULL, "string::String::output (bin/../lib/standard//string.nit:285,2--290:9)"};
605 val_t variable0;
606 val_t variable1;
607 trace.prev = tracehead; tracehead = &trace;
608 variable0 = TAG_Int(0);
609 while (true) { /*while*/
610 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
611 variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int(variable1));
612 if (!UNTAG_Bool(variable1)) break; /* while*/
613 variable1 = ATTR_string___String____items( self) /*String::_items*/;
614 variable1 = TAG_Char(UNBOX_NativeString(variable1)[UNTAG_Int( variable0 /*i*/)]);
615 printf("%c", (unsigned char)UNTAG_Char(variable1));
616 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*i*/;
617 continue_32: while(0);
618 }
619 break_32: while(0);
620 tracehead = trace.prev;
621 return;
622 }
623 val_t string___String_____eqeq(val_t self, val_t param0) {
624 struct trace_t trace = {NULL, "string::String::== (bin/../lib/standard//string.nit:294,2--307:13)"};
625 val_t variable0;
626 val_t variable1;
627 val_t variable2;
628 val_t variable3;
629 val_t variable4;
630 val_t variable5;
631 val_t variable6;
632 trace.prev = tracehead; tracehead = &trace;
633 variable0 = param0;
634 variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/;
635 variable1 = TAG_Bool(!UNTAG_Bool(variable1));
636 if (!UNTAG_Bool(variable1)) { /* or */
637 variable1 = TAG_Bool(IS_EQUAL_NN( variable0 /*o*/, NIT_NULL /*null*/));
638 }
639 if (UNTAG_Bool(variable1)) { /*if*/
640 variable1 = TAG_Bool(false);
641 goto return_label33;
642 }
643 variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/;
644 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:297,3--21\n"); nit_exit(1);}
645 variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
646 variable1 = variable2;
647 variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*o*/,COLOR_abstract_collection___Collection___length))( variable0 /*o*/) /*String::length*/;
648 variable2 = TAG_Bool((variable2)!=( variable1 /*l*/));
649 if (UNTAG_Bool(variable2)) { /*if*/
650 variable1 = TAG_Bool(false);
651 goto return_label33;
652 }
653 variable2 = TAG_Int(0);
654 variable4 = ATTR_string___String____items( self) /*String::_items*/;
655 variable3 = variable4;
656 variable5 = ATTR_string___String____items( variable0 /*o*/) /*String::_items*/;
657 variable4 = variable5;
658 while (true) { /*while*/
659 variable5 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*l*/));
660 if (!UNTAG_Bool(variable5)) break; /* while*/
661 variable5 = TAG_Char(UNBOX_NativeString( variable3 /*it*/)[UNTAG_Int( variable2 /*i*/)]);
662 variable6 = TAG_Char(UNBOX_NativeString( variable4 /*oit*/)[UNTAG_Int( variable2 /*i*/)]);
663 variable5 = TAG_Bool((variable5)!=(variable6));
664 if (UNTAG_Bool(variable5)) { /*if*/
665 variable1 = TAG_Bool(false);
666 goto return_label33;
667 }
668 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
669 continue_34: while(0);
670 }
671 break_34: while(0);
672 variable1 = TAG_Bool(true);
673 goto return_label33;
674 return_label33: while(false);
675 tracehead = trace.prev;
676 return variable1;
677 }
678 val_t string___String___to_upper(val_t self) {
679 struct trace_t trace = {NULL, "string::String::to_upper (bin/../lib/standard//string.nit:310,2--315:10)"};
680 val_t variable0;
681 val_t variable1;
682 val_t variable2;
683 val_t variable3;
684 trace.prev = tracehead; tracehead = &trace;
685 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
686 variable2 = NEW_string___String___with_capacity(variable1); /*new String*/
687 variable1 = variable2;
688 variable0 = variable1;
689 variable1 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
690 while (true) { /*for*/
691 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
692 if (!UNTAG_Bool(variable2)) break; /*for*/
693 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
694 variable3 = ((kernel___Char___to_upper_t)CALL( variable2 /*i*/,COLOR_kernel___Char___to_upper))( variable2 /*i*/) /*Char::to_upper*/;
695 ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
696 continue_36: while(0);
697 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
698 }
699 break_36: while(0);
700 variable0 = variable0 /*s*/;
701 goto return_label35;
702 return_label35: while(false);
703 tracehead = trace.prev;
704 return variable0;
705 }
706 val_t string___String___to_lower(val_t self) {
707 struct trace_t trace = {NULL, "string::String::to_lower (bin/../lib/standard//string.nit:318,2--323:10)"};
708 val_t variable0;
709 val_t variable1;
710 val_t variable2;
711 val_t variable3;
712 trace.prev = tracehead; tracehead = &trace;
713 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
714 variable2 = NEW_string___String___with_capacity(variable1); /*new String*/
715 variable1 = variable2;
716 variable0 = variable1;
717 variable1 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
718 while (true) { /*for*/
719 variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
720 if (!UNTAG_Bool(variable2)) break; /*for*/
721 variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
722 variable3 = ((kernel___Char___to_lower_t)CALL( variable2 /*i*/,COLOR_kernel___Char___to_lower))( variable2 /*i*/) /*Char::to_lower*/;
723 ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
724 continue_38: while(0);
725 ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
726 }
727 break_38: while(0);
728 variable0 = variable0 /*s*/;
729 goto return_label37;
730 return_label37: while(false);
731 tracehead = trace.prev;
732 return variable0;
733 }
734 val_t string___String___items(val_t self) {
735 struct trace_t trace = {NULL, "string::String::items (bin/../lib/standard//string.nit:326,2--43)"};
736 trace.prev = tracehead; tracehead = &trace;
737 tracehead = trace.prev;
738 return ATTR_string___String____items( self) /*String::_items*/;
739 }
740 val_t string___String___capacity(val_t self) {
741 struct trace_t trace = {NULL, "string::String::capacity (bin/../lib/standard//string.nit:327,2--37)"};
742 trace.prev = tracehead; tracehead = &trace;
743 tracehead = trace.prev;
744 return ATTR_string___String____capacity( self) /*String::_capacity*/;
745 }
746 val_t string___Object___to_s(val_t self) {
747 struct trace_t trace = {NULL, "string::Object::to_s (bin/../lib/standard//string.nit:337,2--338:36)"};
748 val_t variable0;
749 trace.prev = tracehead; tracehead = &trace;
750 variable0 = ((string___Object___inspect_t)CALL( self,COLOR_string___Object___inspect))( self) /*Object::inspect*/;
751 goto return_label39;
752 return_label39: while(false);
753 tracehead = trace.prev;
754 return variable0;
755 }
756 val_t string___Object___inspect(val_t self) {
757 struct trace_t trace = {NULL, "string::Object::inspect (bin/../lib/standard//string.nit:340,2--346:10)"};
758 val_t variable0;
759 val_t variable1;
760 trace.prev = tracehead; tracehead = &trace;
761 variable1 = ((string___Object___inspect_head_t)CALL( self,COLOR_string___Object___inspect_head))( self) /*Object::inspect_head*/;
762 variable0 = variable1;
763 ((string___String___add_t)CALL( variable0 /*r*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*r*/, TAG_Char('>')) /*String::add*/;
764 variable0 = variable0 /*r*/;
765 goto return_label40;
766 return_label40: while(false);
767 tracehead = trace.prev;
768 return variable0;
769 }
770 val_t string___Object___inspect_head(val_t self) {
771 struct trace_t trace = {NULL, "string::Object::inspect_head (bin/../lib/standard//string.nit:349,2--353:30)"};
772 val_t variable0;
773 val_t variable1;
774 val_t variable2;
775 val_t variable3;
776 val_t variable4;
777 val_t variable5;
778 val_t variable6;
779 trace.prev = tracehead; tracehead = &trace;
780 variable0 = NEW_string___String___init(); /*new String*/
781 variable1 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
782 variable2 = variable1;
783 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
784 variable3 = TAG_Int((int) self);
785 variable3 = ((string___Int___to_hex_t)CALL(variable3,COLOR_string___Int___to_hex))(variable3) /*Int::to_hex*/;
786 variable4 = variable3;
787 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
788 variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
789 variable6 = variable5;
790 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
791 goto return_label41;
792 return_label41: while(false);
793 tracehead = trace.prev;
794 return variable0;
795 }
796 val_t string___Object___args(val_t self) {
797 struct trace_t trace = {NULL, "string::Object::args (bin/../lib/standard//string.nit:356,2--358:17)"};
798 val_t variable0;
799 trace.prev = tracehead; tracehead = &trace;
800 variable0 = (G_sys);
801 variable0 = ((string___Sys___args_t)CALL(variable0,COLOR_string___Object___args))(variable0) /*Sys::args*/;
802 goto return_label42;
803 return_label42: while(false);
804 tracehead = trace.prev;
805 return variable0;
806 }
807 val_t string___Bool___to_s(val_t self) {
808 struct trace_t trace = {NULL, "string::Bool::to_s (bin/../lib/standard//string.nit:363,2--368:22)"};
809 val_t variable0;
810 static val_t once_value_variable0_44; static int once_bool_variable0_44;
811 static val_t once_value_variable0_45; static int once_bool_variable0_45;
812 trace.prev = tracehead; tracehead = &trace;
813 if (UNTAG_Bool( self)) { /*if*/
814 if (once_bool_variable0_44) variable0 = once_value_variable0_44;
815 else {
816 variable0 = NEW_string___String___with_native(BOX_NativeString("true"), TAG_Int(4)); /*new String*/
817 once_value_variable0_44 = variable0;
818 once_bool_variable0_44 = true;
819 }
820 goto return_label43;
821 } else { /*if*/
822 if (once_bool_variable0_45) variable0 = once_value_variable0_45;
823 else {
824 variable0 = NEW_string___String___with_native(BOX_NativeString("false"), TAG_Int(5)); /*new String*/
825 once_value_variable0_45 = variable0;
826 once_bool_variable0_45 = true;
827 }
828 goto return_label43;
829 }
830 return_label43: while(false);
831 tracehead = trace.prev;
832 return variable0;
833 }
834 void string___Int___fill_string(val_t self, val_t param0, val_t param1, val_t param2) {
835 struct trace_t trace = {NULL, "string::Int::fill_string (bin/../lib/standard//string.nit:374,2--394:11)"};
836 val_t variable0;
837 val_t variable1;
838 val_t variable2;
839 val_t variable3;
840 val_t variable4;
841 val_t variable5;
842 val_t variable6;
843 trace.prev = tracehead; tracehead = &trace;
844 variable0 = param0;
845 variable1 = param1;
846 variable2 = param2;
847 variable3 = TAG_Int((int)0) /*decl variable n*/;
848 variable4 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(0)));
849 if (UNTAG_Bool(variable4)) { /*if*/
850 variable4 = TAG_Int(-UNTAG_Int( self));
851 variable3 = variable4 /*n=*/;
852 ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, TAG_Int(0), TAG_Char('-')) /*String::[]=*/;
853 } else { /*if*/
854 variable4 = TAG_Bool(( self)==( TAG_Int(0)));
855 if (UNTAG_Bool(variable4)) { /*if*/
856 ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, TAG_Int(0), TAG_Char('0')) /*String::[]=*/;
857 goto return_label46;
858 } else { /*if*/
859 variable3 = self /*n=*/;
860 }
861 }
862 variable5 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self, variable1 /*base*/) /*Int::digit_count*/;
863 variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
864 variable4 = variable5;
865 while (true) { /*while*/
866 variable5 = TAG_Bool(UNTAG_Int( variable4 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
867 variable6 = variable5;
868 if (UNTAG_Bool(variable6)) { /* and */
869 variable6 = TAG_Bool(UNTAG_Int( variable3 /*n*/)>UNTAG_Int( TAG_Int(0)));
870 }
871 variable5 = variable6;
872 if (!UNTAG_Bool(variable5)) break; /* while*/
873 variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)%UNTAG_Int( variable1 /*base*/));
874 variable5 = ((kernel___Int___to_c_t)CALL(variable5,COLOR_kernel___Int___to_c))(variable5) /*Int::to_c*/;
875 ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, variable4 /*pos*/, variable5) /*String::[]=*/;
876 variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)/UNTAG_Int( variable1 /*base*/));
877 variable3 = variable5 /*n=*/;
878 variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1))) /*pos*/;
879 continue_47: while(0);
880 }
881 break_47: while(0);
882 return_label46: while(false);
883 tracehead = trace.prev;
884 return;
885 }
886 val_t string___Int___to_s(val_t self) {
887 struct trace_t trace = {NULL, "string::Int::to_s (bin/../lib/standard//string.nit:398,2--399:42)"};
888 val_t variable0;
889 trace.prev = tracehead; tracehead = &trace;
890 variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self, TAG_Int(10), TAG_Bool(true)) /*Int::to_base*/;
891 goto return_label48;
892 return_label48: while(false);
893 tracehead = trace.prev;
894 return variable0;
895 }
896 val_t string___Int___to_hex(val_t self) {
897 struct trace_t trace = {NULL, "string::Int::to_hex (bin/../lib/standard//string.nit:401,2--402:47)"};
898 val_t variable0;
899 trace.prev = tracehead; tracehead = &trace;
900 variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self, TAG_Int(16), TAG_Bool(false)) /*Int::to_base*/;
901 goto return_label49;
902 return_label49: while(false);
903 tracehead = trace.prev;
904 return variable0;
905 }
906 val_t string___Int___to_base(val_t self, val_t param0, val_t param1) {
907 struct trace_t trace = {NULL, "string::Int::to_base (bin/../lib/standard//string.nit:404,2--410:10)"};
908 val_t variable0;
909 val_t variable1;
910 val_t variable2;
911 val_t variable3;
912 val_t variable4;
913 trace.prev = tracehead; tracehead = &trace;
914 variable0 = param0;
915 variable1 = param1;
916 variable3 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self, variable0 /*base*/) /*Int::digit_count*/;
917 variable2 = variable3;
918 variable4 = NEW_string___String___filled_with( TAG_Char(' '), variable2 /*l*/); /*new String*/
919 variable3 = variable4;
920 ((string___Int___fill_string_t)CALL( self,COLOR_string___Int___fill_string))( self, variable3 /*s*/, variable0 /*base*/, variable1 /*signed*/) /*Int::fill_string*/;
921 variable2 = variable3 /*s*/;
922 goto return_label50;
923 return_label50: while(false);
924 tracehead = trace.prev;
925 return variable2;
926 }
927 val_t string___Float___to_s(val_t self) {
928 struct trace_t trace = {NULL, "string::Float::to_s (bin/../lib/standard//string.nit:415,2--41)"};
929 val_t variable0;
930 trace.prev = tracehead; tracehead = &trace;
931 variable0 = ((string___Float___to_precision_t)CALL( self,COLOR_string___Float___to_precision))( self, TAG_Int(6)) /*Float::to_precision*/;
932 goto return_label51;
933 return_label51: while(false);
934 tracehead = trace.prev;
935 return variable0;
936 }
937 val_t string___Float___to_precision(val_t self, val_t param0) {
938 struct trace_t trace = {NULL, "string::Float::to_precision (bin/../lib/standard//string.nit:417,2--429:18)"};
939 val_t variable0;
940 val_t variable1;
941 val_t variable2;
942 val_t variable3;
943 val_t variable4;
944 val_t variable5;
945 val_t variable6;
946 val_t variable7;
947 val_t variable8;
948 val_t variable9;
949 val_t variable10;
950 val_t variable11;
951 val_t variable12;
952 trace.prev = tracehead; tracehead = &trace;
953 variable0 = param0;
954 variable1 = TAG_Bool(( variable0 /*nb*/)==( TAG_Int(0)));
955 if (UNTAG_Bool(variable1)) { /*if*/
956 variable1 = TAG_Int((int)UNBOX_Float( self));
957 variable1 = ((string___Int___to_s_t)CALL(variable1,COLOR_string___Object___to_s))(variable1) /*Int::to_s*/;
958 goto return_label52;
959 }
960 variable2 = TAG_Int((int)UNBOX_Float( self));
961 variable1 = variable2;
962 variable3 = BOX_Float(1.0);
963 variable2 = variable3;
964 while (true) { /*while*/
965 variable3 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)>UNTAG_Int( TAG_Int(0)));
966 if (!UNTAG_Bool(variable3)) break; /* while*/
967 variable3 = BOX_Float(10.0);
968 variable3 = BOX_Float(UNBOX_Float( variable2 /*dec*/)*UNBOX_Float(variable3));
969 variable2 = variable3 /*dec=*/;
970 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*nb*/;
971 continue_53: while(0);
972 }
973 break_53: while(0);
974 variable4 = BOX_Float((float)UNTAG_Int( variable1 /*i*/));
975 variable4 = BOX_Float(UNBOX_Float( self)-UNBOX_Float(variable4));
976 variable4 = BOX_Float(UNBOX_Float(variable4)*UNBOX_Float( variable2 /*dec*/));
977 variable4 = TAG_Int((int)UNBOX_Float(variable4));
978 variable3 = variable4;
979 variable4 = NEW_string___String___init(); /*new String*/
980 variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
981 variable6 = variable5;
982 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
983 variable7 = variable1 /*i*/;
984 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
985 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
986 variable8 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
987 variable9 = variable8;
988 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
989 variable10 = variable3 /*d*/;
990 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
991 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
992 variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
993 variable12 = variable11;
994 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
995 variable1 = variable4;
996 goto return_label52;
997 return_label52: while(false);
998 tracehead = trace.prev;
999 return variable1;
1000 }
1001 val_t string___Char___to_s(val_t self) {
1002 struct trace_t trace = {NULL, "string::Char::to_s (bin/../lib/standard//string.nit:434,2--438:10)"};
1003 val_t variable0;
1004 val_t variable1;
1005 trace.prev = tracehead; tracehead = &trace;
1006 variable1 = NEW_string___String___with_capacity( TAG_Int(1)); /*new String*/
1007 variable0 = variable1;
1008 ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, TAG_Int(0), self) /*String::[]=*/;
1009 variable0 = variable0 /*s*/;
1010 goto return_label54;
1011 return_label54: while(false);
1012 tracehead = trace.prev;
1013 return variable0;
1014 }
1015 val_t string___Collection___to_s(val_t self) {
1016 struct trace_t trace = {NULL, "string::Collection::to_s (bin/../lib/standard//string.nit:443,2--448:10)"};
1017 val_t variable0;
1018 val_t variable1;
1019 val_t variable2;
1020 val_t variable3;
1021 trace.prev = tracehead; tracehead = &trace;
1022 variable1 = NEW_string___String___init(); /*new String*/
1023 variable0 = variable1;
1024 variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
1025 while (true) { /*for*/
1026 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
1027 if (!UNTAG_Bool(variable2)) break; /*for*/
1028 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
1029 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*e*/ == NIT_NULL /*null*/) || (( variable2 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))( variable2 /*e*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1030 if (UNTAG_Bool(variable3)) { /*if*/
1031 variable3 = ((string___Object___to_s_t)CALL( variable2 /*e*/,COLOR_string___Object___to_s))( variable2 /*e*/) /*Object::to_s*/;
1032 ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable3) /*String::append*/;
1033 }
1034 continue_56: while(0);
1035 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
1036 }
1037 break_56: while(0);
1038 variable0 = variable0 /*s*/;
1039 goto return_label55;
1040 return_label55: while(false);
1041 tracehead = trace.prev;
1042 return variable0;
1043 }
1044 val_t string___Collection___join(val_t self, val_t param0) {
1045 struct trace_t trace = {NULL, "string::Collection::join (bin/../lib/standard//string.nit:451,2--471:10)"};
1046 val_t variable0;
1047 val_t variable1;
1048 val_t variable2;
1049 val_t variable3;
1050 val_t variable4;
1051 trace.prev = tracehead; tracehead = &trace;
1052 variable0 = param0;
1053 variable1 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/;
1054 if (UNTAG_Bool(variable1)) { /*if*/
1055 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1056 goto return_label57;
1057 }
1058 variable2 = NEW_string___String___init(); /*new String*/
1059 variable1 = variable2;
1060 variable3 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
1061 variable2 = variable3;
1062 variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/;
1063 variable3 = variable4;
1064 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ == NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1065 if (UNTAG_Bool(variable4)) { /*if*/
1066 variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/;
1067 ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
1068 }
1069 ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/;
1070 while (true) { /*while*/
1071 variable4 = ((abstract_collection___Iterator___is_ok_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable2 /*i*/) /*Iterator::is_ok*/;
1072 if (!UNTAG_Bool(variable4)) break; /* while*/
1073 ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable0 /*sep*/) /*String::append*/;
1074 variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/;
1075 variable3 = variable4 /*e=*/;
1076 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ == NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1077 if (UNTAG_Bool(variable4)) { /*if*/
1078 variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/;
1079 ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
1080 }
1081 ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/;
1082 continue_58: while(0);
1083 }
1084 break_58: while(0);
1085 variable1 = variable1 /*s*/;
1086 goto return_label57;
1087 return_label57: while(false);
1088 tracehead = trace.prev;
1089 return variable1;
1090 }
1091 val_t string___Map___map_join(val_t self, val_t param0, val_t param1) {
1092 struct trace_t trace = {NULL, "string::Map::map_join (bin/../lib/standard//string.nit:476,2--498:10)"};
1093 val_t variable0;
1094 val_t variable1;
1095 val_t variable2;
1096 val_t variable3;
1097 val_t variable4;
1098 val_t variable5;
1099 val_t variable6;
1100 val_t variable7;
1101 val_t variable8;
1102 val_t variable9;
1103 val_t variable10;
1104 val_t variable11;
1105 val_t variable12;
1106 val_t variable13;
1107 val_t variable14;
1108 val_t variable15;
1109 val_t variable16;
1110 val_t variable17;
1111 trace.prev = tracehead; tracehead = &trace;
1112 variable0 = param0;
1113 variable1 = param1;
1114 variable2 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Map::is_empty*/;
1115 if (UNTAG_Bool(variable2)) { /*if*/
1116 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1117 goto return_label59;
1118 }
1119 variable3 = NEW_string___String___init(); /*new String*/
1120 variable2 = variable3;
1121 variable4 = ((abstract_collection___Map___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Map::iterator*/;
1122 variable3 = variable4;
1123 variable5 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/;
1124 variable4 = variable5;
1125 variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*MapIterator::item*/;
1126 variable5 = variable6;
1127 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ == NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1128 if (UNTAG_Bool(variable6)) { /*if*/
1129 variable6 = NEW_string___String___init(); /*new String*/
1130 variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1131 variable8 = variable7;
1132 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
1133 variable9 = variable4 /*k*/;
1134 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
1135 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
1136 variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1137 variable11 = variable10;
1138 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
1139 variable12 = variable1 /*couple_sep*/;
1140 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
1141 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1142 variable14 = variable13;
1143 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
1144 variable15 = variable5 /*e*/;
1145 variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
1146 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
1147 variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1148 variable17 = variable16;
1149 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/;
1150 ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/;
1151 }
1152 ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*MapIterator::next*/;
1153 while (true) { /*while*/
1154 variable6 = ((abstract_collection___Iterator___is_ok_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable3 /*i*/) /*MapIterator::is_ok*/;
1155 if (!UNTAG_Bool(variable6)) break; /* while*/
1156 ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable0 /*sep*/) /*String::append*/;
1157 variable6 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/;
1158 variable4 = variable6 /*k=*/;
1159 variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*MapIterator::item*/;
1160 variable5 = variable6 /*e=*/;
1161 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ == NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1162 if (UNTAG_Bool(variable6)) { /*if*/
1163 variable6 = NEW_string___String___init(); /*new String*/
1164 variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1165 variable8 = variable7;
1166 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
1167 variable9 = variable4 /*k*/;
1168 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
1169 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
1170 variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1171 variable11 = variable10;
1172 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
1173 variable12 = variable1 /*couple_sep*/;
1174 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
1175 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1176 variable14 = variable13;
1177 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
1178 variable15 = variable5 /*e*/;
1179 variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
1180 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
1181 variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1182 variable17 = variable16;
1183 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/;
1184 ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/;
1185 }
1186 ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*MapIterator::next*/;
1187 continue_60: while(0);
1188 }
1189 break_60: while(0);
1190 variable2 = variable2 /*s*/;
1191 goto return_label59;
1192 return_label59: while(false);
1193 tracehead = trace.prev;
1194 return variable2;
1195 }
1196 val_t string___NativeString_____bra(val_t self, val_t param0) {
1197 struct trace_t trace = {NULL, "string::NativeString::[] (bin/../lib/standard//string.nit:508,2--26)"};
1198 trace.prev = tracehead; tracehead = &trace;
1199 tracehead = trace.prev;
1200 return TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( param0)]);
1201 }
1202 void string___NativeString_____braeq(val_t self, val_t param0, val_t param1) {
1203 struct trace_t trace = {NULL, "string::NativeString::[]= (bin/../lib/standard//string.nit:509,2--32)"};
1204 trace.prev = tracehead; tracehead = &trace;
1205 UNBOX_NativeString( self)[UNTAG_Int( param0)]=UNTAG_Char( param1);
1206 tracehead = trace.prev;
1207 return;
1208 }
1209 void string___NativeString___copy_to(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
1210 struct trace_t trace = {NULL, "string::NativeString::copy_to (bin/../lib/standard//string.nit:510,2--65)"};
1211 trace.prev = tracehead; tracehead = &trace;
1212 (void)memcpy(UNBOX_NativeString( param0)+UNTAG_Int( param3), UNBOX_NativeString( self)+UNTAG_Int( param2), UNTAG_Int( param1));
1213 tracehead = trace.prev;
1214 return;
1215 }
1216 val_t string___NativeString___cstring_length(val_t self) {
1217 struct trace_t trace = {NULL, "string::NativeString::cstring_length (bin/../lib/standard//string.nit:512,2--517:10)"};
1218 val_t variable0;
1219 val_t variable1;
1220 trace.prev = tracehead; tracehead = &trace;
1221 variable0 = TAG_Int(0);
1222 while (true) { /*while*/
1223 variable1 = TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( variable0 /*l*/)]);
1224 variable1 = TAG_Bool((variable1)!=( TAG_Char('\0')));
1225 if (!UNTAG_Bool(variable1)) break; /* while*/
1226 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*l*/;
1227 continue_62: while(0);
1228 }
1229 break_62: while(0);
1230 variable0 = variable0 /*l*/;
1231 goto return_label61;
1232 return_label61: while(false);
1233 tracehead = trace.prev;
1234 return variable0;
1235 }
1236 val_t string___NativeString___atoi(val_t self) {
1237 struct trace_t trace = {NULL, "string::NativeString::atoi (bin/../lib/standard//string.nit:519,2--15)"};
1238 trace.prev = tracehead; tracehead = &trace;
1239 tracehead = trace.prev;
1240 return TAG_Int(atoi(UNBOX_NativeString( self)));
1241 }
1242 val_t string___StringCapable___calloc_string(val_t self, val_t param0) {
1243 struct trace_t trace = {NULL, "string::StringCapable::calloc_string (bin/../lib/standard//string.nit:524,2--54)"};
1244 trace.prev = tracehead; tracehead = &trace;
1245 tracehead = trace.prev;
1246 return BOX_NativeString((char*)malloc((UNTAG_Int( param0) * sizeof(char))));
1247 }
1248 val_t string___Sys___args(val_t self) {
1249 struct trace_t trace = {NULL, "string::Sys::args (bin/../lib/standard//string.nit:530,2--533:20)"};
1250 val_t variable0;
1251 trace.prev = tracehead; tracehead = &trace;
1252 variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/;
1253 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*IndexedCollection::==*/)))));
1254 if (UNTAG_Bool(variable0)) { /*if*/
1255 ((string___Sys___init_args_t)CALL( self,COLOR_string___Sys___init_args))( self) /*Sys::init_args*/;
1256 }
1257 variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/;
1258 goto return_label63;
1259 return_label63: while(false);
1260 tracehead = trace.prev;
1261 return variable0;
1262 }
1263 val_t string___Sys___program_name(val_t self) {
1264 struct trace_t trace = {NULL, "string::Sys::program_name (bin/../lib/standard//string.nit:536,2--539:46)"};
1265 val_t variable0;
1266 val_t variable1;
1267 trace.prev = tracehead; tracehead = &trace;
1268 variable0 = ((string___Sys___native_argv_t)CALL( self,COLOR_string___Sys___native_argv))( self, TAG_Int(0)) /*Sys::native_argv*/;
1269 variable1 = NEW_string___String___from_cstring(variable0); /*new String*/
1270 variable0 = variable1;
1271 goto return_label64;
1272 return_label64: while(false);
1273 tracehead = trace.prev;
1274 return variable0;
1275 }
1276 void string___Sys___init_args(val_t self) {
1277 struct trace_t trace = {NULL, "string::Sys::init_args (bin/../lib/standard//string.nit:542,2--552:20)"};
1278 val_t variable0;
1279 val_t variable1;
1280 val_t variable2;
1281 val_t variable3;
1282 val_t variable4;
1283 val_t variable5;
1284 trace.prev = tracehead; tracehead = &trace;
1285 variable1 = ((string___Sys___native_argc_t)CALL( self,COLOR_string___Sys___native_argc))( self) /*Sys::native_argc*/;
1286 variable0 = variable1;
1287 variable2 = NEW_array___Array___with_capacity( TAG_Int(0)); /*new Array[String]*/
1288 variable1 = variable2;
1289 variable2 = TAG_Int(1);
1290 while (true) { /*while*/
1291 variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable0 /*argc*/));
1292 if (!UNTAG_Bool(variable3)) break; /* while*/
1293 variable3 = TAG_Int(UNTAG_Int( variable2 /*i*/)-UNTAG_Int( TAG_Int(1)));
1294 variable4 = ((string___Sys___native_argv_t)CALL( self,COLOR_string___Sys___native_argv))( self, variable2 /*i*/) /*Sys::native_argv*/;
1295 variable5 = NEW_string___String___from_cstring(variable4); /*new String*/
1296 variable4 = variable5;
1297 ((array___Array_____braeq_t)CALL( variable1 /*args*/,COLOR_abstract_collection___Map_____braeq))( variable1 /*args*/, variable3, variable4) /*Array::[]=*/;
1298 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
1299 continue_66: while(0);
1300 }
1301 break_66: while(0);
1302 ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/ = variable1 /*args*/;
1303 tracehead = trace.prev;
1304 return;
1305 }
1306 val_t string___Sys___native_argc(val_t self) {
1307 struct trace_t trace = {NULL, "string::Sys::native_argc (bin/../lib/standard//string.nit:555,2--71)"};
1308 trace.prev = tracehead; tracehead = &trace;
1309 tracehead = trace.prev;
1310 return TAG_Int(kernel_Sys_Sys_native_argc_0( self));
1311 }
1312 val_t string___Sys___native_argv(val_t self, val_t param0) {
1313 struct trace_t trace = {NULL, "string::Sys::native_argv (bin/../lib/standard//string.nit:557,2--88)"};
1314 trace.prev = tracehead; tracehead = &trace;
1315 tracehead = trace.prev;
1316 return BOX_NativeString(kernel_Sys_Sys_native_argv_1( self, UNTAG_Int( param0)));
1317 }