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)"};
6 trace
.prev
= tracehead
; tracehead
= &trace
;
8 variable1
= ATTR_string___String____items( self
) /*String::_items*/;
9 variable1
= TAG_Char(UNBOX_NativeString(variable1
)[UNTAG_Int( variable0
/*index*/)]);
11 return_label0
: while(false);
12 tracehead
= trace
.prev
;
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)"};
21 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
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
));
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
;
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)"};
49 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
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
;
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)"};
73 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/
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=*/;
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
;
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)"};
108 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
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*/));
129 ((string___String___append_t
)CALL( self
,COLOR_SUPER_string___String___append
))( self
, param0
) /*super String::append*/;
131 tracehead
= trace
.prev
;
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)"};
140 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
152 return_label6
: while(false);
153 tracehead
= trace
.prev
;
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)"};
162 trace
.prev
= tracehead
; tracehead
= &trace
;
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);
179 variable1
= variable1
/*r*/;
181 return_label7
: while(false);
182 tracehead
= trace
.prev
;
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)"};
188 trace
.prev
= tracehead
; tracehead
= &trace
;
189 variable0
= NEW_string___String___from( self
); /*new String*/
191 return_label9
: while(false);
192 tracehead
= trace
.prev
;
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)"};
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
)));
202 return_label10
: while(false);
203 tracehead
= trace
.prev
;
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)"};
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*/;
212 return_label11
: while(false);
213 tracehead
= trace
.prev
;
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)"};
225 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
243 variable1
= variable1
/*i*/;
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=*/;
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=*/;
256 continue_13
: while(0);
257 ((array___ArrayIterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*ArrayIterator::next*/;
260 if (UNTAG_Bool( variable2
/*neg*/)) { /*if*/
261 variable3
= TAG_Int(-UNTAG_Int( variable1
/*i*/));
262 variable1
= variable3
;
265 variable1
= variable1
/*i*/;
268 return_label12
: while(false);
269 tracehead
= trace
.prev
;
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)"};
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*/;
281 return_label14
: while(false);
282 tracehead
= trace
.prev
;
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)"};
292 trace
.prev
= tracehead
; tracehead
= &trace
;
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=*/;
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=*/;
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);
324 variable2
= variable2
/*r*/;
327 variable2
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
330 return_label15
: while(false);
331 tracehead
= trace
.prev
;
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)"};
338 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
347 return_label17
: while(false);
348 tracehead
= trace
.prev
;
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)"};
361 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/));
379 variable6
= variable7
;
380 if (UNTAG_Bool(variable6
)) { /*if*/
381 variable2
= TAG_Bool(false);
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);
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);
399 variable2
= TAG_Bool(true);
401 return_label18
: while(false);
402 tracehead
= trace
.prev
;
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)"};
409 trace
.prev
= tracehead
; tracehead
= &trace
;
411 variable1
= ((string___String___has_substring_t
)CALL( self
,COLOR_string___String___has_substring
))( self
, variable0
/*prefix*/, TAG_Int(0)) /*String::has_substring*/;
413 return_label20
: while(false);
414 tracehead
= trace
.prev
;
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)"};
422 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
429 return_label21
: while(false);
430 tracehead
= trace
.prev
;
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)"};
442 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/));
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);
468 variable6
= TAG_Bool(UNTAG_Int( variable5
/*c2*/)<UNTAG_Int( variable4
/*c1*/));
469 if (UNTAG_Bool(variable6
)) { /*if*/
470 variable1
= TAG_Bool(false);
474 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
475 continue_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);
483 variable1
= TAG_Bool(false);
486 return_label22
: while(false);
487 tracehead
= trace
.prev
;
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
;
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)"};
505 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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)"};
528 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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)"};
546 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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)"};
564 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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)"};
583 trace
.prev
= tracehead
; tracehead
= &trace
;
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);
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
;
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)"};
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);
620 tracehead
= trace
.prev
;
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)"};
632 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/));
639 if (UNTAG_Bool(variable1
)) { /*if*/
640 variable1
= TAG_Bool(false);
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);
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);
668 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
669 continue_34
: while(0);
672 variable1
= TAG_Bool(true);
674 return_label33
: while(false);
675 tracehead
= trace
.prev
;
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)"};
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*/;
700 variable0
= variable0
/*s*/;
702 return_label35
: while(false);
703 tracehead
= trace
.prev
;
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)"};
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*/;
728 variable0
= variable0
/*s*/;
730 return_label37
: while(false);
731 tracehead
= trace
.prev
;
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*/;
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*/;
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)"};
749 trace
.prev
= tracehead
; tracehead
= &trace
;
750 variable0
= ((string___Object___inspect_t
)CALL( self
,COLOR_string___Object___inspect
))( self
) /*Object::inspect*/;
752 return_label39
: while(false);
753 tracehead
= trace
.prev
;
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)"};
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*/;
766 return_label40
: while(false);
767 tracehead
= trace
.prev
;
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)"};
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*/;
792 return_label41
: while(false);
793 tracehead
= trace
.prev
;
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)"};
799 trace
.prev
= tracehead
; tracehead
= &trace
;
801 variable0
= ((string___Sys___args_t
)CALL(variable0
,COLOR_string___Object___args
))(variable0
) /*Sys::args*/;
803 return_label42
: while(false);
804 tracehead
= trace
.prev
;
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)"};
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
;
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;
822 if (once_bool_variable0_45
) variable0
= once_value_variable0_45
;
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;
830 return_label43
: while(false);
831 tracehead
= trace
.prev
;
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)"};
843 trace
.prev
= tracehead
; tracehead
= &trace
;
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::[]=*/;
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::[]=*/;
859 variable3
= self
/*n=*/;
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)));
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);
882 return_label46
: while(false);
883 tracehead
= trace
.prev
;
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)"};
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*/;
892 return_label48
: while(false);
893 tracehead
= trace
.prev
;
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)"};
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*/;
902 return_label49
: while(false);
903 tracehead
= trace
.prev
;
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)"};
913 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
923 return_label50
: while(false);
924 tracehead
= trace
.prev
;
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)"};
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*/;
933 return_label51
: while(false);
934 tracehead
= trace
.prev
;
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)"};
952 trace
.prev
= tracehead
; tracehead
= &trace
;
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*/;
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);
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
;
997 return_label52
: while(false);
998 tracehead
= trace
.prev
;
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)"};
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
;
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)"};
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*/;
1034 continue_56
: while(0);
1035 ((abstract_collection___Iterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*Iterator::next*/;
1038 variable0
= variable0
/*s*/;
1039 goto return_label55
;
1040 return_label55
: while(false);
1041 tracehead
= trace
.prev
;
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)"};
1051 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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*/;
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*/;
1081 ((abstract_collection___Iterator___next_t
)CALL( variable2
/*i*/,COLOR_abstract_collection___Iterator___next
))( variable2
/*i*/) /*Iterator::next*/;
1082 continue_58
: while(0);
1085 variable1
= variable1
/*s*/;
1086 goto return_label57
;
1087 return_label57
: while(false);
1088 tracehead
= trace
.prev
;
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)"};
1111 trace
.prev
= tracehead
; tracehead
= &trace
;
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
;
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*/;
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*/;
1186 ((abstract_collection___Iterator___next_t
)CALL( variable3
/*i*/,COLOR_abstract_collection___Iterator___next
))( variable3
/*i*/) /*MapIterator::next*/;
1187 continue_60
: while(0);
1190 variable2
= variable2
/*s*/;
1191 goto return_label59
;
1192 return_label59
: while(false);
1193 tracehead
= trace
.prev
;
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
)]);
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
;
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
;
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)"};
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);
1230 variable0
= variable0
/*l*/;
1231 goto return_label61
;
1232 return_label61
: while(false);
1233 tracehead
= trace
.prev
;
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
)));
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))));
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)"};
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*/;
1257 variable0
= ATTR_string___Sys____args_cache( self
) /*Sys::_args_cache*/;
1258 goto return_label63
;
1259 return_label63
: while(false);
1260 tracehead
= trace
.prev
;
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)"};
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
;
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)"};
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);
1302 ATTR_string___Sys____args_cache( self
) /*Sys::_args_cache*/ = variable1
/*args*/;
1303 tracehead
= trace
.prev
;
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
));
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
)));