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