0d9f12c6092ebade04d1f070582bec541e02e2eb
[nit.git] / c_src / compiling___compiling_icode._sep.c
1 /* This C file is generated by NIT to compile module compiling___compiling_icode. */
2 #include "compiling___compiling_icode._sep.h"
3 val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_3; /* Once value */
10 static val_t once_value_4; /* Once value */
11 static val_t once_value_5; /* Once value */
12 static val_t once_value_6; /* Once value */
13 static val_t once_value_7; /* Once value */
14 static val_t once_value_8; /* Once value */
15 static val_t once_value_9; /* Once value */
16 static val_t once_value_10; /* Once value */
17 static val_t once_value_11; /* Once value */
18 static val_t once_value_12; /* Once value */
19 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20 fra.me.file = LOCATE_compiling___compiling_icode;
21 fra.me.line = 32;
22 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register;
23 fra.me.has_broke = 0;
24 fra.me.REG_size = 8;
25 fra.me.nitni_local_ref_head = NULL;
26 fra.me.REG[0] = NIT_NULL;
27 fra.me.REG[1] = NIT_NULL;
28 fra.me.REG[2] = NIT_NULL;
29 fra.me.REG[3] = NIT_NULL;
30 fra.me.REG[4] = NIT_NULL;
31 fra.me.REG[5] = NIT_NULL;
32 fra.me.REG[6] = NIT_NULL;
33 fra.me.REG[7] = NIT_NULL;
34 fra.me.REG[0] = p0;
35 fra.me.REG[1] = p1;
36 /* ./compiling//compiling_icode.nit:35 */
37 fra.me.REG[2] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
38 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
39 if (UNTAG_Bool(REGB0)) {
40 if (!once_value_1) {
41 fra.me.REG[2] = BOX_NativeString("NIT_NULL");
42 REGB0 = TAG_Int(8);
43 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
44 once_value_1 = fra.me.REG[2];
45 register_static_object(&once_value_1);
46 } else fra.me.REG[2] = once_value_1;
47 fra.me.REG[2] = fra.me.REG[2];
48 goto label2;
49 }
50 /* ./compiling//compiling_icode.nit:36 */
51 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
52 if (UNTAG_Bool(REGB0)) {
53 } else {
54 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 36);
55 }
56 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
57 /* ./compiling//compiling_icode.nit:37 */
58 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
59 if (UNTAG_Bool(REGB0)) {
60 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
61 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
62 } else {
63 REGB1 = TAG_Bool(false);
64 REGB0 = REGB1;
65 }
66 if (UNTAG_Bool(REGB0)) {
67 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0])!=NIT_NULL);
68 if (UNTAG_Bool(REGB0)) {
69 } else {
70 nit_abort("Uninitialized attribute %s", "_ids2", LOCATE_compiling___compiling_icode, 37);
71 }
72 fra.me.REG[4] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]);
73 fra.me.REG[3] = fra.me.REG[4];
74 }
75 /* ./compiling//compiling_icode.nit:38 */
76 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
77 if (UNTAG_Bool(REGB0)) {
78 /* ./compiling//compiling_icode.nit:39 */
79 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
80 fra.me.REG[2] = fra.me.REG[4];
81 goto label2;
82 } else {
83 /* ./compiling//compiling_icode.nit:41 */
84 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
85 /* ./compiling//compiling_icode.nit:42 */
86 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
87 if (UNTAG_Bool(REGB0)) {
88 } else {
89 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
90 if (UNTAG_Bool(REGB1)) {
91 REGB1 = TAG_Bool(false);
92 REGB0 = REGB1;
93 } else {
94 /* ./../lib/standard//kernel.nit:227 */
95 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
96 /* ./compiling//compiling_icode.nit:42 */
97 REGB0 = REGB1;
98 }
99 }
100 if (UNTAG_Bool(REGB0)) {
101 /* ./compiling//compiling_icode.nit:44 */
102 if (!once_value_3) {
103 fra.me.REG[5] = BOX_NativeString("NIT_NULL");
104 REGB0 = TAG_Int(8);
105 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
106 once_value_3 = fra.me.REG[5];
107 register_static_object(&once_value_3);
108 } else fra.me.REG[5] = once_value_3;
109 fra.me.REG[5] = fra.me.REG[5];
110 /* ./compiling//compiling_icode.nit:45 */
111 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5]);
112 /* ./compiling//compiling_icode.nit:46 */
113 fra.me.REG[2] = fra.me.REG[5];
114 goto label2;
115 } else {
116 /* ./compiling//compiling_icode.nit:50 */
117 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]);
118 if (UNTAG_Bool(REGB0)) {
119 /* ./compiling//compiling_icode.nit:51 */
120 if (!once_value_4) {
121 fra.me.REG[5] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
122 once_value_4 = fra.me.REG[5];
123 register_static_object(&once_value_4);
124 } else fra.me.REG[5] = once_value_4;
125 fra.me.REG[5] = fra.me.REG[5];
126 /* ./compiling//compiling_icode.nit:52 */
127 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
129 if (UNTAG_Bool(REGB0)) {
130 REGB0 = TAG_Int(3);
131 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
132 if (!once_value_5) {
133 fra.me.REG[7] = BOX_NativeString("REGB");
134 REGB0 = TAG_Int(4);
135 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
136 once_value_5 = fra.me.REG[7];
137 register_static_object(&once_value_5);
138 } else fra.me.REG[7] = once_value_5;
139 fra.me.REG[7] = fra.me.REG[7];
140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
141 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
143 if (!once_value_6) {
144 fra.me.REG[7] = BOX_NativeString("");
145 REGB0 = TAG_Int(0);
146 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
147 once_value_6 = fra.me.REG[7];
148 register_static_object(&once_value_6);
149 } else fra.me.REG[7] = once_value_6;
150 fra.me.REG[7] = fra.me.REG[7];
151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
152 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
153 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
154 }
155 } else {
156 /* ./compiling//compiling_icode.nit:53 */
157 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
158 if (UNTAG_Bool(REGB0)) {
159 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
161 } else {
162 REGB1 = TAG_Bool(false);
163 REGB0 = REGB1;
164 }
165 if (UNTAG_Bool(REGB0)) {
166 /* ./compiling//compiling_icode.nit:54 */
167 if (!once_value_7) {
168 fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
169 once_value_7 = fra.me.REG[0];
170 register_static_object(&once_value_7);
171 } else fra.me.REG[0] = once_value_7;
172 fra.me.REG[0] = fra.me.REG[0];
173 fra.me.REG[5] = fra.me.REG[0];
174 /* ./compiling//compiling_icode.nit:55 */
175 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
177 if (UNTAG_Bool(REGB0)) {
178 REGB0 = TAG_Int(3);
179 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
180 if (!once_value_8) {
181 fra.me.REG[6] = BOX_NativeString("closctx->REG[");
182 REGB0 = TAG_Int(13);
183 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
184 once_value_8 = fra.me.REG[6];
185 register_static_object(&once_value_8);
186 } else fra.me.REG[6] = once_value_8;
187 fra.me.REG[6] = fra.me.REG[6];
188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
189 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
190 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
191 if (!once_value_9) {
192 fra.me.REG[6] = BOX_NativeString("]");
193 REGB0 = TAG_Int(1);
194 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
195 once_value_9 = fra.me.REG[6];
196 register_static_object(&once_value_9);
197 } else fra.me.REG[6] = once_value_9;
198 fra.me.REG[6] = fra.me.REG[6];
199 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
200 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
201 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
202 }
203 } else {
204 /* ./compiling//compiling_icode.nit:57 */
205 if (!once_value_10) {
206 fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
207 once_value_10 = fra.me.REG[0];
208 register_static_object(&once_value_10);
209 } else fra.me.REG[0] = once_value_10;
210 fra.me.REG[0] = fra.me.REG[0];
211 fra.me.REG[5] = fra.me.REG[0];
212 /* ./compiling//compiling_icode.nit:58 */
213 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
215 if (UNTAG_Bool(REGB0)) {
216 REGB0 = TAG_Int(3);
217 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
218 if (!once_value_11) {
219 fra.me.REG[6] = BOX_NativeString("fra.me.REG[");
220 REGB0 = TAG_Int(11);
221 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
222 once_value_11 = fra.me.REG[6];
223 register_static_object(&once_value_11);
224 } else fra.me.REG[6] = once_value_11;
225 fra.me.REG[6] = fra.me.REG[6];
226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
227 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
229 if (!once_value_12) {
230 fra.me.REG[6] = BOX_NativeString("]");
231 REGB0 = TAG_Int(1);
232 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
233 once_value_12 = fra.me.REG[6];
234 register_static_object(&once_value_12);
235 } else fra.me.REG[6] = once_value_12;
236 fra.me.REG[6] = fra.me.REG[6];
237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
238 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
239 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
240 }
241 }
242 }
243 /* ./compiling//compiling_icode.nit:60 */
244 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
245 /* ./compiling//compiling_icode.nit:61 */
246 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
247 /* ./compiling//compiling_icode.nit:62 */
248 fra.me.REG[2] = fra.me.REG[4];
249 goto label2;
250 }
251 }
252 label2: while(0);
253 stack_frame_head = fra.me.prev;
254 return fra.me.REG[2];
255 }
256 val_t compiling___compiling_icode___I2CCompilerVisitor___registers(val_t p0, val_t p1){
257 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
258 val_t REGB0;
259 val_t tmp;
260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
261 fra.me.file = LOCATE_compiling___compiling_icode;
262 fra.me.line = 67;
263 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___registers;
264 fra.me.has_broke = 0;
265 fra.me.REG_size = 3;
266 fra.me.nitni_local_ref_head = NULL;
267 fra.me.REG[0] = NIT_NULL;
268 fra.me.REG[1] = NIT_NULL;
269 fra.me.REG[2] = NIT_NULL;
270 fra.me.REG[0] = p0;
271 fra.me.REG[1] = p1;
272 /* ./compiling//compiling_icode.nit:70 */
273 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
274 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
275 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___I2CCompilerVisitor___registers_1));
276 /* ./compiling//compiling_icode.nit:74 */
277 goto label2;
278 label2: while(0);
279 stack_frame_head = fra.me.prev;
280 return fra.me.REG[2];
281 }
282 void OC_compiling___compiling_icode___I2CCompilerVisitor___registers_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
283 struct {struct stack_frame_t me;} fra;
284 fun_t CREG[1];
285 val_t tmp;
286 /* ./compiling//compiling_icode.nit:71 */
287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
288 fra.me.file = LOCATE_compiling___compiling_icode;
289 fra.me.line = 0;
290 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___registers;
291 fra.me.has_broke = 0;
292 fra.me.REG_size = 1;
293 fra.me.nitni_local_ref_head = NULL;
294 fra.me.REG[0] = NIT_NULL;
295 fra.me.closure_ctx = closctx_param;
296 fra.me.closure_funs = CREG;
297 fra.me.REG[0] = p0;
298 CREG[0] = clos_fun0;
299 /* ./compiling//compiling_icode.nit:72 */
300 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
301 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
302 stack_frame_head = fra.me.prev;
303 return;
304 }
305 val_t compiling___compiling_icode___I2CCompilerVisitor___new_number(val_t p0){
306 struct {struct stack_frame_t me;} fra;
307 val_t REGB0;
308 val_t REGB1;
309 val_t tmp;
310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
311 fra.me.file = LOCATE_compiling___compiling_icode;
312 fra.me.line = 78;
313 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_number;
314 fra.me.has_broke = 0;
315 fra.me.REG_size = 1;
316 fra.me.nitni_local_ref_head = NULL;
317 fra.me.REG[0] = NIT_NULL;
318 fra.me.REG[0] = p0;
319 /* ./compiling//compiling_icode.nit:81 */
320 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
321 REGB1 = TAG_Int(1);
322 /* ./../lib/standard//kernel.nit:235 */
323 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
324 /* ./compiling//compiling_icode.nit:81 */
325 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1;
326 /* ./compiling//compiling_icode.nit:82 */
327 REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL);
328 if (UNTAG_Bool(REGB1)) {
329 } else {
330 nit_abort("Uninitialized attribute %s", "_last_number", LOCATE_compiling___compiling_icode, 82);
331 }
332 REGB1 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
333 goto label1;
334 label1: while(0);
335 stack_frame_head = fra.me.prev;
336 return REGB1;
337 }
338 val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){
339 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
340 val_t REGB0;
341 val_t tmp;
342 static val_t once_value_2; /* Once value */
343 static val_t once_value_3; /* Once value */
344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
345 fra.me.file = LOCATE_compiling___compiling_icode;
346 fra.me.line = 85;
347 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___lab;
348 fra.me.has_broke = 0;
349 fra.me.REG_size = 5;
350 fra.me.nitni_local_ref_head = NULL;
351 fra.me.REG[0] = NIT_NULL;
352 fra.me.REG[1] = NIT_NULL;
353 fra.me.REG[2] = NIT_NULL;
354 fra.me.REG[3] = NIT_NULL;
355 fra.me.REG[4] = NIT_NULL;
356 fra.me.REG[0] = p0;
357 fra.me.REG[1] = p1;
358 /* ./compiling//compiling_icode.nit:88 */
359 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
360 if (UNTAG_Bool(REGB0)) {
361 } else {
362 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 88);
363 }
364 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
365 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
366 if (UNTAG_Bool(REGB0)) {
367 /* ./compiling//compiling_icode.nit:89 */
368 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
369 if (UNTAG_Bool(REGB0)) {
370 } else {
371 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 89);
372 }
373 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
374 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
375 goto label1;
376 } else {
377 /* ./compiling//compiling_icode.nit:91 */
378 REGB0 = TAG_Int(3);
379 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
380 if (!once_value_2) {
381 fra.me.REG[4] = BOX_NativeString("label");
382 REGB0 = TAG_Int(5);
383 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
384 once_value_2 = fra.me.REG[4];
385 register_static_object(&once_value_2);
386 } else fra.me.REG[4] = once_value_2;
387 fra.me.REG[4] = fra.me.REG[4];
388 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
389 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[0])(fra.me.REG[0]);
390 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
392 if (!once_value_3) {
393 fra.me.REG[4] = BOX_NativeString("");
394 REGB0 = TAG_Int(0);
395 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
396 once_value_3 = fra.me.REG[4];
397 register_static_object(&once_value_3);
398 } else fra.me.REG[4] = once_value_3;
399 fra.me.REG[4] = fra.me.REG[4];
400 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
401 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
402 /* ./compiling//compiling_icode.nit:92 */
403 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
404 if (UNTAG_Bool(REGB0)) {
405 } else {
406 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 92);
407 }
408 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
409 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
410 /* ./compiling//compiling_icode.nit:93 */
411 fra.me.REG[2] = fra.me.REG[3];
412 goto label1;
413 }
414 label1: while(0);
415 stack_frame_head = fra.me.prev;
416 return fra.me.REG[2];
417 }
418 val_t compiling___compiling_icode___I2CCompilerVisitor___closures(val_t p0){
419 struct {struct stack_frame_t me;} fra;
420 val_t REGB0;
421 val_t tmp;
422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
423 fra.me.file = LOCATE_compiling___compiling_icode;
424 fra.me.line = 97;
425 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closures;
426 fra.me.has_broke = 0;
427 fra.me.REG_size = 1;
428 fra.me.nitni_local_ref_head = NULL;
429 fra.me.REG[0] = NIT_NULL;
430 fra.me.REG[0] = p0;
431 /* ./compiling//compiling_icode.nit:97 */
432 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL);
433 if (UNTAG_Bool(REGB0)) {
434 } else {
435 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_compiling___compiling_icode, 97);
436 }
437 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]);
438 stack_frame_head = fra.me.prev;
439 return fra.me.REG[0];
440 }
441 val_t compiling___compiling_icode___I2CCompilerVisitor___clostypes(val_t p0){
442 struct {struct stack_frame_t me;} fra;
443 val_t REGB0;
444 val_t tmp;
445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
446 fra.me.file = LOCATE_compiling___compiling_icode;
447 fra.me.line = 100;
448 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___clostypes;
449 fra.me.has_broke = 0;
450 fra.me.REG_size = 1;
451 fra.me.nitni_local_ref_head = NULL;
452 fra.me.REG[0] = NIT_NULL;
453 fra.me.REG[0] = p0;
454 /* ./compiling//compiling_icode.nit:100 */
455 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL);
456 if (UNTAG_Bool(REGB0)) {
457 } else {
458 nit_abort("Uninitialized attribute %s", "_clostypes", LOCATE_compiling___compiling_icode, 100);
459 }
460 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]);
461 stack_frame_head = fra.me.prev;
462 return fra.me.REG[0];
463 }
464 val_t compiling___compiling_icode___I2CCompilerVisitor___local_labels(val_t p0){
465 struct {struct stack_frame_t me;} fra;
466 val_t REGB0;
467 val_t tmp;
468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
469 fra.me.file = LOCATE_compiling___compiling_icode;
470 fra.me.line = 103;
471 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels;
472 fra.me.has_broke = 0;
473 fra.me.REG_size = 1;
474 fra.me.nitni_local_ref_head = NULL;
475 fra.me.REG[0] = NIT_NULL;
476 fra.me.REG[0] = p0;
477 /* ./compiling//compiling_icode.nit:103 */
478 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL);
479 if (UNTAG_Bool(REGB0)) {
480 } else {
481 nit_abort("Uninitialized attribute %s", "_local_labels", LOCATE_compiling___compiling_icode, 103);
482 }
483 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]);
484 stack_frame_head = fra.me.prev;
485 return fra.me.REG[0];
486 }
487 void compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(val_t p0, val_t p1){
488 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
489 val_t tmp;
490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
491 fra.me.file = LOCATE_compiling___compiling_icode;
492 fra.me.line = 103;
493 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq;
494 fra.me.has_broke = 0;
495 fra.me.REG_size = 2;
496 fra.me.nitni_local_ref_head = NULL;
497 fra.me.REG[0] = NIT_NULL;
498 fra.me.REG[1] = NIT_NULL;
499 fra.me.REG[0] = p0;
500 fra.me.REG[1] = p1;
501 /* ./compiling//compiling_icode.nit:103 */
502 ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
503 stack_frame_head = fra.me.prev;
504 return;
505 }
506 val_t compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0){
507 struct {struct stack_frame_t me;} fra;
508 val_t REGB0;
509 val_t tmp;
510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
511 fra.me.file = LOCATE_compiling___compiling_icode;
512 fra.me.line = 106;
513 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels;
514 fra.me.has_broke = 0;
515 fra.me.REG_size = 1;
516 fra.me.nitni_local_ref_head = NULL;
517 fra.me.REG[0] = NIT_NULL;
518 fra.me.REG[0] = p0;
519 /* ./compiling//compiling_icode.nit:106 */
520 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
521 if (UNTAG_Bool(REGB0)) {
522 } else {
523 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 106);
524 }
525 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
526 stack_frame_head = fra.me.prev;
527 return fra.me.REG[0];
528 }
529 void compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(val_t p0, val_t p1){
530 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
531 val_t tmp;
532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
533 fra.me.file = LOCATE_compiling___compiling_icode;
534 fra.me.line = 106;
535 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq;
536 fra.me.has_broke = 0;
537 fra.me.REG_size = 2;
538 fra.me.nitni_local_ref_head = NULL;
539 fra.me.REG[0] = NIT_NULL;
540 fra.me.REG[1] = NIT_NULL;
541 fra.me.REG[0] = p0;
542 fra.me.REG[1] = p1;
543 /* ./compiling//compiling_icode.nit:106 */
544 ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
545 stack_frame_head = fra.me.prev;
546 return;
547 }
548 val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(val_t p0, val_t p1){
549 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
550 val_t REGB0;
551 val_t REGB1;
552 val_t REGB2;
553 val_t tmp;
554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
555 fra.me.file = LOCATE_compiling___compiling_icode;
556 fra.me.line = 110;
557 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label;
558 fra.me.has_broke = 0;
559 fra.me.REG_size = 3;
560 fra.me.nitni_local_ref_head = NULL;
561 fra.me.REG[0] = NIT_NULL;
562 fra.me.REG[1] = NIT_NULL;
563 fra.me.REG[2] = NIT_NULL;
564 fra.me.REG[0] = p0;
565 fra.me.REG[1] = p1;
566 /* ./compiling//compiling_icode.nit:113 */
567 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
568 if (UNTAG_Bool(REGB0)) {
569 } else {
570 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 113);
571 }
572 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
573 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
574 if (UNTAG_Bool(REGB0)) {
575 /* ./compiling//compiling_icode.nit:114 */
576 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
577 if (UNTAG_Bool(REGB0)) {
578 } else {
579 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 114);
580 }
581 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
582 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
583 REGB0 = fra.me.REG[2];
584 goto label1;
585 } else {
586 /* ./compiling//compiling_icode.nit:116 */
587 REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
588 if (UNTAG_Bool(REGB1)) {
589 } else {
590 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 116);
591 }
592 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
593 REGB1 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[2])(fra.me.REG[2]);
594 REGB2 = TAG_Int(1);
595 /* ./../lib/standard//kernel.nit:235 */
596 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
597 /* ./compiling//compiling_icode.nit:117 */
598 REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
599 if (UNTAG_Bool(REGB1)) {
600 } else {
601 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 117);
602 }
603 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
604 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2);
605 /* ./compiling//compiling_icode.nit:118 */
606 REGB0 = REGB2;
607 goto label1;
608 }
609 label1: while(0);
610 stack_frame_head = fra.me.prev;
611 return REGB0;
612 }
613 void compiling___compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){
614 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
615 val_t REGB0;
616 val_t tmp;
617 static val_t once_value_1; /* Once value */
618 static val_t once_value_2; /* Once value */
619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
620 fra.me.file = LOCATE_compiling___compiling_icode;
621 fra.me.line = 122;
622 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_label;
623 fra.me.has_broke = 0;
624 fra.me.REG_size = 4;
625 fra.me.nitni_local_ref_head = NULL;
626 fra.me.REG[0] = NIT_NULL;
627 fra.me.REG[1] = NIT_NULL;
628 fra.me.REG[2] = NIT_NULL;
629 fra.me.REG[3] = NIT_NULL;
630 fra.me.REG[0] = p0;
631 fra.me.REG[1] = p1;
632 /* ./compiling//compiling_icode.nit:125 */
633 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
634 if (UNTAG_Bool(REGB0)) {
635 } else {
636 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 125);
637 }
638 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
639 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
640 if (UNTAG_Bool(REGB0)) {
641 /* ./compiling//compiling_icode.nit:126 */
642 REGB0 = TAG_Int(3);
643 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
644 if (!once_value_1) {
645 fra.me.REG[3] = BOX_NativeString("");
646 REGB0 = TAG_Int(0);
647 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
648 once_value_1 = fra.me.REG[3];
649 register_static_object(&once_value_1);
650 } else fra.me.REG[3] = once_value_1;
651 fra.me.REG[3] = fra.me.REG[3];
652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
653 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
654 if (UNTAG_Bool(REGB0)) {
655 } else {
656 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 126);
657 }
658 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
659 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
661 if (!once_value_2) {
662 fra.me.REG[1] = BOX_NativeString(": while(0);");
663 REGB0 = TAG_Int(11);
664 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
665 once_value_2 = fra.me.REG[1];
666 register_static_object(&once_value_2);
667 } else fra.me.REG[1] = once_value_2;
668 fra.me.REG[1] = fra.me.REG[1];
669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
670 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
671 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
672 }
673 stack_frame_head = fra.me.prev;
674 return;
675 }
676 void compiling___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){
677 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
678 val_t REGB0;
679 val_t REGB1;
680 val_t tmp;
681 static val_t once_value_1; /* Once value */
682 static val_t once_value_2; /* Once value */
683 static val_t once_value_3; /* Once value */
684 static val_t once_value_4; /* Once value */
685 static val_t once_value_5; /* Once value */
686 static val_t once_value_6; /* Once value */
687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
688 fra.me.file = LOCATE_compiling___compiling_icode;
689 fra.me.line = 130;
690 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_goto;
691 fra.me.has_broke = 0;
692 fra.me.REG_size = 5;
693 fra.me.nitni_local_ref_head = NULL;
694 fra.me.REG[0] = NIT_NULL;
695 fra.me.REG[1] = NIT_NULL;
696 fra.me.REG[2] = NIT_NULL;
697 fra.me.REG[3] = NIT_NULL;
698 fra.me.REG[4] = NIT_NULL;
699 fra.me.REG[0] = p0;
700 fra.me.REG[1] = p1;
701 /* ./compiling//compiling_icode.nit:130 */
702 fra.me.REG[2] = fra.me.REG[0];
703 /* ./compiling//compiling_icode.nit:133 */
704 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[2])(fra.me.REG[2]);
705 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
706 if (UNTAG_Bool(REGB0)) {
707 /* ./compiling//compiling_icode.nit:134 */
708 REGB0 = TAG_Int(3);
709 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
710 if (!once_value_1) {
711 fra.me.REG[4] = BOX_NativeString("goto ");
712 REGB0 = TAG_Int(5);
713 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
714 once_value_1 = fra.me.REG[4];
715 register_static_object(&once_value_1);
716 } else fra.me.REG[4] = once_value_1;
717 fra.me.REG[4] = fra.me.REG[4];
718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
719 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
721 if (!once_value_2) {
722 fra.me.REG[4] = BOX_NativeString(";");
723 REGB0 = TAG_Int(1);
724 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
725 once_value_2 = fra.me.REG[4];
726 register_static_object(&once_value_2);
727 } else fra.me.REG[4] = once_value_2;
728 fra.me.REG[4] = fra.me.REG[4];
729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
730 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
731 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
732 } else {
733 /* ./compiling//compiling_icode.nit:136 */
734 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[2])(fra.me.REG[2]);
735 if (UNTAG_Bool(REGB0)) {
736 } else {
737 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 136);
738 }
739 /* ./compiling//compiling_icode.nit:137 */
740 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
741 /* ./compiling//compiling_icode.nit:138 */
742 REGB1 = TAG_Int(3);
743 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
744 if (!once_value_3) {
745 fra.me.REG[3] = BOX_NativeString("closctx->has_broke = ");
746 REGB1 = TAG_Int(21);
747 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
748 once_value_3 = fra.me.REG[3];
749 register_static_object(&once_value_3);
750 } else fra.me.REG[3] = once_value_3;
751 fra.me.REG[3] = fra.me.REG[3];
752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
753 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
755 if (!once_value_4) {
756 fra.me.REG[3] = BOX_NativeString(";");
757 REGB0 = TAG_Int(1);
758 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
759 once_value_4 = fra.me.REG[3];
760 register_static_object(&once_value_4);
761 } else fra.me.REG[3] = once_value_4;
762 fra.me.REG[3] = fra.me.REG[3];
763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
764 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
765 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
766 /* ./compiling//compiling_icode.nit:139 */
767 REGB0 = TAG_Int(3);
768 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
769 if (!once_value_5) {
770 fra.me.REG[3] = BOX_NativeString("goto ");
771 REGB0 = TAG_Int(5);
772 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
773 once_value_5 = fra.me.REG[3];
774 register_static_object(&once_value_5);
775 } else fra.me.REG[3] = once_value_5;
776 fra.me.REG[3] = fra.me.REG[3];
777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
778 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[2])(fra.me.REG[2]);
779 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
780 if (UNTAG_Bool(REGB0)) {
781 } else {
782 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 139);
783 }
784 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
786 if (!once_value_6) {
787 fra.me.REG[3] = BOX_NativeString(";");
788 REGB0 = TAG_Int(1);
789 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
790 once_value_6 = fra.me.REG[3];
791 register_static_object(&once_value_6);
792 } else fra.me.REG[3] = once_value_6;
793 fra.me.REG[3] = fra.me.REG[3];
794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
795 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
796 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
797 }
798 stack_frame_head = fra.me.prev;
799 return;
800 }
801 val_t compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){
802 struct {struct stack_frame_t me;} fra;
803 val_t REGB0;
804 val_t tmp;
805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
806 fra.me.file = LOCATE_compiling___compiling_icode;
807 fra.me.line = 143;
808 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq;
809 fra.me.has_broke = 0;
810 fra.me.REG_size = 1;
811 fra.me.nitni_local_ref_head = NULL;
812 fra.me.REG[0] = NIT_NULL;
813 fra.me.REG[0] = p0;
814 /* ./compiling//compiling_icode.nit:143 */
815 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
816 if (UNTAG_Bool(REGB0)) {
817 } else {
818 nit_abort("Uninitialized attribute %s", "_marks_to_seq", LOCATE_compiling___compiling_icode, 143);
819 }
820 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]);
821 stack_frame_head = fra.me.prev;
822 return fra.me.REG[0];
823 }
824 val_t compiling___compiling_icode___I2CCompilerVisitor___closure(val_t p0){
825 struct {struct stack_frame_t me;} fra;
826 val_t REGB0;
827 val_t tmp;
828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
829 fra.me.file = LOCATE_compiling___compiling_icode;
830 fra.me.line = 146;
831 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure;
832 fra.me.has_broke = 0;
833 fra.me.REG_size = 1;
834 fra.me.nitni_local_ref_head = NULL;
835 fra.me.REG[0] = NIT_NULL;
836 fra.me.REG[0] = p0;
837 /* ./compiling//compiling_icode.nit:146 */
838 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
839 if (UNTAG_Bool(REGB0)) {
840 } else {
841 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_compiling___compiling_icode, 146);
842 }
843 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]);
844 stack_frame_head = fra.me.prev;
845 return REGB0;
846 }
847 void compiling___compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0, val_t p1){
848 struct {struct stack_frame_t me;} fra;
849 val_t REGB0;
850 val_t tmp;
851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
852 fra.me.file = LOCATE_compiling___compiling_icode;
853 fra.me.line = 146;
854 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure__eq;
855 fra.me.has_broke = 0;
856 fra.me.REG_size = 1;
857 fra.me.nitni_local_ref_head = NULL;
858 fra.me.REG[0] = NIT_NULL;
859 fra.me.REG[0] = p0;
860 REGB0 = p1;
861 /* ./compiling//compiling_icode.nit:146 */
862 ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
863 stack_frame_head = fra.me.prev;
864 return;
865 }
866 val_t compiling___compiling_icode___I2CCompilerVisitor___visitor(val_t p0){
867 struct {struct stack_frame_t me;} fra;
868 val_t REGB0;
869 val_t tmp;
870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
871 fra.me.file = LOCATE_compiling___compiling_icode;
872 fra.me.line = 149;
873 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___visitor;
874 fra.me.has_broke = 0;
875 fra.me.REG_size = 1;
876 fra.me.nitni_local_ref_head = NULL;
877 fra.me.REG[0] = NIT_NULL;
878 fra.me.REG[0] = p0;
879 /* ./compiling//compiling_icode.nit:149 */
880 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
881 if (UNTAG_Bool(REGB0)) {
882 } else {
883 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_compiling___compiling_icode, 149);
884 }
885 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]);
886 stack_frame_head = fra.me.prev;
887 return fra.me.REG[0];
888 }
889 val_t compiling___compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){
890 struct {struct stack_frame_t me;} fra;
891 val_t REGB0;
892 val_t tmp;
893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
894 fra.me.file = LOCATE_compiling___compiling_icode;
895 fra.me.line = 152;
896 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___iroutine;
897 fra.me.has_broke = 0;
898 fra.me.REG_size = 1;
899 fra.me.nitni_local_ref_head = NULL;
900 fra.me.REG[0] = NIT_NULL;
901 fra.me.REG[0] = p0;
902 /* ./compiling//compiling_icode.nit:152 */
903 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
904 if (UNTAG_Bool(REGB0)) {
905 } else {
906 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_compiling___compiling_icode, 152);
907 }
908 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]);
909 stack_frame_head = fra.me.prev;
910 return fra.me.REG[0];
911 }
912 val_t compiling___compiling_icode___I2CCompilerVisitor___return_label(val_t p0){
913 struct {struct stack_frame_t me;} fra;
914 val_t tmp;
915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
916 fra.me.file = LOCATE_compiling___compiling_icode;
917 fra.me.line = 155;
918 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label;
919 fra.me.has_broke = 0;
920 fra.me.REG_size = 1;
921 fra.me.nitni_local_ref_head = NULL;
922 fra.me.REG[0] = NIT_NULL;
923 fra.me.REG[0] = p0;
924 /* ./compiling//compiling_icode.nit:155 */
925 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]);
926 stack_frame_head = fra.me.prev;
927 return fra.me.REG[0];
928 }
929 void compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0, val_t p1){
930 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
931 val_t tmp;
932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
933 fra.me.file = LOCATE_compiling___compiling_icode;
934 fra.me.line = 155;
935 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq;
936 fra.me.has_broke = 0;
937 fra.me.REG_size = 2;
938 fra.me.nitni_local_ref_head = NULL;
939 fra.me.REG[0] = NIT_NULL;
940 fra.me.REG[1] = NIT_NULL;
941 fra.me.REG[0] = p0;
942 fra.me.REG[1] = p1;
943 /* ./compiling//compiling_icode.nit:155 */
944 ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
945 stack_frame_head = fra.me.prev;
946 return;
947 }
948 void compiling___compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t p1){
949 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
950 val_t tmp;
951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
952 fra.me.file = LOCATE_compiling___compiling_icode;
953 fra.me.line = 158;
954 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_decl;
955 fra.me.has_broke = 0;
956 fra.me.REG_size = 2;
957 fra.me.nitni_local_ref_head = NULL;
958 fra.me.REG[0] = NIT_NULL;
959 fra.me.REG[1] = NIT_NULL;
960 fra.me.REG[0] = p0;
961 fra.me.REG[1] = p1;
962 /* ./compiling//compiling_icode.nit:160 */
963 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
964 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
965 stack_frame_head = fra.me.prev;
966 return;
967 }
968 val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
969 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
970 val_t REGB0;
971 val_t REGB1;
972 val_t tmp;
973 static val_t once_value_1; /* Once value */
974 static val_t once_value_2; /* Once value */
975 static val_t once_value_3; /* Once value */
976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
977 fra.me.file = LOCATE_compiling___compiling_icode;
978 fra.me.line = 163;
979 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_instr;
980 fra.me.has_broke = 0;
981 fra.me.REG_size = 4;
982 fra.me.nitni_local_ref_head = NULL;
983 fra.me.REG[0] = NIT_NULL;
984 fra.me.REG[1] = NIT_NULL;
985 fra.me.REG[2] = NIT_NULL;
986 fra.me.REG[3] = NIT_NULL;
987 fra.me.REG[0] = p0;
988 /* ./compiling//compiling_icode.nit:167 */
989 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
990 fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
991 /* ./compiling//compiling_icode.nit:168 */
992 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]);
993 /* ./compiling//compiling_icode.nit:169 */
994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
995 if (UNTAG_Bool(REGB0)) {
996 } else {
997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
998 if (UNTAG_Bool(REGB1)) {
999 REGB1 = TAG_Bool(false);
1000 REGB0 = REGB1;
1001 } else {
1002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1003 REGB0 = REGB1;
1004 }
1005 }
1006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1007 if (UNTAG_Bool(REGB0)) {
1008 /* ./compiling//compiling_icode.nit:170 */
1009 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1010 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1011 /* ./compiling//compiling_icode.nit:171 */
1012 if (!once_value_1) {
1013 fra.me.REG[3] = BOX_NativeString("/* ");
1014 REGB0 = TAG_Int(3);
1015 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1016 once_value_1 = fra.me.REG[3];
1017 register_static_object(&once_value_1);
1018 } else fra.me.REG[3] = once_value_1;
1019 fra.me.REG[3] = fra.me.REG[3];
1020 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1021 /* ./compiling//compiling_icode.nit:172 */
1022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1023 if (UNTAG_Bool(REGB0)) {
1024 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
1025 }
1026 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1027 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1028 if (UNTAG_Bool(REGB0)) {
1029 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
1030 }
1031 fra.me.REG[3] = CALL_location___SourceFile___filename(fra.me.REG[3])(fra.me.REG[3]);
1032 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1033 /* ./compiling//compiling_icode.nit:173 */
1034 if (!once_value_2) {
1035 fra.me.REG[3] = BOX_NativeString(":");
1036 REGB0 = TAG_Int(1);
1037 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1038 once_value_2 = fra.me.REG[3];
1039 register_static_object(&once_value_2);
1040 } else fra.me.REG[3] = once_value_2;
1041 fra.me.REG[3] = fra.me.REG[3];
1042 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1043 /* ./compiling//compiling_icode.nit:174 */
1044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1045 if (UNTAG_Bool(REGB0)) {
1046 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 174);
1047 }
1048 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1049 fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
1050 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1051 /* ./compiling//compiling_icode.nit:175 */
1052 if (!once_value_3) {
1053 fra.me.REG[2] = BOX_NativeString(" */\n");
1054 REGB0 = TAG_Int(4);
1055 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1056 once_value_3 = fra.me.REG[2];
1057 register_static_object(&once_value_3);
1058 } else fra.me.REG[2] = once_value_3;
1059 fra.me.REG[2] = fra.me.REG[2];
1060 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1061 /* ./compiling//compiling_icode.nit:176 */
1062 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL;
1063 }
1064 /* ./compiling//compiling_icode.nit:178 */
1065 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1066 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1067 /* ./compiling//compiling_icode.nit:179 */
1068 goto label4;
1069 label4: while(0);
1070 stack_frame_head = fra.me.prev;
1071 return fra.me.REG[1];
1072 }
1073 void compiling___compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){
1074 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1075 val_t REGB0;
1076 val_t tmp;
1077 static val_t once_value_1; /* Once value */
1078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1079 fra.me.file = LOCATE_compiling___compiling_icode;
1080 fra.me.line = 182;
1081 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_instr;
1082 fra.me.has_broke = 0;
1083 fra.me.REG_size = 2;
1084 fra.me.nitni_local_ref_head = NULL;
1085 fra.me.REG[0] = NIT_NULL;
1086 fra.me.REG[1] = NIT_NULL;
1087 fra.me.REG[0] = p0;
1088 fra.me.REG[1] = p1;
1089 /* ./compiling//compiling_icode.nit:184 */
1090 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]);
1091 fra.me.REG[1] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1092 if (!once_value_1) {
1093 fra.me.REG[0] = BOX_NativeString("\n");
1094 REGB0 = TAG_Int(1);
1095 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1096 once_value_1 = fra.me.REG[0];
1097 register_static_object(&once_value_1);
1098 } else fra.me.REG[0] = once_value_1;
1099 fra.me.REG[0] = fra.me.REG[0];
1100 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1101 stack_frame_head = fra.me.prev;
1102 return;
1103 }
1104 void compiling___compiling_icode___I2CCompilerVisitor___indent(val_t p0){
1105 struct {struct stack_frame_t me;} fra;
1106 val_t tmp;
1107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1108 fra.me.file = LOCATE_compiling___compiling_icode;
1109 fra.me.line = 187;
1110 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___indent;
1111 fra.me.has_broke = 0;
1112 fra.me.REG_size = 1;
1113 fra.me.nitni_local_ref_head = NULL;
1114 fra.me.REG[0] = NIT_NULL;
1115 fra.me.REG[0] = p0;
1116 /* ./compiling//compiling_icode.nit:189 */
1117 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1118 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]);
1119 stack_frame_head = fra.me.prev;
1120 return;
1121 }
1122 void compiling___compiling_icode___I2CCompilerVisitor___unindent(val_t p0){
1123 struct {struct stack_frame_t me;} fra;
1124 val_t tmp;
1125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1126 fra.me.file = LOCATE_compiling___compiling_icode;
1127 fra.me.line = 192;
1128 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___unindent;
1129 fra.me.has_broke = 0;
1130 fra.me.REG_size = 1;
1131 fra.me.nitni_local_ref_head = NULL;
1132 fra.me.REG[0] = NIT_NULL;
1133 fra.me.REG[0] = p0;
1134 /* ./compiling//compiling_icode.nit:194 */
1135 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1136 CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]);
1137 stack_frame_head = fra.me.prev;
1138 return;
1139 }
1140 void compiling___compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, val_t p2){
1141 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1142 val_t tmp;
1143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1144 fra.me.file = LOCATE_compiling___compiling_icode;
1145 fra.me.line = 197;
1146 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_assignment;
1147 fra.me.has_broke = 0;
1148 fra.me.REG_size = 3;
1149 fra.me.nitni_local_ref_head = NULL;
1150 fra.me.REG[0] = NIT_NULL;
1151 fra.me.REG[1] = NIT_NULL;
1152 fra.me.REG[2] = NIT_NULL;
1153 fra.me.REG[0] = p0;
1154 fra.me.REG[1] = p1;
1155 fra.me.REG[2] = p2;
1156 /* ./compiling//compiling_icode.nit:199 */
1157 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1158 CALL_compiling___compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1159 stack_frame_head = fra.me.prev;
1160 return;
1161 }
1162 void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){
1163 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1164 val_t REGB0;
1165 val_t REGB1;
1166 val_t REGB2;
1167 val_t tmp;
1168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1169 fra.me.file = LOCATE_compiling___compiling_icode;
1170 fra.me.line = 205;
1171 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_location;
1172 fra.me.has_broke = 0;
1173 fra.me.REG_size = 5;
1174 fra.me.nitni_local_ref_head = NULL;
1175 fra.me.REG[0] = NIT_NULL;
1176 fra.me.REG[1] = NIT_NULL;
1177 fra.me.REG[2] = NIT_NULL;
1178 fra.me.REG[3] = NIT_NULL;
1179 fra.me.REG[4] = NIT_NULL;
1180 fra.me.REG[0] = p0;
1181 fra.me.REG[1] = p1;
1182 /* ./compiling//compiling_icode.nit:209 */
1183 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]);
1184 /* ./compiling//compiling_icode.nit:210 */
1185 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1186 if (UNTAG_Bool(REGB0)) {
1187 } else {
1188 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1189 if (UNTAG_Bool(REGB1)) {
1190 REGB1 = TAG_Bool(false);
1191 REGB0 = REGB1;
1192 } else {
1193 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1194 REGB0 = REGB1;
1195 }
1196 }
1197 if (UNTAG_Bool(REGB0)) {
1198 REGB0 = TAG_Bool(true);
1199 } else {
1200 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1201 if (UNTAG_Bool(REGB1)) {
1202 } else {
1203 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1204 if (UNTAG_Bool(REGB2)) {
1205 REGB2 = TAG_Bool(false);
1206 REGB1 = REGB2;
1207 } else {
1208 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1209 REGB1 = REGB2;
1210 }
1211 }
1212 REGB0 = REGB1;
1213 }
1214 if (UNTAG_Bool(REGB0)) {
1215 goto label1;
1216 }
1217 /* ./compiling//compiling_icode.nit:211 */
1218 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
1219 /* ./compiling//compiling_icode.nit:212 */
1220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1221 if (UNTAG_Bool(REGB0)) {
1222 } else {
1223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1224 if (UNTAG_Bool(REGB1)) {
1225 REGB1 = TAG_Bool(false);
1226 REGB0 = REGB1;
1227 } else {
1228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1229 REGB0 = REGB1;
1230 }
1231 }
1232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1233 if (UNTAG_Bool(REGB0)) {
1234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1235 if (UNTAG_Bool(REGB0)) {
1236 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1237 }
1238 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1239 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1240 if (UNTAG_Bool(REGB0)) {
1241 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1242 }
1243 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]);
1244 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[4]));
1245 if (UNTAG_Bool(REGB0)) {
1246 } else {
1247 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1248 if (UNTAG_Bool(REGB1)) {
1249 REGB1 = TAG_Bool(false);
1250 REGB0 = REGB1;
1251 } else {
1252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1253 REGB0 = REGB1;
1254 }
1255 }
1256 } else {
1257 REGB1 = TAG_Bool(false);
1258 REGB0 = REGB1;
1259 }
1260 if (UNTAG_Bool(REGB0)) {
1261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1262 if (UNTAG_Bool(REGB0)) {
1263 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1264 }
1265 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1266 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1267 if (UNTAG_Bool(REGB1)) {
1268 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1269 }
1270 REGB1 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]);
1271 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1272 if (UNTAG_Bool(REGB2)) {
1273 } else {
1274 /* ./../lib/standard//kernel.nit:227 */
1275 REGB1 = TAG_Bool((REGB0)==(REGB1));
1276 /* ./compiling//compiling_icode.nit:212 */
1277 REGB2 = REGB1;
1278 }
1279 } else {
1280 REGB1 = TAG_Bool(false);
1281 REGB2 = REGB1;
1282 }
1283 if (UNTAG_Bool(REGB2)) {
1284 /* ./compiling//compiling_icode.nit:213 */
1285 goto label1;
1286 } else {
1287 /* ./compiling//compiling_icode.nit:215 */
1288 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
1289 }
1290 label1: while(0);
1291 stack_frame_head = fra.me.prev;
1292 return;
1293 }
1294 val_t compiling___compiling_icode___I2CCompilerVisitor___basecname(val_t p0){
1295 struct {struct stack_frame_t me;} fra;
1296 val_t REGB0;
1297 val_t tmp;
1298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1299 fra.me.file = LOCATE_compiling___compiling_icode;
1300 fra.me.line = 219;
1301 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___basecname;
1302 fra.me.has_broke = 0;
1303 fra.me.REG_size = 1;
1304 fra.me.nitni_local_ref_head = NULL;
1305 fra.me.REG[0] = NIT_NULL;
1306 fra.me.REG[0] = p0;
1307 /* ./compiling//compiling_icode.nit:219 */
1308 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
1309 if (UNTAG_Bool(REGB0)) {
1310 } else {
1311 nit_abort("Uninitialized attribute %s", "_basecname", LOCATE_compiling___compiling_icode, 219);
1312 }
1313 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]);
1314 stack_frame_head = fra.me.prev;
1315 return fra.me.REG[0];
1316 }
1317 void compiling___compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1318 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___compiling_icode___I2CCompilerVisitor].i;
1319 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1320 val_t tmp;
1321 if (init_table[itpos0]) return;
1322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1323 fra.me.file = LOCATE_compiling___compiling_icode;
1324 fra.me.line = 222;
1325 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___init;
1326 fra.me.has_broke = 0;
1327 fra.me.REG_size = 4;
1328 fra.me.nitni_local_ref_head = NULL;
1329 fra.me.REG[0] = NIT_NULL;
1330 fra.me.REG[1] = NIT_NULL;
1331 fra.me.REG[2] = NIT_NULL;
1332 fra.me.REG[3] = NIT_NULL;
1333 fra.me.REG[0] = p0;
1334 fra.me.REG[1] = p1;
1335 fra.me.REG[2] = p2;
1336 fra.me.REG[3] = p3;
1337 /* ./compiling//compiling_icode.nit:224 */
1338 ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1];
1339 /* ./compiling//compiling_icode.nit:225 */
1340 ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2];
1341 /* ./compiling//compiling_icode.nit:226 */
1342 ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3];
1343 stack_frame_head = fra.me.prev;
1344 init_table[itpos0] = 1;
1345 return;
1346 }
1347 val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
1348 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
1349 val_t REGB0;
1350 val_t REGB1;
1351 val_t REGB2;
1352 val_t REGB3;
1353 val_t REGB4;
1354 val_t REGB5;
1355 val_t tmp;
1356 static val_t once_value_1; /* Once value */
1357 static val_t once_value_2; /* Once value */
1358 static val_t once_value_3; /* Once value */
1359 static val_t once_value_4; /* Once value */
1360 static val_t once_value_6; /* Once value */
1361 static val_t once_value_7; /* Once value */
1362 static val_t once_value_8; /* Once value */
1363 static val_t once_value_9; /* Once value */
1364 static val_t once_value_10; /* Once value */
1365 static val_t once_value_11; /* Once value */
1366 static val_t once_value_13; /* Once value */
1367 static val_t once_value_14; /* Once value */
1368 static val_t once_value_15; /* Once value */
1369 static val_t once_value_16; /* Once value */
1370 static val_t once_value_17; /* Once value */
1371 static val_t once_value_18; /* Once value */
1372 static val_t once_value_19; /* Once value */
1373 static val_t once_value_20; /* Once value */
1374 static val_t once_value_21; /* Once value */
1375 static val_t once_value_22; /* Once value */
1376 static val_t once_value_23; /* Once value */
1377 static val_t once_value_25; /* Once value */
1378 static val_t once_value_26; /* Once value */
1379 static val_t once_value_27; /* Once value */
1380 static val_t once_value_28; /* Once value */
1381 static val_t once_value_29; /* Once value */
1382 static val_t once_value_30; /* Once value */
1383 static val_t once_value_31; /* Once value */
1384 static val_t once_value_32; /* Once value */
1385 static val_t once_value_33; /* Once value */
1386 static val_t once_value_34; /* Once value */
1387 static val_t once_value_35; /* Once value */
1388 static val_t once_value_36; /* Once value */
1389 static val_t once_value_37; /* Once value */
1390 static val_t once_value_38; /* Once value */
1391 static val_t once_value_39; /* Once value */
1392 static val_t once_value_40; /* Once value */
1393 static val_t once_value_41; /* Once value */
1394 static val_t once_value_42; /* Once value */
1395 static val_t once_value_43; /* Once value */
1396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1397 fra.me.file = LOCATE_compiling___compiling_icode;
1398 fra.me.line = 231;
1399 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_signature_to_c;
1400 fra.me.has_broke = 0;
1401 fra.me.REG_size = 12;
1402 fra.me.nitni_local_ref_head = NULL;
1403 fra.me.REG[0] = NIT_NULL;
1404 fra.me.REG[1] = NIT_NULL;
1405 fra.me.REG[2] = NIT_NULL;
1406 fra.me.REG[3] = NIT_NULL;
1407 fra.me.REG[4] = NIT_NULL;
1408 fra.me.REG[5] = NIT_NULL;
1409 fra.me.REG[6] = NIT_NULL;
1410 fra.me.REG[7] = NIT_NULL;
1411 fra.me.REG[8] = NIT_NULL;
1412 fra.me.REG[9] = NIT_NULL;
1413 fra.me.REG[10] = NIT_NULL;
1414 fra.me.REG[11] = NIT_NULL;
1415 fra.me.REG[0] = p0;
1416 fra.me.REG[1] = p1;
1417 fra.me.REG[2] = p2;
1418 fra.me.REG[3] = p3;
1419 fra.me.REG[4] = p4;
1420 fra.me.REG[5] = p5;
1421 /* ./compiling//compiling_icode.nit:237 */
1422 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
1423 /* ./compiling//compiling_icode.nit:238 */
1424 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
1425 /* ./compiling//compiling_icode.nit:239 */
1426 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1427 if (UNTAG_Bool(REGB0)) {
1428 } else {
1429 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1430 if (UNTAG_Bool(REGB1)) {
1431 REGB1 = TAG_Bool(false);
1432 REGB0 = REGB1;
1433 } else {
1434 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1435 REGB0 = REGB1;
1436 }
1437 }
1438 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1439 if (UNTAG_Bool(REGB0)) {
1440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1441 }
1442 /* ./compiling//compiling_icode.nit:240 */
1443 REGB0 = TAG_Int(0);
1444 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
1445 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1446 /* ./../lib/standard//kernel.nit:352 */
1447 while(1) {
1448 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1449 if (UNTAG_Bool(REGB2)) {
1450 } else {
1451 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1452 }
1453 /* ./../lib/standard//kernel.nit:232 */
1454 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1455 /* ./../lib/standard//kernel.nit:352 */
1456 if (UNTAG_Bool(REGB2)) {
1457 /* ./compiling//compiling_icode.nit:240 */
1458 REGB2 = REGB0;
1459 /* ./compiling//compiling_icode.nit:241 */
1460 REGB3 = TAG_Int(3);
1461 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1462 if (!once_value_1) {
1463 fra.me.REG[8] = BOX_NativeString("p");
1464 REGB3 = TAG_Int(1);
1465 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1466 once_value_1 = fra.me.REG[8];
1467 register_static_object(&once_value_1);
1468 } else fra.me.REG[8] = once_value_1;
1469 fra.me.REG[8] = fra.me.REG[8];
1470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1471 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1473 if (!once_value_2) {
1474 fra.me.REG[8] = BOX_NativeString("");
1475 REGB3 = TAG_Int(0);
1476 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1477 once_value_2 = fra.me.REG[8];
1478 register_static_object(&once_value_2);
1479 } else fra.me.REG[8] = once_value_2;
1480 fra.me.REG[8] = fra.me.REG[8];
1481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1482 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1483 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1484 /* ./compiling//compiling_icode.nit:242 */
1485 REGB3 = TAG_Int(3);
1486 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1487 if (!once_value_3) {
1488 fra.me.REG[8] = BOX_NativeString("val_t p");
1489 REGB3 = TAG_Int(7);
1490 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1491 once_value_3 = fra.me.REG[8];
1492 register_static_object(&once_value_3);
1493 } else fra.me.REG[8] = once_value_3;
1494 fra.me.REG[8] = fra.me.REG[8];
1495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1496 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1498 if (!once_value_4) {
1499 fra.me.REG[8] = BOX_NativeString("");
1500 REGB2 = TAG_Int(0);
1501 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1502 once_value_4 = fra.me.REG[8];
1503 register_static_object(&once_value_4);
1504 } else fra.me.REG[8] = once_value_4;
1505 fra.me.REG[8] = fra.me.REG[8];
1506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1507 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1509 /* ./../lib/standard//kernel.nit:354 */
1510 REGB2 = TAG_Int(1);
1511 /* ./../lib/standard//kernel.nit:235 */
1512 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1513 /* ./../lib/standard//kernel.nit:354 */
1514 REGB0 = REGB2;
1515 } else {
1516 /* ./../lib/standard//kernel.nit:352 */
1517 goto label5;
1518 }
1519 }
1520 label5: while(0);
1521 /* ./compiling//compiling_icode.nit:244 */
1522 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1523 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1524 if (UNTAG_Bool(REGB0)) {
1525 } else {
1526 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1527 if (UNTAG_Bool(REGB1)) {
1528 REGB1 = TAG_Bool(false);
1529 REGB0 = REGB1;
1530 } else {
1531 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1532 REGB0 = REGB1;
1533 }
1534 }
1535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1536 if (UNTAG_Bool(REGB0)) {
1537 /* ./compiling//compiling_icode.nit:245 */
1538 if (!once_value_6) {
1539 fra.me.REG[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
1540 REGB0 = TAG_Int(35);
1541 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1542 once_value_6 = fra.me.REG[4];
1543 register_static_object(&once_value_6);
1544 } else fra.me.REG[4] = once_value_6;
1545 fra.me.REG[4] = fra.me.REG[4];
1546 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1547 /* ./compiling//compiling_icode.nit:246 */
1548 REGB0 = TAG_Int(0);
1549 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1550 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1551 if (UNTAG_Bool(REGB1)) {
1552 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 246);
1553 }
1554 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1555 /* ./../lib/standard//kernel.nit:352 */
1556 while(1) {
1557 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1558 if (UNTAG_Bool(REGB2)) {
1559 } else {
1560 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1561 }
1562 /* ./../lib/standard//kernel.nit:232 */
1563 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1564 /* ./../lib/standard//kernel.nit:352 */
1565 if (UNTAG_Bool(REGB2)) {
1566 /* ./compiling//compiling_icode.nit:246 */
1567 REGB2 = REGB0;
1568 /* ./compiling//compiling_icode.nit:247 */
1569 REGB3 = TAG_Int(5);
1570 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1571 if (!once_value_7) {
1572 fra.me.REG[8] = BOX_NativeString("CLOS_");
1573 REGB3 = TAG_Int(5);
1574 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1575 once_value_7 = fra.me.REG[8];
1576 register_static_object(&once_value_7);
1577 } else fra.me.REG[8] = once_value_7;
1578 fra.me.REG[8] = fra.me.REG[8];
1579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1581 if (!once_value_8) {
1582 fra.me.REG[8] = BOX_NativeString("_");
1583 REGB3 = TAG_Int(1);
1584 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1585 once_value_8 = fra.me.REG[8];
1586 register_static_object(&once_value_8);
1587 } else fra.me.REG[8] = once_value_8;
1588 fra.me.REG[8] = fra.me.REG[8];
1589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1590 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1592 if (!once_value_9) {
1593 fra.me.REG[8] = BOX_NativeString("");
1594 REGB3 = TAG_Int(0);
1595 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1596 once_value_9 = fra.me.REG[8];
1597 register_static_object(&once_value_9);
1598 } else fra.me.REG[8] = once_value_9;
1599 fra.me.REG[8] = fra.me.REG[8];
1600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1601 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1602 /* ./compiling//compiling_icode.nit:248 */
1603 fra.me.REG[8] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1604 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1605 if (UNTAG_Bool(REGB3)) {
1606 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1607 }
1608 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB2);
1609 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1610 if (UNTAG_Bool(REGB3)) {
1611 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1612 }
1613 fra.me.REG[8] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[8])(fra.me.REG[8]);
1614 fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[8])(fra.me.REG[8]);
1615 /* ./compiling//compiling_icode.nit:249 */
1616 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
1617 /* ./compiling//compiling_icode.nit:250 */
1618 if (!once_value_10) {
1619 fra.me.REG[10] = BOX_NativeString("struct stack_frame_t *");
1620 REGB3 = TAG_Int(22);
1621 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1622 once_value_10 = fra.me.REG[10];
1623 register_static_object(&once_value_10);
1624 } else fra.me.REG[10] = once_value_10;
1625 fra.me.REG[10] = fra.me.REG[10];
1626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1627 /* ./compiling//compiling_icode.nit:251 */
1628 REGB3 = TAG_Int(0);
1629 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
1630 /* ./../lib/standard//kernel.nit:352 */
1631 while(1) {
1632 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1633 if (UNTAG_Bool(REGB5)) {
1634 } else {
1635 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1636 }
1637 /* ./../lib/standard//kernel.nit:232 */
1638 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1639 /* ./../lib/standard//kernel.nit:352 */
1640 if (UNTAG_Bool(REGB5)) {
1641 /* ./compiling//compiling_icode.nit:252 */
1642 if (!once_value_11) {
1643 fra.me.REG[10] = BOX_NativeString("val_t");
1644 REGB5 = TAG_Int(5);
1645 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB5);
1646 once_value_11 = fra.me.REG[10];
1647 register_static_object(&once_value_11);
1648 } else fra.me.REG[10] = once_value_11;
1649 fra.me.REG[10] = fra.me.REG[10];
1650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1651 /* ./../lib/standard//kernel.nit:354 */
1652 REGB5 = TAG_Int(1);
1653 /* ./../lib/standard//kernel.nit:235 */
1654 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1655 /* ./../lib/standard//kernel.nit:354 */
1656 REGB3 = REGB5;
1657 } else {
1658 /* ./../lib/standard//kernel.nit:352 */
1659 goto label12;
1660 }
1661 }
1662 label12: while(0);
1663 /* ./compiling//compiling_icode.nit:254 */
1664 if (!once_value_13) {
1665 fra.me.REG[10] = BOX_NativeString("void");
1666 REGB3 = TAG_Int(4);
1667 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1668 once_value_13 = fra.me.REG[10];
1669 register_static_object(&once_value_13);
1670 } else fra.me.REG[10] = once_value_13;
1671 fra.me.REG[10] = fra.me.REG[10];
1672 /* ./compiling//compiling_icode.nit:255 */
1673 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
1674 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1675 if (UNTAG_Bool(REGB3)) {
1676 } else {
1677 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1678 if (UNTAG_Bool(REGB4)) {
1679 REGB4 = TAG_Bool(false);
1680 REGB3 = REGB4;
1681 } else {
1682 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
1683 REGB3 = REGB4;
1684 }
1685 }
1686 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
1687 if (UNTAG_Bool(REGB3)) {
1688 if (!once_value_14) {
1689 fra.me.REG[8] = BOX_NativeString("val_t");
1690 REGB3 = TAG_Int(5);
1691 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1692 once_value_14 = fra.me.REG[8];
1693 register_static_object(&once_value_14);
1694 } else fra.me.REG[8] = once_value_14;
1695 fra.me.REG[8] = fra.me.REG[8];
1696 fra.me.REG[10] = fra.me.REG[8];
1697 }
1698 /* ./compiling//compiling_icode.nit:256 */
1699 REGB3 = TAG_Int(7);
1700 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1701 if (!once_value_15) {
1702 fra.me.REG[11] = BOX_NativeString("typedef ");
1703 REGB3 = TAG_Int(8);
1704 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
1705 once_value_15 = fra.me.REG[11];
1706 register_static_object(&once_value_15);
1707 } else fra.me.REG[11] = once_value_15;
1708 fra.me.REG[11] = fra.me.REG[11];
1709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
1710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1711 if (!once_value_16) {
1712 fra.me.REG[10] = BOX_NativeString(" (*");
1713 REGB3 = TAG_Int(3);
1714 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1715 once_value_16 = fra.me.REG[10];
1716 register_static_object(&once_value_16);
1717 } else fra.me.REG[10] = once_value_16;
1718 fra.me.REG[10] = fra.me.REG[10];
1719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1721 if (!once_value_17) {
1722 fra.me.REG[4] = BOX_NativeString(")(");
1723 REGB3 = TAG_Int(2);
1724 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1725 once_value_17 = fra.me.REG[4];
1726 register_static_object(&once_value_17);
1727 } else fra.me.REG[4] = once_value_17;
1728 fra.me.REG[4] = fra.me.REG[4];
1729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1730 if (!once_value_18) {
1731 fra.me.REG[4] = BOX_NativeString(", ");
1732 REGB3 = TAG_Int(2);
1733 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1734 once_value_18 = fra.me.REG[4];
1735 register_static_object(&once_value_18);
1736 } else fra.me.REG[4] = once_value_18;
1737 fra.me.REG[4] = fra.me.REG[4];
1738 fra.me.REG[4] = CALL_standard___string___Collection___join(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[4]);
1739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1740 if (!once_value_19) {
1741 fra.me.REG[4] = BOX_NativeString(");");
1742 REGB3 = TAG_Int(2);
1743 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1744 once_value_19 = fra.me.REG[4];
1745 register_static_object(&once_value_19);
1746 } else fra.me.REG[4] = once_value_19;
1747 fra.me.REG[4] = fra.me.REG[4];
1748 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1749 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1750 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1751 /* ./compiling//compiling_icode.nit:257 */
1752 REGB3 = TAG_Int(3);
1753 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1754 if (!once_value_20) {
1755 fra.me.REG[4] = BOX_NativeString("clos_fun");
1756 REGB3 = TAG_Int(8);
1757 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1758 once_value_20 = fra.me.REG[4];
1759 register_static_object(&once_value_20);
1760 } else fra.me.REG[4] = once_value_20;
1761 fra.me.REG[4] = fra.me.REG[4];
1762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1763 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1765 if (!once_value_21) {
1766 fra.me.REG[4] = BOX_NativeString("");
1767 REGB3 = TAG_Int(0);
1768 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1769 once_value_21 = fra.me.REG[4];
1770 register_static_object(&once_value_21);
1771 } else fra.me.REG[4] = once_value_21;
1772 fra.me.REG[4] = fra.me.REG[4];
1773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1774 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1776 /* ./compiling//compiling_icode.nit:258 */
1777 REGB3 = TAG_Int(3);
1778 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1779 if (!once_value_22) {
1780 fra.me.REG[4] = BOX_NativeString("fun_t clos_fun");
1781 REGB3 = TAG_Int(14);
1782 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1783 once_value_22 = fra.me.REG[4];
1784 register_static_object(&once_value_22);
1785 } else fra.me.REG[4] = once_value_22;
1786 fra.me.REG[4] = fra.me.REG[4];
1787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1788 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1790 if (!once_value_23) {
1791 fra.me.REG[4] = BOX_NativeString("");
1792 REGB2 = TAG_Int(0);
1793 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
1794 once_value_23 = fra.me.REG[4];
1795 register_static_object(&once_value_23);
1796 } else fra.me.REG[4] = once_value_23;
1797 fra.me.REG[4] = fra.me.REG[4];
1798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1799 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1801 /* ./../lib/standard//kernel.nit:354 */
1802 REGB2 = TAG_Int(1);
1803 /* ./../lib/standard//kernel.nit:235 */
1804 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1805 /* ./../lib/standard//kernel.nit:354 */
1806 REGB0 = REGB2;
1807 } else {
1808 /* ./../lib/standard//kernel.nit:352 */
1809 goto label24;
1810 }
1811 }
1812 label24: while(0);
1813 }
1814 /* ./compiling//compiling_icode.nit:261 */
1815 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1816 if (UNTAG_Bool(REGB0)) {
1817 } else {
1818 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1819 if (UNTAG_Bool(REGB1)) {
1820 REGB1 = TAG_Bool(false);
1821 REGB0 = REGB1;
1822 } else {
1823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
1824 REGB0 = REGB1;
1825 }
1826 }
1827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1828 if (UNTAG_Bool(REGB0)) {
1829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
1830 }
1831 /* ./compiling//compiling_icode.nit:262 */
1832 if (!once_value_25) {
1833 fra.me.REG[5] = BOX_NativeString("void");
1834 REGB0 = TAG_Int(4);
1835 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1836 once_value_25 = fra.me.REG[5];
1837 register_static_object(&once_value_25);
1838 } else fra.me.REG[5] = once_value_25;
1839 fra.me.REG[5] = fra.me.REG[5];
1840 /* ./compiling//compiling_icode.nit:263 */
1841 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
1842 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1843 if (UNTAG_Bool(REGB0)) {
1844 } else {
1845 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1846 if (UNTAG_Bool(REGB1)) {
1847 REGB1 = TAG_Bool(false);
1848 REGB0 = REGB1;
1849 } else {
1850 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1851 REGB0 = REGB1;
1852 }
1853 }
1854 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1855 if (UNTAG_Bool(REGB0)) {
1856 if (!once_value_26) {
1857 fra.me.REG[0] = BOX_NativeString("val_t");
1858 REGB0 = TAG_Int(5);
1859 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1860 once_value_26 = fra.me.REG[0];
1861 register_static_object(&once_value_26);
1862 } else fra.me.REG[0] = once_value_26;
1863 fra.me.REG[0] = fra.me.REG[0];
1864 fra.me.REG[5] = fra.me.REG[0];
1865 }
1866 /* ./compiling//compiling_icode.nit:265 */
1867 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
1868 if (UNTAG_Bool(REGB0)) {
1869 /* ./compiling//compiling_icode.nit:266 */
1870 if (!once_value_27) {
1871 fra.me.REG[0] = BOX_NativeString("void");
1872 REGB0 = TAG_Int(4);
1873 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1874 once_value_27 = fra.me.REG[0];
1875 register_static_object(&once_value_27);
1876 } else fra.me.REG[0] = once_value_27;
1877 fra.me.REG[0] = fra.me.REG[0];
1878 } else {
1879 /* ./compiling//compiling_icode.nit:268 */
1880 if (!once_value_28) {
1881 fra.me.REG[8] = BOX_NativeString(", ");
1882 REGB0 = TAG_Int(2);
1883 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
1884 once_value_28 = fra.me.REG[8];
1885 register_static_object(&once_value_28);
1886 } else fra.me.REG[8] = once_value_28;
1887 fra.me.REG[8] = fra.me.REG[8];
1888 fra.me.REG[8] = CALL_standard___string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1889 fra.me.REG[0] = fra.me.REG[8];
1890 }
1891 /* ./compiling//compiling_icode.nit:270 */
1892 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1893 if (UNTAG_Bool(REGB0)) {
1894 } else {
1895 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1896 if (UNTAG_Bool(REGB1)) {
1897 REGB1 = TAG_Bool(false);
1898 REGB0 = REGB1;
1899 } else {
1900 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1901 REGB0 = REGB1;
1902 }
1903 }
1904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1905 if (UNTAG_Bool(REGB0)) {
1906 REGB0 = TAG_Int(5);
1907 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1908 if (!once_value_29) {
1909 fra.me.REG[7] = BOX_NativeString("static const char * const LOCATE_");
1910 REGB0 = TAG_Int(33);
1911 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1912 once_value_29 = fra.me.REG[7];
1913 register_static_object(&once_value_29);
1914 } else fra.me.REG[7] = once_value_29;
1915 fra.me.REG[7] = fra.me.REG[7];
1916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1918 if (!once_value_30) {
1919 fra.me.REG[7] = BOX_NativeString(" = \"");
1920 REGB0 = TAG_Int(4);
1921 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1922 once_value_30 = fra.me.REG[7];
1923 register_static_object(&once_value_30);
1924 } else fra.me.REG[7] = once_value_30;
1925 fra.me.REG[7] = fra.me.REG[7];
1926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1928 if (!once_value_31) {
1929 fra.me.REG[3] = BOX_NativeString("\";");
1930 REGB0 = TAG_Int(2);
1931 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1932 once_value_31 = fra.me.REG[3];
1933 register_static_object(&once_value_31);
1934 } else fra.me.REG[3] = once_value_31;
1935 fra.me.REG[3] = fra.me.REG[3];
1936 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1937 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1938 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1939 }
1940 /* ./compiling//compiling_icode.nit:271 */
1941 REGB0 = TAG_Int(7);
1942 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1943 if (!once_value_32) {
1944 fra.me.REG[3] = BOX_NativeString("");
1945 REGB0 = TAG_Int(0);
1946 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1947 once_value_32 = fra.me.REG[3];
1948 register_static_object(&once_value_32);
1949 } else fra.me.REG[3] = once_value_32;
1950 fra.me.REG[3] = fra.me.REG[3];
1951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1953 if (!once_value_33) {
1954 fra.me.REG[3] = BOX_NativeString(" ");
1955 REGB0 = TAG_Int(1);
1956 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1957 once_value_33 = fra.me.REG[3];
1958 register_static_object(&once_value_33);
1959 } else fra.me.REG[3] = once_value_33;
1960 fra.me.REG[3] = fra.me.REG[3];
1961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1963 if (!once_value_34) {
1964 fra.me.REG[3] = BOX_NativeString("(");
1965 REGB0 = TAG_Int(1);
1966 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1967 once_value_34 = fra.me.REG[3];
1968 register_static_object(&once_value_34);
1969 } else fra.me.REG[3] = once_value_34;
1970 fra.me.REG[3] = fra.me.REG[3];
1971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
1973 if (!once_value_35) {
1974 fra.me.REG[3] = BOX_NativeString(");");
1975 REGB0 = TAG_Int(2);
1976 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1977 once_value_35 = fra.me.REG[3];
1978 register_static_object(&once_value_35);
1979 } else fra.me.REG[3] = once_value_35;
1980 fra.me.REG[3] = fra.me.REG[3];
1981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1982 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1983 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1984 /* ./compiling//compiling_icode.nit:272 */
1985 REGB0 = TAG_Int(7);
1986 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1987 if (!once_value_36) {
1988 fra.me.REG[3] = BOX_NativeString("typedef ");
1989 REGB0 = TAG_Int(8);
1990 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1991 once_value_36 = fra.me.REG[3];
1992 register_static_object(&once_value_36);
1993 } else fra.me.REG[3] = once_value_36;
1994 fra.me.REG[3] = fra.me.REG[3];
1995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1997 if (!once_value_37) {
1998 fra.me.REG[3] = BOX_NativeString(" (*");
1999 REGB0 = TAG_Int(3);
2000 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2001 once_value_37 = fra.me.REG[3];
2002 register_static_object(&once_value_37);
2003 } else fra.me.REG[3] = once_value_37;
2004 fra.me.REG[3] = fra.me.REG[3];
2005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2007 if (!once_value_38) {
2008 fra.me.REG[3] = BOX_NativeString("_t)(");
2009 REGB0 = TAG_Int(4);
2010 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2011 once_value_38 = fra.me.REG[3];
2012 register_static_object(&once_value_38);
2013 } else fra.me.REG[3] = once_value_38;
2014 fra.me.REG[3] = fra.me.REG[3];
2015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2017 if (!once_value_39) {
2018 fra.me.REG[3] = BOX_NativeString(");");
2019 REGB0 = TAG_Int(2);
2020 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2021 once_value_39 = fra.me.REG[3];
2022 register_static_object(&once_value_39);
2023 } else fra.me.REG[3] = once_value_39;
2024 fra.me.REG[3] = fra.me.REG[3];
2025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2026 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2027 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2028 /* ./compiling//compiling_icode.nit:273 */
2029 REGB0 = TAG_Int(7);
2030 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2031 if (!once_value_40) {
2032 fra.me.REG[3] = BOX_NativeString("");
2033 REGB0 = TAG_Int(0);
2034 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2035 once_value_40 = fra.me.REG[3];
2036 register_static_object(&once_value_40);
2037 } else fra.me.REG[3] = once_value_40;
2038 fra.me.REG[3] = fra.me.REG[3];
2039 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2041 if (!once_value_41) {
2042 fra.me.REG[5] = BOX_NativeString(" ");
2043 REGB0 = TAG_Int(1);
2044 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2045 once_value_41 = fra.me.REG[5];
2046 register_static_object(&once_value_41);
2047 } else fra.me.REG[5] = once_value_41;
2048 fra.me.REG[5] = fra.me.REG[5];
2049 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2051 if (!once_value_42) {
2052 fra.me.REG[2] = BOX_NativeString("(");
2053 REGB0 = TAG_Int(1);
2054 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2055 once_value_42 = fra.me.REG[2];
2056 register_static_object(&once_value_42);
2057 } else fra.me.REG[2] = once_value_42;
2058 fra.me.REG[2] = fra.me.REG[2];
2059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2061 if (!once_value_43) {
2062 fra.me.REG[0] = BOX_NativeString("){");
2063 REGB0 = TAG_Int(2);
2064 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2065 once_value_43 = fra.me.REG[0];
2066 register_static_object(&once_value_43);
2067 } else fra.me.REG[0] = once_value_43;
2068 fra.me.REG[0] = fra.me.REG[0];
2069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2070 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2071 CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2072 /* ./compiling//compiling_icode.nit:274 */
2073 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
2074 /* ./compiling//compiling_icode.nit:275 */
2075 goto label44;
2076 label44: while(0);
2077 stack_frame_head = fra.me.prev;
2078 return fra.me.REG[6];
2079 }
2080 val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t p2){
2081 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2082 val_t REGB0;
2083 val_t REGB1;
2084 val_t REGB2;
2085 val_t REGB3;
2086 val_t REGB4;
2087 val_t REGB5;
2088 val_t tmp;
2089 static val_t once_value_1; /* Once value */
2090 static val_t once_value_2; /* Once value */
2091 static val_t once_value_3; /* Once value */
2092 static val_t once_value_4; /* Once value */
2093 static val_t once_value_5; /* Once value */
2094 static val_t once_value_6; /* Once value */
2095 static val_t once_value_7; /* Once value */
2096 static val_t once_value_8; /* Once value */
2097 static val_t once_value_9; /* Once value */
2098 static val_t once_value_10; /* Once value */
2099 static val_t once_value_11; /* Once value */
2100 static val_t once_value_12; /* Once value */
2101 static val_t once_value_13; /* Once value */
2102 static val_t once_value_14; /* Once value */
2103 static val_t once_value_15; /* Once value */
2104 static val_t once_value_16; /* Once value */
2105 static val_t once_value_18; /* Once value */
2106 static val_t once_value_19; /* Once value */
2107 static val_t once_value_21; /* Once value */
2108 static val_t once_value_22; /* Once value */
2109 static val_t once_value_23; /* Once value */
2110 static val_t once_value_24; /* Once value */
2111 static val_t once_value_27; /* Once value */
2112 static val_t once_value_28; /* Once value */
2113 static val_t once_value_30; /* Once value */
2114 static val_t once_value_31; /* Once value */
2115 static val_t once_value_32; /* Once value */
2116 static val_t once_value_34; /* Once value */
2117 static val_t once_value_35; /* Once value */
2118 static val_t once_value_36; /* Once value */
2119 static val_t once_value_37; /* Once value */
2120 static val_t once_value_38; /* Once value */
2121 static val_t once_value_39; /* Once value */
2122 static val_t once_value_41; /* Once value */
2123 static val_t once_value_42; /* Once value */
2124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2125 fra.me.file = LOCATE_compiling___compiling_icode;
2126 fra.me.line = 278;
2127 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2128 fra.me.has_broke = 0;
2129 fra.me.REG_size = 10;
2130 fra.me.nitni_local_ref_head = NULL;
2131 fra.me.REG[0] = NIT_NULL;
2132 fra.me.REG[1] = NIT_NULL;
2133 fra.me.REG[2] = NIT_NULL;
2134 fra.me.REG[3] = NIT_NULL;
2135 fra.me.REG[4] = NIT_NULL;
2136 fra.me.REG[5] = NIT_NULL;
2137 fra.me.REG[6] = NIT_NULL;
2138 fra.me.REG[7] = NIT_NULL;
2139 fra.me.REG[8] = NIT_NULL;
2140 fra.me.REG[9] = NIT_NULL;
2141 fra.me.REG[0] = p0;
2142 fra.me.REG[1] = p1;
2143 fra.me.REG[2] = p2;
2144 /* ./compiling//compiling_icode.nit:282 */
2145 REGB0 = TAG_Int(0);
2146 /* ./compiling//compiling_icode.nit:283 */
2147 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2148 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2149 if (UNTAG_Bool(REGB1)) {
2150 } else {
2151 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2152 if (UNTAG_Bool(REGB2)) {
2153 REGB2 = TAG_Bool(false);
2154 REGB1 = REGB2;
2155 } else {
2156 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2157 REGB1 = REGB2;
2158 }
2159 }
2160 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2161 if (UNTAG_Bool(REGB1)) {
2162 /* ./compiling//compiling_icode.nit:284 */
2163 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2164 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2165 if (UNTAG_Bool(REGB1)) {
2166 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 284);
2167 }
2168 REGB1 = CALL_location___Location___line_start(fra.me.REG[3])(fra.me.REG[3]);
2169 REGB0 = REGB1;
2170 }
2171 /* ./compiling//compiling_icode.nit:287 */
2172 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2173 REGB2 = TAG_Int(1);
2174 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2175 if (UNTAG_Bool(REGB3)) {
2176 } else {
2177 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2178 }
2179 /* ./../lib/standard//kernel.nit:234 */
2180 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2181 /* ./compiling//compiling_icode.nit:287 */
2182 if (UNTAG_Bool(REGB2)) {
2183 /* ./compiling//compiling_icode.nit:288 */
2184 REGB2 = TAG_Int(3);
2185 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2186 if (!once_value_1) {
2187 fra.me.REG[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG[");
2188 REGB2 = TAG_Int(48);
2189 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2190 once_value_1 = fra.me.REG[4];
2191 register_static_object(&once_value_1);
2192 } else fra.me.REG[4] = once_value_1;
2193 fra.me.REG[4] = fra.me.REG[4];
2194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2195 REGB2 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2196 REGB1 = TAG_Int(1);
2197 /* ./../lib/standard//kernel.nit:237 */
2198 REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
2199 /* ./compiling//compiling_icode.nit:288 */
2200 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
2201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2202 if (!once_value_2) {
2203 fra.me.REG[4] = BOX_NativeString("];} fra;");
2204 REGB1 = TAG_Int(8);
2205 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2206 once_value_2 = fra.me.REG[4];
2207 register_static_object(&once_value_2);
2208 } else fra.me.REG[4] = once_value_2;
2209 fra.me.REG[4] = fra.me.REG[4];
2210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2211 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2212 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2213 } else {
2214 /* ./compiling//compiling_icode.nit:290 */
2215 if (!once_value_3) {
2216 fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
2217 REGB1 = TAG_Int(38);
2218 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2219 once_value_3 = fra.me.REG[3];
2220 register_static_object(&once_value_3);
2221 } else fra.me.REG[3] = once_value_3;
2222 fra.me.REG[3] = fra.me.REG[3];
2223 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2224 }
2225 /* ./compiling//compiling_icode.nit:292 */
2226 if (!once_value_4) {
2227 fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
2228 REGB1 = TAG_Int(59);
2229 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2230 once_value_4 = fra.me.REG[3];
2231 register_static_object(&once_value_4);
2232 } else fra.me.REG[3] = once_value_4;
2233 fra.me.REG[3] = fra.me.REG[3];
2234 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2235 /* ./compiling//compiling_icode.nit:293 */
2236 REGB1 = TAG_Int(3);
2237 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2238 if (!once_value_5) {
2239 fra.me.REG[4] = BOX_NativeString("fra.me.file = LOCATE_");
2240 REGB1 = TAG_Int(21);
2241 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2242 once_value_5 = fra.me.REG[4];
2243 register_static_object(&once_value_5);
2244 } else fra.me.REG[4] = once_value_5;
2245 fra.me.REG[4] = fra.me.REG[4];
2246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2247 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
2248 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
2249 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[4])(fra.me.REG[4]);
2250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2251 if (!once_value_6) {
2252 fra.me.REG[4] = BOX_NativeString(";");
2253 REGB1 = TAG_Int(1);
2254 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2255 once_value_6 = fra.me.REG[4];
2256 register_static_object(&once_value_6);
2257 } else fra.me.REG[4] = once_value_6;
2258 fra.me.REG[4] = fra.me.REG[4];
2259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2260 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2261 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2262 /* ./compiling//compiling_icode.nit:294 */
2263 REGB1 = TAG_Int(3);
2264 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2265 if (!once_value_7) {
2266 fra.me.REG[4] = BOX_NativeString("fra.me.line = ");
2267 REGB1 = TAG_Int(14);
2268 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2269 once_value_7 = fra.me.REG[4];
2270 register_static_object(&once_value_7);
2271 } else fra.me.REG[4] = once_value_7;
2272 fra.me.REG[4] = fra.me.REG[4];
2273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2274 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2275 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2276 if (!once_value_8) {
2277 fra.me.REG[4] = BOX_NativeString(";");
2278 REGB0 = TAG_Int(1);
2279 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2280 once_value_8 = fra.me.REG[4];
2281 register_static_object(&once_value_8);
2282 } else fra.me.REG[4] = once_value_8;
2283 fra.me.REG[4] = fra.me.REG[4];
2284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2285 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2286 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2287 /* ./compiling//compiling_icode.nit:295 */
2288 REGB0 = TAG_Int(3);
2289 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2290 if (!once_value_9) {
2291 fra.me.REG[4] = BOX_NativeString("fra.me.meth = LOCATE_");
2292 REGB0 = TAG_Int(21);
2293 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2294 once_value_9 = fra.me.REG[4];
2295 register_static_object(&once_value_9);
2296 } else fra.me.REG[4] = once_value_9;
2297 fra.me.REG[4] = fra.me.REG[4];
2298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2299 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
2300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2301 if (!once_value_10) {
2302 fra.me.REG[4] = BOX_NativeString(";");
2303 REGB0 = TAG_Int(1);
2304 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2305 once_value_10 = fra.me.REG[4];
2306 register_static_object(&once_value_10);
2307 } else fra.me.REG[4] = once_value_10;
2308 fra.me.REG[4] = fra.me.REG[4];
2309 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2310 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2311 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2312 /* ./compiling//compiling_icode.nit:296 */
2313 if (!once_value_11) {
2314 fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;");
2315 REGB0 = TAG_Int(21);
2316 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2317 once_value_11 = fra.me.REG[3];
2318 register_static_object(&once_value_11);
2319 } else fra.me.REG[3] = once_value_11;
2320 fra.me.REG[3] = fra.me.REG[3];
2321 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2322 /* ./compiling//compiling_icode.nit:297 */
2323 REGB0 = TAG_Int(3);
2324 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2325 if (!once_value_12) {
2326 fra.me.REG[4] = BOX_NativeString("fra.me.REG_size = ");
2327 REGB0 = TAG_Int(18);
2328 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2329 once_value_12 = fra.me.REG[4];
2330 register_static_object(&once_value_12);
2331 } else fra.me.REG[4] = once_value_12;
2332 fra.me.REG[4] = fra.me.REG[4];
2333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2334 REGB0 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2335 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2337 if (!once_value_13) {
2338 fra.me.REG[4] = BOX_NativeString(";");
2339 REGB0 = TAG_Int(1);
2340 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2341 once_value_13 = fra.me.REG[4];
2342 register_static_object(&once_value_13);
2343 } else fra.me.REG[4] = once_value_13;
2344 fra.me.REG[4] = fra.me.REG[4];
2345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2346 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2347 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2348 /* ./compiling//compiling_icode.nit:298 */
2349 if (!once_value_14) {
2350 fra.me.REG[3] = BOX_NativeString("fra.me.nitni_local_ref_head = NULL;");
2351 REGB0 = TAG_Int(35);
2352 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2353 once_value_14 = fra.me.REG[3];
2354 register_static_object(&once_value_14);
2355 } else fra.me.REG[3] = once_value_14;
2356 fra.me.REG[3] = fra.me.REG[3];
2357 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2358 /* ./compiling//compiling_icode.nit:301 */
2359 REGB0 = TAG_Int(0);
2360 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2361 /* ./../lib/standard//kernel.nit:352 */
2362 while(1) {
2363 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2364 if (UNTAG_Bool(REGB2)) {
2365 } else {
2366 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2367 }
2368 /* ./../lib/standard//kernel.nit:232 */
2369 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2370 /* ./../lib/standard//kernel.nit:352 */
2371 if (UNTAG_Bool(REGB2)) {
2372 /* ./compiling//compiling_icode.nit:301 */
2373 REGB2 = REGB0;
2374 /* ./compiling//compiling_icode.nit:302 */
2375 REGB3 = TAG_Int(3);
2376 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2377 if (!once_value_15) {
2378 fra.me.REG[4] = BOX_NativeString("fra.me.REG[");
2379 REGB3 = TAG_Int(11);
2380 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2381 once_value_15 = fra.me.REG[4];
2382 register_static_object(&once_value_15);
2383 } else fra.me.REG[4] = once_value_15;
2384 fra.me.REG[4] = fra.me.REG[4];
2385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2386 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2388 if (!once_value_16) {
2389 fra.me.REG[4] = BOX_NativeString("] = NIT_NULL;");
2390 REGB2 = TAG_Int(13);
2391 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2392 once_value_16 = fra.me.REG[4];
2393 register_static_object(&once_value_16);
2394 } else fra.me.REG[4] = once_value_16;
2395 fra.me.REG[4] = fra.me.REG[4];
2396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2397 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2398 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2399 /* ./../lib/standard//kernel.nit:354 */
2400 REGB2 = TAG_Int(1);
2401 /* ./../lib/standard//kernel.nit:235 */
2402 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2403 /* ./../lib/standard//kernel.nit:354 */
2404 REGB0 = REGB2;
2405 } else {
2406 /* ./../lib/standard//kernel.nit:352 */
2407 goto label17;
2408 }
2409 }
2410 label17: while(0);
2411 /* ./compiling//compiling_icode.nit:304 */
2412 REGB0 = TAG_Int(0);
2413 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2414 /* ./../lib/standard//kernel.nit:352 */
2415 while(1) {
2416 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2417 if (UNTAG_Bool(REGB2)) {
2418 } else {
2419 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2420 }
2421 /* ./../lib/standard//kernel.nit:232 */
2422 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2423 /* ./../lib/standard//kernel.nit:352 */
2424 if (UNTAG_Bool(REGB2)) {
2425 /* ./compiling//compiling_icode.nit:304 */
2426 REGB2 = REGB0;
2427 /* ./compiling//compiling_icode.nit:305 */
2428 REGB3 = TAG_Int(3);
2429 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2430 if (!once_value_18) {
2431 fra.me.REG[4] = BOX_NativeString("val_t REGB");
2432 REGB3 = TAG_Int(10);
2433 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2434 once_value_18 = fra.me.REG[4];
2435 register_static_object(&once_value_18);
2436 } else fra.me.REG[4] = once_value_18;
2437 fra.me.REG[4] = fra.me.REG[4];
2438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2439 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2441 if (!once_value_19) {
2442 fra.me.REG[4] = BOX_NativeString(";");
2443 REGB2 = TAG_Int(1);
2444 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2445 once_value_19 = fra.me.REG[4];
2446 register_static_object(&once_value_19);
2447 } else fra.me.REG[4] = once_value_19;
2448 fra.me.REG[4] = fra.me.REG[4];
2449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2450 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2451 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2452 /* ./../lib/standard//kernel.nit:354 */
2453 REGB2 = TAG_Int(1);
2454 /* ./../lib/standard//kernel.nit:235 */
2455 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2456 /* ./../lib/standard//kernel.nit:354 */
2457 REGB0 = REGB2;
2458 } else {
2459 /* ./../lib/standard//kernel.nit:352 */
2460 goto label20;
2461 }
2462 }
2463 label20: while(0);
2464 /* ./compiling//compiling_icode.nit:307 */
2465 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
2466 /* ./compiling//compiling_icode.nit:308 */
2467 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2468 if (UNTAG_Bool(REGB0)) {
2469 } else {
2470 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2471 if (UNTAG_Bool(REGB1)) {
2472 REGB1 = TAG_Bool(false);
2473 REGB0 = REGB1;
2474 } else {
2475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2476 REGB0 = REGB1;
2477 }
2478 }
2479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2480 if (UNTAG_Bool(REGB0)) {
2481 /* ./compiling//compiling_icode.nit:309 */
2482 REGB0 = TAG_Int(3);
2483 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2484 if (!once_value_21) {
2485 fra.me.REG[5] = BOX_NativeString("fun_t CREG[");
2486 REGB0 = TAG_Int(11);
2487 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2488 once_value_21 = fra.me.REG[5];
2489 register_static_object(&once_value_21);
2490 } else fra.me.REG[5] = once_value_21;
2491 fra.me.REG[5] = fra.me.REG[5];
2492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2493 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2494 if (UNTAG_Bool(REGB0)) {
2495 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 309);
2496 }
2497 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2498 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2500 if (!once_value_22) {
2501 fra.me.REG[5] = BOX_NativeString("];");
2502 REGB0 = TAG_Int(2);
2503 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2504 once_value_22 = fra.me.REG[5];
2505 register_static_object(&once_value_22);
2506 } else fra.me.REG[5] = once_value_22;
2507 fra.me.REG[5] = fra.me.REG[5];
2508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2509 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2510 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2511 /* ./compiling//compiling_icode.nit:310 */
2512 if (!once_value_23) {
2513 fra.me.REG[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
2514 REGB0 = TAG_Int(35);
2515 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2516 once_value_23 = fra.me.REG[4];
2517 register_static_object(&once_value_23);
2518 } else fra.me.REG[4] = once_value_23;
2519 fra.me.REG[4] = fra.me.REG[4];
2520 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2521 /* ./compiling//compiling_icode.nit:311 */
2522 if (!once_value_24) {
2523 fra.me.REG[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
2524 REGB0 = TAG_Int(27);
2525 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2526 once_value_24 = fra.me.REG[4];
2527 register_static_object(&once_value_24);
2528 } else fra.me.REG[4] = once_value_24;
2529 fra.me.REG[4] = fra.me.REG[4];
2530 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2531 }
2532 /* ./compiling//compiling_icode.nit:313 */
2533 REGB0 = TAG_Int(0);
2534 fra.me.REG[4] = REGB0;
2535 /* ./compiling//compiling_icode.nit:314 */
2536 fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2537 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IRoutine___compile_inside_to_c_25));
2538 /* ./compiling//compiling_icode.nit:318 */
2539 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2540 if (UNTAG_Bool(REGB0)) {
2541 } else {
2542 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2543 if (UNTAG_Bool(REGB1)) {
2544 REGB1 = TAG_Bool(false);
2545 REGB0 = REGB1;
2546 } else {
2547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2548 REGB0 = REGB1;
2549 }
2550 }
2551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2552 if (UNTAG_Bool(REGB0)) {
2553 /* ./compiling//compiling_icode.nit:319 */
2554 REGB0 = TAG_Int(0);
2555 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2556 if (UNTAG_Bool(REGB1)) {
2557 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 319);
2558 }
2559 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2560 /* ./../lib/standard//kernel.nit:352 */
2561 while(1) {
2562 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2563 if (UNTAG_Bool(REGB2)) {
2564 } else {
2565 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2566 }
2567 /* ./../lib/standard//kernel.nit:232 */
2568 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2569 /* ./../lib/standard//kernel.nit:352 */
2570 if (UNTAG_Bool(REGB2)) {
2571 /* ./compiling//compiling_icode.nit:319 */
2572 REGB2 = REGB0;
2573 /* ./compiling//compiling_icode.nit:320 */
2574 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2575 if (UNTAG_Bool(REGB3)) {
2576 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 320);
2577 }
2578 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2579 /* ./compiling//compiling_icode.nit:321 */
2580 REGB3 = TAG_Int(5);
2581 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2582 if (!once_value_27) {
2583 fra.me.REG[6] = BOX_NativeString("CREG[");
2584 REGB3 = TAG_Int(5);
2585 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2586 once_value_27 = fra.me.REG[6];
2587 register_static_object(&once_value_27);
2588 } else fra.me.REG[6] = once_value_27;
2589 fra.me.REG[6] = fra.me.REG[6];
2590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2591 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2593 if (!once_value_28) {
2594 fra.me.REG[6] = BOX_NativeString("] = ");
2595 REGB3 = TAG_Int(4);
2596 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2597 once_value_28 = fra.me.REG[6];
2598 register_static_object(&once_value_28);
2599 } else fra.me.REG[6] = once_value_28;
2600 fra.me.REG[6] = fra.me.REG[6];
2601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2602 fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2603 REGB3 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
2604 /* ./../lib/standard//kernel.nit:235 */
2605 REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
2606 /* ./../lib/standard//collection//array.nit:278 */
2607 fra.me.REG[6] = fra.me.REG[2];
2608 /* ./../lib/standard//collection//array.nit:280 */
2609 REGB4 = TAG_Int(0);
2610 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2611 if (UNTAG_Bool(REGB5)) {
2612 } else {
2613 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2614 }
2615 /* ./../lib/standard//kernel.nit:233 */
2616 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2617 /* ./../lib/standard//collection//array.nit:280 */
2618 if (UNTAG_Bool(REGB4)) {
2619 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
2620 if (UNTAG_Bool(REGB4)) {
2621 } else {
2622 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2623 }
2624 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
2625 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2626 if (UNTAG_Bool(REGB5)) {
2627 } else {
2628 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2629 }
2630 /* ./../lib/standard//kernel.nit:232 */
2631 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2632 } else {
2633 /* ./../lib/standard//collection//array.nit:280 */
2634 REGB5 = TAG_Bool(false);
2635 REGB4 = REGB5;
2636 }
2637 if (UNTAG_Bool(REGB4)) {
2638 } else {
2639 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
2640 }
2641 /* ./../lib/standard//collection//array.nit:281 */
2642 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
2643 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2644 if (UNTAG_Bool(REGB4)) {
2645 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2646 }
2647 /* ./../lib/standard//collection//array.nit:718 */
2648 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
2649 /* ./../lib/standard//collection//array.nit:281 */
2650 goto label29;
2651 label29: while(0);
2652 /* ./compiling//compiling_icode.nit:321 */
2653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2654 if (!once_value_30) {
2655 fra.me.REG[6] = BOX_NativeString(";");
2656 REGB3 = TAG_Int(1);
2657 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2658 once_value_30 = fra.me.REG[6];
2659 register_static_object(&once_value_30);
2660 } else fra.me.REG[6] = once_value_30;
2661 fra.me.REG[6] = fra.me.REG[6];
2662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2663 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2664 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
2665 /* ./compiling//compiling_icode.nit:322 */
2666 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
2667 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2668 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
2669 /* ./compiling//compiling_icode.nit:323 */
2670 fra.me.REG[6] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]);
2671 fra.me.REG[6] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
2672 /* ./compiling//compiling_icode.nit:324 */
2673 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
2674 /* ./compiling//compiling_icode.nit:325 */
2675 if (!once_value_31) {
2676 fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *");
2677 REGB2 = TAG_Int(22);
2678 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2679 once_value_31 = fra.me.REG[7];
2680 register_static_object(&once_value_31);
2681 } else fra.me.REG[7] = once_value_31;
2682 fra.me.REG[7] = fra.me.REG[7];
2683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2684 /* ./compiling//compiling_icode.nit:326 */
2685 REGB2 = TAG_Int(0);
2686 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
2687 /* ./../lib/standard//kernel.nit:352 */
2688 while(1) {
2689 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2690 if (UNTAG_Bool(REGB4)) {
2691 } else {
2692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2693 }
2694 /* ./../lib/standard//kernel.nit:232 */
2695 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2696 /* ./../lib/standard//kernel.nit:352 */
2697 if (UNTAG_Bool(REGB4)) {
2698 /* ./compiling//compiling_icode.nit:327 */
2699 if (!once_value_32) {
2700 fra.me.REG[7] = BOX_NativeString("val_t");
2701 REGB4 = TAG_Int(5);
2702 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB4);
2703 once_value_32 = fra.me.REG[7];
2704 register_static_object(&once_value_32);
2705 } else fra.me.REG[7] = once_value_32;
2706 fra.me.REG[7] = fra.me.REG[7];
2707 /* ./compiling//compiling_icode.nit:328 */
2708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2709 /* ./../lib/standard//kernel.nit:354 */
2710 REGB4 = TAG_Int(1);
2711 /* ./../lib/standard//kernel.nit:235 */
2712 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
2713 /* ./../lib/standard//kernel.nit:354 */
2714 REGB2 = REGB4;
2715 } else {
2716 /* ./../lib/standard//kernel.nit:352 */
2717 goto label33;
2718 }
2719 }
2720 label33: while(0);
2721 /* ./compiling//compiling_icode.nit:330 */
2722 if (!once_value_34) {
2723 fra.me.REG[7] = BOX_NativeString("void");
2724 REGB2 = TAG_Int(4);
2725 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2726 once_value_34 = fra.me.REG[7];
2727 register_static_object(&once_value_34);
2728 } else fra.me.REG[7] = once_value_34;
2729 fra.me.REG[7] = fra.me.REG[7];
2730 /* ./compiling//compiling_icode.nit:331 */
2731 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
2732 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2733 if (UNTAG_Bool(REGB2)) {
2734 } else {
2735 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2736 if (UNTAG_Bool(REGB3)) {
2737 REGB3 = TAG_Bool(false);
2738 REGB2 = REGB3;
2739 } else {
2740 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2741 REGB2 = REGB3;
2742 }
2743 }
2744 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2745 if (UNTAG_Bool(REGB2)) {
2746 if (!once_value_35) {
2747 fra.me.REG[6] = BOX_NativeString("val_t");
2748 REGB2 = TAG_Int(5);
2749 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
2750 once_value_35 = fra.me.REG[6];
2751 register_static_object(&once_value_35);
2752 } else fra.me.REG[6] = once_value_35;
2753 fra.me.REG[6] = fra.me.REG[6];
2754 fra.me.REG[7] = fra.me.REG[6];
2755 }
2756 /* ./compiling//compiling_icode.nit:332 */
2757 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
2758 REGB2 = TAG_Int(5);
2759 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2760 if (!once_value_36) {
2761 fra.me.REG[9] = BOX_NativeString("");
2762 REGB2 = TAG_Int(0);
2763 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB2);
2764 once_value_36 = fra.me.REG[9];
2765 register_static_object(&once_value_36);
2766 } else fra.me.REG[9] = once_value_36;
2767 fra.me.REG[9] = fra.me.REG[9];
2768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
2769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2770 if (!once_value_37) {
2771 fra.me.REG[7] = BOX_NativeString(" (*)(");
2772 REGB2 = TAG_Int(5);
2773 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2774 once_value_37 = fra.me.REG[7];
2775 register_static_object(&once_value_37);
2776 } else fra.me.REG[7] = once_value_37;
2777 fra.me.REG[7] = fra.me.REG[7];
2778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2779 if (!once_value_38) {
2780 fra.me.REG[7] = BOX_NativeString(", ");
2781 REGB2 = TAG_Int(2);
2782 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2783 once_value_38 = fra.me.REG[7];
2784 register_static_object(&once_value_38);
2785 } else fra.me.REG[7] = once_value_38;
2786 fra.me.REG[7] = fra.me.REG[7];
2787 fra.me.REG[7] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2789 if (!once_value_39) {
2790 fra.me.REG[7] = BOX_NativeString(")");
2791 REGB2 = TAG_Int(1);
2792 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2793 once_value_39 = fra.me.REG[7];
2794 register_static_object(&once_value_39);
2795 } else fra.me.REG[7] = once_value_39;
2796 fra.me.REG[7] = fra.me.REG[7];
2797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2798 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2799 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8]);
2800 /* ./../lib/standard//kernel.nit:354 */
2801 REGB2 = TAG_Int(1);
2802 /* ./../lib/standard//kernel.nit:235 */
2803 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2804 /* ./../lib/standard//kernel.nit:354 */
2805 REGB0 = REGB2;
2806 } else {
2807 /* ./../lib/standard//kernel.nit:352 */
2808 goto label40;
2809 }
2810 }
2811 label40: while(0);
2812 }
2813 /* ./compiling//compiling_icode.nit:335 */
2814 if (!once_value_41) {
2815 fra.me.REG[2] = BOX_NativeString("val_t tmp;");
2816 REGB0 = TAG_Int(10);
2817 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2818 once_value_41 = fra.me.REG[2];
2819 register_static_object(&once_value_41);
2820 } else fra.me.REG[2] = once_value_41;
2821 fra.me.REG[2] = fra.me.REG[2];
2822 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2823 /* ./compiling//compiling_icode.nit:338 */
2824 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
2825 /* ./compiling//compiling_icode.nit:339 */
2826 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2827 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2828 /* ./compiling//compiling_icode.nit:342 */
2829 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2830 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2831 /* ./compiling//compiling_icode.nit:344 */
2832 if (!once_value_42) {
2833 fra.me.REG[3] = BOX_NativeString("stack_frame_head = fra.me.prev;");
2834 REGB0 = TAG_Int(31);
2835 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2836 once_value_42 = fra.me.REG[3];
2837 register_static_object(&once_value_42);
2838 } else fra.me.REG[3] = once_value_42;
2839 fra.me.REG[3] = fra.me.REG[3];
2840 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2841 /* ./compiling//compiling_icode.nit:345 */
2842 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2843 /* ./compiling//compiling_icode.nit:346 */
2844 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
2845 /* ./compiling//compiling_icode.nit:347 */
2846 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2847 if (UNTAG_Bool(REGB0)) {
2848 } else {
2849 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2850 if (UNTAG_Bool(REGB1)) {
2851 REGB1 = TAG_Bool(false);
2852 REGB0 = REGB1;
2853 } else {
2854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2855 REGB0 = REGB1;
2856 }
2857 }
2858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2859 if (UNTAG_Bool(REGB0)) {
2860 /* ./compiling//compiling_icode.nit:348 */
2861 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2862 goto label43;
2863 } else {
2864 /* ./compiling//compiling_icode.nit:350 */
2865 fra.me.REG[0] = NIT_NULL;
2866 goto label43;
2867 }
2868 label43: while(0);
2869 stack_frame_head = fra.me.prev;
2870 return fra.me.REG[0];
2871 }
2872 void OC_compiling___compiling_icode___IRoutine___compile_inside_to_c_25(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2873 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2874 val_t REGB0;
2875 val_t REGB1;
2876 val_t REGB2;
2877 fun_t CREG[1];
2878 val_t tmp;
2879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2880 fra.me.file = LOCATE_compiling___compiling_icode;
2881 fra.me.line = 0;
2882 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2883 fra.me.has_broke = 0;
2884 fra.me.REG_size = 2;
2885 fra.me.nitni_local_ref_head = NULL;
2886 fra.me.REG[0] = NIT_NULL;
2887 fra.me.REG[1] = NIT_NULL;
2888 fra.me.closure_ctx = closctx_param;
2889 fra.me.closure_funs = CREG;
2890 fra.me.REG[0] = p0;
2891 CREG[0] = clos_fun0;
2892 /* ./compiling//compiling_icode.nit:315 */
2893 fra.me.REG[1] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
2894 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2895 if (UNTAG_Bool(REGB0)) {
2896 } else {
2897 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2898 if (UNTAG_Bool(REGB1)) {
2899 REGB1 = TAG_Bool(false);
2900 REGB0 = REGB1;
2901 } else {
2902 /* ./../lib/standard//kernel.nit:227 */
2903 REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
2904 /* ./compiling//compiling_icode.nit:315 */
2905 REGB0 = REGB1;
2906 }
2907 }
2908 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2909 if (UNTAG_Bool(REGB0)) {
2910 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
2911 /* ./../lib/standard//collection//array.nit:278 */
2912 fra.me.REG[1] = closctx->REG[2];
2913 REGB0 = closctx->REG[4];
2914 /* ./../lib/standard//collection//array.nit:280 */
2915 REGB1 = TAG_Int(0);
2916 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2917 if (UNTAG_Bool(REGB2)) {
2918 } else {
2919 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2920 }
2921 /* ./../lib/standard//kernel.nit:233 */
2922 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2923 /* ./../lib/standard//collection//array.nit:280 */
2924 if (UNTAG_Bool(REGB1)) {
2925 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2926 if (UNTAG_Bool(REGB1)) {
2927 } else {
2928 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2929 }
2930 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2931 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2932 if (UNTAG_Bool(REGB2)) {
2933 } else {
2934 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2935 }
2936 /* ./../lib/standard//kernel.nit:232 */
2937 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2938 } else {
2939 /* ./../lib/standard//collection//array.nit:280 */
2940 REGB2 = TAG_Bool(false);
2941 REGB1 = REGB2;
2942 }
2943 if (UNTAG_Bool(REGB1)) {
2944 } else {
2945 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
2946 }
2947 /* ./../lib/standard//collection//array.nit:281 */
2948 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2949 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2950 if (UNTAG_Bool(REGB1)) {
2951 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2952 }
2953 /* ./../lib/standard//collection//array.nit:718 */
2954 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
2955 /* ./../lib/standard//collection//array.nit:281 */
2956 goto label26;
2957 label26: while(0);
2958 /* ./compiling//compiling_icode.nit:315 */
2959 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]);
2960 }
2961 /* ./compiling//compiling_icode.nit:316 */
2962 REGB0 = TAG_Int(1);
2963 /* ./../lib/standard//kernel.nit:235 */
2964 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0));
2965 /* ./compiling//compiling_icode.nit:316 */
2966 closctx->REG[4] = REGB0;
2967 stack_frame_head = fra.me.prev;
2968 return;
2969 }
2970 val_t compiling___compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1, val_t p2, val_t p3){
2971 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2972 val_t tmp;
2973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2974 fra.me.file = LOCATE_compiling___compiling_icode;
2975 fra.me.line = 354;
2976 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_to_c;
2977 fra.me.has_broke = 0;
2978 fra.me.REG_size = 4;
2979 fra.me.nitni_local_ref_head = NULL;
2980 fra.me.REG[0] = NIT_NULL;
2981 fra.me.REG[1] = NIT_NULL;
2982 fra.me.REG[2] = NIT_NULL;
2983 fra.me.REG[3] = NIT_NULL;
2984 fra.me.REG[0] = p0;
2985 fra.me.REG[1] = p1;
2986 fra.me.REG[2] = p2;
2987 fra.me.REG[3] = p3;
2988 /* ./compiling//compiling_icode.nit:358 */
2989 fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
2990 /* ./compiling//compiling_icode.nit:359 */
2991 fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2992 goto label1;
2993 label1: while(0);
2994 stack_frame_head = fra.me.prev;
2995 return fra.me.REG[3];
2996 }
2997 void compiling___compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){
2998 struct {struct stack_frame_t me;} fra;
2999 val_t tmp;
3000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3001 fra.me.file = LOCATE_compiling___compiling_icode;
3002 fra.me.line = 364;
3003 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___compile_to_c;
3004 fra.me.has_broke = 0;
3005 fra.me.REG_size = 0;
3006 fra.me.nitni_local_ref_head = NULL;
3007 /* ./compiling//compiling_icode.nit:364 */
3008 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 364);
3009 stack_frame_head = fra.me.prev;
3010 return;
3011 }
3012 val_t compiling___compiling_icode___ICode___need_result(val_t p0){
3013 struct {struct stack_frame_t me;} fra;
3014 val_t REGB0;
3015 val_t REGB1;
3016 val_t tmp;
3017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3018 fra.me.file = LOCATE_compiling___compiling_icode;
3019 fra.me.line = 367;
3020 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___need_result;
3021 fra.me.has_broke = 0;
3022 fra.me.REG_size = 1;
3023 fra.me.nitni_local_ref_head = NULL;
3024 fra.me.REG[0] = NIT_NULL;
3025 fra.me.REG[0] = p0;
3026 /* ./compiling//compiling_icode.nit:370 */
3027 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3028 /* ./compiling//compiling_icode.nit:371 */
3029 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3030 if (UNTAG_Bool(REGB0)) {
3031 } else {
3032 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3033 if (UNTAG_Bool(REGB1)) {
3034 REGB1 = TAG_Bool(false);
3035 REGB0 = REGB1;
3036 } else {
3037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3038 REGB0 = REGB1;
3039 }
3040 }
3041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3042 if (UNTAG_Bool(REGB0)) {
3043 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3044 if (UNTAG_Bool(REGB0)) {
3045 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 371);
3046 }
3047 fra.me.REG[0] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3048 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3049 if (UNTAG_Bool(REGB0)) {
3050 } else {
3051 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3052 if (UNTAG_Bool(REGB1)) {
3053 REGB1 = TAG_Bool(false);
3054 REGB0 = REGB1;
3055 } else {
3056 /* ./../lib/standard//kernel.nit:227 */
3057 REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL));
3058 /* ./compiling//compiling_icode.nit:371 */
3059 REGB0 = REGB1;
3060 }
3061 }
3062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3063 } else {
3064 REGB1 = TAG_Bool(false);
3065 REGB0 = REGB1;
3066 }
3067 goto label1;
3068 label1: while(0);
3069 stack_frame_head = fra.me.prev;
3070 return REGB0;
3071 }
3072 void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){
3073 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3074 val_t REGB0;
3075 val_t REGB1;
3076 val_t tmp;
3077 static val_t once_value_1; /* Once value */
3078 static val_t once_value_2; /* Once value */
3079 static val_t once_value_3; /* Once value */
3080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3081 fra.me.file = LOCATE_compiling___compiling_icode;
3082 fra.me.line = 374;
3083 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___store_result;
3084 fra.me.has_broke = 0;
3085 fra.me.REG_size = 5;
3086 fra.me.nitni_local_ref_head = NULL;
3087 fra.me.REG[0] = NIT_NULL;
3088 fra.me.REG[1] = NIT_NULL;
3089 fra.me.REG[2] = NIT_NULL;
3090 fra.me.REG[3] = NIT_NULL;
3091 fra.me.REG[4] = NIT_NULL;
3092 fra.me.REG[0] = p0;
3093 fra.me.REG[1] = p1;
3094 fra.me.REG[2] = p2;
3095 /* ./compiling//compiling_icode.nit:377 */
3096 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3097 /* ./compiling//compiling_icode.nit:378 */
3098 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3099 if (UNTAG_Bool(REGB0)) {
3100 } else {
3101 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3102 if (UNTAG_Bool(REGB1)) {
3103 REGB1 = TAG_Bool(false);
3104 REGB0 = REGB1;
3105 } else {
3106 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3107 REGB0 = REGB1;
3108 }
3109 }
3110 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3111 if (UNTAG_Bool(REGB0)) {
3112 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3113 if (UNTAG_Bool(REGB0)) {
3114 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 378);
3115 }
3116 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[3])(fra.me.REG[3]);
3117 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3118 if (UNTAG_Bool(REGB0)) {
3119 } else {
3120 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3121 if (UNTAG_Bool(REGB1)) {
3122 REGB1 = TAG_Bool(false);
3123 REGB0 = REGB1;
3124 } else {
3125 /* ./../lib/standard//kernel.nit:227 */
3126 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
3127 /* ./compiling//compiling_icode.nit:378 */
3128 REGB0 = REGB1;
3129 }
3130 }
3131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3132 } else {
3133 REGB1 = TAG_Bool(false);
3134 REGB0 = REGB1;
3135 }
3136 if (UNTAG_Bool(REGB0)) {
3137 /* ./compiling//compiling_icode.nit:379 */
3138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3139 if (UNTAG_Bool(REGB0)) {
3140 } else {
3141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3142 if (UNTAG_Bool(REGB1)) {
3143 REGB1 = TAG_Bool(false);
3144 REGB0 = REGB1;
3145 } else {
3146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3147 REGB0 = REGB1;
3148 }
3149 }
3150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3151 if (UNTAG_Bool(REGB0)) {
3152 } else {
3153 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 379);
3154 }
3155 /* ./compiling//compiling_icode.nit:380 */
3156 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3157 /* ./compiling//compiling_icode.nit:381 */
3158 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3159 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3160 /* ./compiling//compiling_icode.nit:382 */
3161 if (!once_value_1) {
3162 fra.me.REG[3] = BOX_NativeString(" = ");
3163 REGB0 = TAG_Int(3);
3164 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3165 once_value_1 = fra.me.REG[3];
3166 register_static_object(&once_value_1);
3167 } else fra.me.REG[3] = once_value_1;
3168 fra.me.REG[3] = fra.me.REG[3];
3169 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3170 /* ./compiling//compiling_icode.nit:383 */
3171 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3172 /* ./compiling//compiling_icode.nit:384 */
3173 if (!once_value_2) {
3174 fra.me.REG[3] = BOX_NativeString(";\n");
3175 REGB0 = TAG_Int(2);
3176 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3177 once_value_2 = fra.me.REG[3];
3178 register_static_object(&once_value_2);
3179 } else fra.me.REG[3] = once_value_2;
3180 fra.me.REG[3] = fra.me.REG[3];
3181 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3182 } else {
3183 /* ./compiling//compiling_icode.nit:385 */
3184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3185 if (UNTAG_Bool(REGB0)) {
3186 } else {
3187 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3188 if (UNTAG_Bool(REGB1)) {
3189 REGB1 = TAG_Bool(false);
3190 REGB0 = REGB1;
3191 } else {
3192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3193 REGB0 = REGB1;
3194 }
3195 }
3196 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3197 if (UNTAG_Bool(REGB0)) {
3198 REGB0 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3200 } else {
3201 REGB1 = TAG_Bool(false);
3202 REGB0 = REGB1;
3203 }
3204 if (UNTAG_Bool(REGB0)) {
3205 /* ./compiling//compiling_icode.nit:388 */
3206 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3207 /* ./compiling//compiling_icode.nit:389 */
3208 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3209 /* ./compiling//compiling_icode.nit:390 */
3210 if (!once_value_3) {
3211 fra.me.REG[2] = BOX_NativeString(";\n");
3212 REGB0 = TAG_Int(2);
3213 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3214 once_value_3 = fra.me.REG[2];
3215 register_static_object(&once_value_3);
3216 } else fra.me.REG[2] = once_value_3;
3217 fra.me.REG[2] = fra.me.REG[2];
3218 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3219 }
3220 }
3221 stack_frame_head = fra.me.prev;
3222 return;
3223 }
3224 val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
3225 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3226 val_t REGB0;
3227 val_t REGB1;
3228 val_t tmp;
3229 static val_t once_value_1; /* Once value */
3230 static val_t once_value_2; /* Once value */
3231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3232 fra.me.file = LOCATE_compiling___compiling_icode;
3233 fra.me.line = 394;
3234 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___new_result;
3235 fra.me.has_broke = 0;
3236 fra.me.REG_size = 4;
3237 fra.me.nitni_local_ref_head = NULL;
3238 fra.me.REG[0] = NIT_NULL;
3239 fra.me.REG[1] = NIT_NULL;
3240 fra.me.REG[2] = NIT_NULL;
3241 fra.me.REG[3] = NIT_NULL;
3242 fra.me.REG[0] = p0;
3243 fra.me.REG[1] = p1;
3244 /* ./compiling//compiling_icode.nit:398 */
3245 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
3246 if (UNTAG_Bool(REGB0)) {
3247 REGB0 = TAG_Bool(true);
3248 } else {
3249 REGB1 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3250 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3251 REGB0 = REGB1;
3252 }
3253 if (UNTAG_Bool(REGB0)) {
3254 } else {
3255 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 398);
3256 }
3257 /* ./compiling//compiling_icode.nit:399 */
3258 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3259 /* ./compiling//compiling_icode.nit:400 */
3260 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3261 /* ./compiling//compiling_icode.nit:401 */
3262 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3263 if (UNTAG_Bool(REGB0)) {
3264 } else {
3265 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3266 if (UNTAG_Bool(REGB1)) {
3267 REGB1 = TAG_Bool(false);
3268 REGB0 = REGB1;
3269 } else {
3270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3271 REGB0 = REGB1;
3272 }
3273 }
3274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3275 if (UNTAG_Bool(REGB0)) {
3276 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3277 if (UNTAG_Bool(REGB0)) {
3278 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 401);
3279 }
3280 fra.me.REG[3] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3281 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3282 if (UNTAG_Bool(REGB0)) {
3283 } else {
3284 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3285 if (UNTAG_Bool(REGB1)) {
3286 REGB1 = TAG_Bool(false);
3287 REGB0 = REGB1;
3288 } else {
3289 /* ./../lib/standard//kernel.nit:227 */
3290 REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
3291 /* ./compiling//compiling_icode.nit:401 */
3292 REGB0 = REGB1;
3293 }
3294 }
3295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3296 } else {
3297 REGB1 = TAG_Bool(false);
3298 REGB0 = REGB1;
3299 }
3300 if (UNTAG_Bool(REGB0)) {
3301 /* ./compiling//compiling_icode.nit:402 */
3302 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3303 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3304 /* ./compiling//compiling_icode.nit:403 */
3305 if (!once_value_1) {
3306 fra.me.REG[0] = BOX_NativeString(" = ");
3307 REGB0 = TAG_Int(3);
3308 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3309 once_value_1 = fra.me.REG[0];
3310 register_static_object(&once_value_1);
3311 } else fra.me.REG[0] = once_value_1;
3312 fra.me.REG[0] = fra.me.REG[0];
3313 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3314 }
3315 /* ./compiling//compiling_icode.nit:405 */
3316 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
3317 /* ./compiling//compiling_icode.nit:406 */
3318 if (!once_value_2) {
3319 fra.me.REG[1] = BOX_NativeString(";\n");
3320 REGB0 = TAG_Int(2);
3321 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
3322 once_value_2 = fra.me.REG[1];
3323 register_static_object(&once_value_2);
3324 } else fra.me.REG[1] = once_value_2;
3325 fra.me.REG[1] = fra.me.REG[1];
3326 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3327 /* ./compiling//compiling_icode.nit:407 */
3328 goto label3;
3329 label3: while(0);
3330 stack_frame_head = fra.me.prev;
3331 return fra.me.REG[0];
3332 }
3333 void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
3334 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3335 val_t REGB0;
3336 val_t REGB1;
3337 val_t tmp;
3338 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3339 fra.me.file = LOCATE_compiling___compiling_icode;
3340 fra.me.line = 412;
3341 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3342 fra.me.has_broke = 0;
3343 fra.me.REG_size = 4;
3344 fra.me.nitni_local_ref_head = NULL;
3345 fra.me.REG[0] = NIT_NULL;
3346 fra.me.REG[1] = NIT_NULL;
3347 fra.me.REG[2] = NIT_NULL;
3348 fra.me.REG[3] = NIT_NULL;
3349 fra.me.REG[0] = p0;
3350 fra.me.REG[1] = p1;
3351 /* ./compiling//compiling_icode.nit:414 */
3352 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3353 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3354 /* ./compiling//compiling_icode.nit:415 */
3355 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3357 /* ./compiling//compiling_icode.nit:416 */
3358 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3359 /* ./compiling//compiling_icode.nit:417 */
3360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3361 if (UNTAG_Bool(REGB0)) {
3362 } else {
3363 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3364 if (UNTAG_Bool(REGB1)) {
3365 REGB1 = TAG_Bool(false);
3366 REGB0 = REGB1;
3367 } else {
3368 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3369 REGB0 = REGB1;
3370 }
3371 }
3372 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3373 if (UNTAG_Bool(REGB0)) {
3374 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3375 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3376 }
3377 /* ./compiling//compiling_icode.nit:418 */
3378 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3379 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ISeq___compile_to_c_1));
3380 /* ./compiling//compiling_icode.nit:421 */
3381 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3382 stack_frame_head = fra.me.prev;
3383 return;
3384 }
3385 void OC_compiling___compiling_icode___ISeq___compile_to_c_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3386 struct {struct stack_frame_t me;} fra;
3387 fun_t CREG[1];
3388 val_t tmp;
3389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3390 fra.me.file = LOCATE_compiling___compiling_icode;
3391 fra.me.line = 0;
3392 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3393 fra.me.has_broke = 0;
3394 fra.me.REG_size = 1;
3395 fra.me.nitni_local_ref_head = NULL;
3396 fra.me.REG[0] = NIT_NULL;
3397 fra.me.closure_ctx = closctx_param;
3398 fra.me.closure_funs = CREG;
3399 fra.me.REG[0] = p0;
3400 CREG[0] = clos_fun0;
3401 /* ./compiling//compiling_icode.nit:419 */
3402 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3403 stack_frame_head = fra.me.prev;
3404 return;
3405 }
3406 void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
3407 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3408 val_t REGB0;
3409 val_t tmp;
3410 static val_t once_value_1; /* Once value */
3411 static val_t once_value_2; /* Once value */
3412 static val_t once_value_3; /* Once value */
3413 static val_t once_value_4; /* Once value */
3414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3415 fra.me.file = LOCATE_compiling___compiling_icode;
3416 fra.me.line = 426;
3417 fra.me.meth = LOCATE_compiling___compiling_icode___IIf___compile_to_c;
3418 fra.me.has_broke = 0;
3419 fra.me.REG_size = 4;
3420 fra.me.nitni_local_ref_head = NULL;
3421 fra.me.REG[0] = NIT_NULL;
3422 fra.me.REG[1] = NIT_NULL;
3423 fra.me.REG[2] = NIT_NULL;
3424 fra.me.REG[3] = NIT_NULL;
3425 fra.me.REG[0] = p0;
3426 fra.me.REG[1] = p1;
3427 /* ./compiling//compiling_icode.nit:428 */
3428 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3429 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3430 /* ./compiling//compiling_icode.nit:429 */
3431 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3432 /* ./compiling//compiling_icode.nit:430 */
3433 if (!once_value_1) {
3434 fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool(");
3435 REGB0 = TAG_Int(15);
3436 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3437 once_value_1 = fra.me.REG[3];
3438 register_static_object(&once_value_1);
3439 } else fra.me.REG[3] = once_value_1;
3440 fra.me.REG[3] = fra.me.REG[3];
3441 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3442 /* ./compiling//compiling_icode.nit:431 */
3443 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
3444 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3445 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3446 /* ./compiling//compiling_icode.nit:432 */
3447 if (!once_value_2) {
3448 fra.me.REG[3] = BOX_NativeString(")) {\n");
3449 REGB0 = TAG_Int(5);
3450 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3451 once_value_2 = fra.me.REG[3];
3452 register_static_object(&once_value_2);
3453 } else fra.me.REG[3] = once_value_2;
3454 fra.me.REG[3] = fra.me.REG[3];
3455 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3456 /* ./compiling//compiling_icode.nit:433 */
3457 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3458 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3459 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3460 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3461 if (UNTAG_Bool(REGB0)) {
3462 /* ./compiling//compiling_icode.nit:434 */
3463 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3464 /* ./compiling//compiling_icode.nit:435 */
3465 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3466 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3467 /* ./compiling//compiling_icode.nit:436 */
3468 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3469 }
3470 /* ./compiling//compiling_icode.nit:438 */
3471 fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3472 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3473 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3475 if (UNTAG_Bool(REGB0)) {
3476 /* ./compiling//compiling_icode.nit:439 */
3477 if (!once_value_3) {
3478 fra.me.REG[3] = BOX_NativeString("} else {");
3479 REGB0 = TAG_Int(8);
3480 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3481 once_value_3 = fra.me.REG[3];
3482 register_static_object(&once_value_3);
3483 } else fra.me.REG[3] = once_value_3;
3484 fra.me.REG[3] = fra.me.REG[3];
3485 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3486 /* ./compiling//compiling_icode.nit:440 */
3487 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3488 /* ./compiling//compiling_icode.nit:441 */
3489 fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3490 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3491 /* ./compiling//compiling_icode.nit:442 */
3492 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3493 }
3494 /* ./compiling//compiling_icode.nit:444 */
3495 if (!once_value_4) {
3496 fra.me.REG[0] = BOX_NativeString("}");
3497 REGB0 = TAG_Int(1);
3498 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3499 once_value_4 = fra.me.REG[0];
3500 register_static_object(&once_value_4);
3501 } else fra.me.REG[0] = once_value_4;
3502 fra.me.REG[0] = fra.me.REG[0];
3503 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3504 stack_frame_head = fra.me.prev;
3505 return;
3506 }
3507 void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
3508 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3509 val_t REGB0;
3510 val_t REGB1;
3511 val_t tmp;
3512 static val_t once_value_1; /* Once value */
3513 static val_t once_value_3; /* Once value */
3514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3515 fra.me.file = LOCATE_compiling___compiling_icode;
3516 fra.me.line = 449;
3517 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3518 fra.me.has_broke = 0;
3519 fra.me.REG_size = 4;
3520 fra.me.nitni_local_ref_head = NULL;
3521 fra.me.REG[0] = NIT_NULL;
3522 fra.me.REG[1] = NIT_NULL;
3523 fra.me.REG[2] = NIT_NULL;
3524 fra.me.REG[3] = NIT_NULL;
3525 fra.me.REG[0] = p0;
3526 fra.me.REG[1] = p1;
3527 /* ./compiling//compiling_icode.nit:451 */
3528 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3529 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3530 /* ./compiling//compiling_icode.nit:452 */
3531 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3533 /* ./compiling//compiling_icode.nit:453 */
3534 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3535 /* ./compiling//compiling_icode.nit:454 */
3536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3537 if (UNTAG_Bool(REGB0)) {
3538 } else {
3539 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3540 if (UNTAG_Bool(REGB1)) {
3541 REGB1 = TAG_Bool(false);
3542 REGB0 = REGB1;
3543 } else {
3544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3545 REGB0 = REGB1;
3546 }
3547 }
3548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3549 if (UNTAG_Bool(REGB0)) {
3550 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3551 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3552 }
3553 /* ./compiling//compiling_icode.nit:455 */
3554 if (!once_value_1) {
3555 fra.me.REG[2] = BOX_NativeString("while(1) {");
3556 REGB0 = TAG_Int(10);
3557 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3558 once_value_1 = fra.me.REG[2];
3559 register_static_object(&once_value_1);
3560 } else fra.me.REG[2] = once_value_1;
3561 fra.me.REG[2] = fra.me.REG[2];
3562 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3563 /* ./compiling//compiling_icode.nit:456 */
3564 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3565 /* ./compiling//compiling_icode.nit:457 */
3566 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3567 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ILoop___compile_to_c_2));
3568 /* ./compiling//compiling_icode.nit:460 */
3569 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3570 /* ./compiling//compiling_icode.nit:461 */
3571 if (!once_value_3) {
3572 fra.me.REG[2] = BOX_NativeString("}");
3573 REGB0 = TAG_Int(1);
3574 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3575 once_value_3 = fra.me.REG[2];
3576 register_static_object(&once_value_3);
3577 } else fra.me.REG[2] = once_value_3;
3578 fra.me.REG[2] = fra.me.REG[2];
3579 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3580 /* ./compiling//compiling_icode.nit:462 */
3581 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3582 stack_frame_head = fra.me.prev;
3583 return;
3584 }
3585 void OC_compiling___compiling_icode___ILoop___compile_to_c_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3586 struct {struct stack_frame_t me;} fra;
3587 fun_t CREG[1];
3588 val_t tmp;
3589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3590 fra.me.file = LOCATE_compiling___compiling_icode;
3591 fra.me.line = 0;
3592 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3593 fra.me.has_broke = 0;
3594 fra.me.REG_size = 1;
3595 fra.me.nitni_local_ref_head = NULL;
3596 fra.me.REG[0] = NIT_NULL;
3597 fra.me.closure_ctx = closctx_param;
3598 fra.me.closure_funs = CREG;
3599 fra.me.REG[0] = p0;
3600 CREG[0] = clos_fun0;
3601 /* ./compiling//compiling_icode.nit:458 */
3602 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3603 stack_frame_head = fra.me.prev;
3604 return;
3605 }
3606 void compiling___compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){
3607 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3608 val_t tmp;
3609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3610 fra.me.file = LOCATE_compiling___compiling_icode;
3611 fra.me.line = 467;
3612 fra.me.meth = LOCATE_compiling___compiling_icode___IEscape___compile_to_c;
3613 fra.me.has_broke = 0;
3614 fra.me.REG_size = 3;
3615 fra.me.nitni_local_ref_head = NULL;
3616 fra.me.REG[0] = NIT_NULL;
3617 fra.me.REG[1] = NIT_NULL;
3618 fra.me.REG[2] = NIT_NULL;
3619 fra.me.REG[0] = p0;
3620 fra.me.REG[1] = p1;
3621 /* ./compiling//compiling_icode.nit:469 */
3622 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3623 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3624 /* ./compiling//compiling_icode.nit:470 */
3625 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3626 fra.me.REG[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3627 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3628 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3629 stack_frame_head = fra.me.prev;
3630 return;
3631 }
3632 void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
3633 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
3634 val_t REGB0;
3635 val_t REGB1;
3636 val_t tmp;
3637 static val_t once_value_1; /* Once value */
3638 static val_t once_value_2; /* Once value */
3639 static val_t once_value_5; /* Once value */
3640 static val_t once_value_6; /* Once value */
3641 static val_t once_value_7; /* Once value */
3642 static val_t once_value_8; /* Once value */
3643 static val_t once_value_9; /* Once value */
3644 static val_t once_value_10; /* Once value */
3645 static val_t once_value_11; /* Once value */
3646 static val_t once_value_12; /* Once value */
3647 static val_t once_value_13; /* Once value */
3648 static val_t once_value_14; /* Once value */
3649 static val_t once_value_15; /* Once value */
3650 static val_t once_value_16; /* Once value */
3651 static val_t once_value_18; /* Once value */
3652 static val_t once_value_19; /* Once value */
3653 static val_t once_value_20; /* Once value */
3654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3655 fra.me.file = LOCATE_compiling___compiling_icode;
3656 fra.me.line = 475;
3657 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
3658 fra.me.has_broke = 0;
3659 fra.me.REG_size = 10;
3660 fra.me.nitni_local_ref_head = NULL;
3661 fra.me.REG[0] = NIT_NULL;
3662 fra.me.REG[1] = NIT_NULL;
3663 fra.me.REG[2] = NIT_NULL;
3664 fra.me.REG[3] = NIT_NULL;
3665 fra.me.REG[4] = NIT_NULL;
3666 fra.me.REG[5] = NIT_NULL;
3667 fra.me.REG[6] = NIT_NULL;
3668 fra.me.REG[7] = NIT_NULL;
3669 fra.me.REG[8] = NIT_NULL;
3670 fra.me.REG[9] = NIT_NULL;
3671 fra.me.REG[0] = p0;
3672 fra.me.REG[1] = p1;
3673 /* ./compiling//compiling_icode.nit:475 */
3674 fra.me.REG[2] = fra.me.REG[0];
3675 /* ./compiling//compiling_icode.nit:477 */
3676 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
3677 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3678 /* ./compiling//compiling_icode.nit:478 */
3679 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[2])(fra.me.REG[2]);
3680 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3681 /* ./compiling//compiling_icode.nit:481 */
3682 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3683 /* ./compiling//compiling_icode.nit:482 */
3684 fra.me.REG[5] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
3685 /* ./compiling//compiling_icode.nit:483 */
3686 fra.me.REG[6] = NIT_NULL;
3687 /* ./compiling//compiling_icode.nit:484 */
3688 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3689 if (UNTAG_Bool(REGB0)) {
3690 } else {
3691 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3692 if (UNTAG_Bool(REGB1)) {
3693 REGB1 = TAG_Bool(false);
3694 REGB0 = REGB1;
3695 } else {
3696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3697 REGB0 = REGB1;
3698 }
3699 }
3700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3701 if (UNTAG_Bool(REGB0)) {
3702 /* ./compiling//compiling_icode.nit:486 */
3703 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3704 if (UNTAG_Bool(REGB0)) {
3705 /* ./compiling//compiling_icode.nit:487 */
3706 if (!once_value_1) {
3707 fra.me.REG[7] = BOX_NativeString("closctx");
3708 REGB0 = TAG_Int(7);
3709 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3710 once_value_1 = fra.me.REG[7];
3711 register_static_object(&once_value_1);
3712 } else fra.me.REG[7] = once_value_1;
3713 fra.me.REG[7] = fra.me.REG[7];
3714 fra.me.REG[6] = fra.me.REG[7];
3715 } else {
3716 /* ./compiling//compiling_icode.nit:489 */
3717 if (!once_value_2) {
3718 fra.me.REG[7] = BOX_NativeString("(&(fra.me))");
3719 REGB0 = TAG_Int(11);
3720 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3721 once_value_2 = fra.me.REG[7];
3722 register_static_object(&once_value_2);
3723 } else fra.me.REG[7] = once_value_2;
3724 fra.me.REG[7] = fra.me.REG[7];
3725 fra.me.REG[6] = fra.me.REG[7];
3726 }
3727 /* ./compiling//compiling_icode.nit:493 */
3728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3729 /* ./compiling//compiling_icode.nit:496 */
3730 fra.me.REG[7] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
3731 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3732 /* ./compiling//compiling_icode.nit:499 */
3733 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3734 if (UNTAG_Bool(REGB0)) {
3735 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 499);
3736 }
3737 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IAbsCall___compile_to_c_3));
3738 }
3739 /* ./compiling//compiling_icode.nit:510 */
3740 fra.me.REG[3] = CALL_compiling___compiling_icode___IAbsCall___compile_call_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
3741 /* ./compiling//compiling_icode.nit:511 */
3742 fra.me.REG[5] = fra.me.REG[3];
3743 /* ./compiling//compiling_icode.nit:514 */
3744 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3745 if (UNTAG_Bool(REGB0)) {
3746 } else {
3747 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3748 if (UNTAG_Bool(REGB1)) {
3749 REGB1 = TAG_Bool(false);
3750 REGB0 = REGB1;
3751 } else {
3752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3753 REGB0 = REGB1;
3754 }
3755 }
3756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3757 if (UNTAG_Bool(REGB0)) {
3758 /* ./compiling//compiling_icode.nit:515 */
3759 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3760 /* ./compiling//compiling_icode.nit:516 */
3761 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3762 /* ./compiling//compiling_icode.nit:518 */
3763 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[7])(fra.me.REG[7]);
3764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3765 if (UNTAG_Bool(REGB0)) {
3766 /* ./compiling//compiling_icode.nit:520 */
3767 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3768 /* ./compiling//compiling_icode.nit:521 */
3769 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
3770 if (UNTAG_Bool(REGB0)) {
3771 /* ./compiling//compiling_icode.nit:522 */
3772 if (!once_value_5) {
3773 fra.me.REG[8] = BOX_NativeString("tmp");
3774 REGB0 = TAG_Int(3);
3775 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3776 once_value_5 = fra.me.REG[8];
3777 register_static_object(&once_value_5);
3778 } else fra.me.REG[8] = once_value_5;
3779 fra.me.REG[8] = fra.me.REG[8];
3780 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3781 /* ./compiling//compiling_icode.nit:523 */
3782 if (!once_value_6) {
3783 fra.me.REG[8] = BOX_NativeString(" = ");
3784 REGB0 = TAG_Int(3);
3785 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3786 once_value_6 = fra.me.REG[8];
3787 register_static_object(&once_value_6);
3788 } else fra.me.REG[8] = once_value_6;
3789 fra.me.REG[8] = fra.me.REG[8];
3790 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3791 /* ./compiling//compiling_icode.nit:524 */
3792 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3793 /* ./compiling//compiling_icode.nit:525 */
3794 if (!once_value_7) {
3795 fra.me.REG[8] = BOX_NativeString(";\n");
3796 REGB0 = TAG_Int(2);
3797 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3798 once_value_7 = fra.me.REG[8];
3799 register_static_object(&once_value_7);
3800 } else fra.me.REG[8] = once_value_7;
3801 fra.me.REG[8] = fra.me.REG[8];
3802 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3803 /* ./compiling//compiling_icode.nit:526 */
3804 fra.me.REG[8] = NEW_Writer_compiling___compiling_writer___Writer___init();
3805 fra.me.REG[5] = fra.me.REG[8];
3806 /* ./compiling//compiling_icode.nit:527 */
3807 if (!once_value_8) {
3808 fra.me.REG[8] = BOX_NativeString("tmp");
3809 REGB0 = TAG_Int(3);
3810 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3811 once_value_8 = fra.me.REG[8];
3812 register_static_object(&once_value_8);
3813 } else fra.me.REG[8] = once_value_8;
3814 fra.me.REG[8] = fra.me.REG[8];
3815 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3816 if (UNTAG_Bool(REGB0)) {
3817 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 527);
3818 }
3819 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
3820 } else {
3821 /* ./compiling//compiling_icode.nit:529 */
3822 fra.me.REG[5] = NIT_NULL;
3823 /* ./compiling//compiling_icode.nit:530 */
3824 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3825 /* ./compiling//compiling_icode.nit:531 */
3826 if (!once_value_9) {
3827 fra.me.REG[3] = BOX_NativeString(";\n");
3828 REGB0 = TAG_Int(2);
3829 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3830 once_value_9 = fra.me.REG[3];
3831 register_static_object(&once_value_9);
3832 } else fra.me.REG[3] = once_value_9;
3833 fra.me.REG[3] = fra.me.REG[3];
3834 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3835 }
3836 /* ./compiling//compiling_icode.nit:534 */
3837 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3838 if (!once_value_10) {
3839 fra.me.REG[4] = BOX_NativeString("switch (");
3840 REGB0 = TAG_Int(8);
3841 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3842 once_value_10 = fra.me.REG[4];
3843 register_static_object(&once_value_10);
3844 } else fra.me.REG[4] = once_value_10;
3845 fra.me.REG[4] = fra.me.REG[4];
3846 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3847 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
3848 if (!once_value_11) {
3849 fra.me.REG[3] = BOX_NativeString("->has_broke) {\n");
3850 REGB0 = TAG_Int(15);
3851 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3852 once_value_11 = fra.me.REG[3];
3853 register_static_object(&once_value_11);
3854 } else fra.me.REG[3] = once_value_11;
3855 fra.me.REG[3] = fra.me.REG[3];
3856 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3857 /* ./compiling//compiling_icode.nit:535 */
3858 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3859 /* ./compiling//compiling_icode.nit:537 */
3860 if (!once_value_12) {
3861 fra.me.REG[3] = BOX_NativeString("case 0: break;");
3862 REGB0 = TAG_Int(14);
3863 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3864 once_value_12 = fra.me.REG[3];
3865 register_static_object(&once_value_12);
3866 } else fra.me.REG[3] = once_value_12;
3867 fra.me.REG[3] = fra.me.REG[3];
3868 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3869 /* ./compiling//compiling_icode.nit:538 */
3870 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3871 /* ./compiling//compiling_icode.nit:539 */
3872 fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[7])(fra.me.REG[7]);
3873 /* ./compiling//compiling_icode.nit:540 */
3874 REGB0 = TAG_Bool(false);
3875 /* ./compiling//compiling_icode.nit:541 */
3876 while(1) {
3877 REGB1 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[7])(fra.me.REG[7]);
3878 if (UNTAG_Bool(REGB1)) {
3879 /* ./compiling//compiling_icode.nit:542 */
3880 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[7])(fra.me.REG[7]);
3881 /* ./compiling//compiling_icode.nit:543 */
3882 REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3883 if (UNTAG_Bool(REGB1)) {
3884 /* ./compiling//compiling_icode.nit:546 */
3885 fra.me.REG[8] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3886 if (!once_value_13) {
3887 fra.me.REG[9] = BOX_NativeString("case ");
3888 REGB1 = TAG_Int(5);
3889 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3890 once_value_13 = fra.me.REG[9];
3891 register_static_object(&once_value_13);
3892 } else fra.me.REG[9] = once_value_13;
3893 fra.me.REG[9] = fra.me.REG[9];
3894 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3895 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[7])(fra.me.REG[7]);
3896 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3897 if (UNTAG_Bool(REGB1)) {
3898 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 546);
3899 }
3900 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3901 fra.me.REG[8] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3902 if (!once_value_14) {
3903 fra.me.REG[9] = BOX_NativeString(": ");
3904 REGB1 = TAG_Int(2);
3905 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3906 once_value_14 = fra.me.REG[9];
3907 register_static_object(&once_value_14);
3908 } else fra.me.REG[9] = once_value_14;
3909 fra.me.REG[9] = fra.me.REG[9];
3910 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3911 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
3912 if (!once_value_15) {
3913 fra.me.REG[8] = BOX_NativeString("->has_broke = 0; goto ");
3914 REGB1 = TAG_Int(22);
3915 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3916 once_value_15 = fra.me.REG[8];
3917 register_static_object(&once_value_15);
3918 } else fra.me.REG[8] = once_value_15;
3919 fra.me.REG[8] = fra.me.REG[8];
3920 fra.me.REG[8] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3921 fra.me.REG[9] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3922 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3923 if (!once_value_16) {
3924 fra.me.REG[8] = BOX_NativeString(";\n");
3925 REGB1 = TAG_Int(2);
3926 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3927 once_value_16 = fra.me.REG[8];
3928 register_static_object(&once_value_16);
3929 } else fra.me.REG[8] = once_value_16;
3930 fra.me.REG[8] = fra.me.REG[8];
3931 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3932 } else {
3933 /* ./compiling//compiling_icode.nit:549 */
3934 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3935 if (UNTAG_Bool(REGB1)) {
3936 } else {
3937 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 549);
3938 }
3939 /* ./compiling//compiling_icode.nit:550 */
3940 CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3941 /* ./compiling//compiling_icode.nit:551 */
3942 REGB1 = TAG_Bool(true);
3943 REGB0 = REGB1;
3944 }
3945 /* ./compiling//compiling_icode.nit:553 */
3946 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[7])(fra.me.REG[7]);
3947 } else {
3948 /* ./compiling//compiling_icode.nit:541 */
3949 goto label17;
3950 }
3951 }
3952 label17: while(0);
3953 /* ./compiling//compiling_icode.nit:556 */
3954 if (UNTAG_Bool(REGB0)) {
3955 /* ./compiling//compiling_icode.nit:559 */
3956 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3957 if (!once_value_18) {
3958 fra.me.REG[6] = BOX_NativeString("default: goto ");
3959 REGB0 = TAG_Int(14);
3960 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3961 once_value_18 = fra.me.REG[6];
3962 register_static_object(&once_value_18);
3963 } else fra.me.REG[6] = once_value_18;
3964 fra.me.REG[6] = fra.me.REG[6];
3965 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
3966 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
3967 REGB0 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
3968 if (UNTAG_Bool(REGB0)) {
3969 } else {
3970 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 559);
3971 }
3972 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3973 fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3974 if (!once_value_19) {
3975 fra.me.REG[6] = BOX_NativeString(";\n");
3976 REGB0 = TAG_Int(2);
3977 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3978 once_value_19 = fra.me.REG[6];
3979 register_static_object(&once_value_19);
3980 } else fra.me.REG[6] = once_value_19;
3981 fra.me.REG[6] = fra.me.REG[6];
3982 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
3983 }
3984 /* ./compiling//compiling_icode.nit:561 */
3985 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3986 /* ./compiling//compiling_icode.nit:562 */
3987 if (!once_value_20) {
3988 fra.me.REG[6] = BOX_NativeString("}");
3989 REGB0 = TAG_Int(1);
3990 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3991 once_value_20 = fra.me.REG[6];
3992 register_static_object(&once_value_20);
3993 } else fra.me.REG[6] = once_value_20;
3994 fra.me.REG[6] = fra.me.REG[6];
3995 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3996 }
3997 }
3998 /* ./compiling//compiling_icode.nit:566 */
3999 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4000 if (UNTAG_Bool(REGB0)) {
4001 } else {
4002 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4003 if (UNTAG_Bool(REGB1)) {
4004 REGB1 = TAG_Bool(false);
4005 REGB0 = REGB1;
4006 } else {
4007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4008 REGB0 = REGB1;
4009 }
4010 }
4011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4012 if (UNTAG_Bool(REGB0)) {
4013 /* ./compiling//compiling_icode.nit:567 */
4014 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4015 /* ./compiling//compiling_icode.nit:568 */
4016 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4017 }
4018 stack_frame_head = fra.me.prev;
4019 return;
4020 }
4021 void OC_compiling___compiling_icode___IAbsCall___compile_to_c_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4022 struct {struct stack_frame_t me;} fra;
4023 val_t REGB0;
4024 val_t REGB1;
4025 fun_t CREG[1];
4026 val_t tmp;
4027 static val_t once_value_4; /* Once value */
4028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4029 fra.me.file = LOCATE_compiling___compiling_icode;
4030 fra.me.line = 0;
4031 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
4032 fra.me.has_broke = 0;
4033 fra.me.REG_size = 1;
4034 fra.me.nitni_local_ref_head = NULL;
4035 fra.me.REG[0] = NIT_NULL;
4036 fra.me.closure_ctx = closctx_param;
4037 fra.me.closure_funs = CREG;
4038 fra.me.REG[0] = p0;
4039 CREG[0] = clos_fun0;
4040 /* ./compiling//compiling_icode.nit:500 */
4041 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4042 if (UNTAG_Bool(REGB0)) {
4043 } else {
4044 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4045 if (UNTAG_Bool(REGB1)) {
4046 REGB1 = TAG_Bool(false);
4047 REGB0 = REGB1;
4048 } else {
4049 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4050 REGB0 = REGB1;
4051 }
4052 }
4053 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4054 if (UNTAG_Bool(REGB0)) {
4055 /* ./compiling//compiling_icode.nit:501 */
4056 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4057 if (UNTAG_Bool(REGB0)) {
4058 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 501);
4059 }
4060 fra.me.REG[0] = CALL_compiling___compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
4061 /* ./compiling//compiling_icode.nit:502 */
4062 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4063 } else {
4064 /* ./compiling//compiling_icode.nit:504 */
4065 if (!once_value_4) {
4066 fra.me.REG[0] = BOX_NativeString("NULL");
4067 REGB0 = TAG_Int(4);
4068 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4069 once_value_4 = fra.me.REG[0];
4070 register_static_object(&once_value_4);
4071 } else fra.me.REG[0] = once_value_4;
4072 fra.me.REG[0] = fra.me.REG[0];
4073 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4074 }
4075 stack_frame_head = fra.me.prev;
4076 return;
4077 }
4078 val_t compiling___compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4079 struct {struct stack_frame_t me;} fra;
4080 val_t tmp;
4081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4082 fra.me.file = LOCATE_compiling___compiling_icode;
4083 fra.me.line = 572;
4084 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_call_to_c;
4085 fra.me.has_broke = 0;
4086 fra.me.REG_size = 0;
4087 fra.me.nitni_local_ref_head = NULL;
4088 /* ./compiling//compiling_icode.nit:572 */
4089 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 572);
4090 stack_frame_head = fra.me.prev;
4091 return NIT_NULL;
4092 }
4093 val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4094 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4095 val_t REGB0;
4096 val_t tmp;
4097 static val_t once_value_2; /* Once value */
4098 static val_t once_value_3; /* Once value */
4099 static val_t once_value_4; /* Once value */
4100 static val_t once_value_5; /* Once value */
4101 static val_t once_value_6; /* Once value */
4102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4103 fra.me.file = LOCATE_compiling___compiling_icode;
4104 fra.me.line = 577;
4105 fra.me.meth = LOCATE_compiling___compiling_icode___ICall___compile_call_to_c;
4106 fra.me.has_broke = 0;
4107 fra.me.REG_size = 5;
4108 fra.me.nitni_local_ref_head = NULL;
4109 fra.me.REG[0] = NIT_NULL;
4110 fra.me.REG[1] = NIT_NULL;
4111 fra.me.REG[2] = NIT_NULL;
4112 fra.me.REG[3] = NIT_NULL;
4113 fra.me.REG[4] = NIT_NULL;
4114 fra.me.REG[0] = p0;
4115 fra.me.REG[1] = p1;
4116 fra.me.REG[2] = p2;
4117 /* ./compiling//compiling_icode.nit:579 */
4118 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4119 /* ./compiling//compiling_icode.nit:583 */
4120 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4121 if (UNTAG_Bool(REGB0)) {
4122 fra.me.REG[3] = fra.me.REG[1];
4123 goto label1;
4124 }
4125 /* ./compiling//compiling_icode.nit:585 */
4126 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4127 /* ./compiling//compiling_icode.nit:586 */
4128 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4129 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
4130 if (UNTAG_Bool(REGB0)) {
4131 if (!once_value_2) {
4132 fra.me.REG[4] = BOX_NativeString("init_table");
4133 REGB0 = TAG_Int(10);
4134 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4135 once_value_2 = fra.me.REG[4];
4136 register_static_object(&once_value_2);
4137 } else fra.me.REG[4] = once_value_2;
4138 fra.me.REG[4] = fra.me.REG[4];
4139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4140 }
4141 /* ./compiling//compiling_icode.nit:587 */
4142 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4143 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
4144 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4145 /* ./compiling//compiling_icode.nit:588 */
4146 if (!once_value_3) {
4147 fra.me.REG[0] = BOX_NativeString("(");
4148 REGB0 = TAG_Int(1);
4149 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4150 once_value_3 = fra.me.REG[0];
4151 register_static_object(&once_value_3);
4152 } else fra.me.REG[0] = once_value_3;
4153 fra.me.REG[0] = fra.me.REG[0];
4154 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4155 /* ./compiling//compiling_icode.nit:589 */
4156 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4157 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4158 /* ./compiling//compiling_icode.nit:590 */
4159 if (!once_value_4) {
4160 fra.me.REG[0] = BOX_NativeString(")(");
4161 REGB0 = TAG_Int(2);
4162 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4163 once_value_4 = fra.me.REG[0];
4164 register_static_object(&once_value_4);
4165 } else fra.me.REG[0] = once_value_4;
4166 fra.me.REG[0] = fra.me.REG[0];
4167 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4168 /* ./compiling//compiling_icode.nit:591 */
4169 if (!once_value_5) {
4170 fra.me.REG[0] = BOX_NativeString(", ");
4171 REGB0 = TAG_Int(2);
4172 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4173 once_value_5 = fra.me.REG[0];
4174 register_static_object(&once_value_5);
4175 } else fra.me.REG[0] = once_value_5;
4176 fra.me.REG[0] = fra.me.REG[0];
4177 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4178 /* ./compiling//compiling_icode.nit:592 */
4179 if (!once_value_6) {
4180 fra.me.REG[0] = BOX_NativeString(")");
4181 REGB0 = TAG_Int(1);
4182 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4183 once_value_6 = fra.me.REG[0];
4184 register_static_object(&once_value_6);
4185 } else fra.me.REG[0] = once_value_6;
4186 fra.me.REG[0] = fra.me.REG[0];
4187 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4188 /* ./compiling//compiling_icode.nit:593 */
4189 fra.me.REG[3] = fra.me.REG[1];
4190 goto label1;
4191 label1: while(0);
4192 stack_frame_head = fra.me.prev;
4193 return fra.me.REG[3];
4194 }
4195 val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4196 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4197 val_t REGB0;
4198 val_t tmp;
4199 static val_t once_value_2; /* Once value */
4200 static val_t once_value_3; /* Once value */
4201 static val_t once_value_4; /* Once value */
4202 static val_t once_value_5; /* Once value */
4203 static val_t once_value_6; /* Once value */
4204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4205 fra.me.file = LOCATE_compiling___compiling_icode;
4206 fra.me.line = 598;
4207 fra.me.meth = LOCATE_compiling___compiling_icode___ISuper___compile_call_to_c;
4208 fra.me.has_broke = 0;
4209 fra.me.REG_size = 4;
4210 fra.me.nitni_local_ref_head = NULL;
4211 fra.me.REG[0] = NIT_NULL;
4212 fra.me.REG[1] = NIT_NULL;
4213 fra.me.REG[2] = NIT_NULL;
4214 fra.me.REG[3] = NIT_NULL;
4215 fra.me.REG[0] = p0;
4216 fra.me.REG[1] = p1;
4217 fra.me.REG[2] = p2;
4218 /* ./compiling//compiling_icode.nit:602 */
4219 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4220 if (UNTAG_Bool(REGB0)) {
4221 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4222 goto label1;
4223 }
4224 /* ./compiling//compiling_icode.nit:604 */
4225 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4226 /* ./compiling//compiling_icode.nit:605 */
4227 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4228 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4229 if (UNTAG_Bool(REGB0)) {
4230 if (!once_value_2) {
4231 fra.me.REG[3] = BOX_NativeString("init_table");
4232 REGB0 = TAG_Int(10);
4233 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4234 once_value_2 = fra.me.REG[3];
4235 register_static_object(&once_value_2);
4236 } else fra.me.REG[3] = once_value_2;
4237 fra.me.REG[3] = fra.me.REG[3];
4238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4239 }
4240 /* ./compiling//compiling_icode.nit:606 */
4241 fra.me.REG[3] = NEW_Writer_compiling___compiling_writer___Writer___init();
4242 /* ./compiling//compiling_icode.nit:607 */
4243 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
4244 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4245 /* ./compiling//compiling_icode.nit:608 */
4246 if (!once_value_3) {
4247 fra.me.REG[0] = BOX_NativeString("(");
4248 REGB0 = TAG_Int(1);
4249 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4250 once_value_3 = fra.me.REG[0];
4251 register_static_object(&once_value_3);
4252 } else fra.me.REG[0] = once_value_3;
4253 fra.me.REG[0] = fra.me.REG[0];
4254 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4255 /* ./compiling//compiling_icode.nit:609 */
4256 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4257 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4258 /* ./compiling//compiling_icode.nit:610 */
4259 if (!once_value_4) {
4260 fra.me.REG[0] = BOX_NativeString(")(");
4261 REGB0 = TAG_Int(2);
4262 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4263 once_value_4 = fra.me.REG[0];
4264 register_static_object(&once_value_4);
4265 } else fra.me.REG[0] = once_value_4;
4266 fra.me.REG[0] = fra.me.REG[0];
4267 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4268 /* ./compiling//compiling_icode.nit:611 */
4269 if (!once_value_5) {
4270 fra.me.REG[0] = BOX_NativeString(", ");
4271 REGB0 = TAG_Int(2);
4272 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4273 once_value_5 = fra.me.REG[0];
4274 register_static_object(&once_value_5);
4275 } else fra.me.REG[0] = once_value_5;
4276 fra.me.REG[0] = fra.me.REG[0];
4277 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4278 /* ./compiling//compiling_icode.nit:612 */
4279 if (!once_value_6) {
4280 fra.me.REG[0] = BOX_NativeString(")");
4281 REGB0 = TAG_Int(1);
4282 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4283 once_value_6 = fra.me.REG[0];
4284 register_static_object(&once_value_6);
4285 } else fra.me.REG[0] = once_value_6;
4286 fra.me.REG[0] = fra.me.REG[0];
4287 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4288 /* ./compiling//compiling_icode.nit:613 */
4289 fra.me.REG[1] = fra.me.REG[3];
4290 goto label1;
4291 label1: while(0);
4292 stack_frame_head = fra.me.prev;
4293 return fra.me.REG[1];
4294 }
4295 val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4296 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4297 val_t REGB0;
4298 val_t tmp;
4299 static val_t once_value_2; /* Once value */
4300 static val_t once_value_3; /* Once value */
4301 static val_t once_value_4; /* Once value */
4302 static val_t once_value_5; /* Once value */
4303 static val_t once_value_6; /* Once value */
4304 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4305 fra.me.file = LOCATE_compiling___compiling_icode;
4306 fra.me.line = 618;
4307 fra.me.meth = LOCATE_compiling___compiling_icode___INew___compile_call_to_c;
4308 fra.me.has_broke = 0;
4309 fra.me.REG_size = 5;
4310 fra.me.nitni_local_ref_head = NULL;
4311 fra.me.REG[0] = NIT_NULL;
4312 fra.me.REG[1] = NIT_NULL;
4313 fra.me.REG[2] = NIT_NULL;
4314 fra.me.REG[3] = NIT_NULL;
4315 fra.me.REG[4] = NIT_NULL;
4316 fra.me.REG[0] = p0;
4317 fra.me.REG[1] = p1;
4318 fra.me.REG[2] = p2;
4319 /* ./compiling//compiling_icode.nit:620 */
4320 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4321 /* ./compiling//compiling_icode.nit:624 */
4322 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4323 if (UNTAG_Bool(REGB0)) {
4324 fra.me.REG[3] = fra.me.REG[1];
4325 goto label1;
4326 }
4327 /* ./compiling//compiling_icode.nit:626 */
4328 if (!once_value_2) {
4329 fra.me.REG[4] = BOX_NativeString("NEW_");
4330 REGB0 = TAG_Int(4);
4331 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4332 once_value_2 = fra.me.REG[4];
4333 register_static_object(&once_value_2);
4334 } else fra.me.REG[4] = once_value_2;
4335 fra.me.REG[4] = fra.me.REG[4];
4336 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4337 /* ./compiling//compiling_icode.nit:627 */
4338 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
4339 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
4340 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4341 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4342 /* ./compiling//compiling_icode.nit:628 */
4343 if (!once_value_3) {
4344 fra.me.REG[4] = BOX_NativeString("_");
4345 REGB0 = TAG_Int(1);
4346 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4347 once_value_3 = fra.me.REG[4];
4348 register_static_object(&once_value_3);
4349 } else fra.me.REG[4] = once_value_3;
4350 fra.me.REG[4] = fra.me.REG[4];
4351 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4352 /* ./compiling//compiling_icode.nit:629 */
4353 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4354 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4355 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
4356 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4357 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4358 /* ./compiling//compiling_icode.nit:630 */
4359 if (!once_value_4) {
4360 fra.me.REG[0] = BOX_NativeString("(");
4361 REGB0 = TAG_Int(1);
4362 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4363 once_value_4 = fra.me.REG[0];
4364 register_static_object(&once_value_4);
4365 } else fra.me.REG[0] = once_value_4;
4366 fra.me.REG[0] = fra.me.REG[0];
4367 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4368 /* ./compiling//compiling_icode.nit:631 */
4369 if (!once_value_5) {
4370 fra.me.REG[0] = BOX_NativeString(", ");
4371 REGB0 = TAG_Int(2);
4372 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4373 once_value_5 = fra.me.REG[0];
4374 register_static_object(&once_value_5);
4375 } else fra.me.REG[0] = once_value_5;
4376 fra.me.REG[0] = fra.me.REG[0];
4377 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4378 /* ./compiling//compiling_icode.nit:632 */
4379 if (!once_value_6) {
4380 fra.me.REG[0] = BOX_NativeString(")");
4381 REGB0 = TAG_Int(1);
4382 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4383 once_value_6 = fra.me.REG[0];
4384 register_static_object(&once_value_6);
4385 } else fra.me.REG[0] = once_value_6;
4386 fra.me.REG[0] = fra.me.REG[0];
4387 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4388 /* ./compiling//compiling_icode.nit:633 */
4389 fra.me.REG[3] = fra.me.REG[1];
4390 goto label1;
4391 label1: while(0);
4392 stack_frame_head = fra.me.prev;
4393 return fra.me.REG[3];
4394 }
4395 void compiling___compiling_icode___IAllocateInstance___compile_to_c(val_t p0, val_t p1){
4396 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4397 val_t REGB0;
4398 val_t tmp;
4399 static val_t once_value_1; /* Once value */
4400 static val_t once_value_2; /* Once value */
4401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4402 fra.me.file = LOCATE_compiling___compiling_icode;
4403 fra.me.line = 638;
4404 fra.me.meth = LOCATE_compiling___compiling_icode___IAllocateInstance___compile_to_c;
4405 fra.me.has_broke = 0;
4406 fra.me.REG_size = 3;
4407 fra.me.nitni_local_ref_head = NULL;
4408 fra.me.REG[0] = NIT_NULL;
4409 fra.me.REG[1] = NIT_NULL;
4410 fra.me.REG[2] = NIT_NULL;
4411 fra.me.REG[0] = p0;
4412 fra.me.REG[1] = p1;
4413 /* ./compiling//compiling_icode.nit:640 */
4414 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4415 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4416 /* ./compiling//compiling_icode.nit:641 */
4417 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4418 /* ./compiling//compiling_icode.nit:642 */
4419 if (!once_value_1) {
4420 fra.me.REG[2] = BOX_NativeString("NEW_");
4421 REGB0 = TAG_Int(4);
4422 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
4423 once_value_1 = fra.me.REG[2];
4424 register_static_object(&once_value_1);
4425 } else fra.me.REG[2] = once_value_1;
4426 fra.me.REG[2] = fra.me.REG[2];
4427 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4428 /* ./compiling//compiling_icode.nit:643 */
4429 fra.me.REG[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4430 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
4431 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
4432 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4433 /* ./compiling//compiling_icode.nit:644 */
4434 if (!once_value_2) {
4435 fra.me.REG[0] = BOX_NativeString("()");
4436 REGB0 = TAG_Int(2);
4437 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4438 once_value_2 = fra.me.REG[0];
4439 register_static_object(&once_value_2);
4440 } else fra.me.REG[0] = once_value_2;
4441 fra.me.REG[0] = fra.me.REG[0];
4442 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4443 stack_frame_head = fra.me.prev;
4444 return;
4445 }
4446 void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t p1){
4447 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4448 val_t REGB0;
4449 val_t tmp;
4450 static val_t once_value_1; /* Once value */
4451 static val_t once_value_2; /* Once value */
4452 static val_t once_value_3; /* Once value */
4453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4454 fra.me.file = LOCATE_compiling___compiling_icode;
4455 fra.me.line = 649;
4456 fra.me.meth = LOCATE_compiling___compiling_icode___ICheckInstance___compile_to_c;
4457 fra.me.has_broke = 0;
4458 fra.me.REG_size = 4;
4459 fra.me.nitni_local_ref_head = NULL;
4460 fra.me.REG[0] = NIT_NULL;
4461 fra.me.REG[1] = NIT_NULL;
4462 fra.me.REG[2] = NIT_NULL;
4463 fra.me.REG[3] = NIT_NULL;
4464 fra.me.REG[0] = p0;
4465 fra.me.REG[1] = p1;
4466 /* ./compiling//compiling_icode.nit:651 */
4467 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4468 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4469 /* ./compiling//compiling_icode.nit:652 */
4470 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4471 /* ./compiling//compiling_icode.nit:653 */
4472 if (!once_value_1) {
4473 fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
4474 REGB0 = TAG_Int(9);
4475 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4476 once_value_1 = fra.me.REG[3];
4477 register_static_object(&once_value_1);
4478 } else fra.me.REG[3] = once_value_1;
4479 fra.me.REG[3] = fra.me.REG[3];
4480 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4481 /* ./compiling//compiling_icode.nit:654 */
4482 fra.me.REG[3] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4483 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4484 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4485 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4486 /* ./compiling//compiling_icode.nit:655 */
4487 if (!once_value_2) {
4488 fra.me.REG[3] = BOX_NativeString("(");
4489 REGB0 = TAG_Int(1);
4490 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4491 once_value_2 = fra.me.REG[3];
4492 register_static_object(&once_value_2);
4493 } else fra.me.REG[3] = once_value_2;
4494 fra.me.REG[3] = fra.me.REG[3];
4495 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4496 /* ./compiling//compiling_icode.nit:656 */
4497 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4498 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4499 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4500 /* ./compiling//compiling_icode.nit:657 */
4501 if (!once_value_3) {
4502 fra.me.REG[0] = BOX_NativeString(")");
4503 REGB0 = TAG_Int(1);
4504 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4505 once_value_3 = fra.me.REG[0];
4506 register_static_object(&once_value_3);
4507 } else fra.me.REG[0] = once_value_3;
4508 fra.me.REG[0] = fra.me.REG[0];
4509 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4510 stack_frame_head = fra.me.prev;
4511 return;
4512 }
4513 void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_t p1){
4514 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4515 val_t REGB0;
4516 val_t tmp;
4517 static val_t once_value_1; /* Once value */
4518 static val_t once_value_2; /* Once value */
4519 static val_t once_value_3; /* Once value */
4520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4521 fra.me.file = LOCATE_compiling___compiling_icode;
4522 fra.me.line = 662;
4523 fra.me.meth = LOCATE_compiling___compiling_icode___IInitAttributes___compile_to_c;
4524 fra.me.has_broke = 0;
4525 fra.me.REG_size = 4;
4526 fra.me.nitni_local_ref_head = NULL;
4527 fra.me.REG[0] = NIT_NULL;
4528 fra.me.REG[1] = NIT_NULL;
4529 fra.me.REG[2] = NIT_NULL;
4530 fra.me.REG[3] = NIT_NULL;
4531 fra.me.REG[0] = p0;
4532 fra.me.REG[1] = p1;
4533 /* ./compiling//compiling_icode.nit:664 */
4534 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4535 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4536 /* ./compiling//compiling_icode.nit:665 */
4537 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
4538 /* ./compiling//compiling_icode.nit:666 */
4539 if (!once_value_1) {
4540 fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__");
4541 REGB0 = TAG_Int(17);
4542 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4543 once_value_1 = fra.me.REG[3];
4544 register_static_object(&once_value_1);
4545 } else fra.me.REG[3] = once_value_1;
4546 fra.me.REG[3] = fra.me.REG[3];
4547 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4548 /* ./compiling//compiling_icode.nit:667 */
4549 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
4550 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4551 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4552 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4553 /* ./compiling//compiling_icode.nit:668 */
4554 if (!once_value_2) {
4555 fra.me.REG[3] = BOX_NativeString("(");
4556 REGB0 = TAG_Int(1);
4557 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4558 once_value_2 = fra.me.REG[3];
4559 register_static_object(&once_value_2);
4560 } else fra.me.REG[3] = once_value_2;
4561 fra.me.REG[3] = fra.me.REG[3];
4562 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4563 /* ./compiling//compiling_icode.nit:669 */
4564 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4565 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4566 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4567 /* ./compiling//compiling_icode.nit:670 */
4568 if (!once_value_3) {
4569 fra.me.REG[0] = BOX_NativeString(");\n");
4570 REGB0 = TAG_Int(3);
4571 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4572 once_value_3 = fra.me.REG[0];
4573 register_static_object(&once_value_3);
4574 } else fra.me.REG[0] = once_value_3;
4575 fra.me.REG[0] = fra.me.REG[0];
4576 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4577 stack_frame_head = fra.me.prev;
4578 return;
4579 }
4580 val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4581 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4582 val_t REGB0;
4583 val_t tmp;
4584 static val_t once_value_1; /* Once value */
4585 static val_t once_value_2; /* Once value */
4586 static val_t once_value_3; /* Once value */
4587 static val_t once_value_4; /* Once value */
4588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4589 fra.me.file = LOCATE_compiling___compiling_icode;
4590 fra.me.line = 675;
4591 fra.me.meth = LOCATE_compiling___compiling_icode___IStaticCall___compile_call_to_c;
4592 fra.me.has_broke = 0;
4593 fra.me.REG_size = 3;
4594 fra.me.nitni_local_ref_head = NULL;
4595 fra.me.REG[0] = NIT_NULL;
4596 fra.me.REG[1] = NIT_NULL;
4597 fra.me.REG[2] = NIT_NULL;
4598 fra.me.REG[0] = p0;
4599 fra.me.REG[1] = p1;
4600 fra.me.REG[2] = p2;
4601 /* ./compiling//compiling_icode.nit:677 */
4602 fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4603 /* ./compiling//compiling_icode.nit:678 */
4604 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
4605 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
4606 if (UNTAG_Bool(REGB0)) {
4607 if (!once_value_1) {
4608 fra.me.REG[1] = BOX_NativeString("init_table");
4609 REGB0 = TAG_Int(10);
4610 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
4611 once_value_1 = fra.me.REG[1];
4612 register_static_object(&once_value_1);
4613 } else fra.me.REG[1] = once_value_1;
4614 fra.me.REG[1] = fra.me.REG[1];
4615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4616 }
4617 /* ./compiling//compiling_icode.nit:679 */
4618 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4619 /* ./compiling//compiling_icode.nit:680 */
4620 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4621 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4622 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4623 /* ./compiling//compiling_icode.nit:681 */
4624 if (!once_value_2) {
4625 fra.me.REG[0] = BOX_NativeString("(");
4626 REGB0 = TAG_Int(1);
4627 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4628 once_value_2 = fra.me.REG[0];
4629 register_static_object(&once_value_2);
4630 } else fra.me.REG[0] = once_value_2;
4631 fra.me.REG[0] = fra.me.REG[0];
4632 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4633 /* ./compiling//compiling_icode.nit:682 */
4634 if (!once_value_3) {
4635 fra.me.REG[0] = BOX_NativeString(", ");
4636 REGB0 = TAG_Int(2);
4637 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4638 once_value_3 = fra.me.REG[0];
4639 register_static_object(&once_value_3);
4640 } else fra.me.REG[0] = once_value_3;
4641 fra.me.REG[0] = fra.me.REG[0];
4642 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4643 /* ./compiling//compiling_icode.nit:683 */
4644 if (!once_value_4) {
4645 fra.me.REG[0] = BOX_NativeString(")");
4646 REGB0 = TAG_Int(1);
4647 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4648 once_value_4 = fra.me.REG[0];
4649 register_static_object(&once_value_4);
4650 } else fra.me.REG[0] = once_value_4;
4651 fra.me.REG[0] = fra.me.REG[0];
4652 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4653 /* ./compiling//compiling_icode.nit:684 */
4654 goto label5;
4655 label5: while(0);
4656 stack_frame_head = fra.me.prev;
4657 return fra.me.REG[1];
4658 }
4659 void compiling___compiling_icode___INative___compile_to_c(val_t p0, val_t p1){
4660 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4661 val_t REGB0;
4662 val_t tmp;
4663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4664 fra.me.file = LOCATE_compiling___compiling_icode;
4665 fra.me.line = 689;
4666 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_to_c;
4667 fra.me.has_broke = 0;
4668 fra.me.REG_size = 3;
4669 fra.me.nitni_local_ref_head = NULL;
4670 fra.me.REG[0] = NIT_NULL;
4671 fra.me.REG[1] = NIT_NULL;
4672 fra.me.REG[2] = NIT_NULL;
4673 fra.me.REG[0] = p0;
4674 fra.me.REG[1] = p1;
4675 /* ./compiling//compiling_icode.nit:691 */
4676 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4677 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4678 /* ./compiling//compiling_icode.nit:692 */
4679 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4680 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]);
4681 if (UNTAG_Bool(REGB0)) {
4682 /* ./compiling//compiling_icode.nit:693 */
4683 CALL_compiling___compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4684 } else {
4685 /* ./compiling//compiling_icode.nit:694 */
4686 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4687 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4688 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
4689 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4690 if (UNTAG_Bool(REGB0)) {
4691 /* ./compiling//compiling_icode.nit:695 */
4692 CALL_compiling___compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4693 }
4694 }
4695 stack_frame_head = fra.me.prev;
4696 return;
4697 }
4698 void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0, val_t p1){
4699 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4700 val_t REGB0;
4701 val_t REGB1;
4702 val_t REGB2;
4703 val_t REGB3;
4704 val_t REGB4;
4705 val_t tmp;
4706 static val_t once_value_1; /* Once value */
4707 static val_t once_value_2; /* Once value */
4708 static val_t once_value_6; /* Once value */
4709 static val_t once_value_7; /* Once value */
4710 static val_t once_value_8; /* Once value */
4711 static val_t once_value_9; /* Once value */
4712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4713 fra.me.file = LOCATE_compiling___compiling_icode;
4714 fra.me.line = 699;
4715 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_extern_method_to_c;
4716 fra.me.has_broke = 0;
4717 fra.me.REG_size = 7;
4718 fra.me.nitni_local_ref_head = NULL;
4719 fra.me.REG[0] = NIT_NULL;
4720 fra.me.REG[1] = NIT_NULL;
4721 fra.me.REG[2] = NIT_NULL;
4722 fra.me.REG[3] = NIT_NULL;
4723 fra.me.REG[4] = NIT_NULL;
4724 fra.me.REG[5] = NIT_NULL;
4725 fra.me.REG[6] = NIT_NULL;
4726 fra.me.REG[0] = p0;
4727 fra.me.REG[1] = p1;
4728 /* ./compiling//compiling_icode.nit:701 */
4729 REGB0 = TAG_Int(3);
4730 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4731 if (!once_value_1) {
4732 fra.me.REG[3] = BOX_NativeString("");
4733 REGB0 = TAG_Int(0);
4734 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4735 once_value_1 = fra.me.REG[3];
4736 register_static_object(&once_value_1);
4737 } else fra.me.REG[3] = once_value_1;
4738 fra.me.REG[3] = fra.me.REG[3];
4739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4740 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4741 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4742 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
4743 fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4745 if (!once_value_2) {
4746 fra.me.REG[4] = BOX_NativeString("___out");
4747 REGB0 = TAG_Int(6);
4748 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4749 once_value_2 = fra.me.REG[4];
4750 register_static_object(&once_value_2);
4751 } else fra.me.REG[4] = once_value_2;
4752 fra.me.REG[4] = fra.me.REG[4];
4753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4754 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4755 /* ./compiling//compiling_icode.nit:703 */
4756 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4757 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
4758 /* ./compiling//compiling_icode.nit:704 */
4759 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4760 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4761 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4762 if (UNTAG_Bool(REGB1)) {
4763 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 704);
4764 }
4765 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4766 REGB2 = TAG_Int(1);
4767 /* ./../lib/standard//kernel.nit:235 */
4768 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4769 /* ./compiling//compiling_icode.nit:704 */
4770 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4771 if (UNTAG_Bool(REGB1)) {
4772 } else {
4773 /* ./../lib/standard//kernel.nit:227 */
4774 REGB2 = TAG_Bool((REGB0)==(REGB2));
4775 /* ./compiling//compiling_icode.nit:704 */
4776 REGB1 = REGB2;
4777 }
4778 if (UNTAG_Bool(REGB1)) {
4779 } else {
4780 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 704);
4781 }
4782 /* ./compiling//compiling_icode.nit:706 */
4783 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4784 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4785 /* ./compiling//compiling_icode.nit:708 */
4786 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
4787 /* ./compiling//compiling_icode.nit:709 */
4788 REGB1 = TAG_Int(0);
4789 /* ./../lib/standard//collection//array.nit:278 */
4790 fra.me.REG[6] = fra.me.REG[3];
4791 /* ./../lib/standard//collection//array.nit:280 */
4792 REGB2 = TAG_Int(0);
4793 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4794 if (UNTAG_Bool(REGB0)) {
4795 } else {
4796 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4797 }
4798 /* ./../lib/standard//kernel.nit:233 */
4799 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4800 /* ./../lib/standard//collection//array.nit:280 */
4801 if (UNTAG_Bool(REGB2)) {
4802 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4803 if (UNTAG_Bool(REGB2)) {
4804 } else {
4805 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4806 }
4807 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
4808 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4809 if (UNTAG_Bool(REGB0)) {
4810 } else {
4811 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4812 }
4813 /* ./../lib/standard//kernel.nit:232 */
4814 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4815 } else {
4816 /* ./../lib/standard//collection//array.nit:280 */
4817 REGB0 = TAG_Bool(false);
4818 REGB2 = REGB0;
4819 }
4820 if (UNTAG_Bool(REGB2)) {
4821 } else {
4822 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
4823 }
4824 /* ./../lib/standard//collection//array.nit:281 */
4825 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
4826 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4827 if (UNTAG_Bool(REGB2)) {
4828 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4829 }
4830 /* ./../lib/standard//collection//array.nit:718 */
4831 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
4832 /* ./../lib/standard//collection//array.nit:281 */
4833 goto label3;
4834 label3: while(0);
4835 /* ./compiling//compiling_icode.nit:709 */
4836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4837 /* ./compiling//compiling_icode.nit:710 */
4838 REGB1 = TAG_Int(0);
4839 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4840 if (UNTAG_Bool(REGB2)) {
4841 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 710);
4842 }
4843 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4844 /* ./../lib/standard//kernel.nit:352 */
4845 while(1) {
4846 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4847 if (UNTAG_Bool(REGB0)) {
4848 } else {
4849 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4850 }
4851 /* ./../lib/standard//kernel.nit:232 */
4852 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4853 /* ./../lib/standard//kernel.nit:352 */
4854 if (UNTAG_Bool(REGB0)) {
4855 /* ./compiling//compiling_icode.nit:710 */
4856 REGB0 = REGB1;
4857 /* ./compiling//compiling_icode.nit:711 */
4858 REGB3 = TAG_Int(1);
4859 /* ./../lib/standard//kernel.nit:235 */
4860 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4861 /* ./../lib/standard//collection//array.nit:278 */
4862 fra.me.REG[4] = fra.me.REG[3];
4863 /* ./../lib/standard//collection//array.nit:280 */
4864 REGB0 = TAG_Int(0);
4865 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4866 if (UNTAG_Bool(REGB4)) {
4867 } else {
4868 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4869 }
4870 /* ./../lib/standard//kernel.nit:233 */
4871 REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
4872 /* ./../lib/standard//collection//array.nit:280 */
4873 if (UNTAG_Bool(REGB0)) {
4874 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4875 if (UNTAG_Bool(REGB0)) {
4876 } else {
4877 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4878 }
4879 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4880 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4881 if (UNTAG_Bool(REGB4)) {
4882 } else {
4883 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4884 }
4885 /* ./../lib/standard//kernel.nit:232 */
4886 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
4887 } else {
4888 /* ./../lib/standard//collection//array.nit:280 */
4889 REGB4 = TAG_Bool(false);
4890 REGB0 = REGB4;
4891 }
4892 if (UNTAG_Bool(REGB0)) {
4893 } else {
4894 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
4895 }
4896 /* ./../lib/standard//collection//array.nit:281 */
4897 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4898 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4899 if (UNTAG_Bool(REGB0)) {
4900 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4901 }
4902 /* ./../lib/standard//collection//array.nit:718 */
4903 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
4904 /* ./../lib/standard//collection//array.nit:281 */
4905 goto label4;
4906 label4: while(0);
4907 /* ./compiling//compiling_icode.nit:711 */
4908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
4909 /* ./../lib/standard//kernel.nit:354 */
4910 REGB3 = TAG_Int(1);
4911 /* ./../lib/standard//kernel.nit:235 */
4912 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
4913 /* ./../lib/standard//kernel.nit:354 */
4914 REGB1 = REGB3;
4915 } else {
4916 /* ./../lib/standard//kernel.nit:352 */
4917 goto label5;
4918 }
4919 }
4920 label5: while(0);
4921 /* ./compiling//compiling_icode.nit:713 */
4922 REGB1 = TAG_Int(5);
4923 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4924 if (!once_value_6) {
4925 fra.me.REG[4] = BOX_NativeString("");
4926 REGB1 = TAG_Int(0);
4927 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
4928 once_value_6 = fra.me.REG[4];
4929 register_static_object(&once_value_6);
4930 } else fra.me.REG[4] = once_value_6;
4931 fra.me.REG[4] = fra.me.REG[4];
4932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4934 if (!once_value_7) {
4935 fra.me.REG[2] = BOX_NativeString("(");
4936 REGB1 = TAG_Int(1);
4937 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4938 once_value_7 = fra.me.REG[2];
4939 register_static_object(&once_value_7);
4940 } else fra.me.REG[2] = once_value_7;
4941 fra.me.REG[2] = fra.me.REG[2];
4942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4943 if (!once_value_8) {
4944 fra.me.REG[2] = BOX_NativeString(", ");
4945 REGB1 = TAG_Int(2);
4946 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4947 once_value_8 = fra.me.REG[2];
4948 register_static_object(&once_value_8);
4949 } else fra.me.REG[2] = once_value_8;
4950 fra.me.REG[2] = fra.me.REG[2];
4951 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
4952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4953 if (!once_value_9) {
4954 fra.me.REG[2] = BOX_NativeString(")");
4955 REGB1 = TAG_Int(1);
4956 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4957 once_value_9 = fra.me.REG[2];
4958 register_static_object(&once_value_9);
4959 } else fra.me.REG[2] = once_value_9;
4960 fra.me.REG[2] = fra.me.REG[2];
4961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4962 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4963 /* ./compiling//compiling_icode.nit:715 */
4964 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
4965 if (UNTAG_Bool(REGB1)) {
4966 }
4967 /* ./compiling//compiling_icode.nit:716 */
4968 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4969 /* ./compiling//compiling_icode.nit:717 */
4970 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4971 stack_frame_head = fra.me.prev;
4972 return;
4973 }
4974 void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){
4975 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4976 val_t REGB0;
4977 val_t REGB1;
4978 val_t REGB2;
4979 val_t tmp;
4980 static val_t once_value_1; /* Once value */
4981 static val_t once_value_2; /* Once value */
4982 static val_t once_value_3; /* Once value */
4983 static val_t once_value_4; /* Once value */
4984 static val_t once_value_6; /* Once value */
4985 static val_t once_value_7; /* Once value */
4986 static val_t once_value_8; /* Once value */
4987 static val_t once_value_10; /* Once value */
4988 static val_t once_value_11; /* Once value */
4989 static val_t once_value_12; /* Once value */
4990 static val_t once_value_13; /* Once value */
4991 static val_t once_value_15; /* Once value */
4992 static val_t once_value_16; /* Once value */
4993 static val_t once_value_17; /* Once value */
4994 static val_t once_value_18; /* Once value */
4995 static val_t once_value_20; /* Once value */
4996 static val_t once_value_21; /* Once value */
4997 static val_t once_value_22; /* Once value */
4998 static val_t once_value_23; /* Once value */
4999 static val_t once_value_25; /* Once value */
5000 static val_t once_value_26; /* Once value */
5001 static val_t once_value_27; /* Once value */
5002 static val_t once_value_28; /* Once value */
5003 static val_t once_value_30; /* Once value */
5004 static val_t once_value_31; /* Once value */
5005 static val_t once_value_32; /* Once value */
5006 static val_t once_value_33; /* Once value */
5007 static val_t once_value_35; /* Once value */
5008 static val_t once_value_36; /* Once value */
5009 static val_t once_value_37; /* Once value */
5010 static val_t once_value_38; /* Once value */
5011 static val_t once_value_40; /* Once value */
5012 static val_t once_value_42; /* Once value */
5013 static val_t once_value_43; /* Once value */
5014 static val_t once_value_44; /* Once value */
5015 static val_t once_value_45; /* Once value */
5016 static val_t once_value_47; /* Once value */
5017 static val_t once_value_49; /* Once value */
5018 static val_t once_value_50; /* Once value */
5019 static val_t once_value_51; /* Once value */
5020 static val_t once_value_52; /* Once value */
5021 static val_t once_value_54; /* Once value */
5022 static val_t once_value_56; /* Once value */
5023 static val_t once_value_57; /* Once value */
5024 static val_t once_value_58; /* Once value */
5025 static val_t once_value_59; /* Once value */
5026 static val_t once_value_61; /* Once value */
5027 static val_t once_value_63; /* Once value */
5028 static val_t once_value_64; /* Once value */
5029 static val_t once_value_65; /* Once value */
5030 static val_t once_value_66; /* Once value */
5031 static val_t once_value_68; /* Once value */
5032 static val_t once_value_70; /* Once value */
5033 static val_t once_value_71; /* Once value */
5034 static val_t once_value_72; /* Once value */
5035 static val_t once_value_73; /* Once value */
5036 static val_t once_value_75; /* Once value */
5037 static val_t once_value_77; /* Once value */
5038 static val_t once_value_78; /* Once value */
5039 static val_t once_value_79; /* Once value */
5040 static val_t once_value_80; /* Once value */
5041 static val_t once_value_82; /* Once value */
5042 static val_t once_value_84; /* Once value */
5043 static val_t once_value_85; /* Once value */
5044 static val_t once_value_86; /* Once value */
5045 static val_t once_value_87; /* Once value */
5046 static val_t once_value_89; /* Once value */
5047 static val_t once_value_91; /* Once value */
5048 static val_t once_value_92; /* Once value */
5049 static val_t once_value_93; /* Once value */
5050 static val_t once_value_94; /* Once value */
5051 static val_t once_value_96; /* Once value */
5052 static val_t once_value_98; /* Once value */
5053 static val_t once_value_99; /* Once value */
5054 static val_t once_value_100; /* Once value */
5055 static val_t once_value_101; /* Once value */
5056 static val_t once_value_103; /* Once value */
5057 static val_t once_value_105; /* Once value */
5058 static val_t once_value_106; /* Once value */
5059 static val_t once_value_107; /* Once value */
5060 static val_t once_value_108; /* Once value */
5061 static val_t once_value_110; /* Once value */
5062 static val_t once_value_112; /* Once value */
5063 static val_t once_value_113; /* Once value */
5064 static val_t once_value_114; /* Once value */
5065 static val_t once_value_115; /* Once value */
5066 static val_t once_value_117; /* Once value */
5067 static val_t once_value_119; /* Once value */
5068 static val_t once_value_120; /* Once value */
5069 static val_t once_value_121; /* Once value */
5070 static val_t once_value_122; /* Once value */
5071 static val_t once_value_124; /* Once value */
5072 static val_t once_value_126; /* Once value */
5073 static val_t once_value_127; /* Once value */
5074 static val_t once_value_128; /* Once value */
5075 static val_t once_value_129; /* Once value */
5076 static val_t once_value_130; /* Once value */
5077 static val_t once_value_131; /* Once value */
5078 static val_t once_value_133; /* Once value */
5079 static val_t once_value_134; /* Once value */
5080 static val_t once_value_135; /* Once value */
5081 static val_t once_value_136; /* Once value */
5082 static val_t once_value_138; /* Once value */
5083 static val_t once_value_139; /* Once value */
5084 static val_t once_value_140; /* Once value */
5085 static val_t once_value_141; /* Once value */
5086 static val_t once_value_143; /* Once value */
5087 static val_t once_value_144; /* Once value */
5088 static val_t once_value_145; /* Once value */
5089 static val_t once_value_146; /* Once value */
5090 static val_t once_value_148; /* Once value */
5091 static val_t once_value_149; /* Once value */
5092 static val_t once_value_150; /* Once value */
5093 static val_t once_value_151; /* Once value */
5094 static val_t once_value_153; /* Once value */
5095 static val_t once_value_155; /* Once value */
5096 static val_t once_value_156; /* Once value */
5097 static val_t once_value_157; /* Once value */
5098 static val_t once_value_158; /* Once value */
5099 static val_t once_value_160; /* Once value */
5100 static val_t once_value_162; /* Once value */
5101 static val_t once_value_163; /* Once value */
5102 static val_t once_value_164; /* Once value */
5103 static val_t once_value_165; /* Once value */
5104 static val_t once_value_167; /* Once value */
5105 static val_t once_value_169; /* Once value */
5106 static val_t once_value_170; /* Once value */
5107 static val_t once_value_171; /* Once value */
5108 static val_t once_value_172; /* Once value */
5109 static val_t once_value_174; /* Once value */
5110 static val_t once_value_176; /* Once value */
5111 static val_t once_value_177; /* Once value */
5112 static val_t once_value_178; /* Once value */
5113 static val_t once_value_179; /* Once value */
5114 static val_t once_value_181; /* Once value */
5115 static val_t once_value_183; /* Once value */
5116 static val_t once_value_184; /* Once value */
5117 static val_t once_value_185; /* Once value */
5118 static val_t once_value_186; /* Once value */
5119 static val_t once_value_188; /* Once value */
5120 static val_t once_value_190; /* Once value */
5121 static val_t once_value_191; /* Once value */
5122 static val_t once_value_192; /* Once value */
5123 static val_t once_value_193; /* Once value */
5124 static val_t once_value_195; /* Once value */
5125 static val_t once_value_197; /* Once value */
5126 static val_t once_value_198; /* Once value */
5127 static val_t once_value_199; /* Once value */
5128 static val_t once_value_200; /* Once value */
5129 static val_t once_value_202; /* Once value */
5130 static val_t once_value_204; /* Once value */
5131 static val_t once_value_205; /* Once value */
5132 static val_t once_value_206; /* Once value */
5133 static val_t once_value_207; /* Once value */
5134 static val_t once_value_208; /* Once value */
5135 static val_t once_value_209; /* Once value */
5136 static val_t once_value_211; /* Once value */
5137 static val_t once_value_212; /* Once value */
5138 static val_t once_value_213; /* Once value */
5139 static val_t once_value_214; /* Once value */
5140 static val_t once_value_216; /* Once value */
5141 static val_t once_value_217; /* Once value */
5142 static val_t once_value_218; /* Once value */
5143 static val_t once_value_219; /* Once value */
5144 static val_t once_value_221; /* Once value */
5145 static val_t once_value_222; /* Once value */
5146 static val_t once_value_223; /* Once value */
5147 static val_t once_value_224; /* Once value */
5148 static val_t once_value_226; /* Once value */
5149 static val_t once_value_227; /* Once value */
5150 static val_t once_value_228; /* Once value */
5151 static val_t once_value_229; /* Once value */
5152 static val_t once_value_231; /* Once value */
5153 static val_t once_value_232; /* Once value */
5154 static val_t once_value_233; /* Once value */
5155 static val_t once_value_234; /* Once value */
5156 static val_t once_value_236; /* Once value */
5157 static val_t once_value_237; /* Once value */
5158 static val_t once_value_238; /* Once value */
5159 static val_t once_value_239; /* Once value */
5160 static val_t once_value_241; /* Once value */
5161 static val_t once_value_242; /* Once value */
5162 static val_t once_value_243; /* Once value */
5163 static val_t once_value_244; /* Once value */
5164 static val_t once_value_246; /* Once value */
5165 static val_t once_value_248; /* Once value */
5166 static val_t once_value_249; /* Once value */
5167 static val_t once_value_250; /* Once value */
5168 static val_t once_value_251; /* Once value */
5169 static val_t once_value_253; /* Once value */
5170 static val_t once_value_255; /* Once value */
5171 static val_t once_value_256; /* Once value */
5172 static val_t once_value_257; /* Once value */
5173 static val_t once_value_258; /* Once value */
5174 static val_t once_value_260; /* Once value */
5175 static val_t once_value_262; /* Once value */
5176 static val_t once_value_263; /* Once value */
5177 static val_t once_value_264; /* Once value */
5178 static val_t once_value_265; /* Once value */
5179 static val_t once_value_267; /* Once value */
5180 static val_t once_value_269; /* Once value */
5181 static val_t once_value_270; /* Once value */
5182 static val_t once_value_271; /* Once value */
5183 static val_t once_value_272; /* Once value */
5184 static val_t once_value_274; /* Once value */
5185 static val_t once_value_276; /* Once value */
5186 static val_t once_value_277; /* Once value */
5187 static val_t once_value_278; /* Once value */
5188 static val_t once_value_279; /* Once value */
5189 static val_t once_value_281; /* Once value */
5190 static val_t once_value_283; /* Once value */
5191 static val_t once_value_284; /* Once value */
5192 static val_t once_value_285; /* Once value */
5193 static val_t once_value_286; /* Once value */
5194 static val_t once_value_288; /* Once value */
5195 static val_t once_value_290; /* Once value */
5196 static val_t once_value_291; /* Once value */
5197 static val_t once_value_292; /* Once value */
5198 static val_t once_value_293; /* Once value */
5199 static val_t once_value_295; /* Once value */
5200 static val_t once_value_297; /* Once value */
5201 static val_t once_value_298; /* Once value */
5202 static val_t once_value_299; /* Once value */
5203 static val_t once_value_300; /* Once value */
5204 static val_t once_value_302; /* Once value */
5205 static val_t once_value_304; /* Once value */
5206 static val_t once_value_305; /* Once value */
5207 static val_t once_value_306; /* Once value */
5208 static val_t once_value_307; /* Once value */
5209 static val_t once_value_309; /* Once value */
5210 static val_t once_value_311; /* Once value */
5211 static val_t once_value_312; /* Once value */
5212 static val_t once_value_313; /* Once value */
5213 static val_t once_value_314; /* Once value */
5214 static val_t once_value_316; /* Once value */
5215 static val_t once_value_318; /* Once value */
5216 static val_t once_value_319; /* Once value */
5217 static val_t once_value_320; /* Once value */
5218 static val_t once_value_321; /* Once value */
5219 static val_t once_value_322; /* Once value */
5220 static val_t once_value_323; /* Once value */
5221 static val_t once_value_325; /* Once value */
5222 static val_t once_value_326; /* Once value */
5223 static val_t once_value_327; /* Once value */
5224 static val_t once_value_328; /* Once value */
5225 static val_t once_value_330; /* Once value */
5226 static val_t once_value_331; /* Once value */
5227 static val_t once_value_332; /* Once value */
5228 static val_t once_value_333; /* Once value */
5229 static val_t once_value_335; /* Once value */
5230 static val_t once_value_336; /* Once value */
5231 static val_t once_value_337; /* Once value */
5232 static val_t once_value_338; /* Once value */
5233 static val_t once_value_340; /* Once value */
5234 static val_t once_value_341; /* Once value */
5235 static val_t once_value_342; /* Once value */
5236 static val_t once_value_343; /* Once value */
5237 static val_t once_value_345; /* Once value */
5238 static val_t once_value_346; /* Once value */
5239 static val_t once_value_347; /* Once value */
5240 static val_t once_value_348; /* Once value */
5241 static val_t once_value_350; /* Once value */
5242 static val_t once_value_352; /* Once value */
5243 static val_t once_value_353; /* Once value */
5244 static val_t once_value_354; /* Once value */
5245 static val_t once_value_355; /* Once value */
5246 static val_t once_value_357; /* Once value */
5247 static val_t once_value_359; /* Once value */
5248 static val_t once_value_360; /* Once value */
5249 static val_t once_value_361; /* Once value */
5250 static val_t once_value_362; /* Once value */
5251 static val_t once_value_363; /* Once value */
5252 static val_t once_value_364; /* Once value */
5253 static val_t once_value_366; /* Once value */
5254 static val_t once_value_367; /* Once value */
5255 static val_t once_value_368; /* Once value */
5256 static val_t once_value_369; /* Once value */
5257 static val_t once_value_371; /* Once value */
5258 static val_t once_value_373; /* Once value */
5259 static val_t once_value_374; /* Once value */
5260 static val_t once_value_375; /* Once value */
5261 static val_t once_value_376; /* Once value */
5262 static val_t once_value_378; /* Once value */
5263 static val_t once_value_380; /* Once value */
5264 static val_t once_value_382; /* Once value */
5265 static val_t once_value_383; /* Once value */
5266 static val_t once_value_384; /* Once value */
5267 static val_t once_value_385; /* Once value */
5268 static val_t once_value_387; /* Once value */
5269 static val_t once_value_389; /* Once value */
5270 static val_t once_value_391; /* Once value */
5271 static val_t once_value_392; /* Once value */
5272 static val_t once_value_393; /* Once value */
5273 static val_t once_value_394; /* Once value */
5274 static val_t once_value_395; /* Once value */
5275 static val_t once_value_396; /* Once value */
5276 static val_t once_value_398; /* Once value */
5277 static val_t once_value_399; /* Once value */
5278 static val_t once_value_400; /* Once value */
5279 static val_t once_value_401; /* Once value */
5280 static val_t once_value_403; /* Once value */
5281 static val_t once_value_404; /* Once value */
5282 static val_t once_value_405; /* Once value */
5283 static val_t once_value_406; /* Once value */
5284 static val_t once_value_408; /* Once value */
5285 static val_t once_value_410; /* Once value */
5286 static val_t once_value_411; /* Once value */
5287 static val_t once_value_412; /* Once value */
5288 static val_t once_value_413; /* Once value */
5289 static val_t once_value_415; /* Once value */
5290 static val_t once_value_417; /* Once value */
5291 static val_t once_value_419; /* Once value */
5292 static val_t once_value_420; /* Once value */
5293 static val_t once_value_421; /* Once value */
5294 static val_t once_value_422; /* Once value */
5295 static val_t once_value_424; /* Once value */
5296 static val_t once_value_426; /* Once value */
5297 static val_t once_value_428; /* Once value */
5298 static val_t once_value_430; /* Once value */
5299 static val_t once_value_432; /* Once value */
5300 static val_t once_value_433; /* Once value */
5301 static val_t once_value_434; /* Once value */
5302 static val_t once_value_435; /* Once value */
5303 static val_t once_value_436; /* Once value */
5304 static val_t once_value_437; /* Once value */
5305 static val_t once_value_438; /* Once value */
5306 static val_t once_value_439; /* Once value */
5307 static val_t once_value_440; /* Once value */
5308 static val_t once_value_442; /* Once value */
5309 static val_t once_value_443; /* Once value */
5310 static val_t once_value_444; /* Once value */
5311 static val_t once_value_445; /* Once value */
5312 static val_t once_value_446; /* Once value */
5313 static val_t once_value_447; /* Once value */
5314 static val_t once_value_448; /* Once value */
5315 static val_t once_value_450; /* Once value */
5316 static val_t once_value_452; /* Once value */
5317 static val_t once_value_453; /* Once value */
5318 static val_t once_value_454; /* Once value */
5319 static val_t once_value_455; /* Once value */
5320 static val_t once_value_457; /* Once value */
5321 static val_t once_value_458; /* Once value */
5322 static val_t once_value_459; /* Once value */
5323 static val_t once_value_460; /* Once value */
5324 static val_t once_value_462; /* Once value */
5325 static val_t once_value_463; /* Once value */
5326 static val_t once_value_464; /* Once value */
5327 static val_t once_value_465; /* Once value */
5328 static val_t once_value_467; /* Once value */
5329 static val_t once_value_468; /* Once value */
5330 static val_t once_value_469; /* Once value */
5331 static val_t once_value_470; /* Once value */
5332 static val_t once_value_472; /* Once value */
5333 static val_t once_value_473; /* Once value */
5334 static val_t once_value_474; /* Once value */
5335 static val_t once_value_475; /* Once value */
5336 static val_t once_value_477; /* Once value */
5337 static val_t once_value_478; /* Once value */
5338 static val_t once_value_479; /* Once value */
5339 static val_t once_value_480; /* Once value */
5340 static val_t once_value_481; /* Once value */
5341 static val_t once_value_482; /* Once value */
5342 static val_t once_value_483; /* Once value */
5343 static val_t once_value_484; /* Once value */
5344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5345 fra.me.file = LOCATE_compiling___compiling_icode;
5346 fra.me.line = 720;
5347 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_intern_method_to_c;
5348 fra.me.has_broke = 0;
5349 fra.me.REG_size = 8;
5350 fra.me.nitni_local_ref_head = NULL;
5351 fra.me.REG[0] = NIT_NULL;
5352 fra.me.REG[1] = NIT_NULL;
5353 fra.me.REG[2] = NIT_NULL;
5354 fra.me.REG[3] = NIT_NULL;
5355 fra.me.REG[4] = NIT_NULL;
5356 fra.me.REG[5] = NIT_NULL;
5357 fra.me.REG[6] = NIT_NULL;
5358 fra.me.REG[7] = NIT_NULL;
5359 fra.me.REG[0] = p0;
5360 fra.me.REG[1] = p1;
5361 /* ./compiling//compiling_icode.nit:722 */
5362 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5363 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5364 /* ./compiling//compiling_icode.nit:723 */
5365 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5366 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5367 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5368 if (UNTAG_Bool(REGB1)) {
5369 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 723);
5370 }
5371 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5372 REGB2 = TAG_Int(1);
5373 /* ./../lib/standard//kernel.nit:235 */
5374 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5375 /* ./compiling//compiling_icode.nit:723 */
5376 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5377 if (UNTAG_Bool(REGB1)) {
5378 } else {
5379 /* ./../lib/standard//kernel.nit:227 */
5380 REGB2 = TAG_Bool((REGB0)==(REGB2));
5381 /* ./compiling//compiling_icode.nit:723 */
5382 REGB1 = REGB2;
5383 }
5384 if (UNTAG_Bool(REGB1)) {
5385 } else {
5386 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 723);
5387 }
5388 /* ./compiling//compiling_icode.nit:724 */
5389 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5390 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5391 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5392 /* ./compiling//compiling_icode.nit:725 */
5393 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5394 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5395 /* ./compiling//compiling_icode.nit:726 */
5396 fra.me.REG[4] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5397 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5398 /* ./compiling//compiling_icode.nit:727 */
5399 fra.me.REG[5] = NIT_NULL;
5400 /* ./compiling//compiling_icode.nit:728 */
5401 if (!once_value_1) {
5402 if (!once_value_2) {
5403 fra.me.REG[6] = BOX_NativeString("Int");
5404 REGB1 = TAG_Int(3);
5405 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5406 once_value_2 = fra.me.REG[6];
5407 register_static_object(&once_value_2);
5408 } else fra.me.REG[6] = once_value_2;
5409 fra.me.REG[6] = fra.me.REG[6];
5410 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5411 once_value_1 = fra.me.REG[6];
5412 register_static_object(&once_value_1);
5413 } else fra.me.REG[6] = once_value_1;
5414 fra.me.REG[6] = fra.me.REG[6];
5415 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5416 if (UNTAG_Bool(REGB1)) {
5417 } else {
5418 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5419 REGB1 = REGB2;
5420 }
5421 if (UNTAG_Bool(REGB1)) {
5422 /* ./compiling//compiling_icode.nit:729 */
5423 if (!once_value_3) {
5424 if (!once_value_4) {
5425 fra.me.REG[6] = BOX_NativeString("object_id");
5426 REGB1 = TAG_Int(9);
5427 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5428 once_value_4 = fra.me.REG[6];
5429 register_static_object(&once_value_4);
5430 } else fra.me.REG[6] = once_value_4;
5431 fra.me.REG[6] = fra.me.REG[6];
5432 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5433 once_value_3 = fra.me.REG[6];
5434 register_static_object(&once_value_3);
5435 } else fra.me.REG[6] = once_value_3;
5436 fra.me.REG[6] = fra.me.REG[6];
5437 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5438 if (UNTAG_Bool(REGB1)) {
5439 } else {
5440 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5441 REGB1 = REGB2;
5442 }
5443 if (UNTAG_Bool(REGB1)) {
5444 /* ./compiling//compiling_icode.nit:730 */
5445 REGB1 = TAG_Int(0);
5446 /* ./../lib/standard//collection//array.nit:278 */
5447 fra.me.REG[6] = fra.me.REG[4];
5448 /* ./../lib/standard//collection//array.nit:280 */
5449 REGB2 = TAG_Int(0);
5450 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5451 if (UNTAG_Bool(REGB0)) {
5452 } else {
5453 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5454 }
5455 /* ./../lib/standard//kernel.nit:233 */
5456 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5457 /* ./../lib/standard//collection//array.nit:280 */
5458 if (UNTAG_Bool(REGB2)) {
5459 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5460 if (UNTAG_Bool(REGB2)) {
5461 } else {
5462 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5463 }
5464 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
5465 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5466 if (UNTAG_Bool(REGB0)) {
5467 } else {
5468 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5469 }
5470 /* ./../lib/standard//kernel.nit:232 */
5471 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5472 } else {
5473 /* ./../lib/standard//collection//array.nit:280 */
5474 REGB0 = TAG_Bool(false);
5475 REGB2 = REGB0;
5476 }
5477 if (UNTAG_Bool(REGB2)) {
5478 } else {
5479 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5480 }
5481 /* ./../lib/standard//collection//array.nit:281 */
5482 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
5483 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5484 if (UNTAG_Bool(REGB2)) {
5485 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5486 }
5487 /* ./../lib/standard//collection//array.nit:718 */
5488 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5489 /* ./../lib/standard//collection//array.nit:281 */
5490 goto label5;
5491 label5: while(0);
5492 /* ./compiling//compiling_icode.nit:730 */
5493 fra.me.REG[5] = fra.me.REG[6];
5494 } else {
5495 /* ./compiling//compiling_icode.nit:731 */
5496 if (!once_value_6) {
5497 if (!once_value_7) {
5498 fra.me.REG[6] = BOX_NativeString("unary -");
5499 REGB1 = TAG_Int(7);
5500 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5501 once_value_7 = fra.me.REG[6];
5502 register_static_object(&once_value_7);
5503 } else fra.me.REG[6] = once_value_7;
5504 fra.me.REG[6] = fra.me.REG[6];
5505 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5506 once_value_6 = fra.me.REG[6];
5507 register_static_object(&once_value_6);
5508 } else fra.me.REG[6] = once_value_6;
5509 fra.me.REG[6] = fra.me.REG[6];
5510 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5511 if (UNTAG_Bool(REGB1)) {
5512 } else {
5513 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5514 REGB1 = REGB2;
5515 }
5516 if (UNTAG_Bool(REGB1)) {
5517 /* ./compiling//compiling_icode.nit:732 */
5518 REGB1 = TAG_Int(3);
5519 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5520 if (!once_value_8) {
5521 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5522 REGB1 = TAG_Int(19);
5523 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5524 once_value_8 = fra.me.REG[7];
5525 register_static_object(&once_value_8);
5526 } else fra.me.REG[7] = once_value_8;
5527 fra.me.REG[7] = fra.me.REG[7];
5528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5529 REGB1 = TAG_Int(0);
5530 /* ./../lib/standard//collection//array.nit:278 */
5531 fra.me.REG[7] = fra.me.REG[4];
5532 /* ./../lib/standard//collection//array.nit:280 */
5533 REGB2 = TAG_Int(0);
5534 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5535 if (UNTAG_Bool(REGB0)) {
5536 } else {
5537 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5538 }
5539 /* ./../lib/standard//kernel.nit:233 */
5540 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5541 /* ./../lib/standard//collection//array.nit:280 */
5542 if (UNTAG_Bool(REGB2)) {
5543 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5544 if (UNTAG_Bool(REGB2)) {
5545 } else {
5546 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5547 }
5548 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5549 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5550 if (UNTAG_Bool(REGB0)) {
5551 } else {
5552 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5553 }
5554 /* ./../lib/standard//kernel.nit:232 */
5555 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5556 } else {
5557 /* ./../lib/standard//collection//array.nit:280 */
5558 REGB0 = TAG_Bool(false);
5559 REGB2 = REGB0;
5560 }
5561 if (UNTAG_Bool(REGB2)) {
5562 } else {
5563 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5564 }
5565 /* ./../lib/standard//collection//array.nit:281 */
5566 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5567 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5568 if (UNTAG_Bool(REGB2)) {
5569 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5570 }
5571 /* ./../lib/standard//collection//array.nit:718 */
5572 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5573 /* ./../lib/standard//collection//array.nit:281 */
5574 goto label9;
5575 label9: while(0);
5576 /* ./compiling//compiling_icode.nit:732 */
5577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5578 if (!once_value_10) {
5579 fra.me.REG[7] = BOX_NativeString("))");
5580 REGB1 = TAG_Int(2);
5581 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5582 once_value_10 = fra.me.REG[7];
5583 register_static_object(&once_value_10);
5584 } else fra.me.REG[7] = once_value_10;
5585 fra.me.REG[7] = fra.me.REG[7];
5586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5587 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5588 fra.me.REG[5] = fra.me.REG[6];
5589 } else {
5590 /* ./compiling//compiling_icode.nit:733 */
5591 if (!once_value_11) {
5592 if (!once_value_12) {
5593 fra.me.REG[6] = BOX_NativeString("output");
5594 REGB1 = TAG_Int(6);
5595 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5596 once_value_12 = fra.me.REG[6];
5597 register_static_object(&once_value_12);
5598 } else fra.me.REG[6] = once_value_12;
5599 fra.me.REG[6] = fra.me.REG[6];
5600 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5601 once_value_11 = fra.me.REG[6];
5602 register_static_object(&once_value_11);
5603 } else fra.me.REG[6] = once_value_11;
5604 fra.me.REG[6] = fra.me.REG[6];
5605 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5606 if (UNTAG_Bool(REGB1)) {
5607 } else {
5608 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5609 REGB1 = REGB2;
5610 }
5611 if (UNTAG_Bool(REGB1)) {
5612 /* ./compiling//compiling_icode.nit:734 */
5613 REGB1 = TAG_Int(3);
5614 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5615 if (!once_value_13) {
5616 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5617 REGB1 = TAG_Int(26);
5618 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5619 once_value_13 = fra.me.REG[7];
5620 register_static_object(&once_value_13);
5621 } else fra.me.REG[7] = once_value_13;
5622 fra.me.REG[7] = fra.me.REG[7];
5623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5624 REGB1 = TAG_Int(0);
5625 /* ./../lib/standard//collection//array.nit:278 */
5626 fra.me.REG[7] = fra.me.REG[4];
5627 /* ./../lib/standard//collection//array.nit:280 */
5628 REGB2 = TAG_Int(0);
5629 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5630 if (UNTAG_Bool(REGB0)) {
5631 } else {
5632 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5633 }
5634 /* ./../lib/standard//kernel.nit:233 */
5635 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5636 /* ./../lib/standard//collection//array.nit:280 */
5637 if (UNTAG_Bool(REGB2)) {
5638 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5639 if (UNTAG_Bool(REGB2)) {
5640 } else {
5641 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5642 }
5643 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5644 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5645 if (UNTAG_Bool(REGB0)) {
5646 } else {
5647 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5648 }
5649 /* ./../lib/standard//kernel.nit:232 */
5650 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5651 } else {
5652 /* ./../lib/standard//collection//array.nit:280 */
5653 REGB0 = TAG_Bool(false);
5654 REGB2 = REGB0;
5655 }
5656 if (UNTAG_Bool(REGB2)) {
5657 } else {
5658 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5659 }
5660 /* ./../lib/standard//collection//array.nit:281 */
5661 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5662 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5663 if (UNTAG_Bool(REGB2)) {
5664 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5665 }
5666 /* ./../lib/standard//collection//array.nit:718 */
5667 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5668 /* ./../lib/standard//collection//array.nit:281 */
5669 goto label14;
5670 label14: while(0);
5671 /* ./compiling//compiling_icode.nit:734 */
5672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5673 if (!once_value_15) {
5674 fra.me.REG[7] = BOX_NativeString("));");
5675 REGB1 = TAG_Int(3);
5676 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5677 once_value_15 = fra.me.REG[7];
5678 register_static_object(&once_value_15);
5679 } else fra.me.REG[7] = once_value_15;
5680 fra.me.REG[7] = fra.me.REG[7];
5681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5682 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5683 fra.me.REG[5] = fra.me.REG[6];
5684 } else {
5685 /* ./compiling//compiling_icode.nit:735 */
5686 if (!once_value_16) {
5687 if (!once_value_17) {
5688 fra.me.REG[6] = BOX_NativeString("ascii");
5689 REGB1 = TAG_Int(5);
5690 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5691 once_value_17 = fra.me.REG[6];
5692 register_static_object(&once_value_17);
5693 } else fra.me.REG[6] = once_value_17;
5694 fra.me.REG[6] = fra.me.REG[6];
5695 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5696 once_value_16 = fra.me.REG[6];
5697 register_static_object(&once_value_16);
5698 } else fra.me.REG[6] = once_value_16;
5699 fra.me.REG[6] = fra.me.REG[6];
5700 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5701 if (UNTAG_Bool(REGB1)) {
5702 } else {
5703 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5704 REGB1 = REGB2;
5705 }
5706 if (UNTAG_Bool(REGB1)) {
5707 /* ./compiling//compiling_icode.nit:736 */
5708 REGB1 = TAG_Int(3);
5709 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5710 if (!once_value_18) {
5711 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5712 REGB1 = TAG_Int(19);
5713 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5714 once_value_18 = fra.me.REG[7];
5715 register_static_object(&once_value_18);
5716 } else fra.me.REG[7] = once_value_18;
5717 fra.me.REG[7] = fra.me.REG[7];
5718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5719 REGB1 = TAG_Int(0);
5720 /* ./../lib/standard//collection//array.nit:278 */
5721 fra.me.REG[7] = fra.me.REG[4];
5722 /* ./../lib/standard//collection//array.nit:280 */
5723 REGB2 = TAG_Int(0);
5724 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5725 if (UNTAG_Bool(REGB0)) {
5726 } else {
5727 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5728 }
5729 /* ./../lib/standard//kernel.nit:233 */
5730 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5731 /* ./../lib/standard//collection//array.nit:280 */
5732 if (UNTAG_Bool(REGB2)) {
5733 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5734 if (UNTAG_Bool(REGB2)) {
5735 } else {
5736 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5737 }
5738 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5739 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5740 if (UNTAG_Bool(REGB0)) {
5741 } else {
5742 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5743 }
5744 /* ./../lib/standard//kernel.nit:232 */
5745 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5746 } else {
5747 /* ./../lib/standard//collection//array.nit:280 */
5748 REGB0 = TAG_Bool(false);
5749 REGB2 = REGB0;
5750 }
5751 if (UNTAG_Bool(REGB2)) {
5752 } else {
5753 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5754 }
5755 /* ./../lib/standard//collection//array.nit:281 */
5756 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5757 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5758 if (UNTAG_Bool(REGB2)) {
5759 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5760 }
5761 /* ./../lib/standard//collection//array.nit:718 */
5762 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5763 /* ./../lib/standard//collection//array.nit:281 */
5764 goto label19;
5765 label19: while(0);
5766 /* ./compiling//compiling_icode.nit:736 */
5767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5768 if (!once_value_20) {
5769 fra.me.REG[7] = BOX_NativeString("))");
5770 REGB1 = TAG_Int(2);
5771 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5772 once_value_20 = fra.me.REG[7];
5773 register_static_object(&once_value_20);
5774 } else fra.me.REG[7] = once_value_20;
5775 fra.me.REG[7] = fra.me.REG[7];
5776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5777 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5778 fra.me.REG[5] = fra.me.REG[6];
5779 } else {
5780 /* ./compiling//compiling_icode.nit:737 */
5781 if (!once_value_21) {
5782 if (!once_value_22) {
5783 fra.me.REG[6] = BOX_NativeString("succ");
5784 REGB1 = TAG_Int(4);
5785 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5786 once_value_22 = fra.me.REG[6];
5787 register_static_object(&once_value_22);
5788 } else fra.me.REG[6] = once_value_22;
5789 fra.me.REG[6] = fra.me.REG[6];
5790 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5791 once_value_21 = fra.me.REG[6];
5792 register_static_object(&once_value_21);
5793 } else fra.me.REG[6] = once_value_21;
5794 fra.me.REG[6] = fra.me.REG[6];
5795 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5796 if (UNTAG_Bool(REGB1)) {
5797 } else {
5798 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5799 REGB1 = REGB2;
5800 }
5801 if (UNTAG_Bool(REGB1)) {
5802 /* ./compiling//compiling_icode.nit:738 */
5803 REGB1 = TAG_Int(3);
5804 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5805 if (!once_value_23) {
5806 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5807 REGB1 = TAG_Int(18);
5808 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5809 once_value_23 = fra.me.REG[7];
5810 register_static_object(&once_value_23);
5811 } else fra.me.REG[7] = once_value_23;
5812 fra.me.REG[7] = fra.me.REG[7];
5813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5814 REGB1 = TAG_Int(0);
5815 /* ./../lib/standard//collection//array.nit:278 */
5816 fra.me.REG[7] = fra.me.REG[4];
5817 /* ./../lib/standard//collection//array.nit:280 */
5818 REGB2 = TAG_Int(0);
5819 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5820 if (UNTAG_Bool(REGB0)) {
5821 } else {
5822 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5823 }
5824 /* ./../lib/standard//kernel.nit:233 */
5825 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5826 /* ./../lib/standard//collection//array.nit:280 */
5827 if (UNTAG_Bool(REGB2)) {
5828 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5829 if (UNTAG_Bool(REGB2)) {
5830 } else {
5831 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5832 }
5833 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5834 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5835 if (UNTAG_Bool(REGB0)) {
5836 } else {
5837 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5838 }
5839 /* ./../lib/standard//kernel.nit:232 */
5840 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5841 } else {
5842 /* ./../lib/standard//collection//array.nit:280 */
5843 REGB0 = TAG_Bool(false);
5844 REGB2 = REGB0;
5845 }
5846 if (UNTAG_Bool(REGB2)) {
5847 } else {
5848 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5849 }
5850 /* ./../lib/standard//collection//array.nit:281 */
5851 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5852 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5853 if (UNTAG_Bool(REGB2)) {
5854 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5855 }
5856 /* ./../lib/standard//collection//array.nit:718 */
5857 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5858 /* ./../lib/standard//collection//array.nit:281 */
5859 goto label24;
5860 label24: while(0);
5861 /* ./compiling//compiling_icode.nit:738 */
5862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5863 if (!once_value_25) {
5864 fra.me.REG[7] = BOX_NativeString(")+1)");
5865 REGB1 = TAG_Int(4);
5866 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5867 once_value_25 = fra.me.REG[7];
5868 register_static_object(&once_value_25);
5869 } else fra.me.REG[7] = once_value_25;
5870 fra.me.REG[7] = fra.me.REG[7];
5871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5872 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5873 fra.me.REG[5] = fra.me.REG[6];
5874 } else {
5875 /* ./compiling//compiling_icode.nit:739 */
5876 if (!once_value_26) {
5877 if (!once_value_27) {
5878 fra.me.REG[6] = BOX_NativeString("prec");
5879 REGB1 = TAG_Int(4);
5880 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5881 once_value_27 = fra.me.REG[6];
5882 register_static_object(&once_value_27);
5883 } else fra.me.REG[6] = once_value_27;
5884 fra.me.REG[6] = fra.me.REG[6];
5885 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5886 once_value_26 = fra.me.REG[6];
5887 register_static_object(&once_value_26);
5888 } else fra.me.REG[6] = once_value_26;
5889 fra.me.REG[6] = fra.me.REG[6];
5890 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5891 if (UNTAG_Bool(REGB1)) {
5892 } else {
5893 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5894 REGB1 = REGB2;
5895 }
5896 if (UNTAG_Bool(REGB1)) {
5897 /* ./compiling//compiling_icode.nit:740 */
5898 REGB1 = TAG_Int(3);
5899 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5900 if (!once_value_28) {
5901 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5902 REGB1 = TAG_Int(18);
5903 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5904 once_value_28 = fra.me.REG[7];
5905 register_static_object(&once_value_28);
5906 } else fra.me.REG[7] = once_value_28;
5907 fra.me.REG[7] = fra.me.REG[7];
5908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5909 REGB1 = TAG_Int(0);
5910 /* ./../lib/standard//collection//array.nit:278 */
5911 fra.me.REG[7] = fra.me.REG[4];
5912 /* ./../lib/standard//collection//array.nit:280 */
5913 REGB2 = TAG_Int(0);
5914 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5915 if (UNTAG_Bool(REGB0)) {
5916 } else {
5917 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5918 }
5919 /* ./../lib/standard//kernel.nit:233 */
5920 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5921 /* ./../lib/standard//collection//array.nit:280 */
5922 if (UNTAG_Bool(REGB2)) {
5923 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5924 if (UNTAG_Bool(REGB2)) {
5925 } else {
5926 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5927 }
5928 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5929 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5930 if (UNTAG_Bool(REGB0)) {
5931 } else {
5932 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5933 }
5934 /* ./../lib/standard//kernel.nit:232 */
5935 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5936 } else {
5937 /* ./../lib/standard//collection//array.nit:280 */
5938 REGB0 = TAG_Bool(false);
5939 REGB2 = REGB0;
5940 }
5941 if (UNTAG_Bool(REGB2)) {
5942 } else {
5943 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5944 }
5945 /* ./../lib/standard//collection//array.nit:281 */
5946 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5947 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5948 if (UNTAG_Bool(REGB2)) {
5949 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5950 }
5951 /* ./../lib/standard//collection//array.nit:718 */
5952 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5953 /* ./../lib/standard//collection//array.nit:281 */
5954 goto label29;
5955 label29: while(0);
5956 /* ./compiling//compiling_icode.nit:740 */
5957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5958 if (!once_value_30) {
5959 fra.me.REG[7] = BOX_NativeString(")-1)");
5960 REGB1 = TAG_Int(4);
5961 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5962 once_value_30 = fra.me.REG[7];
5963 register_static_object(&once_value_30);
5964 } else fra.me.REG[7] = once_value_30;
5965 fra.me.REG[7] = fra.me.REG[7];
5966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5967 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5968 fra.me.REG[5] = fra.me.REG[6];
5969 } else {
5970 /* ./compiling//compiling_icode.nit:741 */
5971 if (!once_value_31) {
5972 if (!once_value_32) {
5973 fra.me.REG[6] = BOX_NativeString("to_f");
5974 REGB1 = TAG_Int(4);
5975 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5976 once_value_32 = fra.me.REG[6];
5977 register_static_object(&once_value_32);
5978 } else fra.me.REG[6] = once_value_32;
5979 fra.me.REG[6] = fra.me.REG[6];
5980 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5981 once_value_31 = fra.me.REG[6];
5982 register_static_object(&once_value_31);
5983 } else fra.me.REG[6] = once_value_31;
5984 fra.me.REG[6] = fra.me.REG[6];
5985 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5986 if (UNTAG_Bool(REGB1)) {
5987 } else {
5988 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5989 REGB1 = REGB2;
5990 }
5991 if (UNTAG_Bool(REGB1)) {
5992 /* ./compiling//compiling_icode.nit:742 */
5993 REGB1 = TAG_Int(3);
5994 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5995 if (!once_value_33) {
5996 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
5997 REGB1 = TAG_Int(27);
5998 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5999 once_value_33 = fra.me.REG[7];
6000 register_static_object(&once_value_33);
6001 } else fra.me.REG[7] = once_value_33;
6002 fra.me.REG[7] = fra.me.REG[7];
6003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6004 REGB1 = TAG_Int(0);
6005 /* ./../lib/standard//collection//array.nit:278 */
6006 fra.me.REG[7] = fra.me.REG[4];
6007 /* ./../lib/standard//collection//array.nit:280 */
6008 REGB2 = TAG_Int(0);
6009 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6010 if (UNTAG_Bool(REGB0)) {
6011 } else {
6012 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6013 }
6014 /* ./../lib/standard//kernel.nit:233 */
6015 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6016 /* ./../lib/standard//collection//array.nit:280 */
6017 if (UNTAG_Bool(REGB2)) {
6018 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6019 if (UNTAG_Bool(REGB2)) {
6020 } else {
6021 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6022 }
6023 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6024 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6025 if (UNTAG_Bool(REGB0)) {
6026 } else {
6027 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6028 }
6029 /* ./../lib/standard//kernel.nit:232 */
6030 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6031 } else {
6032 /* ./../lib/standard//collection//array.nit:280 */
6033 REGB0 = TAG_Bool(false);
6034 REGB2 = REGB0;
6035 }
6036 if (UNTAG_Bool(REGB2)) {
6037 } else {
6038 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6039 }
6040 /* ./../lib/standard//collection//array.nit:281 */
6041 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6042 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6043 if (UNTAG_Bool(REGB2)) {
6044 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6045 }
6046 /* ./../lib/standard//collection//array.nit:718 */
6047 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6048 /* ./../lib/standard//collection//array.nit:281 */
6049 goto label34;
6050 label34: while(0);
6051 /* ./compiling//compiling_icode.nit:742 */
6052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6053 if (!once_value_35) {
6054 fra.me.REG[7] = BOX_NativeString("))");
6055 REGB1 = TAG_Int(2);
6056 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6057 once_value_35 = fra.me.REG[7];
6058 register_static_object(&once_value_35);
6059 } else fra.me.REG[7] = once_value_35;
6060 fra.me.REG[7] = fra.me.REG[7];
6061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6062 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6063 fra.me.REG[5] = fra.me.REG[6];
6064 } else {
6065 /* ./compiling//compiling_icode.nit:743 */
6066 if (!once_value_36) {
6067 if (!once_value_37) {
6068 fra.me.REG[6] = BOX_NativeString("+");
6069 REGB1 = TAG_Int(1);
6070 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6071 once_value_37 = fra.me.REG[6];
6072 register_static_object(&once_value_37);
6073 } else fra.me.REG[6] = once_value_37;
6074 fra.me.REG[6] = fra.me.REG[6];
6075 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6076 once_value_36 = fra.me.REG[6];
6077 register_static_object(&once_value_36);
6078 } else fra.me.REG[6] = once_value_36;
6079 fra.me.REG[6] = fra.me.REG[6];
6080 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6081 if (UNTAG_Bool(REGB1)) {
6082 } else {
6083 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6084 REGB1 = REGB2;
6085 }
6086 if (UNTAG_Bool(REGB1)) {
6087 /* ./compiling//compiling_icode.nit:744 */
6088 REGB1 = TAG_Int(5);
6089 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6090 if (!once_value_38) {
6091 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6092 REGB1 = TAG_Int(18);
6093 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6094 once_value_38 = fra.me.REG[7];
6095 register_static_object(&once_value_38);
6096 } else fra.me.REG[7] = once_value_38;
6097 fra.me.REG[7] = fra.me.REG[7];
6098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6099 REGB1 = TAG_Int(0);
6100 /* ./../lib/standard//collection//array.nit:278 */
6101 fra.me.REG[7] = fra.me.REG[4];
6102 /* ./../lib/standard//collection//array.nit:280 */
6103 REGB2 = TAG_Int(0);
6104 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6105 if (UNTAG_Bool(REGB0)) {
6106 } else {
6107 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6108 }
6109 /* ./../lib/standard//kernel.nit:233 */
6110 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6111 /* ./../lib/standard//collection//array.nit:280 */
6112 if (UNTAG_Bool(REGB2)) {
6113 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6114 if (UNTAG_Bool(REGB2)) {
6115 } else {
6116 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6117 }
6118 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6119 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6120 if (UNTAG_Bool(REGB0)) {
6121 } else {
6122 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6123 }
6124 /* ./../lib/standard//kernel.nit:232 */
6125 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6126 } else {
6127 /* ./../lib/standard//collection//array.nit:280 */
6128 REGB0 = TAG_Bool(false);
6129 REGB2 = REGB0;
6130 }
6131 if (UNTAG_Bool(REGB2)) {
6132 } else {
6133 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6134 }
6135 /* ./../lib/standard//collection//array.nit:281 */
6136 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6137 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6138 if (UNTAG_Bool(REGB2)) {
6139 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6140 }
6141 /* ./../lib/standard//collection//array.nit:718 */
6142 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6143 /* ./../lib/standard//collection//array.nit:281 */
6144 goto label39;
6145 label39: while(0);
6146 /* ./compiling//compiling_icode.nit:744 */
6147 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6148 if (!once_value_40) {
6149 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
6150 REGB1 = TAG_Int(12);
6151 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6152 once_value_40 = fra.me.REG[7];
6153 register_static_object(&once_value_40);
6154 } else fra.me.REG[7] = once_value_40;
6155 fra.me.REG[7] = fra.me.REG[7];
6156 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6157 REGB1 = TAG_Int(1);
6158 /* ./../lib/standard//collection//array.nit:278 */
6159 fra.me.REG[7] = fra.me.REG[4];
6160 /* ./../lib/standard//collection//array.nit:280 */
6161 REGB2 = TAG_Int(0);
6162 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6163 if (UNTAG_Bool(REGB0)) {
6164 } else {
6165 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6166 }
6167 /* ./../lib/standard//kernel.nit:233 */
6168 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6169 /* ./../lib/standard//collection//array.nit:280 */
6170 if (UNTAG_Bool(REGB2)) {
6171 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6172 if (UNTAG_Bool(REGB2)) {
6173 } else {
6174 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6175 }
6176 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6177 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6178 if (UNTAG_Bool(REGB0)) {
6179 } else {
6180 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6181 }
6182 /* ./../lib/standard//kernel.nit:232 */
6183 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6184 } else {
6185 /* ./../lib/standard//collection//array.nit:280 */
6186 REGB0 = TAG_Bool(false);
6187 REGB2 = REGB0;
6188 }
6189 if (UNTAG_Bool(REGB2)) {
6190 } else {
6191 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6192 }
6193 /* ./../lib/standard//collection//array.nit:281 */
6194 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6195 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6196 if (UNTAG_Bool(REGB2)) {
6197 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6198 }
6199 /* ./../lib/standard//collection//array.nit:718 */
6200 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6201 /* ./../lib/standard//collection//array.nit:281 */
6202 goto label41;
6203 label41: while(0);
6204 /* ./compiling//compiling_icode.nit:744 */
6205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6206 if (!once_value_42) {
6207 fra.me.REG[7] = BOX_NativeString("))");
6208 REGB1 = TAG_Int(2);
6209 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6210 once_value_42 = fra.me.REG[7];
6211 register_static_object(&once_value_42);
6212 } else fra.me.REG[7] = once_value_42;
6213 fra.me.REG[7] = fra.me.REG[7];
6214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6215 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6216 fra.me.REG[5] = fra.me.REG[6];
6217 } else {
6218 /* ./compiling//compiling_icode.nit:745 */
6219 if (!once_value_43) {
6220 if (!once_value_44) {
6221 fra.me.REG[6] = BOX_NativeString("-");
6222 REGB1 = TAG_Int(1);
6223 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6224 once_value_44 = fra.me.REG[6];
6225 register_static_object(&once_value_44);
6226 } else fra.me.REG[6] = once_value_44;
6227 fra.me.REG[6] = fra.me.REG[6];
6228 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6229 once_value_43 = fra.me.REG[6];
6230 register_static_object(&once_value_43);
6231 } else fra.me.REG[6] = once_value_43;
6232 fra.me.REG[6] = fra.me.REG[6];
6233 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6234 if (UNTAG_Bool(REGB1)) {
6235 } else {
6236 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6237 REGB1 = REGB2;
6238 }
6239 if (UNTAG_Bool(REGB1)) {
6240 /* ./compiling//compiling_icode.nit:746 */
6241 REGB1 = TAG_Int(5);
6242 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6243 if (!once_value_45) {
6244 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6245 REGB1 = TAG_Int(18);
6246 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6247 once_value_45 = fra.me.REG[7];
6248 register_static_object(&once_value_45);
6249 } else fra.me.REG[7] = once_value_45;
6250 fra.me.REG[7] = fra.me.REG[7];
6251 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6252 REGB1 = TAG_Int(0);
6253 /* ./../lib/standard//collection//array.nit:278 */
6254 fra.me.REG[7] = fra.me.REG[4];
6255 /* ./../lib/standard//collection//array.nit:280 */
6256 REGB2 = TAG_Int(0);
6257 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6258 if (UNTAG_Bool(REGB0)) {
6259 } else {
6260 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6261 }
6262 /* ./../lib/standard//kernel.nit:233 */
6263 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6264 /* ./../lib/standard//collection//array.nit:280 */
6265 if (UNTAG_Bool(REGB2)) {
6266 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6267 if (UNTAG_Bool(REGB2)) {
6268 } else {
6269 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6270 }
6271 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6272 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6273 if (UNTAG_Bool(REGB0)) {
6274 } else {
6275 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6276 }
6277 /* ./../lib/standard//kernel.nit:232 */
6278 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6279 } else {
6280 /* ./../lib/standard//collection//array.nit:280 */
6281 REGB0 = TAG_Bool(false);
6282 REGB2 = REGB0;
6283 }
6284 if (UNTAG_Bool(REGB2)) {
6285 } else {
6286 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6287 }
6288 /* ./../lib/standard//collection//array.nit:281 */
6289 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6290 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6291 if (UNTAG_Bool(REGB2)) {
6292 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6293 }
6294 /* ./../lib/standard//collection//array.nit:718 */
6295 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6296 /* ./../lib/standard//collection//array.nit:281 */
6297 goto label46;
6298 label46: while(0);
6299 /* ./compiling//compiling_icode.nit:746 */
6300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6301 if (!once_value_47) {
6302 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
6303 REGB1 = TAG_Int(12);
6304 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6305 once_value_47 = fra.me.REG[7];
6306 register_static_object(&once_value_47);
6307 } else fra.me.REG[7] = once_value_47;
6308 fra.me.REG[7] = fra.me.REG[7];
6309 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6310 REGB1 = TAG_Int(1);
6311 /* ./../lib/standard//collection//array.nit:278 */
6312 fra.me.REG[7] = fra.me.REG[4];
6313 /* ./../lib/standard//collection//array.nit:280 */
6314 REGB2 = TAG_Int(0);
6315 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6316 if (UNTAG_Bool(REGB0)) {
6317 } else {
6318 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6319 }
6320 /* ./../lib/standard//kernel.nit:233 */
6321 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6322 /* ./../lib/standard//collection//array.nit:280 */
6323 if (UNTAG_Bool(REGB2)) {
6324 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6325 if (UNTAG_Bool(REGB2)) {
6326 } else {
6327 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6328 }
6329 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6330 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6331 if (UNTAG_Bool(REGB0)) {
6332 } else {
6333 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6334 }
6335 /* ./../lib/standard//kernel.nit:232 */
6336 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6337 } else {
6338 /* ./../lib/standard//collection//array.nit:280 */
6339 REGB0 = TAG_Bool(false);
6340 REGB2 = REGB0;
6341 }
6342 if (UNTAG_Bool(REGB2)) {
6343 } else {
6344 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6345 }
6346 /* ./../lib/standard//collection//array.nit:281 */
6347 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6348 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6349 if (UNTAG_Bool(REGB2)) {
6350 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6351 }
6352 /* ./../lib/standard//collection//array.nit:718 */
6353 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6354 /* ./../lib/standard//collection//array.nit:281 */
6355 goto label48;
6356 label48: while(0);
6357 /* ./compiling//compiling_icode.nit:746 */
6358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6359 if (!once_value_49) {
6360 fra.me.REG[7] = BOX_NativeString("))");
6361 REGB1 = TAG_Int(2);
6362 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6363 once_value_49 = fra.me.REG[7];
6364 register_static_object(&once_value_49);
6365 } else fra.me.REG[7] = once_value_49;
6366 fra.me.REG[7] = fra.me.REG[7];
6367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6368 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6369 fra.me.REG[5] = fra.me.REG[6];
6370 } else {
6371 /* ./compiling//compiling_icode.nit:747 */
6372 if (!once_value_50) {
6373 if (!once_value_51) {
6374 fra.me.REG[6] = BOX_NativeString("*");
6375 REGB1 = TAG_Int(1);
6376 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6377 once_value_51 = fra.me.REG[6];
6378 register_static_object(&once_value_51);
6379 } else fra.me.REG[6] = once_value_51;
6380 fra.me.REG[6] = fra.me.REG[6];
6381 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6382 once_value_50 = fra.me.REG[6];
6383 register_static_object(&once_value_50);
6384 } else fra.me.REG[6] = once_value_50;
6385 fra.me.REG[6] = fra.me.REG[6];
6386 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6387 if (UNTAG_Bool(REGB1)) {
6388 } else {
6389 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6390 REGB1 = REGB2;
6391 }
6392 if (UNTAG_Bool(REGB1)) {
6393 /* ./compiling//compiling_icode.nit:748 */
6394 REGB1 = TAG_Int(5);
6395 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6396 if (!once_value_52) {
6397 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6398 REGB1 = TAG_Int(18);
6399 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6400 once_value_52 = fra.me.REG[7];
6401 register_static_object(&once_value_52);
6402 } else fra.me.REG[7] = once_value_52;
6403 fra.me.REG[7] = fra.me.REG[7];
6404 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6405 REGB1 = TAG_Int(0);
6406 /* ./../lib/standard//collection//array.nit:278 */
6407 fra.me.REG[7] = fra.me.REG[4];
6408 /* ./../lib/standard//collection//array.nit:280 */
6409 REGB2 = TAG_Int(0);
6410 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6411 if (UNTAG_Bool(REGB0)) {
6412 } else {
6413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6414 }
6415 /* ./../lib/standard//kernel.nit:233 */
6416 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6417 /* ./../lib/standard//collection//array.nit:280 */
6418 if (UNTAG_Bool(REGB2)) {
6419 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6420 if (UNTAG_Bool(REGB2)) {
6421 } else {
6422 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6423 }
6424 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6425 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6426 if (UNTAG_Bool(REGB0)) {
6427 } else {
6428 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6429 }
6430 /* ./../lib/standard//kernel.nit:232 */
6431 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6432 } else {
6433 /* ./../lib/standard//collection//array.nit:280 */
6434 REGB0 = TAG_Bool(false);
6435 REGB2 = REGB0;
6436 }
6437 if (UNTAG_Bool(REGB2)) {
6438 } else {
6439 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6440 }
6441 /* ./../lib/standard//collection//array.nit:281 */
6442 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6443 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6444 if (UNTAG_Bool(REGB2)) {
6445 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6446 }
6447 /* ./../lib/standard//collection//array.nit:718 */
6448 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6449 /* ./../lib/standard//collection//array.nit:281 */
6450 goto label53;
6451 label53: while(0);
6452 /* ./compiling//compiling_icode.nit:748 */
6453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6454 if (!once_value_54) {
6455 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6456 REGB1 = TAG_Int(12);
6457 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6458 once_value_54 = fra.me.REG[7];
6459 register_static_object(&once_value_54);
6460 } else fra.me.REG[7] = once_value_54;
6461 fra.me.REG[7] = fra.me.REG[7];
6462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6463 REGB1 = TAG_Int(1);
6464 /* ./../lib/standard//collection//array.nit:278 */
6465 fra.me.REG[7] = fra.me.REG[4];
6466 /* ./../lib/standard//collection//array.nit:280 */
6467 REGB2 = TAG_Int(0);
6468 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6469 if (UNTAG_Bool(REGB0)) {
6470 } else {
6471 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6472 }
6473 /* ./../lib/standard//kernel.nit:233 */
6474 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6475 /* ./../lib/standard//collection//array.nit:280 */
6476 if (UNTAG_Bool(REGB2)) {
6477 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6478 if (UNTAG_Bool(REGB2)) {
6479 } else {
6480 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6481 }
6482 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6483 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6484 if (UNTAG_Bool(REGB0)) {
6485 } else {
6486 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6487 }
6488 /* ./../lib/standard//kernel.nit:232 */
6489 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6490 } else {
6491 /* ./../lib/standard//collection//array.nit:280 */
6492 REGB0 = TAG_Bool(false);
6493 REGB2 = REGB0;
6494 }
6495 if (UNTAG_Bool(REGB2)) {
6496 } else {
6497 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6498 }
6499 /* ./../lib/standard//collection//array.nit:281 */
6500 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6501 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6502 if (UNTAG_Bool(REGB2)) {
6503 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6504 }
6505 /* ./../lib/standard//collection//array.nit:718 */
6506 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6507 /* ./../lib/standard//collection//array.nit:281 */
6508 goto label55;
6509 label55: while(0);
6510 /* ./compiling//compiling_icode.nit:748 */
6511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6512 if (!once_value_56) {
6513 fra.me.REG[7] = BOX_NativeString("))");
6514 REGB1 = TAG_Int(2);
6515 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6516 once_value_56 = fra.me.REG[7];
6517 register_static_object(&once_value_56);
6518 } else fra.me.REG[7] = once_value_56;
6519 fra.me.REG[7] = fra.me.REG[7];
6520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6521 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6522 fra.me.REG[5] = fra.me.REG[6];
6523 } else {
6524 /* ./compiling//compiling_icode.nit:749 */
6525 if (!once_value_57) {
6526 if (!once_value_58) {
6527 fra.me.REG[6] = BOX_NativeString("/");
6528 REGB1 = TAG_Int(1);
6529 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6530 once_value_58 = fra.me.REG[6];
6531 register_static_object(&once_value_58);
6532 } else fra.me.REG[6] = once_value_58;
6533 fra.me.REG[6] = fra.me.REG[6];
6534 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6535 once_value_57 = fra.me.REG[6];
6536 register_static_object(&once_value_57);
6537 } else fra.me.REG[6] = once_value_57;
6538 fra.me.REG[6] = fra.me.REG[6];
6539 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6540 if (UNTAG_Bool(REGB1)) {
6541 } else {
6542 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6543 REGB1 = REGB2;
6544 }
6545 if (UNTAG_Bool(REGB1)) {
6546 /* ./compiling//compiling_icode.nit:750 */
6547 REGB1 = TAG_Int(5);
6548 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6549 if (!once_value_59) {
6550 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6551 REGB1 = TAG_Int(18);
6552 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6553 once_value_59 = fra.me.REG[7];
6554 register_static_object(&once_value_59);
6555 } else fra.me.REG[7] = once_value_59;
6556 fra.me.REG[7] = fra.me.REG[7];
6557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6558 REGB1 = TAG_Int(0);
6559 /* ./../lib/standard//collection//array.nit:278 */
6560 fra.me.REG[7] = fra.me.REG[4];
6561 /* ./../lib/standard//collection//array.nit:280 */
6562 REGB2 = TAG_Int(0);
6563 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6564 if (UNTAG_Bool(REGB0)) {
6565 } else {
6566 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6567 }
6568 /* ./../lib/standard//kernel.nit:233 */
6569 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6570 /* ./../lib/standard//collection//array.nit:280 */
6571 if (UNTAG_Bool(REGB2)) {
6572 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6573 if (UNTAG_Bool(REGB2)) {
6574 } else {
6575 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6576 }
6577 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6578 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6579 if (UNTAG_Bool(REGB0)) {
6580 } else {
6581 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6582 }
6583 /* ./../lib/standard//kernel.nit:232 */
6584 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6585 } else {
6586 /* ./../lib/standard//collection//array.nit:280 */
6587 REGB0 = TAG_Bool(false);
6588 REGB2 = REGB0;
6589 }
6590 if (UNTAG_Bool(REGB2)) {
6591 } else {
6592 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6593 }
6594 /* ./../lib/standard//collection//array.nit:281 */
6595 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6596 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6597 if (UNTAG_Bool(REGB2)) {
6598 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6599 }
6600 /* ./../lib/standard//collection//array.nit:718 */
6601 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6602 /* ./../lib/standard//collection//array.nit:281 */
6603 goto label60;
6604 label60: while(0);
6605 /* ./compiling//compiling_icode.nit:750 */
6606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6607 if (!once_value_61) {
6608 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6609 REGB1 = TAG_Int(12);
6610 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6611 once_value_61 = fra.me.REG[7];
6612 register_static_object(&once_value_61);
6613 } else fra.me.REG[7] = once_value_61;
6614 fra.me.REG[7] = fra.me.REG[7];
6615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6616 REGB1 = TAG_Int(1);
6617 /* ./../lib/standard//collection//array.nit:278 */
6618 fra.me.REG[7] = fra.me.REG[4];
6619 /* ./../lib/standard//collection//array.nit:280 */
6620 REGB2 = TAG_Int(0);
6621 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6622 if (UNTAG_Bool(REGB0)) {
6623 } else {
6624 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6625 }
6626 /* ./../lib/standard//kernel.nit:233 */
6627 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6628 /* ./../lib/standard//collection//array.nit:280 */
6629 if (UNTAG_Bool(REGB2)) {
6630 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6631 if (UNTAG_Bool(REGB2)) {
6632 } else {
6633 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6634 }
6635 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6636 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6637 if (UNTAG_Bool(REGB0)) {
6638 } else {
6639 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6640 }
6641 /* ./../lib/standard//kernel.nit:232 */
6642 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6643 } else {
6644 /* ./../lib/standard//collection//array.nit:280 */
6645 REGB0 = TAG_Bool(false);
6646 REGB2 = REGB0;
6647 }
6648 if (UNTAG_Bool(REGB2)) {
6649 } else {
6650 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6651 }
6652 /* ./../lib/standard//collection//array.nit:281 */
6653 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6654 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6655 if (UNTAG_Bool(REGB2)) {
6656 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6657 }
6658 /* ./../lib/standard//collection//array.nit:718 */
6659 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6660 /* ./../lib/standard//collection//array.nit:281 */
6661 goto label62;
6662 label62: while(0);
6663 /* ./compiling//compiling_icode.nit:750 */
6664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6665 if (!once_value_63) {
6666 fra.me.REG[7] = BOX_NativeString("))");
6667 REGB1 = TAG_Int(2);
6668 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6669 once_value_63 = fra.me.REG[7];
6670 register_static_object(&once_value_63);
6671 } else fra.me.REG[7] = once_value_63;
6672 fra.me.REG[7] = fra.me.REG[7];
6673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6674 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6675 fra.me.REG[5] = fra.me.REG[6];
6676 } else {
6677 /* ./compiling//compiling_icode.nit:751 */
6678 if (!once_value_64) {
6679 if (!once_value_65) {
6680 fra.me.REG[6] = BOX_NativeString("%");
6681 REGB1 = TAG_Int(1);
6682 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6683 once_value_65 = fra.me.REG[6];
6684 register_static_object(&once_value_65);
6685 } else fra.me.REG[6] = once_value_65;
6686 fra.me.REG[6] = fra.me.REG[6];
6687 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6688 once_value_64 = fra.me.REG[6];
6689 register_static_object(&once_value_64);
6690 } else fra.me.REG[6] = once_value_64;
6691 fra.me.REG[6] = fra.me.REG[6];
6692 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6693 if (UNTAG_Bool(REGB1)) {
6694 } else {
6695 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6696 REGB1 = REGB2;
6697 }
6698 if (UNTAG_Bool(REGB1)) {
6699 /* ./compiling//compiling_icode.nit:752 */
6700 REGB1 = TAG_Int(5);
6701 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6702 if (!once_value_66) {
6703 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6704 REGB1 = TAG_Int(18);
6705 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6706 once_value_66 = fra.me.REG[7];
6707 register_static_object(&once_value_66);
6708 } else fra.me.REG[7] = once_value_66;
6709 fra.me.REG[7] = fra.me.REG[7];
6710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6711 REGB1 = TAG_Int(0);
6712 /* ./../lib/standard//collection//array.nit:278 */
6713 fra.me.REG[7] = fra.me.REG[4];
6714 /* ./../lib/standard//collection//array.nit:280 */
6715 REGB2 = TAG_Int(0);
6716 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6717 if (UNTAG_Bool(REGB0)) {
6718 } else {
6719 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6720 }
6721 /* ./../lib/standard//kernel.nit:233 */
6722 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6723 /* ./../lib/standard//collection//array.nit:280 */
6724 if (UNTAG_Bool(REGB2)) {
6725 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6726 if (UNTAG_Bool(REGB2)) {
6727 } else {
6728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6729 }
6730 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6731 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6732 if (UNTAG_Bool(REGB0)) {
6733 } else {
6734 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6735 }
6736 /* ./../lib/standard//kernel.nit:232 */
6737 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6738 } else {
6739 /* ./../lib/standard//collection//array.nit:280 */
6740 REGB0 = TAG_Bool(false);
6741 REGB2 = REGB0;
6742 }
6743 if (UNTAG_Bool(REGB2)) {
6744 } else {
6745 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6746 }
6747 /* ./../lib/standard//collection//array.nit:281 */
6748 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6749 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6750 if (UNTAG_Bool(REGB2)) {
6751 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6752 }
6753 /* ./../lib/standard//collection//array.nit:718 */
6754 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6755 /* ./../lib/standard//collection//array.nit:281 */
6756 goto label67;
6757 label67: while(0);
6758 /* ./compiling//compiling_icode.nit:752 */
6759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6760 if (!once_value_68) {
6761 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6762 REGB1 = TAG_Int(12);
6763 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6764 once_value_68 = fra.me.REG[7];
6765 register_static_object(&once_value_68);
6766 } else fra.me.REG[7] = once_value_68;
6767 fra.me.REG[7] = fra.me.REG[7];
6768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6769 REGB1 = TAG_Int(1);
6770 /* ./../lib/standard//collection//array.nit:278 */
6771 fra.me.REG[7] = fra.me.REG[4];
6772 /* ./../lib/standard//collection//array.nit:280 */
6773 REGB2 = TAG_Int(0);
6774 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6775 if (UNTAG_Bool(REGB0)) {
6776 } else {
6777 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6778 }
6779 /* ./../lib/standard//kernel.nit:233 */
6780 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6781 /* ./../lib/standard//collection//array.nit:280 */
6782 if (UNTAG_Bool(REGB2)) {
6783 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6784 if (UNTAG_Bool(REGB2)) {
6785 } else {
6786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6787 }
6788 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6789 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6790 if (UNTAG_Bool(REGB0)) {
6791 } else {
6792 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6793 }
6794 /* ./../lib/standard//kernel.nit:232 */
6795 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6796 } else {
6797 /* ./../lib/standard//collection//array.nit:280 */
6798 REGB0 = TAG_Bool(false);
6799 REGB2 = REGB0;
6800 }
6801 if (UNTAG_Bool(REGB2)) {
6802 } else {
6803 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6804 }
6805 /* ./../lib/standard//collection//array.nit:281 */
6806 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6807 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6808 if (UNTAG_Bool(REGB2)) {
6809 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6810 }
6811 /* ./../lib/standard//collection//array.nit:718 */
6812 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6813 /* ./../lib/standard//collection//array.nit:281 */
6814 goto label69;
6815 label69: while(0);
6816 /* ./compiling//compiling_icode.nit:752 */
6817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6818 if (!once_value_70) {
6819 fra.me.REG[7] = BOX_NativeString("))");
6820 REGB1 = TAG_Int(2);
6821 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6822 once_value_70 = fra.me.REG[7];
6823 register_static_object(&once_value_70);
6824 } else fra.me.REG[7] = once_value_70;
6825 fra.me.REG[7] = fra.me.REG[7];
6826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6827 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6828 fra.me.REG[5] = fra.me.REG[6];
6829 } else {
6830 /* ./compiling//compiling_icode.nit:753 */
6831 if (!once_value_71) {
6832 if (!once_value_72) {
6833 fra.me.REG[6] = BOX_NativeString("<");
6834 REGB1 = TAG_Int(1);
6835 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6836 once_value_72 = fra.me.REG[6];
6837 register_static_object(&once_value_72);
6838 } else fra.me.REG[6] = once_value_72;
6839 fra.me.REG[6] = fra.me.REG[6];
6840 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6841 once_value_71 = fra.me.REG[6];
6842 register_static_object(&once_value_71);
6843 } else fra.me.REG[6] = once_value_71;
6844 fra.me.REG[6] = fra.me.REG[6];
6845 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6846 if (UNTAG_Bool(REGB1)) {
6847 } else {
6848 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6849 REGB1 = REGB2;
6850 }
6851 if (UNTAG_Bool(REGB1)) {
6852 /* ./compiling//compiling_icode.nit:754 */
6853 REGB1 = TAG_Int(5);
6854 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6855 if (!once_value_73) {
6856 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6857 REGB1 = TAG_Int(19);
6858 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6859 once_value_73 = fra.me.REG[7];
6860 register_static_object(&once_value_73);
6861 } else fra.me.REG[7] = once_value_73;
6862 fra.me.REG[7] = fra.me.REG[7];
6863 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6864 REGB1 = TAG_Int(0);
6865 /* ./../lib/standard//collection//array.nit:278 */
6866 fra.me.REG[7] = fra.me.REG[4];
6867 /* ./../lib/standard//collection//array.nit:280 */
6868 REGB2 = TAG_Int(0);
6869 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6870 if (UNTAG_Bool(REGB0)) {
6871 } else {
6872 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6873 }
6874 /* ./../lib/standard//kernel.nit:233 */
6875 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6876 /* ./../lib/standard//collection//array.nit:280 */
6877 if (UNTAG_Bool(REGB2)) {
6878 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6879 if (UNTAG_Bool(REGB2)) {
6880 } else {
6881 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6882 }
6883 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6884 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6885 if (UNTAG_Bool(REGB0)) {
6886 } else {
6887 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6888 }
6889 /* ./../lib/standard//kernel.nit:232 */
6890 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6891 } else {
6892 /* ./../lib/standard//collection//array.nit:280 */
6893 REGB0 = TAG_Bool(false);
6894 REGB2 = REGB0;
6895 }
6896 if (UNTAG_Bool(REGB2)) {
6897 } else {
6898 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6899 }
6900 /* ./../lib/standard//collection//array.nit:281 */
6901 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6902 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6903 if (UNTAG_Bool(REGB2)) {
6904 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6905 }
6906 /* ./../lib/standard//collection//array.nit:718 */
6907 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6908 /* ./../lib/standard//collection//array.nit:281 */
6909 goto label74;
6910 label74: while(0);
6911 /* ./compiling//compiling_icode.nit:754 */
6912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6913 if (!once_value_75) {
6914 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6915 REGB1 = TAG_Int(12);
6916 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6917 once_value_75 = fra.me.REG[7];
6918 register_static_object(&once_value_75);
6919 } else fra.me.REG[7] = once_value_75;
6920 fra.me.REG[7] = fra.me.REG[7];
6921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6922 REGB1 = TAG_Int(1);
6923 /* ./../lib/standard//collection//array.nit:278 */
6924 fra.me.REG[7] = fra.me.REG[4];
6925 /* ./../lib/standard//collection//array.nit:280 */
6926 REGB2 = TAG_Int(0);
6927 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6928 if (UNTAG_Bool(REGB0)) {
6929 } else {
6930 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6931 }
6932 /* ./../lib/standard//kernel.nit:233 */
6933 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6934 /* ./../lib/standard//collection//array.nit:280 */
6935 if (UNTAG_Bool(REGB2)) {
6936 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6937 if (UNTAG_Bool(REGB2)) {
6938 } else {
6939 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6940 }
6941 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6942 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6943 if (UNTAG_Bool(REGB0)) {
6944 } else {
6945 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6946 }
6947 /* ./../lib/standard//kernel.nit:232 */
6948 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6949 } else {
6950 /* ./../lib/standard//collection//array.nit:280 */
6951 REGB0 = TAG_Bool(false);
6952 REGB2 = REGB0;
6953 }
6954 if (UNTAG_Bool(REGB2)) {
6955 } else {
6956 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6957 }
6958 /* ./../lib/standard//collection//array.nit:281 */
6959 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6960 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6961 if (UNTAG_Bool(REGB2)) {
6962 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6963 }
6964 /* ./../lib/standard//collection//array.nit:718 */
6965 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6966 /* ./../lib/standard//collection//array.nit:281 */
6967 goto label76;
6968 label76: while(0);
6969 /* ./compiling//compiling_icode.nit:754 */
6970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6971 if (!once_value_77) {
6972 fra.me.REG[7] = BOX_NativeString("))");
6973 REGB1 = TAG_Int(2);
6974 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6975 once_value_77 = fra.me.REG[7];
6976 register_static_object(&once_value_77);
6977 } else fra.me.REG[7] = once_value_77;
6978 fra.me.REG[7] = fra.me.REG[7];
6979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6980 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6981 fra.me.REG[5] = fra.me.REG[6];
6982 } else {
6983 /* ./compiling//compiling_icode.nit:755 */
6984 if (!once_value_78) {
6985 if (!once_value_79) {
6986 fra.me.REG[6] = BOX_NativeString(">");
6987 REGB1 = TAG_Int(1);
6988 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6989 once_value_79 = fra.me.REG[6];
6990 register_static_object(&once_value_79);
6991 } else fra.me.REG[6] = once_value_79;
6992 fra.me.REG[6] = fra.me.REG[6];
6993 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6994 once_value_78 = fra.me.REG[6];
6995 register_static_object(&once_value_78);
6996 } else fra.me.REG[6] = once_value_78;
6997 fra.me.REG[6] = fra.me.REG[6];
6998 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6999 if (UNTAG_Bool(REGB1)) {
7000 } else {
7001 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7002 REGB1 = REGB2;
7003 }
7004 if (UNTAG_Bool(REGB1)) {
7005 /* ./compiling//compiling_icode.nit:756 */
7006 REGB1 = TAG_Int(5);
7007 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7008 if (!once_value_80) {
7009 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7010 REGB1 = TAG_Int(19);
7011 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7012 once_value_80 = fra.me.REG[7];
7013 register_static_object(&once_value_80);
7014 } else fra.me.REG[7] = once_value_80;
7015 fra.me.REG[7] = fra.me.REG[7];
7016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7017 REGB1 = TAG_Int(0);
7018 /* ./../lib/standard//collection//array.nit:278 */
7019 fra.me.REG[7] = fra.me.REG[4];
7020 /* ./../lib/standard//collection//array.nit:280 */
7021 REGB2 = TAG_Int(0);
7022 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7023 if (UNTAG_Bool(REGB0)) {
7024 } else {
7025 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7026 }
7027 /* ./../lib/standard//kernel.nit:233 */
7028 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7029 /* ./../lib/standard//collection//array.nit:280 */
7030 if (UNTAG_Bool(REGB2)) {
7031 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7032 if (UNTAG_Bool(REGB2)) {
7033 } else {
7034 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7035 }
7036 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7037 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7038 if (UNTAG_Bool(REGB0)) {
7039 } else {
7040 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7041 }
7042 /* ./../lib/standard//kernel.nit:232 */
7043 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7044 } else {
7045 /* ./../lib/standard//collection//array.nit:280 */
7046 REGB0 = TAG_Bool(false);
7047 REGB2 = REGB0;
7048 }
7049 if (UNTAG_Bool(REGB2)) {
7050 } else {
7051 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7052 }
7053 /* ./../lib/standard//collection//array.nit:281 */
7054 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7055 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7056 if (UNTAG_Bool(REGB2)) {
7057 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7058 }
7059 /* ./../lib/standard//collection//array.nit:718 */
7060 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7061 /* ./../lib/standard//collection//array.nit:281 */
7062 goto label81;
7063 label81: while(0);
7064 /* ./compiling//compiling_icode.nit:756 */
7065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7066 if (!once_value_82) {
7067 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
7068 REGB1 = TAG_Int(12);
7069 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7070 once_value_82 = fra.me.REG[7];
7071 register_static_object(&once_value_82);
7072 } else fra.me.REG[7] = once_value_82;
7073 fra.me.REG[7] = fra.me.REG[7];
7074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7075 REGB1 = TAG_Int(1);
7076 /* ./../lib/standard//collection//array.nit:278 */
7077 fra.me.REG[7] = fra.me.REG[4];
7078 /* ./../lib/standard//collection//array.nit:280 */
7079 REGB2 = TAG_Int(0);
7080 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7081 if (UNTAG_Bool(REGB0)) {
7082 } else {
7083 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7084 }
7085 /* ./../lib/standard//kernel.nit:233 */
7086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7087 /* ./../lib/standard//collection//array.nit:280 */
7088 if (UNTAG_Bool(REGB2)) {
7089 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7090 if (UNTAG_Bool(REGB2)) {
7091 } else {
7092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7093 }
7094 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7095 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7096 if (UNTAG_Bool(REGB0)) {
7097 } else {
7098 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7099 }
7100 /* ./../lib/standard//kernel.nit:232 */
7101 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7102 } else {
7103 /* ./../lib/standard//collection//array.nit:280 */
7104 REGB0 = TAG_Bool(false);
7105 REGB2 = REGB0;
7106 }
7107 if (UNTAG_Bool(REGB2)) {
7108 } else {
7109 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7110 }
7111 /* ./../lib/standard//collection//array.nit:281 */
7112 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7113 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7114 if (UNTAG_Bool(REGB2)) {
7115 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7116 }
7117 /* ./../lib/standard//collection//array.nit:718 */
7118 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7119 /* ./../lib/standard//collection//array.nit:281 */
7120 goto label83;
7121 label83: while(0);
7122 /* ./compiling//compiling_icode.nit:756 */
7123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7124 if (!once_value_84) {
7125 fra.me.REG[7] = BOX_NativeString("))");
7126 REGB1 = TAG_Int(2);
7127 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7128 once_value_84 = fra.me.REG[7];
7129 register_static_object(&once_value_84);
7130 } else fra.me.REG[7] = once_value_84;
7131 fra.me.REG[7] = fra.me.REG[7];
7132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7133 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7134 fra.me.REG[5] = fra.me.REG[6];
7135 } else {
7136 /* ./compiling//compiling_icode.nit:757 */
7137 if (!once_value_85) {
7138 if (!once_value_86) {
7139 fra.me.REG[6] = BOX_NativeString("<=");
7140 REGB1 = TAG_Int(2);
7141 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7142 once_value_86 = fra.me.REG[6];
7143 register_static_object(&once_value_86);
7144 } else fra.me.REG[6] = once_value_86;
7145 fra.me.REG[6] = fra.me.REG[6];
7146 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7147 once_value_85 = fra.me.REG[6];
7148 register_static_object(&once_value_85);
7149 } else fra.me.REG[6] = once_value_85;
7150 fra.me.REG[6] = fra.me.REG[6];
7151 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7152 if (UNTAG_Bool(REGB1)) {
7153 } else {
7154 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7155 REGB1 = REGB2;
7156 }
7157 if (UNTAG_Bool(REGB1)) {
7158 /* ./compiling//compiling_icode.nit:758 */
7159 REGB1 = TAG_Int(5);
7160 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7161 if (!once_value_87) {
7162 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7163 REGB1 = TAG_Int(19);
7164 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7165 once_value_87 = fra.me.REG[7];
7166 register_static_object(&once_value_87);
7167 } else fra.me.REG[7] = once_value_87;
7168 fra.me.REG[7] = fra.me.REG[7];
7169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7170 REGB1 = TAG_Int(0);
7171 /* ./../lib/standard//collection//array.nit:278 */
7172 fra.me.REG[7] = fra.me.REG[4];
7173 /* ./../lib/standard//collection//array.nit:280 */
7174 REGB2 = TAG_Int(0);
7175 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7176 if (UNTAG_Bool(REGB0)) {
7177 } else {
7178 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7179 }
7180 /* ./../lib/standard//kernel.nit:233 */
7181 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7182 /* ./../lib/standard//collection//array.nit:280 */
7183 if (UNTAG_Bool(REGB2)) {
7184 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7185 if (UNTAG_Bool(REGB2)) {
7186 } else {
7187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7188 }
7189 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7190 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7191 if (UNTAG_Bool(REGB0)) {
7192 } else {
7193 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7194 }
7195 /* ./../lib/standard//kernel.nit:232 */
7196 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7197 } else {
7198 /* ./../lib/standard//collection//array.nit:280 */
7199 REGB0 = TAG_Bool(false);
7200 REGB2 = REGB0;
7201 }
7202 if (UNTAG_Bool(REGB2)) {
7203 } else {
7204 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7205 }
7206 /* ./../lib/standard//collection//array.nit:281 */
7207 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7208 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7209 if (UNTAG_Bool(REGB2)) {
7210 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7211 }
7212 /* ./../lib/standard//collection//array.nit:718 */
7213 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7214 /* ./../lib/standard//collection//array.nit:281 */
7215 goto label88;
7216 label88: while(0);
7217 /* ./compiling//compiling_icode.nit:758 */
7218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7219 if (!once_value_89) {
7220 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
7221 REGB1 = TAG_Int(13);
7222 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7223 once_value_89 = fra.me.REG[7];
7224 register_static_object(&once_value_89);
7225 } else fra.me.REG[7] = once_value_89;
7226 fra.me.REG[7] = fra.me.REG[7];
7227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7228 REGB1 = TAG_Int(1);
7229 /* ./../lib/standard//collection//array.nit:278 */
7230 fra.me.REG[7] = fra.me.REG[4];
7231 /* ./../lib/standard//collection//array.nit:280 */
7232 REGB2 = TAG_Int(0);
7233 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7234 if (UNTAG_Bool(REGB0)) {
7235 } else {
7236 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7237 }
7238 /* ./../lib/standard//kernel.nit:233 */
7239 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7240 /* ./../lib/standard//collection//array.nit:280 */
7241 if (UNTAG_Bool(REGB2)) {
7242 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7243 if (UNTAG_Bool(REGB2)) {
7244 } else {
7245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7246 }
7247 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7248 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7249 if (UNTAG_Bool(REGB0)) {
7250 } else {
7251 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7252 }
7253 /* ./../lib/standard//kernel.nit:232 */
7254 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7255 } else {
7256 /* ./../lib/standard//collection//array.nit:280 */
7257 REGB0 = TAG_Bool(false);
7258 REGB2 = REGB0;
7259 }
7260 if (UNTAG_Bool(REGB2)) {
7261 } else {
7262 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7263 }
7264 /* ./../lib/standard//collection//array.nit:281 */
7265 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7266 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7267 if (UNTAG_Bool(REGB2)) {
7268 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7269 }
7270 /* ./../lib/standard//collection//array.nit:718 */
7271 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7272 /* ./../lib/standard//collection//array.nit:281 */
7273 goto label90;
7274 label90: while(0);
7275 /* ./compiling//compiling_icode.nit:758 */
7276 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7277 if (!once_value_91) {
7278 fra.me.REG[7] = BOX_NativeString("))");
7279 REGB1 = TAG_Int(2);
7280 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7281 once_value_91 = fra.me.REG[7];
7282 register_static_object(&once_value_91);
7283 } else fra.me.REG[7] = once_value_91;
7284 fra.me.REG[7] = fra.me.REG[7];
7285 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7286 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7287 fra.me.REG[5] = fra.me.REG[6];
7288 } else {
7289 /* ./compiling//compiling_icode.nit:759 */
7290 if (!once_value_92) {
7291 if (!once_value_93) {
7292 fra.me.REG[6] = BOX_NativeString(">=");
7293 REGB1 = TAG_Int(2);
7294 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7295 once_value_93 = fra.me.REG[6];
7296 register_static_object(&once_value_93);
7297 } else fra.me.REG[6] = once_value_93;
7298 fra.me.REG[6] = fra.me.REG[6];
7299 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7300 once_value_92 = fra.me.REG[6];
7301 register_static_object(&once_value_92);
7302 } else fra.me.REG[6] = once_value_92;
7303 fra.me.REG[6] = fra.me.REG[6];
7304 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7305 if (UNTAG_Bool(REGB1)) {
7306 } else {
7307 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7308 REGB1 = REGB2;
7309 }
7310 if (UNTAG_Bool(REGB1)) {
7311 /* ./compiling//compiling_icode.nit:760 */
7312 REGB1 = TAG_Int(5);
7313 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7314 if (!once_value_94) {
7315 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7316 REGB1 = TAG_Int(19);
7317 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7318 once_value_94 = fra.me.REG[7];
7319 register_static_object(&once_value_94);
7320 } else fra.me.REG[7] = once_value_94;
7321 fra.me.REG[7] = fra.me.REG[7];
7322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7323 REGB1 = TAG_Int(0);
7324 /* ./../lib/standard//collection//array.nit:278 */
7325 fra.me.REG[7] = fra.me.REG[4];
7326 /* ./../lib/standard//collection//array.nit:280 */
7327 REGB2 = TAG_Int(0);
7328 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7329 if (UNTAG_Bool(REGB0)) {
7330 } else {
7331 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7332 }
7333 /* ./../lib/standard//kernel.nit:233 */
7334 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7335 /* ./../lib/standard//collection//array.nit:280 */
7336 if (UNTAG_Bool(REGB2)) {
7337 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7338 if (UNTAG_Bool(REGB2)) {
7339 } else {
7340 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7341 }
7342 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7343 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7344 if (UNTAG_Bool(REGB0)) {
7345 } else {
7346 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7347 }
7348 /* ./../lib/standard//kernel.nit:232 */
7349 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7350 } else {
7351 /* ./../lib/standard//collection//array.nit:280 */
7352 REGB0 = TAG_Bool(false);
7353 REGB2 = REGB0;
7354 }
7355 if (UNTAG_Bool(REGB2)) {
7356 } else {
7357 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7358 }
7359 /* ./../lib/standard//collection//array.nit:281 */
7360 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7361 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7362 if (UNTAG_Bool(REGB2)) {
7363 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7364 }
7365 /* ./../lib/standard//collection//array.nit:718 */
7366 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7367 /* ./../lib/standard//collection//array.nit:281 */
7368 goto label95;
7369 label95: while(0);
7370 /* ./compiling//compiling_icode.nit:760 */
7371 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7372 if (!once_value_96) {
7373 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
7374 REGB1 = TAG_Int(13);
7375 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7376 once_value_96 = fra.me.REG[7];
7377 register_static_object(&once_value_96);
7378 } else fra.me.REG[7] = once_value_96;
7379 fra.me.REG[7] = fra.me.REG[7];
7380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7381 REGB1 = TAG_Int(1);
7382 /* ./../lib/standard//collection//array.nit:278 */
7383 fra.me.REG[7] = fra.me.REG[4];
7384 /* ./../lib/standard//collection//array.nit:280 */
7385 REGB2 = TAG_Int(0);
7386 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7387 if (UNTAG_Bool(REGB0)) {
7388 } else {
7389 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7390 }
7391 /* ./../lib/standard//kernel.nit:233 */
7392 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7393 /* ./../lib/standard//collection//array.nit:280 */
7394 if (UNTAG_Bool(REGB2)) {
7395 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7396 if (UNTAG_Bool(REGB2)) {
7397 } else {
7398 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7399 }
7400 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7401 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7402 if (UNTAG_Bool(REGB0)) {
7403 } else {
7404 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7405 }
7406 /* ./../lib/standard//kernel.nit:232 */
7407 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7408 } else {
7409 /* ./../lib/standard//collection//array.nit:280 */
7410 REGB0 = TAG_Bool(false);
7411 REGB2 = REGB0;
7412 }
7413 if (UNTAG_Bool(REGB2)) {
7414 } else {
7415 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7416 }
7417 /* ./../lib/standard//collection//array.nit:281 */
7418 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7419 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7420 if (UNTAG_Bool(REGB2)) {
7421 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7422 }
7423 /* ./../lib/standard//collection//array.nit:718 */
7424 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7425 /* ./../lib/standard//collection//array.nit:281 */
7426 goto label97;
7427 label97: while(0);
7428 /* ./compiling//compiling_icode.nit:760 */
7429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7430 if (!once_value_98) {
7431 fra.me.REG[7] = BOX_NativeString("))");
7432 REGB1 = TAG_Int(2);
7433 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7434 once_value_98 = fra.me.REG[7];
7435 register_static_object(&once_value_98);
7436 } else fra.me.REG[7] = once_value_98;
7437 fra.me.REG[7] = fra.me.REG[7];
7438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7439 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7440 fra.me.REG[5] = fra.me.REG[6];
7441 } else {
7442 /* ./compiling//compiling_icode.nit:761 */
7443 if (!once_value_99) {
7444 if (!once_value_100) {
7445 fra.me.REG[6] = BOX_NativeString("lshift");
7446 REGB1 = TAG_Int(6);
7447 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7448 once_value_100 = fra.me.REG[6];
7449 register_static_object(&once_value_100);
7450 } else fra.me.REG[6] = once_value_100;
7451 fra.me.REG[6] = fra.me.REG[6];
7452 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7453 once_value_99 = fra.me.REG[6];
7454 register_static_object(&once_value_99);
7455 } else fra.me.REG[6] = once_value_99;
7456 fra.me.REG[6] = fra.me.REG[6];
7457 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7458 if (UNTAG_Bool(REGB1)) {
7459 } else {
7460 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7461 REGB1 = REGB2;
7462 }
7463 if (UNTAG_Bool(REGB1)) {
7464 /* ./compiling//compiling_icode.nit:762 */
7465 REGB1 = TAG_Int(5);
7466 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7467 if (!once_value_101) {
7468 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7469 REGB1 = TAG_Int(18);
7470 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7471 once_value_101 = fra.me.REG[7];
7472 register_static_object(&once_value_101);
7473 } else fra.me.REG[7] = once_value_101;
7474 fra.me.REG[7] = fra.me.REG[7];
7475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7476 REGB1 = TAG_Int(0);
7477 /* ./../lib/standard//collection//array.nit:278 */
7478 fra.me.REG[7] = fra.me.REG[4];
7479 /* ./../lib/standard//collection//array.nit:280 */
7480 REGB2 = TAG_Int(0);
7481 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7482 if (UNTAG_Bool(REGB0)) {
7483 } else {
7484 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7485 }
7486 /* ./../lib/standard//kernel.nit:233 */
7487 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7488 /* ./../lib/standard//collection//array.nit:280 */
7489 if (UNTAG_Bool(REGB2)) {
7490 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7491 if (UNTAG_Bool(REGB2)) {
7492 } else {
7493 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7494 }
7495 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7496 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7497 if (UNTAG_Bool(REGB0)) {
7498 } else {
7499 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7500 }
7501 /* ./../lib/standard//kernel.nit:232 */
7502 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7503 } else {
7504 /* ./../lib/standard//collection//array.nit:280 */
7505 REGB0 = TAG_Bool(false);
7506 REGB2 = REGB0;
7507 }
7508 if (UNTAG_Bool(REGB2)) {
7509 } else {
7510 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7511 }
7512 /* ./../lib/standard//collection//array.nit:281 */
7513 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7514 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7515 if (UNTAG_Bool(REGB2)) {
7516 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7517 }
7518 /* ./../lib/standard//collection//array.nit:718 */
7519 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7520 /* ./../lib/standard//collection//array.nit:281 */
7521 goto label102;
7522 label102: while(0);
7523 /* ./compiling//compiling_icode.nit:762 */
7524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7525 if (!once_value_103) {
7526 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7527 REGB1 = TAG_Int(13);
7528 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7529 once_value_103 = fra.me.REG[7];
7530 register_static_object(&once_value_103);
7531 } else fra.me.REG[7] = once_value_103;
7532 fra.me.REG[7] = fra.me.REG[7];
7533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7534 REGB1 = TAG_Int(1);
7535 /* ./../lib/standard//collection//array.nit:278 */
7536 fra.me.REG[7] = fra.me.REG[4];
7537 /* ./../lib/standard//collection//array.nit:280 */
7538 REGB2 = TAG_Int(0);
7539 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7540 if (UNTAG_Bool(REGB0)) {
7541 } else {
7542 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7543 }
7544 /* ./../lib/standard//kernel.nit:233 */
7545 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7546 /* ./../lib/standard//collection//array.nit:280 */
7547 if (UNTAG_Bool(REGB2)) {
7548 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7549 if (UNTAG_Bool(REGB2)) {
7550 } else {
7551 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7552 }
7553 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7554 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7555 if (UNTAG_Bool(REGB0)) {
7556 } else {
7557 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7558 }
7559 /* ./../lib/standard//kernel.nit:232 */
7560 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7561 } else {
7562 /* ./../lib/standard//collection//array.nit:280 */
7563 REGB0 = TAG_Bool(false);
7564 REGB2 = REGB0;
7565 }
7566 if (UNTAG_Bool(REGB2)) {
7567 } else {
7568 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7569 }
7570 /* ./../lib/standard//collection//array.nit:281 */
7571 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7572 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7573 if (UNTAG_Bool(REGB2)) {
7574 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7575 }
7576 /* ./../lib/standard//collection//array.nit:718 */
7577 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7578 /* ./../lib/standard//collection//array.nit:281 */
7579 goto label104;
7580 label104: while(0);
7581 /* ./compiling//compiling_icode.nit:762 */
7582 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7583 if (!once_value_105) {
7584 fra.me.REG[7] = BOX_NativeString("))");
7585 REGB1 = TAG_Int(2);
7586 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7587 once_value_105 = fra.me.REG[7];
7588 register_static_object(&once_value_105);
7589 } else fra.me.REG[7] = once_value_105;
7590 fra.me.REG[7] = fra.me.REG[7];
7591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7592 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7593 fra.me.REG[5] = fra.me.REG[6];
7594 } else {
7595 /* ./compiling//compiling_icode.nit:763 */
7596 if (!once_value_106) {
7597 if (!once_value_107) {
7598 fra.me.REG[6] = BOX_NativeString("rshift");
7599 REGB1 = TAG_Int(6);
7600 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7601 once_value_107 = fra.me.REG[6];
7602 register_static_object(&once_value_107);
7603 } else fra.me.REG[6] = once_value_107;
7604 fra.me.REG[6] = fra.me.REG[6];
7605 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7606 once_value_106 = fra.me.REG[6];
7607 register_static_object(&once_value_106);
7608 } else fra.me.REG[6] = once_value_106;
7609 fra.me.REG[6] = fra.me.REG[6];
7610 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7611 if (UNTAG_Bool(REGB1)) {
7612 } else {
7613 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7614 REGB1 = REGB2;
7615 }
7616 if (UNTAG_Bool(REGB1)) {
7617 /* ./compiling//compiling_icode.nit:764 */
7618 REGB1 = TAG_Int(5);
7619 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7620 if (!once_value_108) {
7621 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7622 REGB1 = TAG_Int(18);
7623 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7624 once_value_108 = fra.me.REG[7];
7625 register_static_object(&once_value_108);
7626 } else fra.me.REG[7] = once_value_108;
7627 fra.me.REG[7] = fra.me.REG[7];
7628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7629 REGB1 = TAG_Int(0);
7630 /* ./../lib/standard//collection//array.nit:278 */
7631 fra.me.REG[7] = fra.me.REG[4];
7632 /* ./../lib/standard//collection//array.nit:280 */
7633 REGB2 = TAG_Int(0);
7634 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7635 if (UNTAG_Bool(REGB0)) {
7636 } else {
7637 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7638 }
7639 /* ./../lib/standard//kernel.nit:233 */
7640 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7641 /* ./../lib/standard//collection//array.nit:280 */
7642 if (UNTAG_Bool(REGB2)) {
7643 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7644 if (UNTAG_Bool(REGB2)) {
7645 } else {
7646 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7647 }
7648 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7649 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7650 if (UNTAG_Bool(REGB0)) {
7651 } else {
7652 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7653 }
7654 /* ./../lib/standard//kernel.nit:232 */
7655 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7656 } else {
7657 /* ./../lib/standard//collection//array.nit:280 */
7658 REGB0 = TAG_Bool(false);
7659 REGB2 = REGB0;
7660 }
7661 if (UNTAG_Bool(REGB2)) {
7662 } else {
7663 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7664 }
7665 /* ./../lib/standard//collection//array.nit:281 */
7666 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7667 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7668 if (UNTAG_Bool(REGB2)) {
7669 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7670 }
7671 /* ./../lib/standard//collection//array.nit:718 */
7672 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7673 /* ./../lib/standard//collection//array.nit:281 */
7674 goto label109;
7675 label109: while(0);
7676 /* ./compiling//compiling_icode.nit:764 */
7677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7678 if (!once_value_110) {
7679 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7680 REGB1 = TAG_Int(13);
7681 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7682 once_value_110 = fra.me.REG[7];
7683 register_static_object(&once_value_110);
7684 } else fra.me.REG[7] = once_value_110;
7685 fra.me.REG[7] = fra.me.REG[7];
7686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7687 REGB1 = TAG_Int(1);
7688 /* ./../lib/standard//collection//array.nit:278 */
7689 fra.me.REG[7] = fra.me.REG[4];
7690 /* ./../lib/standard//collection//array.nit:280 */
7691 REGB2 = TAG_Int(0);
7692 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7693 if (UNTAG_Bool(REGB0)) {
7694 } else {
7695 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7696 }
7697 /* ./../lib/standard//kernel.nit:233 */
7698 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7699 /* ./../lib/standard//collection//array.nit:280 */
7700 if (UNTAG_Bool(REGB2)) {
7701 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7702 if (UNTAG_Bool(REGB2)) {
7703 } else {
7704 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7705 }
7706 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7707 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7708 if (UNTAG_Bool(REGB0)) {
7709 } else {
7710 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7711 }
7712 /* ./../lib/standard//kernel.nit:232 */
7713 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7714 } else {
7715 /* ./../lib/standard//collection//array.nit:280 */
7716 REGB0 = TAG_Bool(false);
7717 REGB2 = REGB0;
7718 }
7719 if (UNTAG_Bool(REGB2)) {
7720 } else {
7721 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7722 }
7723 /* ./../lib/standard//collection//array.nit:281 */
7724 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7725 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7726 if (UNTAG_Bool(REGB2)) {
7727 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7728 }
7729 /* ./../lib/standard//collection//array.nit:718 */
7730 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7731 /* ./../lib/standard//collection//array.nit:281 */
7732 goto label111;
7733 label111: while(0);
7734 /* ./compiling//compiling_icode.nit:764 */
7735 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7736 if (!once_value_112) {
7737 fra.me.REG[7] = BOX_NativeString("))");
7738 REGB1 = TAG_Int(2);
7739 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7740 once_value_112 = fra.me.REG[7];
7741 register_static_object(&once_value_112);
7742 } else fra.me.REG[7] = once_value_112;
7743 fra.me.REG[7] = fra.me.REG[7];
7744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7745 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7746 fra.me.REG[5] = fra.me.REG[6];
7747 } else {
7748 /* ./compiling//compiling_icode.nit:765 */
7749 if (!once_value_113) {
7750 if (!once_value_114) {
7751 fra.me.REG[6] = BOX_NativeString("==");
7752 REGB1 = TAG_Int(2);
7753 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7754 once_value_114 = fra.me.REG[6];
7755 register_static_object(&once_value_114);
7756 } else fra.me.REG[6] = once_value_114;
7757 fra.me.REG[6] = fra.me.REG[6];
7758 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7759 once_value_113 = fra.me.REG[6];
7760 register_static_object(&once_value_113);
7761 } else fra.me.REG[6] = once_value_113;
7762 fra.me.REG[6] = fra.me.REG[6];
7763 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7764 if (UNTAG_Bool(REGB1)) {
7765 } else {
7766 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7767 REGB1 = REGB2;
7768 }
7769 if (UNTAG_Bool(REGB1)) {
7770 /* ./compiling//compiling_icode.nit:766 */
7771 REGB1 = TAG_Int(5);
7772 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7773 if (!once_value_115) {
7774 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7775 REGB1 = TAG_Int(10);
7776 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7777 once_value_115 = fra.me.REG[7];
7778 register_static_object(&once_value_115);
7779 } else fra.me.REG[7] = once_value_115;
7780 fra.me.REG[7] = fra.me.REG[7];
7781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7782 REGB1 = TAG_Int(0);
7783 /* ./../lib/standard//collection//array.nit:278 */
7784 fra.me.REG[7] = fra.me.REG[4];
7785 /* ./../lib/standard//collection//array.nit:280 */
7786 REGB2 = TAG_Int(0);
7787 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7788 if (UNTAG_Bool(REGB0)) {
7789 } else {
7790 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7791 }
7792 /* ./../lib/standard//kernel.nit:233 */
7793 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7794 /* ./../lib/standard//collection//array.nit:280 */
7795 if (UNTAG_Bool(REGB2)) {
7796 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7797 if (UNTAG_Bool(REGB2)) {
7798 } else {
7799 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7800 }
7801 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7802 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7803 if (UNTAG_Bool(REGB0)) {
7804 } else {
7805 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7806 }
7807 /* ./../lib/standard//kernel.nit:232 */
7808 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7809 } else {
7810 /* ./../lib/standard//collection//array.nit:280 */
7811 REGB0 = TAG_Bool(false);
7812 REGB2 = REGB0;
7813 }
7814 if (UNTAG_Bool(REGB2)) {
7815 } else {
7816 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7817 }
7818 /* ./../lib/standard//collection//array.nit:281 */
7819 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7820 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7821 if (UNTAG_Bool(REGB2)) {
7822 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7823 }
7824 /* ./../lib/standard//collection//array.nit:718 */
7825 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7826 /* ./../lib/standard//collection//array.nit:281 */
7827 goto label116;
7828 label116: while(0);
7829 /* ./compiling//compiling_icode.nit:766 */
7830 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7831 if (!once_value_117) {
7832 fra.me.REG[7] = BOX_NativeString(")==(");
7833 REGB1 = TAG_Int(4);
7834 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7835 once_value_117 = fra.me.REG[7];
7836 register_static_object(&once_value_117);
7837 } else fra.me.REG[7] = once_value_117;
7838 fra.me.REG[7] = fra.me.REG[7];
7839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7840 REGB1 = TAG_Int(1);
7841 /* ./../lib/standard//collection//array.nit:278 */
7842 fra.me.REG[7] = fra.me.REG[4];
7843 /* ./../lib/standard//collection//array.nit:280 */
7844 REGB2 = TAG_Int(0);
7845 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7846 if (UNTAG_Bool(REGB0)) {
7847 } else {
7848 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7849 }
7850 /* ./../lib/standard//kernel.nit:233 */
7851 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7852 /* ./../lib/standard//collection//array.nit:280 */
7853 if (UNTAG_Bool(REGB2)) {
7854 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7855 if (UNTAG_Bool(REGB2)) {
7856 } else {
7857 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7858 }
7859 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7860 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7861 if (UNTAG_Bool(REGB0)) {
7862 } else {
7863 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7864 }
7865 /* ./../lib/standard//kernel.nit:232 */
7866 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7867 } else {
7868 /* ./../lib/standard//collection//array.nit:280 */
7869 REGB0 = TAG_Bool(false);
7870 REGB2 = REGB0;
7871 }
7872 if (UNTAG_Bool(REGB2)) {
7873 } else {
7874 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7875 }
7876 /* ./../lib/standard//collection//array.nit:281 */
7877 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7878 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7879 if (UNTAG_Bool(REGB2)) {
7880 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7881 }
7882 /* ./../lib/standard//collection//array.nit:718 */
7883 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7884 /* ./../lib/standard//collection//array.nit:281 */
7885 goto label118;
7886 label118: while(0);
7887 /* ./compiling//compiling_icode.nit:766 */
7888 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7889 if (!once_value_119) {
7890 fra.me.REG[7] = BOX_NativeString("))");
7891 REGB1 = TAG_Int(2);
7892 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7893 once_value_119 = fra.me.REG[7];
7894 register_static_object(&once_value_119);
7895 } else fra.me.REG[7] = once_value_119;
7896 fra.me.REG[7] = fra.me.REG[7];
7897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7898 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7899 fra.me.REG[5] = fra.me.REG[6];
7900 } else {
7901 /* ./compiling//compiling_icode.nit:767 */
7902 if (!once_value_120) {
7903 if (!once_value_121) {
7904 fra.me.REG[6] = BOX_NativeString("!=");
7905 REGB1 = TAG_Int(2);
7906 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7907 once_value_121 = fra.me.REG[6];
7908 register_static_object(&once_value_121);
7909 } else fra.me.REG[6] = once_value_121;
7910 fra.me.REG[6] = fra.me.REG[6];
7911 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7912 once_value_120 = fra.me.REG[6];
7913 register_static_object(&once_value_120);
7914 } else fra.me.REG[6] = once_value_120;
7915 fra.me.REG[6] = fra.me.REG[6];
7916 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7917 if (UNTAG_Bool(REGB1)) {
7918 } else {
7919 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7920 REGB1 = REGB2;
7921 }
7922 if (UNTAG_Bool(REGB1)) {
7923 /* ./compiling//compiling_icode.nit:768 */
7924 REGB1 = TAG_Int(5);
7925 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7926 if (!once_value_122) {
7927 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7928 REGB1 = TAG_Int(10);
7929 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7930 once_value_122 = fra.me.REG[7];
7931 register_static_object(&once_value_122);
7932 } else fra.me.REG[7] = once_value_122;
7933 fra.me.REG[7] = fra.me.REG[7];
7934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7935 REGB1 = TAG_Int(0);
7936 /* ./../lib/standard//collection//array.nit:278 */
7937 fra.me.REG[7] = fra.me.REG[4];
7938 /* ./../lib/standard//collection//array.nit:280 */
7939 REGB2 = TAG_Int(0);
7940 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7941 if (UNTAG_Bool(REGB0)) {
7942 } else {
7943 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7944 }
7945 /* ./../lib/standard//kernel.nit:233 */
7946 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7947 /* ./../lib/standard//collection//array.nit:280 */
7948 if (UNTAG_Bool(REGB2)) {
7949 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7950 if (UNTAG_Bool(REGB2)) {
7951 } else {
7952 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7953 }
7954 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7955 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7956 if (UNTAG_Bool(REGB0)) {
7957 } else {
7958 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7959 }
7960 /* ./../lib/standard//kernel.nit:232 */
7961 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7962 } else {
7963 /* ./../lib/standard//collection//array.nit:280 */
7964 REGB0 = TAG_Bool(false);
7965 REGB2 = REGB0;
7966 }
7967 if (UNTAG_Bool(REGB2)) {
7968 } else {
7969 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7970 }
7971 /* ./../lib/standard//collection//array.nit:281 */
7972 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7973 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7974 if (UNTAG_Bool(REGB2)) {
7975 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7976 }
7977 /* ./../lib/standard//collection//array.nit:718 */
7978 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7979 /* ./../lib/standard//collection//array.nit:281 */
7980 goto label123;
7981 label123: while(0);
7982 /* ./compiling//compiling_icode.nit:768 */
7983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7984 if (!once_value_124) {
7985 fra.me.REG[7] = BOX_NativeString(")!=(");
7986 REGB1 = TAG_Int(4);
7987 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7988 once_value_124 = fra.me.REG[7];
7989 register_static_object(&once_value_124);
7990 } else fra.me.REG[7] = once_value_124;
7991 fra.me.REG[7] = fra.me.REG[7];
7992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7993 REGB1 = TAG_Int(1);
7994 /* ./../lib/standard//collection//array.nit:278 */
7995 fra.me.REG[7] = fra.me.REG[4];
7996 /* ./../lib/standard//collection//array.nit:280 */
7997 REGB2 = TAG_Int(0);
7998 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7999 if (UNTAG_Bool(REGB0)) {
8000 } else {
8001 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8002 }
8003 /* ./../lib/standard//kernel.nit:233 */
8004 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8005 /* ./../lib/standard//collection//array.nit:280 */
8006 if (UNTAG_Bool(REGB2)) {
8007 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8008 if (UNTAG_Bool(REGB2)) {
8009 } else {
8010 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8011 }
8012 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8013 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8014 if (UNTAG_Bool(REGB0)) {
8015 } else {
8016 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8017 }
8018 /* ./../lib/standard//kernel.nit:232 */
8019 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8020 } else {
8021 /* ./../lib/standard//collection//array.nit:280 */
8022 REGB0 = TAG_Bool(false);
8023 REGB2 = REGB0;
8024 }
8025 if (UNTAG_Bool(REGB2)) {
8026 } else {
8027 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8028 }
8029 /* ./../lib/standard//collection//array.nit:281 */
8030 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8031 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8032 if (UNTAG_Bool(REGB2)) {
8033 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8034 }
8035 /* ./../lib/standard//collection//array.nit:718 */
8036 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8037 /* ./../lib/standard//collection//array.nit:281 */
8038 goto label125;
8039 label125: while(0);
8040 /* ./compiling//compiling_icode.nit:768 */
8041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8042 if (!once_value_126) {
8043 fra.me.REG[7] = BOX_NativeString("))");
8044 REGB1 = TAG_Int(2);
8045 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8046 once_value_126 = fra.me.REG[7];
8047 register_static_object(&once_value_126);
8048 } else fra.me.REG[7] = once_value_126;
8049 fra.me.REG[7] = fra.me.REG[7];
8050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8051 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8052 fra.me.REG[5] = fra.me.REG[6];
8053 }
8054 }
8055 }
8056 }
8057 }
8058 }
8059 }
8060 }
8061 }
8062 }
8063 }
8064 }
8065 }
8066 }
8067 }
8068 }
8069 }
8070 }
8071 }
8072 }
8073 } else {
8074 /* ./compiling//compiling_icode.nit:770 */
8075 if (!once_value_127) {
8076 if (!once_value_128) {
8077 fra.me.REG[6] = BOX_NativeString("Float");
8078 REGB1 = TAG_Int(5);
8079 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8080 once_value_128 = fra.me.REG[6];
8081 register_static_object(&once_value_128);
8082 } else fra.me.REG[6] = once_value_128;
8083 fra.me.REG[6] = fra.me.REG[6];
8084 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8085 once_value_127 = fra.me.REG[6];
8086 register_static_object(&once_value_127);
8087 } else fra.me.REG[6] = once_value_127;
8088 fra.me.REG[6] = fra.me.REG[6];
8089 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8090 if (UNTAG_Bool(REGB1)) {
8091 } else {
8092 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8093 REGB1 = REGB2;
8094 }
8095 if (UNTAG_Bool(REGB1)) {
8096 /* ./compiling//compiling_icode.nit:771 */
8097 if (!once_value_129) {
8098 if (!once_value_130) {
8099 fra.me.REG[6] = BOX_NativeString("object_id");
8100 REGB1 = TAG_Int(9);
8101 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8102 once_value_130 = fra.me.REG[6];
8103 register_static_object(&once_value_130);
8104 } else fra.me.REG[6] = once_value_130;
8105 fra.me.REG[6] = fra.me.REG[6];
8106 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8107 once_value_129 = fra.me.REG[6];
8108 register_static_object(&once_value_129);
8109 } else fra.me.REG[6] = once_value_129;
8110 fra.me.REG[6] = fra.me.REG[6];
8111 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8112 if (UNTAG_Bool(REGB1)) {
8113 } else {
8114 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8115 REGB1 = REGB2;
8116 }
8117 if (UNTAG_Bool(REGB1)) {
8118 /* ./compiling//compiling_icode.nit:772 */
8119 REGB1 = TAG_Int(3);
8120 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8121 if (!once_value_131) {
8122 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8123 REGB1 = TAG_Int(28);
8124 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8125 once_value_131 = fra.me.REG[7];
8126 register_static_object(&once_value_131);
8127 } else fra.me.REG[7] = once_value_131;
8128 fra.me.REG[7] = fra.me.REG[7];
8129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8130 REGB1 = TAG_Int(0);
8131 /* ./../lib/standard//collection//array.nit:278 */
8132 fra.me.REG[7] = fra.me.REG[4];
8133 /* ./../lib/standard//collection//array.nit:280 */
8134 REGB2 = TAG_Int(0);
8135 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8136 if (UNTAG_Bool(REGB0)) {
8137 } else {
8138 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8139 }
8140 /* ./../lib/standard//kernel.nit:233 */
8141 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8142 /* ./../lib/standard//collection//array.nit:280 */
8143 if (UNTAG_Bool(REGB2)) {
8144 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8145 if (UNTAG_Bool(REGB2)) {
8146 } else {
8147 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8148 }
8149 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8150 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8151 if (UNTAG_Bool(REGB0)) {
8152 } else {
8153 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8154 }
8155 /* ./../lib/standard//kernel.nit:232 */
8156 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8157 } else {
8158 /* ./../lib/standard//collection//array.nit:280 */
8159 REGB0 = TAG_Bool(false);
8160 REGB2 = REGB0;
8161 }
8162 if (UNTAG_Bool(REGB2)) {
8163 } else {
8164 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8165 }
8166 /* ./../lib/standard//collection//array.nit:281 */
8167 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8168 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8169 if (UNTAG_Bool(REGB2)) {
8170 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8171 }
8172 /* ./../lib/standard//collection//array.nit:718 */
8173 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8174 /* ./../lib/standard//collection//array.nit:281 */
8175 goto label132;
8176 label132: while(0);
8177 /* ./compiling//compiling_icode.nit:772 */
8178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8179 if (!once_value_133) {
8180 fra.me.REG[7] = BOX_NativeString("))");
8181 REGB1 = TAG_Int(2);
8182 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8183 once_value_133 = fra.me.REG[7];
8184 register_static_object(&once_value_133);
8185 } else fra.me.REG[7] = once_value_133;
8186 fra.me.REG[7] = fra.me.REG[7];
8187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8188 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8189 fra.me.REG[5] = fra.me.REG[6];
8190 } else {
8191 /* ./compiling//compiling_icode.nit:773 */
8192 if (!once_value_134) {
8193 if (!once_value_135) {
8194 fra.me.REG[6] = BOX_NativeString("unary -");
8195 REGB1 = TAG_Int(7);
8196 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8197 once_value_135 = fra.me.REG[6];
8198 register_static_object(&once_value_135);
8199 } else fra.me.REG[6] = once_value_135;
8200 fra.me.REG[6] = fra.me.REG[6];
8201 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8202 once_value_134 = fra.me.REG[6];
8203 register_static_object(&once_value_134);
8204 } else fra.me.REG[6] = once_value_134;
8205 fra.me.REG[6] = fra.me.REG[6];
8206 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8207 if (UNTAG_Bool(REGB1)) {
8208 } else {
8209 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8210 REGB1 = REGB2;
8211 }
8212 if (UNTAG_Bool(REGB1)) {
8213 /* ./compiling//compiling_icode.nit:774 */
8214 REGB1 = TAG_Int(3);
8215 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8216 if (!once_value_136) {
8217 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
8218 REGB1 = TAG_Int(23);
8219 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8220 once_value_136 = fra.me.REG[7];
8221 register_static_object(&once_value_136);
8222 } else fra.me.REG[7] = once_value_136;
8223 fra.me.REG[7] = fra.me.REG[7];
8224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8225 REGB1 = TAG_Int(0);
8226 /* ./../lib/standard//collection//array.nit:278 */
8227 fra.me.REG[7] = fra.me.REG[4];
8228 /* ./../lib/standard//collection//array.nit:280 */
8229 REGB2 = TAG_Int(0);
8230 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8231 if (UNTAG_Bool(REGB0)) {
8232 } else {
8233 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8234 }
8235 /* ./../lib/standard//kernel.nit:233 */
8236 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8237 /* ./../lib/standard//collection//array.nit:280 */
8238 if (UNTAG_Bool(REGB2)) {
8239 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8240 if (UNTAG_Bool(REGB2)) {
8241 } else {
8242 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8243 }
8244 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8245 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8246 if (UNTAG_Bool(REGB0)) {
8247 } else {
8248 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8249 }
8250 /* ./../lib/standard//kernel.nit:232 */
8251 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8252 } else {
8253 /* ./../lib/standard//collection//array.nit:280 */
8254 REGB0 = TAG_Bool(false);
8255 REGB2 = REGB0;
8256 }
8257 if (UNTAG_Bool(REGB2)) {
8258 } else {
8259 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8260 }
8261 /* ./../lib/standard//collection//array.nit:281 */
8262 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8263 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8264 if (UNTAG_Bool(REGB2)) {
8265 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8266 }
8267 /* ./../lib/standard//collection//array.nit:718 */
8268 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8269 /* ./../lib/standard//collection//array.nit:281 */
8270 goto label137;
8271 label137: while(0);
8272 /* ./compiling//compiling_icode.nit:774 */
8273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8274 if (!once_value_138) {
8275 fra.me.REG[7] = BOX_NativeString("))");
8276 REGB1 = TAG_Int(2);
8277 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8278 once_value_138 = fra.me.REG[7];
8279 register_static_object(&once_value_138);
8280 } else fra.me.REG[7] = once_value_138;
8281 fra.me.REG[7] = fra.me.REG[7];
8282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8283 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8284 fra.me.REG[5] = fra.me.REG[6];
8285 } else {
8286 /* ./compiling//compiling_icode.nit:775 */
8287 if (!once_value_139) {
8288 if (!once_value_140) {
8289 fra.me.REG[6] = BOX_NativeString("output");
8290 REGB1 = TAG_Int(6);
8291 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8292 once_value_140 = fra.me.REG[6];
8293 register_static_object(&once_value_140);
8294 } else fra.me.REG[6] = once_value_140;
8295 fra.me.REG[6] = fra.me.REG[6];
8296 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8297 once_value_139 = fra.me.REG[6];
8298 register_static_object(&once_value_139);
8299 } else fra.me.REG[6] = once_value_139;
8300 fra.me.REG[6] = fra.me.REG[6];
8301 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8302 if (UNTAG_Bool(REGB1)) {
8303 } else {
8304 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8305 REGB1 = REGB2;
8306 }
8307 if (UNTAG_Bool(REGB1)) {
8308 /* ./compiling//compiling_icode.nit:776 */
8309 REGB1 = TAG_Int(3);
8310 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8311 if (!once_value_141) {
8312 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
8313 REGB1 = TAG_Int(27);
8314 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8315 once_value_141 = fra.me.REG[7];
8316 register_static_object(&once_value_141);
8317 } else fra.me.REG[7] = once_value_141;
8318 fra.me.REG[7] = fra.me.REG[7];
8319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8320 REGB1 = TAG_Int(0);
8321 /* ./../lib/standard//collection//array.nit:278 */
8322 fra.me.REG[7] = fra.me.REG[4];
8323 /* ./../lib/standard//collection//array.nit:280 */
8324 REGB2 = TAG_Int(0);
8325 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8326 if (UNTAG_Bool(REGB0)) {
8327 } else {
8328 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8329 }
8330 /* ./../lib/standard//kernel.nit:233 */
8331 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8332 /* ./../lib/standard//collection//array.nit:280 */
8333 if (UNTAG_Bool(REGB2)) {
8334 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8335 if (UNTAG_Bool(REGB2)) {
8336 } else {
8337 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8338 }
8339 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8340 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8341 if (UNTAG_Bool(REGB0)) {
8342 } else {
8343 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8344 }
8345 /* ./../lib/standard//kernel.nit:232 */
8346 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8347 } else {
8348 /* ./../lib/standard//collection//array.nit:280 */
8349 REGB0 = TAG_Bool(false);
8350 REGB2 = REGB0;
8351 }
8352 if (UNTAG_Bool(REGB2)) {
8353 } else {
8354 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8355 }
8356 /* ./../lib/standard//collection//array.nit:281 */
8357 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8358 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8359 if (UNTAG_Bool(REGB2)) {
8360 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8361 }
8362 /* ./../lib/standard//collection//array.nit:718 */
8363 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8364 /* ./../lib/standard//collection//array.nit:281 */
8365 goto label142;
8366 label142: while(0);
8367 /* ./compiling//compiling_icode.nit:776 */
8368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8369 if (!once_value_143) {
8370 fra.me.REG[7] = BOX_NativeString("));");
8371 REGB1 = TAG_Int(3);
8372 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8373 once_value_143 = fra.me.REG[7];
8374 register_static_object(&once_value_143);
8375 } else fra.me.REG[7] = once_value_143;
8376 fra.me.REG[7] = fra.me.REG[7];
8377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8378 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8379 fra.me.REG[5] = fra.me.REG[6];
8380 } else {
8381 /* ./compiling//compiling_icode.nit:777 */
8382 if (!once_value_144) {
8383 if (!once_value_145) {
8384 fra.me.REG[6] = BOX_NativeString("to_i");
8385 REGB1 = TAG_Int(4);
8386 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8387 once_value_145 = fra.me.REG[6];
8388 register_static_object(&once_value_145);
8389 } else fra.me.REG[6] = once_value_145;
8390 fra.me.REG[6] = fra.me.REG[6];
8391 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8392 once_value_144 = fra.me.REG[6];
8393 register_static_object(&once_value_144);
8394 } else fra.me.REG[6] = once_value_144;
8395 fra.me.REG[6] = fra.me.REG[6];
8396 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8397 if (UNTAG_Bool(REGB1)) {
8398 } else {
8399 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8400 REGB1 = REGB2;
8401 }
8402 if (UNTAG_Bool(REGB1)) {
8403 /* ./compiling//compiling_icode.nit:778 */
8404 REGB1 = TAG_Int(3);
8405 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8406 if (!once_value_146) {
8407 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8408 REGB1 = TAG_Int(28);
8409 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8410 once_value_146 = fra.me.REG[7];
8411 register_static_object(&once_value_146);
8412 } else fra.me.REG[7] = once_value_146;
8413 fra.me.REG[7] = fra.me.REG[7];
8414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8415 REGB1 = TAG_Int(0);
8416 /* ./../lib/standard//collection//array.nit:278 */
8417 fra.me.REG[7] = fra.me.REG[4];
8418 /* ./../lib/standard//collection//array.nit:280 */
8419 REGB2 = TAG_Int(0);
8420 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8421 if (UNTAG_Bool(REGB0)) {
8422 } else {
8423 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8424 }
8425 /* ./../lib/standard//kernel.nit:233 */
8426 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8427 /* ./../lib/standard//collection//array.nit:280 */
8428 if (UNTAG_Bool(REGB2)) {
8429 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8430 if (UNTAG_Bool(REGB2)) {
8431 } else {
8432 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8433 }
8434 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8435 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8436 if (UNTAG_Bool(REGB0)) {
8437 } else {
8438 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8439 }
8440 /* ./../lib/standard//kernel.nit:232 */
8441 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8442 } else {
8443 /* ./../lib/standard//collection//array.nit:280 */
8444 REGB0 = TAG_Bool(false);
8445 REGB2 = REGB0;
8446 }
8447 if (UNTAG_Bool(REGB2)) {
8448 } else {
8449 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8450 }
8451 /* ./../lib/standard//collection//array.nit:281 */
8452 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8453 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8454 if (UNTAG_Bool(REGB2)) {
8455 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8456 }
8457 /* ./../lib/standard//collection//array.nit:718 */
8458 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8459 /* ./../lib/standard//collection//array.nit:281 */
8460 goto label147;
8461 label147: while(0);
8462 /* ./compiling//compiling_icode.nit:778 */
8463 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8464 if (!once_value_148) {
8465 fra.me.REG[7] = BOX_NativeString("))");
8466 REGB1 = TAG_Int(2);
8467 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8468 once_value_148 = fra.me.REG[7];
8469 register_static_object(&once_value_148);
8470 } else fra.me.REG[7] = once_value_148;
8471 fra.me.REG[7] = fra.me.REG[7];
8472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8473 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8474 fra.me.REG[5] = fra.me.REG[6];
8475 } else {
8476 /* ./compiling//compiling_icode.nit:779 */
8477 if (!once_value_149) {
8478 if (!once_value_150) {
8479 fra.me.REG[6] = BOX_NativeString("+");
8480 REGB1 = TAG_Int(1);
8481 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8482 once_value_150 = fra.me.REG[6];
8483 register_static_object(&once_value_150);
8484 } else fra.me.REG[6] = once_value_150;
8485 fra.me.REG[6] = fra.me.REG[6];
8486 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8487 once_value_149 = fra.me.REG[6];
8488 register_static_object(&once_value_149);
8489 } else fra.me.REG[6] = once_value_149;
8490 fra.me.REG[6] = fra.me.REG[6];
8491 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8492 if (UNTAG_Bool(REGB1)) {
8493 } else {
8494 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8495 REGB1 = REGB2;
8496 }
8497 if (UNTAG_Bool(REGB1)) {
8498 /* ./compiling//compiling_icode.nit:780 */
8499 REGB1 = TAG_Int(5);
8500 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8501 if (!once_value_151) {
8502 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8503 REGB1 = TAG_Int(22);
8504 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8505 once_value_151 = fra.me.REG[7];
8506 register_static_object(&once_value_151);
8507 } else fra.me.REG[7] = once_value_151;
8508 fra.me.REG[7] = fra.me.REG[7];
8509 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8510 REGB1 = TAG_Int(0);
8511 /* ./../lib/standard//collection//array.nit:278 */
8512 fra.me.REG[7] = fra.me.REG[4];
8513 /* ./../lib/standard//collection//array.nit:280 */
8514 REGB2 = TAG_Int(0);
8515 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8516 if (UNTAG_Bool(REGB0)) {
8517 } else {
8518 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8519 }
8520 /* ./../lib/standard//kernel.nit:233 */
8521 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8522 /* ./../lib/standard//collection//array.nit:280 */
8523 if (UNTAG_Bool(REGB2)) {
8524 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8525 if (UNTAG_Bool(REGB2)) {
8526 } else {
8527 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8528 }
8529 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8530 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8531 if (UNTAG_Bool(REGB0)) {
8532 } else {
8533 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8534 }
8535 /* ./../lib/standard//kernel.nit:232 */
8536 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8537 } else {
8538 /* ./../lib/standard//collection//array.nit:280 */
8539 REGB0 = TAG_Bool(false);
8540 REGB2 = REGB0;
8541 }
8542 if (UNTAG_Bool(REGB2)) {
8543 } else {
8544 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8545 }
8546 /* ./../lib/standard//collection//array.nit:281 */
8547 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8548 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8549 if (UNTAG_Bool(REGB2)) {
8550 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8551 }
8552 /* ./../lib/standard//collection//array.nit:718 */
8553 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8554 /* ./../lib/standard//collection//array.nit:281 */
8555 goto label152;
8556 label152: while(0);
8557 /* ./compiling//compiling_icode.nit:780 */
8558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8559 if (!once_value_153) {
8560 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
8561 REGB1 = TAG_Int(14);
8562 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8563 once_value_153 = fra.me.REG[7];
8564 register_static_object(&once_value_153);
8565 } else fra.me.REG[7] = once_value_153;
8566 fra.me.REG[7] = fra.me.REG[7];
8567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8568 REGB1 = TAG_Int(1);
8569 /* ./../lib/standard//collection//array.nit:278 */
8570 fra.me.REG[7] = fra.me.REG[4];
8571 /* ./../lib/standard//collection//array.nit:280 */
8572 REGB2 = TAG_Int(0);
8573 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8574 if (UNTAG_Bool(REGB0)) {
8575 } else {
8576 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8577 }
8578 /* ./../lib/standard//kernel.nit:233 */
8579 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8580 /* ./../lib/standard//collection//array.nit:280 */
8581 if (UNTAG_Bool(REGB2)) {
8582 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8583 if (UNTAG_Bool(REGB2)) {
8584 } else {
8585 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8586 }
8587 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8588 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8589 if (UNTAG_Bool(REGB0)) {
8590 } else {
8591 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8592 }
8593 /* ./../lib/standard//kernel.nit:232 */
8594 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8595 } else {
8596 /* ./../lib/standard//collection//array.nit:280 */
8597 REGB0 = TAG_Bool(false);
8598 REGB2 = REGB0;
8599 }
8600 if (UNTAG_Bool(REGB2)) {
8601 } else {
8602 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8603 }
8604 /* ./../lib/standard//collection//array.nit:281 */
8605 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8606 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8607 if (UNTAG_Bool(REGB2)) {
8608 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8609 }
8610 /* ./../lib/standard//collection//array.nit:718 */
8611 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8612 /* ./../lib/standard//collection//array.nit:281 */
8613 goto label154;
8614 label154: while(0);
8615 /* ./compiling//compiling_icode.nit:780 */
8616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8617 if (!once_value_155) {
8618 fra.me.REG[7] = BOX_NativeString("))");
8619 REGB1 = TAG_Int(2);
8620 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8621 once_value_155 = fra.me.REG[7];
8622 register_static_object(&once_value_155);
8623 } else fra.me.REG[7] = once_value_155;
8624 fra.me.REG[7] = fra.me.REG[7];
8625 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8626 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8627 fra.me.REG[5] = fra.me.REG[6];
8628 } else {
8629 /* ./compiling//compiling_icode.nit:781 */
8630 if (!once_value_156) {
8631 if (!once_value_157) {
8632 fra.me.REG[6] = BOX_NativeString("-");
8633 REGB1 = TAG_Int(1);
8634 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8635 once_value_157 = fra.me.REG[6];
8636 register_static_object(&once_value_157);
8637 } else fra.me.REG[6] = once_value_157;
8638 fra.me.REG[6] = fra.me.REG[6];
8639 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8640 once_value_156 = fra.me.REG[6];
8641 register_static_object(&once_value_156);
8642 } else fra.me.REG[6] = once_value_156;
8643 fra.me.REG[6] = fra.me.REG[6];
8644 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8645 if (UNTAG_Bool(REGB1)) {
8646 } else {
8647 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8648 REGB1 = REGB2;
8649 }
8650 if (UNTAG_Bool(REGB1)) {
8651 /* ./compiling//compiling_icode.nit:782 */
8652 REGB1 = TAG_Int(5);
8653 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8654 if (!once_value_158) {
8655 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8656 REGB1 = TAG_Int(22);
8657 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8658 once_value_158 = fra.me.REG[7];
8659 register_static_object(&once_value_158);
8660 } else fra.me.REG[7] = once_value_158;
8661 fra.me.REG[7] = fra.me.REG[7];
8662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8663 REGB1 = TAG_Int(0);
8664 /* ./../lib/standard//collection//array.nit:278 */
8665 fra.me.REG[7] = fra.me.REG[4];
8666 /* ./../lib/standard//collection//array.nit:280 */
8667 REGB2 = TAG_Int(0);
8668 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8669 if (UNTAG_Bool(REGB0)) {
8670 } else {
8671 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8672 }
8673 /* ./../lib/standard//kernel.nit:233 */
8674 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8675 /* ./../lib/standard//collection//array.nit:280 */
8676 if (UNTAG_Bool(REGB2)) {
8677 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8678 if (UNTAG_Bool(REGB2)) {
8679 } else {
8680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8681 }
8682 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8683 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8684 if (UNTAG_Bool(REGB0)) {
8685 } else {
8686 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8687 }
8688 /* ./../lib/standard//kernel.nit:232 */
8689 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8690 } else {
8691 /* ./../lib/standard//collection//array.nit:280 */
8692 REGB0 = TAG_Bool(false);
8693 REGB2 = REGB0;
8694 }
8695 if (UNTAG_Bool(REGB2)) {
8696 } else {
8697 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8698 }
8699 /* ./../lib/standard//collection//array.nit:281 */
8700 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8701 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8702 if (UNTAG_Bool(REGB2)) {
8703 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8704 }
8705 /* ./../lib/standard//collection//array.nit:718 */
8706 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8707 /* ./../lib/standard//collection//array.nit:281 */
8708 goto label159;
8709 label159: while(0);
8710 /* ./compiling//compiling_icode.nit:782 */
8711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8712 if (!once_value_160) {
8713 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8714 REGB1 = TAG_Int(14);
8715 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8716 once_value_160 = fra.me.REG[7];
8717 register_static_object(&once_value_160);
8718 } else fra.me.REG[7] = once_value_160;
8719 fra.me.REG[7] = fra.me.REG[7];
8720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8721 REGB1 = TAG_Int(1);
8722 /* ./../lib/standard//collection//array.nit:278 */
8723 fra.me.REG[7] = fra.me.REG[4];
8724 /* ./../lib/standard//collection//array.nit:280 */
8725 REGB2 = TAG_Int(0);
8726 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8727 if (UNTAG_Bool(REGB0)) {
8728 } else {
8729 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8730 }
8731 /* ./../lib/standard//kernel.nit:233 */
8732 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8733 /* ./../lib/standard//collection//array.nit:280 */
8734 if (UNTAG_Bool(REGB2)) {
8735 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8736 if (UNTAG_Bool(REGB2)) {
8737 } else {
8738 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8739 }
8740 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8741 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8742 if (UNTAG_Bool(REGB0)) {
8743 } else {
8744 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8745 }
8746 /* ./../lib/standard//kernel.nit:232 */
8747 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8748 } else {
8749 /* ./../lib/standard//collection//array.nit:280 */
8750 REGB0 = TAG_Bool(false);
8751 REGB2 = REGB0;
8752 }
8753 if (UNTAG_Bool(REGB2)) {
8754 } else {
8755 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8756 }
8757 /* ./../lib/standard//collection//array.nit:281 */
8758 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8759 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8760 if (UNTAG_Bool(REGB2)) {
8761 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8762 }
8763 /* ./../lib/standard//collection//array.nit:718 */
8764 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8765 /* ./../lib/standard//collection//array.nit:281 */
8766 goto label161;
8767 label161: while(0);
8768 /* ./compiling//compiling_icode.nit:782 */
8769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8770 if (!once_value_162) {
8771 fra.me.REG[7] = BOX_NativeString("))");
8772 REGB1 = TAG_Int(2);
8773 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8774 once_value_162 = fra.me.REG[7];
8775 register_static_object(&once_value_162);
8776 } else fra.me.REG[7] = once_value_162;
8777 fra.me.REG[7] = fra.me.REG[7];
8778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8779 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8780 fra.me.REG[5] = fra.me.REG[6];
8781 } else {
8782 /* ./compiling//compiling_icode.nit:783 */
8783 if (!once_value_163) {
8784 if (!once_value_164) {
8785 fra.me.REG[6] = BOX_NativeString("*");
8786 REGB1 = TAG_Int(1);
8787 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8788 once_value_164 = fra.me.REG[6];
8789 register_static_object(&once_value_164);
8790 } else fra.me.REG[6] = once_value_164;
8791 fra.me.REG[6] = fra.me.REG[6];
8792 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8793 once_value_163 = fra.me.REG[6];
8794 register_static_object(&once_value_163);
8795 } else fra.me.REG[6] = once_value_163;
8796 fra.me.REG[6] = fra.me.REG[6];
8797 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8798 if (UNTAG_Bool(REGB1)) {
8799 } else {
8800 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8801 REGB1 = REGB2;
8802 }
8803 if (UNTAG_Bool(REGB1)) {
8804 /* ./compiling//compiling_icode.nit:784 */
8805 REGB1 = TAG_Int(5);
8806 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8807 if (!once_value_165) {
8808 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8809 REGB1 = TAG_Int(22);
8810 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8811 once_value_165 = fra.me.REG[7];
8812 register_static_object(&once_value_165);
8813 } else fra.me.REG[7] = once_value_165;
8814 fra.me.REG[7] = fra.me.REG[7];
8815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8816 REGB1 = TAG_Int(0);
8817 /* ./../lib/standard//collection//array.nit:278 */
8818 fra.me.REG[7] = fra.me.REG[4];
8819 /* ./../lib/standard//collection//array.nit:280 */
8820 REGB2 = TAG_Int(0);
8821 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8822 if (UNTAG_Bool(REGB0)) {
8823 } else {
8824 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8825 }
8826 /* ./../lib/standard//kernel.nit:233 */
8827 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8828 /* ./../lib/standard//collection//array.nit:280 */
8829 if (UNTAG_Bool(REGB2)) {
8830 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8831 if (UNTAG_Bool(REGB2)) {
8832 } else {
8833 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8834 }
8835 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8836 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8837 if (UNTAG_Bool(REGB0)) {
8838 } else {
8839 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8840 }
8841 /* ./../lib/standard//kernel.nit:232 */
8842 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8843 } else {
8844 /* ./../lib/standard//collection//array.nit:280 */
8845 REGB0 = TAG_Bool(false);
8846 REGB2 = REGB0;
8847 }
8848 if (UNTAG_Bool(REGB2)) {
8849 } else {
8850 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8851 }
8852 /* ./../lib/standard//collection//array.nit:281 */
8853 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8854 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8855 if (UNTAG_Bool(REGB2)) {
8856 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8857 }
8858 /* ./../lib/standard//collection//array.nit:718 */
8859 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8860 /* ./../lib/standard//collection//array.nit:281 */
8861 goto label166;
8862 label166: while(0);
8863 /* ./compiling//compiling_icode.nit:784 */
8864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8865 if (!once_value_167) {
8866 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8867 REGB1 = TAG_Int(14);
8868 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8869 once_value_167 = fra.me.REG[7];
8870 register_static_object(&once_value_167);
8871 } else fra.me.REG[7] = once_value_167;
8872 fra.me.REG[7] = fra.me.REG[7];
8873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8874 REGB1 = TAG_Int(1);
8875 /* ./../lib/standard//collection//array.nit:278 */
8876 fra.me.REG[7] = fra.me.REG[4];
8877 /* ./../lib/standard//collection//array.nit:280 */
8878 REGB2 = TAG_Int(0);
8879 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8880 if (UNTAG_Bool(REGB0)) {
8881 } else {
8882 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8883 }
8884 /* ./../lib/standard//kernel.nit:233 */
8885 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8886 /* ./../lib/standard//collection//array.nit:280 */
8887 if (UNTAG_Bool(REGB2)) {
8888 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8889 if (UNTAG_Bool(REGB2)) {
8890 } else {
8891 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8892 }
8893 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8894 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8895 if (UNTAG_Bool(REGB0)) {
8896 } else {
8897 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8898 }
8899 /* ./../lib/standard//kernel.nit:232 */
8900 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8901 } else {
8902 /* ./../lib/standard//collection//array.nit:280 */
8903 REGB0 = TAG_Bool(false);
8904 REGB2 = REGB0;
8905 }
8906 if (UNTAG_Bool(REGB2)) {
8907 } else {
8908 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8909 }
8910 /* ./../lib/standard//collection//array.nit:281 */
8911 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8912 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8913 if (UNTAG_Bool(REGB2)) {
8914 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8915 }
8916 /* ./../lib/standard//collection//array.nit:718 */
8917 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8918 /* ./../lib/standard//collection//array.nit:281 */
8919 goto label168;
8920 label168: while(0);
8921 /* ./compiling//compiling_icode.nit:784 */
8922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8923 if (!once_value_169) {
8924 fra.me.REG[7] = BOX_NativeString("))");
8925 REGB1 = TAG_Int(2);
8926 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8927 once_value_169 = fra.me.REG[7];
8928 register_static_object(&once_value_169);
8929 } else fra.me.REG[7] = once_value_169;
8930 fra.me.REG[7] = fra.me.REG[7];
8931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8932 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8933 fra.me.REG[5] = fra.me.REG[6];
8934 } else {
8935 /* ./compiling//compiling_icode.nit:785 */
8936 if (!once_value_170) {
8937 if (!once_value_171) {
8938 fra.me.REG[6] = BOX_NativeString("/");
8939 REGB1 = TAG_Int(1);
8940 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8941 once_value_171 = fra.me.REG[6];
8942 register_static_object(&once_value_171);
8943 } else fra.me.REG[6] = once_value_171;
8944 fra.me.REG[6] = fra.me.REG[6];
8945 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8946 once_value_170 = fra.me.REG[6];
8947 register_static_object(&once_value_170);
8948 } else fra.me.REG[6] = once_value_170;
8949 fra.me.REG[6] = fra.me.REG[6];
8950 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8951 if (UNTAG_Bool(REGB1)) {
8952 } else {
8953 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8954 REGB1 = REGB2;
8955 }
8956 if (UNTAG_Bool(REGB1)) {
8957 /* ./compiling//compiling_icode.nit:786 */
8958 REGB1 = TAG_Int(5);
8959 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8960 if (!once_value_172) {
8961 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8962 REGB1 = TAG_Int(22);
8963 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8964 once_value_172 = fra.me.REG[7];
8965 register_static_object(&once_value_172);
8966 } else fra.me.REG[7] = once_value_172;
8967 fra.me.REG[7] = fra.me.REG[7];
8968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8969 REGB1 = TAG_Int(0);
8970 /* ./../lib/standard//collection//array.nit:278 */
8971 fra.me.REG[7] = fra.me.REG[4];
8972 /* ./../lib/standard//collection//array.nit:280 */
8973 REGB2 = TAG_Int(0);
8974 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8975 if (UNTAG_Bool(REGB0)) {
8976 } else {
8977 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8978 }
8979 /* ./../lib/standard//kernel.nit:233 */
8980 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8981 /* ./../lib/standard//collection//array.nit:280 */
8982 if (UNTAG_Bool(REGB2)) {
8983 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8984 if (UNTAG_Bool(REGB2)) {
8985 } else {
8986 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8987 }
8988 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8989 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8990 if (UNTAG_Bool(REGB0)) {
8991 } else {
8992 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8993 }
8994 /* ./../lib/standard//kernel.nit:232 */
8995 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8996 } else {
8997 /* ./../lib/standard//collection//array.nit:280 */
8998 REGB0 = TAG_Bool(false);
8999 REGB2 = REGB0;
9000 }
9001 if (UNTAG_Bool(REGB2)) {
9002 } else {
9003 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9004 }
9005 /* ./../lib/standard//collection//array.nit:281 */
9006 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9007 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9008 if (UNTAG_Bool(REGB2)) {
9009 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9010 }
9011 /* ./../lib/standard//collection//array.nit:718 */
9012 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9013 /* ./../lib/standard//collection//array.nit:281 */
9014 goto label173;
9015 label173: while(0);
9016 /* ./compiling//compiling_icode.nit:786 */
9017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9018 if (!once_value_174) {
9019 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
9020 REGB1 = TAG_Int(14);
9021 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9022 once_value_174 = fra.me.REG[7];
9023 register_static_object(&once_value_174);
9024 } else fra.me.REG[7] = once_value_174;
9025 fra.me.REG[7] = fra.me.REG[7];
9026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9027 REGB1 = TAG_Int(1);
9028 /* ./../lib/standard//collection//array.nit:278 */
9029 fra.me.REG[7] = fra.me.REG[4];
9030 /* ./../lib/standard//collection//array.nit:280 */
9031 REGB2 = TAG_Int(0);
9032 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9033 if (UNTAG_Bool(REGB0)) {
9034 } else {
9035 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9036 }
9037 /* ./../lib/standard//kernel.nit:233 */
9038 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9039 /* ./../lib/standard//collection//array.nit:280 */
9040 if (UNTAG_Bool(REGB2)) {
9041 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9042 if (UNTAG_Bool(REGB2)) {
9043 } else {
9044 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9045 }
9046 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9047 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9048 if (UNTAG_Bool(REGB0)) {
9049 } else {
9050 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9051 }
9052 /* ./../lib/standard//kernel.nit:232 */
9053 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9054 } else {
9055 /* ./../lib/standard//collection//array.nit:280 */
9056 REGB0 = TAG_Bool(false);
9057 REGB2 = REGB0;
9058 }
9059 if (UNTAG_Bool(REGB2)) {
9060 } else {
9061 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9062 }
9063 /* ./../lib/standard//collection//array.nit:281 */
9064 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9065 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9066 if (UNTAG_Bool(REGB2)) {
9067 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9068 }
9069 /* ./../lib/standard//collection//array.nit:718 */
9070 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9071 /* ./../lib/standard//collection//array.nit:281 */
9072 goto label175;
9073 label175: while(0);
9074 /* ./compiling//compiling_icode.nit:786 */
9075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9076 if (!once_value_176) {
9077 fra.me.REG[7] = BOX_NativeString("))");
9078 REGB1 = TAG_Int(2);
9079 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9080 once_value_176 = fra.me.REG[7];
9081 register_static_object(&once_value_176);
9082 } else fra.me.REG[7] = once_value_176;
9083 fra.me.REG[7] = fra.me.REG[7];
9084 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9085 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9086 fra.me.REG[5] = fra.me.REG[6];
9087 } else {
9088 /* ./compiling//compiling_icode.nit:787 */
9089 if (!once_value_177) {
9090 if (!once_value_178) {
9091 fra.me.REG[6] = BOX_NativeString("<");
9092 REGB1 = TAG_Int(1);
9093 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9094 once_value_178 = fra.me.REG[6];
9095 register_static_object(&once_value_178);
9096 } else fra.me.REG[6] = once_value_178;
9097 fra.me.REG[6] = fra.me.REG[6];
9098 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9099 once_value_177 = fra.me.REG[6];
9100 register_static_object(&once_value_177);
9101 } else fra.me.REG[6] = once_value_177;
9102 fra.me.REG[6] = fra.me.REG[6];
9103 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9104 if (UNTAG_Bool(REGB1)) {
9105 } else {
9106 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9107 REGB1 = REGB2;
9108 }
9109 if (UNTAG_Bool(REGB1)) {
9110 /* ./compiling//compiling_icode.nit:788 */
9111 REGB1 = TAG_Int(5);
9112 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9113 if (!once_value_179) {
9114 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9115 REGB1 = TAG_Int(21);
9116 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9117 once_value_179 = fra.me.REG[7];
9118 register_static_object(&once_value_179);
9119 } else fra.me.REG[7] = once_value_179;
9120 fra.me.REG[7] = fra.me.REG[7];
9121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9122 REGB1 = TAG_Int(0);
9123 /* ./../lib/standard//collection//array.nit:278 */
9124 fra.me.REG[7] = fra.me.REG[4];
9125 /* ./../lib/standard//collection//array.nit:280 */
9126 REGB2 = TAG_Int(0);
9127 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9128 if (UNTAG_Bool(REGB0)) {
9129 } else {
9130 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9131 }
9132 /* ./../lib/standard//kernel.nit:233 */
9133 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9134 /* ./../lib/standard//collection//array.nit:280 */
9135 if (UNTAG_Bool(REGB2)) {
9136 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9137 if (UNTAG_Bool(REGB2)) {
9138 } else {
9139 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9140 }
9141 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9142 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9143 if (UNTAG_Bool(REGB0)) {
9144 } else {
9145 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9146 }
9147 /* ./../lib/standard//kernel.nit:232 */
9148 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9149 } else {
9150 /* ./../lib/standard//collection//array.nit:280 */
9151 REGB0 = TAG_Bool(false);
9152 REGB2 = REGB0;
9153 }
9154 if (UNTAG_Bool(REGB2)) {
9155 } else {
9156 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9157 }
9158 /* ./../lib/standard//collection//array.nit:281 */
9159 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9160 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9161 if (UNTAG_Bool(REGB2)) {
9162 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9163 }
9164 /* ./../lib/standard//collection//array.nit:718 */
9165 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9166 /* ./../lib/standard//collection//array.nit:281 */
9167 goto label180;
9168 label180: while(0);
9169 /* ./compiling//compiling_icode.nit:788 */
9170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9171 if (!once_value_181) {
9172 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
9173 REGB1 = TAG_Int(14);
9174 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9175 once_value_181 = fra.me.REG[7];
9176 register_static_object(&once_value_181);
9177 } else fra.me.REG[7] = once_value_181;
9178 fra.me.REG[7] = fra.me.REG[7];
9179 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9180 REGB1 = TAG_Int(1);
9181 /* ./../lib/standard//collection//array.nit:278 */
9182 fra.me.REG[7] = fra.me.REG[4];
9183 /* ./../lib/standard//collection//array.nit:280 */
9184 REGB2 = TAG_Int(0);
9185 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9186 if (UNTAG_Bool(REGB0)) {
9187 } else {
9188 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9189 }
9190 /* ./../lib/standard//kernel.nit:233 */
9191 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9192 /* ./../lib/standard//collection//array.nit:280 */
9193 if (UNTAG_Bool(REGB2)) {
9194 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9195 if (UNTAG_Bool(REGB2)) {
9196 } else {
9197 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9198 }
9199 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9200 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9201 if (UNTAG_Bool(REGB0)) {
9202 } else {
9203 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9204 }
9205 /* ./../lib/standard//kernel.nit:232 */
9206 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9207 } else {
9208 /* ./../lib/standard//collection//array.nit:280 */
9209 REGB0 = TAG_Bool(false);
9210 REGB2 = REGB0;
9211 }
9212 if (UNTAG_Bool(REGB2)) {
9213 } else {
9214 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9215 }
9216 /* ./../lib/standard//collection//array.nit:281 */
9217 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9218 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9219 if (UNTAG_Bool(REGB2)) {
9220 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9221 }
9222 /* ./../lib/standard//collection//array.nit:718 */
9223 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9224 /* ./../lib/standard//collection//array.nit:281 */
9225 goto label182;
9226 label182: while(0);
9227 /* ./compiling//compiling_icode.nit:788 */
9228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9229 if (!once_value_183) {
9230 fra.me.REG[7] = BOX_NativeString("))");
9231 REGB1 = TAG_Int(2);
9232 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9233 once_value_183 = fra.me.REG[7];
9234 register_static_object(&once_value_183);
9235 } else fra.me.REG[7] = once_value_183;
9236 fra.me.REG[7] = fra.me.REG[7];
9237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9238 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9239 fra.me.REG[5] = fra.me.REG[6];
9240 } else {
9241 /* ./compiling//compiling_icode.nit:789 */
9242 if (!once_value_184) {
9243 if (!once_value_185) {
9244 fra.me.REG[6] = BOX_NativeString(">");
9245 REGB1 = TAG_Int(1);
9246 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9247 once_value_185 = fra.me.REG[6];
9248 register_static_object(&once_value_185);
9249 } else fra.me.REG[6] = once_value_185;
9250 fra.me.REG[6] = fra.me.REG[6];
9251 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9252 once_value_184 = fra.me.REG[6];
9253 register_static_object(&once_value_184);
9254 } else fra.me.REG[6] = once_value_184;
9255 fra.me.REG[6] = fra.me.REG[6];
9256 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9257 if (UNTAG_Bool(REGB1)) {
9258 } else {
9259 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9260 REGB1 = REGB2;
9261 }
9262 if (UNTAG_Bool(REGB1)) {
9263 /* ./compiling//compiling_icode.nit:790 */
9264 REGB1 = TAG_Int(5);
9265 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9266 if (!once_value_186) {
9267 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9268 REGB1 = TAG_Int(21);
9269 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9270 once_value_186 = fra.me.REG[7];
9271 register_static_object(&once_value_186);
9272 } else fra.me.REG[7] = once_value_186;
9273 fra.me.REG[7] = fra.me.REG[7];
9274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9275 REGB1 = TAG_Int(0);
9276 /* ./../lib/standard//collection//array.nit:278 */
9277 fra.me.REG[7] = fra.me.REG[4];
9278 /* ./../lib/standard//collection//array.nit:280 */
9279 REGB2 = TAG_Int(0);
9280 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9281 if (UNTAG_Bool(REGB0)) {
9282 } else {
9283 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9284 }
9285 /* ./../lib/standard//kernel.nit:233 */
9286 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9287 /* ./../lib/standard//collection//array.nit:280 */
9288 if (UNTAG_Bool(REGB2)) {
9289 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9290 if (UNTAG_Bool(REGB2)) {
9291 } else {
9292 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9293 }
9294 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9295 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9296 if (UNTAG_Bool(REGB0)) {
9297 } else {
9298 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9299 }
9300 /* ./../lib/standard//kernel.nit:232 */
9301 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9302 } else {
9303 /* ./../lib/standard//collection//array.nit:280 */
9304 REGB0 = TAG_Bool(false);
9305 REGB2 = REGB0;
9306 }
9307 if (UNTAG_Bool(REGB2)) {
9308 } else {
9309 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9310 }
9311 /* ./../lib/standard//collection//array.nit:281 */
9312 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9313 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9314 if (UNTAG_Bool(REGB2)) {
9315 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9316 }
9317 /* ./../lib/standard//collection//array.nit:718 */
9318 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9319 /* ./../lib/standard//collection//array.nit:281 */
9320 goto label187;
9321 label187: while(0);
9322 /* ./compiling//compiling_icode.nit:790 */
9323 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9324 if (!once_value_188) {
9325 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
9326 REGB1 = TAG_Int(14);
9327 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9328 once_value_188 = fra.me.REG[7];
9329 register_static_object(&once_value_188);
9330 } else fra.me.REG[7] = once_value_188;
9331 fra.me.REG[7] = fra.me.REG[7];
9332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9333 REGB1 = TAG_Int(1);
9334 /* ./../lib/standard//collection//array.nit:278 */
9335 fra.me.REG[7] = fra.me.REG[4];
9336 /* ./../lib/standard//collection//array.nit:280 */
9337 REGB2 = TAG_Int(0);
9338 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9339 if (UNTAG_Bool(REGB0)) {
9340 } else {
9341 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9342 }
9343 /* ./../lib/standard//kernel.nit:233 */
9344 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9345 /* ./../lib/standard//collection//array.nit:280 */
9346 if (UNTAG_Bool(REGB2)) {
9347 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9348 if (UNTAG_Bool(REGB2)) {
9349 } else {
9350 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9351 }
9352 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9353 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9354 if (UNTAG_Bool(REGB0)) {
9355 } else {
9356 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9357 }
9358 /* ./../lib/standard//kernel.nit:232 */
9359 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9360 } else {
9361 /* ./../lib/standard//collection//array.nit:280 */
9362 REGB0 = TAG_Bool(false);
9363 REGB2 = REGB0;
9364 }
9365 if (UNTAG_Bool(REGB2)) {
9366 } else {
9367 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9368 }
9369 /* ./../lib/standard//collection//array.nit:281 */
9370 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9371 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9372 if (UNTAG_Bool(REGB2)) {
9373 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9374 }
9375 /* ./../lib/standard//collection//array.nit:718 */
9376 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9377 /* ./../lib/standard//collection//array.nit:281 */
9378 goto label189;
9379 label189: while(0);
9380 /* ./compiling//compiling_icode.nit:790 */
9381 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9382 if (!once_value_190) {
9383 fra.me.REG[7] = BOX_NativeString("))");
9384 REGB1 = TAG_Int(2);
9385 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9386 once_value_190 = fra.me.REG[7];
9387 register_static_object(&once_value_190);
9388 } else fra.me.REG[7] = once_value_190;
9389 fra.me.REG[7] = fra.me.REG[7];
9390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9391 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9392 fra.me.REG[5] = fra.me.REG[6];
9393 } else {
9394 /* ./compiling//compiling_icode.nit:791 */
9395 if (!once_value_191) {
9396 if (!once_value_192) {
9397 fra.me.REG[6] = BOX_NativeString("<=");
9398 REGB1 = TAG_Int(2);
9399 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9400 once_value_192 = fra.me.REG[6];
9401 register_static_object(&once_value_192);
9402 } else fra.me.REG[6] = once_value_192;
9403 fra.me.REG[6] = fra.me.REG[6];
9404 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9405 once_value_191 = fra.me.REG[6];
9406 register_static_object(&once_value_191);
9407 } else fra.me.REG[6] = once_value_191;
9408 fra.me.REG[6] = fra.me.REG[6];
9409 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9410 if (UNTAG_Bool(REGB1)) {
9411 } else {
9412 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9413 REGB1 = REGB2;
9414 }
9415 if (UNTAG_Bool(REGB1)) {
9416 /* ./compiling//compiling_icode.nit:792 */
9417 REGB1 = TAG_Int(5);
9418 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9419 if (!once_value_193) {
9420 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9421 REGB1 = TAG_Int(21);
9422 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9423 once_value_193 = fra.me.REG[7];
9424 register_static_object(&once_value_193);
9425 } else fra.me.REG[7] = once_value_193;
9426 fra.me.REG[7] = fra.me.REG[7];
9427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9428 REGB1 = TAG_Int(0);
9429 /* ./../lib/standard//collection//array.nit:278 */
9430 fra.me.REG[7] = fra.me.REG[4];
9431 /* ./../lib/standard//collection//array.nit:280 */
9432 REGB2 = TAG_Int(0);
9433 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9434 if (UNTAG_Bool(REGB0)) {
9435 } else {
9436 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9437 }
9438 /* ./../lib/standard//kernel.nit:233 */
9439 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9440 /* ./../lib/standard//collection//array.nit:280 */
9441 if (UNTAG_Bool(REGB2)) {
9442 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9443 if (UNTAG_Bool(REGB2)) {
9444 } else {
9445 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9446 }
9447 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9448 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9449 if (UNTAG_Bool(REGB0)) {
9450 } else {
9451 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9452 }
9453 /* ./../lib/standard//kernel.nit:232 */
9454 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9455 } else {
9456 /* ./../lib/standard//collection//array.nit:280 */
9457 REGB0 = TAG_Bool(false);
9458 REGB2 = REGB0;
9459 }
9460 if (UNTAG_Bool(REGB2)) {
9461 } else {
9462 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9463 }
9464 /* ./../lib/standard//collection//array.nit:281 */
9465 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9466 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9467 if (UNTAG_Bool(REGB2)) {
9468 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9469 }
9470 /* ./../lib/standard//collection//array.nit:718 */
9471 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9472 /* ./../lib/standard//collection//array.nit:281 */
9473 goto label194;
9474 label194: while(0);
9475 /* ./compiling//compiling_icode.nit:792 */
9476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9477 if (!once_value_195) {
9478 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
9479 REGB1 = TAG_Int(15);
9480 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9481 once_value_195 = fra.me.REG[7];
9482 register_static_object(&once_value_195);
9483 } else fra.me.REG[7] = once_value_195;
9484 fra.me.REG[7] = fra.me.REG[7];
9485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9486 REGB1 = TAG_Int(1);
9487 /* ./../lib/standard//collection//array.nit:278 */
9488 fra.me.REG[7] = fra.me.REG[4];
9489 /* ./../lib/standard//collection//array.nit:280 */
9490 REGB2 = TAG_Int(0);
9491 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9492 if (UNTAG_Bool(REGB0)) {
9493 } else {
9494 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9495 }
9496 /* ./../lib/standard//kernel.nit:233 */
9497 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9498 /* ./../lib/standard//collection//array.nit:280 */
9499 if (UNTAG_Bool(REGB2)) {
9500 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9501 if (UNTAG_Bool(REGB2)) {
9502 } else {
9503 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9504 }
9505 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9506 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9507 if (UNTAG_Bool(REGB0)) {
9508 } else {
9509 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9510 }
9511 /* ./../lib/standard//kernel.nit:232 */
9512 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9513 } else {
9514 /* ./../lib/standard//collection//array.nit:280 */
9515 REGB0 = TAG_Bool(false);
9516 REGB2 = REGB0;
9517 }
9518 if (UNTAG_Bool(REGB2)) {
9519 } else {
9520 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9521 }
9522 /* ./../lib/standard//collection//array.nit:281 */
9523 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9524 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9525 if (UNTAG_Bool(REGB2)) {
9526 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9527 }
9528 /* ./../lib/standard//collection//array.nit:718 */
9529 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9530 /* ./../lib/standard//collection//array.nit:281 */
9531 goto label196;
9532 label196: while(0);
9533 /* ./compiling//compiling_icode.nit:792 */
9534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9535 if (!once_value_197) {
9536 fra.me.REG[7] = BOX_NativeString("))");
9537 REGB1 = TAG_Int(2);
9538 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9539 once_value_197 = fra.me.REG[7];
9540 register_static_object(&once_value_197);
9541 } else fra.me.REG[7] = once_value_197;
9542 fra.me.REG[7] = fra.me.REG[7];
9543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9544 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9545 fra.me.REG[5] = fra.me.REG[6];
9546 } else {
9547 /* ./compiling//compiling_icode.nit:793 */
9548 if (!once_value_198) {
9549 if (!once_value_199) {
9550 fra.me.REG[6] = BOX_NativeString(">=");
9551 REGB1 = TAG_Int(2);
9552 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9553 once_value_199 = fra.me.REG[6];
9554 register_static_object(&once_value_199);
9555 } else fra.me.REG[6] = once_value_199;
9556 fra.me.REG[6] = fra.me.REG[6];
9557 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9558 once_value_198 = fra.me.REG[6];
9559 register_static_object(&once_value_198);
9560 } else fra.me.REG[6] = once_value_198;
9561 fra.me.REG[6] = fra.me.REG[6];
9562 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9563 if (UNTAG_Bool(REGB1)) {
9564 } else {
9565 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9566 REGB1 = REGB2;
9567 }
9568 if (UNTAG_Bool(REGB1)) {
9569 /* ./compiling//compiling_icode.nit:794 */
9570 REGB1 = TAG_Int(5);
9571 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9572 if (!once_value_200) {
9573 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9574 REGB1 = TAG_Int(21);
9575 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9576 once_value_200 = fra.me.REG[7];
9577 register_static_object(&once_value_200);
9578 } else fra.me.REG[7] = once_value_200;
9579 fra.me.REG[7] = fra.me.REG[7];
9580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9581 REGB1 = TAG_Int(0);
9582 /* ./../lib/standard//collection//array.nit:278 */
9583 fra.me.REG[7] = fra.me.REG[4];
9584 /* ./../lib/standard//collection//array.nit:280 */
9585 REGB2 = TAG_Int(0);
9586 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9587 if (UNTAG_Bool(REGB0)) {
9588 } else {
9589 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9590 }
9591 /* ./../lib/standard//kernel.nit:233 */
9592 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9593 /* ./../lib/standard//collection//array.nit:280 */
9594 if (UNTAG_Bool(REGB2)) {
9595 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9596 if (UNTAG_Bool(REGB2)) {
9597 } else {
9598 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9599 }
9600 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9601 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9602 if (UNTAG_Bool(REGB0)) {
9603 } else {
9604 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9605 }
9606 /* ./../lib/standard//kernel.nit:232 */
9607 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9608 } else {
9609 /* ./../lib/standard//collection//array.nit:280 */
9610 REGB0 = TAG_Bool(false);
9611 REGB2 = REGB0;
9612 }
9613 if (UNTAG_Bool(REGB2)) {
9614 } else {
9615 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9616 }
9617 /* ./../lib/standard//collection//array.nit:281 */
9618 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9619 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9620 if (UNTAG_Bool(REGB2)) {
9621 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9622 }
9623 /* ./../lib/standard//collection//array.nit:718 */
9624 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9625 /* ./../lib/standard//collection//array.nit:281 */
9626 goto label201;
9627 label201: while(0);
9628 /* ./compiling//compiling_icode.nit:794 */
9629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9630 if (!once_value_202) {
9631 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
9632 REGB1 = TAG_Int(15);
9633 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9634 once_value_202 = fra.me.REG[7];
9635 register_static_object(&once_value_202);
9636 } else fra.me.REG[7] = once_value_202;
9637 fra.me.REG[7] = fra.me.REG[7];
9638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9639 REGB1 = TAG_Int(1);
9640 /* ./../lib/standard//collection//array.nit:278 */
9641 fra.me.REG[7] = fra.me.REG[4];
9642 /* ./../lib/standard//collection//array.nit:280 */
9643 REGB2 = TAG_Int(0);
9644 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9645 if (UNTAG_Bool(REGB0)) {
9646 } else {
9647 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9648 }
9649 /* ./../lib/standard//kernel.nit:233 */
9650 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9651 /* ./../lib/standard//collection//array.nit:280 */
9652 if (UNTAG_Bool(REGB2)) {
9653 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9654 if (UNTAG_Bool(REGB2)) {
9655 } else {
9656 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9657 }
9658 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9659 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9660 if (UNTAG_Bool(REGB0)) {
9661 } else {
9662 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9663 }
9664 /* ./../lib/standard//kernel.nit:232 */
9665 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9666 } else {
9667 /* ./../lib/standard//collection//array.nit:280 */
9668 REGB0 = TAG_Bool(false);
9669 REGB2 = REGB0;
9670 }
9671 if (UNTAG_Bool(REGB2)) {
9672 } else {
9673 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9674 }
9675 /* ./../lib/standard//collection//array.nit:281 */
9676 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9677 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9678 if (UNTAG_Bool(REGB2)) {
9679 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9680 }
9681 /* ./../lib/standard//collection//array.nit:718 */
9682 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9683 /* ./../lib/standard//collection//array.nit:281 */
9684 goto label203;
9685 label203: while(0);
9686 /* ./compiling//compiling_icode.nit:794 */
9687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9688 if (!once_value_204) {
9689 fra.me.REG[7] = BOX_NativeString("))");
9690 REGB1 = TAG_Int(2);
9691 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9692 once_value_204 = fra.me.REG[7];
9693 register_static_object(&once_value_204);
9694 } else fra.me.REG[7] = once_value_204;
9695 fra.me.REG[7] = fra.me.REG[7];
9696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9697 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9698 fra.me.REG[5] = fra.me.REG[6];
9699 }
9700 }
9701 }
9702 }
9703 }
9704 }
9705 }
9706 }
9707 }
9708 }
9709 }
9710 }
9711 } else {
9712 /* ./compiling//compiling_icode.nit:796 */
9713 if (!once_value_205) {
9714 if (!once_value_206) {
9715 fra.me.REG[6] = BOX_NativeString("Char");
9716 REGB1 = TAG_Int(4);
9717 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9718 once_value_206 = fra.me.REG[6];
9719 register_static_object(&once_value_206);
9720 } else fra.me.REG[6] = once_value_206;
9721 fra.me.REG[6] = fra.me.REG[6];
9722 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9723 once_value_205 = fra.me.REG[6];
9724 register_static_object(&once_value_205);
9725 } else fra.me.REG[6] = once_value_205;
9726 fra.me.REG[6] = fra.me.REG[6];
9727 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
9728 if (UNTAG_Bool(REGB1)) {
9729 } else {
9730 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
9731 REGB1 = REGB2;
9732 }
9733 if (UNTAG_Bool(REGB1)) {
9734 /* ./compiling//compiling_icode.nit:797 */
9735 if (!once_value_207) {
9736 if (!once_value_208) {
9737 fra.me.REG[6] = BOX_NativeString("object_id");
9738 REGB1 = TAG_Int(9);
9739 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9740 once_value_208 = fra.me.REG[6];
9741 register_static_object(&once_value_208);
9742 } else fra.me.REG[6] = once_value_208;
9743 fra.me.REG[6] = fra.me.REG[6];
9744 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9745 once_value_207 = fra.me.REG[6];
9746 register_static_object(&once_value_207);
9747 } else fra.me.REG[6] = once_value_207;
9748 fra.me.REG[6] = fra.me.REG[6];
9749 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9750 if (UNTAG_Bool(REGB1)) {
9751 } else {
9752 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9753 REGB1 = REGB2;
9754 }
9755 if (UNTAG_Bool(REGB1)) {
9756 /* ./compiling//compiling_icode.nit:798 */
9757 REGB1 = TAG_Int(3);
9758 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9759 if (!once_value_209) {
9760 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9761 REGB1 = TAG_Int(19);
9762 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9763 once_value_209 = fra.me.REG[7];
9764 register_static_object(&once_value_209);
9765 } else fra.me.REG[7] = once_value_209;
9766 fra.me.REG[7] = fra.me.REG[7];
9767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9768 REGB1 = TAG_Int(0);
9769 /* ./../lib/standard//collection//array.nit:278 */
9770 fra.me.REG[7] = fra.me.REG[4];
9771 /* ./../lib/standard//collection//array.nit:280 */
9772 REGB2 = TAG_Int(0);
9773 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9774 if (UNTAG_Bool(REGB0)) {
9775 } else {
9776 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9777 }
9778 /* ./../lib/standard//kernel.nit:233 */
9779 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9780 /* ./../lib/standard//collection//array.nit:280 */
9781 if (UNTAG_Bool(REGB2)) {
9782 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9783 if (UNTAG_Bool(REGB2)) {
9784 } else {
9785 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9786 }
9787 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9788 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9789 if (UNTAG_Bool(REGB0)) {
9790 } else {
9791 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9792 }
9793 /* ./../lib/standard//kernel.nit:232 */
9794 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9795 } else {
9796 /* ./../lib/standard//collection//array.nit:280 */
9797 REGB0 = TAG_Bool(false);
9798 REGB2 = REGB0;
9799 }
9800 if (UNTAG_Bool(REGB2)) {
9801 } else {
9802 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9803 }
9804 /* ./../lib/standard//collection//array.nit:281 */
9805 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9806 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9807 if (UNTAG_Bool(REGB2)) {
9808 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9809 }
9810 /* ./../lib/standard//collection//array.nit:718 */
9811 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9812 /* ./../lib/standard//collection//array.nit:281 */
9813 goto label210;
9814 label210: while(0);
9815 /* ./compiling//compiling_icode.nit:798 */
9816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9817 if (!once_value_211) {
9818 fra.me.REG[7] = BOX_NativeString("))");
9819 REGB1 = TAG_Int(2);
9820 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9821 once_value_211 = fra.me.REG[7];
9822 register_static_object(&once_value_211);
9823 } else fra.me.REG[7] = once_value_211;
9824 fra.me.REG[7] = fra.me.REG[7];
9825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9826 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9827 fra.me.REG[5] = fra.me.REG[6];
9828 } else {
9829 /* ./compiling//compiling_icode.nit:799 */
9830 if (!once_value_212) {
9831 if (!once_value_213) {
9832 fra.me.REG[6] = BOX_NativeString("unary -");
9833 REGB1 = TAG_Int(7);
9834 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9835 once_value_213 = fra.me.REG[6];
9836 register_static_object(&once_value_213);
9837 } else fra.me.REG[6] = once_value_213;
9838 fra.me.REG[6] = fra.me.REG[6];
9839 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9840 once_value_212 = fra.me.REG[6];
9841 register_static_object(&once_value_212);
9842 } else fra.me.REG[6] = once_value_212;
9843 fra.me.REG[6] = fra.me.REG[6];
9844 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9845 if (UNTAG_Bool(REGB1)) {
9846 } else {
9847 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9848 REGB1 = REGB2;
9849 }
9850 if (UNTAG_Bool(REGB1)) {
9851 /* ./compiling//compiling_icode.nit:800 */
9852 REGB1 = TAG_Int(3);
9853 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9854 if (!once_value_214) {
9855 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9856 REGB1 = TAG_Int(21);
9857 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9858 once_value_214 = fra.me.REG[7];
9859 register_static_object(&once_value_214);
9860 } else fra.me.REG[7] = once_value_214;
9861 fra.me.REG[7] = fra.me.REG[7];
9862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9863 REGB1 = TAG_Int(0);
9864 /* ./../lib/standard//collection//array.nit:278 */
9865 fra.me.REG[7] = fra.me.REG[4];
9866 /* ./../lib/standard//collection//array.nit:280 */
9867 REGB2 = TAG_Int(0);
9868 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9869 if (UNTAG_Bool(REGB0)) {
9870 } else {
9871 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9872 }
9873 /* ./../lib/standard//kernel.nit:233 */
9874 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9875 /* ./../lib/standard//collection//array.nit:280 */
9876 if (UNTAG_Bool(REGB2)) {
9877 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9878 if (UNTAG_Bool(REGB2)) {
9879 } else {
9880 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9881 }
9882 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9883 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9884 if (UNTAG_Bool(REGB0)) {
9885 } else {
9886 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9887 }
9888 /* ./../lib/standard//kernel.nit:232 */
9889 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9890 } else {
9891 /* ./../lib/standard//collection//array.nit:280 */
9892 REGB0 = TAG_Bool(false);
9893 REGB2 = REGB0;
9894 }
9895 if (UNTAG_Bool(REGB2)) {
9896 } else {
9897 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9898 }
9899 /* ./../lib/standard//collection//array.nit:281 */
9900 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9901 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9902 if (UNTAG_Bool(REGB2)) {
9903 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9904 }
9905 /* ./../lib/standard//collection//array.nit:718 */
9906 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9907 /* ./../lib/standard//collection//array.nit:281 */
9908 goto label215;
9909 label215: while(0);
9910 /* ./compiling//compiling_icode.nit:800 */
9911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9912 if (!once_value_216) {
9913 fra.me.REG[7] = BOX_NativeString("))");
9914 REGB1 = TAG_Int(2);
9915 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9916 once_value_216 = fra.me.REG[7];
9917 register_static_object(&once_value_216);
9918 } else fra.me.REG[7] = once_value_216;
9919 fra.me.REG[7] = fra.me.REG[7];
9920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9921 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9922 fra.me.REG[5] = fra.me.REG[6];
9923 } else {
9924 /* ./compiling//compiling_icode.nit:801 */
9925 if (!once_value_217) {
9926 if (!once_value_218) {
9927 fra.me.REG[6] = BOX_NativeString("output");
9928 REGB1 = TAG_Int(6);
9929 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9930 once_value_218 = fra.me.REG[6];
9931 register_static_object(&once_value_218);
9932 } else fra.me.REG[6] = once_value_218;
9933 fra.me.REG[6] = fra.me.REG[6];
9934 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9935 once_value_217 = fra.me.REG[6];
9936 register_static_object(&once_value_217);
9937 } else fra.me.REG[6] = once_value_217;
9938 fra.me.REG[6] = fra.me.REG[6];
9939 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9940 if (UNTAG_Bool(REGB1)) {
9941 } else {
9942 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9943 REGB1 = REGB2;
9944 }
9945 if (UNTAG_Bool(REGB1)) {
9946 /* ./compiling//compiling_icode.nit:802 */
9947 REGB1 = TAG_Int(3);
9948 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9949 if (!once_value_219) {
9950 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
9951 REGB1 = TAG_Int(39);
9952 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9953 once_value_219 = fra.me.REG[7];
9954 register_static_object(&once_value_219);
9955 } else fra.me.REG[7] = once_value_219;
9956 fra.me.REG[7] = fra.me.REG[7];
9957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9958 REGB1 = TAG_Int(0);
9959 /* ./../lib/standard//collection//array.nit:278 */
9960 fra.me.REG[7] = fra.me.REG[4];
9961 /* ./../lib/standard//collection//array.nit:280 */
9962 REGB2 = TAG_Int(0);
9963 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9964 if (UNTAG_Bool(REGB0)) {
9965 } else {
9966 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9967 }
9968 /* ./../lib/standard//kernel.nit:233 */
9969 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9970 /* ./../lib/standard//collection//array.nit:280 */
9971 if (UNTAG_Bool(REGB2)) {
9972 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9973 if (UNTAG_Bool(REGB2)) {
9974 } else {
9975 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9976 }
9977 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9978 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9979 if (UNTAG_Bool(REGB0)) {
9980 } else {
9981 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9982 }
9983 /* ./../lib/standard//kernel.nit:232 */
9984 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9985 } else {
9986 /* ./../lib/standard//collection//array.nit:280 */
9987 REGB0 = TAG_Bool(false);
9988 REGB2 = REGB0;
9989 }
9990 if (UNTAG_Bool(REGB2)) {
9991 } else {
9992 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9993 }
9994 /* ./../lib/standard//collection//array.nit:281 */
9995 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9996 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9997 if (UNTAG_Bool(REGB2)) {
9998 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9999 }
10000 /* ./../lib/standard//collection//array.nit:718 */
10001 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10002 /* ./../lib/standard//collection//array.nit:281 */
10003 goto label220;
10004 label220: while(0);
10005 /* ./compiling//compiling_icode.nit:802 */
10006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10007 if (!once_value_221) {
10008 fra.me.REG[7] = BOX_NativeString("));");
10009 REGB1 = TAG_Int(3);
10010 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10011 once_value_221 = fra.me.REG[7];
10012 register_static_object(&once_value_221);
10013 } else fra.me.REG[7] = once_value_221;
10014 fra.me.REG[7] = fra.me.REG[7];
10015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10016 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10017 fra.me.REG[5] = fra.me.REG[6];
10018 } else {
10019 /* ./compiling//compiling_icode.nit:803 */
10020 if (!once_value_222) {
10021 if (!once_value_223) {
10022 fra.me.REG[6] = BOX_NativeString("ascii");
10023 REGB1 = TAG_Int(5);
10024 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10025 once_value_223 = fra.me.REG[6];
10026 register_static_object(&once_value_223);
10027 } else fra.me.REG[6] = once_value_223;
10028 fra.me.REG[6] = fra.me.REG[6];
10029 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10030 once_value_222 = fra.me.REG[6];
10031 register_static_object(&once_value_222);
10032 } else fra.me.REG[6] = once_value_222;
10033 fra.me.REG[6] = fra.me.REG[6];
10034 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10035 if (UNTAG_Bool(REGB1)) {
10036 } else {
10037 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10038 REGB1 = REGB2;
10039 }
10040 if (UNTAG_Bool(REGB1)) {
10041 /* ./compiling//compiling_icode.nit:804 */
10042 REGB1 = TAG_Int(3);
10043 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10044 if (!once_value_224) {
10045 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
10046 REGB1 = TAG_Int(34);
10047 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10048 once_value_224 = fra.me.REG[7];
10049 register_static_object(&once_value_224);
10050 } else fra.me.REG[7] = once_value_224;
10051 fra.me.REG[7] = fra.me.REG[7];
10052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10053 REGB1 = TAG_Int(0);
10054 /* ./../lib/standard//collection//array.nit:278 */
10055 fra.me.REG[7] = fra.me.REG[4];
10056 /* ./../lib/standard//collection//array.nit:280 */
10057 REGB2 = TAG_Int(0);
10058 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10059 if (UNTAG_Bool(REGB0)) {
10060 } else {
10061 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10062 }
10063 /* ./../lib/standard//kernel.nit:233 */
10064 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10065 /* ./../lib/standard//collection//array.nit:280 */
10066 if (UNTAG_Bool(REGB2)) {
10067 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10068 if (UNTAG_Bool(REGB2)) {
10069 } else {
10070 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10071 }
10072 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10073 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10074 if (UNTAG_Bool(REGB0)) {
10075 } else {
10076 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10077 }
10078 /* ./../lib/standard//kernel.nit:232 */
10079 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10080 } else {
10081 /* ./../lib/standard//collection//array.nit:280 */
10082 REGB0 = TAG_Bool(false);
10083 REGB2 = REGB0;
10084 }
10085 if (UNTAG_Bool(REGB2)) {
10086 } else {
10087 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10088 }
10089 /* ./../lib/standard//collection//array.nit:281 */
10090 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10091 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10092 if (UNTAG_Bool(REGB2)) {
10093 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10094 }
10095 /* ./../lib/standard//collection//array.nit:718 */
10096 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10097 /* ./../lib/standard//collection//array.nit:281 */
10098 goto label225;
10099 label225: while(0);
10100 /* ./compiling//compiling_icode.nit:804 */
10101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10102 if (!once_value_226) {
10103 fra.me.REG[7] = BOX_NativeString("))");
10104 REGB1 = TAG_Int(2);
10105 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10106 once_value_226 = fra.me.REG[7];
10107 register_static_object(&once_value_226);
10108 } else fra.me.REG[7] = once_value_226;
10109 fra.me.REG[7] = fra.me.REG[7];
10110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10111 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10112 fra.me.REG[5] = fra.me.REG[6];
10113 } else {
10114 /* ./compiling//compiling_icode.nit:805 */
10115 if (!once_value_227) {
10116 if (!once_value_228) {
10117 fra.me.REG[6] = BOX_NativeString("succ");
10118 REGB1 = TAG_Int(4);
10119 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10120 once_value_228 = fra.me.REG[6];
10121 register_static_object(&once_value_228);
10122 } else fra.me.REG[6] = once_value_228;
10123 fra.me.REG[6] = fra.me.REG[6];
10124 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10125 once_value_227 = fra.me.REG[6];
10126 register_static_object(&once_value_227);
10127 } else fra.me.REG[6] = once_value_227;
10128 fra.me.REG[6] = fra.me.REG[6];
10129 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10130 if (UNTAG_Bool(REGB1)) {
10131 } else {
10132 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10133 REGB1 = REGB2;
10134 }
10135 if (UNTAG_Bool(REGB1)) {
10136 /* ./compiling//compiling_icode.nit:806 */
10137 REGB1 = TAG_Int(3);
10138 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10139 if (!once_value_229) {
10140 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10141 REGB1 = TAG_Int(20);
10142 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10143 once_value_229 = fra.me.REG[7];
10144 register_static_object(&once_value_229);
10145 } else fra.me.REG[7] = once_value_229;
10146 fra.me.REG[7] = fra.me.REG[7];
10147 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10148 REGB1 = TAG_Int(0);
10149 /* ./../lib/standard//collection//array.nit:278 */
10150 fra.me.REG[7] = fra.me.REG[4];
10151 /* ./../lib/standard//collection//array.nit:280 */
10152 REGB2 = TAG_Int(0);
10153 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10154 if (UNTAG_Bool(REGB0)) {
10155 } else {
10156 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10157 }
10158 /* ./../lib/standard//kernel.nit:233 */
10159 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10160 /* ./../lib/standard//collection//array.nit:280 */
10161 if (UNTAG_Bool(REGB2)) {
10162 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10163 if (UNTAG_Bool(REGB2)) {
10164 } else {
10165 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10166 }
10167 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10168 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10169 if (UNTAG_Bool(REGB0)) {
10170 } else {
10171 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10172 }
10173 /* ./../lib/standard//kernel.nit:232 */
10174 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10175 } else {
10176 /* ./../lib/standard//collection//array.nit:280 */
10177 REGB0 = TAG_Bool(false);
10178 REGB2 = REGB0;
10179 }
10180 if (UNTAG_Bool(REGB2)) {
10181 } else {
10182 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10183 }
10184 /* ./../lib/standard//collection//array.nit:281 */
10185 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10186 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10187 if (UNTAG_Bool(REGB2)) {
10188 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10189 }
10190 /* ./../lib/standard//collection//array.nit:718 */
10191 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10192 /* ./../lib/standard//collection//array.nit:281 */
10193 goto label230;
10194 label230: while(0);
10195 /* ./compiling//compiling_icode.nit:806 */
10196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10197 if (!once_value_231) {
10198 fra.me.REG[7] = BOX_NativeString(")+1)");
10199 REGB1 = TAG_Int(4);
10200 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10201 once_value_231 = fra.me.REG[7];
10202 register_static_object(&once_value_231);
10203 } else fra.me.REG[7] = once_value_231;
10204 fra.me.REG[7] = fra.me.REG[7];
10205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10206 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10207 fra.me.REG[5] = fra.me.REG[6];
10208 } else {
10209 /* ./compiling//compiling_icode.nit:807 */
10210 if (!once_value_232) {
10211 if (!once_value_233) {
10212 fra.me.REG[6] = BOX_NativeString("prec");
10213 REGB1 = TAG_Int(4);
10214 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10215 once_value_233 = fra.me.REG[6];
10216 register_static_object(&once_value_233);
10217 } else fra.me.REG[6] = once_value_233;
10218 fra.me.REG[6] = fra.me.REG[6];
10219 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10220 once_value_232 = fra.me.REG[6];
10221 register_static_object(&once_value_232);
10222 } else fra.me.REG[6] = once_value_232;
10223 fra.me.REG[6] = fra.me.REG[6];
10224 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10225 if (UNTAG_Bool(REGB1)) {
10226 } else {
10227 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10228 REGB1 = REGB2;
10229 }
10230 if (UNTAG_Bool(REGB1)) {
10231 /* ./compiling//compiling_icode.nit:808 */
10232 REGB1 = TAG_Int(3);
10233 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10234 if (!once_value_234) {
10235 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10236 REGB1 = TAG_Int(20);
10237 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10238 once_value_234 = fra.me.REG[7];
10239 register_static_object(&once_value_234);
10240 } else fra.me.REG[7] = once_value_234;
10241 fra.me.REG[7] = fra.me.REG[7];
10242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10243 REGB1 = TAG_Int(0);
10244 /* ./../lib/standard//collection//array.nit:278 */
10245 fra.me.REG[7] = fra.me.REG[4];
10246 /* ./../lib/standard//collection//array.nit:280 */
10247 REGB2 = TAG_Int(0);
10248 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10249 if (UNTAG_Bool(REGB0)) {
10250 } else {
10251 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10252 }
10253 /* ./../lib/standard//kernel.nit:233 */
10254 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10255 /* ./../lib/standard//collection//array.nit:280 */
10256 if (UNTAG_Bool(REGB2)) {
10257 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10258 if (UNTAG_Bool(REGB2)) {
10259 } else {
10260 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10261 }
10262 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10263 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10264 if (UNTAG_Bool(REGB0)) {
10265 } else {
10266 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10267 }
10268 /* ./../lib/standard//kernel.nit:232 */
10269 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10270 } else {
10271 /* ./../lib/standard//collection//array.nit:280 */
10272 REGB0 = TAG_Bool(false);
10273 REGB2 = REGB0;
10274 }
10275 if (UNTAG_Bool(REGB2)) {
10276 } else {
10277 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10278 }
10279 /* ./../lib/standard//collection//array.nit:281 */
10280 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10281 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10282 if (UNTAG_Bool(REGB2)) {
10283 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10284 }
10285 /* ./../lib/standard//collection//array.nit:718 */
10286 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10287 /* ./../lib/standard//collection//array.nit:281 */
10288 goto label235;
10289 label235: while(0);
10290 /* ./compiling//compiling_icode.nit:808 */
10291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10292 if (!once_value_236) {
10293 fra.me.REG[7] = BOX_NativeString(")-1)");
10294 REGB1 = TAG_Int(4);
10295 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10296 once_value_236 = fra.me.REG[7];
10297 register_static_object(&once_value_236);
10298 } else fra.me.REG[7] = once_value_236;
10299 fra.me.REG[7] = fra.me.REG[7];
10300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10301 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10302 fra.me.REG[5] = fra.me.REG[6];
10303 } else {
10304 /* ./compiling//compiling_icode.nit:809 */
10305 if (!once_value_237) {
10306 if (!once_value_238) {
10307 fra.me.REG[6] = BOX_NativeString("to_i");
10308 REGB1 = TAG_Int(4);
10309 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10310 once_value_238 = fra.me.REG[6];
10311 register_static_object(&once_value_238);
10312 } else fra.me.REG[6] = once_value_238;
10313 fra.me.REG[6] = fra.me.REG[6];
10314 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10315 once_value_237 = fra.me.REG[6];
10316 register_static_object(&once_value_237);
10317 } else fra.me.REG[6] = once_value_237;
10318 fra.me.REG[6] = fra.me.REG[6];
10319 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10320 if (UNTAG_Bool(REGB1)) {
10321 } else {
10322 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10323 REGB1 = REGB2;
10324 }
10325 if (UNTAG_Bool(REGB1)) {
10326 /* ./compiling//compiling_icode.nit:810 */
10327 REGB1 = TAG_Int(3);
10328 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10329 if (!once_value_239) {
10330 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
10331 REGB1 = TAG_Int(19);
10332 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10333 once_value_239 = fra.me.REG[7];
10334 register_static_object(&once_value_239);
10335 } else fra.me.REG[7] = once_value_239;
10336 fra.me.REG[7] = fra.me.REG[7];
10337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10338 REGB1 = TAG_Int(0);
10339 /* ./../lib/standard//collection//array.nit:278 */
10340 fra.me.REG[7] = fra.me.REG[4];
10341 /* ./../lib/standard//collection//array.nit:280 */
10342 REGB2 = TAG_Int(0);
10343 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10344 if (UNTAG_Bool(REGB0)) {
10345 } else {
10346 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10347 }
10348 /* ./../lib/standard//kernel.nit:233 */
10349 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10350 /* ./../lib/standard//collection//array.nit:280 */
10351 if (UNTAG_Bool(REGB2)) {
10352 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10353 if (UNTAG_Bool(REGB2)) {
10354 } else {
10355 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10356 }
10357 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10358 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10359 if (UNTAG_Bool(REGB0)) {
10360 } else {
10361 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10362 }
10363 /* ./../lib/standard//kernel.nit:232 */
10364 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10365 } else {
10366 /* ./../lib/standard//collection//array.nit:280 */
10367 REGB0 = TAG_Bool(false);
10368 REGB2 = REGB0;
10369 }
10370 if (UNTAG_Bool(REGB2)) {
10371 } else {
10372 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10373 }
10374 /* ./../lib/standard//collection//array.nit:281 */
10375 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10376 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10377 if (UNTAG_Bool(REGB2)) {
10378 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10379 }
10380 /* ./../lib/standard//collection//array.nit:718 */
10381 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10382 /* ./../lib/standard//collection//array.nit:281 */
10383 goto label240;
10384 label240: while(0);
10385 /* ./compiling//compiling_icode.nit:810 */
10386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10387 if (!once_value_241) {
10388 fra.me.REG[7] = BOX_NativeString(")-'0')");
10389 REGB1 = TAG_Int(6);
10390 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10391 once_value_241 = fra.me.REG[7];
10392 register_static_object(&once_value_241);
10393 } else fra.me.REG[7] = once_value_241;
10394 fra.me.REG[7] = fra.me.REG[7];
10395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10396 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10397 fra.me.REG[5] = fra.me.REG[6];
10398 } else {
10399 /* ./compiling//compiling_icode.nit:811 */
10400 if (!once_value_242) {
10401 if (!once_value_243) {
10402 fra.me.REG[6] = BOX_NativeString("+");
10403 REGB1 = TAG_Int(1);
10404 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10405 once_value_243 = fra.me.REG[6];
10406 register_static_object(&once_value_243);
10407 } else fra.me.REG[6] = once_value_243;
10408 fra.me.REG[6] = fra.me.REG[6];
10409 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10410 once_value_242 = fra.me.REG[6];
10411 register_static_object(&once_value_242);
10412 } else fra.me.REG[6] = once_value_242;
10413 fra.me.REG[6] = fra.me.REG[6];
10414 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10415 if (UNTAG_Bool(REGB1)) {
10416 } else {
10417 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10418 REGB1 = REGB2;
10419 }
10420 if (UNTAG_Bool(REGB1)) {
10421 /* ./compiling//compiling_icode.nit:812 */
10422 REGB1 = TAG_Int(5);
10423 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10424 if (!once_value_244) {
10425 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10426 REGB1 = TAG_Int(20);
10427 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10428 once_value_244 = fra.me.REG[7];
10429 register_static_object(&once_value_244);
10430 } else fra.me.REG[7] = once_value_244;
10431 fra.me.REG[7] = fra.me.REG[7];
10432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10433 REGB1 = TAG_Int(0);
10434 /* ./../lib/standard//collection//array.nit:278 */
10435 fra.me.REG[7] = fra.me.REG[4];
10436 /* ./../lib/standard//collection//array.nit:280 */
10437 REGB2 = TAG_Int(0);
10438 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10439 if (UNTAG_Bool(REGB0)) {
10440 } else {
10441 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10442 }
10443 /* ./../lib/standard//kernel.nit:233 */
10444 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10445 /* ./../lib/standard//collection//array.nit:280 */
10446 if (UNTAG_Bool(REGB2)) {
10447 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10448 if (UNTAG_Bool(REGB2)) {
10449 } else {
10450 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10451 }
10452 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10453 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10454 if (UNTAG_Bool(REGB0)) {
10455 } else {
10456 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10457 }
10458 /* ./../lib/standard//kernel.nit:232 */
10459 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10460 } else {
10461 /* ./../lib/standard//collection//array.nit:280 */
10462 REGB0 = TAG_Bool(false);
10463 REGB2 = REGB0;
10464 }
10465 if (UNTAG_Bool(REGB2)) {
10466 } else {
10467 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10468 }
10469 /* ./../lib/standard//collection//array.nit:281 */
10470 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10471 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10472 if (UNTAG_Bool(REGB2)) {
10473 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10474 }
10475 /* ./../lib/standard//collection//array.nit:718 */
10476 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10477 /* ./../lib/standard//collection//array.nit:281 */
10478 goto label245;
10479 label245: while(0);
10480 /* ./compiling//compiling_icode.nit:812 */
10481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10482 if (!once_value_246) {
10483 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
10484 REGB1 = TAG_Int(13);
10485 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10486 once_value_246 = fra.me.REG[7];
10487 register_static_object(&once_value_246);
10488 } else fra.me.REG[7] = once_value_246;
10489 fra.me.REG[7] = fra.me.REG[7];
10490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10491 REGB1 = TAG_Int(1);
10492 /* ./../lib/standard//collection//array.nit:278 */
10493 fra.me.REG[7] = fra.me.REG[4];
10494 /* ./../lib/standard//collection//array.nit:280 */
10495 REGB2 = TAG_Int(0);
10496 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10497 if (UNTAG_Bool(REGB0)) {
10498 } else {
10499 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10500 }
10501 /* ./../lib/standard//kernel.nit:233 */
10502 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10503 /* ./../lib/standard//collection//array.nit:280 */
10504 if (UNTAG_Bool(REGB2)) {
10505 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10506 if (UNTAG_Bool(REGB2)) {
10507 } else {
10508 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10509 }
10510 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10511 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10512 if (UNTAG_Bool(REGB0)) {
10513 } else {
10514 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10515 }
10516 /* ./../lib/standard//kernel.nit:232 */
10517 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10518 } else {
10519 /* ./../lib/standard//collection//array.nit:280 */
10520 REGB0 = TAG_Bool(false);
10521 REGB2 = REGB0;
10522 }
10523 if (UNTAG_Bool(REGB2)) {
10524 } else {
10525 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10526 }
10527 /* ./../lib/standard//collection//array.nit:281 */
10528 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10529 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10530 if (UNTAG_Bool(REGB2)) {
10531 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10532 }
10533 /* ./../lib/standard//collection//array.nit:718 */
10534 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10535 /* ./../lib/standard//collection//array.nit:281 */
10536 goto label247;
10537 label247: while(0);
10538 /* ./compiling//compiling_icode.nit:812 */
10539 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10540 if (!once_value_248) {
10541 fra.me.REG[7] = BOX_NativeString("))");
10542 REGB1 = TAG_Int(2);
10543 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10544 once_value_248 = fra.me.REG[7];
10545 register_static_object(&once_value_248);
10546 } else fra.me.REG[7] = once_value_248;
10547 fra.me.REG[7] = fra.me.REG[7];
10548 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10549 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10550 fra.me.REG[5] = fra.me.REG[6];
10551 } else {
10552 /* ./compiling//compiling_icode.nit:813 */
10553 if (!once_value_249) {
10554 if (!once_value_250) {
10555 fra.me.REG[6] = BOX_NativeString("-");
10556 REGB1 = TAG_Int(1);
10557 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10558 once_value_250 = fra.me.REG[6];
10559 register_static_object(&once_value_250);
10560 } else fra.me.REG[6] = once_value_250;
10561 fra.me.REG[6] = fra.me.REG[6];
10562 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10563 once_value_249 = fra.me.REG[6];
10564 register_static_object(&once_value_249);
10565 } else fra.me.REG[6] = once_value_249;
10566 fra.me.REG[6] = fra.me.REG[6];
10567 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10568 if (UNTAG_Bool(REGB1)) {
10569 } else {
10570 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10571 REGB1 = REGB2;
10572 }
10573 if (UNTAG_Bool(REGB1)) {
10574 /* ./compiling//compiling_icode.nit:814 */
10575 REGB1 = TAG_Int(5);
10576 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10577 if (!once_value_251) {
10578 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10579 REGB1 = TAG_Int(20);
10580 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10581 once_value_251 = fra.me.REG[7];
10582 register_static_object(&once_value_251);
10583 } else fra.me.REG[7] = once_value_251;
10584 fra.me.REG[7] = fra.me.REG[7];
10585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10586 REGB1 = TAG_Int(0);
10587 /* ./../lib/standard//collection//array.nit:278 */
10588 fra.me.REG[7] = fra.me.REG[4];
10589 /* ./../lib/standard//collection//array.nit:280 */
10590 REGB2 = TAG_Int(0);
10591 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10592 if (UNTAG_Bool(REGB0)) {
10593 } else {
10594 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10595 }
10596 /* ./../lib/standard//kernel.nit:233 */
10597 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10598 /* ./../lib/standard//collection//array.nit:280 */
10599 if (UNTAG_Bool(REGB2)) {
10600 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10601 if (UNTAG_Bool(REGB2)) {
10602 } else {
10603 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10604 }
10605 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10606 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10607 if (UNTAG_Bool(REGB0)) {
10608 } else {
10609 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10610 }
10611 /* ./../lib/standard//kernel.nit:232 */
10612 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10613 } else {
10614 /* ./../lib/standard//collection//array.nit:280 */
10615 REGB0 = TAG_Bool(false);
10616 REGB2 = REGB0;
10617 }
10618 if (UNTAG_Bool(REGB2)) {
10619 } else {
10620 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10621 }
10622 /* ./../lib/standard//collection//array.nit:281 */
10623 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10624 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10625 if (UNTAG_Bool(REGB2)) {
10626 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10627 }
10628 /* ./../lib/standard//collection//array.nit:718 */
10629 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10630 /* ./../lib/standard//collection//array.nit:281 */
10631 goto label252;
10632 label252: while(0);
10633 /* ./compiling//compiling_icode.nit:814 */
10634 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10635 if (!once_value_253) {
10636 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
10637 REGB1 = TAG_Int(13);
10638 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10639 once_value_253 = fra.me.REG[7];
10640 register_static_object(&once_value_253);
10641 } else fra.me.REG[7] = once_value_253;
10642 fra.me.REG[7] = fra.me.REG[7];
10643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10644 REGB1 = TAG_Int(1);
10645 /* ./../lib/standard//collection//array.nit:278 */
10646 fra.me.REG[7] = fra.me.REG[4];
10647 /* ./../lib/standard//collection//array.nit:280 */
10648 REGB2 = TAG_Int(0);
10649 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10650 if (UNTAG_Bool(REGB0)) {
10651 } else {
10652 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10653 }
10654 /* ./../lib/standard//kernel.nit:233 */
10655 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10656 /* ./../lib/standard//collection//array.nit:280 */
10657 if (UNTAG_Bool(REGB2)) {
10658 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10659 if (UNTAG_Bool(REGB2)) {
10660 } else {
10661 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10662 }
10663 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10664 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10665 if (UNTAG_Bool(REGB0)) {
10666 } else {
10667 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10668 }
10669 /* ./../lib/standard//kernel.nit:232 */
10670 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10671 } else {
10672 /* ./../lib/standard//collection//array.nit:280 */
10673 REGB0 = TAG_Bool(false);
10674 REGB2 = REGB0;
10675 }
10676 if (UNTAG_Bool(REGB2)) {
10677 } else {
10678 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10679 }
10680 /* ./../lib/standard//collection//array.nit:281 */
10681 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10682 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10683 if (UNTAG_Bool(REGB2)) {
10684 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10685 }
10686 /* ./../lib/standard//collection//array.nit:718 */
10687 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10688 /* ./../lib/standard//collection//array.nit:281 */
10689 goto label254;
10690 label254: while(0);
10691 /* ./compiling//compiling_icode.nit:814 */
10692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10693 if (!once_value_255) {
10694 fra.me.REG[7] = BOX_NativeString("))");
10695 REGB1 = TAG_Int(2);
10696 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10697 once_value_255 = fra.me.REG[7];
10698 register_static_object(&once_value_255);
10699 } else fra.me.REG[7] = once_value_255;
10700 fra.me.REG[7] = fra.me.REG[7];
10701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10702 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10703 fra.me.REG[5] = fra.me.REG[6];
10704 } else {
10705 /* ./compiling//compiling_icode.nit:815 */
10706 if (!once_value_256) {
10707 if (!once_value_257) {
10708 fra.me.REG[6] = BOX_NativeString("*");
10709 REGB1 = TAG_Int(1);
10710 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10711 once_value_257 = fra.me.REG[6];
10712 register_static_object(&once_value_257);
10713 } else fra.me.REG[6] = once_value_257;
10714 fra.me.REG[6] = fra.me.REG[6];
10715 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10716 once_value_256 = fra.me.REG[6];
10717 register_static_object(&once_value_256);
10718 } else fra.me.REG[6] = once_value_256;
10719 fra.me.REG[6] = fra.me.REG[6];
10720 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10721 if (UNTAG_Bool(REGB1)) {
10722 } else {
10723 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10724 REGB1 = REGB2;
10725 }
10726 if (UNTAG_Bool(REGB1)) {
10727 /* ./compiling//compiling_icode.nit:816 */
10728 REGB1 = TAG_Int(5);
10729 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10730 if (!once_value_258) {
10731 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10732 REGB1 = TAG_Int(20);
10733 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10734 once_value_258 = fra.me.REG[7];
10735 register_static_object(&once_value_258);
10736 } else fra.me.REG[7] = once_value_258;
10737 fra.me.REG[7] = fra.me.REG[7];
10738 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10739 REGB1 = TAG_Int(0);
10740 /* ./../lib/standard//collection//array.nit:278 */
10741 fra.me.REG[7] = fra.me.REG[4];
10742 /* ./../lib/standard//collection//array.nit:280 */
10743 REGB2 = TAG_Int(0);
10744 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10745 if (UNTAG_Bool(REGB0)) {
10746 } else {
10747 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10748 }
10749 /* ./../lib/standard//kernel.nit:233 */
10750 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10751 /* ./../lib/standard//collection//array.nit:280 */
10752 if (UNTAG_Bool(REGB2)) {
10753 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10754 if (UNTAG_Bool(REGB2)) {
10755 } else {
10756 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10757 }
10758 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10759 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10760 if (UNTAG_Bool(REGB0)) {
10761 } else {
10762 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10763 }
10764 /* ./../lib/standard//kernel.nit:232 */
10765 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10766 } else {
10767 /* ./../lib/standard//collection//array.nit:280 */
10768 REGB0 = TAG_Bool(false);
10769 REGB2 = REGB0;
10770 }
10771 if (UNTAG_Bool(REGB2)) {
10772 } else {
10773 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10774 }
10775 /* ./../lib/standard//collection//array.nit:281 */
10776 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10777 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10778 if (UNTAG_Bool(REGB2)) {
10779 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10780 }
10781 /* ./../lib/standard//collection//array.nit:718 */
10782 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10783 /* ./../lib/standard//collection//array.nit:281 */
10784 goto label259;
10785 label259: while(0);
10786 /* ./compiling//compiling_icode.nit:816 */
10787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10788 if (!once_value_260) {
10789 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
10790 REGB1 = TAG_Int(13);
10791 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10792 once_value_260 = fra.me.REG[7];
10793 register_static_object(&once_value_260);
10794 } else fra.me.REG[7] = once_value_260;
10795 fra.me.REG[7] = fra.me.REG[7];
10796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10797 REGB1 = TAG_Int(1);
10798 /* ./../lib/standard//collection//array.nit:278 */
10799 fra.me.REG[7] = fra.me.REG[4];
10800 /* ./../lib/standard//collection//array.nit:280 */
10801 REGB2 = TAG_Int(0);
10802 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10803 if (UNTAG_Bool(REGB0)) {
10804 } else {
10805 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10806 }
10807 /* ./../lib/standard//kernel.nit:233 */
10808 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10809 /* ./../lib/standard//collection//array.nit:280 */
10810 if (UNTAG_Bool(REGB2)) {
10811 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10812 if (UNTAG_Bool(REGB2)) {
10813 } else {
10814 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10815 }
10816 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10817 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10818 if (UNTAG_Bool(REGB0)) {
10819 } else {
10820 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10821 }
10822 /* ./../lib/standard//kernel.nit:232 */
10823 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10824 } else {
10825 /* ./../lib/standard//collection//array.nit:280 */
10826 REGB0 = TAG_Bool(false);
10827 REGB2 = REGB0;
10828 }
10829 if (UNTAG_Bool(REGB2)) {
10830 } else {
10831 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10832 }
10833 /* ./../lib/standard//collection//array.nit:281 */
10834 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10835 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10836 if (UNTAG_Bool(REGB2)) {
10837 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10838 }
10839 /* ./../lib/standard//collection//array.nit:718 */
10840 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10841 /* ./../lib/standard//collection//array.nit:281 */
10842 goto label261;
10843 label261: while(0);
10844 /* ./compiling//compiling_icode.nit:816 */
10845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10846 if (!once_value_262) {
10847 fra.me.REG[7] = BOX_NativeString("))");
10848 REGB1 = TAG_Int(2);
10849 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10850 once_value_262 = fra.me.REG[7];
10851 register_static_object(&once_value_262);
10852 } else fra.me.REG[7] = once_value_262;
10853 fra.me.REG[7] = fra.me.REG[7];
10854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10855 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10856 fra.me.REG[5] = fra.me.REG[6];
10857 } else {
10858 /* ./compiling//compiling_icode.nit:817 */
10859 if (!once_value_263) {
10860 if (!once_value_264) {
10861 fra.me.REG[6] = BOX_NativeString("/");
10862 REGB1 = TAG_Int(1);
10863 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10864 once_value_264 = fra.me.REG[6];
10865 register_static_object(&once_value_264);
10866 } else fra.me.REG[6] = once_value_264;
10867 fra.me.REG[6] = fra.me.REG[6];
10868 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10869 once_value_263 = fra.me.REG[6];
10870 register_static_object(&once_value_263);
10871 } else fra.me.REG[6] = once_value_263;
10872 fra.me.REG[6] = fra.me.REG[6];
10873 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10874 if (UNTAG_Bool(REGB1)) {
10875 } else {
10876 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10877 REGB1 = REGB2;
10878 }
10879 if (UNTAG_Bool(REGB1)) {
10880 /* ./compiling//compiling_icode.nit:818 */
10881 REGB1 = TAG_Int(5);
10882 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10883 if (!once_value_265) {
10884 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10885 REGB1 = TAG_Int(20);
10886 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10887 once_value_265 = fra.me.REG[7];
10888 register_static_object(&once_value_265);
10889 } else fra.me.REG[7] = once_value_265;
10890 fra.me.REG[7] = fra.me.REG[7];
10891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10892 REGB1 = TAG_Int(0);
10893 /* ./../lib/standard//collection//array.nit:278 */
10894 fra.me.REG[7] = fra.me.REG[4];
10895 /* ./../lib/standard//collection//array.nit:280 */
10896 REGB2 = TAG_Int(0);
10897 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10898 if (UNTAG_Bool(REGB0)) {
10899 } else {
10900 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10901 }
10902 /* ./../lib/standard//kernel.nit:233 */
10903 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10904 /* ./../lib/standard//collection//array.nit:280 */
10905 if (UNTAG_Bool(REGB2)) {
10906 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10907 if (UNTAG_Bool(REGB2)) {
10908 } else {
10909 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10910 }
10911 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10912 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10913 if (UNTAG_Bool(REGB0)) {
10914 } else {
10915 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10916 }
10917 /* ./../lib/standard//kernel.nit:232 */
10918 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10919 } else {
10920 /* ./../lib/standard//collection//array.nit:280 */
10921 REGB0 = TAG_Bool(false);
10922 REGB2 = REGB0;
10923 }
10924 if (UNTAG_Bool(REGB2)) {
10925 } else {
10926 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10927 }
10928 /* ./../lib/standard//collection//array.nit:281 */
10929 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10930 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10931 if (UNTAG_Bool(REGB2)) {
10932 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10933 }
10934 /* ./../lib/standard//collection//array.nit:718 */
10935 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10936 /* ./../lib/standard//collection//array.nit:281 */
10937 goto label266;
10938 label266: while(0);
10939 /* ./compiling//compiling_icode.nit:818 */
10940 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10941 if (!once_value_267) {
10942 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
10943 REGB1 = TAG_Int(13);
10944 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10945 once_value_267 = fra.me.REG[7];
10946 register_static_object(&once_value_267);
10947 } else fra.me.REG[7] = once_value_267;
10948 fra.me.REG[7] = fra.me.REG[7];
10949 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10950 REGB1 = TAG_Int(1);
10951 /* ./../lib/standard//collection//array.nit:278 */
10952 fra.me.REG[7] = fra.me.REG[4];
10953 /* ./../lib/standard//collection//array.nit:280 */
10954 REGB2 = TAG_Int(0);
10955 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10956 if (UNTAG_Bool(REGB0)) {
10957 } else {
10958 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10959 }
10960 /* ./../lib/standard//kernel.nit:233 */
10961 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10962 /* ./../lib/standard//collection//array.nit:280 */
10963 if (UNTAG_Bool(REGB2)) {
10964 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10965 if (UNTAG_Bool(REGB2)) {
10966 } else {
10967 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10968 }
10969 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10970 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10971 if (UNTAG_Bool(REGB0)) {
10972 } else {
10973 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10974 }
10975 /* ./../lib/standard//kernel.nit:232 */
10976 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10977 } else {
10978 /* ./../lib/standard//collection//array.nit:280 */
10979 REGB0 = TAG_Bool(false);
10980 REGB2 = REGB0;
10981 }
10982 if (UNTAG_Bool(REGB2)) {
10983 } else {
10984 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10985 }
10986 /* ./../lib/standard//collection//array.nit:281 */
10987 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10988 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10989 if (UNTAG_Bool(REGB2)) {
10990 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10991 }
10992 /* ./../lib/standard//collection//array.nit:718 */
10993 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10994 /* ./../lib/standard//collection//array.nit:281 */
10995 goto label268;
10996 label268: while(0);
10997 /* ./compiling//compiling_icode.nit:818 */
10998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10999 if (!once_value_269) {
11000 fra.me.REG[7] = BOX_NativeString("))");
11001 REGB1 = TAG_Int(2);
11002 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11003 once_value_269 = fra.me.REG[7];
11004 register_static_object(&once_value_269);
11005 } else fra.me.REG[7] = once_value_269;
11006 fra.me.REG[7] = fra.me.REG[7];
11007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11008 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11009 fra.me.REG[5] = fra.me.REG[6];
11010 } else {
11011 /* ./compiling//compiling_icode.nit:819 */
11012 if (!once_value_270) {
11013 if (!once_value_271) {
11014 fra.me.REG[6] = BOX_NativeString("%");
11015 REGB1 = TAG_Int(1);
11016 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11017 once_value_271 = fra.me.REG[6];
11018 register_static_object(&once_value_271);
11019 } else fra.me.REG[6] = once_value_271;
11020 fra.me.REG[6] = fra.me.REG[6];
11021 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11022 once_value_270 = fra.me.REG[6];
11023 register_static_object(&once_value_270);
11024 } else fra.me.REG[6] = once_value_270;
11025 fra.me.REG[6] = fra.me.REG[6];
11026 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11027 if (UNTAG_Bool(REGB1)) {
11028 } else {
11029 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11030 REGB1 = REGB2;
11031 }
11032 if (UNTAG_Bool(REGB1)) {
11033 /* ./compiling//compiling_icode.nit:820 */
11034 REGB1 = TAG_Int(5);
11035 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11036 if (!once_value_272) {
11037 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
11038 REGB1 = TAG_Int(20);
11039 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11040 once_value_272 = fra.me.REG[7];
11041 register_static_object(&once_value_272);
11042 } else fra.me.REG[7] = once_value_272;
11043 fra.me.REG[7] = fra.me.REG[7];
11044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11045 REGB1 = TAG_Int(0);
11046 /* ./../lib/standard//collection//array.nit:278 */
11047 fra.me.REG[7] = fra.me.REG[4];
11048 /* ./../lib/standard//collection//array.nit:280 */
11049 REGB2 = TAG_Int(0);
11050 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11051 if (UNTAG_Bool(REGB0)) {
11052 } else {
11053 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11054 }
11055 /* ./../lib/standard//kernel.nit:233 */
11056 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11057 /* ./../lib/standard//collection//array.nit:280 */
11058 if (UNTAG_Bool(REGB2)) {
11059 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11060 if (UNTAG_Bool(REGB2)) {
11061 } else {
11062 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11063 }
11064 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11065 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11066 if (UNTAG_Bool(REGB0)) {
11067 } else {
11068 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11069 }
11070 /* ./../lib/standard//kernel.nit:232 */
11071 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11072 } else {
11073 /* ./../lib/standard//collection//array.nit:280 */
11074 REGB0 = TAG_Bool(false);
11075 REGB2 = REGB0;
11076 }
11077 if (UNTAG_Bool(REGB2)) {
11078 } else {
11079 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11080 }
11081 /* ./../lib/standard//collection//array.nit:281 */
11082 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11083 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11084 if (UNTAG_Bool(REGB2)) {
11085 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11086 }
11087 /* ./../lib/standard//collection//array.nit:718 */
11088 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11089 /* ./../lib/standard//collection//array.nit:281 */
11090 goto label273;
11091 label273: while(0);
11092 /* ./compiling//compiling_icode.nit:820 */
11093 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11094 if (!once_value_274) {
11095 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
11096 REGB1 = TAG_Int(13);
11097 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11098 once_value_274 = fra.me.REG[7];
11099 register_static_object(&once_value_274);
11100 } else fra.me.REG[7] = once_value_274;
11101 fra.me.REG[7] = fra.me.REG[7];
11102 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11103 REGB1 = TAG_Int(1);
11104 /* ./../lib/standard//collection//array.nit:278 */
11105 fra.me.REG[7] = fra.me.REG[4];
11106 /* ./../lib/standard//collection//array.nit:280 */
11107 REGB2 = TAG_Int(0);
11108 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11109 if (UNTAG_Bool(REGB0)) {
11110 } else {
11111 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11112 }
11113 /* ./../lib/standard//kernel.nit:233 */
11114 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11115 /* ./../lib/standard//collection//array.nit:280 */
11116 if (UNTAG_Bool(REGB2)) {
11117 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11118 if (UNTAG_Bool(REGB2)) {
11119 } else {
11120 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11121 }
11122 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11123 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11124 if (UNTAG_Bool(REGB0)) {
11125 } else {
11126 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11127 }
11128 /* ./../lib/standard//kernel.nit:232 */
11129 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11130 } else {
11131 /* ./../lib/standard//collection//array.nit:280 */
11132 REGB0 = TAG_Bool(false);
11133 REGB2 = REGB0;
11134 }
11135 if (UNTAG_Bool(REGB2)) {
11136 } else {
11137 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11138 }
11139 /* ./../lib/standard//collection//array.nit:281 */
11140 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11141 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11142 if (UNTAG_Bool(REGB2)) {
11143 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11144 }
11145 /* ./../lib/standard//collection//array.nit:718 */
11146 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11147 /* ./../lib/standard//collection//array.nit:281 */
11148 goto label275;
11149 label275: while(0);
11150 /* ./compiling//compiling_icode.nit:820 */
11151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11152 if (!once_value_276) {
11153 fra.me.REG[7] = BOX_NativeString("))");
11154 REGB1 = TAG_Int(2);
11155 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11156 once_value_276 = fra.me.REG[7];
11157 register_static_object(&once_value_276);
11158 } else fra.me.REG[7] = once_value_276;
11159 fra.me.REG[7] = fra.me.REG[7];
11160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11161 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11162 fra.me.REG[5] = fra.me.REG[6];
11163 } else {
11164 /* ./compiling//compiling_icode.nit:821 */
11165 if (!once_value_277) {
11166 if (!once_value_278) {
11167 fra.me.REG[6] = BOX_NativeString("<");
11168 REGB1 = TAG_Int(1);
11169 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11170 once_value_278 = fra.me.REG[6];
11171 register_static_object(&once_value_278);
11172 } else fra.me.REG[6] = once_value_278;
11173 fra.me.REG[6] = fra.me.REG[6];
11174 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11175 once_value_277 = fra.me.REG[6];
11176 register_static_object(&once_value_277);
11177 } else fra.me.REG[6] = once_value_277;
11178 fra.me.REG[6] = fra.me.REG[6];
11179 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11180 if (UNTAG_Bool(REGB1)) {
11181 } else {
11182 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11183 REGB1 = REGB2;
11184 }
11185 if (UNTAG_Bool(REGB1)) {
11186 /* ./compiling//compiling_icode.nit:822 */
11187 REGB1 = TAG_Int(5);
11188 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11189 if (!once_value_279) {
11190 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11191 REGB1 = TAG_Int(20);
11192 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11193 once_value_279 = fra.me.REG[7];
11194 register_static_object(&once_value_279);
11195 } else fra.me.REG[7] = once_value_279;
11196 fra.me.REG[7] = fra.me.REG[7];
11197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11198 REGB1 = TAG_Int(0);
11199 /* ./../lib/standard//collection//array.nit:278 */
11200 fra.me.REG[7] = fra.me.REG[4];
11201 /* ./../lib/standard//collection//array.nit:280 */
11202 REGB2 = TAG_Int(0);
11203 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11204 if (UNTAG_Bool(REGB0)) {
11205 } else {
11206 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11207 }
11208 /* ./../lib/standard//kernel.nit:233 */
11209 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11210 /* ./../lib/standard//collection//array.nit:280 */
11211 if (UNTAG_Bool(REGB2)) {
11212 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11213 if (UNTAG_Bool(REGB2)) {
11214 } else {
11215 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11216 }
11217 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11218 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11219 if (UNTAG_Bool(REGB0)) {
11220 } else {
11221 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11222 }
11223 /* ./../lib/standard//kernel.nit:232 */
11224 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11225 } else {
11226 /* ./../lib/standard//collection//array.nit:280 */
11227 REGB0 = TAG_Bool(false);
11228 REGB2 = REGB0;
11229 }
11230 if (UNTAG_Bool(REGB2)) {
11231 } else {
11232 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11233 }
11234 /* ./../lib/standard//collection//array.nit:281 */
11235 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11236 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11237 if (UNTAG_Bool(REGB2)) {
11238 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11239 }
11240 /* ./../lib/standard//collection//array.nit:718 */
11241 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11242 /* ./../lib/standard//collection//array.nit:281 */
11243 goto label280;
11244 label280: while(0);
11245 /* ./compiling//compiling_icode.nit:822 */
11246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11247 if (!once_value_281) {
11248 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
11249 REGB1 = TAG_Int(13);
11250 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11251 once_value_281 = fra.me.REG[7];
11252 register_static_object(&once_value_281);
11253 } else fra.me.REG[7] = once_value_281;
11254 fra.me.REG[7] = fra.me.REG[7];
11255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11256 REGB1 = TAG_Int(1);
11257 /* ./../lib/standard//collection//array.nit:278 */
11258 fra.me.REG[7] = fra.me.REG[4];
11259 /* ./../lib/standard//collection//array.nit:280 */
11260 REGB2 = TAG_Int(0);
11261 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11262 if (UNTAG_Bool(REGB0)) {
11263 } else {
11264 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11265 }
11266 /* ./../lib/standard//kernel.nit:233 */
11267 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11268 /* ./../lib/standard//collection//array.nit:280 */
11269 if (UNTAG_Bool(REGB2)) {
11270 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11271 if (UNTAG_Bool(REGB2)) {
11272 } else {
11273 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11274 }
11275 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11276 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11277 if (UNTAG_Bool(REGB0)) {
11278 } else {
11279 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11280 }
11281 /* ./../lib/standard//kernel.nit:232 */
11282 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11283 } else {
11284 /* ./../lib/standard//collection//array.nit:280 */
11285 REGB0 = TAG_Bool(false);
11286 REGB2 = REGB0;
11287 }
11288 if (UNTAG_Bool(REGB2)) {
11289 } else {
11290 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11291 }
11292 /* ./../lib/standard//collection//array.nit:281 */
11293 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11294 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11295 if (UNTAG_Bool(REGB2)) {
11296 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11297 }
11298 /* ./../lib/standard//collection//array.nit:718 */
11299 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11300 /* ./../lib/standard//collection//array.nit:281 */
11301 goto label282;
11302 label282: while(0);
11303 /* ./compiling//compiling_icode.nit:822 */
11304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11305 if (!once_value_283) {
11306 fra.me.REG[7] = BOX_NativeString("))");
11307 REGB1 = TAG_Int(2);
11308 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11309 once_value_283 = fra.me.REG[7];
11310 register_static_object(&once_value_283);
11311 } else fra.me.REG[7] = once_value_283;
11312 fra.me.REG[7] = fra.me.REG[7];
11313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11314 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11315 fra.me.REG[5] = fra.me.REG[6];
11316 } else {
11317 /* ./compiling//compiling_icode.nit:823 */
11318 if (!once_value_284) {
11319 if (!once_value_285) {
11320 fra.me.REG[6] = BOX_NativeString(">");
11321 REGB1 = TAG_Int(1);
11322 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11323 once_value_285 = fra.me.REG[6];
11324 register_static_object(&once_value_285);
11325 } else fra.me.REG[6] = once_value_285;
11326 fra.me.REG[6] = fra.me.REG[6];
11327 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11328 once_value_284 = fra.me.REG[6];
11329 register_static_object(&once_value_284);
11330 } else fra.me.REG[6] = once_value_284;
11331 fra.me.REG[6] = fra.me.REG[6];
11332 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11333 if (UNTAG_Bool(REGB1)) {
11334 } else {
11335 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11336 REGB1 = REGB2;
11337 }
11338 if (UNTAG_Bool(REGB1)) {
11339 /* ./compiling//compiling_icode.nit:824 */
11340 REGB1 = TAG_Int(5);
11341 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11342 if (!once_value_286) {
11343 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11344 REGB1 = TAG_Int(20);
11345 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11346 once_value_286 = fra.me.REG[7];
11347 register_static_object(&once_value_286);
11348 } else fra.me.REG[7] = once_value_286;
11349 fra.me.REG[7] = fra.me.REG[7];
11350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11351 REGB1 = TAG_Int(0);
11352 /* ./../lib/standard//collection//array.nit:278 */
11353 fra.me.REG[7] = fra.me.REG[4];
11354 /* ./../lib/standard//collection//array.nit:280 */
11355 REGB2 = TAG_Int(0);
11356 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11357 if (UNTAG_Bool(REGB0)) {
11358 } else {
11359 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11360 }
11361 /* ./../lib/standard//kernel.nit:233 */
11362 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11363 /* ./../lib/standard//collection//array.nit:280 */
11364 if (UNTAG_Bool(REGB2)) {
11365 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11366 if (UNTAG_Bool(REGB2)) {
11367 } else {
11368 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11369 }
11370 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11371 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11372 if (UNTAG_Bool(REGB0)) {
11373 } else {
11374 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11375 }
11376 /* ./../lib/standard//kernel.nit:232 */
11377 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11378 } else {
11379 /* ./../lib/standard//collection//array.nit:280 */
11380 REGB0 = TAG_Bool(false);
11381 REGB2 = REGB0;
11382 }
11383 if (UNTAG_Bool(REGB2)) {
11384 } else {
11385 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11386 }
11387 /* ./../lib/standard//collection//array.nit:281 */
11388 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11389 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11390 if (UNTAG_Bool(REGB2)) {
11391 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11392 }
11393 /* ./../lib/standard//collection//array.nit:718 */
11394 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11395 /* ./../lib/standard//collection//array.nit:281 */
11396 goto label287;
11397 label287: while(0);
11398 /* ./compiling//compiling_icode.nit:824 */
11399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11400 if (!once_value_288) {
11401 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
11402 REGB1 = TAG_Int(13);
11403 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11404 once_value_288 = fra.me.REG[7];
11405 register_static_object(&once_value_288);
11406 } else fra.me.REG[7] = once_value_288;
11407 fra.me.REG[7] = fra.me.REG[7];
11408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11409 REGB1 = TAG_Int(1);
11410 /* ./../lib/standard//collection//array.nit:278 */
11411 fra.me.REG[7] = fra.me.REG[4];
11412 /* ./../lib/standard//collection//array.nit:280 */
11413 REGB2 = TAG_Int(0);
11414 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11415 if (UNTAG_Bool(REGB0)) {
11416 } else {
11417 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11418 }
11419 /* ./../lib/standard//kernel.nit:233 */
11420 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11421 /* ./../lib/standard//collection//array.nit:280 */
11422 if (UNTAG_Bool(REGB2)) {
11423 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11424 if (UNTAG_Bool(REGB2)) {
11425 } else {
11426 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11427 }
11428 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11429 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11430 if (UNTAG_Bool(REGB0)) {
11431 } else {
11432 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11433 }
11434 /* ./../lib/standard//kernel.nit:232 */
11435 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11436 } else {
11437 /* ./../lib/standard//collection//array.nit:280 */
11438 REGB0 = TAG_Bool(false);
11439 REGB2 = REGB0;
11440 }
11441 if (UNTAG_Bool(REGB2)) {
11442 } else {
11443 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11444 }
11445 /* ./../lib/standard//collection//array.nit:281 */
11446 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11447 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11448 if (UNTAG_Bool(REGB2)) {
11449 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11450 }
11451 /* ./../lib/standard//collection//array.nit:718 */
11452 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11453 /* ./../lib/standard//collection//array.nit:281 */
11454 goto label289;
11455 label289: while(0);
11456 /* ./compiling//compiling_icode.nit:824 */
11457 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11458 if (!once_value_290) {
11459 fra.me.REG[7] = BOX_NativeString("))");
11460 REGB1 = TAG_Int(2);
11461 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11462 once_value_290 = fra.me.REG[7];
11463 register_static_object(&once_value_290);
11464 } else fra.me.REG[7] = once_value_290;
11465 fra.me.REG[7] = fra.me.REG[7];
11466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11467 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11468 fra.me.REG[5] = fra.me.REG[6];
11469 } else {
11470 /* ./compiling//compiling_icode.nit:825 */
11471 if (!once_value_291) {
11472 if (!once_value_292) {
11473 fra.me.REG[6] = BOX_NativeString("<=");
11474 REGB1 = TAG_Int(2);
11475 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11476 once_value_292 = fra.me.REG[6];
11477 register_static_object(&once_value_292);
11478 } else fra.me.REG[6] = once_value_292;
11479 fra.me.REG[6] = fra.me.REG[6];
11480 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11481 once_value_291 = fra.me.REG[6];
11482 register_static_object(&once_value_291);
11483 } else fra.me.REG[6] = once_value_291;
11484 fra.me.REG[6] = fra.me.REG[6];
11485 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11486 if (UNTAG_Bool(REGB1)) {
11487 } else {
11488 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11489 REGB1 = REGB2;
11490 }
11491 if (UNTAG_Bool(REGB1)) {
11492 /* ./compiling//compiling_icode.nit:826 */
11493 REGB1 = TAG_Int(5);
11494 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11495 if (!once_value_293) {
11496 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11497 REGB1 = TAG_Int(20);
11498 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11499 once_value_293 = fra.me.REG[7];
11500 register_static_object(&once_value_293);
11501 } else fra.me.REG[7] = once_value_293;
11502 fra.me.REG[7] = fra.me.REG[7];
11503 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11504 REGB1 = TAG_Int(0);
11505 /* ./../lib/standard//collection//array.nit:278 */
11506 fra.me.REG[7] = fra.me.REG[4];
11507 /* ./../lib/standard//collection//array.nit:280 */
11508 REGB2 = TAG_Int(0);
11509 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11510 if (UNTAG_Bool(REGB0)) {
11511 } else {
11512 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11513 }
11514 /* ./../lib/standard//kernel.nit:233 */
11515 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11516 /* ./../lib/standard//collection//array.nit:280 */
11517 if (UNTAG_Bool(REGB2)) {
11518 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11519 if (UNTAG_Bool(REGB2)) {
11520 } else {
11521 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11522 }
11523 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11524 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11525 if (UNTAG_Bool(REGB0)) {
11526 } else {
11527 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11528 }
11529 /* ./../lib/standard//kernel.nit:232 */
11530 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11531 } else {
11532 /* ./../lib/standard//collection//array.nit:280 */
11533 REGB0 = TAG_Bool(false);
11534 REGB2 = REGB0;
11535 }
11536 if (UNTAG_Bool(REGB2)) {
11537 } else {
11538 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11539 }
11540 /* ./../lib/standard//collection//array.nit:281 */
11541 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11542 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11543 if (UNTAG_Bool(REGB2)) {
11544 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11545 }
11546 /* ./../lib/standard//collection//array.nit:718 */
11547 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11548 /* ./../lib/standard//collection//array.nit:281 */
11549 goto label294;
11550 label294: while(0);
11551 /* ./compiling//compiling_icode.nit:826 */
11552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11553 if (!once_value_295) {
11554 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
11555 REGB1 = TAG_Int(14);
11556 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11557 once_value_295 = fra.me.REG[7];
11558 register_static_object(&once_value_295);
11559 } else fra.me.REG[7] = once_value_295;
11560 fra.me.REG[7] = fra.me.REG[7];
11561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11562 REGB1 = TAG_Int(1);
11563 /* ./../lib/standard//collection//array.nit:278 */
11564 fra.me.REG[7] = fra.me.REG[4];
11565 /* ./../lib/standard//collection//array.nit:280 */
11566 REGB2 = TAG_Int(0);
11567 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11568 if (UNTAG_Bool(REGB0)) {
11569 } else {
11570 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11571 }
11572 /* ./../lib/standard//kernel.nit:233 */
11573 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11574 /* ./../lib/standard//collection//array.nit:280 */
11575 if (UNTAG_Bool(REGB2)) {
11576 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11577 if (UNTAG_Bool(REGB2)) {
11578 } else {
11579 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11580 }
11581 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11582 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11583 if (UNTAG_Bool(REGB0)) {
11584 } else {
11585 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11586 }
11587 /* ./../lib/standard//kernel.nit:232 */
11588 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11589 } else {
11590 /* ./../lib/standard//collection//array.nit:280 */
11591 REGB0 = TAG_Bool(false);
11592 REGB2 = REGB0;
11593 }
11594 if (UNTAG_Bool(REGB2)) {
11595 } else {
11596 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11597 }
11598 /* ./../lib/standard//collection//array.nit:281 */
11599 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11600 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11601 if (UNTAG_Bool(REGB2)) {
11602 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11603 }
11604 /* ./../lib/standard//collection//array.nit:718 */
11605 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11606 /* ./../lib/standard//collection//array.nit:281 */
11607 goto label296;
11608 label296: while(0);
11609 /* ./compiling//compiling_icode.nit:826 */
11610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11611 if (!once_value_297) {
11612 fra.me.REG[7] = BOX_NativeString("))");
11613 REGB1 = TAG_Int(2);
11614 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11615 once_value_297 = fra.me.REG[7];
11616 register_static_object(&once_value_297);
11617 } else fra.me.REG[7] = once_value_297;
11618 fra.me.REG[7] = fra.me.REG[7];
11619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11620 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11621 fra.me.REG[5] = fra.me.REG[6];
11622 } else {
11623 /* ./compiling//compiling_icode.nit:827 */
11624 if (!once_value_298) {
11625 if (!once_value_299) {
11626 fra.me.REG[6] = BOX_NativeString(">=");
11627 REGB1 = TAG_Int(2);
11628 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11629 once_value_299 = fra.me.REG[6];
11630 register_static_object(&once_value_299);
11631 } else fra.me.REG[6] = once_value_299;
11632 fra.me.REG[6] = fra.me.REG[6];
11633 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11634 once_value_298 = fra.me.REG[6];
11635 register_static_object(&once_value_298);
11636 } else fra.me.REG[6] = once_value_298;
11637 fra.me.REG[6] = fra.me.REG[6];
11638 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11639 if (UNTAG_Bool(REGB1)) {
11640 } else {
11641 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11642 REGB1 = REGB2;
11643 }
11644 if (UNTAG_Bool(REGB1)) {
11645 /* ./compiling//compiling_icode.nit:828 */
11646 REGB1 = TAG_Int(5);
11647 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11648 if (!once_value_300) {
11649 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11650 REGB1 = TAG_Int(20);
11651 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11652 once_value_300 = fra.me.REG[7];
11653 register_static_object(&once_value_300);
11654 } else fra.me.REG[7] = once_value_300;
11655 fra.me.REG[7] = fra.me.REG[7];
11656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11657 REGB1 = TAG_Int(0);
11658 /* ./../lib/standard//collection//array.nit:278 */
11659 fra.me.REG[7] = fra.me.REG[4];
11660 /* ./../lib/standard//collection//array.nit:280 */
11661 REGB2 = TAG_Int(0);
11662 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11663 if (UNTAG_Bool(REGB0)) {
11664 } else {
11665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11666 }
11667 /* ./../lib/standard//kernel.nit:233 */
11668 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11669 /* ./../lib/standard//collection//array.nit:280 */
11670 if (UNTAG_Bool(REGB2)) {
11671 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11672 if (UNTAG_Bool(REGB2)) {
11673 } else {
11674 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11675 }
11676 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11677 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11678 if (UNTAG_Bool(REGB0)) {
11679 } else {
11680 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11681 }
11682 /* ./../lib/standard//kernel.nit:232 */
11683 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11684 } else {
11685 /* ./../lib/standard//collection//array.nit:280 */
11686 REGB0 = TAG_Bool(false);
11687 REGB2 = REGB0;
11688 }
11689 if (UNTAG_Bool(REGB2)) {
11690 } else {
11691 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11692 }
11693 /* ./../lib/standard//collection//array.nit:281 */
11694 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11695 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11696 if (UNTAG_Bool(REGB2)) {
11697 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11698 }
11699 /* ./../lib/standard//collection//array.nit:718 */
11700 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11701 /* ./../lib/standard//collection//array.nit:281 */
11702 goto label301;
11703 label301: while(0);
11704 /* ./compiling//compiling_icode.nit:828 */
11705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11706 if (!once_value_302) {
11707 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
11708 REGB1 = TAG_Int(14);
11709 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11710 once_value_302 = fra.me.REG[7];
11711 register_static_object(&once_value_302);
11712 } else fra.me.REG[7] = once_value_302;
11713 fra.me.REG[7] = fra.me.REG[7];
11714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11715 REGB1 = TAG_Int(1);
11716 /* ./../lib/standard//collection//array.nit:278 */
11717 fra.me.REG[7] = fra.me.REG[4];
11718 /* ./../lib/standard//collection//array.nit:280 */
11719 REGB2 = TAG_Int(0);
11720 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11721 if (UNTAG_Bool(REGB0)) {
11722 } else {
11723 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11724 }
11725 /* ./../lib/standard//kernel.nit:233 */
11726 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11727 /* ./../lib/standard//collection//array.nit:280 */
11728 if (UNTAG_Bool(REGB2)) {
11729 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11730 if (UNTAG_Bool(REGB2)) {
11731 } else {
11732 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11733 }
11734 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11735 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11736 if (UNTAG_Bool(REGB0)) {
11737 } else {
11738 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11739 }
11740 /* ./../lib/standard//kernel.nit:232 */
11741 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11742 } else {
11743 /* ./../lib/standard//collection//array.nit:280 */
11744 REGB0 = TAG_Bool(false);
11745 REGB2 = REGB0;
11746 }
11747 if (UNTAG_Bool(REGB2)) {
11748 } else {
11749 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11750 }
11751 /* ./../lib/standard//collection//array.nit:281 */
11752 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11753 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11754 if (UNTAG_Bool(REGB2)) {
11755 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11756 }
11757 /* ./../lib/standard//collection//array.nit:718 */
11758 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11759 /* ./../lib/standard//collection//array.nit:281 */
11760 goto label303;
11761 label303: while(0);
11762 /* ./compiling//compiling_icode.nit:828 */
11763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11764 if (!once_value_304) {
11765 fra.me.REG[7] = BOX_NativeString("))");
11766 REGB1 = TAG_Int(2);
11767 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11768 once_value_304 = fra.me.REG[7];
11769 register_static_object(&once_value_304);
11770 } else fra.me.REG[7] = once_value_304;
11771 fra.me.REG[7] = fra.me.REG[7];
11772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11773 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11774 fra.me.REG[5] = fra.me.REG[6];
11775 } else {
11776 /* ./compiling//compiling_icode.nit:829 */
11777 if (!once_value_305) {
11778 if (!once_value_306) {
11779 fra.me.REG[6] = BOX_NativeString("==");
11780 REGB1 = TAG_Int(2);
11781 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11782 once_value_306 = fra.me.REG[6];
11783 register_static_object(&once_value_306);
11784 } else fra.me.REG[6] = once_value_306;
11785 fra.me.REG[6] = fra.me.REG[6];
11786 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11787 once_value_305 = fra.me.REG[6];
11788 register_static_object(&once_value_305);
11789 } else fra.me.REG[6] = once_value_305;
11790 fra.me.REG[6] = fra.me.REG[6];
11791 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11792 if (UNTAG_Bool(REGB1)) {
11793 } else {
11794 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11795 REGB1 = REGB2;
11796 }
11797 if (UNTAG_Bool(REGB1)) {
11798 /* ./compiling//compiling_icode.nit:830 */
11799 REGB1 = TAG_Int(5);
11800 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11801 if (!once_value_307) {
11802 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11803 REGB1 = TAG_Int(10);
11804 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11805 once_value_307 = fra.me.REG[7];
11806 register_static_object(&once_value_307);
11807 } else fra.me.REG[7] = once_value_307;
11808 fra.me.REG[7] = fra.me.REG[7];
11809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11810 REGB1 = TAG_Int(0);
11811 /* ./../lib/standard//collection//array.nit:278 */
11812 fra.me.REG[7] = fra.me.REG[4];
11813 /* ./../lib/standard//collection//array.nit:280 */
11814 REGB2 = TAG_Int(0);
11815 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11816 if (UNTAG_Bool(REGB0)) {
11817 } else {
11818 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11819 }
11820 /* ./../lib/standard//kernel.nit:233 */
11821 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11822 /* ./../lib/standard//collection//array.nit:280 */
11823 if (UNTAG_Bool(REGB2)) {
11824 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11825 if (UNTAG_Bool(REGB2)) {
11826 } else {
11827 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11828 }
11829 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11830 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11831 if (UNTAG_Bool(REGB0)) {
11832 } else {
11833 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11834 }
11835 /* ./../lib/standard//kernel.nit:232 */
11836 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11837 } else {
11838 /* ./../lib/standard//collection//array.nit:280 */
11839 REGB0 = TAG_Bool(false);
11840 REGB2 = REGB0;
11841 }
11842 if (UNTAG_Bool(REGB2)) {
11843 } else {
11844 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11845 }
11846 /* ./../lib/standard//collection//array.nit:281 */
11847 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11848 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11849 if (UNTAG_Bool(REGB2)) {
11850 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11851 }
11852 /* ./../lib/standard//collection//array.nit:718 */
11853 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11854 /* ./../lib/standard//collection//array.nit:281 */
11855 goto label308;
11856 label308: while(0);
11857 /* ./compiling//compiling_icode.nit:830 */
11858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11859 if (!once_value_309) {
11860 fra.me.REG[7] = BOX_NativeString(")==(");
11861 REGB1 = TAG_Int(4);
11862 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11863 once_value_309 = fra.me.REG[7];
11864 register_static_object(&once_value_309);
11865 } else fra.me.REG[7] = once_value_309;
11866 fra.me.REG[7] = fra.me.REG[7];
11867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11868 REGB1 = TAG_Int(1);
11869 /* ./../lib/standard//collection//array.nit:278 */
11870 fra.me.REG[7] = fra.me.REG[4];
11871 /* ./../lib/standard//collection//array.nit:280 */
11872 REGB2 = TAG_Int(0);
11873 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11874 if (UNTAG_Bool(REGB0)) {
11875 } else {
11876 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11877 }
11878 /* ./../lib/standard//kernel.nit:233 */
11879 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11880 /* ./../lib/standard//collection//array.nit:280 */
11881 if (UNTAG_Bool(REGB2)) {
11882 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11883 if (UNTAG_Bool(REGB2)) {
11884 } else {
11885 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11886 }
11887 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11888 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11889 if (UNTAG_Bool(REGB0)) {
11890 } else {
11891 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11892 }
11893 /* ./../lib/standard//kernel.nit:232 */
11894 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11895 } else {
11896 /* ./../lib/standard//collection//array.nit:280 */
11897 REGB0 = TAG_Bool(false);
11898 REGB2 = REGB0;
11899 }
11900 if (UNTAG_Bool(REGB2)) {
11901 } else {
11902 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11903 }
11904 /* ./../lib/standard//collection//array.nit:281 */
11905 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11906 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11907 if (UNTAG_Bool(REGB2)) {
11908 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11909 }
11910 /* ./../lib/standard//collection//array.nit:718 */
11911 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11912 /* ./../lib/standard//collection//array.nit:281 */
11913 goto label310;
11914 label310: while(0);
11915 /* ./compiling//compiling_icode.nit:830 */
11916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11917 if (!once_value_311) {
11918 fra.me.REG[7] = BOX_NativeString("))");
11919 REGB1 = TAG_Int(2);
11920 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11921 once_value_311 = fra.me.REG[7];
11922 register_static_object(&once_value_311);
11923 } else fra.me.REG[7] = once_value_311;
11924 fra.me.REG[7] = fra.me.REG[7];
11925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11926 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11927 fra.me.REG[5] = fra.me.REG[6];
11928 } else {
11929 /* ./compiling//compiling_icode.nit:831 */
11930 if (!once_value_312) {
11931 if (!once_value_313) {
11932 fra.me.REG[6] = BOX_NativeString("!=");
11933 REGB1 = TAG_Int(2);
11934 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11935 once_value_313 = fra.me.REG[6];
11936 register_static_object(&once_value_313);
11937 } else fra.me.REG[6] = once_value_313;
11938 fra.me.REG[6] = fra.me.REG[6];
11939 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11940 once_value_312 = fra.me.REG[6];
11941 register_static_object(&once_value_312);
11942 } else fra.me.REG[6] = once_value_312;
11943 fra.me.REG[6] = fra.me.REG[6];
11944 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11945 if (UNTAG_Bool(REGB1)) {
11946 } else {
11947 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11948 REGB1 = REGB2;
11949 }
11950 if (UNTAG_Bool(REGB1)) {
11951 /* ./compiling//compiling_icode.nit:832 */
11952 REGB1 = TAG_Int(5);
11953 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11954 if (!once_value_314) {
11955 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11956 REGB1 = TAG_Int(10);
11957 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11958 once_value_314 = fra.me.REG[7];
11959 register_static_object(&once_value_314);
11960 } else fra.me.REG[7] = once_value_314;
11961 fra.me.REG[7] = fra.me.REG[7];
11962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11963 REGB1 = TAG_Int(0);
11964 /* ./../lib/standard//collection//array.nit:278 */
11965 fra.me.REG[7] = fra.me.REG[4];
11966 /* ./../lib/standard//collection//array.nit:280 */
11967 REGB2 = TAG_Int(0);
11968 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11969 if (UNTAG_Bool(REGB0)) {
11970 } else {
11971 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11972 }
11973 /* ./../lib/standard//kernel.nit:233 */
11974 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11975 /* ./../lib/standard//collection//array.nit:280 */
11976 if (UNTAG_Bool(REGB2)) {
11977 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11978 if (UNTAG_Bool(REGB2)) {
11979 } else {
11980 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11981 }
11982 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11983 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11984 if (UNTAG_Bool(REGB0)) {
11985 } else {
11986 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11987 }
11988 /* ./../lib/standard//kernel.nit:232 */
11989 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11990 } else {
11991 /* ./../lib/standard//collection//array.nit:280 */
11992 REGB0 = TAG_Bool(false);
11993 REGB2 = REGB0;
11994 }
11995 if (UNTAG_Bool(REGB2)) {
11996 } else {
11997 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11998 }
11999 /* ./../lib/standard//collection//array.nit:281 */
12000 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12001 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12002 if (UNTAG_Bool(REGB2)) {
12003 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12004 }
12005 /* ./../lib/standard//collection//array.nit:718 */
12006 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12007 /* ./../lib/standard//collection//array.nit:281 */
12008 goto label315;
12009 label315: while(0);
12010 /* ./compiling//compiling_icode.nit:832 */
12011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12012 if (!once_value_316) {
12013 fra.me.REG[7] = BOX_NativeString(")!=(");
12014 REGB1 = TAG_Int(4);
12015 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12016 once_value_316 = fra.me.REG[7];
12017 register_static_object(&once_value_316);
12018 } else fra.me.REG[7] = once_value_316;
12019 fra.me.REG[7] = fra.me.REG[7];
12020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12021 REGB1 = TAG_Int(1);
12022 /* ./../lib/standard//collection//array.nit:278 */
12023 fra.me.REG[7] = fra.me.REG[4];
12024 /* ./../lib/standard//collection//array.nit:280 */
12025 REGB2 = TAG_Int(0);
12026 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12027 if (UNTAG_Bool(REGB0)) {
12028 } else {
12029 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12030 }
12031 /* ./../lib/standard//kernel.nit:233 */
12032 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12033 /* ./../lib/standard//collection//array.nit:280 */
12034 if (UNTAG_Bool(REGB2)) {
12035 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12036 if (UNTAG_Bool(REGB2)) {
12037 } else {
12038 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12039 }
12040 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12041 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12042 if (UNTAG_Bool(REGB0)) {
12043 } else {
12044 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12045 }
12046 /* ./../lib/standard//kernel.nit:232 */
12047 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12048 } else {
12049 /* ./../lib/standard//collection//array.nit:280 */
12050 REGB0 = TAG_Bool(false);
12051 REGB2 = REGB0;
12052 }
12053 if (UNTAG_Bool(REGB2)) {
12054 } else {
12055 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12056 }
12057 /* ./../lib/standard//collection//array.nit:281 */
12058 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12059 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12060 if (UNTAG_Bool(REGB2)) {
12061 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12062 }
12063 /* ./../lib/standard//collection//array.nit:718 */
12064 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12065 /* ./../lib/standard//collection//array.nit:281 */
12066 goto label317;
12067 label317: while(0);
12068 /* ./compiling//compiling_icode.nit:832 */
12069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12070 if (!once_value_318) {
12071 fra.me.REG[7] = BOX_NativeString("))");
12072 REGB1 = TAG_Int(2);
12073 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12074 once_value_318 = fra.me.REG[7];
12075 register_static_object(&once_value_318);
12076 } else fra.me.REG[7] = once_value_318;
12077 fra.me.REG[7] = fra.me.REG[7];
12078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12079 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12080 fra.me.REG[5] = fra.me.REG[6];
12081 }
12082 }
12083 }
12084 }
12085 }
12086 }
12087 }
12088 }
12089 }
12090 }
12091 }
12092 }
12093 }
12094 }
12095 }
12096 }
12097 }
12098 }
12099 } else {
12100 /* ./compiling//compiling_icode.nit:834 */
12101 if (!once_value_319) {
12102 if (!once_value_320) {
12103 fra.me.REG[6] = BOX_NativeString("Bool");
12104 REGB1 = TAG_Int(4);
12105 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12106 once_value_320 = fra.me.REG[6];
12107 register_static_object(&once_value_320);
12108 } else fra.me.REG[6] = once_value_320;
12109 fra.me.REG[6] = fra.me.REG[6];
12110 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12111 once_value_319 = fra.me.REG[6];
12112 register_static_object(&once_value_319);
12113 } else fra.me.REG[6] = once_value_319;
12114 fra.me.REG[6] = fra.me.REG[6];
12115 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12116 if (UNTAG_Bool(REGB1)) {
12117 } else {
12118 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12119 REGB1 = REGB2;
12120 }
12121 if (UNTAG_Bool(REGB1)) {
12122 /* ./compiling//compiling_icode.nit:835 */
12123 if (!once_value_321) {
12124 if (!once_value_322) {
12125 fra.me.REG[6] = BOX_NativeString("object_id");
12126 REGB1 = TAG_Int(9);
12127 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12128 once_value_322 = fra.me.REG[6];
12129 register_static_object(&once_value_322);
12130 } else fra.me.REG[6] = once_value_322;
12131 fra.me.REG[6] = fra.me.REG[6];
12132 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12133 once_value_321 = fra.me.REG[6];
12134 register_static_object(&once_value_321);
12135 } else fra.me.REG[6] = once_value_321;
12136 fra.me.REG[6] = fra.me.REG[6];
12137 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12138 if (UNTAG_Bool(REGB1)) {
12139 } else {
12140 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12141 REGB1 = REGB2;
12142 }
12143 if (UNTAG_Bool(REGB1)) {
12144 /* ./compiling//compiling_icode.nit:836 */
12145 REGB1 = TAG_Int(3);
12146 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12147 if (!once_value_323) {
12148 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12149 REGB1 = TAG_Int(19);
12150 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12151 once_value_323 = fra.me.REG[7];
12152 register_static_object(&once_value_323);
12153 } else fra.me.REG[7] = once_value_323;
12154 fra.me.REG[7] = fra.me.REG[7];
12155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12156 REGB1 = TAG_Int(0);
12157 /* ./../lib/standard//collection//array.nit:278 */
12158 fra.me.REG[7] = fra.me.REG[4];
12159 /* ./../lib/standard//collection//array.nit:280 */
12160 REGB2 = TAG_Int(0);
12161 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12162 if (UNTAG_Bool(REGB0)) {
12163 } else {
12164 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12165 }
12166 /* ./../lib/standard//kernel.nit:233 */
12167 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12168 /* ./../lib/standard//collection//array.nit:280 */
12169 if (UNTAG_Bool(REGB2)) {
12170 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12171 if (UNTAG_Bool(REGB2)) {
12172 } else {
12173 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12174 }
12175 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12176 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12177 if (UNTAG_Bool(REGB0)) {
12178 } else {
12179 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12180 }
12181 /* ./../lib/standard//kernel.nit:232 */
12182 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12183 } else {
12184 /* ./../lib/standard//collection//array.nit:280 */
12185 REGB0 = TAG_Bool(false);
12186 REGB2 = REGB0;
12187 }
12188 if (UNTAG_Bool(REGB2)) {
12189 } else {
12190 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12191 }
12192 /* ./../lib/standard//collection//array.nit:281 */
12193 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12194 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12195 if (UNTAG_Bool(REGB2)) {
12196 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12197 }
12198 /* ./../lib/standard//collection//array.nit:718 */
12199 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12200 /* ./../lib/standard//collection//array.nit:281 */
12201 goto label324;
12202 label324: while(0);
12203 /* ./compiling//compiling_icode.nit:836 */
12204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12205 if (!once_value_325) {
12206 fra.me.REG[7] = BOX_NativeString("))");
12207 REGB1 = TAG_Int(2);
12208 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12209 once_value_325 = fra.me.REG[7];
12210 register_static_object(&once_value_325);
12211 } else fra.me.REG[7] = once_value_325;
12212 fra.me.REG[7] = fra.me.REG[7];
12213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12214 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12215 fra.me.REG[5] = fra.me.REG[6];
12216 } else {
12217 /* ./compiling//compiling_icode.nit:837 */
12218 if (!once_value_326) {
12219 if (!once_value_327) {
12220 fra.me.REG[6] = BOX_NativeString("unary -");
12221 REGB1 = TAG_Int(7);
12222 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12223 once_value_327 = fra.me.REG[6];
12224 register_static_object(&once_value_327);
12225 } else fra.me.REG[6] = once_value_327;
12226 fra.me.REG[6] = fra.me.REG[6];
12227 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12228 once_value_326 = fra.me.REG[6];
12229 register_static_object(&once_value_326);
12230 } else fra.me.REG[6] = once_value_326;
12231 fra.me.REG[6] = fra.me.REG[6];
12232 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12233 if (UNTAG_Bool(REGB1)) {
12234 } else {
12235 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12236 REGB1 = REGB2;
12237 }
12238 if (UNTAG_Bool(REGB1)) {
12239 /* ./compiling//compiling_icode.nit:838 */
12240 REGB1 = TAG_Int(3);
12241 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12242 if (!once_value_328) {
12243 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
12244 REGB1 = TAG_Int(21);
12245 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12246 once_value_328 = fra.me.REG[7];
12247 register_static_object(&once_value_328);
12248 } else fra.me.REG[7] = once_value_328;
12249 fra.me.REG[7] = fra.me.REG[7];
12250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12251 REGB1 = TAG_Int(0);
12252 /* ./../lib/standard//collection//array.nit:278 */
12253 fra.me.REG[7] = fra.me.REG[4];
12254 /* ./../lib/standard//collection//array.nit:280 */
12255 REGB2 = TAG_Int(0);
12256 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12257 if (UNTAG_Bool(REGB0)) {
12258 } else {
12259 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12260 }
12261 /* ./../lib/standard//kernel.nit:233 */
12262 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12263 /* ./../lib/standard//collection//array.nit:280 */
12264 if (UNTAG_Bool(REGB2)) {
12265 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12266 if (UNTAG_Bool(REGB2)) {
12267 } else {
12268 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12269 }
12270 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12271 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12272 if (UNTAG_Bool(REGB0)) {
12273 } else {
12274 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12275 }
12276 /* ./../lib/standard//kernel.nit:232 */
12277 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12278 } else {
12279 /* ./../lib/standard//collection//array.nit:280 */
12280 REGB0 = TAG_Bool(false);
12281 REGB2 = REGB0;
12282 }
12283 if (UNTAG_Bool(REGB2)) {
12284 } else {
12285 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12286 }
12287 /* ./../lib/standard//collection//array.nit:281 */
12288 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12289 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12290 if (UNTAG_Bool(REGB2)) {
12291 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12292 }
12293 /* ./../lib/standard//collection//array.nit:718 */
12294 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12295 /* ./../lib/standard//collection//array.nit:281 */
12296 goto label329;
12297 label329: while(0);
12298 /* ./compiling//compiling_icode.nit:838 */
12299 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12300 if (!once_value_330) {
12301 fra.me.REG[7] = BOX_NativeString("))");
12302 REGB1 = TAG_Int(2);
12303 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12304 once_value_330 = fra.me.REG[7];
12305 register_static_object(&once_value_330);
12306 } else fra.me.REG[7] = once_value_330;
12307 fra.me.REG[7] = fra.me.REG[7];
12308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12309 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12310 fra.me.REG[5] = fra.me.REG[6];
12311 } else {
12312 /* ./compiling//compiling_icode.nit:839 */
12313 if (!once_value_331) {
12314 if (!once_value_332) {
12315 fra.me.REG[6] = BOX_NativeString("output");
12316 REGB1 = TAG_Int(6);
12317 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12318 once_value_332 = fra.me.REG[6];
12319 register_static_object(&once_value_332);
12320 } else fra.me.REG[6] = once_value_332;
12321 fra.me.REG[6] = fra.me.REG[6];
12322 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12323 once_value_331 = fra.me.REG[6];
12324 register_static_object(&once_value_331);
12325 } else fra.me.REG[6] = once_value_331;
12326 fra.me.REG[6] = fra.me.REG[6];
12327 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12328 if (UNTAG_Bool(REGB1)) {
12329 } else {
12330 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12331 REGB1 = REGB2;
12332 }
12333 if (UNTAG_Bool(REGB1)) {
12334 /* ./compiling//compiling_icode.nit:840 */
12335 REGB1 = TAG_Int(3);
12336 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12337 if (!once_value_333) {
12338 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
12339 REGB1 = TAG_Int(24);
12340 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12341 once_value_333 = fra.me.REG[7];
12342 register_static_object(&once_value_333);
12343 } else fra.me.REG[7] = once_value_333;
12344 fra.me.REG[7] = fra.me.REG[7];
12345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12346 REGB1 = TAG_Int(0);
12347 /* ./../lib/standard//collection//array.nit:278 */
12348 fra.me.REG[7] = fra.me.REG[4];
12349 /* ./../lib/standard//collection//array.nit:280 */
12350 REGB2 = TAG_Int(0);
12351 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12352 if (UNTAG_Bool(REGB0)) {
12353 } else {
12354 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12355 }
12356 /* ./../lib/standard//kernel.nit:233 */
12357 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12358 /* ./../lib/standard//collection//array.nit:280 */
12359 if (UNTAG_Bool(REGB2)) {
12360 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12361 if (UNTAG_Bool(REGB2)) {
12362 } else {
12363 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12364 }
12365 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12366 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12367 if (UNTAG_Bool(REGB0)) {
12368 } else {
12369 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12370 }
12371 /* ./../lib/standard//kernel.nit:232 */
12372 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12373 } else {
12374 /* ./../lib/standard//collection//array.nit:280 */
12375 REGB0 = TAG_Bool(false);
12376 REGB2 = REGB0;
12377 }
12378 if (UNTAG_Bool(REGB2)) {
12379 } else {
12380 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12381 }
12382 /* ./../lib/standard//collection//array.nit:281 */
12383 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12384 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12385 if (UNTAG_Bool(REGB2)) {
12386 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12387 }
12388 /* ./../lib/standard//collection//array.nit:718 */
12389 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12390 /* ./../lib/standard//collection//array.nit:281 */
12391 goto label334;
12392 label334: while(0);
12393 /* ./compiling//compiling_icode.nit:840 */
12394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12395 if (!once_value_335) {
12396 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
12397 REGB1 = TAG_Int(22);
12398 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12399 once_value_335 = fra.me.REG[7];
12400 register_static_object(&once_value_335);
12401 } else fra.me.REG[7] = once_value_335;
12402 fra.me.REG[7] = fra.me.REG[7];
12403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12404 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12405 fra.me.REG[5] = fra.me.REG[6];
12406 } else {
12407 /* ./compiling//compiling_icode.nit:841 */
12408 if (!once_value_336) {
12409 if (!once_value_337) {
12410 fra.me.REG[6] = BOX_NativeString("ascii");
12411 REGB1 = TAG_Int(5);
12412 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12413 once_value_337 = fra.me.REG[6];
12414 register_static_object(&once_value_337);
12415 } else fra.me.REG[6] = once_value_337;
12416 fra.me.REG[6] = fra.me.REG[6];
12417 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12418 once_value_336 = fra.me.REG[6];
12419 register_static_object(&once_value_336);
12420 } else fra.me.REG[6] = once_value_336;
12421 fra.me.REG[6] = fra.me.REG[6];
12422 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12423 if (UNTAG_Bool(REGB1)) {
12424 } else {
12425 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12426 REGB1 = REGB2;
12427 }
12428 if (UNTAG_Bool(REGB1)) {
12429 /* ./compiling//compiling_icode.nit:842 */
12430 REGB1 = TAG_Int(3);
12431 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12432 if (!once_value_338) {
12433 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
12434 REGB1 = TAG_Int(20);
12435 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12436 once_value_338 = fra.me.REG[7];
12437 register_static_object(&once_value_338);
12438 } else fra.me.REG[7] = once_value_338;
12439 fra.me.REG[7] = fra.me.REG[7];
12440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12441 REGB1 = TAG_Int(0);
12442 /* ./../lib/standard//collection//array.nit:278 */
12443 fra.me.REG[7] = fra.me.REG[4];
12444 /* ./../lib/standard//collection//array.nit:280 */
12445 REGB2 = TAG_Int(0);
12446 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12447 if (UNTAG_Bool(REGB0)) {
12448 } else {
12449 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12450 }
12451 /* ./../lib/standard//kernel.nit:233 */
12452 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12453 /* ./../lib/standard//collection//array.nit:280 */
12454 if (UNTAG_Bool(REGB2)) {
12455 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12456 if (UNTAG_Bool(REGB2)) {
12457 } else {
12458 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12459 }
12460 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12461 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12462 if (UNTAG_Bool(REGB0)) {
12463 } else {
12464 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12465 }
12466 /* ./../lib/standard//kernel.nit:232 */
12467 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12468 } else {
12469 /* ./../lib/standard//collection//array.nit:280 */
12470 REGB0 = TAG_Bool(false);
12471 REGB2 = REGB0;
12472 }
12473 if (UNTAG_Bool(REGB2)) {
12474 } else {
12475 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12476 }
12477 /* ./../lib/standard//collection//array.nit:281 */
12478 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12479 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12480 if (UNTAG_Bool(REGB2)) {
12481 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12482 }
12483 /* ./../lib/standard//collection//array.nit:718 */
12484 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12485 /* ./../lib/standard//collection//array.nit:281 */
12486 goto label339;
12487 label339: while(0);
12488 /* ./compiling//compiling_icode.nit:842 */
12489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12490 if (!once_value_340) {
12491 fra.me.REG[7] = BOX_NativeString("))");
12492 REGB1 = TAG_Int(2);
12493 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12494 once_value_340 = fra.me.REG[7];
12495 register_static_object(&once_value_340);
12496 } else fra.me.REG[7] = once_value_340;
12497 fra.me.REG[7] = fra.me.REG[7];
12498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12499 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12500 fra.me.REG[5] = fra.me.REG[6];
12501 } else {
12502 /* ./compiling//compiling_icode.nit:843 */
12503 if (!once_value_341) {
12504 if (!once_value_342) {
12505 fra.me.REG[6] = BOX_NativeString("to_i");
12506 REGB1 = TAG_Int(4);
12507 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12508 once_value_342 = fra.me.REG[6];
12509 register_static_object(&once_value_342);
12510 } else fra.me.REG[6] = once_value_342;
12511 fra.me.REG[6] = fra.me.REG[6];
12512 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12513 once_value_341 = fra.me.REG[6];
12514 register_static_object(&once_value_341);
12515 } else fra.me.REG[6] = once_value_341;
12516 fra.me.REG[6] = fra.me.REG[6];
12517 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12518 if (UNTAG_Bool(REGB1)) {
12519 } else {
12520 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12521 REGB1 = REGB2;
12522 }
12523 if (UNTAG_Bool(REGB1)) {
12524 /* ./compiling//compiling_icode.nit:844 */
12525 REGB1 = TAG_Int(3);
12526 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12527 if (!once_value_343) {
12528 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12529 REGB1 = TAG_Int(19);
12530 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12531 once_value_343 = fra.me.REG[7];
12532 register_static_object(&once_value_343);
12533 } else fra.me.REG[7] = once_value_343;
12534 fra.me.REG[7] = fra.me.REG[7];
12535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12536 REGB1 = TAG_Int(0);
12537 /* ./../lib/standard//collection//array.nit:278 */
12538 fra.me.REG[7] = fra.me.REG[4];
12539 /* ./../lib/standard//collection//array.nit:280 */
12540 REGB2 = TAG_Int(0);
12541 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12542 if (UNTAG_Bool(REGB0)) {
12543 } else {
12544 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12545 }
12546 /* ./../lib/standard//kernel.nit:233 */
12547 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12548 /* ./../lib/standard//collection//array.nit:280 */
12549 if (UNTAG_Bool(REGB2)) {
12550 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12551 if (UNTAG_Bool(REGB2)) {
12552 } else {
12553 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12554 }
12555 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12556 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12557 if (UNTAG_Bool(REGB0)) {
12558 } else {
12559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12560 }
12561 /* ./../lib/standard//kernel.nit:232 */
12562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12563 } else {
12564 /* ./../lib/standard//collection//array.nit:280 */
12565 REGB0 = TAG_Bool(false);
12566 REGB2 = REGB0;
12567 }
12568 if (UNTAG_Bool(REGB2)) {
12569 } else {
12570 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12571 }
12572 /* ./../lib/standard//collection//array.nit:281 */
12573 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12574 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12575 if (UNTAG_Bool(REGB2)) {
12576 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12577 }
12578 /* ./../lib/standard//collection//array.nit:718 */
12579 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12580 /* ./../lib/standard//collection//array.nit:281 */
12581 goto label344;
12582 label344: while(0);
12583 /* ./compiling//compiling_icode.nit:844 */
12584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12585 if (!once_value_345) {
12586 fra.me.REG[7] = BOX_NativeString("))");
12587 REGB1 = TAG_Int(2);
12588 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12589 once_value_345 = fra.me.REG[7];
12590 register_static_object(&once_value_345);
12591 } else fra.me.REG[7] = once_value_345;
12592 fra.me.REG[7] = fra.me.REG[7];
12593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12594 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12595 fra.me.REG[5] = fra.me.REG[6];
12596 } else {
12597 /* ./compiling//compiling_icode.nit:845 */
12598 if (!once_value_346) {
12599 if (!once_value_347) {
12600 fra.me.REG[6] = BOX_NativeString("==");
12601 REGB1 = TAG_Int(2);
12602 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12603 once_value_347 = fra.me.REG[6];
12604 register_static_object(&once_value_347);
12605 } else fra.me.REG[6] = once_value_347;
12606 fra.me.REG[6] = fra.me.REG[6];
12607 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12608 once_value_346 = fra.me.REG[6];
12609 register_static_object(&once_value_346);
12610 } else fra.me.REG[6] = once_value_346;
12611 fra.me.REG[6] = fra.me.REG[6];
12612 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12613 if (UNTAG_Bool(REGB1)) {
12614 } else {
12615 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12616 REGB1 = REGB2;
12617 }
12618 if (UNTAG_Bool(REGB1)) {
12619 /* ./compiling//compiling_icode.nit:846 */
12620 REGB1 = TAG_Int(5);
12621 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12622 if (!once_value_348) {
12623 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12624 REGB1 = TAG_Int(10);
12625 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12626 once_value_348 = fra.me.REG[7];
12627 register_static_object(&once_value_348);
12628 } else fra.me.REG[7] = once_value_348;
12629 fra.me.REG[7] = fra.me.REG[7];
12630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12631 REGB1 = TAG_Int(0);
12632 /* ./../lib/standard//collection//array.nit:278 */
12633 fra.me.REG[7] = fra.me.REG[4];
12634 /* ./../lib/standard//collection//array.nit:280 */
12635 REGB2 = TAG_Int(0);
12636 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12637 if (UNTAG_Bool(REGB0)) {
12638 } else {
12639 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12640 }
12641 /* ./../lib/standard//kernel.nit:233 */
12642 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12643 /* ./../lib/standard//collection//array.nit:280 */
12644 if (UNTAG_Bool(REGB2)) {
12645 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12646 if (UNTAG_Bool(REGB2)) {
12647 } else {
12648 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12649 }
12650 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12651 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12652 if (UNTAG_Bool(REGB0)) {
12653 } else {
12654 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12655 }
12656 /* ./../lib/standard//kernel.nit:232 */
12657 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12658 } else {
12659 /* ./../lib/standard//collection//array.nit:280 */
12660 REGB0 = TAG_Bool(false);
12661 REGB2 = REGB0;
12662 }
12663 if (UNTAG_Bool(REGB2)) {
12664 } else {
12665 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12666 }
12667 /* ./../lib/standard//collection//array.nit:281 */
12668 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12669 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12670 if (UNTAG_Bool(REGB2)) {
12671 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12672 }
12673 /* ./../lib/standard//collection//array.nit:718 */
12674 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12675 /* ./../lib/standard//collection//array.nit:281 */
12676 goto label349;
12677 label349: while(0);
12678 /* ./compiling//compiling_icode.nit:846 */
12679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12680 if (!once_value_350) {
12681 fra.me.REG[7] = BOX_NativeString(")==(");
12682 REGB1 = TAG_Int(4);
12683 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12684 once_value_350 = fra.me.REG[7];
12685 register_static_object(&once_value_350);
12686 } else fra.me.REG[7] = once_value_350;
12687 fra.me.REG[7] = fra.me.REG[7];
12688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12689 REGB1 = TAG_Int(1);
12690 /* ./../lib/standard//collection//array.nit:278 */
12691 fra.me.REG[7] = fra.me.REG[4];
12692 /* ./../lib/standard//collection//array.nit:280 */
12693 REGB2 = TAG_Int(0);
12694 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12695 if (UNTAG_Bool(REGB0)) {
12696 } else {
12697 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12698 }
12699 /* ./../lib/standard//kernel.nit:233 */
12700 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12701 /* ./../lib/standard//collection//array.nit:280 */
12702 if (UNTAG_Bool(REGB2)) {
12703 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12704 if (UNTAG_Bool(REGB2)) {
12705 } else {
12706 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12707 }
12708 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12709 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12710 if (UNTAG_Bool(REGB0)) {
12711 } else {
12712 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12713 }
12714 /* ./../lib/standard//kernel.nit:232 */
12715 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12716 } else {
12717 /* ./../lib/standard//collection//array.nit:280 */
12718 REGB0 = TAG_Bool(false);
12719 REGB2 = REGB0;
12720 }
12721 if (UNTAG_Bool(REGB2)) {
12722 } else {
12723 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12724 }
12725 /* ./../lib/standard//collection//array.nit:281 */
12726 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12727 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12728 if (UNTAG_Bool(REGB2)) {
12729 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12730 }
12731 /* ./../lib/standard//collection//array.nit:718 */
12732 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12733 /* ./../lib/standard//collection//array.nit:281 */
12734 goto label351;
12735 label351: while(0);
12736 /* ./compiling//compiling_icode.nit:846 */
12737 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12738 if (!once_value_352) {
12739 fra.me.REG[7] = BOX_NativeString("))");
12740 REGB1 = TAG_Int(2);
12741 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12742 once_value_352 = fra.me.REG[7];
12743 register_static_object(&once_value_352);
12744 } else fra.me.REG[7] = once_value_352;
12745 fra.me.REG[7] = fra.me.REG[7];
12746 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12747 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12748 fra.me.REG[5] = fra.me.REG[6];
12749 } else {
12750 /* ./compiling//compiling_icode.nit:847 */
12751 if (!once_value_353) {
12752 if (!once_value_354) {
12753 fra.me.REG[6] = BOX_NativeString("!=");
12754 REGB1 = TAG_Int(2);
12755 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12756 once_value_354 = fra.me.REG[6];
12757 register_static_object(&once_value_354);
12758 } else fra.me.REG[6] = once_value_354;
12759 fra.me.REG[6] = fra.me.REG[6];
12760 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12761 once_value_353 = fra.me.REG[6];
12762 register_static_object(&once_value_353);
12763 } else fra.me.REG[6] = once_value_353;
12764 fra.me.REG[6] = fra.me.REG[6];
12765 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12766 if (UNTAG_Bool(REGB1)) {
12767 } else {
12768 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12769 REGB1 = REGB2;
12770 }
12771 if (UNTAG_Bool(REGB1)) {
12772 /* ./compiling//compiling_icode.nit:848 */
12773 REGB1 = TAG_Int(5);
12774 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12775 if (!once_value_355) {
12776 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12777 REGB1 = TAG_Int(10);
12778 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12779 once_value_355 = fra.me.REG[7];
12780 register_static_object(&once_value_355);
12781 } else fra.me.REG[7] = once_value_355;
12782 fra.me.REG[7] = fra.me.REG[7];
12783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12784 REGB1 = TAG_Int(0);
12785 /* ./../lib/standard//collection//array.nit:278 */
12786 fra.me.REG[7] = fra.me.REG[4];
12787 /* ./../lib/standard//collection//array.nit:280 */
12788 REGB2 = TAG_Int(0);
12789 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12790 if (UNTAG_Bool(REGB0)) {
12791 } else {
12792 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12793 }
12794 /* ./../lib/standard//kernel.nit:233 */
12795 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12796 /* ./../lib/standard//collection//array.nit:280 */
12797 if (UNTAG_Bool(REGB2)) {
12798 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12799 if (UNTAG_Bool(REGB2)) {
12800 } else {
12801 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12802 }
12803 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12804 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12805 if (UNTAG_Bool(REGB0)) {
12806 } else {
12807 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12808 }
12809 /* ./../lib/standard//kernel.nit:232 */
12810 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12811 } else {
12812 /* ./../lib/standard//collection//array.nit:280 */
12813 REGB0 = TAG_Bool(false);
12814 REGB2 = REGB0;
12815 }
12816 if (UNTAG_Bool(REGB2)) {
12817 } else {
12818 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12819 }
12820 /* ./../lib/standard//collection//array.nit:281 */
12821 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12822 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12823 if (UNTAG_Bool(REGB2)) {
12824 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12825 }
12826 /* ./../lib/standard//collection//array.nit:718 */
12827 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12828 /* ./../lib/standard//collection//array.nit:281 */
12829 goto label356;
12830 label356: while(0);
12831 /* ./compiling//compiling_icode.nit:848 */
12832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12833 if (!once_value_357) {
12834 fra.me.REG[7] = BOX_NativeString(")!=(");
12835 REGB1 = TAG_Int(4);
12836 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12837 once_value_357 = fra.me.REG[7];
12838 register_static_object(&once_value_357);
12839 } else fra.me.REG[7] = once_value_357;
12840 fra.me.REG[7] = fra.me.REG[7];
12841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12842 REGB1 = TAG_Int(1);
12843 /* ./../lib/standard//collection//array.nit:278 */
12844 fra.me.REG[7] = fra.me.REG[4];
12845 /* ./../lib/standard//collection//array.nit:280 */
12846 REGB2 = TAG_Int(0);
12847 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12848 if (UNTAG_Bool(REGB0)) {
12849 } else {
12850 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12851 }
12852 /* ./../lib/standard//kernel.nit:233 */
12853 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12854 /* ./../lib/standard//collection//array.nit:280 */
12855 if (UNTAG_Bool(REGB2)) {
12856 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12857 if (UNTAG_Bool(REGB2)) {
12858 } else {
12859 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12860 }
12861 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12862 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12863 if (UNTAG_Bool(REGB0)) {
12864 } else {
12865 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12866 }
12867 /* ./../lib/standard//kernel.nit:232 */
12868 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12869 } else {
12870 /* ./../lib/standard//collection//array.nit:280 */
12871 REGB0 = TAG_Bool(false);
12872 REGB2 = REGB0;
12873 }
12874 if (UNTAG_Bool(REGB2)) {
12875 } else {
12876 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12877 }
12878 /* ./../lib/standard//collection//array.nit:281 */
12879 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12880 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12881 if (UNTAG_Bool(REGB2)) {
12882 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12883 }
12884 /* ./../lib/standard//collection//array.nit:718 */
12885 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12886 /* ./../lib/standard//collection//array.nit:281 */
12887 goto label358;
12888 label358: while(0);
12889 /* ./compiling//compiling_icode.nit:848 */
12890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12891 if (!once_value_359) {
12892 fra.me.REG[7] = BOX_NativeString("))");
12893 REGB1 = TAG_Int(2);
12894 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12895 once_value_359 = fra.me.REG[7];
12896 register_static_object(&once_value_359);
12897 } else fra.me.REG[7] = once_value_359;
12898 fra.me.REG[7] = fra.me.REG[7];
12899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12900 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12901 fra.me.REG[5] = fra.me.REG[6];
12902 }
12903 }
12904 }
12905 }
12906 }
12907 }
12908 }
12909 } else {
12910 /* ./compiling//compiling_icode.nit:850 */
12911 if (!once_value_360) {
12912 if (!once_value_361) {
12913 fra.me.REG[6] = BOX_NativeString("NativeArray");
12914 REGB1 = TAG_Int(11);
12915 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12916 once_value_361 = fra.me.REG[6];
12917 register_static_object(&once_value_361);
12918 } else fra.me.REG[6] = once_value_361;
12919 fra.me.REG[6] = fra.me.REG[6];
12920 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12921 once_value_360 = fra.me.REG[6];
12922 register_static_object(&once_value_360);
12923 } else fra.me.REG[6] = once_value_360;
12924 fra.me.REG[6] = fra.me.REG[6];
12925 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12926 if (UNTAG_Bool(REGB1)) {
12927 } else {
12928 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12929 REGB1 = REGB2;
12930 }
12931 if (UNTAG_Bool(REGB1)) {
12932 /* ./compiling//compiling_icode.nit:851 */
12933 if (!once_value_362) {
12934 if (!once_value_363) {
12935 fra.me.REG[6] = BOX_NativeString("object_id");
12936 REGB1 = TAG_Int(9);
12937 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12938 once_value_363 = fra.me.REG[6];
12939 register_static_object(&once_value_363);
12940 } else fra.me.REG[6] = once_value_363;
12941 fra.me.REG[6] = fra.me.REG[6];
12942 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12943 once_value_362 = fra.me.REG[6];
12944 register_static_object(&once_value_362);
12945 } else fra.me.REG[6] = once_value_362;
12946 fra.me.REG[6] = fra.me.REG[6];
12947 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12948 if (UNTAG_Bool(REGB1)) {
12949 } else {
12950 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12951 REGB1 = REGB2;
12952 }
12953 if (UNTAG_Bool(REGB1)) {
12954 /* ./compiling//compiling_icode.nit:852 */
12955 REGB1 = TAG_Int(3);
12956 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12957 if (!once_value_364) {
12958 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
12959 REGB1 = TAG_Int(26);
12960 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12961 once_value_364 = fra.me.REG[7];
12962 register_static_object(&once_value_364);
12963 } else fra.me.REG[7] = once_value_364;
12964 fra.me.REG[7] = fra.me.REG[7];
12965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12966 REGB1 = TAG_Int(0);
12967 /* ./../lib/standard//collection//array.nit:278 */
12968 fra.me.REG[7] = fra.me.REG[4];
12969 /* ./../lib/standard//collection//array.nit:280 */
12970 REGB2 = TAG_Int(0);
12971 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12972 if (UNTAG_Bool(REGB0)) {
12973 } else {
12974 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12975 }
12976 /* ./../lib/standard//kernel.nit:233 */
12977 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12978 /* ./../lib/standard//collection//array.nit:280 */
12979 if (UNTAG_Bool(REGB2)) {
12980 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12981 if (UNTAG_Bool(REGB2)) {
12982 } else {
12983 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12984 }
12985 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12986 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12987 if (UNTAG_Bool(REGB0)) {
12988 } else {
12989 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12990 }
12991 /* ./../lib/standard//kernel.nit:232 */
12992 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12993 } else {
12994 /* ./../lib/standard//collection//array.nit:280 */
12995 REGB0 = TAG_Bool(false);
12996 REGB2 = REGB0;
12997 }
12998 if (UNTAG_Bool(REGB2)) {
12999 } else {
13000 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13001 }
13002 /* ./../lib/standard//collection//array.nit:281 */
13003 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13004 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13005 if (UNTAG_Bool(REGB2)) {
13006 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13007 }
13008 /* ./../lib/standard//collection//array.nit:718 */
13009 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13010 /* ./../lib/standard//collection//array.nit:281 */
13011 goto label365;
13012 label365: while(0);
13013 /* ./compiling//compiling_icode.nit:852 */
13014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13015 if (!once_value_366) {
13016 fra.me.REG[7] = BOX_NativeString(")->object_id)");
13017 REGB1 = TAG_Int(13);
13018 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13019 once_value_366 = fra.me.REG[7];
13020 register_static_object(&once_value_366);
13021 } else fra.me.REG[7] = once_value_366;
13022 fra.me.REG[7] = fra.me.REG[7];
13023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13024 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13025 fra.me.REG[5] = fra.me.REG[6];
13026 } else {
13027 /* ./compiling//compiling_icode.nit:853 */
13028 if (!once_value_367) {
13029 if (!once_value_368) {
13030 fra.me.REG[6] = BOX_NativeString("[]");
13031 REGB1 = TAG_Int(2);
13032 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13033 once_value_368 = fra.me.REG[6];
13034 register_static_object(&once_value_368);
13035 } else fra.me.REG[6] = once_value_368;
13036 fra.me.REG[6] = fra.me.REG[6];
13037 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13038 once_value_367 = fra.me.REG[6];
13039 register_static_object(&once_value_367);
13040 } else fra.me.REG[6] = once_value_367;
13041 fra.me.REG[6] = fra.me.REG[6];
13042 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13043 if (UNTAG_Bool(REGB1)) {
13044 } else {
13045 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13046 REGB1 = REGB2;
13047 }
13048 if (UNTAG_Bool(REGB1)) {
13049 /* ./compiling//compiling_icode.nit:854 */
13050 REGB1 = TAG_Int(5);
13051 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13052 if (!once_value_369) {
13053 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13054 REGB1 = TAG_Int(18);
13055 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13056 once_value_369 = fra.me.REG[7];
13057 register_static_object(&once_value_369);
13058 } else fra.me.REG[7] = once_value_369;
13059 fra.me.REG[7] = fra.me.REG[7];
13060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13061 REGB1 = TAG_Int(0);
13062 /* ./../lib/standard//collection//array.nit:278 */
13063 fra.me.REG[7] = fra.me.REG[4];
13064 /* ./../lib/standard//collection//array.nit:280 */
13065 REGB2 = TAG_Int(0);
13066 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13067 if (UNTAG_Bool(REGB0)) {
13068 } else {
13069 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13070 }
13071 /* ./../lib/standard//kernel.nit:233 */
13072 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13073 /* ./../lib/standard//collection//array.nit:280 */
13074 if (UNTAG_Bool(REGB2)) {
13075 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13076 if (UNTAG_Bool(REGB2)) {
13077 } else {
13078 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13079 }
13080 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13081 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13082 if (UNTAG_Bool(REGB0)) {
13083 } else {
13084 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13085 }
13086 /* ./../lib/standard//kernel.nit:232 */
13087 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13088 } else {
13089 /* ./../lib/standard//collection//array.nit:280 */
13090 REGB0 = TAG_Bool(false);
13091 REGB2 = REGB0;
13092 }
13093 if (UNTAG_Bool(REGB2)) {
13094 } else {
13095 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13096 }
13097 /* ./../lib/standard//collection//array.nit:281 */
13098 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13099 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13100 if (UNTAG_Bool(REGB2)) {
13101 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13102 }
13103 /* ./../lib/standard//collection//array.nit:718 */
13104 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13105 /* ./../lib/standard//collection//array.nit:281 */
13106 goto label370;
13107 label370: while(0);
13108 /* ./compiling//compiling_icode.nit:854 */
13109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13110 if (!once_value_371) {
13111 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13112 REGB1 = TAG_Int(17);
13113 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13114 once_value_371 = fra.me.REG[7];
13115 register_static_object(&once_value_371);
13116 } else fra.me.REG[7] = once_value_371;
13117 fra.me.REG[7] = fra.me.REG[7];
13118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13119 REGB1 = TAG_Int(1);
13120 /* ./../lib/standard//collection//array.nit:278 */
13121 fra.me.REG[7] = fra.me.REG[4];
13122 /* ./../lib/standard//collection//array.nit:280 */
13123 REGB2 = TAG_Int(0);
13124 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13125 if (UNTAG_Bool(REGB0)) {
13126 } else {
13127 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13128 }
13129 /* ./../lib/standard//kernel.nit:233 */
13130 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13131 /* ./../lib/standard//collection//array.nit:280 */
13132 if (UNTAG_Bool(REGB2)) {
13133 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13134 if (UNTAG_Bool(REGB2)) {
13135 } else {
13136 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13137 }
13138 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13139 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13140 if (UNTAG_Bool(REGB0)) {
13141 } else {
13142 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13143 }
13144 /* ./../lib/standard//kernel.nit:232 */
13145 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13146 } else {
13147 /* ./../lib/standard//collection//array.nit:280 */
13148 REGB0 = TAG_Bool(false);
13149 REGB2 = REGB0;
13150 }
13151 if (UNTAG_Bool(REGB2)) {
13152 } else {
13153 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13154 }
13155 /* ./../lib/standard//collection//array.nit:281 */
13156 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13157 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13158 if (UNTAG_Bool(REGB2)) {
13159 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13160 }
13161 /* ./../lib/standard//collection//array.nit:718 */
13162 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13163 /* ./../lib/standard//collection//array.nit:281 */
13164 goto label372;
13165 label372: while(0);
13166 /* ./compiling//compiling_icode.nit:854 */
13167 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13168 if (!once_value_373) {
13169 fra.me.REG[7] = BOX_NativeString(")]");
13170 REGB1 = TAG_Int(2);
13171 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13172 once_value_373 = fra.me.REG[7];
13173 register_static_object(&once_value_373);
13174 } else fra.me.REG[7] = once_value_373;
13175 fra.me.REG[7] = fra.me.REG[7];
13176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13177 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13178 fra.me.REG[5] = fra.me.REG[6];
13179 } else {
13180 /* ./compiling//compiling_icode.nit:855 */
13181 if (!once_value_374) {
13182 if (!once_value_375) {
13183 fra.me.REG[6] = BOX_NativeString("[]=");
13184 REGB1 = TAG_Int(3);
13185 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13186 once_value_375 = fra.me.REG[6];
13187 register_static_object(&once_value_375);
13188 } else fra.me.REG[6] = once_value_375;
13189 fra.me.REG[6] = fra.me.REG[6];
13190 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13191 once_value_374 = fra.me.REG[6];
13192 register_static_object(&once_value_374);
13193 } else fra.me.REG[6] = once_value_374;
13194 fra.me.REG[6] = fra.me.REG[6];
13195 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13196 if (UNTAG_Bool(REGB1)) {
13197 } else {
13198 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13199 REGB1 = REGB2;
13200 }
13201 if (UNTAG_Bool(REGB1)) {
13202 /* ./compiling//compiling_icode.nit:856 */
13203 REGB1 = TAG_Int(7);
13204 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13205 if (!once_value_376) {
13206 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13207 REGB1 = TAG_Int(18);
13208 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13209 once_value_376 = fra.me.REG[7];
13210 register_static_object(&once_value_376);
13211 } else fra.me.REG[7] = once_value_376;
13212 fra.me.REG[7] = fra.me.REG[7];
13213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13214 REGB1 = TAG_Int(0);
13215 /* ./../lib/standard//collection//array.nit:278 */
13216 fra.me.REG[7] = fra.me.REG[4];
13217 /* ./../lib/standard//collection//array.nit:280 */
13218 REGB2 = TAG_Int(0);
13219 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13220 if (UNTAG_Bool(REGB0)) {
13221 } else {
13222 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13223 }
13224 /* ./../lib/standard//kernel.nit:233 */
13225 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13226 /* ./../lib/standard//collection//array.nit:280 */
13227 if (UNTAG_Bool(REGB2)) {
13228 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13229 if (UNTAG_Bool(REGB2)) {
13230 } else {
13231 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13232 }
13233 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13234 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13235 if (UNTAG_Bool(REGB0)) {
13236 } else {
13237 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13238 }
13239 /* ./../lib/standard//kernel.nit:232 */
13240 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13241 } else {
13242 /* ./../lib/standard//collection//array.nit:280 */
13243 REGB0 = TAG_Bool(false);
13244 REGB2 = REGB0;
13245 }
13246 if (UNTAG_Bool(REGB2)) {
13247 } else {
13248 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13249 }
13250 /* ./../lib/standard//collection//array.nit:281 */
13251 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13252 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13253 if (UNTAG_Bool(REGB2)) {
13254 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13255 }
13256 /* ./../lib/standard//collection//array.nit:718 */
13257 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13258 /* ./../lib/standard//collection//array.nit:281 */
13259 goto label377;
13260 label377: while(0);
13261 /* ./compiling//compiling_icode.nit:856 */
13262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13263 if (!once_value_378) {
13264 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13265 REGB1 = TAG_Int(17);
13266 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13267 once_value_378 = fra.me.REG[7];
13268 register_static_object(&once_value_378);
13269 } else fra.me.REG[7] = once_value_378;
13270 fra.me.REG[7] = fra.me.REG[7];
13271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13272 REGB1 = TAG_Int(1);
13273 /* ./../lib/standard//collection//array.nit:278 */
13274 fra.me.REG[7] = fra.me.REG[4];
13275 /* ./../lib/standard//collection//array.nit:280 */
13276 REGB2 = TAG_Int(0);
13277 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13278 if (UNTAG_Bool(REGB0)) {
13279 } else {
13280 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13281 }
13282 /* ./../lib/standard//kernel.nit:233 */
13283 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13284 /* ./../lib/standard//collection//array.nit:280 */
13285 if (UNTAG_Bool(REGB2)) {
13286 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13287 if (UNTAG_Bool(REGB2)) {
13288 } else {
13289 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13290 }
13291 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13292 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13293 if (UNTAG_Bool(REGB0)) {
13294 } else {
13295 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13296 }
13297 /* ./../lib/standard//kernel.nit:232 */
13298 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13299 } else {
13300 /* ./../lib/standard//collection//array.nit:280 */
13301 REGB0 = TAG_Bool(false);
13302 REGB2 = REGB0;
13303 }
13304 if (UNTAG_Bool(REGB2)) {
13305 } else {
13306 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13307 }
13308 /* ./../lib/standard//collection//array.nit:281 */
13309 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13310 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13311 if (UNTAG_Bool(REGB2)) {
13312 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13313 }
13314 /* ./../lib/standard//collection//array.nit:718 */
13315 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13316 /* ./../lib/standard//collection//array.nit:281 */
13317 goto label379;
13318 label379: while(0);
13319 /* ./compiling//compiling_icode.nit:856 */
13320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13321 if (!once_value_380) {
13322 fra.me.REG[7] = BOX_NativeString(")]=");
13323 REGB1 = TAG_Int(3);
13324 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13325 once_value_380 = fra.me.REG[7];
13326 register_static_object(&once_value_380);
13327 } else fra.me.REG[7] = once_value_380;
13328 fra.me.REG[7] = fra.me.REG[7];
13329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13330 REGB1 = TAG_Int(2);
13331 /* ./../lib/standard//collection//array.nit:278 */
13332 fra.me.REG[7] = fra.me.REG[4];
13333 /* ./../lib/standard//collection//array.nit:280 */
13334 REGB2 = TAG_Int(0);
13335 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13336 if (UNTAG_Bool(REGB0)) {
13337 } else {
13338 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13339 }
13340 /* ./../lib/standard//kernel.nit:233 */
13341 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13342 /* ./../lib/standard//collection//array.nit:280 */
13343 if (UNTAG_Bool(REGB2)) {
13344 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13345 if (UNTAG_Bool(REGB2)) {
13346 } else {
13347 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13348 }
13349 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13350 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13351 if (UNTAG_Bool(REGB0)) {
13352 } else {
13353 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13354 }
13355 /* ./../lib/standard//kernel.nit:232 */
13356 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13357 } else {
13358 /* ./../lib/standard//collection//array.nit:280 */
13359 REGB0 = TAG_Bool(false);
13360 REGB2 = REGB0;
13361 }
13362 if (UNTAG_Bool(REGB2)) {
13363 } else {
13364 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13365 }
13366 /* ./../lib/standard//collection//array.nit:281 */
13367 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13368 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13369 if (UNTAG_Bool(REGB2)) {
13370 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13371 }
13372 /* ./../lib/standard//collection//array.nit:718 */
13373 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13374 /* ./../lib/standard//collection//array.nit:281 */
13375 goto label381;
13376 label381: while(0);
13377 /* ./compiling//compiling_icode.nit:856 */
13378 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13379 if (!once_value_382) {
13380 fra.me.REG[7] = BOX_NativeString("");
13381 REGB1 = TAG_Int(0);
13382 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13383 once_value_382 = fra.me.REG[7];
13384 register_static_object(&once_value_382);
13385 } else fra.me.REG[7] = once_value_382;
13386 fra.me.REG[7] = fra.me.REG[7];
13387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13388 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13389 fra.me.REG[5] = fra.me.REG[6];
13390 } else {
13391 /* ./compiling//compiling_icode.nit:857 */
13392 if (!once_value_383) {
13393 if (!once_value_384) {
13394 fra.me.REG[6] = BOX_NativeString("copy_to");
13395 REGB1 = TAG_Int(7);
13396 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13397 once_value_384 = fra.me.REG[6];
13398 register_static_object(&once_value_384);
13399 } else fra.me.REG[6] = once_value_384;
13400 fra.me.REG[6] = fra.me.REG[6];
13401 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13402 once_value_383 = fra.me.REG[6];
13403 register_static_object(&once_value_383);
13404 } else fra.me.REG[6] = once_value_383;
13405 fra.me.REG[6] = fra.me.REG[6];
13406 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13407 if (UNTAG_Bool(REGB1)) {
13408 } else {
13409 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13410 REGB1 = REGB2;
13411 }
13412 if (UNTAG_Bool(REGB1)) {
13413 /* ./compiling//compiling_icode.nit:858 */
13414 REGB1 = TAG_Int(7);
13415 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13416 if (!once_value_385) {
13417 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
13418 REGB1 = TAG_Int(32);
13419 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13420 once_value_385 = fra.me.REG[7];
13421 register_static_object(&once_value_385);
13422 } else fra.me.REG[7] = once_value_385;
13423 fra.me.REG[7] = fra.me.REG[7];
13424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13425 REGB1 = TAG_Int(1);
13426 /* ./../lib/standard//collection//array.nit:278 */
13427 fra.me.REG[7] = fra.me.REG[4];
13428 /* ./../lib/standard//collection//array.nit:280 */
13429 REGB2 = TAG_Int(0);
13430 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13431 if (UNTAG_Bool(REGB0)) {
13432 } else {
13433 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13434 }
13435 /* ./../lib/standard//kernel.nit:233 */
13436 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13437 /* ./../lib/standard//collection//array.nit:280 */
13438 if (UNTAG_Bool(REGB2)) {
13439 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13440 if (UNTAG_Bool(REGB2)) {
13441 } else {
13442 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13443 }
13444 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13445 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13446 if (UNTAG_Bool(REGB0)) {
13447 } else {
13448 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13449 }
13450 /* ./../lib/standard//kernel.nit:232 */
13451 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13452 } else {
13453 /* ./../lib/standard//collection//array.nit:280 */
13454 REGB0 = TAG_Bool(false);
13455 REGB2 = REGB0;
13456 }
13457 if (UNTAG_Bool(REGB2)) {
13458 } else {
13459 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13460 }
13461 /* ./../lib/standard//collection//array.nit:281 */
13462 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13463 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13464 if (UNTAG_Bool(REGB2)) {
13465 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13466 }
13467 /* ./../lib/standard//collection//array.nit:718 */
13468 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13469 /* ./../lib/standard//collection//array.nit:281 */
13470 goto label386;
13471 label386: while(0);
13472 /* ./compiling//compiling_icode.nit:858 */
13473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13474 if (!once_value_387) {
13475 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
13476 REGB1 = TAG_Int(26);
13477 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13478 once_value_387 = fra.me.REG[7];
13479 register_static_object(&once_value_387);
13480 } else fra.me.REG[7] = once_value_387;
13481 fra.me.REG[7] = fra.me.REG[7];
13482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13483 REGB1 = TAG_Int(0);
13484 /* ./../lib/standard//collection//array.nit:278 */
13485 fra.me.REG[7] = fra.me.REG[4];
13486 /* ./../lib/standard//collection//array.nit:280 */
13487 REGB2 = TAG_Int(0);
13488 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13489 if (UNTAG_Bool(REGB0)) {
13490 } else {
13491 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13492 }
13493 /* ./../lib/standard//kernel.nit:233 */
13494 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13495 /* ./../lib/standard//collection//array.nit:280 */
13496 if (UNTAG_Bool(REGB2)) {
13497 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13498 if (UNTAG_Bool(REGB2)) {
13499 } else {
13500 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13501 }
13502 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13503 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13504 if (UNTAG_Bool(REGB0)) {
13505 } else {
13506 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13507 }
13508 /* ./../lib/standard//kernel.nit:232 */
13509 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13510 } else {
13511 /* ./../lib/standard//collection//array.nit:280 */
13512 REGB0 = TAG_Bool(false);
13513 REGB2 = REGB0;
13514 }
13515 if (UNTAG_Bool(REGB2)) {
13516 } else {
13517 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13518 }
13519 /* ./../lib/standard//collection//array.nit:281 */
13520 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13521 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13522 if (UNTAG_Bool(REGB2)) {
13523 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13524 }
13525 /* ./../lib/standard//collection//array.nit:718 */
13526 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13527 /* ./../lib/standard//collection//array.nit:281 */
13528 goto label388;
13529 label388: while(0);
13530 /* ./compiling//compiling_icode.nit:858 */
13531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13532 if (!once_value_389) {
13533 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
13534 REGB1 = TAG_Int(18);
13535 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13536 once_value_389 = fra.me.REG[7];
13537 register_static_object(&once_value_389);
13538 } else fra.me.REG[7] = once_value_389;
13539 fra.me.REG[7] = fra.me.REG[7];
13540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13541 REGB1 = TAG_Int(2);
13542 /* ./../lib/standard//collection//array.nit:278 */
13543 fra.me.REG[7] = fra.me.REG[4];
13544 /* ./../lib/standard//collection//array.nit:280 */
13545 REGB2 = TAG_Int(0);
13546 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13547 if (UNTAG_Bool(REGB0)) {
13548 } else {
13549 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13550 }
13551 /* ./../lib/standard//kernel.nit:233 */
13552 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13553 /* ./../lib/standard//collection//array.nit:280 */
13554 if (UNTAG_Bool(REGB2)) {
13555 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13556 if (UNTAG_Bool(REGB2)) {
13557 } else {
13558 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13559 }
13560 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13561 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13562 if (UNTAG_Bool(REGB0)) {
13563 } else {
13564 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13565 }
13566 /* ./../lib/standard//kernel.nit:232 */
13567 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13568 } else {
13569 /* ./../lib/standard//collection//array.nit:280 */
13570 REGB0 = TAG_Bool(false);
13571 REGB2 = REGB0;
13572 }
13573 if (UNTAG_Bool(REGB2)) {
13574 } else {
13575 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13576 }
13577 /* ./../lib/standard//collection//array.nit:281 */
13578 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13579 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13580 if (UNTAG_Bool(REGB2)) {
13581 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13582 }
13583 /* ./../lib/standard//collection//array.nit:718 */
13584 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13585 /* ./../lib/standard//collection//array.nit:281 */
13586 goto label390;
13587 label390: while(0);
13588 /* ./compiling//compiling_icode.nit:858 */
13589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13590 if (!once_value_391) {
13591 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
13592 REGB1 = TAG_Int(16);
13593 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13594 once_value_391 = fra.me.REG[7];
13595 register_static_object(&once_value_391);
13596 } else fra.me.REG[7] = once_value_391;
13597 fra.me.REG[7] = fra.me.REG[7];
13598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13599 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13600 fra.me.REG[5] = fra.me.REG[6];
13601 }
13602 }
13603 }
13604 }
13605 } else {
13606 /* ./compiling//compiling_icode.nit:860 */
13607 if (!once_value_392) {
13608 if (!once_value_393) {
13609 fra.me.REG[6] = BOX_NativeString("NativeString");
13610 REGB1 = TAG_Int(12);
13611 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13612 once_value_393 = fra.me.REG[6];
13613 register_static_object(&once_value_393);
13614 } else fra.me.REG[6] = once_value_393;
13615 fra.me.REG[6] = fra.me.REG[6];
13616 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13617 once_value_392 = fra.me.REG[6];
13618 register_static_object(&once_value_392);
13619 } else fra.me.REG[6] = once_value_392;
13620 fra.me.REG[6] = fra.me.REG[6];
13621 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
13622 if (UNTAG_Bool(REGB1)) {
13623 } else {
13624 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
13625 REGB1 = REGB2;
13626 }
13627 if (UNTAG_Bool(REGB1)) {
13628 /* ./compiling//compiling_icode.nit:861 */
13629 if (!once_value_394) {
13630 if (!once_value_395) {
13631 fra.me.REG[6] = BOX_NativeString("object_id");
13632 REGB1 = TAG_Int(9);
13633 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13634 once_value_395 = fra.me.REG[6];
13635 register_static_object(&once_value_395);
13636 } else fra.me.REG[6] = once_value_395;
13637 fra.me.REG[6] = fra.me.REG[6];
13638 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13639 once_value_394 = fra.me.REG[6];
13640 register_static_object(&once_value_394);
13641 } else fra.me.REG[6] = once_value_394;
13642 fra.me.REG[6] = fra.me.REG[6];
13643 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13644 if (UNTAG_Bool(REGB1)) {
13645 } else {
13646 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13647 REGB1 = REGB2;
13648 }
13649 if (UNTAG_Bool(REGB1)) {
13650 /* ./compiling//compiling_icode.nit:862 */
13651 REGB1 = TAG_Int(3);
13652 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13653 if (!once_value_396) {
13654 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
13655 REGB1 = TAG_Int(27);
13656 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13657 once_value_396 = fra.me.REG[7];
13658 register_static_object(&once_value_396);
13659 } else fra.me.REG[7] = once_value_396;
13660 fra.me.REG[7] = fra.me.REG[7];
13661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13662 REGB1 = TAG_Int(0);
13663 /* ./../lib/standard//collection//array.nit:278 */
13664 fra.me.REG[7] = fra.me.REG[4];
13665 /* ./../lib/standard//collection//array.nit:280 */
13666 REGB2 = TAG_Int(0);
13667 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13668 if (UNTAG_Bool(REGB0)) {
13669 } else {
13670 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13671 }
13672 /* ./../lib/standard//kernel.nit:233 */
13673 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13674 /* ./../lib/standard//collection//array.nit:280 */
13675 if (UNTAG_Bool(REGB2)) {
13676 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13677 if (UNTAG_Bool(REGB2)) {
13678 } else {
13679 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13680 }
13681 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13682 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13683 if (UNTAG_Bool(REGB0)) {
13684 } else {
13685 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13686 }
13687 /* ./../lib/standard//kernel.nit:232 */
13688 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13689 } else {
13690 /* ./../lib/standard//collection//array.nit:280 */
13691 REGB0 = TAG_Bool(false);
13692 REGB2 = REGB0;
13693 }
13694 if (UNTAG_Bool(REGB2)) {
13695 } else {
13696 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13697 }
13698 /* ./../lib/standard//collection//array.nit:281 */
13699 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13700 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13701 if (UNTAG_Bool(REGB2)) {
13702 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13703 }
13704 /* ./../lib/standard//collection//array.nit:718 */
13705 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13706 /* ./../lib/standard//collection//array.nit:281 */
13707 goto label397;
13708 label397: while(0);
13709 /* ./compiling//compiling_icode.nit:862 */
13710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13711 if (!once_value_398) {
13712 fra.me.REG[7] = BOX_NativeString("))");
13713 REGB1 = TAG_Int(2);
13714 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13715 once_value_398 = fra.me.REG[7];
13716 register_static_object(&once_value_398);
13717 } else fra.me.REG[7] = once_value_398;
13718 fra.me.REG[7] = fra.me.REG[7];
13719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13720 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13721 fra.me.REG[5] = fra.me.REG[6];
13722 } else {
13723 /* ./compiling//compiling_icode.nit:863 */
13724 if (!once_value_399) {
13725 if (!once_value_400) {
13726 fra.me.REG[6] = BOX_NativeString("atoi");
13727 REGB1 = TAG_Int(4);
13728 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13729 once_value_400 = fra.me.REG[6];
13730 register_static_object(&once_value_400);
13731 } else fra.me.REG[6] = once_value_400;
13732 fra.me.REG[6] = fra.me.REG[6];
13733 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13734 once_value_399 = fra.me.REG[6];
13735 register_static_object(&once_value_399);
13736 } else fra.me.REG[6] = once_value_399;
13737 fra.me.REG[6] = fra.me.REG[6];
13738 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13739 if (UNTAG_Bool(REGB1)) {
13740 } else {
13741 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13742 REGB1 = REGB2;
13743 }
13744 if (UNTAG_Bool(REGB1)) {
13745 /* ./compiling//compiling_icode.nit:864 */
13746 REGB1 = TAG_Int(3);
13747 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13748 if (!once_value_401) {
13749 fra.me.REG[7] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
13750 REGB1 = TAG_Int(32);
13751 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13752 once_value_401 = fra.me.REG[7];
13753 register_static_object(&once_value_401);
13754 } else fra.me.REG[7] = once_value_401;
13755 fra.me.REG[7] = fra.me.REG[7];
13756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13757 REGB1 = TAG_Int(0);
13758 /* ./../lib/standard//collection//array.nit:278 */
13759 fra.me.REG[7] = fra.me.REG[4];
13760 /* ./../lib/standard//collection//array.nit:280 */
13761 REGB2 = TAG_Int(0);
13762 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13763 if (UNTAG_Bool(REGB0)) {
13764 } else {
13765 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13766 }
13767 /* ./../lib/standard//kernel.nit:233 */
13768 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13769 /* ./../lib/standard//collection//array.nit:280 */
13770 if (UNTAG_Bool(REGB2)) {
13771 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13772 if (UNTAG_Bool(REGB2)) {
13773 } else {
13774 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13775 }
13776 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13777 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13778 if (UNTAG_Bool(REGB0)) {
13779 } else {
13780 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13781 }
13782 /* ./../lib/standard//kernel.nit:232 */
13783 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13784 } else {
13785 /* ./../lib/standard//collection//array.nit:280 */
13786 REGB0 = TAG_Bool(false);
13787 REGB2 = REGB0;
13788 }
13789 if (UNTAG_Bool(REGB2)) {
13790 } else {
13791 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13792 }
13793 /* ./../lib/standard//collection//array.nit:281 */
13794 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13795 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13796 if (UNTAG_Bool(REGB2)) {
13797 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13798 }
13799 /* ./../lib/standard//collection//array.nit:718 */
13800 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13801 /* ./../lib/standard//collection//array.nit:281 */
13802 goto label402;
13803 label402: while(0);
13804 /* ./compiling//compiling_icode.nit:864 */
13805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13806 if (!once_value_403) {
13807 fra.me.REG[7] = BOX_NativeString(")))");
13808 REGB1 = TAG_Int(3);
13809 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13810 once_value_403 = fra.me.REG[7];
13811 register_static_object(&once_value_403);
13812 } else fra.me.REG[7] = once_value_403;
13813 fra.me.REG[7] = fra.me.REG[7];
13814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13815 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13816 fra.me.REG[5] = fra.me.REG[6];
13817 } else {
13818 /* ./compiling//compiling_icode.nit:865 */
13819 if (!once_value_404) {
13820 if (!once_value_405) {
13821 fra.me.REG[6] = BOX_NativeString("[]");
13822 REGB1 = TAG_Int(2);
13823 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13824 once_value_405 = fra.me.REG[6];
13825 register_static_object(&once_value_405);
13826 } else fra.me.REG[6] = once_value_405;
13827 fra.me.REG[6] = fra.me.REG[6];
13828 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13829 once_value_404 = fra.me.REG[6];
13830 register_static_object(&once_value_404);
13831 } else fra.me.REG[6] = once_value_404;
13832 fra.me.REG[6] = fra.me.REG[6];
13833 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13834 if (UNTAG_Bool(REGB1)) {
13835 } else {
13836 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13837 REGB1 = REGB2;
13838 }
13839 if (UNTAG_Bool(REGB1)) {
13840 /* ./compiling//compiling_icode.nit:866 */
13841 REGB1 = TAG_Int(5);
13842 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13843 if (!once_value_406) {
13844 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
13845 REGB1 = TAG_Int(28);
13846 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13847 once_value_406 = fra.me.REG[7];
13848 register_static_object(&once_value_406);
13849 } else fra.me.REG[7] = once_value_406;
13850 fra.me.REG[7] = fra.me.REG[7];
13851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13852 REGB1 = TAG_Int(0);
13853 /* ./../lib/standard//collection//array.nit:278 */
13854 fra.me.REG[7] = fra.me.REG[4];
13855 /* ./../lib/standard//collection//array.nit:280 */
13856 REGB2 = TAG_Int(0);
13857 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13858 if (UNTAG_Bool(REGB0)) {
13859 } else {
13860 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13861 }
13862 /* ./../lib/standard//kernel.nit:233 */
13863 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13864 /* ./../lib/standard//collection//array.nit:280 */
13865 if (UNTAG_Bool(REGB2)) {
13866 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13867 if (UNTAG_Bool(REGB2)) {
13868 } else {
13869 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13870 }
13871 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13872 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13873 if (UNTAG_Bool(REGB0)) {
13874 } else {
13875 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13876 }
13877 /* ./../lib/standard//kernel.nit:232 */
13878 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13879 } else {
13880 /* ./../lib/standard//collection//array.nit:280 */
13881 REGB0 = TAG_Bool(false);
13882 REGB2 = REGB0;
13883 }
13884 if (UNTAG_Bool(REGB2)) {
13885 } else {
13886 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13887 }
13888 /* ./../lib/standard//collection//array.nit:281 */
13889 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13890 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13891 if (UNTAG_Bool(REGB2)) {
13892 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13893 }
13894 /* ./../lib/standard//collection//array.nit:718 */
13895 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13896 /* ./../lib/standard//collection//array.nit:281 */
13897 goto label407;
13898 label407: while(0);
13899 /* ./compiling//compiling_icode.nit:866 */
13900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13901 if (!once_value_408) {
13902 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
13903 REGB1 = TAG_Int(12);
13904 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13905 once_value_408 = fra.me.REG[7];
13906 register_static_object(&once_value_408);
13907 } else fra.me.REG[7] = once_value_408;
13908 fra.me.REG[7] = fra.me.REG[7];
13909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13910 REGB1 = TAG_Int(1);
13911 /* ./../lib/standard//collection//array.nit:278 */
13912 fra.me.REG[7] = fra.me.REG[4];
13913 /* ./../lib/standard//collection//array.nit:280 */
13914 REGB2 = TAG_Int(0);
13915 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13916 if (UNTAG_Bool(REGB0)) {
13917 } else {
13918 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13919 }
13920 /* ./../lib/standard//kernel.nit:233 */
13921 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13922 /* ./../lib/standard//collection//array.nit:280 */
13923 if (UNTAG_Bool(REGB2)) {
13924 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13925 if (UNTAG_Bool(REGB2)) {
13926 } else {
13927 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13928 }
13929 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13930 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13931 if (UNTAG_Bool(REGB0)) {
13932 } else {
13933 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13934 }
13935 /* ./../lib/standard//kernel.nit:232 */
13936 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13937 } else {
13938 /* ./../lib/standard//collection//array.nit:280 */
13939 REGB0 = TAG_Bool(false);
13940 REGB2 = REGB0;
13941 }
13942 if (UNTAG_Bool(REGB2)) {
13943 } else {
13944 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13945 }
13946 /* ./../lib/standard//collection//array.nit:281 */
13947 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13948 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13949 if (UNTAG_Bool(REGB2)) {
13950 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13951 }
13952 /* ./../lib/standard//collection//array.nit:718 */
13953 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13954 /* ./../lib/standard//collection//array.nit:281 */
13955 goto label409;
13956 label409: while(0);
13957 /* ./compiling//compiling_icode.nit:866 */
13958 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13959 if (!once_value_410) {
13960 fra.me.REG[7] = BOX_NativeString(")])");
13961 REGB1 = TAG_Int(3);
13962 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13963 once_value_410 = fra.me.REG[7];
13964 register_static_object(&once_value_410);
13965 } else fra.me.REG[7] = once_value_410;
13966 fra.me.REG[7] = fra.me.REG[7];
13967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13968 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13969 fra.me.REG[5] = fra.me.REG[6];
13970 } else {
13971 /* ./compiling//compiling_icode.nit:867 */
13972 if (!once_value_411) {
13973 if (!once_value_412) {
13974 fra.me.REG[6] = BOX_NativeString("[]=");
13975 REGB1 = TAG_Int(3);
13976 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13977 once_value_412 = fra.me.REG[6];
13978 register_static_object(&once_value_412);
13979 } else fra.me.REG[6] = once_value_412;
13980 fra.me.REG[6] = fra.me.REG[6];
13981 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13982 once_value_411 = fra.me.REG[6];
13983 register_static_object(&once_value_411);
13984 } else fra.me.REG[6] = once_value_411;
13985 fra.me.REG[6] = fra.me.REG[6];
13986 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13987 if (UNTAG_Bool(REGB1)) {
13988 } else {
13989 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13990 REGB1 = REGB2;
13991 }
13992 if (UNTAG_Bool(REGB1)) {
13993 /* ./compiling//compiling_icode.nit:868 */
13994 REGB1 = TAG_Int(7);
13995 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13996 if (!once_value_413) {
13997 fra.me.REG[7] = BOX_NativeString("UNBOX_NativeString(");
13998 REGB1 = TAG_Int(19);
13999 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14000 once_value_413 = fra.me.REG[7];
14001 register_static_object(&once_value_413);
14002 } else fra.me.REG[7] = once_value_413;
14003 fra.me.REG[7] = fra.me.REG[7];
14004 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14005 REGB1 = TAG_Int(0);
14006 /* ./../lib/standard//collection//array.nit:278 */
14007 fra.me.REG[7] = fra.me.REG[4];
14008 /* ./../lib/standard//collection//array.nit:280 */
14009 REGB2 = TAG_Int(0);
14010 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14011 if (UNTAG_Bool(REGB0)) {
14012 } else {
14013 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14014 }
14015 /* ./../lib/standard//kernel.nit:233 */
14016 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14017 /* ./../lib/standard//collection//array.nit:280 */
14018 if (UNTAG_Bool(REGB2)) {
14019 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14020 if (UNTAG_Bool(REGB2)) {
14021 } else {
14022 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14023 }
14024 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14025 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14026 if (UNTAG_Bool(REGB0)) {
14027 } else {
14028 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14029 }
14030 /* ./../lib/standard//kernel.nit:232 */
14031 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14032 } else {
14033 /* ./../lib/standard//collection//array.nit:280 */
14034 REGB0 = TAG_Bool(false);
14035 REGB2 = REGB0;
14036 }
14037 if (UNTAG_Bool(REGB2)) {
14038 } else {
14039 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14040 }
14041 /* ./../lib/standard//collection//array.nit:281 */
14042 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14043 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14044 if (UNTAG_Bool(REGB2)) {
14045 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14046 }
14047 /* ./../lib/standard//collection//array.nit:718 */
14048 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14049 /* ./../lib/standard//collection//array.nit:281 */
14050 goto label414;
14051 label414: while(0);
14052 /* ./compiling//compiling_icode.nit:868 */
14053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14054 if (!once_value_415) {
14055 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
14056 REGB1 = TAG_Int(12);
14057 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14058 once_value_415 = fra.me.REG[7];
14059 register_static_object(&once_value_415);
14060 } else fra.me.REG[7] = once_value_415;
14061 fra.me.REG[7] = fra.me.REG[7];
14062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14063 REGB1 = TAG_Int(1);
14064 /* ./../lib/standard//collection//array.nit:278 */
14065 fra.me.REG[7] = fra.me.REG[4];
14066 /* ./../lib/standard//collection//array.nit:280 */
14067 REGB2 = TAG_Int(0);
14068 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14069 if (UNTAG_Bool(REGB0)) {
14070 } else {
14071 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14072 }
14073 /* ./../lib/standard//kernel.nit:233 */
14074 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14075 /* ./../lib/standard//collection//array.nit:280 */
14076 if (UNTAG_Bool(REGB2)) {
14077 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14078 if (UNTAG_Bool(REGB2)) {
14079 } else {
14080 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14081 }
14082 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14083 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14084 if (UNTAG_Bool(REGB0)) {
14085 } else {
14086 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14087 }
14088 /* ./../lib/standard//kernel.nit:232 */
14089 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14090 } else {
14091 /* ./../lib/standard//collection//array.nit:280 */
14092 REGB0 = TAG_Bool(false);
14093 REGB2 = REGB0;
14094 }
14095 if (UNTAG_Bool(REGB2)) {
14096 } else {
14097 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14098 }
14099 /* ./../lib/standard//collection//array.nit:281 */
14100 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14101 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14102 if (UNTAG_Bool(REGB2)) {
14103 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14104 }
14105 /* ./../lib/standard//collection//array.nit:718 */
14106 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14107 /* ./../lib/standard//collection//array.nit:281 */
14108 goto label416;
14109 label416: while(0);
14110 /* ./compiling//compiling_icode.nit:868 */
14111 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14112 if (!once_value_417) {
14113 fra.me.REG[7] = BOX_NativeString(")]=UNTAG_Char(");
14114 REGB1 = TAG_Int(14);
14115 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14116 once_value_417 = fra.me.REG[7];
14117 register_static_object(&once_value_417);
14118 } else fra.me.REG[7] = once_value_417;
14119 fra.me.REG[7] = fra.me.REG[7];
14120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14121 REGB1 = TAG_Int(2);
14122 /* ./../lib/standard//collection//array.nit:278 */
14123 fra.me.REG[7] = fra.me.REG[4];
14124 /* ./../lib/standard//collection//array.nit:280 */
14125 REGB2 = TAG_Int(0);
14126 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14127 if (UNTAG_Bool(REGB0)) {
14128 } else {
14129 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14130 }
14131 /* ./../lib/standard//kernel.nit:233 */
14132 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14133 /* ./../lib/standard//collection//array.nit:280 */
14134 if (UNTAG_Bool(REGB2)) {
14135 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14136 if (UNTAG_Bool(REGB2)) {
14137 } else {
14138 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14139 }
14140 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14141 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14142 if (UNTAG_Bool(REGB0)) {
14143 } else {
14144 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14145 }
14146 /* ./../lib/standard//kernel.nit:232 */
14147 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14148 } else {
14149 /* ./../lib/standard//collection//array.nit:280 */
14150 REGB0 = TAG_Bool(false);
14151 REGB2 = REGB0;
14152 }
14153 if (UNTAG_Bool(REGB2)) {
14154 } else {
14155 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14156 }
14157 /* ./../lib/standard//collection//array.nit:281 */
14158 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14159 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14160 if (UNTAG_Bool(REGB2)) {
14161 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14162 }
14163 /* ./../lib/standard//collection//array.nit:718 */
14164 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14165 /* ./../lib/standard//collection//array.nit:281 */
14166 goto label418;
14167 label418: while(0);
14168 /* ./compiling//compiling_icode.nit:868 */
14169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14170 if (!once_value_419) {
14171 fra.me.REG[7] = BOX_NativeString(");");
14172 REGB1 = TAG_Int(2);
14173 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14174 once_value_419 = fra.me.REG[7];
14175 register_static_object(&once_value_419);
14176 } else fra.me.REG[7] = once_value_419;
14177 fra.me.REG[7] = fra.me.REG[7];
14178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14179 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14180 fra.me.REG[5] = fra.me.REG[6];
14181 } else {
14182 /* ./compiling//compiling_icode.nit:869 */
14183 if (!once_value_420) {
14184 if (!once_value_421) {
14185 fra.me.REG[6] = BOX_NativeString("copy_to");
14186 REGB1 = TAG_Int(7);
14187 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14188 once_value_421 = fra.me.REG[6];
14189 register_static_object(&once_value_421);
14190 } else fra.me.REG[6] = once_value_421;
14191 fra.me.REG[6] = fra.me.REG[6];
14192 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14193 once_value_420 = fra.me.REG[6];
14194 register_static_object(&once_value_420);
14195 } else fra.me.REG[6] = once_value_420;
14196 fra.me.REG[6] = fra.me.REG[6];
14197 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14198 if (UNTAG_Bool(REGB1)) {
14199 } else {
14200 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14201 REGB1 = REGB2;
14202 }
14203 if (UNTAG_Bool(REGB1)) {
14204 /* ./compiling//compiling_icode.nit:870 */
14205 REGB1 = TAG_Int(11);
14206 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14207 if (!once_value_422) {
14208 fra.me.REG[7] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
14209 REGB1 = TAG_Int(32);
14210 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14211 once_value_422 = fra.me.REG[7];
14212 register_static_object(&once_value_422);
14213 } else fra.me.REG[7] = once_value_422;
14214 fra.me.REG[7] = fra.me.REG[7];
14215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14216 REGB1 = TAG_Int(1);
14217 /* ./../lib/standard//collection//array.nit:278 */
14218 fra.me.REG[7] = fra.me.REG[4];
14219 /* ./../lib/standard//collection//array.nit:280 */
14220 REGB2 = TAG_Int(0);
14221 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14222 if (UNTAG_Bool(REGB0)) {
14223 } else {
14224 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14225 }
14226 /* ./../lib/standard//kernel.nit:233 */
14227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14228 /* ./../lib/standard//collection//array.nit:280 */
14229 if (UNTAG_Bool(REGB2)) {
14230 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14231 if (UNTAG_Bool(REGB2)) {
14232 } else {
14233 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14234 }
14235 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14236 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14237 if (UNTAG_Bool(REGB0)) {
14238 } else {
14239 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14240 }
14241 /* ./../lib/standard//kernel.nit:232 */
14242 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14243 } else {
14244 /* ./../lib/standard//collection//array.nit:280 */
14245 REGB0 = TAG_Bool(false);
14246 REGB2 = REGB0;
14247 }
14248 if (UNTAG_Bool(REGB2)) {
14249 } else {
14250 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14251 }
14252 /* ./../lib/standard//collection//array.nit:281 */
14253 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14254 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14255 if (UNTAG_Bool(REGB2)) {
14256 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14257 }
14258 /* ./../lib/standard//collection//array.nit:718 */
14259 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14260 /* ./../lib/standard//collection//array.nit:281 */
14261 goto label423;
14262 label423: while(0);
14263 /* ./compiling//compiling_icode.nit:870 */
14264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14265 if (!once_value_424) {
14266 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14267 REGB1 = TAG_Int(12);
14268 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14269 once_value_424 = fra.me.REG[7];
14270 register_static_object(&once_value_424);
14271 } else fra.me.REG[7] = once_value_424;
14272 fra.me.REG[7] = fra.me.REG[7];
14273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14274 REGB1 = TAG_Int(4);
14275 /* ./../lib/standard//collection//array.nit:278 */
14276 fra.me.REG[7] = fra.me.REG[4];
14277 /* ./../lib/standard//collection//array.nit:280 */
14278 REGB2 = TAG_Int(0);
14279 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14280 if (UNTAG_Bool(REGB0)) {
14281 } else {
14282 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14283 }
14284 /* ./../lib/standard//kernel.nit:233 */
14285 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14286 /* ./../lib/standard//collection//array.nit:280 */
14287 if (UNTAG_Bool(REGB2)) {
14288 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14289 if (UNTAG_Bool(REGB2)) {
14290 } else {
14291 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14292 }
14293 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14294 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14295 if (UNTAG_Bool(REGB0)) {
14296 } else {
14297 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14298 }
14299 /* ./../lib/standard//kernel.nit:232 */
14300 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14301 } else {
14302 /* ./../lib/standard//collection//array.nit:280 */
14303 REGB0 = TAG_Bool(false);
14304 REGB2 = REGB0;
14305 }
14306 if (UNTAG_Bool(REGB2)) {
14307 } else {
14308 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14309 }
14310 /* ./../lib/standard//collection//array.nit:281 */
14311 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14312 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14313 if (UNTAG_Bool(REGB2)) {
14314 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14315 }
14316 /* ./../lib/standard//collection//array.nit:718 */
14317 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14318 /* ./../lib/standard//collection//array.nit:281 */
14319 goto label425;
14320 label425: while(0);
14321 /* ./compiling//compiling_icode.nit:870 */
14322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14323 if (!once_value_426) {
14324 fra.me.REG[7] = BOX_NativeString("), UNBOX_NativeString(");
14325 REGB1 = TAG_Int(22);
14326 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14327 once_value_426 = fra.me.REG[7];
14328 register_static_object(&once_value_426);
14329 } else fra.me.REG[7] = once_value_426;
14330 fra.me.REG[7] = fra.me.REG[7];
14331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14332 REGB1 = TAG_Int(0);
14333 /* ./../lib/standard//collection//array.nit:278 */
14334 fra.me.REG[7] = fra.me.REG[4];
14335 /* ./../lib/standard//collection//array.nit:280 */
14336 REGB2 = TAG_Int(0);
14337 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14338 if (UNTAG_Bool(REGB0)) {
14339 } else {
14340 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14341 }
14342 /* ./../lib/standard//kernel.nit:233 */
14343 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14344 /* ./../lib/standard//collection//array.nit:280 */
14345 if (UNTAG_Bool(REGB2)) {
14346 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14347 if (UNTAG_Bool(REGB2)) {
14348 } else {
14349 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14350 }
14351 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14352 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14353 if (UNTAG_Bool(REGB0)) {
14354 } else {
14355 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14356 }
14357 /* ./../lib/standard//kernel.nit:232 */
14358 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14359 } else {
14360 /* ./../lib/standard//collection//array.nit:280 */
14361 REGB0 = TAG_Bool(false);
14362 REGB2 = REGB0;
14363 }
14364 if (UNTAG_Bool(REGB2)) {
14365 } else {
14366 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14367 }
14368 /* ./../lib/standard//collection//array.nit:281 */
14369 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14370 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14371 if (UNTAG_Bool(REGB2)) {
14372 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14373 }
14374 /* ./../lib/standard//collection//array.nit:718 */
14375 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14376 /* ./../lib/standard//collection//array.nit:281 */
14377 goto label427;
14378 label427: while(0);
14379 /* ./compiling//compiling_icode.nit:870 */
14380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14381 if (!once_value_428) {
14382 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14383 REGB1 = TAG_Int(12);
14384 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14385 once_value_428 = fra.me.REG[7];
14386 register_static_object(&once_value_428);
14387 } else fra.me.REG[7] = once_value_428;
14388 fra.me.REG[7] = fra.me.REG[7];
14389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14390 REGB1 = TAG_Int(3);
14391 /* ./../lib/standard//collection//array.nit:278 */
14392 fra.me.REG[7] = fra.me.REG[4];
14393 /* ./../lib/standard//collection//array.nit:280 */
14394 REGB2 = TAG_Int(0);
14395 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14396 if (UNTAG_Bool(REGB0)) {
14397 } else {
14398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14399 }
14400 /* ./../lib/standard//kernel.nit:233 */
14401 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14402 /* ./../lib/standard//collection//array.nit:280 */
14403 if (UNTAG_Bool(REGB2)) {
14404 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14405 if (UNTAG_Bool(REGB2)) {
14406 } else {
14407 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14408 }
14409 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14410 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14411 if (UNTAG_Bool(REGB0)) {
14412 } else {
14413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14414 }
14415 /* ./../lib/standard//kernel.nit:232 */
14416 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14417 } else {
14418 /* ./../lib/standard//collection//array.nit:280 */
14419 REGB0 = TAG_Bool(false);
14420 REGB2 = REGB0;
14421 }
14422 if (UNTAG_Bool(REGB2)) {
14423 } else {
14424 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14425 }
14426 /* ./../lib/standard//collection//array.nit:281 */
14427 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14428 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14429 if (UNTAG_Bool(REGB2)) {
14430 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14431 }
14432 /* ./../lib/standard//collection//array.nit:718 */
14433 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14434 /* ./../lib/standard//collection//array.nit:281 */
14435 goto label429;
14436 label429: while(0);
14437 /* ./compiling//compiling_icode.nit:870 */
14438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14439 if (!once_value_430) {
14440 fra.me.REG[7] = BOX_NativeString("), UNTAG_Int(");
14441 REGB1 = TAG_Int(13);
14442 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14443 once_value_430 = fra.me.REG[7];
14444 register_static_object(&once_value_430);
14445 } else fra.me.REG[7] = once_value_430;
14446 fra.me.REG[7] = fra.me.REG[7];
14447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14448 REGB1 = TAG_Int(2);
14449 /* ./../lib/standard//collection//array.nit:278 */
14450 fra.me.REG[7] = fra.me.REG[4];
14451 /* ./../lib/standard//collection//array.nit:280 */
14452 REGB2 = TAG_Int(0);
14453 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14454 if (UNTAG_Bool(REGB0)) {
14455 } else {
14456 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14457 }
14458 /* ./../lib/standard//kernel.nit:233 */
14459 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14460 /* ./../lib/standard//collection//array.nit:280 */
14461 if (UNTAG_Bool(REGB2)) {
14462 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14463 if (UNTAG_Bool(REGB2)) {
14464 } else {
14465 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14466 }
14467 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14468 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14469 if (UNTAG_Bool(REGB0)) {
14470 } else {
14471 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14472 }
14473 /* ./../lib/standard//kernel.nit:232 */
14474 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14475 } else {
14476 /* ./../lib/standard//collection//array.nit:280 */
14477 REGB0 = TAG_Bool(false);
14478 REGB2 = REGB0;
14479 }
14480 if (UNTAG_Bool(REGB2)) {
14481 } else {
14482 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14483 }
14484 /* ./../lib/standard//collection//array.nit:281 */
14485 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14486 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14487 if (UNTAG_Bool(REGB2)) {
14488 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14489 }
14490 /* ./../lib/standard//collection//array.nit:718 */
14491 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14492 /* ./../lib/standard//collection//array.nit:281 */
14493 goto label431;
14494 label431: while(0);
14495 /* ./compiling//compiling_icode.nit:870 */
14496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14497 if (!once_value_432) {
14498 fra.me.REG[7] = BOX_NativeString("));");
14499 REGB1 = TAG_Int(3);
14500 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14501 once_value_432 = fra.me.REG[7];
14502 register_static_object(&once_value_432);
14503 } else fra.me.REG[7] = once_value_432;
14504 fra.me.REG[7] = fra.me.REG[7];
14505 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14506 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14507 fra.me.REG[5] = fra.me.REG[6];
14508 }
14509 }
14510 }
14511 }
14512 }
14513 } else {
14514 /* ./compiling//compiling_icode.nit:872 */
14515 if (!once_value_433) {
14516 if (!once_value_434) {
14517 fra.me.REG[6] = BOX_NativeString("Sys");
14518 REGB1 = TAG_Int(3);
14519 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14520 once_value_434 = fra.me.REG[6];
14521 register_static_object(&once_value_434);
14522 } else fra.me.REG[6] = once_value_434;
14523 fra.me.REG[6] = fra.me.REG[6];
14524 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14525 once_value_433 = fra.me.REG[6];
14526 register_static_object(&once_value_433);
14527 } else fra.me.REG[6] = once_value_433;
14528 fra.me.REG[6] = fra.me.REG[6];
14529 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
14530 if (UNTAG_Bool(REGB1)) {
14531 } else {
14532 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
14533 REGB1 = REGB2;
14534 }
14535 if (UNTAG_Bool(REGB1)) {
14536 /* ./compiling//compiling_icode.nit:873 */
14537 if (!once_value_435) {
14538 if (!once_value_436) {
14539 fra.me.REG[6] = BOX_NativeString("force_garbage_collection");
14540 REGB1 = TAG_Int(24);
14541 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14542 once_value_436 = fra.me.REG[6];
14543 register_static_object(&once_value_436);
14544 } else fra.me.REG[6] = once_value_436;
14545 fra.me.REG[6] = fra.me.REG[6];
14546 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14547 once_value_435 = fra.me.REG[6];
14548 register_static_object(&once_value_435);
14549 } else fra.me.REG[6] = once_value_435;
14550 fra.me.REG[6] = fra.me.REG[6];
14551 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14552 if (UNTAG_Bool(REGB1)) {
14553 } else {
14554 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14555 REGB1 = REGB2;
14556 }
14557 if (UNTAG_Bool(REGB1)) {
14558 /* ./compiling//compiling_icode.nit:874 */
14559 if (!once_value_437) {
14560 fra.me.REG[6] = BOX_NativeString("Nit_gc_force_garbage_collection()");
14561 REGB1 = TAG_Int(33);
14562 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14563 once_value_437 = fra.me.REG[6];
14564 register_static_object(&once_value_437);
14565 } else fra.me.REG[6] = once_value_437;
14566 fra.me.REG[6] = fra.me.REG[6];
14567 fra.me.REG[5] = fra.me.REG[6];
14568 }
14569 } else {
14570 /* ./compiling//compiling_icode.nit:876 */
14571 if (!once_value_438) {
14572 if (!once_value_439) {
14573 fra.me.REG[6] = BOX_NativeString("object_id");
14574 REGB1 = TAG_Int(9);
14575 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14576 once_value_439 = fra.me.REG[6];
14577 register_static_object(&once_value_439);
14578 } else fra.me.REG[6] = once_value_439;
14579 fra.me.REG[6] = fra.me.REG[6];
14580 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14581 once_value_438 = fra.me.REG[6];
14582 register_static_object(&once_value_438);
14583 } else fra.me.REG[6] = once_value_438;
14584 fra.me.REG[6] = fra.me.REG[6];
14585 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14586 if (UNTAG_Bool(REGB1)) {
14587 } else {
14588 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14589 REGB1 = REGB2;
14590 }
14591 if (UNTAG_Bool(REGB1)) {
14592 /* ./compiling//compiling_icode.nit:877 */
14593 REGB1 = TAG_Int(3);
14594 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14595 if (!once_value_440) {
14596 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
14597 REGB1 = TAG_Int(24);
14598 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14599 once_value_440 = fra.me.REG[2];
14600 register_static_object(&once_value_440);
14601 } else fra.me.REG[2] = once_value_440;
14602 fra.me.REG[2] = fra.me.REG[2];
14603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14604 REGB1 = TAG_Int(0);
14605 /* ./../lib/standard//collection//array.nit:278 */
14606 fra.me.REG[2] = fra.me.REG[4];
14607 /* ./../lib/standard//collection//array.nit:280 */
14608 REGB2 = TAG_Int(0);
14609 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14610 if (UNTAG_Bool(REGB0)) {
14611 } else {
14612 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14613 }
14614 /* ./../lib/standard//kernel.nit:233 */
14615 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14616 /* ./../lib/standard//collection//array.nit:280 */
14617 if (UNTAG_Bool(REGB2)) {
14618 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14619 if (UNTAG_Bool(REGB2)) {
14620 } else {
14621 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14622 }
14623 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14624 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14625 if (UNTAG_Bool(REGB0)) {
14626 } else {
14627 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14628 }
14629 /* ./../lib/standard//kernel.nit:232 */
14630 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14631 } else {
14632 /* ./../lib/standard//collection//array.nit:280 */
14633 REGB0 = TAG_Bool(false);
14634 REGB2 = REGB0;
14635 }
14636 if (UNTAG_Bool(REGB2)) {
14637 } else {
14638 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14639 }
14640 /* ./../lib/standard//collection//array.nit:281 */
14641 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14642 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14643 if (UNTAG_Bool(REGB2)) {
14644 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14645 }
14646 /* ./../lib/standard//collection//array.nit:718 */
14647 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14648 /* ./../lib/standard//collection//array.nit:281 */
14649 goto label441;
14650 label441: while(0);
14651 /* ./compiling//compiling_icode.nit:877 */
14652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14653 if (!once_value_442) {
14654 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
14655 REGB1 = TAG_Int(15);
14656 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14657 once_value_442 = fra.me.REG[2];
14658 register_static_object(&once_value_442);
14659 } else fra.me.REG[2] = once_value_442;
14660 fra.me.REG[2] = fra.me.REG[2];
14661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14662 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14663 fra.me.REG[5] = fra.me.REG[6];
14664 } else {
14665 /* ./compiling//compiling_icode.nit:878 */
14666 if (!once_value_443) {
14667 if (!once_value_444) {
14668 fra.me.REG[6] = BOX_NativeString("sys");
14669 REGB1 = TAG_Int(3);
14670 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14671 once_value_444 = fra.me.REG[6];
14672 register_static_object(&once_value_444);
14673 } else fra.me.REG[6] = once_value_444;
14674 fra.me.REG[6] = fra.me.REG[6];
14675 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14676 once_value_443 = fra.me.REG[6];
14677 register_static_object(&once_value_443);
14678 } else fra.me.REG[6] = once_value_443;
14679 fra.me.REG[6] = fra.me.REG[6];
14680 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14681 if (UNTAG_Bool(REGB1)) {
14682 } else {
14683 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14684 REGB1 = REGB2;
14685 }
14686 if (UNTAG_Bool(REGB1)) {
14687 /* ./compiling//compiling_icode.nit:879 */
14688 if (!once_value_445) {
14689 fra.me.REG[6] = BOX_NativeString("(G_sys)");
14690 REGB1 = TAG_Int(7);
14691 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14692 once_value_445 = fra.me.REG[6];
14693 register_static_object(&once_value_445);
14694 } else fra.me.REG[6] = once_value_445;
14695 fra.me.REG[6] = fra.me.REG[6];
14696 fra.me.REG[5] = fra.me.REG[6];
14697 } else {
14698 /* ./compiling//compiling_icode.nit:880 */
14699 if (!once_value_446) {
14700 if (!once_value_447) {
14701 fra.me.REG[6] = BOX_NativeString("is_same_type");
14702 REGB1 = TAG_Int(12);
14703 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14704 once_value_447 = fra.me.REG[6];
14705 register_static_object(&once_value_447);
14706 } else fra.me.REG[6] = once_value_447;
14707 fra.me.REG[6] = fra.me.REG[6];
14708 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14709 once_value_446 = fra.me.REG[6];
14710 register_static_object(&once_value_446);
14711 } else fra.me.REG[6] = once_value_446;
14712 fra.me.REG[6] = fra.me.REG[6];
14713 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14714 if (UNTAG_Bool(REGB1)) {
14715 } else {
14716 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14717 REGB1 = REGB2;
14718 }
14719 if (UNTAG_Bool(REGB1)) {
14720 /* ./compiling//compiling_icode.nit:881 */
14721 REGB1 = TAG_Int(5);
14722 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14723 if (!once_value_448) {
14724 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
14725 REGB1 = TAG_Int(18);
14726 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14727 once_value_448 = fra.me.REG[2];
14728 register_static_object(&once_value_448);
14729 } else fra.me.REG[2] = once_value_448;
14730 fra.me.REG[2] = fra.me.REG[2];
14731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14732 REGB1 = TAG_Int(0);
14733 /* ./../lib/standard//collection//array.nit:278 */
14734 fra.me.REG[2] = fra.me.REG[4];
14735 /* ./../lib/standard//collection//array.nit:280 */
14736 REGB2 = TAG_Int(0);
14737 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14738 if (UNTAG_Bool(REGB0)) {
14739 } else {
14740 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14741 }
14742 /* ./../lib/standard//kernel.nit:233 */
14743 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14744 /* ./../lib/standard//collection//array.nit:280 */
14745 if (UNTAG_Bool(REGB2)) {
14746 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14747 if (UNTAG_Bool(REGB2)) {
14748 } else {
14749 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14750 }
14751 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14752 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14753 if (UNTAG_Bool(REGB0)) {
14754 } else {
14755 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14756 }
14757 /* ./../lib/standard//kernel.nit:232 */
14758 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14759 } else {
14760 /* ./../lib/standard//collection//array.nit:280 */
14761 REGB0 = TAG_Bool(false);
14762 REGB2 = REGB0;
14763 }
14764 if (UNTAG_Bool(REGB2)) {
14765 } else {
14766 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14767 }
14768 /* ./../lib/standard//collection//array.nit:281 */
14769 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14770 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14771 if (UNTAG_Bool(REGB2)) {
14772 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14773 }
14774 /* ./../lib/standard//collection//array.nit:718 */
14775 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14776 /* ./../lib/standard//collection//array.nit:281 */
14777 goto label449;
14778 label449: while(0);
14779 /* ./compiling//compiling_icode.nit:881 */
14780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14781 if (!once_value_450) {
14782 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
14783 REGB1 = TAG_Int(11);
14784 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14785 once_value_450 = fra.me.REG[2];
14786 register_static_object(&once_value_450);
14787 } else fra.me.REG[2] = once_value_450;
14788 fra.me.REG[2] = fra.me.REG[2];
14789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14790 REGB1 = TAG_Int(1);
14791 /* ./../lib/standard//collection//array.nit:278 */
14792 fra.me.REG[2] = fra.me.REG[4];
14793 /* ./../lib/standard//collection//array.nit:280 */
14794 REGB2 = TAG_Int(0);
14795 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14796 if (UNTAG_Bool(REGB0)) {
14797 } else {
14798 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14799 }
14800 /* ./../lib/standard//kernel.nit:233 */
14801 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14802 /* ./../lib/standard//collection//array.nit:280 */
14803 if (UNTAG_Bool(REGB2)) {
14804 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14805 if (UNTAG_Bool(REGB2)) {
14806 } else {
14807 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14808 }
14809 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14810 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14811 if (UNTAG_Bool(REGB0)) {
14812 } else {
14813 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14814 }
14815 /* ./../lib/standard//kernel.nit:232 */
14816 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14817 } else {
14818 /* ./../lib/standard//collection//array.nit:280 */
14819 REGB0 = TAG_Bool(false);
14820 REGB2 = REGB0;
14821 }
14822 if (UNTAG_Bool(REGB2)) {
14823 } else {
14824 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14825 }
14826 /* ./../lib/standard//collection//array.nit:281 */
14827 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14828 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14829 if (UNTAG_Bool(REGB2)) {
14830 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14831 }
14832 /* ./../lib/standard//collection//array.nit:718 */
14833 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14834 /* ./../lib/standard//collection//array.nit:281 */
14835 goto label451;
14836 label451: while(0);
14837 /* ./compiling//compiling_icode.nit:881 */
14838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14839 if (!once_value_452) {
14840 fra.me.REG[2] = BOX_NativeString(")))");
14841 REGB1 = TAG_Int(3);
14842 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14843 once_value_452 = fra.me.REG[2];
14844 register_static_object(&once_value_452);
14845 } else fra.me.REG[2] = once_value_452;
14846 fra.me.REG[2] = fra.me.REG[2];
14847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14848 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14849 fra.me.REG[5] = fra.me.REG[6];
14850 } else {
14851 /* ./compiling//compiling_icode.nit:882 */
14852 if (!once_value_453) {
14853 if (!once_value_454) {
14854 fra.me.REG[6] = BOX_NativeString("exit");
14855 REGB1 = TAG_Int(4);
14856 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14857 once_value_454 = fra.me.REG[6];
14858 register_static_object(&once_value_454);
14859 } else fra.me.REG[6] = once_value_454;
14860 fra.me.REG[6] = fra.me.REG[6];
14861 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14862 once_value_453 = fra.me.REG[6];
14863 register_static_object(&once_value_453);
14864 } else fra.me.REG[6] = once_value_453;
14865 fra.me.REG[6] = fra.me.REG[6];
14866 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14867 if (UNTAG_Bool(REGB1)) {
14868 } else {
14869 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14870 REGB1 = REGB2;
14871 }
14872 if (UNTAG_Bool(REGB1)) {
14873 /* ./compiling//compiling_icode.nit:883 */
14874 REGB1 = TAG_Int(3);
14875 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14876 if (!once_value_455) {
14877 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
14878 REGB1 = TAG_Int(15);
14879 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14880 once_value_455 = fra.me.REG[2];
14881 register_static_object(&once_value_455);
14882 } else fra.me.REG[2] = once_value_455;
14883 fra.me.REG[2] = fra.me.REG[2];
14884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14885 REGB1 = TAG_Int(1);
14886 /* ./../lib/standard//collection//array.nit:278 */
14887 fra.me.REG[2] = fra.me.REG[4];
14888 /* ./../lib/standard//collection//array.nit:280 */
14889 REGB2 = TAG_Int(0);
14890 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14891 if (UNTAG_Bool(REGB0)) {
14892 } else {
14893 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14894 }
14895 /* ./../lib/standard//kernel.nit:233 */
14896 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14897 /* ./../lib/standard//collection//array.nit:280 */
14898 if (UNTAG_Bool(REGB2)) {
14899 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14900 if (UNTAG_Bool(REGB2)) {
14901 } else {
14902 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14903 }
14904 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14905 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14906 if (UNTAG_Bool(REGB0)) {
14907 } else {
14908 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14909 }
14910 /* ./../lib/standard//kernel.nit:232 */
14911 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14912 } else {
14913 /* ./../lib/standard//collection//array.nit:280 */
14914 REGB0 = TAG_Bool(false);
14915 REGB2 = REGB0;
14916 }
14917 if (UNTAG_Bool(REGB2)) {
14918 } else {
14919 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14920 }
14921 /* ./../lib/standard//collection//array.nit:281 */
14922 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14923 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14924 if (UNTAG_Bool(REGB2)) {
14925 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14926 }
14927 /* ./../lib/standard//collection//array.nit:718 */
14928 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14929 /* ./../lib/standard//collection//array.nit:281 */
14930 goto label456;
14931 label456: while(0);
14932 /* ./compiling//compiling_icode.nit:883 */
14933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14934 if (!once_value_457) {
14935 fra.me.REG[2] = BOX_NativeString("));");
14936 REGB1 = TAG_Int(3);
14937 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14938 once_value_457 = fra.me.REG[2];
14939 register_static_object(&once_value_457);
14940 } else fra.me.REG[2] = once_value_457;
14941 fra.me.REG[2] = fra.me.REG[2];
14942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14943 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14944 fra.me.REG[5] = fra.me.REG[6];
14945 } else {
14946 /* ./compiling//compiling_icode.nit:884 */
14947 if (!once_value_458) {
14948 if (!once_value_459) {
14949 fra.me.REG[6] = BOX_NativeString("calloc_array");
14950 REGB1 = TAG_Int(12);
14951 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14952 once_value_459 = fra.me.REG[6];
14953 register_static_object(&once_value_459);
14954 } else fra.me.REG[6] = once_value_459;
14955 fra.me.REG[6] = fra.me.REG[6];
14956 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14957 once_value_458 = fra.me.REG[6];
14958 register_static_object(&once_value_458);
14959 } else fra.me.REG[6] = once_value_458;
14960 fra.me.REG[6] = fra.me.REG[6];
14961 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14962 if (UNTAG_Bool(REGB1)) {
14963 } else {
14964 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14965 REGB1 = REGB2;
14966 }
14967 if (UNTAG_Bool(REGB1)) {
14968 /* ./compiling//compiling_icode.nit:885 */
14969 REGB1 = TAG_Int(3);
14970 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14971 if (!once_value_460) {
14972 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
14973 REGB1 = TAG_Int(26);
14974 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14975 once_value_460 = fra.me.REG[2];
14976 register_static_object(&once_value_460);
14977 } else fra.me.REG[2] = once_value_460;
14978 fra.me.REG[2] = fra.me.REG[2];
14979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14980 REGB1 = TAG_Int(1);
14981 /* ./../lib/standard//collection//array.nit:278 */
14982 fra.me.REG[2] = fra.me.REG[4];
14983 /* ./../lib/standard//collection//array.nit:280 */
14984 REGB2 = TAG_Int(0);
14985 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14986 if (UNTAG_Bool(REGB0)) {
14987 } else {
14988 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14989 }
14990 /* ./../lib/standard//kernel.nit:233 */
14991 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14992 /* ./../lib/standard//collection//array.nit:280 */
14993 if (UNTAG_Bool(REGB2)) {
14994 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14995 if (UNTAG_Bool(REGB2)) {
14996 } else {
14997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14998 }
14999 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15000 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15001 if (UNTAG_Bool(REGB0)) {
15002 } else {
15003 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15004 }
15005 /* ./../lib/standard//kernel.nit:232 */
15006 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15007 } else {
15008 /* ./../lib/standard//collection//array.nit:280 */
15009 REGB0 = TAG_Bool(false);
15010 REGB2 = REGB0;
15011 }
15012 if (UNTAG_Bool(REGB2)) {
15013 } else {
15014 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15015 }
15016 /* ./../lib/standard//collection//array.nit:281 */
15017 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15018 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15019 if (UNTAG_Bool(REGB2)) {
15020 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15021 }
15022 /* ./../lib/standard//collection//array.nit:718 */
15023 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15024 /* ./../lib/standard//collection//array.nit:281 */
15025 goto label461;
15026 label461: while(0);
15027 /* ./compiling//compiling_icode.nit:885 */
15028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15029 if (!once_value_462) {
15030 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
15031 REGB1 = TAG_Int(17);
15032 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15033 once_value_462 = fra.me.REG[2];
15034 register_static_object(&once_value_462);
15035 } else fra.me.REG[2] = once_value_462;
15036 fra.me.REG[2] = fra.me.REG[2];
15037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15038 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15039 fra.me.REG[5] = fra.me.REG[6];
15040 } else {
15041 /* ./compiling//compiling_icode.nit:886 */
15042 if (!once_value_463) {
15043 if (!once_value_464) {
15044 fra.me.REG[6] = BOX_NativeString("calloc_string");
15045 REGB1 = TAG_Int(13);
15046 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15047 once_value_464 = fra.me.REG[6];
15048 register_static_object(&once_value_464);
15049 } else fra.me.REG[6] = once_value_464;
15050 fra.me.REG[6] = fra.me.REG[6];
15051 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15052 once_value_463 = fra.me.REG[6];
15053 register_static_object(&once_value_463);
15054 } else fra.me.REG[6] = once_value_463;
15055 fra.me.REG[6] = fra.me.REG[6];
15056 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15057 if (UNTAG_Bool(REGB1)) {
15058 } else {
15059 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15060 REGB1 = REGB2;
15061 }
15062 if (UNTAG_Bool(REGB1)) {
15063 /* ./compiling//compiling_icode.nit:887 */
15064 REGB1 = TAG_Int(3);
15065 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15066 if (!once_value_465) {
15067 fra.me.REG[2] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
15068 REGB1 = TAG_Int(45);
15069 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15070 once_value_465 = fra.me.REG[2];
15071 register_static_object(&once_value_465);
15072 } else fra.me.REG[2] = once_value_465;
15073 fra.me.REG[2] = fra.me.REG[2];
15074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15075 REGB1 = TAG_Int(1);
15076 /* ./../lib/standard//collection//array.nit:278 */
15077 fra.me.REG[2] = fra.me.REG[4];
15078 /* ./../lib/standard//collection//array.nit:280 */
15079 REGB2 = TAG_Int(0);
15080 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15081 if (UNTAG_Bool(REGB0)) {
15082 } else {
15083 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15084 }
15085 /* ./../lib/standard//kernel.nit:233 */
15086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15087 /* ./../lib/standard//collection//array.nit:280 */
15088 if (UNTAG_Bool(REGB2)) {
15089 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15090 if (UNTAG_Bool(REGB2)) {
15091 } else {
15092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15093 }
15094 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15095 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15096 if (UNTAG_Bool(REGB0)) {
15097 } else {
15098 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15099 }
15100 /* ./../lib/standard//kernel.nit:232 */
15101 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15102 } else {
15103 /* ./../lib/standard//collection//array.nit:280 */
15104 REGB0 = TAG_Bool(false);
15105 REGB2 = REGB0;
15106 }
15107 if (UNTAG_Bool(REGB2)) {
15108 } else {
15109 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15110 }
15111 /* ./../lib/standard//collection//array.nit:281 */
15112 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15113 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15114 if (UNTAG_Bool(REGB2)) {
15115 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15116 }
15117 /* ./../lib/standard//collection//array.nit:718 */
15118 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15119 /* ./../lib/standard//collection//array.nit:281 */
15120 goto label466;
15121 label466: while(0);
15122 /* ./compiling//compiling_icode.nit:887 */
15123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15124 if (!once_value_467) {
15125 fra.me.REG[2] = BOX_NativeString(") * sizeof(char))))");
15126 REGB1 = TAG_Int(19);
15127 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15128 once_value_467 = fra.me.REG[2];
15129 register_static_object(&once_value_467);
15130 } else fra.me.REG[2] = once_value_467;
15131 fra.me.REG[2] = fra.me.REG[2];
15132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15133 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15134 fra.me.REG[5] = fra.me.REG[6];
15135 } else {
15136 /* ./compiling//compiling_icode.nit:889 */
15137 if (!once_value_468) {
15138 if (!once_value_469) {
15139 fra.me.REG[6] = BOX_NativeString("output_class_name");
15140 REGB1 = TAG_Int(17);
15141 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15142 once_value_469 = fra.me.REG[6];
15143 register_static_object(&once_value_469);
15144 } else fra.me.REG[6] = once_value_469;
15145 fra.me.REG[6] = fra.me.REG[6];
15146 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15147 once_value_468 = fra.me.REG[6];
15148 register_static_object(&once_value_468);
15149 } else fra.me.REG[6] = once_value_468;
15150 fra.me.REG[6] = fra.me.REG[6];
15151 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15152 if (UNTAG_Bool(REGB1)) {
15153 } else {
15154 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15155 REGB1 = REGB2;
15156 }
15157 if (UNTAG_Bool(REGB1)) {
15158 /* ./compiling//compiling_icode.nit:890 */
15159 REGB1 = TAG_Int(3);
15160 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15161 if (!once_value_470) {
15162 fra.me.REG[2] = BOX_NativeString("printf(\"%s\\n\", VAL2VFT(");
15163 REGB1 = TAG_Int(23);
15164 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15165 once_value_470 = fra.me.REG[2];
15166 register_static_object(&once_value_470);
15167 } else fra.me.REG[2] = once_value_470;
15168 fra.me.REG[2] = fra.me.REG[2];
15169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15170 REGB1 = TAG_Int(0);
15171 /* ./../lib/standard//collection//array.nit:278 */
15172 fra.me.REG[2] = fra.me.REG[4];
15173 /* ./../lib/standard//collection//array.nit:280 */
15174 REGB2 = TAG_Int(0);
15175 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15176 if (UNTAG_Bool(REGB0)) {
15177 } else {
15178 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15179 }
15180 /* ./../lib/standard//kernel.nit:233 */
15181 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15182 /* ./../lib/standard//collection//array.nit:280 */
15183 if (UNTAG_Bool(REGB2)) {
15184 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15185 if (UNTAG_Bool(REGB2)) {
15186 } else {
15187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15188 }
15189 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15190 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15191 if (UNTAG_Bool(REGB0)) {
15192 } else {
15193 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15194 }
15195 /* ./../lib/standard//kernel.nit:232 */
15196 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15197 } else {
15198 /* ./../lib/standard//collection//array.nit:280 */
15199 REGB0 = TAG_Bool(false);
15200 REGB2 = REGB0;
15201 }
15202 if (UNTAG_Bool(REGB2)) {
15203 } else {
15204 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15205 }
15206 /* ./../lib/standard//collection//array.nit:281 */
15207 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15208 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15209 if (UNTAG_Bool(REGB2)) {
15210 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15211 }
15212 /* ./../lib/standard//collection//array.nit:718 */
15213 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15214 /* ./../lib/standard//collection//array.nit:281 */
15215 goto label471;
15216 label471: while(0);
15217 /* ./compiling//compiling_icode.nit:890 */
15218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15219 if (!once_value_472) {
15220 fra.me.REG[2] = BOX_NativeString(")[2].cname);");
15221 REGB1 = TAG_Int(12);
15222 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15223 once_value_472 = fra.me.REG[2];
15224 register_static_object(&once_value_472);
15225 } else fra.me.REG[2] = once_value_472;
15226 fra.me.REG[2] = fra.me.REG[2];
15227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15228 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15229 fra.me.REG[5] = fra.me.REG[6];
15230 } else {
15231 /* ./compiling//compiling_icode.nit:892 */
15232 if (!once_value_473) {
15233 if (!once_value_474) {
15234 fra.me.REG[6] = BOX_NativeString("native_class_name");
15235 REGB1 = TAG_Int(17);
15236 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15237 once_value_474 = fra.me.REG[6];
15238 register_static_object(&once_value_474);
15239 } else fra.me.REG[6] = once_value_474;
15240 fra.me.REG[6] = fra.me.REG[6];
15241 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15242 once_value_473 = fra.me.REG[6];
15243 register_static_object(&once_value_473);
15244 } else fra.me.REG[6] = once_value_473;
15245 fra.me.REG[6] = fra.me.REG[6];
15246 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15247 if (UNTAG_Bool(REGB1)) {
15248 } else {
15249 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15250 REGB1 = REGB2;
15251 }
15252 if (UNTAG_Bool(REGB1)) {
15253 /* ./compiling//compiling_icode.nit:893 */
15254 REGB1 = TAG_Int(3);
15255 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15256 if (!once_value_475) {
15257 fra.me.REG[3] = BOX_NativeString("BOX_NativeString(VAL2VFT(");
15258 REGB1 = TAG_Int(25);
15259 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15260 once_value_475 = fra.me.REG[3];
15261 register_static_object(&once_value_475);
15262 } else fra.me.REG[3] = once_value_475;
15263 fra.me.REG[3] = fra.me.REG[3];
15264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
15265 REGB1 = TAG_Int(0);
15266 /* ./../lib/standard//collection//array.nit:280 */
15267 REGB2 = TAG_Int(0);
15268 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15269 if (UNTAG_Bool(REGB0)) {
15270 } else {
15271 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15272 }
15273 /* ./../lib/standard//kernel.nit:233 */
15274 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15275 /* ./../lib/standard//collection//array.nit:280 */
15276 if (UNTAG_Bool(REGB2)) {
15277 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
15278 if (UNTAG_Bool(REGB2)) {
15279 } else {
15280 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15281 }
15282 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
15283 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15284 if (UNTAG_Bool(REGB0)) {
15285 } else {
15286 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15287 }
15288 /* ./../lib/standard//kernel.nit:232 */
15289 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15290 } else {
15291 /* ./../lib/standard//collection//array.nit:280 */
15292 REGB0 = TAG_Bool(false);
15293 REGB2 = REGB0;
15294 }
15295 if (UNTAG_Bool(REGB2)) {
15296 } else {
15297 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15298 }
15299 /* ./../lib/standard//collection//array.nit:281 */
15300 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
15301 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15302 if (UNTAG_Bool(REGB2)) {
15303 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15304 }
15305 /* ./../lib/standard//collection//array.nit:718 */
15306 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
15307 /* ./../lib/standard//collection//array.nit:281 */
15308 goto label476;
15309 label476: while(0);
15310 /* ./compiling//compiling_icode.nit:893 */
15311 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15312 if (!once_value_477) {
15313 fra.me.REG[4] = BOX_NativeString(")[2].cname);");
15314 REGB1 = TAG_Int(12);
15315 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15316 once_value_477 = fra.me.REG[4];
15317 register_static_object(&once_value_477);
15318 } else fra.me.REG[4] = once_value_477;
15319 fra.me.REG[4] = fra.me.REG[4];
15320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15321 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15322 fra.me.REG[5] = fra.me.REG[6];
15323 }
15324 }
15325 }
15326 }
15327 }
15328 }
15329 }
15330 }
15331 }
15332 }
15333 }
15334 }
15335 }
15336 }
15337 }
15338 /* ./compiling//compiling_icode.nit:896 */
15339 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15340 if (UNTAG_Bool(REGB1)) {
15341 } else {
15342 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15343 if (UNTAG_Bool(REGB2)) {
15344 REGB2 = TAG_Bool(false);
15345 REGB1 = REGB2;
15346 } else {
15347 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15348 REGB1 = REGB2;
15349 }
15350 }
15351 if (UNTAG_Bool(REGB1)) {
15352 /* ./compiling//compiling_icode.nit:897 */
15353 fra.me.REG[6] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15354 /* ./compiling//compiling_icode.nit:898 */
15355 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15356 if (UNTAG_Bool(REGB1)) {
15357 } else {
15358 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15359 if (UNTAG_Bool(REGB2)) {
15360 REGB2 = TAG_Bool(false);
15361 REGB1 = REGB2;
15362 } else {
15363 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
15364 REGB1 = REGB2;
15365 }
15366 }
15367 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15368 if (UNTAG_Bool(REGB1)) {
15369 REGB1 = TAG_Int(3);
15370 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15371 if (!once_value_478) {
15372 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
15373 REGB1 = TAG_Int(17);
15374 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15375 once_value_478 = fra.me.REG[3];
15376 register_static_object(&once_value_478);
15377 } else fra.me.REG[3] = once_value_478;
15378 fra.me.REG[3] = fra.me.REG[3];
15379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15380 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15381 if (UNTAG_Bool(REGB1)) {
15382 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 898);
15383 }
15384 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15386 if (!once_value_479) {
15387 fra.me.REG[6] = BOX_NativeString(": \");");
15388 REGB1 = TAG_Int(5);
15389 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15390 once_value_479 = fra.me.REG[6];
15391 register_static_object(&once_value_479);
15392 } else fra.me.REG[6] = once_value_479;
15393 fra.me.REG[6] = fra.me.REG[6];
15394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15395 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15396 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15397 }
15398 /* ./compiling//compiling_icode.nit:899 */
15399 REGB1 = TAG_Int(3);
15400 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15401 if (!once_value_480) {
15402 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
15403 REGB1 = TAG_Int(52);
15404 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15405 once_value_480 = fra.me.REG[6];
15406 register_static_object(&once_value_480);
15407 } else fra.me.REG[6] = once_value_480;
15408 fra.me.REG[6] = fra.me.REG[6];
15409 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15410 fra.me.REG[6] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
15411 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
15412 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15413 if (!once_value_481) {
15414 fra.me.REG[6] = BOX_NativeString(".\\n\");");
15415 REGB1 = TAG_Int(6);
15416 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15417 once_value_481 = fra.me.REG[6];
15418 register_static_object(&once_value_481);
15419 } else fra.me.REG[6] = once_value_481;
15420 fra.me.REG[6] = fra.me.REG[6];
15421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15422 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15423 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15424 /* ./compiling//compiling_icode.nit:900 */
15425 if (!once_value_482) {
15426 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
15427 REGB1 = TAG_Int(12);
15428 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15429 once_value_482 = fra.me.REG[4];
15430 register_static_object(&once_value_482);
15431 } else fra.me.REG[4] = once_value_482;
15432 fra.me.REG[4] = fra.me.REG[4];
15433 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15434 /* ./compiling//compiling_icode.nit:901 */
15435 if (!once_value_483) {
15436 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
15437 REGB1 = TAG_Int(8);
15438 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15439 once_value_483 = fra.me.REG[4];
15440 register_static_object(&once_value_483);
15441 } else fra.me.REG[4] = once_value_483;
15442 fra.me.REG[4] = fra.me.REG[4];
15443 fra.me.REG[5] = fra.me.REG[4];
15444 }
15445 /* ./compiling//compiling_icode.nit:903 */
15446 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15447 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15448 if (UNTAG_Bool(REGB1)) {
15449 } else {
15450 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15451 if (UNTAG_Bool(REGB2)) {
15452 REGB2 = TAG_Bool(false);
15453 REGB1 = REGB2;
15454 } else {
15455 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
15456 REGB1 = REGB2;
15457 }
15458 }
15459 if (UNTAG_Bool(REGB1)) {
15460 /* ./compiling//compiling_icode.nit:904 */
15461 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15462 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15463 if (!once_value_484) {
15464 fra.me.REG[6] = BOX_NativeString(";\n");
15465 REGB1 = TAG_Int(2);
15466 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15467 once_value_484 = fra.me.REG[6];
15468 register_static_object(&once_value_484);
15469 } else fra.me.REG[6] = once_value_484;
15470 fra.me.REG[6] = fra.me.REG[6];
15471 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15472 } else {
15473 /* ./compiling//compiling_icode.nit:905 */
15474 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15475 if (UNTAG_Bool(REGB1)) {
15476 /* ./compiling//compiling_icode.nit:906 */
15477 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15478 /* ./compiling//compiling_icode.nit:907 */
15479 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
15480 }
15481 }
15482 stack_frame_head = fra.me.prev;
15483 return;
15484 }
15485 void compiling___compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
15486 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15487 val_t REGB0;
15488 val_t tmp;
15489 static val_t once_value_1; /* Once value */
15490 static val_t once_value_2; /* Once value */
15491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15492 fra.me.file = LOCATE_compiling___compiling_icode;
15493 fra.me.line = 913;
15494 fra.me.meth = LOCATE_compiling___compiling_icode___IIntValue___compile_to_c;
15495 fra.me.has_broke = 0;
15496 fra.me.REG_size = 3;
15497 fra.me.nitni_local_ref_head = NULL;
15498 fra.me.REG[0] = NIT_NULL;
15499 fra.me.REG[1] = NIT_NULL;
15500 fra.me.REG[2] = NIT_NULL;
15501 fra.me.REG[0] = p0;
15502 fra.me.REG[1] = p1;
15503 /* ./compiling//compiling_icode.nit:915 */
15504 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15505 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15506 /* ./compiling//compiling_icode.nit:916 */
15507 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15508 /* ./compiling//compiling_icode.nit:917 */
15509 if (!once_value_1) {
15510 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
15511 REGB0 = TAG_Int(8);
15512 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15513 once_value_1 = fra.me.REG[2];
15514 register_static_object(&once_value_1);
15515 } else fra.me.REG[2] = once_value_1;
15516 fra.me.REG[2] = fra.me.REG[2];
15517 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15518 fra.me.REG[0] = CALL_icode___icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
15519 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15520 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15521 if (!once_value_2) {
15522 fra.me.REG[2] = BOX_NativeString(")");
15523 REGB0 = TAG_Int(1);
15524 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15525 once_value_2 = fra.me.REG[2];
15526 register_static_object(&once_value_2);
15527 } else fra.me.REG[2] = once_value_2;
15528 fra.me.REG[2] = fra.me.REG[2];
15529 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15530 stack_frame_head = fra.me.prev;
15531 return;
15532 }
15533 void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
15534 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15535 val_t REGB0;
15536 val_t tmp;
15537 static val_t once_value_1; /* Once value */
15538 static val_t once_value_2; /* Once value */
15539 static val_t once_value_3; /* Once value */
15540 static val_t once_value_4; /* Once value */
15541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15542 fra.me.file = LOCATE_compiling___compiling_icode;
15543 fra.me.line = 922;
15544 fra.me.meth = LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c;
15545 fra.me.has_broke = 0;
15546 fra.me.REG_size = 3;
15547 fra.me.nitni_local_ref_head = NULL;
15548 fra.me.REG[0] = NIT_NULL;
15549 fra.me.REG[1] = NIT_NULL;
15550 fra.me.REG[2] = NIT_NULL;
15551 fra.me.REG[0] = p0;
15552 fra.me.REG[1] = p1;
15553 /* ./compiling//compiling_icode.nit:924 */
15554 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15555 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15556 /* ./compiling//compiling_icode.nit:925 */
15557 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15558 /* ./compiling//compiling_icode.nit:926 */
15559 if (!once_value_1) {
15560 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
15561 REGB0 = TAG_Int(9);
15562 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15563 once_value_1 = fra.me.REG[2];
15564 register_static_object(&once_value_1);
15565 } else fra.me.REG[2] = once_value_1;
15566 fra.me.REG[2] = fra.me.REG[2];
15567 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15568 /* ./compiling//compiling_icode.nit:927 */
15569 REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
15570 if (UNTAG_Bool(REGB0)) {
15571 if (!once_value_2) {
15572 fra.me.REG[0] = BOX_NativeString("true");
15573 REGB0 = TAG_Int(4);
15574 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15575 once_value_2 = fra.me.REG[0];
15576 register_static_object(&once_value_2);
15577 } else fra.me.REG[0] = once_value_2;
15578 fra.me.REG[0] = fra.me.REG[0];
15579 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15580 } else {
15581 if (!once_value_3) {
15582 fra.me.REG[0] = BOX_NativeString("false");
15583 REGB0 = TAG_Int(5);
15584 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15585 once_value_3 = fra.me.REG[0];
15586 register_static_object(&once_value_3);
15587 } else fra.me.REG[0] = once_value_3;
15588 fra.me.REG[0] = fra.me.REG[0];
15589 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15590 }
15591 /* ./compiling//compiling_icode.nit:928 */
15592 if (!once_value_4) {
15593 fra.me.REG[0] = BOX_NativeString(")");
15594 REGB0 = TAG_Int(1);
15595 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15596 once_value_4 = fra.me.REG[0];
15597 register_static_object(&once_value_4);
15598 } else fra.me.REG[0] = once_value_4;
15599 fra.me.REG[0] = fra.me.REG[0];
15600 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15601 stack_frame_head = fra.me.prev;
15602 return;
15603 }
15604 void compiling___compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
15605 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15606 val_t REGB0;
15607 val_t tmp;
15608 static val_t once_value_1; /* Once value */
15609 static val_t once_value_2; /* Once value */
15610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15611 fra.me.file = LOCATE_compiling___compiling_icode;
15612 fra.me.line = 933;
15613 fra.me.meth = LOCATE_compiling___compiling_icode___ICharValue___compile_to_c;
15614 fra.me.has_broke = 0;
15615 fra.me.REG_size = 3;
15616 fra.me.nitni_local_ref_head = NULL;
15617 fra.me.REG[0] = NIT_NULL;
15618 fra.me.REG[1] = NIT_NULL;
15619 fra.me.REG[2] = NIT_NULL;
15620 fra.me.REG[0] = p0;
15621 fra.me.REG[1] = p1;
15622 /* ./compiling//compiling_icode.nit:935 */
15623 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15624 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15625 /* ./compiling//compiling_icode.nit:936 */
15626 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15627 /* ./compiling//compiling_icode.nit:937 */
15628 if (!once_value_1) {
15629 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
15630 REGB0 = TAG_Int(9);
15631 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15632 once_value_1 = fra.me.REG[2];
15633 register_static_object(&once_value_1);
15634 } else fra.me.REG[2] = once_value_1;
15635 fra.me.REG[2] = fra.me.REG[2];
15636 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15637 fra.me.REG[0] = CALL_icode___icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
15638 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15639 if (!once_value_2) {
15640 fra.me.REG[2] = BOX_NativeString(")");
15641 REGB0 = TAG_Int(1);
15642 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15643 once_value_2 = fra.me.REG[2];
15644 register_static_object(&once_value_2);
15645 } else fra.me.REG[2] = once_value_2;
15646 fra.me.REG[2] = fra.me.REG[2];
15647 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15648 stack_frame_head = fra.me.prev;
15649 return;
15650 }
15651 void compiling___compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
15652 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15653 val_t REGB0;
15654 val_t tmp;
15655 static val_t once_value_1; /* Once value */
15656 static val_t once_value_2; /* Once value */
15657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15658 fra.me.file = LOCATE_compiling___compiling_icode;
15659 fra.me.line = 942;
15660 fra.me.meth = LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c;
15661 fra.me.has_broke = 0;
15662 fra.me.REG_size = 3;
15663 fra.me.nitni_local_ref_head = NULL;
15664 fra.me.REG[0] = NIT_NULL;
15665 fra.me.REG[1] = NIT_NULL;
15666 fra.me.REG[2] = NIT_NULL;
15667 fra.me.REG[0] = p0;
15668 fra.me.REG[1] = p1;
15669 /* ./compiling//compiling_icode.nit:944 */
15670 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15671 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15672 /* ./compiling//compiling_icode.nit:945 */
15673 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15674 /* ./compiling//compiling_icode.nit:946 */
15675 if (!once_value_1) {
15676 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
15677 REGB0 = TAG_Int(10);
15678 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15679 once_value_1 = fra.me.REG[2];
15680 register_static_object(&once_value_1);
15681 } else fra.me.REG[2] = once_value_1;
15682 fra.me.REG[2] = fra.me.REG[2];
15683 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15684 fra.me.REG[0] = CALL_icode___icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
15685 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15686 if (!once_value_2) {
15687 fra.me.REG[2] = BOX_NativeString(")");
15688 REGB0 = TAG_Int(1);
15689 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15690 once_value_2 = fra.me.REG[2];
15691 register_static_object(&once_value_2);
15692 } else fra.me.REG[2] = once_value_2;
15693 fra.me.REG[2] = fra.me.REG[2];
15694 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15695 stack_frame_head = fra.me.prev;
15696 return;
15697 }
15698 void compiling___compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
15699 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15700 val_t REGB0;
15701 val_t tmp;
15702 static val_t once_value_1; /* Once value */
15703 static val_t once_value_2; /* Once value */
15704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15705 fra.me.file = LOCATE_compiling___compiling_icode;
15706 fra.me.line = 951;
15707 fra.me.meth = LOCATE_compiling___compiling_icode___IStringValue___compile_to_c;
15708 fra.me.has_broke = 0;
15709 fra.me.REG_size = 3;
15710 fra.me.nitni_local_ref_head = NULL;
15711 fra.me.REG[0] = NIT_NULL;
15712 fra.me.REG[1] = NIT_NULL;
15713 fra.me.REG[2] = NIT_NULL;
15714 fra.me.REG[0] = p0;
15715 fra.me.REG[1] = p1;
15716 /* ./compiling//compiling_icode.nit:953 */
15717 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15718 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15719 /* ./compiling//compiling_icode.nit:954 */
15720 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15721 /* ./compiling//compiling_icode.nit:955 */
15722 if (!once_value_1) {
15723 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
15724 REGB0 = TAG_Int(18);
15725 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15726 once_value_1 = fra.me.REG[2];
15727 register_static_object(&once_value_1);
15728 } else fra.me.REG[2] = once_value_1;
15729 fra.me.REG[2] = fra.me.REG[2];
15730 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15731 fra.me.REG[0] = CALL_icode___icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
15732 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15733 if (!once_value_2) {
15734 fra.me.REG[2] = BOX_NativeString("\")");
15735 REGB0 = TAG_Int(2);
15736 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15737 once_value_2 = fra.me.REG[2];
15738 register_static_object(&once_value_2);
15739 } else fra.me.REG[2] = once_value_2;
15740 fra.me.REG[2] = fra.me.REG[2];
15741 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15742 stack_frame_head = fra.me.prev;
15743 return;
15744 }
15745 void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
15746 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15747 val_t REGB0;
15748 val_t REGB1;
15749 val_t REGB2;
15750 val_t tmp;
15751 static val_t once_value_1; /* Once value */
15752 static val_t once_value_3; /* Once value */
15753 static val_t once_value_5; /* Once value */
15754 static val_t once_value_6; /* Once value */
15755 static val_t once_value_7; /* Once value */
15756 static val_t once_value_8; /* Once value */
15757 static val_t once_value_9; /* Once value */
15758 static val_t once_value_10; /* Once value */
15759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15760 fra.me.file = LOCATE_compiling___compiling_icode;
15761 fra.me.line = 960;
15762 fra.me.meth = LOCATE_compiling___compiling_icode___IAbort___compile_to_c;
15763 fra.me.has_broke = 0;
15764 fra.me.REG_size = 3;
15765 fra.me.nitni_local_ref_head = NULL;
15766 fra.me.REG[0] = NIT_NULL;
15767 fra.me.REG[1] = NIT_NULL;
15768 fra.me.REG[2] = NIT_NULL;
15769 fra.me.REG[0] = p0;
15770 fra.me.REG[1] = p1;
15771 /* ./compiling//compiling_icode.nit:962 */
15772 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15773 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15774 /* ./compiling//compiling_icode.nit:963 */
15775 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15776 /* ./compiling//compiling_icode.nit:964 */
15777 if (!once_value_1) {
15778 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
15779 REGB0 = TAG_Int(11);
15780 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15781 once_value_1 = fra.me.REG[2];
15782 register_static_object(&once_value_1);
15783 } else fra.me.REG[2] = once_value_1;
15784 fra.me.REG[2] = fra.me.REG[2];
15785 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15786 /* ./compiling//compiling_icode.nit:965 */
15787 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15788 REGB0 = TAG_Int(0);
15789 /* ./../lib/standard//collection//array.nit:280 */
15790 REGB1 = TAG_Int(0);
15791 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15792 if (UNTAG_Bool(REGB2)) {
15793 } else {
15794 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15795 }
15796 /* ./../lib/standard//kernel.nit:233 */
15797 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
15798 /* ./../lib/standard//collection//array.nit:280 */
15799 if (UNTAG_Bool(REGB1)) {
15800 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15801 if (UNTAG_Bool(REGB1)) {
15802 } else {
15803 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15804 }
15805 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15806 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15807 if (UNTAG_Bool(REGB2)) {
15808 } else {
15809 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15810 }
15811 /* ./../lib/standard//kernel.nit:232 */
15812 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15813 } else {
15814 /* ./../lib/standard//collection//array.nit:280 */
15815 REGB2 = TAG_Bool(false);
15816 REGB1 = REGB2;
15817 }
15818 if (UNTAG_Bool(REGB1)) {
15819 } else {
15820 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15821 }
15822 /* ./../lib/standard//collection//array.nit:281 */
15823 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15825 if (UNTAG_Bool(REGB1)) {
15826 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15827 }
15828 /* ./../lib/standard//collection//array.nit:718 */
15829 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
15830 /* ./../lib/standard//collection//array.nit:281 */
15831 goto label2;
15832 label2: while(0);
15833 /* ./compiling//compiling_icode.nit:965 */
15834 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15835 /* ./compiling//compiling_icode.nit:966 */
15836 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15837 /* ./../lib/standard//collection//array.nit:24 */
15838 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15839 if (UNTAG_Bool(REGB0)) {
15840 } else {
15841 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
15842 }
15843 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15844 /* ./compiling//compiling_icode.nit:966 */
15845 REGB1 = TAG_Int(1);
15846 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15847 if (UNTAG_Bool(REGB2)) {
15848 } else {
15849 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15850 }
15851 /* ./../lib/standard//kernel.nit:234 */
15852 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
15853 /* ./compiling//compiling_icode.nit:966 */
15854 if (UNTAG_Bool(REGB1)) {
15855 /* ./compiling//compiling_icode.nit:967 */
15856 if (!once_value_3) {
15857 fra.me.REG[2] = BOX_NativeString("\", \"");
15858 REGB1 = TAG_Int(4);
15859 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15860 once_value_3 = fra.me.REG[2];
15861 register_static_object(&once_value_3);
15862 } else fra.me.REG[2] = once_value_3;
15863 fra.me.REG[2] = fra.me.REG[2];
15864 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15865 /* ./compiling//compiling_icode.nit:968 */
15866 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15867 REGB1 = TAG_Int(1);
15868 /* ./../lib/standard//collection//array.nit:280 */
15869 REGB0 = TAG_Int(0);
15870 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15871 if (UNTAG_Bool(REGB2)) {
15872 } else {
15873 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15874 }
15875 /* ./../lib/standard//kernel.nit:233 */
15876 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
15877 /* ./../lib/standard//collection//array.nit:280 */
15878 if (UNTAG_Bool(REGB0)) {
15879 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15880 if (UNTAG_Bool(REGB0)) {
15881 } else {
15882 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15883 }
15884 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15885 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15886 if (UNTAG_Bool(REGB2)) {
15887 } else {
15888 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15889 }
15890 /* ./../lib/standard//kernel.nit:232 */
15891 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
15892 } else {
15893 /* ./../lib/standard//collection//array.nit:280 */
15894 REGB2 = TAG_Bool(false);
15895 REGB0 = REGB2;
15896 }
15897 if (UNTAG_Bool(REGB0)) {
15898 } else {
15899 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15900 }
15901 /* ./../lib/standard//collection//array.nit:281 */
15902 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15904 if (UNTAG_Bool(REGB0)) {
15905 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15906 }
15907 /* ./../lib/standard//collection//array.nit:718 */
15908 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15909 /* ./../lib/standard//collection//array.nit:281 */
15910 goto label4;
15911 label4: while(0);
15912 /* ./compiling//compiling_icode.nit:968 */
15913 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15914 /* ./compiling//compiling_icode.nit:969 */
15915 if (!once_value_5) {
15916 fra.me.REG[2] = BOX_NativeString("\"");
15917 REGB1 = TAG_Int(1);
15918 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15919 once_value_5 = fra.me.REG[2];
15920 register_static_object(&once_value_5);
15921 } else fra.me.REG[2] = once_value_5;
15922 fra.me.REG[2] = fra.me.REG[2];
15923 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15924 } else {
15925 /* ./compiling//compiling_icode.nit:971 */
15926 if (!once_value_6) {
15927 fra.me.REG[2] = BOX_NativeString("\", NULL");
15928 REGB1 = TAG_Int(7);
15929 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15930 once_value_6 = fra.me.REG[2];
15931 register_static_object(&once_value_6);
15932 } else fra.me.REG[2] = once_value_6;
15933 fra.me.REG[2] = fra.me.REG[2];
15934 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15935 }
15936 /* ./compiling//compiling_icode.nit:973 */
15937 if (!once_value_7) {
15938 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
15939 REGB1 = TAG_Int(9);
15940 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15941 once_value_7 = fra.me.REG[2];
15942 register_static_object(&once_value_7);
15943 } else fra.me.REG[2] = once_value_7;
15944 fra.me.REG[2] = fra.me.REG[2];
15945 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15946 /* ./compiling//compiling_icode.nit:974 */
15947 fra.me.REG[2] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
15948 fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
15949 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15950 /* ./compiling//compiling_icode.nit:975 */
15951 fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15952 /* ./compiling//compiling_icode.nit:976 */
15953 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15954 if (UNTAG_Bool(REGB1)) {
15955 } else {
15956 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15957 if (UNTAG_Bool(REGB0)) {
15958 REGB0 = TAG_Bool(false);
15959 REGB1 = REGB0;
15960 } else {
15961 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
15962 REGB1 = REGB0;
15963 }
15964 }
15965 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15966 if (UNTAG_Bool(REGB1)) {
15967 /* ./compiling//compiling_icode.nit:977 */
15968 if (!once_value_8) {
15969 fra.me.REG[2] = BOX_NativeString(", ");
15970 REGB1 = TAG_Int(2);
15971 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15972 once_value_8 = fra.me.REG[2];
15973 register_static_object(&once_value_8);
15974 } else fra.me.REG[2] = once_value_8;
15975 fra.me.REG[2] = fra.me.REG[2];
15976 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15977 /* ./compiling//compiling_icode.nit:978 */
15978 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15979 if (UNTAG_Bool(REGB1)) {
15980 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 978);
15981 }
15982 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
15983 fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
15984 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15985 } else {
15986 /* ./compiling//compiling_icode.nit:980 */
15987 if (!once_value_9) {
15988 fra.me.REG[0] = BOX_NativeString(", 0");
15989 REGB1 = TAG_Int(3);
15990 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
15991 once_value_9 = fra.me.REG[0];
15992 register_static_object(&once_value_9);
15993 } else fra.me.REG[0] = once_value_9;
15994 fra.me.REG[0] = fra.me.REG[0];
15995 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15996 }
15997 /* ./compiling//compiling_icode.nit:982 */
15998 if (!once_value_10) {
15999 fra.me.REG[0] = BOX_NativeString(");\n");
16000 REGB1 = TAG_Int(3);
16001 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
16002 once_value_10 = fra.me.REG[0];
16003 register_static_object(&once_value_10);
16004 } else fra.me.REG[0] = once_value_10;
16005 fra.me.REG[0] = fra.me.REG[0];
16006 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16007 stack_frame_head = fra.me.prev;
16008 return;
16009 }
16010 void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
16011 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16012 val_t REGB0;
16013 val_t REGB1;
16014 val_t tmp;
16015 static val_t once_value_2; /* Once value */
16016 static val_t once_value_3; /* Once value */
16017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16018 fra.me.file = LOCATE_compiling___compiling_icode;
16019 fra.me.line = 987;
16020 fra.me.meth = LOCATE_compiling___compiling_icode___IMove___compile_to_c;
16021 fra.me.has_broke = 0;
16022 fra.me.REG_size = 5;
16023 fra.me.nitni_local_ref_head = NULL;
16024 fra.me.REG[0] = NIT_NULL;
16025 fra.me.REG[1] = NIT_NULL;
16026 fra.me.REG[2] = NIT_NULL;
16027 fra.me.REG[3] = NIT_NULL;
16028 fra.me.REG[4] = NIT_NULL;
16029 fra.me.REG[0] = p0;
16030 fra.me.REG[1] = p1;
16031 /* ./compiling//compiling_icode.nit:987 */
16032 fra.me.REG[2] = fra.me.REG[0];
16033 /* ./compiling//compiling_icode.nit:989 */
16034 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
16035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16036 if (UNTAG_Bool(REGB0)) {
16037 goto label1;
16038 }
16039 /* ./compiling//compiling_icode.nit:990 */
16040 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[2])(fra.me.REG[2]);
16041 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16042 /* ./compiling//compiling_icode.nit:991 */
16043 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
16044 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
16045 if (UNTAG_Bool(REGB0)) {
16046 } else {
16047 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 991);
16048 }
16049 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16050 /* ./compiling//compiling_icode.nit:992 */
16051 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
16052 if (UNTAG_Bool(REGB0)) {
16053 } else {
16054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16055 REGB0 = REGB1;
16056 }
16057 if (UNTAG_Bool(REGB0)) {
16058 goto label1;
16059 }
16060 /* ./compiling//compiling_icode.nit:993 */
16061 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
16062 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16063 /* ./compiling//compiling_icode.nit:994 */
16064 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16065 /* ./compiling//compiling_icode.nit:995 */
16066 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16067 /* ./compiling//compiling_icode.nit:996 */
16068 if (!once_value_2) {
16069 fra.me.REG[4] = BOX_NativeString(" = ");
16070 REGB0 = TAG_Int(3);
16071 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16072 once_value_2 = fra.me.REG[4];
16073 register_static_object(&once_value_2);
16074 } else fra.me.REG[4] = once_value_2;
16075 fra.me.REG[4] = fra.me.REG[4];
16076 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16077 /* ./compiling//compiling_icode.nit:997 */
16078 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16079 /* ./compiling//compiling_icode.nit:998 */
16080 if (!once_value_3) {
16081 fra.me.REG[3] = BOX_NativeString(";\n");
16082 REGB0 = TAG_Int(2);
16083 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16084 once_value_3 = fra.me.REG[3];
16085 register_static_object(&once_value_3);
16086 } else fra.me.REG[3] = once_value_3;
16087 fra.me.REG[3] = fra.me.REG[3];
16088 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16089 label1: while(0);
16090 stack_frame_head = fra.me.prev;
16091 return;
16092 }
16093 void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
16094 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16095 val_t REGB0;
16096 val_t tmp;
16097 static val_t once_value_2; /* Once value */
16098 static val_t once_value_3; /* Once value */
16099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16100 fra.me.file = LOCATE_compiling___compiling_icode;
16101 fra.me.line = 1003;
16102 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c;
16103 fra.me.has_broke = 0;
16104 fra.me.REG_size = 4;
16105 fra.me.nitni_local_ref_head = NULL;
16106 fra.me.REG[0] = NIT_NULL;
16107 fra.me.REG[1] = NIT_NULL;
16108 fra.me.REG[2] = NIT_NULL;
16109 fra.me.REG[3] = NIT_NULL;
16110 fra.me.REG[0] = p0;
16111 fra.me.REG[1] = p1;
16112 /* ./compiling//compiling_icode.nit:1005 */
16113 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16114 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16115 if (UNTAG_Bool(REGB0)) {
16116 goto label1;
16117 }
16118 /* ./compiling//compiling_icode.nit:1006 */
16119 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16120 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16121 /* ./compiling//compiling_icode.nit:1007 */
16122 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16123 /* ./compiling//compiling_icode.nit:1008 */
16124 fra.me.REG[3] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
16125 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16126 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16127 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16128 /* ./compiling//compiling_icode.nit:1009 */
16129 if (!once_value_2) {
16130 fra.me.REG[3] = BOX_NativeString("(");
16131 REGB0 = TAG_Int(1);
16132 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16133 once_value_2 = fra.me.REG[3];
16134 register_static_object(&once_value_2);
16135 } else fra.me.REG[3] = once_value_2;
16136 fra.me.REG[3] = fra.me.REG[3];
16137 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16138 /* ./compiling//compiling_icode.nit:1010 */
16139 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16140 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16141 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16142 /* ./compiling//compiling_icode.nit:1011 */
16143 if (!once_value_3) {
16144 fra.me.REG[0] = BOX_NativeString(")");
16145 REGB0 = TAG_Int(1);
16146 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16147 once_value_3 = fra.me.REG[0];
16148 register_static_object(&once_value_3);
16149 } else fra.me.REG[0] = once_value_3;
16150 fra.me.REG[0] = fra.me.REG[0];
16151 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16152 label1: while(0);
16153 stack_frame_head = fra.me.prev;
16154 return;
16155 }
16156 void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
16157 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16158 val_t REGB0;
16159 val_t tmp;
16160 static val_t once_value_2; /* Once value */
16161 static val_t once_value_3; /* Once value */
16162 static val_t once_value_4; /* Once value */
16163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16164 fra.me.file = LOCATE_compiling___compiling_icode;
16165 fra.me.line = 1016;
16166 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c;
16167 fra.me.has_broke = 0;
16168 fra.me.REG_size = 4;
16169 fra.me.nitni_local_ref_head = NULL;
16170 fra.me.REG[0] = NIT_NULL;
16171 fra.me.REG[1] = NIT_NULL;
16172 fra.me.REG[2] = NIT_NULL;
16173 fra.me.REG[3] = NIT_NULL;
16174 fra.me.REG[0] = p0;
16175 fra.me.REG[1] = p1;
16176 /* ./compiling//compiling_icode.nit:1018 */
16177 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16179 if (UNTAG_Bool(REGB0)) {
16180 goto label1;
16181 }
16182 /* ./compiling//compiling_icode.nit:1019 */
16183 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16184 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16185 /* ./compiling//compiling_icode.nit:1020 */
16186 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16187 /* ./compiling//compiling_icode.nit:1021 */
16188 if (!once_value_2) {
16189 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16190 REGB0 = TAG_Int(9);
16191 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16192 once_value_2 = fra.me.REG[3];
16193 register_static_object(&once_value_2);
16194 } else fra.me.REG[3] = once_value_2;
16195 fra.me.REG[3] = fra.me.REG[3];
16196 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16197 /* ./compiling//compiling_icode.nit:1022 */
16198 fra.me.REG[3] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
16199 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16200 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16201 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16202 /* ./compiling//compiling_icode.nit:1023 */
16203 if (!once_value_3) {
16204 fra.me.REG[3] = BOX_NativeString("(");
16205 REGB0 = TAG_Int(1);
16206 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16207 once_value_3 = fra.me.REG[3];
16208 register_static_object(&once_value_3);
16209 } else fra.me.REG[3] = once_value_3;
16210 fra.me.REG[3] = fra.me.REG[3];
16211 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16212 /* ./compiling//compiling_icode.nit:1024 */
16213 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16214 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16215 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16216 /* ./compiling//compiling_icode.nit:1025 */
16217 if (!once_value_4) {
16218 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
16219 REGB0 = TAG_Int(12);
16220 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16221 once_value_4 = fra.me.REG[0];
16222 register_static_object(&once_value_4);
16223 } else fra.me.REG[0] = once_value_4;
16224 fra.me.REG[0] = fra.me.REG[0];
16225 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16226 label1: while(0);
16227 stack_frame_head = fra.me.prev;
16228 return;
16229 }
16230 void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
16231 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16232 val_t REGB0;
16233 val_t tmp;
16234 static val_t once_value_1; /* Once value */
16235 static val_t once_value_2; /* Once value */
16236 static val_t once_value_3; /* Once value */
16237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16238 fra.me.file = LOCATE_compiling___compiling_icode;
16239 fra.me.line = 1030;
16240 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c;
16241 fra.me.has_broke = 0;
16242 fra.me.REG_size = 4;
16243 fra.me.nitni_local_ref_head = NULL;
16244 fra.me.REG[0] = NIT_NULL;
16245 fra.me.REG[1] = NIT_NULL;
16246 fra.me.REG[2] = NIT_NULL;
16247 fra.me.REG[3] = NIT_NULL;
16248 fra.me.REG[0] = p0;
16249 fra.me.REG[1] = p1;
16250 /* ./compiling//compiling_icode.nit:1032 */
16251 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16252 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16253 /* ./compiling//compiling_icode.nit:1033 */
16254 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16255 /* ./compiling//compiling_icode.nit:1034 */
16256 fra.me.REG[3] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
16257 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16258 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16259 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16260 /* ./compiling//compiling_icode.nit:1035 */
16261 if (!once_value_1) {
16262 fra.me.REG[3] = BOX_NativeString("(");
16263 REGB0 = TAG_Int(1);
16264 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16265 once_value_1 = fra.me.REG[3];
16266 register_static_object(&once_value_1);
16267 } else fra.me.REG[3] = once_value_1;
16268 fra.me.REG[3] = fra.me.REG[3];
16269 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16270 /* ./compiling//compiling_icode.nit:1036 */
16271 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16272 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16273 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16274 /* ./compiling//compiling_icode.nit:1037 */
16275 if (!once_value_2) {
16276 fra.me.REG[3] = BOX_NativeString(") = ");
16277 REGB0 = TAG_Int(4);
16278 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16279 once_value_2 = fra.me.REG[3];
16280 register_static_object(&once_value_2);
16281 } else fra.me.REG[3] = once_value_2;
16282 fra.me.REG[3] = fra.me.REG[3];
16283 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16284 /* ./compiling//compiling_icode.nit:1038 */
16285 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16286 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16287 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16288 /* ./compiling//compiling_icode.nit:1039 */
16289 if (!once_value_3) {
16290 fra.me.REG[0] = BOX_NativeString(";\n");
16291 REGB0 = TAG_Int(2);
16292 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16293 once_value_3 = fra.me.REG[0];
16294 register_static_object(&once_value_3);
16295 } else fra.me.REG[0] = once_value_3;
16296 fra.me.REG[0] = fra.me.REG[0];
16297 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16298 stack_frame_head = fra.me.prev;
16299 return;
16300 }
16301 void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
16302 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16303 val_t REGB0;
16304 val_t REGB1;
16305 val_t tmp;
16306 static val_t once_value_2; /* Once value */
16307 static val_t once_value_3; /* Once value */
16308 static val_t once_value_4; /* Once value */
16309 static val_t once_value_5; /* Once value */
16310 static val_t once_value_6; /* Once value */
16311 static val_t once_value_7; /* Once value */
16312 static val_t once_value_8; /* Once value */
16313 static val_t once_value_9; /* Once value */
16314 static val_t once_value_10; /* Once value */
16315 static val_t once_value_11; /* Once value */
16316 static val_t once_value_12; /* Once value */
16317 static val_t once_value_13; /* Once value */
16318 static val_t once_value_14; /* Once value */
16319 static val_t once_value_15; /* Once value */
16320 static val_t once_value_16; /* Once value */
16321 static val_t once_value_17; /* Once value */
16322 static val_t once_value_18; /* Once value */
16323 static val_t once_value_19; /* Once value */
16324 static val_t once_value_20; /* Once value */
16325 static val_t once_value_21; /* Once value */
16326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16327 fra.me.file = LOCATE_compiling___compiling_icode;
16328 fra.me.line = 1044;
16329 fra.me.meth = LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c;
16330 fra.me.has_broke = 0;
16331 fra.me.REG_size = 6;
16332 fra.me.nitni_local_ref_head = NULL;
16333 fra.me.REG[0] = NIT_NULL;
16334 fra.me.REG[1] = NIT_NULL;
16335 fra.me.REG[2] = NIT_NULL;
16336 fra.me.REG[3] = NIT_NULL;
16337 fra.me.REG[4] = NIT_NULL;
16338 fra.me.REG[5] = NIT_NULL;
16339 fra.me.REG[0] = p0;
16340 fra.me.REG[1] = p1;
16341 /* ./compiling//compiling_icode.nit:1046 */
16342 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16344 if (UNTAG_Bool(REGB0)) {
16345 goto label1;
16346 }
16347 /* ./compiling//compiling_icode.nit:1047 */
16348 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16349 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16350 /* ./compiling//compiling_icode.nit:1048 */
16351 fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16352 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16353 /* ./compiling//compiling_icode.nit:1049 */
16354 fra.me.REG[3] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16355 /* ./compiling//compiling_icode.nit:1050 */
16356 if (!once_value_2) {
16357 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
16358 REGB0 = TAG_Int(9);
16359 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16360 once_value_2 = fra.me.REG[4];
16361 register_static_object(&once_value_2);
16362 } else fra.me.REG[4] = once_value_2;
16363 fra.me.REG[4] = fra.me.REG[4];
16364 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16365 /* ./compiling//compiling_icode.nit:1051 */
16366 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16367 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16368 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16369 if (UNTAG_Bool(REGB0)) {
16370 /* ./compiling//compiling_icode.nit:1052 */
16371 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16372 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16373 if (UNTAG_Bool(REGB0)) {
16374 /* ./compiling//compiling_icode.nit:1053 */
16375 if (!once_value_3) {
16376 fra.me.REG[4] = BOX_NativeString("(");
16377 REGB0 = TAG_Int(1);
16378 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16379 once_value_3 = fra.me.REG[4];
16380 register_static_object(&once_value_3);
16381 } else fra.me.REG[4] = once_value_3;
16382 fra.me.REG[4] = fra.me.REG[4];
16383 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16384 /* ./compiling//compiling_icode.nit:1054 */
16385 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16386 /* ./compiling//compiling_icode.nit:1055 */
16387 if (!once_value_4) {
16388 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
16389 REGB0 = TAG_Int(15);
16390 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16391 once_value_4 = fra.me.REG[4];
16392 register_static_object(&once_value_4);
16393 } else fra.me.REG[4] = once_value_4;
16394 fra.me.REG[4] = fra.me.REG[4];
16395 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16396 } else {
16397 /* ./compiling//compiling_icode.nit:1056 */
16398 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16399 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
16400 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16401 fra.me.REG[5] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
16402 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
16403 if (UNTAG_Bool(REGB0)) {
16404 } else {
16405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
16406 REGB0 = REGB1;
16407 }
16408 if (UNTAG_Bool(REGB0)) {
16409 /* ./compiling//compiling_icode.nit:1057 */
16410 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16411 /* ./compiling//compiling_icode.nit:1058 */
16412 if (!once_value_5) {
16413 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
16414 REGB0 = TAG_Int(11);
16415 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16416 once_value_5 = fra.me.REG[5];
16417 register_static_object(&once_value_5);
16418 } else fra.me.REG[5] = once_value_5;
16419 fra.me.REG[5] = fra.me.REG[5];
16420 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16421 /* ./compiling//compiling_icode.nit:1059 */
16422 goto label1;
16423 } else {
16424 /* ./compiling//compiling_icode.nit:1061 */
16425 if (!once_value_6) {
16426 fra.me.REG[5] = BOX_NativeString("(");
16427 REGB0 = TAG_Int(1);
16428 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16429 once_value_6 = fra.me.REG[5];
16430 register_static_object(&once_value_6);
16431 } else fra.me.REG[5] = once_value_6;
16432 fra.me.REG[5] = fra.me.REG[5];
16433 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16434 /* ./compiling//compiling_icode.nit:1062 */
16435 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16436 /* ./compiling//compiling_icode.nit:1063 */
16437 if (!once_value_7) {
16438 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
16439 REGB0 = TAG_Int(15);
16440 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16441 once_value_7 = fra.me.REG[5];
16442 register_static_object(&once_value_7);
16443 } else fra.me.REG[5] = once_value_7;
16444 fra.me.REG[5] = fra.me.REG[5];
16445 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16446 }
16447 }
16448 }
16449 /* ./compiling//compiling_icode.nit:1067 */
16450 fra.me.REG[5] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16451 /* ./compiling//compiling_icode.nit:1068 */
16452 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
16453 if (UNTAG_Bool(REGB0)) {
16454 /* ./compiling//compiling_icode.nit:1069 */
16455 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16456 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16457 /* ./compiling//compiling_icode.nit:1070 */
16458 fra.me.REG[1] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[5])(fra.me.REG[5]);
16459 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
16460 /* ./compiling//compiling_icode.nit:1071 */
16461 if (!once_value_8) {
16462 fra.me.REG[4] = BOX_NativeString("VAL_ISA(");
16463 REGB0 = TAG_Int(8);
16464 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16465 once_value_8 = fra.me.REG[4];
16466 register_static_object(&once_value_8);
16467 } else fra.me.REG[4] = once_value_8;
16468 fra.me.REG[4] = fra.me.REG[4];
16469 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16470 /* ./compiling//compiling_icode.nit:1072 */
16471 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16472 /* ./compiling//compiling_icode.nit:1073 */
16473 if (!once_value_9) {
16474 fra.me.REG[4] = BOX_NativeString(", ");
16475 REGB0 = TAG_Int(2);
16476 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16477 once_value_9 = fra.me.REG[4];
16478 register_static_object(&once_value_9);
16479 } else fra.me.REG[4] = once_value_9;
16480 fra.me.REG[4] = fra.me.REG[4];
16481 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16482 /* ./compiling//compiling_icode.nit:1074 */
16483 fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[1])(fra.me.REG[1]);
16484 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16485 /* ./compiling//compiling_icode.nit:1075 */
16486 if (!once_value_10) {
16487 fra.me.REG[4] = BOX_NativeString("(");
16488 REGB0 = TAG_Int(1);
16489 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16490 once_value_10 = fra.me.REG[4];
16491 register_static_object(&once_value_10);
16492 } else fra.me.REG[4] = once_value_10;
16493 fra.me.REG[4] = fra.me.REG[4];
16494 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16495 /* ./compiling//compiling_icode.nit:1076 */
16496 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16497 /* ./compiling//compiling_icode.nit:1077 */
16498 if (!once_value_11) {
16499 fra.me.REG[4] = BOX_NativeString(")");
16500 REGB0 = TAG_Int(1);
16501 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16502 once_value_11 = fra.me.REG[4];
16503 register_static_object(&once_value_11);
16504 } else fra.me.REG[4] = once_value_11;
16505 fra.me.REG[4] = fra.me.REG[4];
16506 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16507 /* ./compiling//compiling_icode.nit:1078 */
16508 if (!once_value_12) {
16509 fra.me.REG[4] = BOX_NativeString(", ");
16510 REGB0 = TAG_Int(2);
16511 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16512 once_value_12 = fra.me.REG[4];
16513 register_static_object(&once_value_12);
16514 } else fra.me.REG[4] = once_value_12;
16515 fra.me.REG[4] = fra.me.REG[4];
16516 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16517 /* ./compiling//compiling_icode.nit:1079 */
16518 fra.me.REG[1] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[1])(fra.me.REG[1]);
16519 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16520 /* ./compiling//compiling_icode.nit:1080 */
16521 if (!once_value_13) {
16522 fra.me.REG[1] = BOX_NativeString("(");
16523 REGB0 = TAG_Int(1);
16524 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16525 once_value_13 = fra.me.REG[1];
16526 register_static_object(&once_value_13);
16527 } else fra.me.REG[1] = once_value_13;
16528 fra.me.REG[1] = fra.me.REG[1];
16529 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16530 /* ./compiling//compiling_icode.nit:1081 */
16531 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16532 /* ./compiling//compiling_icode.nit:1082 */
16533 if (!once_value_14) {
16534 fra.me.REG[0] = BOX_NativeString(")");
16535 REGB0 = TAG_Int(1);
16536 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16537 once_value_14 = fra.me.REG[0];
16538 register_static_object(&once_value_14);
16539 } else fra.me.REG[0] = once_value_14;
16540 fra.me.REG[0] = fra.me.REG[0];
16541 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16542 /* ./compiling//compiling_icode.nit:1083 */
16543 if (!once_value_15) {
16544 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16545 REGB0 = TAG_Int(10);
16546 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16547 once_value_15 = fra.me.REG[0];
16548 register_static_object(&once_value_15);
16549 } else fra.me.REG[0] = once_value_15;
16550 fra.me.REG[0] = fra.me.REG[0];
16551 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16552 /* ./compiling//compiling_icode.nit:1084 */
16553 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16554 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16555 /* ./compiling//compiling_icode.nit:1085 */
16556 if (!once_value_16) {
16557 fra.me.REG[0] = BOX_NativeString("*/");
16558 REGB0 = TAG_Int(2);
16559 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16560 once_value_16 = fra.me.REG[0];
16561 register_static_object(&once_value_16);
16562 } else fra.me.REG[0] = once_value_16;
16563 fra.me.REG[0] = fra.me.REG[0];
16564 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16565 } else {
16566 /* ./compiling//compiling_icode.nit:1087 */
16567 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
16568 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
16569 /* ./compiling//compiling_icode.nit:1088 */
16570 if (!once_value_17) {
16571 fra.me.REG[1] = BOX_NativeString("VAL_ISA(");
16572 REGB0 = TAG_Int(8);
16573 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16574 once_value_17 = fra.me.REG[1];
16575 register_static_object(&once_value_17);
16576 } else fra.me.REG[1] = once_value_17;
16577 fra.me.REG[1] = fra.me.REG[1];
16578 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16579 /* ./compiling//compiling_icode.nit:1089 */
16580 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16581 /* ./compiling//compiling_icode.nit:1090 */
16582 if (!once_value_18) {
16583 fra.me.REG[2] = BOX_NativeString(", ");
16584 REGB0 = TAG_Int(2);
16585 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16586 once_value_18 = fra.me.REG[2];
16587 register_static_object(&once_value_18);
16588 } else fra.me.REG[2] = once_value_18;
16589 fra.me.REG[2] = fra.me.REG[2];
16590 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16591 /* ./compiling//compiling_icode.nit:1091 */
16592 fra.me.REG[2] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
16593 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16594 /* ./compiling//compiling_icode.nit:1092 */
16595 if (!once_value_19) {
16596 fra.me.REG[2] = BOX_NativeString(", ");
16597 REGB0 = TAG_Int(2);
16598 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16599 once_value_19 = fra.me.REG[2];
16600 register_static_object(&once_value_19);
16601 } else fra.me.REG[2] = once_value_19;
16602 fra.me.REG[2] = fra.me.REG[2];
16603 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16604 /* ./compiling//compiling_icode.nit:1093 */
16605 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
16606 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16607 /* ./compiling//compiling_icode.nit:1094 */
16608 if (!once_value_20) {
16609 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16610 REGB0 = TAG_Int(10);
16611 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16612 once_value_20 = fra.me.REG[0];
16613 register_static_object(&once_value_20);
16614 } else fra.me.REG[0] = once_value_20;
16615 fra.me.REG[0] = fra.me.REG[0];
16616 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16617 /* ./compiling//compiling_icode.nit:1095 */
16618 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16619 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16620 /* ./compiling//compiling_icode.nit:1096 */
16621 if (!once_value_21) {
16622 fra.me.REG[5] = BOX_NativeString("*/");
16623 REGB0 = TAG_Int(2);
16624 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16625 once_value_21 = fra.me.REG[5];
16626 register_static_object(&once_value_21);
16627 } else fra.me.REG[5] = once_value_21;
16628 fra.me.REG[5] = fra.me.REG[5];
16629 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16630 }
16631 label1: while(0);
16632 stack_frame_head = fra.me.prev;
16633 return;
16634 }
16635 void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
16636 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16637 val_t REGB0;
16638 val_t tmp;
16639 static val_t once_value_2; /* Once value */
16640 static val_t once_value_3; /* Once value */
16641 static val_t once_value_4; /* Once value */
16642 static val_t once_value_5; /* Once value */
16643 static val_t once_value_6; /* Once value */
16644 static val_t once_value_7; /* Once value */
16645 static val_t once_value_8; /* Once value */
16646 static val_t once_value_9; /* Once value */
16647 static val_t once_value_10; /* Once value */
16648 static val_t once_value_11; /* Once value */
16649 static val_t once_value_12; /* Once value */
16650 static val_t once_value_13; /* Once value */
16651 static val_t once_value_14; /* Once value */
16652 static val_t once_value_15; /* Once value */
16653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16654 fra.me.file = LOCATE_compiling___compiling_icode;
16655 fra.me.line = 1102;
16656 fra.me.meth = LOCATE_compiling___compiling_icode___IIs___compile_to_c;
16657 fra.me.has_broke = 0;
16658 fra.me.REG_size = 6;
16659 fra.me.nitni_local_ref_head = NULL;
16660 fra.me.REG[0] = NIT_NULL;
16661 fra.me.REG[1] = NIT_NULL;
16662 fra.me.REG[2] = NIT_NULL;
16663 fra.me.REG[3] = NIT_NULL;
16664 fra.me.REG[4] = NIT_NULL;
16665 fra.me.REG[5] = NIT_NULL;
16666 fra.me.REG[0] = p0;
16667 fra.me.REG[1] = p1;
16668 /* ./compiling//compiling_icode.nit:1104 */
16669 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16670 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16671 if (UNTAG_Bool(REGB0)) {
16672 goto label1;
16673 }
16674 /* ./compiling//compiling_icode.nit:1105 */
16675 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16676 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16677 /* ./compiling//compiling_icode.nit:1106 */
16678 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16679 /* ./compiling//compiling_icode.nit:1107 */
16680 if (!once_value_2) {
16681 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16682 REGB0 = TAG_Int(9);
16683 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16684 once_value_2 = fra.me.REG[3];
16685 register_static_object(&once_value_2);
16686 } else fra.me.REG[3] = once_value_2;
16687 fra.me.REG[3] = fra.me.REG[3];
16688 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16689 /* ./compiling//compiling_icode.nit:1108 */
16690 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16691 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
16692 /* ./compiling//compiling_icode.nit:1109 */
16693 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16694 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16695 /* ./compiling//compiling_icode.nit:1110 */
16696 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16697 if (UNTAG_Bool(REGB0)) {
16698 /* ./compiling//compiling_icode.nit:1111 */
16699 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16700 if (UNTAG_Bool(REGB0)) {
16701 /* ./compiling//compiling_icode.nit:1112 */
16702 if (!once_value_3) {
16703 fra.me.REG[5] = BOX_NativeString("1)");
16704 REGB0 = TAG_Int(2);
16705 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16706 once_value_3 = fra.me.REG[5];
16707 register_static_object(&once_value_3);
16708 } else fra.me.REG[5] = once_value_3;
16709 fra.me.REG[5] = fra.me.REG[5];
16710 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16711 /* ./compiling//compiling_icode.nit:1113 */
16712 goto label1;
16713 } else {
16714 /* ./compiling//compiling_icode.nit:1114 */
16715 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16716 if (UNTAG_Bool(REGB0)) {
16717 /* ./compiling//compiling_icode.nit:1115 */
16718 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16719 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
16720 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16721 /* ./compiling//compiling_icode.nit:1116 */
16722 if (!once_value_4) {
16723 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
16724 REGB0 = TAG_Int(11);
16725 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16726 once_value_4 = fra.me.REG[5];
16727 register_static_object(&once_value_4);
16728 } else fra.me.REG[5] = once_value_4;
16729 fra.me.REG[5] = fra.me.REG[5];
16730 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16731 /* ./compiling//compiling_icode.nit:1117 */
16732 goto label1;
16733 } else {
16734 /* ./compiling//compiling_icode.nit:1119 */
16735 if (!once_value_5) {
16736 fra.me.REG[5] = BOX_NativeString("0)");
16737 REGB0 = TAG_Int(2);
16738 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16739 once_value_5 = fra.me.REG[5];
16740 register_static_object(&once_value_5);
16741 } else fra.me.REG[5] = once_value_5;
16742 fra.me.REG[5] = fra.me.REG[5];
16743 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16744 /* ./compiling//compiling_icode.nit:1120 */
16745 goto label1;
16746 }
16747 }
16748 } else {
16749 /* ./compiling//compiling_icode.nit:1122 */
16750 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
16751 if (UNTAG_Bool(REGB0)) {
16752 /* ./compiling//compiling_icode.nit:1123 */
16753 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16754 if (UNTAG_Bool(REGB0)) {
16755 /* ./compiling//compiling_icode.nit:1124 */
16756 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16757 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16758 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16759 /* ./compiling//compiling_icode.nit:1125 */
16760 if (!once_value_6) {
16761 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
16762 REGB0 = TAG_Int(11);
16763 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16764 once_value_6 = fra.me.REG[3];
16765 register_static_object(&once_value_6);
16766 } else fra.me.REG[3] = once_value_6;
16767 fra.me.REG[3] = fra.me.REG[3];
16768 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16769 /* ./compiling//compiling_icode.nit:1126 */
16770 goto label1;
16771 } else {
16772 /* ./compiling//compiling_icode.nit:1127 */
16773 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16774 if (UNTAG_Bool(REGB0)) {
16775 /* ./compiling//compiling_icode.nit:1128 */
16776 if (!once_value_7) {
16777 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
16778 REGB0 = TAG_Int(12);
16779 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16780 once_value_7 = fra.me.REG[3];
16781 register_static_object(&once_value_7);
16782 } else fra.me.REG[3] = once_value_7;
16783 fra.me.REG[3] = fra.me.REG[3];
16784 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16785 } else {
16786 /* ./compiling//compiling_icode.nit:1130 */
16787 if (!once_value_8) {
16788 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
16789 REGB0 = TAG_Int(12);
16790 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16791 once_value_8 = fra.me.REG[3];
16792 register_static_object(&once_value_8);
16793 } else fra.me.REG[3] = once_value_8;
16794 fra.me.REG[3] = fra.me.REG[3];
16795 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16796 /* ./compiling//compiling_icode.nit:1131 */
16797 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16798 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16799 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16800 /* ./compiling//compiling_icode.nit:1132 */
16801 if (!once_value_9) {
16802 fra.me.REG[3] = BOX_NativeString(",");
16803 REGB0 = TAG_Int(1);
16804 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16805 once_value_9 = fra.me.REG[3];
16806 register_static_object(&once_value_9);
16807 } else fra.me.REG[3] = once_value_9;
16808 fra.me.REG[3] = fra.me.REG[3];
16809 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16810 /* ./compiling//compiling_icode.nit:1133 */
16811 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16812 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16813 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16814 /* ./compiling//compiling_icode.nit:1134 */
16815 if (!once_value_10) {
16816 fra.me.REG[3] = BOX_NativeString("))");
16817 REGB0 = TAG_Int(2);
16818 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16819 once_value_10 = fra.me.REG[3];
16820 register_static_object(&once_value_10);
16821 } else fra.me.REG[3] = once_value_10;
16822 fra.me.REG[3] = fra.me.REG[3];
16823 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16824 /* ./compiling//compiling_icode.nit:1135 */
16825 goto label1;
16826 }
16827 }
16828 } else {
16829 /* ./compiling//compiling_icode.nit:1138 */
16830 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16831 if (UNTAG_Bool(REGB0)) {
16832 /* ./compiling//compiling_icode.nit:1139 */
16833 if (!once_value_11) {
16834 fra.me.REG[3] = BOX_NativeString("0)");
16835 REGB0 = TAG_Int(2);
16836 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16837 once_value_11 = fra.me.REG[3];
16838 register_static_object(&once_value_11);
16839 } else fra.me.REG[3] = once_value_11;
16840 fra.me.REG[3] = fra.me.REG[3];
16841 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16842 /* ./compiling//compiling_icode.nit:1140 */
16843 goto label1;
16844 } else {
16845 /* ./compiling//compiling_icode.nit:1141 */
16846 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16847 if (UNTAG_Bool(REGB0)) {
16848 /* ./compiling//compiling_icode.nit:1142 */
16849 if (!once_value_12) {
16850 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
16851 REGB0 = TAG_Int(12);
16852 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16853 once_value_12 = fra.me.REG[4];
16854 register_static_object(&once_value_12);
16855 } else fra.me.REG[4] = once_value_12;
16856 fra.me.REG[4] = fra.me.REG[4];
16857 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16858 } else {
16859 /* ./compiling//compiling_icode.nit:1144 */
16860 if (!once_value_13) {
16861 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
16862 REGB0 = TAG_Int(12);
16863 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16864 once_value_13 = fra.me.REG[4];
16865 register_static_object(&once_value_13);
16866 } else fra.me.REG[4] = once_value_13;
16867 fra.me.REG[4] = fra.me.REG[4];
16868 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16869 }
16870 }
16871 }
16872 }
16873 /* ./compiling//compiling_icode.nit:1147 */
16874 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16875 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16876 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16877 /* ./compiling//compiling_icode.nit:1148 */
16878 if (!once_value_14) {
16879 fra.me.REG[4] = BOX_NativeString(",");
16880 REGB0 = TAG_Int(1);
16881 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16882 once_value_14 = fra.me.REG[4];
16883 register_static_object(&once_value_14);
16884 } else fra.me.REG[4] = once_value_14;
16885 fra.me.REG[4] = fra.me.REG[4];
16886 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16887 /* ./compiling//compiling_icode.nit:1149 */
16888 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16889 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16890 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16891 /* ./compiling//compiling_icode.nit:1150 */
16892 if (!once_value_15) {
16893 fra.me.REG[0] = BOX_NativeString("))");
16894 REGB0 = TAG_Int(2);
16895 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16896 once_value_15 = fra.me.REG[0];
16897 register_static_object(&once_value_15);
16898 } else fra.me.REG[0] = once_value_15;
16899 fra.me.REG[0] = fra.me.REG[0];
16900 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16901 label1: while(0);
16902 stack_frame_head = fra.me.prev;
16903 return;
16904 }
16905 void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
16906 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16907 val_t REGB0;
16908 val_t tmp;
16909 static val_t once_value_2; /* Once value */
16910 static val_t once_value_3; /* Once value */
16911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16912 fra.me.file = LOCATE_compiling___compiling_icode;
16913 fra.me.line = 1155;
16914 fra.me.meth = LOCATE_compiling___compiling_icode___INot___compile_to_c;
16915 fra.me.has_broke = 0;
16916 fra.me.REG_size = 4;
16917 fra.me.nitni_local_ref_head = NULL;
16918 fra.me.REG[0] = NIT_NULL;
16919 fra.me.REG[1] = NIT_NULL;
16920 fra.me.REG[2] = NIT_NULL;
16921 fra.me.REG[3] = NIT_NULL;
16922 fra.me.REG[0] = p0;
16923 fra.me.REG[1] = p1;
16924 /* ./compiling//compiling_icode.nit:1157 */
16925 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16927 if (UNTAG_Bool(REGB0)) {
16928 goto label1;
16929 }
16930 /* ./compiling//compiling_icode.nit:1158 */
16931 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16932 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16933 /* ./compiling//compiling_icode.nit:1159 */
16934 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16935 /* ./compiling//compiling_icode.nit:1160 */
16936 if (!once_value_2) {
16937 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
16938 REGB0 = TAG_Int(21);
16939 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16940 once_value_2 = fra.me.REG[3];
16941 register_static_object(&once_value_2);
16942 } else fra.me.REG[3] = once_value_2;
16943 fra.me.REG[3] = fra.me.REG[3];
16944 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16945 /* ./compiling//compiling_icode.nit:1161 */
16946 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16947 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16948 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16949 /* ./compiling//compiling_icode.nit:1162 */
16950 if (!once_value_3) {
16951 fra.me.REG[0] = BOX_NativeString("))");
16952 REGB0 = TAG_Int(2);
16953 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16954 once_value_3 = fra.me.REG[0];
16955 register_static_object(&once_value_3);
16956 } else fra.me.REG[0] = once_value_3;
16957 fra.me.REG[0] = fra.me.REG[0];
16958 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16959 label1: while(0);
16960 stack_frame_head = fra.me.prev;
16961 return;
16962 }
16963 void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
16964 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16965 val_t REGB0;
16966 val_t REGB1;
16967 val_t tmp;
16968 static val_t once_value_1; /* Once value */
16969 static val_t once_value_2; /* Once value */
16970 static val_t once_value_3; /* Once value */
16971 static val_t once_value_4; /* Once value */
16972 static val_t once_value_5; /* Once value */
16973 static val_t once_value_6; /* Once value */
16974 static val_t once_value_7; /* Once value */
16975 static val_t once_value_8; /* Once value */
16976 static val_t once_value_9; /* Once value */
16977 static val_t once_value_10; /* Once value */
16978 static val_t once_value_11; /* Once value */
16979 static val_t once_value_12; /* Once value */
16980 static val_t once_value_13; /* Once value */
16981 static val_t once_value_14; /* Once value */
16982 static val_t once_value_15; /* Once value */
16983 static val_t once_value_16; /* Once value */
16984 static val_t once_value_17; /* Once value */
16985 static val_t once_value_18; /* Once value */
16986 static val_t once_value_19; /* Once value */
16987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16988 fra.me.file = LOCATE_compiling___compiling_icode;
16989 fra.me.line = 1167;
16990 fra.me.meth = LOCATE_compiling___compiling_icode___IOnce___compile_to_c;
16991 fra.me.has_broke = 0;
16992 fra.me.REG_size = 6;
16993 fra.me.nitni_local_ref_head = NULL;
16994 fra.me.REG[0] = NIT_NULL;
16995 fra.me.REG[1] = NIT_NULL;
16996 fra.me.REG[2] = NIT_NULL;
16997 fra.me.REG[3] = NIT_NULL;
16998 fra.me.REG[4] = NIT_NULL;
16999 fra.me.REG[5] = NIT_NULL;
17000 fra.me.REG[0] = p0;
17001 fra.me.REG[1] = p1;
17002 /* ./compiling//compiling_icode.nit:1167 */
17003 fra.me.REG[2] = fra.me.REG[0];
17004 /* ./compiling//compiling_icode.nit:1169 */
17005 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
17006 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17007 /* ./compiling//compiling_icode.nit:1170 */
17008 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17009 /* ./compiling//compiling_icode.nit:1171 */
17010 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
17011 REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
17012 if (UNTAG_Bool(REGB1)) {
17013 } else {
17014 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 1171);
17015 }
17016 /* ./compiling//compiling_icode.nit:1172 */
17017 fra.me.REG[0] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17018 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
17019 if (UNTAG_Bool(REGB1)) {
17020 /* ./compiling//compiling_icode.nit:1173 */
17021 REGB1 = TAG_Int(5);
17022 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17023 if (!once_value_1) {
17024 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17025 REGB1 = TAG_Int(24);
17026 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17027 once_value_1 = fra.me.REG[4];
17028 register_static_object(&once_value_1);
17029 } else fra.me.REG[4] = once_value_1;
17030 fra.me.REG[4] = fra.me.REG[4];
17031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17032 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17033 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17034 if (!once_value_2) {
17035 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
17036 REGB1 = TAG_Int(23);
17037 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17038 once_value_2 = fra.me.REG[4];
17039 register_static_object(&once_value_2);
17040 } else fra.me.REG[4] = once_value_2;
17041 fra.me.REG[4] = fra.me.REG[4];
17042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17043 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17045 if (!once_value_3) {
17046 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17047 REGB1 = TAG_Int(18);
17048 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17049 once_value_3 = fra.me.REG[4];
17050 register_static_object(&once_value_3);
17051 } else fra.me.REG[4] = once_value_3;
17052 fra.me.REG[4] = fra.me.REG[4];
17053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17054 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17055 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17056 /* ./compiling//compiling_icode.nit:1174 */
17057 REGB1 = TAG_Int(3);
17058 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17059 if (!once_value_4) {
17060 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
17061 REGB1 = TAG_Int(15);
17062 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17063 once_value_4 = fra.me.REG[4];
17064 register_static_object(&once_value_4);
17065 } else fra.me.REG[4] = once_value_4;
17066 fra.me.REG[4] = fra.me.REG[4];
17067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17068 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17070 if (!once_value_5) {
17071 fra.me.REG[4] = BOX_NativeString(") {");
17072 REGB1 = TAG_Int(3);
17073 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17074 once_value_5 = fra.me.REG[4];
17075 register_static_object(&once_value_5);
17076 } else fra.me.REG[4] = once_value_5;
17077 fra.me.REG[4] = fra.me.REG[4];
17078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17079 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17080 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17081 } else {
17082 /* ./compiling//compiling_icode.nit:1177 */
17083 REGB1 = TAG_Int(3);
17084 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17085 if (!once_value_6) {
17086 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17087 REGB1 = TAG_Int(24);
17088 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17089 once_value_6 = fra.me.REG[4];
17090 register_static_object(&once_value_6);
17091 } else fra.me.REG[4] = once_value_6;
17092 fra.me.REG[4] = fra.me.REG[4];
17093 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17094 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17096 if (!once_value_7) {
17097 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17098 REGB1 = TAG_Int(18);
17099 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17100 once_value_7 = fra.me.REG[4];
17101 register_static_object(&once_value_7);
17102 } else fra.me.REG[4] = once_value_7;
17103 fra.me.REG[4] = fra.me.REG[4];
17104 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17105 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17106 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17107 /* ./compiling//compiling_icode.nit:1178 */
17108 REGB1 = TAG_Int(3);
17109 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17110 if (!once_value_8) {
17111 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
17112 REGB1 = TAG_Int(16);
17113 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17114 once_value_8 = fra.me.REG[4];
17115 register_static_object(&once_value_8);
17116 } else fra.me.REG[4] = once_value_8;
17117 fra.me.REG[4] = fra.me.REG[4];
17118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17119 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17121 if (!once_value_9) {
17122 fra.me.REG[4] = BOX_NativeString(") {");
17123 REGB1 = TAG_Int(3);
17124 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17125 once_value_9 = fra.me.REG[4];
17126 register_static_object(&once_value_9);
17127 } else fra.me.REG[4] = once_value_9;
17128 fra.me.REG[4] = fra.me.REG[4];
17129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17130 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17131 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17132 }
17133 /* ./compiling//compiling_icode.nit:1180 */
17134 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17135 /* ./compiling//compiling_icode.nit:1181 */
17136 fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
17137 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17138 /* ./compiling//compiling_icode.nit:1182 */
17139 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17140 /* ./compiling//compiling_icode.nit:1183 */
17141 REGB1 = TAG_Int(5);
17142 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17143 if (!once_value_10) {
17144 fra.me.REG[5] = BOX_NativeString("once_value_");
17145 REGB1 = TAG_Int(11);
17146 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17147 once_value_10 = fra.me.REG[5];
17148 register_static_object(&once_value_10);
17149 } else fra.me.REG[5] = once_value_10;
17150 fra.me.REG[5] = fra.me.REG[5];
17151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17152 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17154 if (!once_value_11) {
17155 fra.me.REG[5] = BOX_NativeString(" = ");
17156 REGB1 = TAG_Int(3);
17157 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17158 once_value_11 = fra.me.REG[5];
17159 register_static_object(&once_value_11);
17160 } else fra.me.REG[5] = once_value_11;
17161 fra.me.REG[5] = fra.me.REG[5];
17162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
17164 if (!once_value_12) {
17165 fra.me.REG[5] = BOX_NativeString(";");
17166 REGB1 = TAG_Int(1);
17167 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17168 once_value_12 = fra.me.REG[5];
17169 register_static_object(&once_value_12);
17170 } else fra.me.REG[5] = once_value_12;
17171 fra.me.REG[5] = fra.me.REG[5];
17172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17173 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17174 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17175 /* ./compiling//compiling_icode.nit:1184 */
17176 REGB1 = TAG_Int(3);
17177 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17178 if (!once_value_13) {
17179 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
17180 REGB1 = TAG_Int(35);
17181 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17182 once_value_13 = fra.me.REG[5];
17183 register_static_object(&once_value_13);
17184 } else fra.me.REG[5] = once_value_13;
17185 fra.me.REG[5] = fra.me.REG[5];
17186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17187 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17189 if (!once_value_14) {
17190 fra.me.REG[5] = BOX_NativeString(");");
17191 REGB1 = TAG_Int(2);
17192 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17193 once_value_14 = fra.me.REG[5];
17194 register_static_object(&once_value_14);
17195 } else fra.me.REG[5] = once_value_14;
17196 fra.me.REG[5] = fra.me.REG[5];
17197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17198 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17199 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17200 /* ./compiling//compiling_icode.nit:1185 */
17201 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17202 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
17203 if (UNTAG_Bool(REGB1)) {
17204 REGB1 = TAG_Int(3);
17205 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17206 if (!once_value_15) {
17207 fra.me.REG[4] = BOX_NativeString("once_bool_");
17208 REGB1 = TAG_Int(10);
17209 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17210 once_value_15 = fra.me.REG[4];
17211 register_static_object(&once_value_15);
17212 } else fra.me.REG[4] = once_value_15;
17213 fra.me.REG[4] = fra.me.REG[4];
17214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17215 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17217 if (!once_value_16) {
17218 fra.me.REG[4] = BOX_NativeString(" = true;");
17219 REGB1 = TAG_Int(8);
17220 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17221 once_value_16 = fra.me.REG[4];
17222 register_static_object(&once_value_16);
17223 } else fra.me.REG[4] = once_value_16;
17224 fra.me.REG[4] = fra.me.REG[4];
17225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17226 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17227 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17228 }
17229 /* ./compiling//compiling_icode.nit:1186 */
17230 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17231 /* ./compiling//compiling_icode.nit:1187 */
17232 REGB1 = TAG_Int(5);
17233 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17234 if (!once_value_17) {
17235 fra.me.REG[4] = BOX_NativeString("} else ");
17236 REGB1 = TAG_Int(7);
17237 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17238 once_value_17 = fra.me.REG[4];
17239 register_static_object(&once_value_17);
17240 } else fra.me.REG[4] = once_value_17;
17241 fra.me.REG[4] = fra.me.REG[4];
17242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17243 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17244 if (!once_value_18) {
17245 fra.me.REG[4] = BOX_NativeString(" = once_value_");
17246 REGB1 = TAG_Int(14);
17247 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17248 once_value_18 = fra.me.REG[4];
17249 register_static_object(&once_value_18);
17250 } else fra.me.REG[4] = once_value_18;
17251 fra.me.REG[4] = fra.me.REG[4];
17252 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17253 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17255 if (!once_value_19) {
17256 fra.me.REG[4] = BOX_NativeString(";");
17257 REGB0 = TAG_Int(1);
17258 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17259 once_value_19 = fra.me.REG[4];
17260 register_static_object(&once_value_19);
17261 } else fra.me.REG[4] = once_value_19;
17262 fra.me.REG[4] = fra.me.REG[4];
17263 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17264 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17265 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17266 /* ./compiling//compiling_icode.nit:1188 */
17267 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
17268 /* ./compiling//compiling_icode.nit:1189 */
17269 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17270 stack_frame_head = fra.me.prev;
17271 return;
17272 }
17273 void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
17274 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17275 val_t REGB0;
17276 val_t REGB1;
17277 val_t tmp;
17278 static val_t once_value_1; /* Once value */
17279 static val_t once_value_2; /* Once value */
17280 static val_t once_value_3; /* Once value */
17281 static val_t once_value_4; /* Once value */
17282 static val_t once_value_5; /* Once value */
17283 static val_t once_value_6; /* Once value */
17284 static val_t once_value_7; /* Once value */
17285 static val_t once_value_8; /* Once value */
17286 static val_t once_value_9; /* Once value */
17287 static val_t once_value_10; /* Once value */
17288 static val_t once_value_11; /* Once value */
17289 static val_t once_value_12; /* Once value */
17290 static val_t once_value_13; /* Once value */
17291 static val_t once_value_14; /* Once value */
17292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17293 fra.me.file = LOCATE_compiling___compiling_icode;
17294 fra.me.line = 1194;
17295 fra.me.meth = LOCATE_compiling___compiling_icode___IClosCall___compile_to_c;
17296 fra.me.has_broke = 0;
17297 fra.me.REG_size = 7;
17298 fra.me.nitni_local_ref_head = NULL;
17299 fra.me.REG[0] = NIT_NULL;
17300 fra.me.REG[1] = NIT_NULL;
17301 fra.me.REG[2] = NIT_NULL;
17302 fra.me.REG[3] = NIT_NULL;
17303 fra.me.REG[4] = NIT_NULL;
17304 fra.me.REG[5] = NIT_NULL;
17305 fra.me.REG[6] = NIT_NULL;
17306 fra.me.REG[0] = p0;
17307 fra.me.REG[1] = p1;
17308 /* ./compiling//compiling_icode.nit:1196 */
17309 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17310 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17311 /* ./compiling//compiling_icode.nit:1199 */
17312 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17313 if (UNTAG_Bool(REGB0)) {
17314 /* ./compiling//compiling_icode.nit:1200 */
17315 REGB0 = TAG_Int(3);
17316 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17317 if (!once_value_1) {
17318 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17319 REGB0 = TAG_Int(22);
17320 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17321 once_value_1 = fra.me.REG[3];
17322 register_static_object(&once_value_1);
17323 } else fra.me.REG[3] = once_value_1;
17324 fra.me.REG[3] = fra.me.REG[3];
17325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17326 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17327 fra.me.REG[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17328 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17330 if (!once_value_2) {
17331 fra.me.REG[4] = BOX_NativeString("]");
17332 REGB0 = TAG_Int(1);
17333 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17334 once_value_2 = fra.me.REG[4];
17335 register_static_object(&once_value_2);
17336 } else fra.me.REG[4] = once_value_2;
17337 fra.me.REG[4] = fra.me.REG[4];
17338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17339 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17340 /* ./compiling//compiling_icode.nit:1201 */
17341 REGB0 = TAG_Int(1);
17342 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17343 if (!once_value_3) {
17344 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
17345 REGB0 = TAG_Int(20);
17346 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17347 once_value_3 = fra.me.REG[3];
17348 register_static_object(&once_value_3);
17349 } else fra.me.REG[3] = once_value_3;
17350 fra.me.REG[3] = fra.me.REG[3];
17351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17352 } else {
17353 /* ./compiling//compiling_icode.nit:1203 */
17354 REGB0 = TAG_Int(3);
17355 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17356 if (!once_value_4) {
17357 fra.me.REG[5] = BOX_NativeString("CREG[");
17358 REGB0 = TAG_Int(5);
17359 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17360 once_value_4 = fra.me.REG[5];
17361 register_static_object(&once_value_4);
17362 } else fra.me.REG[5] = once_value_4;
17363 fra.me.REG[5] = fra.me.REG[5];
17364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17365 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17366 fra.me.REG[6] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17367 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17369 if (!once_value_5) {
17370 fra.me.REG[6] = BOX_NativeString("]");
17371 REGB0 = TAG_Int(1);
17372 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17373 once_value_5 = fra.me.REG[6];
17374 register_static_object(&once_value_5);
17375 } else fra.me.REG[6] = once_value_5;
17376 fra.me.REG[6] = fra.me.REG[6];
17377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17378 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17379 fra.me.REG[2] = fra.me.REG[3];
17380 /* ./compiling//compiling_icode.nit:1204 */
17381 REGB0 = TAG_Int(1);
17382 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17383 if (!once_value_6) {
17384 fra.me.REG[6] = BOX_NativeString("closctx_param");
17385 REGB0 = TAG_Int(13);
17386 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17387 once_value_6 = fra.me.REG[6];
17388 register_static_object(&once_value_6);
17389 } else fra.me.REG[6] = once_value_6;
17390 fra.me.REG[6] = fra.me.REG[6];
17391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17392 fra.me.REG[4] = fra.me.REG[3];
17393 }
17394 /* ./compiling//compiling_icode.nit:1206 */
17395 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
17396 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17397 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17398 /* ./compiling//compiling_icode.nit:1208 */
17399 REGB0 = TAG_Int(7);
17400 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17401 if (!once_value_7) {
17402 fra.me.REG[6] = BOX_NativeString("((");
17403 REGB0 = TAG_Int(2);
17404 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17405 once_value_7 = fra.me.REG[6];
17406 register_static_object(&once_value_7);
17407 } else fra.me.REG[6] = once_value_7;
17408 fra.me.REG[6] = fra.me.REG[6];
17409 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17410 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
17411 fra.me.REG[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17412 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
17413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17414 if (!once_value_8) {
17415 fra.me.REG[5] = BOX_NativeString(")(");
17416 REGB0 = TAG_Int(2);
17417 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17418 once_value_8 = fra.me.REG[5];
17419 register_static_object(&once_value_8);
17420 } else fra.me.REG[5] = once_value_8;
17421 fra.me.REG[5] = fra.me.REG[5];
17422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17424 if (!once_value_9) {
17425 fra.me.REG[2] = BOX_NativeString("))(");
17426 REGB0 = TAG_Int(3);
17427 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17428 once_value_9 = fra.me.REG[2];
17429 register_static_object(&once_value_9);
17430 } else fra.me.REG[2] = once_value_9;
17431 fra.me.REG[2] = fra.me.REG[2];
17432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17433 if (!once_value_10) {
17434 fra.me.REG[2] = BOX_NativeString(", ");
17435 REGB0 = TAG_Int(2);
17436 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17437 once_value_10 = fra.me.REG[2];
17438 register_static_object(&once_value_10);
17439 } else fra.me.REG[2] = once_value_10;
17440 fra.me.REG[2] = fra.me.REG[2];
17441 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
17442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17443 if (!once_value_11) {
17444 fra.me.REG[2] = BOX_NativeString(")");
17445 REGB0 = TAG_Int(1);
17446 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17447 once_value_11 = fra.me.REG[2];
17448 register_static_object(&once_value_11);
17449 } else fra.me.REG[2] = once_value_11;
17450 fra.me.REG[2] = fra.me.REG[2];
17451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17452 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17453 /* ./compiling//compiling_icode.nit:1209 */
17454 fra.me.REG[2] = NEW_Writer_compiling___compiling_writer___Writer___init();
17455 /* ./compiling//compiling_icode.nit:1210 */
17456 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17457 /* ./compiling//compiling_icode.nit:1211 */
17458 CALL_compiling___compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
17459 /* ./compiling//compiling_icode.nit:1214 */
17460 REGB0 = TAG_Int(3);
17461 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17462 if (!once_value_12) {
17463 fra.me.REG[3] = BOX_NativeString("if (");
17464 REGB0 = TAG_Int(4);
17465 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17466 once_value_12 = fra.me.REG[3];
17467 register_static_object(&once_value_12);
17468 } else fra.me.REG[3] = once_value_12;
17469 fra.me.REG[3] = fra.me.REG[3];
17470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17471 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
17472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17473 if (!once_value_13) {
17474 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
17475 REGB0 = TAG_Int(14);
17476 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17477 once_value_13 = fra.me.REG[4];
17478 register_static_object(&once_value_13);
17479 } else fra.me.REG[4] = once_value_13;
17480 fra.me.REG[4] = fra.me.REG[4];
17481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17482 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17483 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17484 /* ./compiling//compiling_icode.nit:1215 */
17485 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17486 /* ./compiling//compiling_icode.nit:1216 */
17487 fra.me.REG[0] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
17488 /* ./compiling//compiling_icode.nit:1217 */
17489 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17490 if (UNTAG_Bool(REGB0)) {
17491 } else {
17492 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17493 if (UNTAG_Bool(REGB1)) {
17494 REGB1 = TAG_Bool(false);
17495 REGB0 = REGB1;
17496 } else {
17497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
17498 REGB0 = REGB1;
17499 }
17500 }
17501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17502 if (UNTAG_Bool(REGB0)) {
17503 /* ./compiling//compiling_icode.nit:1218 */
17504 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17505 if (UNTAG_Bool(REGB0)) {
17506 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 1218);
17507 }
17508 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17509 }
17510 /* ./compiling//compiling_icode.nit:1220 */
17511 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
17512 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
17513 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17514 /* ./compiling//compiling_icode.nit:1221 */
17515 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17516 /* ./compiling//compiling_icode.nit:1222 */
17517 if (!once_value_14) {
17518 fra.me.REG[0] = BOX_NativeString("}");
17519 REGB0 = TAG_Int(1);
17520 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17521 once_value_14 = fra.me.REG[0];
17522 register_static_object(&once_value_14);
17523 } else fra.me.REG[0] = once_value_14;
17524 fra.me.REG[0] = fra.me.REG[0];
17525 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17526 stack_frame_head = fra.me.prev;
17527 return;
17528 }
17529 void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
17530 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17531 val_t REGB0;
17532 val_t tmp;
17533 static val_t once_value_2; /* Once value */
17534 static val_t once_value_3; /* Once value */
17535 static val_t once_value_4; /* Once value */
17536 static val_t once_value_5; /* Once value */
17537 static val_t once_value_6; /* Once value */
17538 static val_t once_value_7; /* Once value */
17539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17540 fra.me.file = LOCATE_compiling___compiling_icode;
17541 fra.me.line = 1227;
17542 fra.me.meth = LOCATE_compiling___compiling_icode___IHasClos___compile_to_c;
17543 fra.me.has_broke = 0;
17544 fra.me.REG_size = 5;
17545 fra.me.nitni_local_ref_head = NULL;
17546 fra.me.REG[0] = NIT_NULL;
17547 fra.me.REG[1] = NIT_NULL;
17548 fra.me.REG[2] = NIT_NULL;
17549 fra.me.REG[3] = NIT_NULL;
17550 fra.me.REG[4] = NIT_NULL;
17551 fra.me.REG[0] = p0;
17552 fra.me.REG[1] = p1;
17553 /* ./compiling//compiling_icode.nit:1229 */
17554 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
17555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17556 if (UNTAG_Bool(REGB0)) {
17557 goto label1;
17558 }
17559 /* ./compiling//compiling_icode.nit:1230 */
17560 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17561 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17562 /* ./compiling//compiling_icode.nit:1231 */
17563 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17564 /* ./compiling//compiling_icode.nit:1232 */
17565 if (!once_value_2) {
17566 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
17567 REGB0 = TAG_Int(9);
17568 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17569 once_value_2 = fra.me.REG[3];
17570 register_static_object(&once_value_2);
17571 } else fra.me.REG[3] = once_value_2;
17572 fra.me.REG[3] = fra.me.REG[3];
17573 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17574 /* ./compiling//compiling_icode.nit:1233 */
17575 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17576 if (UNTAG_Bool(REGB0)) {
17577 /* ./compiling//compiling_icode.nit:1234 */
17578 if (!once_value_3) {
17579 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17580 REGB0 = TAG_Int(22);
17581 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17582 once_value_3 = fra.me.REG[3];
17583 register_static_object(&once_value_3);
17584 } else fra.me.REG[3] = once_value_3;
17585 fra.me.REG[3] = fra.me.REG[3];
17586 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17587 /* ./compiling//compiling_icode.nit:1235 */
17588 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17589 fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17590 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17591 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17592 /* ./compiling//compiling_icode.nit:1236 */
17593 if (!once_value_4) {
17594 fra.me.REG[4] = BOX_NativeString("]");
17595 REGB0 = TAG_Int(1);
17596 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17597 once_value_4 = fra.me.REG[4];
17598 register_static_object(&once_value_4);
17599 } else fra.me.REG[4] = once_value_4;
17600 fra.me.REG[4] = fra.me.REG[4];
17601 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17602 } else {
17603 /* ./compiling//compiling_icode.nit:1238 */
17604 if (!once_value_5) {
17605 fra.me.REG[4] = BOX_NativeString("CREG[");
17606 REGB0 = TAG_Int(5);
17607 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17608 once_value_5 = fra.me.REG[4];
17609 register_static_object(&once_value_5);
17610 } else fra.me.REG[4] = once_value_5;
17611 fra.me.REG[4] = fra.me.REG[4];
17612 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17613 /* ./compiling//compiling_icode.nit:1239 */
17614 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17615 fra.me.REG[0] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17616 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17617 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17618 /* ./compiling//compiling_icode.nit:1240 */
17619 if (!once_value_6) {
17620 fra.me.REG[0] = BOX_NativeString("]");
17621 REGB0 = TAG_Int(1);
17622 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17623 once_value_6 = fra.me.REG[0];
17624 register_static_object(&once_value_6);
17625 } else fra.me.REG[0] = once_value_6;
17626 fra.me.REG[0] = fra.me.REG[0];
17627 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17628 }
17629 /* ./compiling//compiling_icode.nit:1242 */
17630 if (!once_value_7) {
17631 fra.me.REG[0] = BOX_NativeString(" != NULL)");
17632 REGB0 = TAG_Int(9);
17633 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17634 once_value_7 = fra.me.REG[0];
17635 register_static_object(&once_value_7);
17636 } else fra.me.REG[0] = once_value_7;
17637 fra.me.REG[0] = fra.me.REG[0];
17638 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17639 label1: while(0);
17640 stack_frame_head = fra.me.prev;
17641 return;
17642 }
17643 val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
17644 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17645 val_t REGB0;
17646 val_t REGB1;
17647 val_t REGB2;
17648 val_t tmp;
17649 static val_t once_value_1; /* Once value */
17650 static val_t once_value_2; /* Once value */
17651 static val_t once_value_3; /* Once value */
17652 static val_t once_value_4; /* Once value */
17653 static val_t once_value_5; /* Once value */
17654 static val_t once_value_6; /* Once value */
17655 static val_t once_value_7; /* Once value */
17656 static val_t once_value_8; /* Once value */
17657 static val_t once_value_9; /* Once value */
17658 static val_t once_value_10; /* Once value */
17659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17660 fra.me.file = LOCATE_compiling___compiling_icode;
17661 fra.me.line = 1247;
17662 fra.me.meth = LOCATE_compiling___compiling_icode___IClosureDef___compile_closure;
17663 fra.me.has_broke = 0;
17664 fra.me.REG_size = 9;
17665 fra.me.nitni_local_ref_head = NULL;
17666 fra.me.REG[0] = NIT_NULL;
17667 fra.me.REG[1] = NIT_NULL;
17668 fra.me.REG[2] = NIT_NULL;
17669 fra.me.REG[3] = NIT_NULL;
17670 fra.me.REG[4] = NIT_NULL;
17671 fra.me.REG[5] = NIT_NULL;
17672 fra.me.REG[6] = NIT_NULL;
17673 fra.me.REG[7] = NIT_NULL;
17674 fra.me.REG[8] = NIT_NULL;
17675 fra.me.REG[0] = p0;
17676 fra.me.REG[1] = p1;
17677 /* ./compiling//compiling_icode.nit:1251 */
17678 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17679 /* ./compiling//compiling_icode.nit:1254 */
17680 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17681 /* ./compiling//compiling_icode.nit:1255 */
17682 REGB1 = TAG_Bool(true);
17683 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
17684 /* ./compiling//compiling_icode.nit:1258 */
17685 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
17686 /* ./compiling//compiling_icode.nit:1259 */
17687 fra.me.REG[4] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
17688 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17689 /* ./compiling//compiling_icode.nit:1262 */
17690 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
17691 /* ./compiling//compiling_icode.nit:1263 */
17692 fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17693 /* ./compiling//compiling_icode.nit:1264 */
17694 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
17695 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17696 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17697 /* ./compiling//compiling_icode.nit:1265 */
17698 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
17699 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17700 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17701 /* ./compiling//compiling_icode.nit:1268 */
17702 REGB1 = TAG_Int(5);
17703 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17704 if (!once_value_1) {
17705 fra.me.REG[7] = BOX_NativeString("OC_");
17706 REGB1 = TAG_Int(3);
17707 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17708 once_value_1 = fra.me.REG[7];
17709 register_static_object(&once_value_1);
17710 } else fra.me.REG[7] = once_value_1;
17711 fra.me.REG[7] = fra.me.REG[7];
17712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17713 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
17714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17715 if (!once_value_2) {
17716 fra.me.REG[7] = BOX_NativeString("_");
17717 REGB1 = TAG_Int(1);
17718 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17719 once_value_2 = fra.me.REG[7];
17720 register_static_object(&once_value_2);
17721 } else fra.me.REG[7] = once_value_2;
17722 fra.me.REG[7] = fra.me.REG[7];
17723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17724 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17725 fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
17726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17727 if (!once_value_3) {
17728 fra.me.REG[7] = BOX_NativeString("");
17729 REGB1 = TAG_Int(0);
17730 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17731 once_value_3 = fra.me.REG[7];
17732 register_static_object(&once_value_3);
17733 } else fra.me.REG[7] = once_value_3;
17734 fra.me.REG[7] = fra.me.REG[7];
17735 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17736 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
17737 /* ./compiling//compiling_icode.nit:1269 */
17738 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17739 if (!once_value_4) {
17740 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
17741 REGB1 = TAG_Int(29);
17742 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17743 once_value_4 = fra.me.REG[8];
17744 register_static_object(&once_value_4);
17745 } else fra.me.REG[8] = once_value_4;
17746 fra.me.REG[8] = fra.me.REG[8];
17747 fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[8], NIT_NULL);
17748 /* ./compiling//compiling_icode.nit:1270 */
17749 fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17750 fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
17751 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
17752 /* ./compiling//compiling_icode.nit:1272 */
17753 fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[8]);
17754 /* ./compiling//compiling_icode.nit:1273 */
17755 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17756 if (UNTAG_Bool(REGB1)) {
17757 } else {
17758 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17759 if (UNTAG_Bool(REGB2)) {
17760 REGB2 = TAG_Bool(false);
17761 REGB1 = REGB2;
17762 } else {
17763 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
17764 REGB1 = REGB2;
17765 }
17766 }
17767 if (UNTAG_Bool(REGB1)) {
17768 /* ./compiling//compiling_icode.nit:1274 */
17769 if (!once_value_5) {
17770 fra.me.REG[0] = BOX_NativeString("return;");
17771 REGB1 = TAG_Int(7);
17772 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17773 once_value_5 = fra.me.REG[0];
17774 register_static_object(&once_value_5);
17775 } else fra.me.REG[0] = once_value_5;
17776 fra.me.REG[0] = fra.me.REG[0];
17777 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17778 } else {
17779 /* ./compiling//compiling_icode.nit:1276 */
17780 REGB1 = TAG_Int(3);
17781 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17782 if (!once_value_6) {
17783 fra.me.REG[7] = BOX_NativeString("return ");
17784 REGB1 = TAG_Int(7);
17785 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17786 once_value_6 = fra.me.REG[7];
17787 register_static_object(&once_value_6);
17788 } else fra.me.REG[7] = once_value_6;
17789 fra.me.REG[7] = fra.me.REG[7];
17790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
17791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17792 if (!once_value_7) {
17793 fra.me.REG[8] = BOX_NativeString(";");
17794 REGB1 = TAG_Int(1);
17795 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17796 once_value_7 = fra.me.REG[8];
17797 register_static_object(&once_value_7);
17798 } else fra.me.REG[8] = once_value_7;
17799 fra.me.REG[8] = fra.me.REG[8];
17800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17801 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17802 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17803 }
17804 /* ./compiling//compiling_icode.nit:1278 */
17805 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17806 /* ./compiling//compiling_icode.nit:1279 */
17807 if (!once_value_8) {
17808 fra.me.REG[0] = BOX_NativeString("}");
17809 REGB1 = TAG_Int(1);
17810 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17811 once_value_8 = fra.me.REG[0];
17812 register_static_object(&once_value_8);
17813 } else fra.me.REG[0] = once_value_8;
17814 fra.me.REG[0] = fra.me.REG[0];
17815 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17816 /* ./compiling//compiling_icode.nit:1282 */
17817 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
17818 /* ./compiling//compiling_icode.nit:1283 */
17819 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17820 /* ./compiling//compiling_icode.nit:1284 */
17821 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
17822 /* ./compiling//compiling_icode.nit:1285 */
17823 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17824 /* ./compiling//compiling_icode.nit:1286 */
17825 REGB0 = TAG_Int(3);
17826 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17827 if (!once_value_9) {
17828 fra.me.REG[1] = BOX_NativeString("((fun_t)");
17829 REGB0 = TAG_Int(8);
17830 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
17831 once_value_9 = fra.me.REG[1];
17832 register_static_object(&once_value_9);
17833 } else fra.me.REG[1] = once_value_9;
17834 fra.me.REG[1] = fra.me.REG[1];
17835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17837 if (!once_value_10) {
17838 fra.me.REG[6] = BOX_NativeString(")");
17839 REGB0 = TAG_Int(1);
17840 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17841 once_value_10 = fra.me.REG[6];
17842 register_static_object(&once_value_10);
17843 } else fra.me.REG[6] = once_value_10;
17844 fra.me.REG[6] = fra.me.REG[6];
17845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17846 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17847 goto label11;
17848 label11: while(0);
17849 stack_frame_head = fra.me.prev;
17850 return fra.me.REG[3];
17851 }