ni: display known clients for modules
[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 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register[] = "compiling_icode::I2CCompilerVisitor::register";
4 val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){
5 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6 val_t REGB0;
7 val_t REGB1;
8 val_t tmp;
9 static val_t once_value_1; /* Once value */
10 static val_t once_value_3; /* Once value */
11 static val_t once_value_4; /* Once value */
12 static val_t once_value_5; /* Once value */
13 static val_t once_value_6; /* Once value */
14 static val_t once_value_7; /* Once value */
15 static val_t once_value_8; /* Once value */
16 static val_t once_value_9; /* Once value */
17 static val_t once_value_10; /* Once value */
18 static val_t once_value_11; /* Once value */
19 static val_t once_value_12; /* Once value */
20 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21 fra.me.file = LOCATE_compiling___compiling_icode;
22 fra.me.line = 32;
23 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register;
24 fra.me.has_broke = 0;
25 fra.me.REG_size = 8;
26 fra.me.nitni_local_ref_head = NULL;
27 fra.me.REG[0] = NIT_NULL;
28 fra.me.REG[1] = NIT_NULL;
29 fra.me.REG[2] = NIT_NULL;
30 fra.me.REG[3] = NIT_NULL;
31 fra.me.REG[4] = NIT_NULL;
32 fra.me.REG[5] = NIT_NULL;
33 fra.me.REG[6] = NIT_NULL;
34 fra.me.REG[7] = NIT_NULL;
35 fra.me.REG[0] = p0;
36 fra.me.REG[1] = p1;
37 /* compiling/compiling_icode.nit:35 */
38 fra.me.REG[2] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
39 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
40 if (UNTAG_Bool(REGB0)) {
41 if (!once_value_1) {
42 fra.me.REG[2] = BOX_NativeString("NIT_NULL");
43 REGB0 = TAG_Int(8);
44 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
45 once_value_1 = fra.me.REG[2];
46 register_static_object(&once_value_1);
47 } else fra.me.REG[2] = once_value_1;
48 fra.me.REG[2] = fra.me.REG[2];
49 goto label2;
50 }
51 /* compiling/compiling_icode.nit:36 */
52 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
53 if (UNTAG_Bool(REGB0)) {
54 } else {
55 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 36);
56 }
57 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
58 /* compiling/compiling_icode.nit:37 */
59 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
60 if (UNTAG_Bool(REGB0)) {
61 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
62 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
63 } else {
64 REGB1 = TAG_Bool(0);
65 REGB0 = REGB1;
66 }
67 if (UNTAG_Bool(REGB0)) {
68 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0])!=NIT_NULL);
69 if (UNTAG_Bool(REGB0)) {
70 } else {
71 nit_abort("Uninitialized attribute %s", "_ids2", LOCATE_compiling___compiling_icode, 37);
72 }
73 fra.me.REG[4] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]);
74 fra.me.REG[3] = fra.me.REG[4];
75 }
76 /* compiling/compiling_icode.nit:38 */
77 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
78 if (UNTAG_Bool(REGB0)) {
79 /* compiling/compiling_icode.nit:39 */
80 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
81 fra.me.REG[2] = fra.me.REG[4];
82 goto label2;
83 } else {
84 /* compiling/compiling_icode.nit:41 */
85 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
86 /* compiling/compiling_icode.nit:42 */
87 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
88 if (UNTAG_Bool(REGB0)) {
89 } else {
90 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
91 if (UNTAG_Bool(REGB1)) {
92 REGB1 = TAG_Bool(0);
93 REGB0 = REGB1;
94 } else {
95 /* ../lib/standard/kernel.nit:230 */
96 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
97 /* compiling/compiling_icode.nit:42 */
98 REGB0 = REGB1;
99 }
100 }
101 if (UNTAG_Bool(REGB0)) {
102 /* compiling/compiling_icode.nit:44 */
103 if (!once_value_3) {
104 fra.me.REG[5] = BOX_NativeString("NIT_NULL");
105 REGB0 = TAG_Int(8);
106 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
107 once_value_3 = fra.me.REG[5];
108 register_static_object(&once_value_3);
109 } else fra.me.REG[5] = once_value_3;
110 fra.me.REG[5] = fra.me.REG[5];
111 /* compiling/compiling_icode.nit:45 */
112 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5]);
113 /* compiling/compiling_icode.nit:46 */
114 fra.me.REG[2] = fra.me.REG[5];
115 goto label2;
116 } else {
117 /* compiling/compiling_icode.nit:50 */
118 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]);
119 if (UNTAG_Bool(REGB0)) {
120 /* compiling/compiling_icode.nit:51 */
121 if (!once_value_4) {
122 fra.me.REG[5] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
123 once_value_4 = fra.me.REG[5];
124 register_static_object(&once_value_4);
125 } else fra.me.REG[5] = once_value_4;
126 fra.me.REG[5] = fra.me.REG[5];
127 /* compiling/compiling_icode.nit:52 */
128 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
130 if (UNTAG_Bool(REGB0)) {
131 REGB0 = TAG_Int(3);
132 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
133 if (!once_value_5) {
134 fra.me.REG[7] = BOX_NativeString("REGB");
135 REGB0 = TAG_Int(4);
136 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
137 once_value_5 = fra.me.REG[7];
138 register_static_object(&once_value_5);
139 } else fra.me.REG[7] = once_value_5;
140 fra.me.REG[7] = fra.me.REG[7];
141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
142 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
143 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
144 if (!once_value_6) {
145 fra.me.REG[7] = BOX_NativeString("");
146 REGB0 = TAG_Int(0);
147 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
148 once_value_6 = fra.me.REG[7];
149 register_static_object(&once_value_6);
150 } else fra.me.REG[7] = once_value_6;
151 fra.me.REG[7] = fra.me.REG[7];
152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
153 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
154 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
155 }
156 } else {
157 /* compiling/compiling_icode.nit:53 */
158 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
159 if (UNTAG_Bool(REGB0)) {
160 REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
162 } else {
163 REGB1 = TAG_Bool(0);
164 REGB0 = REGB1;
165 }
166 if (UNTAG_Bool(REGB0)) {
167 /* compiling/compiling_icode.nit:54 */
168 if (!once_value_7) {
169 fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
170 once_value_7 = fra.me.REG[0];
171 register_static_object(&once_value_7);
172 } else fra.me.REG[0] = once_value_7;
173 fra.me.REG[0] = fra.me.REG[0];
174 fra.me.REG[5] = fra.me.REG[0];
175 /* compiling/compiling_icode.nit:55 */
176 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
178 if (UNTAG_Bool(REGB0)) {
179 REGB0 = TAG_Int(3);
180 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
181 if (!once_value_8) {
182 fra.me.REG[6] = BOX_NativeString("closctx->REG[");
183 REGB0 = TAG_Int(13);
184 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
185 once_value_8 = fra.me.REG[6];
186 register_static_object(&once_value_8);
187 } else fra.me.REG[6] = once_value_8;
188 fra.me.REG[6] = fra.me.REG[6];
189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
190 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
192 if (!once_value_9) {
193 fra.me.REG[6] = BOX_NativeString("]");
194 REGB0 = TAG_Int(1);
195 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
196 once_value_9 = fra.me.REG[6];
197 register_static_object(&once_value_9);
198 } else fra.me.REG[6] = once_value_9;
199 fra.me.REG[6] = fra.me.REG[6];
200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
201 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
202 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
203 }
204 } else {
205 /* compiling/compiling_icode.nit:57 */
206 if (!once_value_10) {
207 fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
208 once_value_10 = fra.me.REG[0];
209 register_static_object(&once_value_10);
210 } else fra.me.REG[0] = once_value_10;
211 fra.me.REG[0] = fra.me.REG[0];
212 fra.me.REG[5] = fra.me.REG[0];
213 /* compiling/compiling_icode.nit:58 */
214 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
216 if (UNTAG_Bool(REGB0)) {
217 REGB0 = TAG_Int(3);
218 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
219 if (!once_value_11) {
220 fra.me.REG[6] = BOX_NativeString("fra.me.REG[");
221 REGB0 = TAG_Int(11);
222 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
223 once_value_11 = fra.me.REG[6];
224 register_static_object(&once_value_11);
225 } else fra.me.REG[6] = once_value_11;
226 fra.me.REG[6] = fra.me.REG[6];
227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
228 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
230 if (!once_value_12) {
231 fra.me.REG[6] = BOX_NativeString("]");
232 REGB0 = TAG_Int(1);
233 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
234 once_value_12 = fra.me.REG[6];
235 register_static_object(&once_value_12);
236 } else fra.me.REG[6] = once_value_12;
237 fra.me.REG[6] = fra.me.REG[6];
238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
239 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
240 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
241 }
242 }
243 }
244 /* compiling/compiling_icode.nit:60 */
245 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
246 /* compiling/compiling_icode.nit:61 */
247 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
248 /* compiling/compiling_icode.nit:62 */
249 fra.me.REG[2] = fra.me.REG[4];
250 goto label2;
251 }
252 }
253 label2: while(0);
254 stack_frame_head = fra.me.prev;
255 return fra.me.REG[2];
256 }
257 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___registers[] = "compiling_icode::I2CCompilerVisitor::registers";
258 val_t compiling___compiling_icode___I2CCompilerVisitor___registers(val_t p0, val_t p1){
259 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
260 val_t REGB0;
261 val_t tmp;
262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
263 fra.me.file = LOCATE_compiling___compiling_icode;
264 fra.me.line = 67;
265 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___registers;
266 fra.me.has_broke = 0;
267 fra.me.REG_size = 3;
268 fra.me.nitni_local_ref_head = NULL;
269 fra.me.REG[0] = NIT_NULL;
270 fra.me.REG[1] = NIT_NULL;
271 fra.me.REG[2] = NIT_NULL;
272 fra.me.REG[0] = p0;
273 fra.me.REG[1] = p1;
274 /* compiling/compiling_icode.nit:70 */
275 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
276 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
277 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));
278 /* compiling/compiling_icode.nit:74 */
279 goto label2;
280 label2: while(0);
281 stack_frame_head = fra.me.prev;
282 return fra.me.REG[2];
283 }
284 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){
285 struct {struct stack_frame_t me;} fra;
286 fun_t CREG[1];
287 val_t tmp;
288 /* compiling/compiling_icode.nit:71 */
289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
290 fra.me.file = LOCATE_compiling___compiling_icode;
291 fra.me.line = 0;
292 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___registers;
293 fra.me.has_broke = 0;
294 fra.me.REG_size = 1;
295 fra.me.nitni_local_ref_head = NULL;
296 fra.me.REG[0] = NIT_NULL;
297 fra.me.closure_ctx = closctx_param;
298 fra.me.closure_funs = CREG;
299 fra.me.REG[0] = p0;
300 CREG[0] = clos_fun0;
301 /* compiling/compiling_icode.nit:72 */
302 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
303 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
304 stack_frame_head = fra.me.prev;
305 return;
306 }
307 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_number[] = "compiling_icode::I2CCompilerVisitor::new_number";
308 val_t compiling___compiling_icode___I2CCompilerVisitor___new_number(val_t p0){
309 struct {struct stack_frame_t me;} fra;
310 val_t REGB0;
311 val_t REGB1;
312 val_t tmp;
313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
314 fra.me.file = LOCATE_compiling___compiling_icode;
315 fra.me.line = 78;
316 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_number;
317 fra.me.has_broke = 0;
318 fra.me.REG_size = 1;
319 fra.me.nitni_local_ref_head = NULL;
320 fra.me.REG[0] = NIT_NULL;
321 fra.me.REG[0] = p0;
322 /* compiling/compiling_icode.nit:81 */
323 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
324 REGB1 = TAG_Int(1);
325 /* ../lib/standard/kernel.nit:238 */
326 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
327 /* compiling/compiling_icode.nit:81 */
328 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1;
329 /* compiling/compiling_icode.nit:82 */
330 REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL);
331 if (UNTAG_Bool(REGB1)) {
332 } else {
333 nit_abort("Uninitialized attribute %s", "_last_number", LOCATE_compiling___compiling_icode, 82);
334 }
335 REGB1 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
336 goto label1;
337 label1: while(0);
338 stack_frame_head = fra.me.prev;
339 return REGB1;
340 }
341 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___lab[] = "compiling_icode::I2CCompilerVisitor::lab";
342 val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){
343 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
344 val_t REGB0;
345 val_t tmp;
346 static val_t once_value_2; /* Once value */
347 static val_t once_value_3; /* Once value */
348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
349 fra.me.file = LOCATE_compiling___compiling_icode;
350 fra.me.line = 85;
351 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___lab;
352 fra.me.has_broke = 0;
353 fra.me.REG_size = 5;
354 fra.me.nitni_local_ref_head = NULL;
355 fra.me.REG[0] = NIT_NULL;
356 fra.me.REG[1] = NIT_NULL;
357 fra.me.REG[2] = NIT_NULL;
358 fra.me.REG[3] = NIT_NULL;
359 fra.me.REG[4] = NIT_NULL;
360 fra.me.REG[0] = p0;
361 fra.me.REG[1] = p1;
362 /* compiling/compiling_icode.nit:88 */
363 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
364 if (UNTAG_Bool(REGB0)) {
365 } else {
366 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 88);
367 }
368 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
369 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
370 if (UNTAG_Bool(REGB0)) {
371 /* compiling/compiling_icode.nit:89 */
372 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
373 if (UNTAG_Bool(REGB0)) {
374 } else {
375 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 89);
376 }
377 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
378 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
379 goto label1;
380 } else {
381 /* compiling/compiling_icode.nit:91 */
382 REGB0 = TAG_Int(3);
383 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
384 if (!once_value_2) {
385 fra.me.REG[4] = BOX_NativeString("label");
386 REGB0 = TAG_Int(5);
387 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
388 once_value_2 = fra.me.REG[4];
389 register_static_object(&once_value_2);
390 } else fra.me.REG[4] = once_value_2;
391 fra.me.REG[4] = fra.me.REG[4];
392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
393 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[0])(fra.me.REG[0]);
394 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
396 if (!once_value_3) {
397 fra.me.REG[4] = BOX_NativeString("");
398 REGB0 = TAG_Int(0);
399 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
400 once_value_3 = fra.me.REG[4];
401 register_static_object(&once_value_3);
402 } else fra.me.REG[4] = once_value_3;
403 fra.me.REG[4] = fra.me.REG[4];
404 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
405 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
406 /* compiling/compiling_icode.nit:92 */
407 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
408 if (UNTAG_Bool(REGB0)) {
409 } else {
410 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 92);
411 }
412 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
413 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
414 /* compiling/compiling_icode.nit:93 */
415 fra.me.REG[2] = fra.me.REG[3];
416 goto label1;
417 }
418 label1: while(0);
419 stack_frame_head = fra.me.prev;
420 return fra.me.REG[2];
421 }
422 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closures[] = "compiling_icode::I2CCompilerVisitor::closures";
423 val_t compiling___compiling_icode___I2CCompilerVisitor___closures(val_t p0){
424 struct {struct stack_frame_t me;} fra;
425 val_t REGB0;
426 val_t tmp;
427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
428 fra.me.file = LOCATE_compiling___compiling_icode;
429 fra.me.line = 97;
430 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closures;
431 fra.me.has_broke = 0;
432 fra.me.REG_size = 1;
433 fra.me.nitni_local_ref_head = NULL;
434 fra.me.REG[0] = NIT_NULL;
435 fra.me.REG[0] = p0;
436 /* compiling/compiling_icode.nit:97 */
437 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL);
438 if (UNTAG_Bool(REGB0)) {
439 } else {
440 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_compiling___compiling_icode, 97);
441 }
442 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]);
443 stack_frame_head = fra.me.prev;
444 return fra.me.REG[0];
445 }
446 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___clostypes[] = "compiling_icode::I2CCompilerVisitor::clostypes";
447 val_t compiling___compiling_icode___I2CCompilerVisitor___clostypes(val_t p0){
448 struct {struct stack_frame_t me;} fra;
449 val_t REGB0;
450 val_t tmp;
451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
452 fra.me.file = LOCATE_compiling___compiling_icode;
453 fra.me.line = 100;
454 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___clostypes;
455 fra.me.has_broke = 0;
456 fra.me.REG_size = 1;
457 fra.me.nitni_local_ref_head = NULL;
458 fra.me.REG[0] = NIT_NULL;
459 fra.me.REG[0] = p0;
460 /* compiling/compiling_icode.nit:100 */
461 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL);
462 if (UNTAG_Bool(REGB0)) {
463 } else {
464 nit_abort("Uninitialized attribute %s", "_clostypes", LOCATE_compiling___compiling_icode, 100);
465 }
466 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]);
467 stack_frame_head = fra.me.prev;
468 return fra.me.REG[0];
469 }
470 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels[] = "compiling_icode::I2CCompilerVisitor::local_labels";
471 val_t compiling___compiling_icode___I2CCompilerVisitor___local_labels(val_t p0){
472 struct {struct stack_frame_t me;} fra;
473 val_t REGB0;
474 val_t tmp;
475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
476 fra.me.file = LOCATE_compiling___compiling_icode;
477 fra.me.line = 103;
478 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels;
479 fra.me.has_broke = 0;
480 fra.me.REG_size = 1;
481 fra.me.nitni_local_ref_head = NULL;
482 fra.me.REG[0] = NIT_NULL;
483 fra.me.REG[0] = p0;
484 /* compiling/compiling_icode.nit:103 */
485 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL);
486 if (UNTAG_Bool(REGB0)) {
487 } else {
488 nit_abort("Uninitialized attribute %s", "_local_labels", LOCATE_compiling___compiling_icode, 103);
489 }
490 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]);
491 stack_frame_head = fra.me.prev;
492 return fra.me.REG[0];
493 }
494 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq[] = "compiling_icode::I2CCompilerVisitor::local_labels=";
495 void compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(val_t p0, val_t p1){
496 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
497 val_t tmp;
498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
499 fra.me.file = LOCATE_compiling___compiling_icode;
500 fra.me.line = 103;
501 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq;
502 fra.me.has_broke = 0;
503 fra.me.REG_size = 2;
504 fra.me.nitni_local_ref_head = NULL;
505 fra.me.REG[0] = NIT_NULL;
506 fra.me.REG[1] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 fra.me.REG[1] = p1;
509 /* compiling/compiling_icode.nit:103 */
510 ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
511 stack_frame_head = fra.me.prev;
512 return;
513 }
514 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels[] = "compiling_icode::I2CCompilerVisitor::escaped_labels";
515 val_t compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0){
516 struct {struct stack_frame_t me;} fra;
517 val_t REGB0;
518 val_t tmp;
519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
520 fra.me.file = LOCATE_compiling___compiling_icode;
521 fra.me.line = 106;
522 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels;
523 fra.me.has_broke = 0;
524 fra.me.REG_size = 1;
525 fra.me.nitni_local_ref_head = NULL;
526 fra.me.REG[0] = NIT_NULL;
527 fra.me.REG[0] = p0;
528 /* compiling/compiling_icode.nit:106 */
529 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
530 if (UNTAG_Bool(REGB0)) {
531 } else {
532 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 106);
533 }
534 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
535 stack_frame_head = fra.me.prev;
536 return fra.me.REG[0];
537 }
538 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq[] = "compiling_icode::I2CCompilerVisitor::escaped_labels=";
539 void compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(val_t p0, val_t p1){
540 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
541 val_t tmp;
542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
543 fra.me.file = LOCATE_compiling___compiling_icode;
544 fra.me.line = 106;
545 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq;
546 fra.me.has_broke = 0;
547 fra.me.REG_size = 2;
548 fra.me.nitni_local_ref_head = NULL;
549 fra.me.REG[0] = NIT_NULL;
550 fra.me.REG[1] = NIT_NULL;
551 fra.me.REG[0] = p0;
552 fra.me.REG[1] = p1;
553 /* compiling/compiling_icode.nit:106 */
554 ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
555 stack_frame_head = fra.me.prev;
556 return;
557 }
558 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label[] = "compiling_icode::I2CCompilerVisitor::register_escape_label";
559 val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(val_t p0, val_t p1){
560 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
561 val_t REGB0;
562 val_t REGB1;
563 val_t REGB2;
564 val_t tmp;
565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
566 fra.me.file = LOCATE_compiling___compiling_icode;
567 fra.me.line = 110;
568 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label;
569 fra.me.has_broke = 0;
570 fra.me.REG_size = 3;
571 fra.me.nitni_local_ref_head = NULL;
572 fra.me.REG[0] = NIT_NULL;
573 fra.me.REG[1] = NIT_NULL;
574 fra.me.REG[2] = NIT_NULL;
575 fra.me.REG[0] = p0;
576 fra.me.REG[1] = p1;
577 /* compiling/compiling_icode.nit:113 */
578 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
579 if (UNTAG_Bool(REGB0)) {
580 } else {
581 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 113);
582 }
583 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
584 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
585 if (UNTAG_Bool(REGB0)) {
586 /* compiling/compiling_icode.nit:114 */
587 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
588 if (UNTAG_Bool(REGB0)) {
589 } else {
590 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 114);
591 }
592 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
593 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
594 REGB0 = fra.me.REG[2];
595 goto label1;
596 } else {
597 /* compiling/compiling_icode.nit:116 */
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, 116);
602 }
603 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
604 REGB1 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[2])(fra.me.REG[2]);
605 REGB2 = TAG_Int(1);
606 /* ../lib/standard/kernel.nit:238 */
607 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
608 /* compiling/compiling_icode.nit:117 */
609 REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
610 if (UNTAG_Bool(REGB1)) {
611 } else {
612 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling___compiling_icode, 117);
613 }
614 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
615 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2);
616 /* compiling/compiling_icode.nit:118 */
617 REGB0 = REGB2;
618 goto label1;
619 }
620 label1: while(0);
621 stack_frame_head = fra.me.prev;
622 return REGB0;
623 }
624 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_label[] = "compiling_icode::I2CCompilerVisitor::add_label";
625 void compiling___compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){
626 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
627 val_t REGB0;
628 val_t tmp;
629 static val_t once_value_1; /* Once value */
630 static val_t once_value_2; /* Once value */
631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
632 fra.me.file = LOCATE_compiling___compiling_icode;
633 fra.me.line = 122;
634 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_label;
635 fra.me.has_broke = 0;
636 fra.me.REG_size = 4;
637 fra.me.nitni_local_ref_head = NULL;
638 fra.me.REG[0] = NIT_NULL;
639 fra.me.REG[1] = NIT_NULL;
640 fra.me.REG[2] = NIT_NULL;
641 fra.me.REG[3] = NIT_NULL;
642 fra.me.REG[0] = p0;
643 fra.me.REG[1] = p1;
644 /* compiling/compiling_icode.nit:125 */
645 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
646 if (UNTAG_Bool(REGB0)) {
647 } else {
648 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 125);
649 }
650 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
651 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
652 if (UNTAG_Bool(REGB0)) {
653 /* compiling/compiling_icode.nit:126 */
654 REGB0 = TAG_Int(3);
655 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
656 if (!once_value_1) {
657 fra.me.REG[3] = BOX_NativeString("");
658 REGB0 = TAG_Int(0);
659 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
660 once_value_1 = fra.me.REG[3];
661 register_static_object(&once_value_1);
662 } else fra.me.REG[3] = once_value_1;
663 fra.me.REG[3] = fra.me.REG[3];
664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
665 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
666 if (UNTAG_Bool(REGB0)) {
667 } else {
668 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 126);
669 }
670 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
671 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
673 if (!once_value_2) {
674 fra.me.REG[1] = BOX_NativeString(": while(0);");
675 REGB0 = TAG_Int(11);
676 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
677 once_value_2 = fra.me.REG[1];
678 register_static_object(&once_value_2);
679 } else fra.me.REG[1] = once_value_2;
680 fra.me.REG[1] = fra.me.REG[1];
681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
682 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
683 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
684 }
685 stack_frame_head = fra.me.prev;
686 return;
687 }
688 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_goto[] = "compiling_icode::I2CCompilerVisitor::add_goto";
689 void compiling___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){
690 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
691 val_t REGB0;
692 val_t REGB1;
693 val_t tmp;
694 static val_t once_value_1; /* Once value */
695 static val_t once_value_2; /* Once value */
696 static val_t once_value_3; /* Once value */
697 static val_t once_value_4; /* Once value */
698 static val_t once_value_5; /* Once value */
699 static val_t once_value_6; /* Once value */
700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
701 fra.me.file = LOCATE_compiling___compiling_icode;
702 fra.me.line = 130;
703 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_goto;
704 fra.me.has_broke = 0;
705 fra.me.REG_size = 5;
706 fra.me.nitni_local_ref_head = NULL;
707 fra.me.REG[0] = NIT_NULL;
708 fra.me.REG[1] = NIT_NULL;
709 fra.me.REG[2] = NIT_NULL;
710 fra.me.REG[3] = NIT_NULL;
711 fra.me.REG[4] = NIT_NULL;
712 fra.me.REG[0] = p0;
713 fra.me.REG[1] = p1;
714 /* compiling/compiling_icode.nit:130 */
715 fra.me.REG[2] = fra.me.REG[0];
716 /* compiling/compiling_icode.nit:133 */
717 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[2])(fra.me.REG[2]);
718 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
719 if (UNTAG_Bool(REGB0)) {
720 /* compiling/compiling_icode.nit:134 */
721 REGB0 = TAG_Int(3);
722 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
723 if (!once_value_1) {
724 fra.me.REG[4] = BOX_NativeString("goto ");
725 REGB0 = TAG_Int(5);
726 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
727 once_value_1 = fra.me.REG[4];
728 register_static_object(&once_value_1);
729 } else fra.me.REG[4] = once_value_1;
730 fra.me.REG[4] = fra.me.REG[4];
731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
732 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
733 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
734 if (!once_value_2) {
735 fra.me.REG[4] = BOX_NativeString(";");
736 REGB0 = TAG_Int(1);
737 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
738 once_value_2 = fra.me.REG[4];
739 register_static_object(&once_value_2);
740 } else fra.me.REG[4] = once_value_2;
741 fra.me.REG[4] = fra.me.REG[4];
742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
743 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
744 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
745 } else {
746 /* compiling/compiling_icode.nit:136 */
747 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[2])(fra.me.REG[2]);
748 if (UNTAG_Bool(REGB0)) {
749 } else {
750 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 136);
751 }
752 /* compiling/compiling_icode.nit:137 */
753 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
754 /* compiling/compiling_icode.nit:138 */
755 REGB1 = TAG_Int(3);
756 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
757 if (!once_value_3) {
758 fra.me.REG[3] = BOX_NativeString("closctx->has_broke = ");
759 REGB1 = TAG_Int(21);
760 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
761 once_value_3 = fra.me.REG[3];
762 register_static_object(&once_value_3);
763 } else fra.me.REG[3] = once_value_3;
764 fra.me.REG[3] = fra.me.REG[3];
765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
766 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
768 if (!once_value_4) {
769 fra.me.REG[3] = BOX_NativeString(";");
770 REGB0 = TAG_Int(1);
771 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
772 once_value_4 = fra.me.REG[3];
773 register_static_object(&once_value_4);
774 } else fra.me.REG[3] = once_value_4;
775 fra.me.REG[3] = fra.me.REG[3];
776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
777 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
778 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
779 /* compiling/compiling_icode.nit:139 */
780 REGB0 = TAG_Int(3);
781 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
782 if (!once_value_5) {
783 fra.me.REG[3] = BOX_NativeString("goto ");
784 REGB0 = TAG_Int(5);
785 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
786 once_value_5 = fra.me.REG[3];
787 register_static_object(&once_value_5);
788 } else fra.me.REG[3] = once_value_5;
789 fra.me.REG[3] = fra.me.REG[3];
790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
791 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[2])(fra.me.REG[2]);
792 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
793 if (UNTAG_Bool(REGB0)) {
794 } else {
795 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 139);
796 }
797 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
799 if (!once_value_6) {
800 fra.me.REG[3] = BOX_NativeString(";");
801 REGB0 = TAG_Int(1);
802 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
803 once_value_6 = fra.me.REG[3];
804 register_static_object(&once_value_6);
805 } else fra.me.REG[3] = once_value_6;
806 fra.me.REG[3] = fra.me.REG[3];
807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
808 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
809 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
810 }
811 stack_frame_head = fra.me.prev;
812 return;
813 }
814 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq[] = "compiling_icode::I2CCompilerVisitor::marks_to_seq";
815 val_t compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){
816 struct {struct stack_frame_t me;} fra;
817 val_t REGB0;
818 val_t tmp;
819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
820 fra.me.file = LOCATE_compiling___compiling_icode;
821 fra.me.line = 143;
822 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq;
823 fra.me.has_broke = 0;
824 fra.me.REG_size = 1;
825 fra.me.nitni_local_ref_head = NULL;
826 fra.me.REG[0] = NIT_NULL;
827 fra.me.REG[0] = p0;
828 /* compiling/compiling_icode.nit:143 */
829 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
830 if (UNTAG_Bool(REGB0)) {
831 } else {
832 nit_abort("Uninitialized attribute %s", "_marks_to_seq", LOCATE_compiling___compiling_icode, 143);
833 }
834 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]);
835 stack_frame_head = fra.me.prev;
836 return fra.me.REG[0];
837 }
838 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure[] = "compiling_icode::I2CCompilerVisitor::closure";
839 val_t compiling___compiling_icode___I2CCompilerVisitor___closure(val_t p0){
840 struct {struct stack_frame_t me;} fra;
841 val_t REGB0;
842 val_t tmp;
843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
844 fra.me.file = LOCATE_compiling___compiling_icode;
845 fra.me.line = 146;
846 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure;
847 fra.me.has_broke = 0;
848 fra.me.REG_size = 1;
849 fra.me.nitni_local_ref_head = NULL;
850 fra.me.REG[0] = NIT_NULL;
851 fra.me.REG[0] = p0;
852 /* compiling/compiling_icode.nit:146 */
853 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
854 if (UNTAG_Bool(REGB0)) {
855 } else {
856 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_compiling___compiling_icode, 146);
857 }
858 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]);
859 stack_frame_head = fra.me.prev;
860 return REGB0;
861 }
862 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure__eq[] = "compiling_icode::I2CCompilerVisitor::closure=";
863 void compiling___compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0, val_t p1){
864 struct {struct stack_frame_t me;} fra;
865 val_t REGB0;
866 val_t tmp;
867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
868 fra.me.file = LOCATE_compiling___compiling_icode;
869 fra.me.line = 146;
870 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure__eq;
871 fra.me.has_broke = 0;
872 fra.me.REG_size = 1;
873 fra.me.nitni_local_ref_head = NULL;
874 fra.me.REG[0] = NIT_NULL;
875 fra.me.REG[0] = p0;
876 REGB0 = p1;
877 /* compiling/compiling_icode.nit:146 */
878 ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
879 stack_frame_head = fra.me.prev;
880 return;
881 }
882 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___visitor[] = "compiling_icode::I2CCompilerVisitor::visitor";
883 val_t compiling___compiling_icode___I2CCompilerVisitor___visitor(val_t p0){
884 struct {struct stack_frame_t me;} fra;
885 val_t REGB0;
886 val_t tmp;
887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
888 fra.me.file = LOCATE_compiling___compiling_icode;
889 fra.me.line = 149;
890 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___visitor;
891 fra.me.has_broke = 0;
892 fra.me.REG_size = 1;
893 fra.me.nitni_local_ref_head = NULL;
894 fra.me.REG[0] = NIT_NULL;
895 fra.me.REG[0] = p0;
896 /* compiling/compiling_icode.nit:149 */
897 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
898 if (UNTAG_Bool(REGB0)) {
899 } else {
900 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_compiling___compiling_icode, 149);
901 }
902 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]);
903 stack_frame_head = fra.me.prev;
904 return fra.me.REG[0];
905 }
906 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___iroutine[] = "compiling_icode::I2CCompilerVisitor::iroutine";
907 val_t compiling___compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){
908 struct {struct stack_frame_t me;} fra;
909 val_t REGB0;
910 val_t tmp;
911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
912 fra.me.file = LOCATE_compiling___compiling_icode;
913 fra.me.line = 152;
914 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___iroutine;
915 fra.me.has_broke = 0;
916 fra.me.REG_size = 1;
917 fra.me.nitni_local_ref_head = NULL;
918 fra.me.REG[0] = NIT_NULL;
919 fra.me.REG[0] = p0;
920 /* compiling/compiling_icode.nit:152 */
921 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
922 if (UNTAG_Bool(REGB0)) {
923 } else {
924 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_compiling___compiling_icode, 152);
925 }
926 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]);
927 stack_frame_head = fra.me.prev;
928 return fra.me.REG[0];
929 }
930 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label[] = "compiling_icode::I2CCompilerVisitor::return_label";
931 val_t compiling___compiling_icode___I2CCompilerVisitor___return_label(val_t p0){
932 struct {struct stack_frame_t me;} fra;
933 val_t tmp;
934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
935 fra.me.file = LOCATE_compiling___compiling_icode;
936 fra.me.line = 155;
937 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label;
938 fra.me.has_broke = 0;
939 fra.me.REG_size = 1;
940 fra.me.nitni_local_ref_head = NULL;
941 fra.me.REG[0] = NIT_NULL;
942 fra.me.REG[0] = p0;
943 /* compiling/compiling_icode.nit:155 */
944 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]);
945 stack_frame_head = fra.me.prev;
946 return fra.me.REG[0];
947 }
948 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq[] = "compiling_icode::I2CCompilerVisitor::return_label=";
949 void compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0, val_t p1){
950 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
951 val_t tmp;
952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
953 fra.me.file = LOCATE_compiling___compiling_icode;
954 fra.me.line = 155;
955 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq;
956 fra.me.has_broke = 0;
957 fra.me.REG_size = 2;
958 fra.me.nitni_local_ref_head = NULL;
959 fra.me.REG[0] = NIT_NULL;
960 fra.me.REG[1] = NIT_NULL;
961 fra.me.REG[0] = p0;
962 fra.me.REG[1] = p1;
963 /* compiling/compiling_icode.nit:155 */
964 ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
965 stack_frame_head = fra.me.prev;
966 return;
967 }
968 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_decl[] = "compiling_icode::I2CCompilerVisitor::add_decl";
969 void compiling___compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t p1){
970 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
971 val_t tmp;
972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
973 fra.me.file = LOCATE_compiling___compiling_icode;
974 fra.me.line = 158;
975 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_decl;
976 fra.me.has_broke = 0;
977 fra.me.REG_size = 2;
978 fra.me.nitni_local_ref_head = NULL;
979 fra.me.REG[0] = NIT_NULL;
980 fra.me.REG[1] = NIT_NULL;
981 fra.me.REG[0] = p0;
982 fra.me.REG[1] = p1;
983 /* compiling/compiling_icode.nit:160 */
984 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
985 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
986 stack_frame_head = fra.me.prev;
987 return;
988 }
989 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_instr[] = "compiling_icode::I2CCompilerVisitor::new_instr";
990 val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
991 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
992 val_t REGB0;
993 val_t REGB1;
994 val_t tmp;
995 static val_t once_value_1; /* Once value */
996 static val_t once_value_2; /* Once value */
997 static val_t once_value_3; /* Once value */
998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
999 fra.me.file = LOCATE_compiling___compiling_icode;
1000 fra.me.line = 163;
1001 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_instr;
1002 fra.me.has_broke = 0;
1003 fra.me.REG_size = 4;
1004 fra.me.nitni_local_ref_head = NULL;
1005 fra.me.REG[0] = NIT_NULL;
1006 fra.me.REG[1] = NIT_NULL;
1007 fra.me.REG[2] = NIT_NULL;
1008 fra.me.REG[3] = NIT_NULL;
1009 fra.me.REG[0] = p0;
1010 /* compiling/compiling_icode.nit:167 */
1011 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1012 fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
1013 /* compiling/compiling_icode.nit:168 */
1014 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]);
1015 /* compiling/compiling_icode.nit:169 */
1016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1017 if (UNTAG_Bool(REGB0)) {
1018 } else {
1019 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1020 if (UNTAG_Bool(REGB1)) {
1021 REGB1 = TAG_Bool(0);
1022 REGB0 = REGB1;
1023 } else {
1024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1025 REGB0 = REGB1;
1026 }
1027 }
1028 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1029 if (UNTAG_Bool(REGB0)) {
1030 /* compiling/compiling_icode.nit:170 */
1031 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1032 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1033 /* compiling/compiling_icode.nit:171 */
1034 if (!once_value_1) {
1035 fra.me.REG[3] = BOX_NativeString("/* ");
1036 REGB0 = TAG_Int(3);
1037 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1038 once_value_1 = fra.me.REG[3];
1039 register_static_object(&once_value_1);
1040 } else fra.me.REG[3] = once_value_1;
1041 fra.me.REG[3] = fra.me.REG[3];
1042 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1043 /* compiling/compiling_icode.nit:172 */
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, 172);
1047 }
1048 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1049 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1050 if (UNTAG_Bool(REGB0)) {
1051 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
1052 }
1053 fra.me.REG[3] = CALL_location___SourceFile___filename(fra.me.REG[3])(fra.me.REG[3]);
1054 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1055 /* compiling/compiling_icode.nit:173 */
1056 if (!once_value_2) {
1057 fra.me.REG[3] = BOX_NativeString(":");
1058 REGB0 = TAG_Int(1);
1059 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1060 once_value_2 = fra.me.REG[3];
1061 register_static_object(&once_value_2);
1062 } else fra.me.REG[3] = once_value_2;
1063 fra.me.REG[3] = fra.me.REG[3];
1064 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1065 /* compiling/compiling_icode.nit:174 */
1066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1067 if (UNTAG_Bool(REGB0)) {
1068 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 174);
1069 }
1070 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1071 fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
1072 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1073 /* compiling/compiling_icode.nit:175 */
1074 if (!once_value_3) {
1075 fra.me.REG[2] = BOX_NativeString(" */\n");
1076 REGB0 = TAG_Int(4);
1077 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1078 once_value_3 = fra.me.REG[2];
1079 register_static_object(&once_value_3);
1080 } else fra.me.REG[2] = once_value_3;
1081 fra.me.REG[2] = fra.me.REG[2];
1082 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1083 /* compiling/compiling_icode.nit:176 */
1084 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL;
1085 }
1086 /* compiling/compiling_icode.nit:178 */
1087 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1088 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1089 /* compiling/compiling_icode.nit:179 */
1090 goto label4;
1091 label4: while(0);
1092 stack_frame_head = fra.me.prev;
1093 return fra.me.REG[1];
1094 }
1095 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_instr[] = "compiling_icode::I2CCompilerVisitor::add_instr";
1096 void compiling___compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){
1097 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1098 val_t REGB0;
1099 val_t tmp;
1100 static val_t once_value_1; /* Once value */
1101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1102 fra.me.file = LOCATE_compiling___compiling_icode;
1103 fra.me.line = 182;
1104 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_instr;
1105 fra.me.has_broke = 0;
1106 fra.me.REG_size = 2;
1107 fra.me.nitni_local_ref_head = NULL;
1108 fra.me.REG[0] = NIT_NULL;
1109 fra.me.REG[1] = NIT_NULL;
1110 fra.me.REG[0] = p0;
1111 fra.me.REG[1] = p1;
1112 /* compiling/compiling_icode.nit:184 */
1113 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]);
1114 fra.me.REG[1] = CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1115 if (!once_value_1) {
1116 fra.me.REG[0] = BOX_NativeString("\n");
1117 REGB0 = TAG_Int(1);
1118 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1119 once_value_1 = fra.me.REG[0];
1120 register_static_object(&once_value_1);
1121 } else fra.me.REG[0] = once_value_1;
1122 fra.me.REG[0] = fra.me.REG[0];
1123 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1124 stack_frame_head = fra.me.prev;
1125 return;
1126 }
1127 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___indent[] = "compiling_icode::I2CCompilerVisitor::indent";
1128 void compiling___compiling_icode___I2CCompilerVisitor___indent(val_t p0){
1129 struct {struct stack_frame_t me;} fra;
1130 val_t tmp;
1131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1132 fra.me.file = LOCATE_compiling___compiling_icode;
1133 fra.me.line = 187;
1134 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___indent;
1135 fra.me.has_broke = 0;
1136 fra.me.REG_size = 1;
1137 fra.me.nitni_local_ref_head = NULL;
1138 fra.me.REG[0] = NIT_NULL;
1139 fra.me.REG[0] = p0;
1140 /* compiling/compiling_icode.nit:189 */
1141 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1142 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]);
1143 stack_frame_head = fra.me.prev;
1144 return;
1145 }
1146 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___unindent[] = "compiling_icode::I2CCompilerVisitor::unindent";
1147 void compiling___compiling_icode___I2CCompilerVisitor___unindent(val_t p0){
1148 struct {struct stack_frame_t me;} fra;
1149 val_t tmp;
1150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1151 fra.me.file = LOCATE_compiling___compiling_icode;
1152 fra.me.line = 192;
1153 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___unindent;
1154 fra.me.has_broke = 0;
1155 fra.me.REG_size = 1;
1156 fra.me.nitni_local_ref_head = NULL;
1157 fra.me.REG[0] = NIT_NULL;
1158 fra.me.REG[0] = p0;
1159 /* compiling/compiling_icode.nit:194 */
1160 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1161 CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]);
1162 stack_frame_head = fra.me.prev;
1163 return;
1164 }
1165 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_assignment[] = "compiling_icode::I2CCompilerVisitor::add_assignment";
1166 void compiling___compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, val_t p2){
1167 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1168 val_t tmp;
1169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1170 fra.me.file = LOCATE_compiling___compiling_icode;
1171 fra.me.line = 197;
1172 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_assignment;
1173 fra.me.has_broke = 0;
1174 fra.me.REG_size = 3;
1175 fra.me.nitni_local_ref_head = NULL;
1176 fra.me.REG[0] = NIT_NULL;
1177 fra.me.REG[1] = NIT_NULL;
1178 fra.me.REG[2] = NIT_NULL;
1179 fra.me.REG[0] = p0;
1180 fra.me.REG[1] = p1;
1181 fra.me.REG[2] = p2;
1182 /* compiling/compiling_icode.nit:199 */
1183 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1184 CALL_compiling___compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1185 stack_frame_head = fra.me.prev;
1186 return;
1187 }
1188 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_location[] = "compiling_icode::I2CCompilerVisitor::add_location";
1189 void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){
1190 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1191 val_t REGB0;
1192 val_t REGB1;
1193 val_t REGB2;
1194 val_t tmp;
1195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1196 fra.me.file = LOCATE_compiling___compiling_icode;
1197 fra.me.line = 205;
1198 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_location;
1199 fra.me.has_broke = 0;
1200 fra.me.REG_size = 5;
1201 fra.me.nitni_local_ref_head = NULL;
1202 fra.me.REG[0] = NIT_NULL;
1203 fra.me.REG[1] = NIT_NULL;
1204 fra.me.REG[2] = NIT_NULL;
1205 fra.me.REG[3] = NIT_NULL;
1206 fra.me.REG[4] = NIT_NULL;
1207 fra.me.REG[0] = p0;
1208 fra.me.REG[1] = p1;
1209 /* compiling/compiling_icode.nit:209 */
1210 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]);
1211 /* compiling/compiling_icode.nit:210 */
1212 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1213 if (UNTAG_Bool(REGB0)) {
1214 } else {
1215 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1216 if (UNTAG_Bool(REGB1)) {
1217 REGB1 = TAG_Bool(0);
1218 REGB0 = REGB1;
1219 } else {
1220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1221 REGB0 = REGB1;
1222 }
1223 }
1224 if (UNTAG_Bool(REGB0)) {
1225 REGB0 = TAG_Bool(1);
1226 } else {
1227 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1228 if (UNTAG_Bool(REGB1)) {
1229 } else {
1230 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1231 if (UNTAG_Bool(REGB2)) {
1232 REGB2 = TAG_Bool(0);
1233 REGB1 = REGB2;
1234 } else {
1235 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1236 REGB1 = REGB2;
1237 }
1238 }
1239 REGB0 = REGB1;
1240 }
1241 if (UNTAG_Bool(REGB0)) {
1242 goto label1;
1243 }
1244 /* compiling/compiling_icode.nit:211 */
1245 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
1246 /* compiling/compiling_icode.nit:212 */
1247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1248 if (UNTAG_Bool(REGB0)) {
1249 } else {
1250 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1251 if (UNTAG_Bool(REGB1)) {
1252 REGB1 = TAG_Bool(0);
1253 REGB0 = REGB1;
1254 } else {
1255 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1256 REGB0 = REGB1;
1257 }
1258 }
1259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
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 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1266 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1267 if (UNTAG_Bool(REGB0)) {
1268 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1269 }
1270 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]);
1271 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[4]));
1272 if (UNTAG_Bool(REGB0)) {
1273 } else {
1274 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1275 if (UNTAG_Bool(REGB1)) {
1276 REGB1 = TAG_Bool(0);
1277 REGB0 = REGB1;
1278 } else {
1279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1280 REGB0 = REGB1;
1281 }
1282 }
1283 } else {
1284 REGB1 = TAG_Bool(0);
1285 REGB0 = REGB1;
1286 }
1287 if (UNTAG_Bool(REGB0)) {
1288 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1289 if (UNTAG_Bool(REGB0)) {
1290 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1291 }
1292 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1293 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1294 if (UNTAG_Bool(REGB1)) {
1295 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1296 }
1297 REGB1 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]);
1298 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1299 if (UNTAG_Bool(REGB2)) {
1300 } else {
1301 /* ../lib/standard/kernel.nit:230 */
1302 REGB1 = TAG_Bool((REGB0)==(REGB1));
1303 /* compiling/compiling_icode.nit:212 */
1304 REGB2 = REGB1;
1305 }
1306 } else {
1307 REGB1 = TAG_Bool(0);
1308 REGB2 = REGB1;
1309 }
1310 if (UNTAG_Bool(REGB2)) {
1311 /* compiling/compiling_icode.nit:213 */
1312 goto label1;
1313 } else {
1314 /* compiling/compiling_icode.nit:215 */
1315 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
1316 }
1317 label1: while(0);
1318 stack_frame_head = fra.me.prev;
1319 return;
1320 }
1321 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___basecname[] = "compiling_icode::I2CCompilerVisitor::basecname";
1322 val_t compiling___compiling_icode___I2CCompilerVisitor___basecname(val_t p0){
1323 struct {struct stack_frame_t me;} fra;
1324 val_t REGB0;
1325 val_t tmp;
1326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1327 fra.me.file = LOCATE_compiling___compiling_icode;
1328 fra.me.line = 219;
1329 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___basecname;
1330 fra.me.has_broke = 0;
1331 fra.me.REG_size = 1;
1332 fra.me.nitni_local_ref_head = NULL;
1333 fra.me.REG[0] = NIT_NULL;
1334 fra.me.REG[0] = p0;
1335 /* compiling/compiling_icode.nit:219 */
1336 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
1337 if (UNTAG_Bool(REGB0)) {
1338 } else {
1339 nit_abort("Uninitialized attribute %s", "_basecname", LOCATE_compiling___compiling_icode, 219);
1340 }
1341 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]);
1342 stack_frame_head = fra.me.prev;
1343 return fra.me.REG[0];
1344 }
1345 static const char LOCATE_compiling___compiling_icode___I2CCompilerVisitor___init[] = "compiling_icode::I2CCompilerVisitor::init";
1346 void compiling___compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1347 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___compiling_icode___I2CCompilerVisitor].i;
1348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1349 val_t tmp;
1350 if (init_table[itpos0]) return;
1351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1352 fra.me.file = LOCATE_compiling___compiling_icode;
1353 fra.me.line = 222;
1354 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___init;
1355 fra.me.has_broke = 0;
1356 fra.me.REG_size = 4;
1357 fra.me.nitni_local_ref_head = NULL;
1358 fra.me.REG[0] = NIT_NULL;
1359 fra.me.REG[1] = NIT_NULL;
1360 fra.me.REG[2] = NIT_NULL;
1361 fra.me.REG[3] = NIT_NULL;
1362 fra.me.REG[0] = p0;
1363 fra.me.REG[1] = p1;
1364 fra.me.REG[2] = p2;
1365 fra.me.REG[3] = p3;
1366 /* compiling/compiling_icode.nit:224 */
1367 ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1];
1368 /* compiling/compiling_icode.nit:225 */
1369 ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2];
1370 /* compiling/compiling_icode.nit:226 */
1371 ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3];
1372 stack_frame_head = fra.me.prev;
1373 init_table[itpos0] = 1;
1374 return;
1375 }
1376 static const char LOCATE_compiling___compiling_icode___IRoutine___compile_signature_to_c[] = "compiling_icode::IRoutine::compile_signature_to_c";
1377 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){
1378 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
1379 val_t REGB0;
1380 val_t REGB1;
1381 val_t REGB2;
1382 val_t REGB3;
1383 val_t REGB4;
1384 val_t REGB5;
1385 val_t tmp;
1386 static val_t once_value_1; /* Once value */
1387 static val_t once_value_2; /* Once value */
1388 static val_t once_value_3; /* Once value */
1389 static val_t once_value_4; /* Once value */
1390 static val_t once_value_6; /* Once value */
1391 static val_t once_value_7; /* Once value */
1392 static val_t once_value_8; /* Once value */
1393 static val_t once_value_9; /* Once value */
1394 static val_t once_value_10; /* Once value */
1395 static val_t once_value_11; /* Once value */
1396 static val_t once_value_13; /* Once value */
1397 static val_t once_value_14; /* Once value */
1398 static val_t once_value_15; /* Once value */
1399 static val_t once_value_16; /* Once value */
1400 static val_t once_value_17; /* Once value */
1401 static val_t once_value_18; /* Once value */
1402 static val_t once_value_19; /* Once value */
1403 static val_t once_value_20; /* Once value */
1404 static val_t once_value_21; /* Once value */
1405 static val_t once_value_22; /* Once value */
1406 static val_t once_value_23; /* Once value */
1407 static val_t once_value_25; /* Once value */
1408 static val_t once_value_26; /* Once value */
1409 static val_t once_value_27; /* Once value */
1410 static val_t once_value_28; /* Once value */
1411 static val_t once_value_29; /* Once value */
1412 static val_t once_value_30; /* Once value */
1413 static val_t once_value_31; /* Once value */
1414 static val_t once_value_32; /* Once value */
1415 static val_t once_value_33; /* Once value */
1416 static val_t once_value_34; /* Once value */
1417 static val_t once_value_35; /* Once value */
1418 static val_t once_value_36; /* Once value */
1419 static val_t once_value_37; /* Once value */
1420 static val_t once_value_38; /* Once value */
1421 static val_t once_value_39; /* Once value */
1422 static val_t once_value_40; /* Once value */
1423 static val_t once_value_41; /* Once value */
1424 static val_t once_value_42; /* Once value */
1425 static val_t once_value_43; /* Once value */
1426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1427 fra.me.file = LOCATE_compiling___compiling_icode;
1428 fra.me.line = 231;
1429 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_signature_to_c;
1430 fra.me.has_broke = 0;
1431 fra.me.REG_size = 12;
1432 fra.me.nitni_local_ref_head = NULL;
1433 fra.me.REG[0] = NIT_NULL;
1434 fra.me.REG[1] = NIT_NULL;
1435 fra.me.REG[2] = NIT_NULL;
1436 fra.me.REG[3] = NIT_NULL;
1437 fra.me.REG[4] = NIT_NULL;
1438 fra.me.REG[5] = NIT_NULL;
1439 fra.me.REG[6] = NIT_NULL;
1440 fra.me.REG[7] = NIT_NULL;
1441 fra.me.REG[8] = NIT_NULL;
1442 fra.me.REG[9] = NIT_NULL;
1443 fra.me.REG[10] = NIT_NULL;
1444 fra.me.REG[11] = NIT_NULL;
1445 fra.me.REG[0] = p0;
1446 fra.me.REG[1] = p1;
1447 fra.me.REG[2] = p2;
1448 fra.me.REG[3] = p3;
1449 fra.me.REG[4] = p4;
1450 fra.me.REG[5] = p5;
1451 /* compiling/compiling_icode.nit:237 */
1452 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
1453 /* compiling/compiling_icode.nit:238 */
1454 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
1455 /* compiling/compiling_icode.nit:239 */
1456 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1457 if (UNTAG_Bool(REGB0)) {
1458 } else {
1459 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1460 if (UNTAG_Bool(REGB1)) {
1461 REGB1 = TAG_Bool(0);
1462 REGB0 = REGB1;
1463 } else {
1464 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1465 REGB0 = REGB1;
1466 }
1467 }
1468 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1469 if (UNTAG_Bool(REGB0)) {
1470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1471 }
1472 /* compiling/compiling_icode.nit:240 */
1473 REGB0 = TAG_Int(0);
1474 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
1475 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1476 /* ../lib/standard/kernel.nit:355 */
1477 while(1) {
1478 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1479 if (UNTAG_Bool(REGB2)) {
1480 } else {
1481 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1482 }
1483 /* ../lib/standard/kernel.nit:235 */
1484 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1485 /* ../lib/standard/kernel.nit:355 */
1486 if (UNTAG_Bool(REGB2)) {
1487 /* compiling/compiling_icode.nit:240 */
1488 REGB2 = REGB0;
1489 /* compiling/compiling_icode.nit:241 */
1490 REGB3 = TAG_Int(3);
1491 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1492 if (!once_value_1) {
1493 fra.me.REG[8] = BOX_NativeString("p");
1494 REGB3 = TAG_Int(1);
1495 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1496 once_value_1 = fra.me.REG[8];
1497 register_static_object(&once_value_1);
1498 } else fra.me.REG[8] = once_value_1;
1499 fra.me.REG[8] = fra.me.REG[8];
1500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1501 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1503 if (!once_value_2) {
1504 fra.me.REG[8] = BOX_NativeString("");
1505 REGB3 = TAG_Int(0);
1506 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1507 once_value_2 = fra.me.REG[8];
1508 register_static_object(&once_value_2);
1509 } else fra.me.REG[8] = once_value_2;
1510 fra.me.REG[8] = fra.me.REG[8];
1511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1512 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1514 /* compiling/compiling_icode.nit:242 */
1515 REGB3 = TAG_Int(3);
1516 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1517 if (!once_value_3) {
1518 fra.me.REG[8] = BOX_NativeString("val_t p");
1519 REGB3 = TAG_Int(7);
1520 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1521 once_value_3 = fra.me.REG[8];
1522 register_static_object(&once_value_3);
1523 } else fra.me.REG[8] = once_value_3;
1524 fra.me.REG[8] = fra.me.REG[8];
1525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1526 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1527 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1528 if (!once_value_4) {
1529 fra.me.REG[8] = BOX_NativeString("");
1530 REGB2 = TAG_Int(0);
1531 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1532 once_value_4 = fra.me.REG[8];
1533 register_static_object(&once_value_4);
1534 } else fra.me.REG[8] = once_value_4;
1535 fra.me.REG[8] = fra.me.REG[8];
1536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1537 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1539 /* ../lib/standard/kernel.nit:357 */
1540 REGB2 = TAG_Int(1);
1541 /* ../lib/standard/kernel.nit:238 */
1542 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1543 /* ../lib/standard/kernel.nit:357 */
1544 REGB0 = REGB2;
1545 } else {
1546 /* ../lib/standard/kernel.nit:355 */
1547 goto label5;
1548 }
1549 }
1550 label5: while(0);
1551 /* compiling/compiling_icode.nit:244 */
1552 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1553 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1554 if (UNTAG_Bool(REGB0)) {
1555 } else {
1556 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1557 if (UNTAG_Bool(REGB1)) {
1558 REGB1 = TAG_Bool(0);
1559 REGB0 = REGB1;
1560 } else {
1561 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1562 REGB0 = REGB1;
1563 }
1564 }
1565 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1566 if (UNTAG_Bool(REGB0)) {
1567 /* compiling/compiling_icode.nit:245 */
1568 if (!once_value_6) {
1569 fra.me.REG[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
1570 REGB0 = TAG_Int(35);
1571 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1572 once_value_6 = fra.me.REG[4];
1573 register_static_object(&once_value_6);
1574 } else fra.me.REG[4] = once_value_6;
1575 fra.me.REG[4] = fra.me.REG[4];
1576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1577 /* compiling/compiling_icode.nit:246 */
1578 REGB0 = TAG_Int(0);
1579 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1580 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1581 if (UNTAG_Bool(REGB1)) {
1582 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 246);
1583 }
1584 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1585 /* ../lib/standard/kernel.nit:355 */
1586 while(1) {
1587 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1588 if (UNTAG_Bool(REGB2)) {
1589 } else {
1590 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1591 }
1592 /* ../lib/standard/kernel.nit:235 */
1593 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1594 /* ../lib/standard/kernel.nit:355 */
1595 if (UNTAG_Bool(REGB2)) {
1596 /* compiling/compiling_icode.nit:246 */
1597 REGB2 = REGB0;
1598 /* compiling/compiling_icode.nit:247 */
1599 REGB3 = TAG_Int(5);
1600 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1601 if (!once_value_7) {
1602 fra.me.REG[8] = BOX_NativeString("CLOS_");
1603 REGB3 = TAG_Int(5);
1604 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1605 once_value_7 = fra.me.REG[8];
1606 register_static_object(&once_value_7);
1607 } else fra.me.REG[8] = once_value_7;
1608 fra.me.REG[8] = fra.me.REG[8];
1609 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1611 if (!once_value_8) {
1612 fra.me.REG[8] = BOX_NativeString("_");
1613 REGB3 = TAG_Int(1);
1614 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1615 once_value_8 = fra.me.REG[8];
1616 register_static_object(&once_value_8);
1617 } else fra.me.REG[8] = once_value_8;
1618 fra.me.REG[8] = fra.me.REG[8];
1619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1620 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1622 if (!once_value_9) {
1623 fra.me.REG[8] = BOX_NativeString("");
1624 REGB3 = TAG_Int(0);
1625 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1626 once_value_9 = fra.me.REG[8];
1627 register_static_object(&once_value_9);
1628 } else fra.me.REG[8] = once_value_9;
1629 fra.me.REG[8] = fra.me.REG[8];
1630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1631 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1632 /* compiling/compiling_icode.nit:248 */
1633 fra.me.REG[8] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1634 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1635 if (UNTAG_Bool(REGB3)) {
1636 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1637 }
1638 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB2);
1639 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1640 if (UNTAG_Bool(REGB3)) {
1641 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1642 }
1643 fra.me.REG[8] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[8])(fra.me.REG[8]);
1644 fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[8])(fra.me.REG[8]);
1645 /* compiling/compiling_icode.nit:249 */
1646 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
1647 /* compiling/compiling_icode.nit:250 */
1648 if (!once_value_10) {
1649 fra.me.REG[10] = BOX_NativeString("struct stack_frame_t *");
1650 REGB3 = TAG_Int(22);
1651 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1652 once_value_10 = fra.me.REG[10];
1653 register_static_object(&once_value_10);
1654 } else fra.me.REG[10] = once_value_10;
1655 fra.me.REG[10] = fra.me.REG[10];
1656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1657 /* compiling/compiling_icode.nit:251 */
1658 REGB3 = TAG_Int(0);
1659 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
1660 /* ../lib/standard/kernel.nit:355 */
1661 while(1) {
1662 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1663 if (UNTAG_Bool(REGB5)) {
1664 } else {
1665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1666 }
1667 /* ../lib/standard/kernel.nit:235 */
1668 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1669 /* ../lib/standard/kernel.nit:355 */
1670 if (UNTAG_Bool(REGB5)) {
1671 /* compiling/compiling_icode.nit:252 */
1672 if (!once_value_11) {
1673 fra.me.REG[10] = BOX_NativeString("val_t");
1674 REGB5 = TAG_Int(5);
1675 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB5);
1676 once_value_11 = fra.me.REG[10];
1677 register_static_object(&once_value_11);
1678 } else fra.me.REG[10] = once_value_11;
1679 fra.me.REG[10] = fra.me.REG[10];
1680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1681 /* ../lib/standard/kernel.nit:357 */
1682 REGB5 = TAG_Int(1);
1683 /* ../lib/standard/kernel.nit:238 */
1684 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1685 /* ../lib/standard/kernel.nit:357 */
1686 REGB3 = REGB5;
1687 } else {
1688 /* ../lib/standard/kernel.nit:355 */
1689 goto label12;
1690 }
1691 }
1692 label12: while(0);
1693 /* compiling/compiling_icode.nit:254 */
1694 if (!once_value_13) {
1695 fra.me.REG[10] = BOX_NativeString("void");
1696 REGB3 = TAG_Int(4);
1697 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1698 once_value_13 = fra.me.REG[10];
1699 register_static_object(&once_value_13);
1700 } else fra.me.REG[10] = once_value_13;
1701 fra.me.REG[10] = fra.me.REG[10];
1702 /* compiling/compiling_icode.nit:255 */
1703 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
1704 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1705 if (UNTAG_Bool(REGB3)) {
1706 } else {
1707 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1708 if (UNTAG_Bool(REGB4)) {
1709 REGB4 = TAG_Bool(0);
1710 REGB3 = REGB4;
1711 } else {
1712 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
1713 REGB3 = REGB4;
1714 }
1715 }
1716 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
1717 if (UNTAG_Bool(REGB3)) {
1718 if (!once_value_14) {
1719 fra.me.REG[8] = BOX_NativeString("val_t");
1720 REGB3 = TAG_Int(5);
1721 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1722 once_value_14 = fra.me.REG[8];
1723 register_static_object(&once_value_14);
1724 } else fra.me.REG[8] = once_value_14;
1725 fra.me.REG[8] = fra.me.REG[8];
1726 fra.me.REG[10] = fra.me.REG[8];
1727 }
1728 /* compiling/compiling_icode.nit:256 */
1729 REGB3 = TAG_Int(7);
1730 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1731 if (!once_value_15) {
1732 fra.me.REG[11] = BOX_NativeString("typedef ");
1733 REGB3 = TAG_Int(8);
1734 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
1735 once_value_15 = fra.me.REG[11];
1736 register_static_object(&once_value_15);
1737 } else fra.me.REG[11] = once_value_15;
1738 fra.me.REG[11] = fra.me.REG[11];
1739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
1740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1741 if (!once_value_16) {
1742 fra.me.REG[10] = BOX_NativeString(" (*");
1743 REGB3 = TAG_Int(3);
1744 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1745 once_value_16 = fra.me.REG[10];
1746 register_static_object(&once_value_16);
1747 } else fra.me.REG[10] = once_value_16;
1748 fra.me.REG[10] = fra.me.REG[10];
1749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1750 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1751 if (!once_value_17) {
1752 fra.me.REG[4] = BOX_NativeString(")(");
1753 REGB3 = TAG_Int(2);
1754 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1755 once_value_17 = fra.me.REG[4];
1756 register_static_object(&once_value_17);
1757 } else fra.me.REG[4] = once_value_17;
1758 fra.me.REG[4] = fra.me.REG[4];
1759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1760 if (!once_value_18) {
1761 fra.me.REG[4] = BOX_NativeString(", ");
1762 REGB3 = TAG_Int(2);
1763 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1764 once_value_18 = fra.me.REG[4];
1765 register_static_object(&once_value_18);
1766 } else fra.me.REG[4] = once_value_18;
1767 fra.me.REG[4] = fra.me.REG[4];
1768 fra.me.REG[4] = CALL_standard___string___Collection___join(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[4]);
1769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1770 if (!once_value_19) {
1771 fra.me.REG[4] = BOX_NativeString(");");
1772 REGB3 = TAG_Int(2);
1773 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1774 once_value_19 = fra.me.REG[4];
1775 register_static_object(&once_value_19);
1776 } else fra.me.REG[4] = once_value_19;
1777 fra.me.REG[4] = fra.me.REG[4];
1778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1779 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1780 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1781 /* compiling/compiling_icode.nit:257 */
1782 REGB3 = TAG_Int(3);
1783 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1784 if (!once_value_20) {
1785 fra.me.REG[4] = BOX_NativeString("clos_fun");
1786 REGB3 = TAG_Int(8);
1787 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1788 once_value_20 = fra.me.REG[4];
1789 register_static_object(&once_value_20);
1790 } else fra.me.REG[4] = once_value_20;
1791 fra.me.REG[4] = fra.me.REG[4];
1792 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1793 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1795 if (!once_value_21) {
1796 fra.me.REG[4] = BOX_NativeString("");
1797 REGB3 = TAG_Int(0);
1798 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1799 once_value_21 = fra.me.REG[4];
1800 register_static_object(&once_value_21);
1801 } else fra.me.REG[4] = once_value_21;
1802 fra.me.REG[4] = fra.me.REG[4];
1803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1804 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1806 /* compiling/compiling_icode.nit:258 */
1807 REGB3 = TAG_Int(3);
1808 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1809 if (!once_value_22) {
1810 fra.me.REG[4] = BOX_NativeString("fun_t clos_fun");
1811 REGB3 = TAG_Int(14);
1812 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1813 once_value_22 = fra.me.REG[4];
1814 register_static_object(&once_value_22);
1815 } else fra.me.REG[4] = once_value_22;
1816 fra.me.REG[4] = fra.me.REG[4];
1817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1818 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1820 if (!once_value_23) {
1821 fra.me.REG[4] = BOX_NativeString("");
1822 REGB2 = TAG_Int(0);
1823 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
1824 once_value_23 = fra.me.REG[4];
1825 register_static_object(&once_value_23);
1826 } else fra.me.REG[4] = once_value_23;
1827 fra.me.REG[4] = fra.me.REG[4];
1828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1829 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1830 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1831 /* ../lib/standard/kernel.nit:357 */
1832 REGB2 = TAG_Int(1);
1833 /* ../lib/standard/kernel.nit:238 */
1834 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1835 /* ../lib/standard/kernel.nit:357 */
1836 REGB0 = REGB2;
1837 } else {
1838 /* ../lib/standard/kernel.nit:355 */
1839 goto label24;
1840 }
1841 }
1842 label24: while(0);
1843 }
1844 /* compiling/compiling_icode.nit:261 */
1845 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1846 if (UNTAG_Bool(REGB0)) {
1847 } else {
1848 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1849 if (UNTAG_Bool(REGB1)) {
1850 REGB1 = TAG_Bool(0);
1851 REGB0 = REGB1;
1852 } else {
1853 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
1854 REGB0 = REGB1;
1855 }
1856 }
1857 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1858 if (UNTAG_Bool(REGB0)) {
1859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
1860 }
1861 /* compiling/compiling_icode.nit:262 */
1862 if (!once_value_25) {
1863 fra.me.REG[5] = BOX_NativeString("void");
1864 REGB0 = TAG_Int(4);
1865 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1866 once_value_25 = fra.me.REG[5];
1867 register_static_object(&once_value_25);
1868 } else fra.me.REG[5] = once_value_25;
1869 fra.me.REG[5] = fra.me.REG[5];
1870 /* compiling/compiling_icode.nit:263 */
1871 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
1872 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1873 if (UNTAG_Bool(REGB0)) {
1874 } else {
1875 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1876 if (UNTAG_Bool(REGB1)) {
1877 REGB1 = TAG_Bool(0);
1878 REGB0 = REGB1;
1879 } else {
1880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1881 REGB0 = REGB1;
1882 }
1883 }
1884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1885 if (UNTAG_Bool(REGB0)) {
1886 if (!once_value_26) {
1887 fra.me.REG[0] = BOX_NativeString("val_t");
1888 REGB0 = TAG_Int(5);
1889 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1890 once_value_26 = fra.me.REG[0];
1891 register_static_object(&once_value_26);
1892 } else fra.me.REG[0] = once_value_26;
1893 fra.me.REG[0] = fra.me.REG[0];
1894 fra.me.REG[5] = fra.me.REG[0];
1895 }
1896 /* compiling/compiling_icode.nit:265 */
1897 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
1898 if (UNTAG_Bool(REGB0)) {
1899 /* compiling/compiling_icode.nit:266 */
1900 if (!once_value_27) {
1901 fra.me.REG[0] = BOX_NativeString("void");
1902 REGB0 = TAG_Int(4);
1903 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1904 once_value_27 = fra.me.REG[0];
1905 register_static_object(&once_value_27);
1906 } else fra.me.REG[0] = once_value_27;
1907 fra.me.REG[0] = fra.me.REG[0];
1908 } else {
1909 /* compiling/compiling_icode.nit:268 */
1910 if (!once_value_28) {
1911 fra.me.REG[8] = BOX_NativeString(", ");
1912 REGB0 = TAG_Int(2);
1913 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
1914 once_value_28 = fra.me.REG[8];
1915 register_static_object(&once_value_28);
1916 } else fra.me.REG[8] = once_value_28;
1917 fra.me.REG[8] = fra.me.REG[8];
1918 fra.me.REG[8] = CALL_standard___string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1919 fra.me.REG[0] = fra.me.REG[8];
1920 }
1921 /* compiling/compiling_icode.nit:270 */
1922 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1923 if (UNTAG_Bool(REGB0)) {
1924 } else {
1925 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1926 if (UNTAG_Bool(REGB1)) {
1927 REGB1 = TAG_Bool(0);
1928 REGB0 = REGB1;
1929 } else {
1930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1931 REGB0 = REGB1;
1932 }
1933 }
1934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1935 if (UNTAG_Bool(REGB0)) {
1936 /* compiling/compiling_icode.nit:271 */
1937 REGB0 = TAG_Int(5);
1938 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1939 if (!once_value_29) {
1940 fra.me.REG[7] = BOX_NativeString("static const char LOCATE_");
1941 REGB0 = TAG_Int(25);
1942 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1943 once_value_29 = fra.me.REG[7];
1944 register_static_object(&once_value_29);
1945 } else fra.me.REG[7] = once_value_29;
1946 fra.me.REG[7] = fra.me.REG[7];
1947 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1948 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1949 if (!once_value_30) {
1950 fra.me.REG[7] = BOX_NativeString("[] = \"");
1951 REGB0 = TAG_Int(6);
1952 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1953 once_value_30 = fra.me.REG[7];
1954 register_static_object(&once_value_30);
1955 } else fra.me.REG[7] = once_value_30;
1956 fra.me.REG[7] = fra.me.REG[7];
1957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1958 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1959 if (!once_value_31) {
1960 fra.me.REG[3] = BOX_NativeString("\";");
1961 REGB0 = TAG_Int(2);
1962 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1963 once_value_31 = fra.me.REG[3];
1964 register_static_object(&once_value_31);
1965 } else fra.me.REG[3] = once_value_31;
1966 fra.me.REG[3] = fra.me.REG[3];
1967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1968 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1969 CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1970 }
1971 /* compiling/compiling_icode.nit:273 */
1972 REGB0 = TAG_Int(7);
1973 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1974 if (!once_value_32) {
1975 fra.me.REG[3] = BOX_NativeString("");
1976 REGB0 = TAG_Int(0);
1977 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1978 once_value_32 = fra.me.REG[3];
1979 register_static_object(&once_value_32);
1980 } else fra.me.REG[3] = once_value_32;
1981 fra.me.REG[3] = fra.me.REG[3];
1982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1984 if (!once_value_33) {
1985 fra.me.REG[3] = BOX_NativeString(" ");
1986 REGB0 = TAG_Int(1);
1987 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1988 once_value_33 = fra.me.REG[3];
1989 register_static_object(&once_value_33);
1990 } else fra.me.REG[3] = once_value_33;
1991 fra.me.REG[3] = fra.me.REG[3];
1992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1994 if (!once_value_34) {
1995 fra.me.REG[3] = BOX_NativeString("(");
1996 REGB0 = TAG_Int(1);
1997 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1998 once_value_34 = fra.me.REG[3];
1999 register_static_object(&once_value_34);
2000 } else fra.me.REG[3] = once_value_34;
2001 fra.me.REG[3] = fra.me.REG[3];
2002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2004 if (!once_value_35) {
2005 fra.me.REG[3] = BOX_NativeString(");");
2006 REGB0 = TAG_Int(2);
2007 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2008 once_value_35 = fra.me.REG[3];
2009 register_static_object(&once_value_35);
2010 } else fra.me.REG[3] = once_value_35;
2011 fra.me.REG[3] = fra.me.REG[3];
2012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2013 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2014 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2015 /* compiling/compiling_icode.nit:274 */
2016 REGB0 = TAG_Int(7);
2017 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2018 if (!once_value_36) {
2019 fra.me.REG[3] = BOX_NativeString("typedef ");
2020 REGB0 = TAG_Int(8);
2021 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2022 once_value_36 = fra.me.REG[3];
2023 register_static_object(&once_value_36);
2024 } else fra.me.REG[3] = once_value_36;
2025 fra.me.REG[3] = fra.me.REG[3];
2026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2027 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2028 if (!once_value_37) {
2029 fra.me.REG[3] = BOX_NativeString(" (*");
2030 REGB0 = TAG_Int(3);
2031 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2032 once_value_37 = fra.me.REG[3];
2033 register_static_object(&once_value_37);
2034 } else fra.me.REG[3] = once_value_37;
2035 fra.me.REG[3] = fra.me.REG[3];
2036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2038 if (!once_value_38) {
2039 fra.me.REG[3] = BOX_NativeString("_t)(");
2040 REGB0 = TAG_Int(4);
2041 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2042 once_value_38 = fra.me.REG[3];
2043 register_static_object(&once_value_38);
2044 } else fra.me.REG[3] = once_value_38;
2045 fra.me.REG[3] = fra.me.REG[3];
2046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2047 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2048 if (!once_value_39) {
2049 fra.me.REG[3] = BOX_NativeString(");");
2050 REGB0 = TAG_Int(2);
2051 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2052 once_value_39 = fra.me.REG[3];
2053 register_static_object(&once_value_39);
2054 } else fra.me.REG[3] = once_value_39;
2055 fra.me.REG[3] = fra.me.REG[3];
2056 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2057 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2058 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2059 /* compiling/compiling_icode.nit:275 */
2060 REGB0 = TAG_Int(7);
2061 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2062 if (!once_value_40) {
2063 fra.me.REG[3] = BOX_NativeString("");
2064 REGB0 = TAG_Int(0);
2065 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2066 once_value_40 = fra.me.REG[3];
2067 register_static_object(&once_value_40);
2068 } else fra.me.REG[3] = once_value_40;
2069 fra.me.REG[3] = fra.me.REG[3];
2070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2072 if (!once_value_41) {
2073 fra.me.REG[5] = BOX_NativeString(" ");
2074 REGB0 = TAG_Int(1);
2075 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2076 once_value_41 = fra.me.REG[5];
2077 register_static_object(&once_value_41);
2078 } else fra.me.REG[5] = once_value_41;
2079 fra.me.REG[5] = fra.me.REG[5];
2080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2082 if (!once_value_42) {
2083 fra.me.REG[2] = BOX_NativeString("(");
2084 REGB0 = TAG_Int(1);
2085 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2086 once_value_42 = fra.me.REG[2];
2087 register_static_object(&once_value_42);
2088 } else fra.me.REG[2] = once_value_42;
2089 fra.me.REG[2] = fra.me.REG[2];
2090 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2092 if (!once_value_43) {
2093 fra.me.REG[0] = BOX_NativeString("){");
2094 REGB0 = TAG_Int(2);
2095 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2096 once_value_43 = fra.me.REG[0];
2097 register_static_object(&once_value_43);
2098 } else fra.me.REG[0] = once_value_43;
2099 fra.me.REG[0] = fra.me.REG[0];
2100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2101 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2102 CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2103 /* compiling/compiling_icode.nit:276 */
2104 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
2105 /* compiling/compiling_icode.nit:277 */
2106 goto label44;
2107 label44: while(0);
2108 stack_frame_head = fra.me.prev;
2109 return fra.me.REG[6];
2110 }
2111 static const char LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c[] = "compiling_icode::IRoutine::compile_inside_to_c";
2112 val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t p2){
2113 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2114 val_t REGB0;
2115 val_t REGB1;
2116 val_t REGB2;
2117 val_t REGB3;
2118 val_t REGB4;
2119 val_t REGB5;
2120 val_t tmp;
2121 static val_t once_value_1; /* Once value */
2122 static val_t once_value_2; /* Once value */
2123 static val_t once_value_3; /* Once value */
2124 static val_t once_value_4; /* Once value */
2125 static val_t once_value_5; /* Once value */
2126 static val_t once_value_6; /* Once value */
2127 static val_t once_value_7; /* Once value */
2128 static val_t once_value_8; /* Once value */
2129 static val_t once_value_9; /* Once value */
2130 static val_t once_value_10; /* Once value */
2131 static val_t once_value_11; /* Once value */
2132 static val_t once_value_12; /* Once value */
2133 static val_t once_value_13; /* Once value */
2134 static val_t once_value_14; /* Once value */
2135 static val_t once_value_15; /* Once value */
2136 static val_t once_value_16; /* Once value */
2137 static val_t once_value_18; /* Once value */
2138 static val_t once_value_19; /* Once value */
2139 static val_t once_value_21; /* Once value */
2140 static val_t once_value_22; /* Once value */
2141 static val_t once_value_23; /* Once value */
2142 static val_t once_value_24; /* Once value */
2143 static val_t once_value_27; /* Once value */
2144 static val_t once_value_28; /* Once value */
2145 static val_t once_value_30; /* Once value */
2146 static val_t once_value_31; /* Once value */
2147 static val_t once_value_32; /* Once value */
2148 static val_t once_value_34; /* Once value */
2149 static val_t once_value_35; /* Once value */
2150 static val_t once_value_36; /* Once value */
2151 static val_t once_value_37; /* Once value */
2152 static val_t once_value_38; /* Once value */
2153 static val_t once_value_39; /* Once value */
2154 static val_t once_value_41; /* Once value */
2155 static val_t once_value_42; /* Once value */
2156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2157 fra.me.file = LOCATE_compiling___compiling_icode;
2158 fra.me.line = 280;
2159 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2160 fra.me.has_broke = 0;
2161 fra.me.REG_size = 10;
2162 fra.me.nitni_local_ref_head = NULL;
2163 fra.me.REG[0] = NIT_NULL;
2164 fra.me.REG[1] = NIT_NULL;
2165 fra.me.REG[2] = NIT_NULL;
2166 fra.me.REG[3] = NIT_NULL;
2167 fra.me.REG[4] = NIT_NULL;
2168 fra.me.REG[5] = NIT_NULL;
2169 fra.me.REG[6] = NIT_NULL;
2170 fra.me.REG[7] = NIT_NULL;
2171 fra.me.REG[8] = NIT_NULL;
2172 fra.me.REG[9] = NIT_NULL;
2173 fra.me.REG[0] = p0;
2174 fra.me.REG[1] = p1;
2175 fra.me.REG[2] = p2;
2176 /* compiling/compiling_icode.nit:284 */
2177 REGB0 = TAG_Int(0);
2178 /* compiling/compiling_icode.nit:285 */
2179 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2180 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2181 if (UNTAG_Bool(REGB1)) {
2182 } else {
2183 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2184 if (UNTAG_Bool(REGB2)) {
2185 REGB2 = TAG_Bool(0);
2186 REGB1 = REGB2;
2187 } else {
2188 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2189 REGB1 = REGB2;
2190 }
2191 }
2192 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2193 if (UNTAG_Bool(REGB1)) {
2194 /* compiling/compiling_icode.nit:286 */
2195 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2196 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2197 if (UNTAG_Bool(REGB1)) {
2198 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 286);
2199 }
2200 REGB1 = CALL_location___Location___line_start(fra.me.REG[3])(fra.me.REG[3]);
2201 REGB0 = REGB1;
2202 }
2203 /* compiling/compiling_icode.nit:289 */
2204 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2205 REGB2 = TAG_Int(1);
2206 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2207 if (UNTAG_Bool(REGB3)) {
2208 } else {
2209 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2210 }
2211 /* ../lib/standard/kernel.nit:237 */
2212 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2213 /* compiling/compiling_icode.nit:289 */
2214 if (UNTAG_Bool(REGB2)) {
2215 /* compiling/compiling_icode.nit:290 */
2216 REGB2 = TAG_Int(3);
2217 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2218 if (!once_value_1) {
2219 fra.me.REG[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG[");
2220 REGB2 = TAG_Int(48);
2221 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2222 once_value_1 = fra.me.REG[4];
2223 register_static_object(&once_value_1);
2224 } else fra.me.REG[4] = once_value_1;
2225 fra.me.REG[4] = fra.me.REG[4];
2226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2227 REGB2 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2228 REGB1 = TAG_Int(1);
2229 /* ../lib/standard/kernel.nit:240 */
2230 REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
2231 /* compiling/compiling_icode.nit:290 */
2232 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
2233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2234 if (!once_value_2) {
2235 fra.me.REG[4] = BOX_NativeString("];} fra;");
2236 REGB1 = TAG_Int(8);
2237 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2238 once_value_2 = fra.me.REG[4];
2239 register_static_object(&once_value_2);
2240 } else fra.me.REG[4] = once_value_2;
2241 fra.me.REG[4] = fra.me.REG[4];
2242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2243 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2244 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2245 } else {
2246 /* compiling/compiling_icode.nit:292 */
2247 if (!once_value_3) {
2248 fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
2249 REGB1 = TAG_Int(38);
2250 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2251 once_value_3 = fra.me.REG[3];
2252 register_static_object(&once_value_3);
2253 } else fra.me.REG[3] = once_value_3;
2254 fra.me.REG[3] = fra.me.REG[3];
2255 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2256 }
2257 /* compiling/compiling_icode.nit:294 */
2258 if (!once_value_4) {
2259 fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
2260 REGB1 = TAG_Int(59);
2261 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2262 once_value_4 = fra.me.REG[3];
2263 register_static_object(&once_value_4);
2264 } else fra.me.REG[3] = once_value_4;
2265 fra.me.REG[3] = fra.me.REG[3];
2266 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2267 /* compiling/compiling_icode.nit:295 */
2268 REGB1 = TAG_Int(3);
2269 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2270 if (!once_value_5) {
2271 fra.me.REG[4] = BOX_NativeString("fra.me.file = LOCATE_");
2272 REGB1 = TAG_Int(21);
2273 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2274 once_value_5 = fra.me.REG[4];
2275 register_static_object(&once_value_5);
2276 } else fra.me.REG[4] = once_value_5;
2277 fra.me.REG[4] = fra.me.REG[4];
2278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2279 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
2280 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
2281 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[4])(fra.me.REG[4]);
2282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2283 if (!once_value_6) {
2284 fra.me.REG[4] = BOX_NativeString(";");
2285 REGB1 = TAG_Int(1);
2286 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2287 once_value_6 = fra.me.REG[4];
2288 register_static_object(&once_value_6);
2289 } else fra.me.REG[4] = once_value_6;
2290 fra.me.REG[4] = fra.me.REG[4];
2291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2292 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2293 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2294 /* compiling/compiling_icode.nit:296 */
2295 REGB1 = TAG_Int(3);
2296 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2297 if (!once_value_7) {
2298 fra.me.REG[4] = BOX_NativeString("fra.me.line = ");
2299 REGB1 = TAG_Int(14);
2300 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2301 once_value_7 = fra.me.REG[4];
2302 register_static_object(&once_value_7);
2303 } else fra.me.REG[4] = once_value_7;
2304 fra.me.REG[4] = fra.me.REG[4];
2305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2306 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2308 if (!once_value_8) {
2309 fra.me.REG[4] = BOX_NativeString(";");
2310 REGB0 = TAG_Int(1);
2311 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2312 once_value_8 = fra.me.REG[4];
2313 register_static_object(&once_value_8);
2314 } else fra.me.REG[4] = once_value_8;
2315 fra.me.REG[4] = fra.me.REG[4];
2316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2317 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2318 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2319 /* compiling/compiling_icode.nit:297 */
2320 REGB0 = TAG_Int(3);
2321 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2322 if (!once_value_9) {
2323 fra.me.REG[4] = BOX_NativeString("fra.me.meth = LOCATE_");
2324 REGB0 = TAG_Int(21);
2325 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2326 once_value_9 = fra.me.REG[4];
2327 register_static_object(&once_value_9);
2328 } else fra.me.REG[4] = once_value_9;
2329 fra.me.REG[4] = fra.me.REG[4];
2330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2331 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
2332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2333 if (!once_value_10) {
2334 fra.me.REG[4] = BOX_NativeString(";");
2335 REGB0 = TAG_Int(1);
2336 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2337 once_value_10 = fra.me.REG[4];
2338 register_static_object(&once_value_10);
2339 } else fra.me.REG[4] = once_value_10;
2340 fra.me.REG[4] = fra.me.REG[4];
2341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2342 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2343 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2344 /* compiling/compiling_icode.nit:298 */
2345 if (!once_value_11) {
2346 fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;");
2347 REGB0 = TAG_Int(21);
2348 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2349 once_value_11 = fra.me.REG[3];
2350 register_static_object(&once_value_11);
2351 } else fra.me.REG[3] = once_value_11;
2352 fra.me.REG[3] = fra.me.REG[3];
2353 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2354 /* compiling/compiling_icode.nit:299 */
2355 REGB0 = TAG_Int(3);
2356 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2357 if (!once_value_12) {
2358 fra.me.REG[4] = BOX_NativeString("fra.me.REG_size = ");
2359 REGB0 = TAG_Int(18);
2360 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2361 once_value_12 = fra.me.REG[4];
2362 register_static_object(&once_value_12);
2363 } else fra.me.REG[4] = once_value_12;
2364 fra.me.REG[4] = fra.me.REG[4];
2365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2366 REGB0 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2367 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2369 if (!once_value_13) {
2370 fra.me.REG[4] = BOX_NativeString(";");
2371 REGB0 = TAG_Int(1);
2372 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2373 once_value_13 = fra.me.REG[4];
2374 register_static_object(&once_value_13);
2375 } else fra.me.REG[4] = once_value_13;
2376 fra.me.REG[4] = fra.me.REG[4];
2377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2378 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2379 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2380 /* compiling/compiling_icode.nit:300 */
2381 if (!once_value_14) {
2382 fra.me.REG[3] = BOX_NativeString("fra.me.nitni_local_ref_head = NULL;");
2383 REGB0 = TAG_Int(35);
2384 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2385 once_value_14 = fra.me.REG[3];
2386 register_static_object(&once_value_14);
2387 } else fra.me.REG[3] = once_value_14;
2388 fra.me.REG[3] = fra.me.REG[3];
2389 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2390 /* compiling/compiling_icode.nit:303 */
2391 REGB0 = TAG_Int(0);
2392 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2393 /* ../lib/standard/kernel.nit:355 */
2394 while(1) {
2395 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2396 if (UNTAG_Bool(REGB2)) {
2397 } else {
2398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2399 }
2400 /* ../lib/standard/kernel.nit:235 */
2401 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2402 /* ../lib/standard/kernel.nit:355 */
2403 if (UNTAG_Bool(REGB2)) {
2404 /* compiling/compiling_icode.nit:303 */
2405 REGB2 = REGB0;
2406 /* compiling/compiling_icode.nit:304 */
2407 REGB3 = TAG_Int(3);
2408 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2409 if (!once_value_15) {
2410 fra.me.REG[4] = BOX_NativeString("fra.me.REG[");
2411 REGB3 = TAG_Int(11);
2412 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2413 once_value_15 = fra.me.REG[4];
2414 register_static_object(&once_value_15);
2415 } else fra.me.REG[4] = once_value_15;
2416 fra.me.REG[4] = fra.me.REG[4];
2417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2418 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2420 if (!once_value_16) {
2421 fra.me.REG[4] = BOX_NativeString("] = NIT_NULL;");
2422 REGB2 = TAG_Int(13);
2423 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2424 once_value_16 = fra.me.REG[4];
2425 register_static_object(&once_value_16);
2426 } else fra.me.REG[4] = once_value_16;
2427 fra.me.REG[4] = fra.me.REG[4];
2428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2429 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2430 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2431 /* ../lib/standard/kernel.nit:357 */
2432 REGB2 = TAG_Int(1);
2433 /* ../lib/standard/kernel.nit:238 */
2434 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2435 /* ../lib/standard/kernel.nit:357 */
2436 REGB0 = REGB2;
2437 } else {
2438 /* ../lib/standard/kernel.nit:355 */
2439 goto label17;
2440 }
2441 }
2442 label17: while(0);
2443 /* compiling/compiling_icode.nit:306 */
2444 REGB0 = TAG_Int(0);
2445 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2446 /* ../lib/standard/kernel.nit:355 */
2447 while(1) {
2448 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2449 if (UNTAG_Bool(REGB2)) {
2450 } else {
2451 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2452 }
2453 /* ../lib/standard/kernel.nit:235 */
2454 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2455 /* ../lib/standard/kernel.nit:355 */
2456 if (UNTAG_Bool(REGB2)) {
2457 /* compiling/compiling_icode.nit:306 */
2458 REGB2 = REGB0;
2459 /* compiling/compiling_icode.nit:307 */
2460 REGB3 = TAG_Int(3);
2461 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2462 if (!once_value_18) {
2463 fra.me.REG[4] = BOX_NativeString("val_t REGB");
2464 REGB3 = TAG_Int(10);
2465 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2466 once_value_18 = fra.me.REG[4];
2467 register_static_object(&once_value_18);
2468 } else fra.me.REG[4] = once_value_18;
2469 fra.me.REG[4] = fra.me.REG[4];
2470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2471 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2473 if (!once_value_19) {
2474 fra.me.REG[4] = BOX_NativeString(";");
2475 REGB2 = TAG_Int(1);
2476 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2477 once_value_19 = fra.me.REG[4];
2478 register_static_object(&once_value_19);
2479 } else fra.me.REG[4] = once_value_19;
2480 fra.me.REG[4] = fra.me.REG[4];
2481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2482 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2483 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2484 /* ../lib/standard/kernel.nit:357 */
2485 REGB2 = TAG_Int(1);
2486 /* ../lib/standard/kernel.nit:238 */
2487 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2488 /* ../lib/standard/kernel.nit:357 */
2489 REGB0 = REGB2;
2490 } else {
2491 /* ../lib/standard/kernel.nit:355 */
2492 goto label20;
2493 }
2494 }
2495 label20: while(0);
2496 /* compiling/compiling_icode.nit:309 */
2497 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
2498 /* compiling/compiling_icode.nit:310 */
2499 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2500 if (UNTAG_Bool(REGB0)) {
2501 } else {
2502 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2503 if (UNTAG_Bool(REGB1)) {
2504 REGB1 = TAG_Bool(0);
2505 REGB0 = REGB1;
2506 } else {
2507 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2508 REGB0 = REGB1;
2509 }
2510 }
2511 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2512 if (UNTAG_Bool(REGB0)) {
2513 /* compiling/compiling_icode.nit:311 */
2514 REGB0 = TAG_Int(3);
2515 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2516 if (!once_value_21) {
2517 fra.me.REG[5] = BOX_NativeString("fun_t CREG[");
2518 REGB0 = TAG_Int(11);
2519 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2520 once_value_21 = fra.me.REG[5];
2521 register_static_object(&once_value_21);
2522 } else fra.me.REG[5] = once_value_21;
2523 fra.me.REG[5] = fra.me.REG[5];
2524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2525 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2526 if (UNTAG_Bool(REGB0)) {
2527 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 311);
2528 }
2529 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2530 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2532 if (!once_value_22) {
2533 fra.me.REG[5] = BOX_NativeString("];");
2534 REGB0 = TAG_Int(2);
2535 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2536 once_value_22 = fra.me.REG[5];
2537 register_static_object(&once_value_22);
2538 } else fra.me.REG[5] = once_value_22;
2539 fra.me.REG[5] = fra.me.REG[5];
2540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2541 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2542 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2543 /* compiling/compiling_icode.nit:312 */
2544 if (!once_value_23) {
2545 fra.me.REG[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
2546 REGB0 = TAG_Int(35);
2547 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2548 once_value_23 = fra.me.REG[4];
2549 register_static_object(&once_value_23);
2550 } else fra.me.REG[4] = once_value_23;
2551 fra.me.REG[4] = fra.me.REG[4];
2552 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2553 /* compiling/compiling_icode.nit:313 */
2554 if (!once_value_24) {
2555 fra.me.REG[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
2556 REGB0 = TAG_Int(27);
2557 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2558 once_value_24 = fra.me.REG[4];
2559 register_static_object(&once_value_24);
2560 } else fra.me.REG[4] = once_value_24;
2561 fra.me.REG[4] = fra.me.REG[4];
2562 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2563 }
2564 /* compiling/compiling_icode.nit:315 */
2565 REGB0 = TAG_Int(0);
2566 fra.me.REG[4] = REGB0;
2567 /* compiling/compiling_icode.nit:316 */
2568 fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2569 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));
2570 /* compiling/compiling_icode.nit:320 */
2571 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2572 if (UNTAG_Bool(REGB0)) {
2573 } else {
2574 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2575 if (UNTAG_Bool(REGB1)) {
2576 REGB1 = TAG_Bool(0);
2577 REGB0 = REGB1;
2578 } else {
2579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2580 REGB0 = REGB1;
2581 }
2582 }
2583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2584 if (UNTAG_Bool(REGB0)) {
2585 /* compiling/compiling_icode.nit:321 */
2586 REGB0 = TAG_Int(0);
2587 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2588 if (UNTAG_Bool(REGB1)) {
2589 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 321);
2590 }
2591 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2592 /* ../lib/standard/kernel.nit:355 */
2593 while(1) {
2594 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2595 if (UNTAG_Bool(REGB2)) {
2596 } else {
2597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2598 }
2599 /* ../lib/standard/kernel.nit:235 */
2600 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2601 /* ../lib/standard/kernel.nit:355 */
2602 if (UNTAG_Bool(REGB2)) {
2603 /* compiling/compiling_icode.nit:321 */
2604 REGB2 = REGB0;
2605 /* compiling/compiling_icode.nit:322 */
2606 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2607 if (UNTAG_Bool(REGB3)) {
2608 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 322);
2609 }
2610 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2611 /* compiling/compiling_icode.nit:323 */
2612 REGB3 = TAG_Int(5);
2613 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2614 if (!once_value_27) {
2615 fra.me.REG[6] = BOX_NativeString("CREG[");
2616 REGB3 = TAG_Int(5);
2617 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2618 once_value_27 = fra.me.REG[6];
2619 register_static_object(&once_value_27);
2620 } else fra.me.REG[6] = once_value_27;
2621 fra.me.REG[6] = fra.me.REG[6];
2622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2623 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2625 if (!once_value_28) {
2626 fra.me.REG[6] = BOX_NativeString("] = ");
2627 REGB3 = TAG_Int(4);
2628 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2629 once_value_28 = fra.me.REG[6];
2630 register_static_object(&once_value_28);
2631 } else fra.me.REG[6] = once_value_28;
2632 fra.me.REG[6] = fra.me.REG[6];
2633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2634 fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2635 REGB3 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
2636 /* ../lib/standard/kernel.nit:238 */
2637 REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
2638 /* ../lib/standard/collection/array.nit:278 */
2639 fra.me.REG[6] = fra.me.REG[2];
2640 /* ../lib/standard/collection/array.nit:280 */
2641 REGB4 = TAG_Int(0);
2642 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2643 if (UNTAG_Bool(REGB5)) {
2644 } else {
2645 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2646 }
2647 /* ../lib/standard/kernel.nit:236 */
2648 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2649 /* ../lib/standard/collection/array.nit:280 */
2650 if (UNTAG_Bool(REGB4)) {
2651 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
2652 if (UNTAG_Bool(REGB4)) {
2653 } else {
2654 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2655 }
2656 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
2657 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2658 if (UNTAG_Bool(REGB5)) {
2659 } else {
2660 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2661 }
2662 /* ../lib/standard/kernel.nit:235 */
2663 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2664 } else {
2665 /* ../lib/standard/collection/array.nit:280 */
2666 REGB5 = TAG_Bool(0);
2667 REGB4 = REGB5;
2668 }
2669 if (UNTAG_Bool(REGB4)) {
2670 } else {
2671 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2672 }
2673 /* ../lib/standard/collection/array.nit:281 */
2674 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
2675 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2676 if (UNTAG_Bool(REGB4)) {
2677 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2678 }
2679 /* ../lib/standard/collection/array.nit:718 */
2680 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
2681 /* ../lib/standard/collection/array.nit:281 */
2682 goto label29;
2683 label29: while(0);
2684 /* compiling/compiling_icode.nit:323 */
2685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2686 if (!once_value_30) {
2687 fra.me.REG[6] = BOX_NativeString(";");
2688 REGB3 = TAG_Int(1);
2689 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2690 once_value_30 = fra.me.REG[6];
2691 register_static_object(&once_value_30);
2692 } else fra.me.REG[6] = once_value_30;
2693 fra.me.REG[6] = fra.me.REG[6];
2694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2695 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2696 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
2697 /* compiling/compiling_icode.nit:324 */
2698 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
2699 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2700 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
2701 /* compiling/compiling_icode.nit:325 */
2702 fra.me.REG[6] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]);
2703 fra.me.REG[6] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
2704 /* compiling/compiling_icode.nit:326 */
2705 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
2706 /* compiling/compiling_icode.nit:327 */
2707 if (!once_value_31) {
2708 fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *");
2709 REGB2 = TAG_Int(22);
2710 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2711 once_value_31 = fra.me.REG[7];
2712 register_static_object(&once_value_31);
2713 } else fra.me.REG[7] = once_value_31;
2714 fra.me.REG[7] = fra.me.REG[7];
2715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2716 /* compiling/compiling_icode.nit:328 */
2717 REGB2 = TAG_Int(0);
2718 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
2719 /* ../lib/standard/kernel.nit:355 */
2720 while(1) {
2721 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2722 if (UNTAG_Bool(REGB4)) {
2723 } else {
2724 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2725 }
2726 /* ../lib/standard/kernel.nit:235 */
2727 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2728 /* ../lib/standard/kernel.nit:355 */
2729 if (UNTAG_Bool(REGB4)) {
2730 /* compiling/compiling_icode.nit:329 */
2731 if (!once_value_32) {
2732 fra.me.REG[7] = BOX_NativeString("val_t");
2733 REGB4 = TAG_Int(5);
2734 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB4);
2735 once_value_32 = fra.me.REG[7];
2736 register_static_object(&once_value_32);
2737 } else fra.me.REG[7] = once_value_32;
2738 fra.me.REG[7] = fra.me.REG[7];
2739 /* compiling/compiling_icode.nit:330 */
2740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2741 /* ../lib/standard/kernel.nit:357 */
2742 REGB4 = TAG_Int(1);
2743 /* ../lib/standard/kernel.nit:238 */
2744 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
2745 /* ../lib/standard/kernel.nit:357 */
2746 REGB2 = REGB4;
2747 } else {
2748 /* ../lib/standard/kernel.nit:355 */
2749 goto label33;
2750 }
2751 }
2752 label33: while(0);
2753 /* compiling/compiling_icode.nit:332 */
2754 if (!once_value_34) {
2755 fra.me.REG[7] = BOX_NativeString("void");
2756 REGB2 = TAG_Int(4);
2757 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2758 once_value_34 = fra.me.REG[7];
2759 register_static_object(&once_value_34);
2760 } else fra.me.REG[7] = once_value_34;
2761 fra.me.REG[7] = fra.me.REG[7];
2762 /* compiling/compiling_icode.nit:333 */
2763 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
2764 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2765 if (UNTAG_Bool(REGB2)) {
2766 } else {
2767 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2768 if (UNTAG_Bool(REGB3)) {
2769 REGB3 = TAG_Bool(0);
2770 REGB2 = REGB3;
2771 } else {
2772 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2773 REGB2 = REGB3;
2774 }
2775 }
2776 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2777 if (UNTAG_Bool(REGB2)) {
2778 if (!once_value_35) {
2779 fra.me.REG[6] = BOX_NativeString("val_t");
2780 REGB2 = TAG_Int(5);
2781 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
2782 once_value_35 = fra.me.REG[6];
2783 register_static_object(&once_value_35);
2784 } else fra.me.REG[6] = once_value_35;
2785 fra.me.REG[6] = fra.me.REG[6];
2786 fra.me.REG[7] = fra.me.REG[6];
2787 }
2788 /* compiling/compiling_icode.nit:334 */
2789 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
2790 REGB2 = TAG_Int(5);
2791 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2792 if (!once_value_36) {
2793 fra.me.REG[9] = BOX_NativeString("");
2794 REGB2 = TAG_Int(0);
2795 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB2);
2796 once_value_36 = fra.me.REG[9];
2797 register_static_object(&once_value_36);
2798 } else fra.me.REG[9] = once_value_36;
2799 fra.me.REG[9] = fra.me.REG[9];
2800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
2801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2802 if (!once_value_37) {
2803 fra.me.REG[7] = BOX_NativeString(" (*)(");
2804 REGB2 = TAG_Int(5);
2805 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2806 once_value_37 = fra.me.REG[7];
2807 register_static_object(&once_value_37);
2808 } else fra.me.REG[7] = once_value_37;
2809 fra.me.REG[7] = fra.me.REG[7];
2810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2811 if (!once_value_38) {
2812 fra.me.REG[7] = BOX_NativeString(", ");
2813 REGB2 = TAG_Int(2);
2814 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2815 once_value_38 = fra.me.REG[7];
2816 register_static_object(&once_value_38);
2817 } else fra.me.REG[7] = once_value_38;
2818 fra.me.REG[7] = fra.me.REG[7];
2819 fra.me.REG[7] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2821 if (!once_value_39) {
2822 fra.me.REG[7] = BOX_NativeString(")");
2823 REGB2 = TAG_Int(1);
2824 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2825 once_value_39 = fra.me.REG[7];
2826 register_static_object(&once_value_39);
2827 } else fra.me.REG[7] = once_value_39;
2828 fra.me.REG[7] = fra.me.REG[7];
2829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2830 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2831 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8]);
2832 /* ../lib/standard/kernel.nit:357 */
2833 REGB2 = TAG_Int(1);
2834 /* ../lib/standard/kernel.nit:238 */
2835 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2836 /* ../lib/standard/kernel.nit:357 */
2837 REGB0 = REGB2;
2838 } else {
2839 /* ../lib/standard/kernel.nit:355 */
2840 goto label40;
2841 }
2842 }
2843 label40: while(0);
2844 }
2845 /* compiling/compiling_icode.nit:337 */
2846 if (!once_value_41) {
2847 fra.me.REG[2] = BOX_NativeString("val_t tmp;");
2848 REGB0 = TAG_Int(10);
2849 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2850 once_value_41 = fra.me.REG[2];
2851 register_static_object(&once_value_41);
2852 } else fra.me.REG[2] = once_value_41;
2853 fra.me.REG[2] = fra.me.REG[2];
2854 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2855 /* compiling/compiling_icode.nit:340 */
2856 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
2857 /* compiling/compiling_icode.nit:341 */
2858 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2859 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2860 /* compiling/compiling_icode.nit:344 */
2861 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2862 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2863 /* compiling/compiling_icode.nit:346 */
2864 if (!once_value_42) {
2865 fra.me.REG[3] = BOX_NativeString("stack_frame_head = fra.me.prev;");
2866 REGB0 = TAG_Int(31);
2867 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2868 once_value_42 = fra.me.REG[3];
2869 register_static_object(&once_value_42);
2870 } else fra.me.REG[3] = once_value_42;
2871 fra.me.REG[3] = fra.me.REG[3];
2872 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2873 /* compiling/compiling_icode.nit:347 */
2874 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2875 /* compiling/compiling_icode.nit:348 */
2876 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
2877 /* compiling/compiling_icode.nit:349 */
2878 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2879 if (UNTAG_Bool(REGB0)) {
2880 } else {
2881 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2882 if (UNTAG_Bool(REGB1)) {
2883 REGB1 = TAG_Bool(0);
2884 REGB0 = REGB1;
2885 } else {
2886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2887 REGB0 = REGB1;
2888 }
2889 }
2890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2891 if (UNTAG_Bool(REGB0)) {
2892 /* compiling/compiling_icode.nit:350 */
2893 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2894 goto label43;
2895 } else {
2896 /* compiling/compiling_icode.nit:352 */
2897 fra.me.REG[0] = NIT_NULL;
2898 goto label43;
2899 }
2900 label43: while(0);
2901 stack_frame_head = fra.me.prev;
2902 return fra.me.REG[0];
2903 }
2904 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){
2905 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2906 val_t REGB0;
2907 val_t REGB1;
2908 val_t REGB2;
2909 fun_t CREG[1];
2910 val_t tmp;
2911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2912 fra.me.file = LOCATE_compiling___compiling_icode;
2913 fra.me.line = 0;
2914 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2915 fra.me.has_broke = 0;
2916 fra.me.REG_size = 2;
2917 fra.me.nitni_local_ref_head = NULL;
2918 fra.me.REG[0] = NIT_NULL;
2919 fra.me.REG[1] = NIT_NULL;
2920 fra.me.closure_ctx = closctx_param;
2921 fra.me.closure_funs = CREG;
2922 fra.me.REG[0] = p0;
2923 CREG[0] = clos_fun0;
2924 /* compiling/compiling_icode.nit:317 */
2925 fra.me.REG[1] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
2926 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2927 if (UNTAG_Bool(REGB0)) {
2928 } else {
2929 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2930 if (UNTAG_Bool(REGB1)) {
2931 REGB1 = TAG_Bool(0);
2932 REGB0 = REGB1;
2933 } else {
2934 /* ../lib/standard/kernel.nit:230 */
2935 REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
2936 /* compiling/compiling_icode.nit:317 */
2937 REGB0 = REGB1;
2938 }
2939 }
2940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2941 if (UNTAG_Bool(REGB0)) {
2942 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
2943 /* ../lib/standard/collection/array.nit:278 */
2944 fra.me.REG[1] = closctx->REG[2];
2945 REGB0 = closctx->REG[4];
2946 /* ../lib/standard/collection/array.nit:280 */
2947 REGB1 = TAG_Int(0);
2948 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2949 if (UNTAG_Bool(REGB2)) {
2950 } else {
2951 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2952 }
2953 /* ../lib/standard/kernel.nit:236 */
2954 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2955 /* ../lib/standard/collection/array.nit:280 */
2956 if (UNTAG_Bool(REGB1)) {
2957 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2958 if (UNTAG_Bool(REGB1)) {
2959 } else {
2960 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2961 }
2962 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2963 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2964 if (UNTAG_Bool(REGB2)) {
2965 } else {
2966 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2967 }
2968 /* ../lib/standard/kernel.nit:235 */
2969 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2970 } else {
2971 /* ../lib/standard/collection/array.nit:280 */
2972 REGB2 = TAG_Bool(0);
2973 REGB1 = REGB2;
2974 }
2975 if (UNTAG_Bool(REGB1)) {
2976 } else {
2977 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2978 }
2979 /* ../lib/standard/collection/array.nit:281 */
2980 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2981 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2982 if (UNTAG_Bool(REGB1)) {
2983 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2984 }
2985 /* ../lib/standard/collection/array.nit:718 */
2986 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
2987 /* ../lib/standard/collection/array.nit:281 */
2988 goto label26;
2989 label26: while(0);
2990 /* compiling/compiling_icode.nit:317 */
2991 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]);
2992 }
2993 /* compiling/compiling_icode.nit:318 */
2994 REGB0 = TAG_Int(1);
2995 /* ../lib/standard/kernel.nit:238 */
2996 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0));
2997 /* compiling/compiling_icode.nit:318 */
2998 closctx->REG[4] = REGB0;
2999 stack_frame_head = fra.me.prev;
3000 return;
3001 }
3002 static const char LOCATE_compiling___compiling_icode___IRoutine___compile_to_c[] = "compiling_icode::IRoutine::compile_to_c";
3003 val_t compiling___compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1, val_t p2, val_t p3){
3004 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3005 val_t tmp;
3006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3007 fra.me.file = LOCATE_compiling___compiling_icode;
3008 fra.me.line = 356;
3009 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_to_c;
3010 fra.me.has_broke = 0;
3011 fra.me.REG_size = 4;
3012 fra.me.nitni_local_ref_head = NULL;
3013 fra.me.REG[0] = NIT_NULL;
3014 fra.me.REG[1] = NIT_NULL;
3015 fra.me.REG[2] = NIT_NULL;
3016 fra.me.REG[3] = NIT_NULL;
3017 fra.me.REG[0] = p0;
3018 fra.me.REG[1] = p1;
3019 fra.me.REG[2] = p2;
3020 fra.me.REG[3] = p3;
3021 /* compiling/compiling_icode.nit:360 */
3022 fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3023 /* compiling/compiling_icode.nit:361 */
3024 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]);
3025 goto label1;
3026 label1: while(0);
3027 stack_frame_head = fra.me.prev;
3028 return fra.me.REG[3];
3029 }
3030 static const char LOCATE_compiling___compiling_icode___ICode___compile_to_c[] = "compiling_icode::ICode::compile_to_c";
3031 void compiling___compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){
3032 struct {struct stack_frame_t me;} fra;
3033 val_t tmp;
3034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3035 fra.me.file = LOCATE_compiling___compiling_icode;
3036 fra.me.line = 366;
3037 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___compile_to_c;
3038 fra.me.has_broke = 0;
3039 fra.me.REG_size = 0;
3040 fra.me.nitni_local_ref_head = NULL;
3041 /* compiling/compiling_icode.nit:366 */
3042 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 366);
3043 stack_frame_head = fra.me.prev;
3044 return;
3045 }
3046 static const char LOCATE_compiling___compiling_icode___ICode___need_result[] = "compiling_icode::ICode::need_result";
3047 val_t compiling___compiling_icode___ICode___need_result(val_t p0){
3048 struct {struct stack_frame_t me;} fra;
3049 val_t REGB0;
3050 val_t REGB1;
3051 val_t tmp;
3052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3053 fra.me.file = LOCATE_compiling___compiling_icode;
3054 fra.me.line = 369;
3055 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___need_result;
3056 fra.me.has_broke = 0;
3057 fra.me.REG_size = 1;
3058 fra.me.nitni_local_ref_head = NULL;
3059 fra.me.REG[0] = NIT_NULL;
3060 fra.me.REG[0] = p0;
3061 /* compiling/compiling_icode.nit:372 */
3062 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3063 /* compiling/compiling_icode.nit:373 */
3064 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3065 if (UNTAG_Bool(REGB0)) {
3066 } else {
3067 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3068 if (UNTAG_Bool(REGB1)) {
3069 REGB1 = TAG_Bool(0);
3070 REGB0 = REGB1;
3071 } else {
3072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3073 REGB0 = REGB1;
3074 }
3075 }
3076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3077 if (UNTAG_Bool(REGB0)) {
3078 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3079 if (UNTAG_Bool(REGB0)) {
3080 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 373);
3081 }
3082 fra.me.REG[0] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3083 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3084 if (UNTAG_Bool(REGB0)) {
3085 } else {
3086 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3087 if (UNTAG_Bool(REGB1)) {
3088 REGB1 = TAG_Bool(0);
3089 REGB0 = REGB1;
3090 } else {
3091 /* ../lib/standard/kernel.nit:230 */
3092 REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL));
3093 /* compiling/compiling_icode.nit:373 */
3094 REGB0 = REGB1;
3095 }
3096 }
3097 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3098 } else {
3099 REGB1 = TAG_Bool(0);
3100 REGB0 = REGB1;
3101 }
3102 goto label1;
3103 label1: while(0);
3104 stack_frame_head = fra.me.prev;
3105 return REGB0;
3106 }
3107 static const char LOCATE_compiling___compiling_icode___ICode___store_result[] = "compiling_icode::ICode::store_result";
3108 void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){
3109 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3110 val_t REGB0;
3111 val_t REGB1;
3112 val_t tmp;
3113 static val_t once_value_1; /* Once value */
3114 static val_t once_value_2; /* Once value */
3115 static val_t once_value_3; /* Once value */
3116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3117 fra.me.file = LOCATE_compiling___compiling_icode;
3118 fra.me.line = 376;
3119 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___store_result;
3120 fra.me.has_broke = 0;
3121 fra.me.REG_size = 5;
3122 fra.me.nitni_local_ref_head = NULL;
3123 fra.me.REG[0] = NIT_NULL;
3124 fra.me.REG[1] = NIT_NULL;
3125 fra.me.REG[2] = NIT_NULL;
3126 fra.me.REG[3] = NIT_NULL;
3127 fra.me.REG[4] = NIT_NULL;
3128 fra.me.REG[0] = p0;
3129 fra.me.REG[1] = p1;
3130 fra.me.REG[2] = p2;
3131 /* compiling/compiling_icode.nit:379 */
3132 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3133 /* compiling/compiling_icode.nit:380 */
3134 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3135 if (UNTAG_Bool(REGB0)) {
3136 } else {
3137 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3138 if (UNTAG_Bool(REGB1)) {
3139 REGB1 = TAG_Bool(0);
3140 REGB0 = REGB1;
3141 } else {
3142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3143 REGB0 = REGB1;
3144 }
3145 }
3146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3147 if (UNTAG_Bool(REGB0)) {
3148 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3149 if (UNTAG_Bool(REGB0)) {
3150 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 380);
3151 }
3152 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[3])(fra.me.REG[3]);
3153 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3154 if (UNTAG_Bool(REGB0)) {
3155 } else {
3156 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3157 if (UNTAG_Bool(REGB1)) {
3158 REGB1 = TAG_Bool(0);
3159 REGB0 = REGB1;
3160 } else {
3161 /* ../lib/standard/kernel.nit:230 */
3162 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
3163 /* compiling/compiling_icode.nit:380 */
3164 REGB0 = REGB1;
3165 }
3166 }
3167 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3168 } else {
3169 REGB1 = TAG_Bool(0);
3170 REGB0 = REGB1;
3171 }
3172 if (UNTAG_Bool(REGB0)) {
3173 /* compiling/compiling_icode.nit:381 */
3174 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3175 if (UNTAG_Bool(REGB0)) {
3176 } else {
3177 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3178 if (UNTAG_Bool(REGB1)) {
3179 REGB1 = TAG_Bool(0);
3180 REGB0 = REGB1;
3181 } else {
3182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3183 REGB0 = REGB1;
3184 }
3185 }
3186 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3187 if (UNTAG_Bool(REGB0)) {
3188 } else {
3189 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 381);
3190 }
3191 /* compiling/compiling_icode.nit:382 */
3192 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3193 /* compiling/compiling_icode.nit:383 */
3194 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3195 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3196 /* compiling/compiling_icode.nit:384 */
3197 if (!once_value_1) {
3198 fra.me.REG[3] = BOX_NativeString(" = ");
3199 REGB0 = TAG_Int(3);
3200 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3201 once_value_1 = fra.me.REG[3];
3202 register_static_object(&once_value_1);
3203 } else fra.me.REG[3] = once_value_1;
3204 fra.me.REG[3] = fra.me.REG[3];
3205 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3206 /* compiling/compiling_icode.nit:385 */
3207 CALL_compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3208 /* compiling/compiling_icode.nit:386 */
3209 if (!once_value_2) {
3210 fra.me.REG[3] = BOX_NativeString(";\n");
3211 REGB0 = TAG_Int(2);
3212 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3213 once_value_2 = fra.me.REG[3];
3214 register_static_object(&once_value_2);
3215 } else fra.me.REG[3] = once_value_2;
3216 fra.me.REG[3] = fra.me.REG[3];
3217 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3218 } else {
3219 /* compiling/compiling_icode.nit:387 */
3220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3221 if (UNTAG_Bool(REGB0)) {
3222 } else {
3223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3224 if (UNTAG_Bool(REGB1)) {
3225 REGB1 = TAG_Bool(0);
3226 REGB0 = REGB1;
3227 } else {
3228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3229 REGB0 = REGB1;
3230 }
3231 }
3232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3233 if (UNTAG_Bool(REGB0)) {
3234 REGB0 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3235 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3236 } else {
3237 REGB1 = TAG_Bool(0);
3238 REGB0 = REGB1;
3239 }
3240 if (UNTAG_Bool(REGB0)) {
3241 /* compiling/compiling_icode.nit:390 */
3242 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3243 /* compiling/compiling_icode.nit:391 */
3244 CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3245 /* compiling/compiling_icode.nit:392 */
3246 if (!once_value_3) {
3247 fra.me.REG[2] = BOX_NativeString(";\n");
3248 REGB0 = TAG_Int(2);
3249 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3250 once_value_3 = fra.me.REG[2];
3251 register_static_object(&once_value_3);
3252 } else fra.me.REG[2] = once_value_3;
3253 fra.me.REG[2] = fra.me.REG[2];
3254 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3255 }
3256 }
3257 stack_frame_head = fra.me.prev;
3258 return;
3259 }
3260 static const char LOCATE_compiling___compiling_icode___ICode___new_result[] = "compiling_icode::ICode::new_result";
3261 val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
3262 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3263 val_t REGB0;
3264 val_t REGB1;
3265 val_t tmp;
3266 static val_t once_value_1; /* Once value */
3267 static val_t once_value_2; /* Once value */
3268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3269 fra.me.file = LOCATE_compiling___compiling_icode;
3270 fra.me.line = 396;
3271 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___new_result;
3272 fra.me.has_broke = 0;
3273 fra.me.REG_size = 4;
3274 fra.me.nitni_local_ref_head = NULL;
3275 fra.me.REG[0] = NIT_NULL;
3276 fra.me.REG[1] = NIT_NULL;
3277 fra.me.REG[2] = NIT_NULL;
3278 fra.me.REG[3] = NIT_NULL;
3279 fra.me.REG[0] = p0;
3280 fra.me.REG[1] = p1;
3281 /* compiling/compiling_icode.nit:400 */
3282 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
3283 if (UNTAG_Bool(REGB0)) {
3284 REGB0 = TAG_Bool(1);
3285 } else {
3286 REGB1 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3287 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3288 REGB0 = REGB1;
3289 }
3290 if (UNTAG_Bool(REGB0)) {
3291 } else {
3292 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 400);
3293 }
3294 /* compiling/compiling_icode.nit:401 */
3295 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3296 /* compiling/compiling_icode.nit:402 */
3297 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3298 /* compiling/compiling_icode.nit:403 */
3299 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3300 if (UNTAG_Bool(REGB0)) {
3301 } else {
3302 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3303 if (UNTAG_Bool(REGB1)) {
3304 REGB1 = TAG_Bool(0);
3305 REGB0 = REGB1;
3306 } else {
3307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3308 REGB0 = REGB1;
3309 }
3310 }
3311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3312 if (UNTAG_Bool(REGB0)) {
3313 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3314 if (UNTAG_Bool(REGB0)) {
3315 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 403);
3316 }
3317 fra.me.REG[3] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3318 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3319 if (UNTAG_Bool(REGB0)) {
3320 } else {
3321 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3322 if (UNTAG_Bool(REGB1)) {
3323 REGB1 = TAG_Bool(0);
3324 REGB0 = REGB1;
3325 } else {
3326 /* ../lib/standard/kernel.nit:230 */
3327 REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
3328 /* compiling/compiling_icode.nit:403 */
3329 REGB0 = REGB1;
3330 }
3331 }
3332 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3333 } else {
3334 REGB1 = TAG_Bool(0);
3335 REGB0 = REGB1;
3336 }
3337 if (UNTAG_Bool(REGB0)) {
3338 /* compiling/compiling_icode.nit:404 */
3339 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3340 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3341 /* compiling/compiling_icode.nit:405 */
3342 if (!once_value_1) {
3343 fra.me.REG[0] = BOX_NativeString(" = ");
3344 REGB0 = TAG_Int(3);
3345 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3346 once_value_1 = fra.me.REG[0];
3347 register_static_object(&once_value_1);
3348 } else fra.me.REG[0] = once_value_1;
3349 fra.me.REG[0] = fra.me.REG[0];
3350 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3351 }
3352 /* compiling/compiling_icode.nit:407 */
3353 fra.me.REG[0] = CALL_compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
3354 /* compiling/compiling_icode.nit:408 */
3355 if (!once_value_2) {
3356 fra.me.REG[1] = BOX_NativeString(";\n");
3357 REGB0 = TAG_Int(2);
3358 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
3359 once_value_2 = fra.me.REG[1];
3360 register_static_object(&once_value_2);
3361 } else fra.me.REG[1] = once_value_2;
3362 fra.me.REG[1] = fra.me.REG[1];
3363 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3364 /* compiling/compiling_icode.nit:409 */
3365 goto label3;
3366 label3: while(0);
3367 stack_frame_head = fra.me.prev;
3368 return fra.me.REG[0];
3369 }
3370 static const char LOCATE_compiling___compiling_icode___ISeq___compile_to_c[] = "compiling_icode::ISeq::(compiling_icode::ICode::compile_to_c)";
3371 void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
3372 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3373 val_t REGB0;
3374 val_t REGB1;
3375 val_t tmp;
3376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3377 fra.me.file = LOCATE_compiling___compiling_icode;
3378 fra.me.line = 414;
3379 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3380 fra.me.has_broke = 0;
3381 fra.me.REG_size = 4;
3382 fra.me.nitni_local_ref_head = NULL;
3383 fra.me.REG[0] = NIT_NULL;
3384 fra.me.REG[1] = NIT_NULL;
3385 fra.me.REG[2] = NIT_NULL;
3386 fra.me.REG[3] = NIT_NULL;
3387 fra.me.REG[0] = p0;
3388 fra.me.REG[1] = p1;
3389 /* compiling/compiling_icode.nit:416 */
3390 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3391 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3392 /* compiling/compiling_icode.nit:417 */
3393 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3395 /* compiling/compiling_icode.nit:418 */
3396 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3397 /* compiling/compiling_icode.nit:419 */
3398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3399 if (UNTAG_Bool(REGB0)) {
3400 } else {
3401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3402 if (UNTAG_Bool(REGB1)) {
3403 REGB1 = TAG_Bool(0);
3404 REGB0 = REGB1;
3405 } else {
3406 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3407 REGB0 = REGB1;
3408 }
3409 }
3410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3411 if (UNTAG_Bool(REGB0)) {
3412 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3413 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3414 }
3415 /* compiling/compiling_icode.nit:420 */
3416 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3417 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));
3418 /* compiling/compiling_icode.nit:423 */
3419 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3420 stack_frame_head = fra.me.prev;
3421 return;
3422 }
3423 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){
3424 struct {struct stack_frame_t me;} fra;
3425 fun_t CREG[1];
3426 val_t tmp;
3427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3428 fra.me.file = LOCATE_compiling___compiling_icode;
3429 fra.me.line = 0;
3430 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3431 fra.me.has_broke = 0;
3432 fra.me.REG_size = 1;
3433 fra.me.nitni_local_ref_head = NULL;
3434 fra.me.REG[0] = NIT_NULL;
3435 fra.me.closure_ctx = closctx_param;
3436 fra.me.closure_funs = CREG;
3437 fra.me.REG[0] = p0;
3438 CREG[0] = clos_fun0;
3439 /* compiling/compiling_icode.nit:421 */
3440 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3441 stack_frame_head = fra.me.prev;
3442 return;
3443 }
3444 static const char LOCATE_compiling___compiling_icode___IIf___compile_to_c[] = "compiling_icode::IIf::(compiling_icode::ICode::compile_to_c)";
3445 void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
3446 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3447 val_t REGB0;
3448 val_t tmp;
3449 static val_t once_value_1; /* Once value */
3450 static val_t once_value_2; /* Once value */
3451 static val_t once_value_3; /* Once value */
3452 static val_t once_value_4; /* Once value */
3453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3454 fra.me.file = LOCATE_compiling___compiling_icode;
3455 fra.me.line = 428;
3456 fra.me.meth = LOCATE_compiling___compiling_icode___IIf___compile_to_c;
3457 fra.me.has_broke = 0;
3458 fra.me.REG_size = 4;
3459 fra.me.nitni_local_ref_head = NULL;
3460 fra.me.REG[0] = NIT_NULL;
3461 fra.me.REG[1] = NIT_NULL;
3462 fra.me.REG[2] = NIT_NULL;
3463 fra.me.REG[3] = NIT_NULL;
3464 fra.me.REG[0] = p0;
3465 fra.me.REG[1] = p1;
3466 /* compiling/compiling_icode.nit:430 */
3467 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3468 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3469 /* compiling/compiling_icode.nit:431 */
3470 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3471 /* compiling/compiling_icode.nit:432 */
3472 if (!once_value_1) {
3473 fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool(");
3474 REGB0 = TAG_Int(15);
3475 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3476 once_value_1 = fra.me.REG[3];
3477 register_static_object(&once_value_1);
3478 } else fra.me.REG[3] = once_value_1;
3479 fra.me.REG[3] = fra.me.REG[3];
3480 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3481 /* compiling/compiling_icode.nit:433 */
3482 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
3483 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3484 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3485 /* compiling/compiling_icode.nit:434 */
3486 if (!once_value_2) {
3487 fra.me.REG[3] = BOX_NativeString(")) {\n");
3488 REGB0 = TAG_Int(5);
3489 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3490 once_value_2 = fra.me.REG[3];
3491 register_static_object(&once_value_2);
3492 } else fra.me.REG[3] = once_value_2;
3493 fra.me.REG[3] = fra.me.REG[3];
3494 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3495 /* compiling/compiling_icode.nit:435 */
3496 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3497 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3498 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3499 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3500 if (UNTAG_Bool(REGB0)) {
3501 /* compiling/compiling_icode.nit:436 */
3502 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3503 /* compiling/compiling_icode.nit:437 */
3504 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3505 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3506 /* compiling/compiling_icode.nit:438 */
3507 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3508 }
3509 /* compiling/compiling_icode.nit:440 */
3510 fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3511 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3512 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3513 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3514 if (UNTAG_Bool(REGB0)) {
3515 /* compiling/compiling_icode.nit:441 */
3516 if (!once_value_3) {
3517 fra.me.REG[3] = BOX_NativeString("} else {");
3518 REGB0 = TAG_Int(8);
3519 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3520 once_value_3 = fra.me.REG[3];
3521 register_static_object(&once_value_3);
3522 } else fra.me.REG[3] = once_value_3;
3523 fra.me.REG[3] = fra.me.REG[3];
3524 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3525 /* compiling/compiling_icode.nit:442 */
3526 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3527 /* compiling/compiling_icode.nit:443 */
3528 fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3529 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3530 /* compiling/compiling_icode.nit:444 */
3531 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3532 }
3533 /* compiling/compiling_icode.nit:446 */
3534 if (!once_value_4) {
3535 fra.me.REG[0] = BOX_NativeString("}");
3536 REGB0 = TAG_Int(1);
3537 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3538 once_value_4 = fra.me.REG[0];
3539 register_static_object(&once_value_4);
3540 } else fra.me.REG[0] = once_value_4;
3541 fra.me.REG[0] = fra.me.REG[0];
3542 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3543 stack_frame_head = fra.me.prev;
3544 return;
3545 }
3546 static const char LOCATE_compiling___compiling_icode___ILoop___compile_to_c[] = "compiling_icode::ILoop::(compiling_icode::ICode::compile_to_c)";
3547 void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
3548 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3549 val_t REGB0;
3550 val_t REGB1;
3551 val_t tmp;
3552 static val_t once_value_1; /* Once value */
3553 static val_t once_value_3; /* Once value */
3554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3555 fra.me.file = LOCATE_compiling___compiling_icode;
3556 fra.me.line = 451;
3557 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3558 fra.me.has_broke = 0;
3559 fra.me.REG_size = 4;
3560 fra.me.nitni_local_ref_head = NULL;
3561 fra.me.REG[0] = NIT_NULL;
3562 fra.me.REG[1] = NIT_NULL;
3563 fra.me.REG[2] = NIT_NULL;
3564 fra.me.REG[3] = NIT_NULL;
3565 fra.me.REG[0] = p0;
3566 fra.me.REG[1] = p1;
3567 /* compiling/compiling_icode.nit:453 */
3568 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3569 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3570 /* compiling/compiling_icode.nit:454 */
3571 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3573 /* compiling/compiling_icode.nit:455 */
3574 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3575 /* compiling/compiling_icode.nit:456 */
3576 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3577 if (UNTAG_Bool(REGB0)) {
3578 } else {
3579 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3580 if (UNTAG_Bool(REGB1)) {
3581 REGB1 = TAG_Bool(0);
3582 REGB0 = REGB1;
3583 } else {
3584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3585 REGB0 = REGB1;
3586 }
3587 }
3588 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3589 if (UNTAG_Bool(REGB0)) {
3590 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3591 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3592 }
3593 /* compiling/compiling_icode.nit:457 */
3594 if (!once_value_1) {
3595 fra.me.REG[2] = BOX_NativeString("while(1) {");
3596 REGB0 = TAG_Int(10);
3597 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3598 once_value_1 = fra.me.REG[2];
3599 register_static_object(&once_value_1);
3600 } else fra.me.REG[2] = once_value_1;
3601 fra.me.REG[2] = fra.me.REG[2];
3602 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3603 /* compiling/compiling_icode.nit:458 */
3604 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3605 /* compiling/compiling_icode.nit:459 */
3606 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3607 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));
3608 /* compiling/compiling_icode.nit:462 */
3609 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3610 /* compiling/compiling_icode.nit:463 */
3611 if (!once_value_3) {
3612 fra.me.REG[2] = BOX_NativeString("}");
3613 REGB0 = TAG_Int(1);
3614 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3615 once_value_3 = fra.me.REG[2];
3616 register_static_object(&once_value_3);
3617 } else fra.me.REG[2] = once_value_3;
3618 fra.me.REG[2] = fra.me.REG[2];
3619 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3620 /* compiling/compiling_icode.nit:464 */
3621 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3622 stack_frame_head = fra.me.prev;
3623 return;
3624 }
3625 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){
3626 struct {struct stack_frame_t me;} fra;
3627 fun_t CREG[1];
3628 val_t tmp;
3629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3630 fra.me.file = LOCATE_compiling___compiling_icode;
3631 fra.me.line = 0;
3632 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3633 fra.me.has_broke = 0;
3634 fra.me.REG_size = 1;
3635 fra.me.nitni_local_ref_head = NULL;
3636 fra.me.REG[0] = NIT_NULL;
3637 fra.me.closure_ctx = closctx_param;
3638 fra.me.closure_funs = CREG;
3639 fra.me.REG[0] = p0;
3640 CREG[0] = clos_fun0;
3641 /* compiling/compiling_icode.nit:460 */
3642 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3643 stack_frame_head = fra.me.prev;
3644 return;
3645 }
3646 static const char LOCATE_compiling___compiling_icode___IEscape___compile_to_c[] = "compiling_icode::IEscape::(compiling_icode::ICode::compile_to_c)";
3647 void compiling___compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){
3648 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3649 val_t tmp;
3650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3651 fra.me.file = LOCATE_compiling___compiling_icode;
3652 fra.me.line = 469;
3653 fra.me.meth = LOCATE_compiling___compiling_icode___IEscape___compile_to_c;
3654 fra.me.has_broke = 0;
3655 fra.me.REG_size = 3;
3656 fra.me.nitni_local_ref_head = NULL;
3657 fra.me.REG[0] = NIT_NULL;
3658 fra.me.REG[1] = NIT_NULL;
3659 fra.me.REG[2] = NIT_NULL;
3660 fra.me.REG[0] = p0;
3661 fra.me.REG[1] = p1;
3662 /* compiling/compiling_icode.nit:471 */
3663 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3664 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3665 /* compiling/compiling_icode.nit:472 */
3666 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3667 fra.me.REG[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3668 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3669 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3670 stack_frame_head = fra.me.prev;
3671 return;
3672 }
3673 static const char LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c[] = "compiling_icode::IAbsCall::(compiling_icode::ICode::compile_to_c)";
3674 void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
3675 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
3676 val_t REGB0;
3677 val_t REGB1;
3678 val_t tmp;
3679 static val_t once_value_1; /* Once value */
3680 static val_t once_value_2; /* Once value */
3681 static val_t once_value_5; /* Once value */
3682 static val_t once_value_6; /* Once value */
3683 static val_t once_value_7; /* Once value */
3684 static val_t once_value_8; /* Once value */
3685 static val_t once_value_9; /* Once value */
3686 static val_t once_value_10; /* Once value */
3687 static val_t once_value_11; /* Once value */
3688 static val_t once_value_12; /* Once value */
3689 static val_t once_value_13; /* Once value */
3690 static val_t once_value_14; /* Once value */
3691 static val_t once_value_15; /* Once value */
3692 static val_t once_value_16; /* Once value */
3693 static val_t once_value_18; /* Once value */
3694 static val_t once_value_19; /* Once value */
3695 static val_t once_value_20; /* Once value */
3696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3697 fra.me.file = LOCATE_compiling___compiling_icode;
3698 fra.me.line = 477;
3699 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
3700 fra.me.has_broke = 0;
3701 fra.me.REG_size = 10;
3702 fra.me.nitni_local_ref_head = NULL;
3703 fra.me.REG[0] = NIT_NULL;
3704 fra.me.REG[1] = NIT_NULL;
3705 fra.me.REG[2] = NIT_NULL;
3706 fra.me.REG[3] = NIT_NULL;
3707 fra.me.REG[4] = NIT_NULL;
3708 fra.me.REG[5] = NIT_NULL;
3709 fra.me.REG[6] = NIT_NULL;
3710 fra.me.REG[7] = NIT_NULL;
3711 fra.me.REG[8] = NIT_NULL;
3712 fra.me.REG[9] = NIT_NULL;
3713 fra.me.REG[0] = p0;
3714 fra.me.REG[1] = p1;
3715 /* compiling/compiling_icode.nit:477 */
3716 fra.me.REG[2] = fra.me.REG[0];
3717 /* compiling/compiling_icode.nit:479 */
3718 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
3719 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3720 /* compiling/compiling_icode.nit:480 */
3721 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[2])(fra.me.REG[2]);
3722 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3723 /* compiling/compiling_icode.nit:483 */
3724 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3725 /* compiling/compiling_icode.nit:484 */
3726 fra.me.REG[5] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
3727 /* compiling/compiling_icode.nit:485 */
3728 fra.me.REG[6] = NIT_NULL;
3729 /* compiling/compiling_icode.nit:486 */
3730 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3731 if (UNTAG_Bool(REGB0)) {
3732 } else {
3733 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3734 if (UNTAG_Bool(REGB1)) {
3735 REGB1 = TAG_Bool(0);
3736 REGB0 = REGB1;
3737 } else {
3738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3739 REGB0 = REGB1;
3740 }
3741 }
3742 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3743 if (UNTAG_Bool(REGB0)) {
3744 /* compiling/compiling_icode.nit:488 */
3745 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3746 if (UNTAG_Bool(REGB0)) {
3747 /* compiling/compiling_icode.nit:489 */
3748 if (!once_value_1) {
3749 fra.me.REG[7] = BOX_NativeString("closctx");
3750 REGB0 = TAG_Int(7);
3751 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3752 once_value_1 = fra.me.REG[7];
3753 register_static_object(&once_value_1);
3754 } else fra.me.REG[7] = once_value_1;
3755 fra.me.REG[7] = fra.me.REG[7];
3756 fra.me.REG[6] = fra.me.REG[7];
3757 } else {
3758 /* compiling/compiling_icode.nit:491 */
3759 if (!once_value_2) {
3760 fra.me.REG[7] = BOX_NativeString("(&(fra.me))");
3761 REGB0 = TAG_Int(11);
3762 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3763 once_value_2 = fra.me.REG[7];
3764 register_static_object(&once_value_2);
3765 } else fra.me.REG[7] = once_value_2;
3766 fra.me.REG[7] = fra.me.REG[7];
3767 fra.me.REG[6] = fra.me.REG[7];
3768 }
3769 /* compiling/compiling_icode.nit:495 */
3770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3771 /* compiling/compiling_icode.nit:498 */
3772 fra.me.REG[7] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
3773 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3774 /* compiling/compiling_icode.nit:501 */
3775 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3776 if (UNTAG_Bool(REGB0)) {
3777 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 501);
3778 }
3779 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));
3780 }
3781 /* compiling/compiling_icode.nit:512 */
3782 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]);
3783 /* compiling/compiling_icode.nit:513 */
3784 fra.me.REG[5] = fra.me.REG[3];
3785 /* compiling/compiling_icode.nit:516 */
3786 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3787 if (UNTAG_Bool(REGB0)) {
3788 } else {
3789 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3790 if (UNTAG_Bool(REGB1)) {
3791 REGB1 = TAG_Bool(0);
3792 REGB0 = REGB1;
3793 } else {
3794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3795 REGB0 = REGB1;
3796 }
3797 }
3798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3799 if (UNTAG_Bool(REGB0)) {
3800 /* compiling/compiling_icode.nit:517 */
3801 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3802 /* compiling/compiling_icode.nit:518 */
3803 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3804 /* compiling/compiling_icode.nit:520 */
3805 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[7])(fra.me.REG[7]);
3806 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3807 if (UNTAG_Bool(REGB0)) {
3808 /* compiling/compiling_icode.nit:522 */
3809 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3810 /* compiling/compiling_icode.nit:523 */
3811 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
3812 if (UNTAG_Bool(REGB0)) {
3813 /* compiling/compiling_icode.nit:524 */
3814 if (!once_value_5) {
3815 fra.me.REG[8] = BOX_NativeString("tmp");
3816 REGB0 = TAG_Int(3);
3817 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3818 once_value_5 = fra.me.REG[8];
3819 register_static_object(&once_value_5);
3820 } else fra.me.REG[8] = once_value_5;
3821 fra.me.REG[8] = fra.me.REG[8];
3822 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3823 /* compiling/compiling_icode.nit:525 */
3824 if (!once_value_6) {
3825 fra.me.REG[8] = BOX_NativeString(" = ");
3826 REGB0 = TAG_Int(3);
3827 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3828 once_value_6 = fra.me.REG[8];
3829 register_static_object(&once_value_6);
3830 } else fra.me.REG[8] = once_value_6;
3831 fra.me.REG[8] = fra.me.REG[8];
3832 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3833 /* compiling/compiling_icode.nit:526 */
3834 CALL_compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3835 /* compiling/compiling_icode.nit:527 */
3836 if (!once_value_7) {
3837 fra.me.REG[8] = BOX_NativeString(";\n");
3838 REGB0 = TAG_Int(2);
3839 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3840 once_value_7 = fra.me.REG[8];
3841 register_static_object(&once_value_7);
3842 } else fra.me.REG[8] = once_value_7;
3843 fra.me.REG[8] = fra.me.REG[8];
3844 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3845 /* compiling/compiling_icode.nit:528 */
3846 fra.me.REG[8] = NEW_Writer_compiling_writer___Writer___init();
3847 fra.me.REG[5] = fra.me.REG[8];
3848 /* compiling/compiling_icode.nit:529 */
3849 if (!once_value_8) {
3850 fra.me.REG[8] = BOX_NativeString("tmp");
3851 REGB0 = TAG_Int(3);
3852 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3853 once_value_8 = fra.me.REG[8];
3854 register_static_object(&once_value_8);
3855 } else fra.me.REG[8] = once_value_8;
3856 fra.me.REG[8] = fra.me.REG[8];
3857 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3858 if (UNTAG_Bool(REGB0)) {
3859 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 529);
3860 }
3861 CALL_compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
3862 } else {
3863 /* compiling/compiling_icode.nit:531 */
3864 fra.me.REG[5] = NIT_NULL;
3865 /* compiling/compiling_icode.nit:532 */
3866 CALL_compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3867 /* compiling/compiling_icode.nit:533 */
3868 if (!once_value_9) {
3869 fra.me.REG[3] = BOX_NativeString(";\n");
3870 REGB0 = TAG_Int(2);
3871 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3872 once_value_9 = fra.me.REG[3];
3873 register_static_object(&once_value_9);
3874 } else fra.me.REG[3] = once_value_9;
3875 fra.me.REG[3] = fra.me.REG[3];
3876 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3877 }
3878 /* compiling/compiling_icode.nit:536 */
3879 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3880 if (!once_value_10) {
3881 fra.me.REG[4] = BOX_NativeString("switch (");
3882 REGB0 = TAG_Int(8);
3883 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3884 once_value_10 = fra.me.REG[4];
3885 register_static_object(&once_value_10);
3886 } else fra.me.REG[4] = once_value_10;
3887 fra.me.REG[4] = fra.me.REG[4];
3888 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3889 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
3890 if (!once_value_11) {
3891 fra.me.REG[3] = BOX_NativeString("->has_broke) {\n");
3892 REGB0 = TAG_Int(15);
3893 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3894 once_value_11 = fra.me.REG[3];
3895 register_static_object(&once_value_11);
3896 } else fra.me.REG[3] = once_value_11;
3897 fra.me.REG[3] = fra.me.REG[3];
3898 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3899 /* compiling/compiling_icode.nit:537 */
3900 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3901 /* compiling/compiling_icode.nit:539 */
3902 if (!once_value_12) {
3903 fra.me.REG[3] = BOX_NativeString("case 0: break;");
3904 REGB0 = TAG_Int(14);
3905 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3906 once_value_12 = fra.me.REG[3];
3907 register_static_object(&once_value_12);
3908 } else fra.me.REG[3] = once_value_12;
3909 fra.me.REG[3] = fra.me.REG[3];
3910 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3911 /* compiling/compiling_icode.nit:540 */
3912 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3913 /* compiling/compiling_icode.nit:541 */
3914 fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[7])(fra.me.REG[7]);
3915 /* compiling/compiling_icode.nit:542 */
3916 REGB0 = TAG_Bool(0);
3917 /* compiling/compiling_icode.nit:543 */
3918 while(1) {
3919 REGB1 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[7])(fra.me.REG[7]);
3920 if (UNTAG_Bool(REGB1)) {
3921 /* compiling/compiling_icode.nit:544 */
3922 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[7])(fra.me.REG[7]);
3923 /* compiling/compiling_icode.nit:545 */
3924 REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3925 if (UNTAG_Bool(REGB1)) {
3926 /* compiling/compiling_icode.nit:548 */
3927 fra.me.REG[8] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3928 if (!once_value_13) {
3929 fra.me.REG[9] = BOX_NativeString("case ");
3930 REGB1 = TAG_Int(5);
3931 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3932 once_value_13 = fra.me.REG[9];
3933 register_static_object(&once_value_13);
3934 } else fra.me.REG[9] = once_value_13;
3935 fra.me.REG[9] = fra.me.REG[9];
3936 fra.me.REG[9] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3937 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[7])(fra.me.REG[7]);
3938 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3939 if (UNTAG_Bool(REGB1)) {
3940 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 548);
3941 }
3942 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3943 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3944 if (!once_value_14) {
3945 fra.me.REG[9] = BOX_NativeString(": ");
3946 REGB1 = TAG_Int(2);
3947 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3948 once_value_14 = fra.me.REG[9];
3949 register_static_object(&once_value_14);
3950 } else fra.me.REG[9] = once_value_14;
3951 fra.me.REG[9] = fra.me.REG[9];
3952 fra.me.REG[9] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3953 fra.me.REG[9] = CALL_compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
3954 if (!once_value_15) {
3955 fra.me.REG[8] = BOX_NativeString("->has_broke = 0; goto ");
3956 REGB1 = TAG_Int(22);
3957 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3958 once_value_15 = fra.me.REG[8];
3959 register_static_object(&once_value_15);
3960 } else fra.me.REG[8] = once_value_15;
3961 fra.me.REG[8] = fra.me.REG[8];
3962 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3963 fra.me.REG[9] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3964 fra.me.REG[9] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3965 if (!once_value_16) {
3966 fra.me.REG[8] = BOX_NativeString(";\n");
3967 REGB1 = TAG_Int(2);
3968 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3969 once_value_16 = fra.me.REG[8];
3970 register_static_object(&once_value_16);
3971 } else fra.me.REG[8] = once_value_16;
3972 fra.me.REG[8] = fra.me.REG[8];
3973 CALL_compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3974 } else {
3975 /* compiling/compiling_icode.nit:551 */
3976 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3977 if (UNTAG_Bool(REGB1)) {
3978 } else {
3979 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 551);
3980 }
3981 /* compiling/compiling_icode.nit:552 */
3982 CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3983 /* compiling/compiling_icode.nit:553 */
3984 REGB1 = TAG_Bool(1);
3985 REGB0 = REGB1;
3986 }
3987 /* compiling/compiling_icode.nit:555 */
3988 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[7])(fra.me.REG[7]);
3989 } else {
3990 /* compiling/compiling_icode.nit:543 */
3991 goto label17;
3992 }
3993 }
3994 label17: while(0);
3995 /* compiling/compiling_icode.nit:558 */
3996 if (UNTAG_Bool(REGB0)) {
3997 /* compiling/compiling_icode.nit:561 */
3998 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3999 if (!once_value_18) {
4000 fra.me.REG[6] = BOX_NativeString("default: goto ");
4001 REGB0 = TAG_Int(14);
4002 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
4003 once_value_18 = fra.me.REG[6];
4004 register_static_object(&once_value_18);
4005 } else fra.me.REG[6] = once_value_18;
4006 fra.me.REG[6] = fra.me.REG[6];
4007 fra.me.REG[6] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
4008 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
4009 REGB0 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
4010 if (UNTAG_Bool(REGB0)) {
4011 } else {
4012 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 561);
4013 }
4014 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4015 fra.me.REG[7] = CALL_compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4016 if (!once_value_19) {
4017 fra.me.REG[6] = BOX_NativeString(";\n");
4018 REGB0 = TAG_Int(2);
4019 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
4020 once_value_19 = fra.me.REG[6];
4021 register_static_object(&once_value_19);
4022 } else fra.me.REG[6] = once_value_19;
4023 fra.me.REG[6] = fra.me.REG[6];
4024 CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
4025 }
4026 /* compiling/compiling_icode.nit:563 */
4027 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
4028 /* compiling/compiling_icode.nit:564 */
4029 if (!once_value_20) {
4030 fra.me.REG[6] = BOX_NativeString("}");
4031 REGB0 = TAG_Int(1);
4032 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
4033 once_value_20 = fra.me.REG[6];
4034 register_static_object(&once_value_20);
4035 } else fra.me.REG[6] = once_value_20;
4036 fra.me.REG[6] = fra.me.REG[6];
4037 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
4038 }
4039 }
4040 /* compiling/compiling_icode.nit:568 */
4041 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4042 if (UNTAG_Bool(REGB0)) {
4043 } else {
4044 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4045 if (UNTAG_Bool(REGB1)) {
4046 REGB1 = TAG_Bool(0);
4047 REGB0 = REGB1;
4048 } else {
4049 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4050 REGB0 = REGB1;
4051 }
4052 }
4053 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4054 if (UNTAG_Bool(REGB0)) {
4055 /* compiling/compiling_icode.nit:569 */
4056 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4057 /* compiling/compiling_icode.nit:570 */
4058 CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
4059 }
4060 stack_frame_head = fra.me.prev;
4061 return;
4062 }
4063 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){
4064 struct {struct stack_frame_t me;} fra;
4065 val_t REGB0;
4066 val_t REGB1;
4067 fun_t CREG[1];
4068 val_t tmp;
4069 static val_t once_value_4; /* Once value */
4070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4071 fra.me.file = LOCATE_compiling___compiling_icode;
4072 fra.me.line = 0;
4073 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
4074 fra.me.has_broke = 0;
4075 fra.me.REG_size = 1;
4076 fra.me.nitni_local_ref_head = NULL;
4077 fra.me.REG[0] = NIT_NULL;
4078 fra.me.closure_ctx = closctx_param;
4079 fra.me.closure_funs = CREG;
4080 fra.me.REG[0] = p0;
4081 CREG[0] = clos_fun0;
4082 /* compiling/compiling_icode.nit:502 */
4083 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4084 if (UNTAG_Bool(REGB0)) {
4085 } else {
4086 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4087 if (UNTAG_Bool(REGB1)) {
4088 REGB1 = TAG_Bool(0);
4089 REGB0 = REGB1;
4090 } else {
4091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4092 REGB0 = REGB1;
4093 }
4094 }
4095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4096 if (UNTAG_Bool(REGB0)) {
4097 /* compiling/compiling_icode.nit:503 */
4098 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4099 if (UNTAG_Bool(REGB0)) {
4100 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 503);
4101 }
4102 fra.me.REG[0] = CALL_compiling___compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
4103 /* compiling/compiling_icode.nit:504 */
4104 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4105 } else {
4106 /* compiling/compiling_icode.nit:506 */
4107 if (!once_value_4) {
4108 fra.me.REG[0] = BOX_NativeString("NULL");
4109 REGB0 = TAG_Int(4);
4110 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4111 once_value_4 = fra.me.REG[0];
4112 register_static_object(&once_value_4);
4113 } else fra.me.REG[0] = once_value_4;
4114 fra.me.REG[0] = fra.me.REG[0];
4115 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4116 }
4117 stack_frame_head = fra.me.prev;
4118 return;
4119 }
4120 static const char LOCATE_compiling___compiling_icode___IAbsCall___compile_call_to_c[] = "compiling_icode::IAbsCall::compile_call_to_c";
4121 val_t compiling___compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4122 struct {struct stack_frame_t me;} fra;
4123 val_t tmp;
4124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4125 fra.me.file = LOCATE_compiling___compiling_icode;
4126 fra.me.line = 574;
4127 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_call_to_c;
4128 fra.me.has_broke = 0;
4129 fra.me.REG_size = 0;
4130 fra.me.nitni_local_ref_head = NULL;
4131 /* compiling/compiling_icode.nit:574 */
4132 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 574);
4133 stack_frame_head = fra.me.prev;
4134 return NIT_NULL;
4135 }
4136 static const char LOCATE_compiling___compiling_icode___ICall___compile_call_to_c[] = "compiling_icode::ICall::(compiling_icode::IAbsCall::compile_call_to_c)";
4137 val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4138 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4139 val_t REGB0;
4140 val_t tmp;
4141 static val_t once_value_2; /* Once value */
4142 static val_t once_value_3; /* Once value */
4143 static val_t once_value_4; /* Once value */
4144 static val_t once_value_5; /* Once value */
4145 static val_t once_value_6; /* Once value */
4146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4147 fra.me.file = LOCATE_compiling___compiling_icode;
4148 fra.me.line = 579;
4149 fra.me.meth = LOCATE_compiling___compiling_icode___ICall___compile_call_to_c;
4150 fra.me.has_broke = 0;
4151 fra.me.REG_size = 5;
4152 fra.me.nitni_local_ref_head = NULL;
4153 fra.me.REG[0] = NIT_NULL;
4154 fra.me.REG[1] = NIT_NULL;
4155 fra.me.REG[2] = NIT_NULL;
4156 fra.me.REG[3] = NIT_NULL;
4157 fra.me.REG[4] = NIT_NULL;
4158 fra.me.REG[0] = p0;
4159 fra.me.REG[1] = p1;
4160 fra.me.REG[2] = p2;
4161 /* compiling/compiling_icode.nit:581 */
4162 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4163 /* compiling/compiling_icode.nit:585 */
4164 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4165 if (UNTAG_Bool(REGB0)) {
4166 fra.me.REG[3] = fra.me.REG[1];
4167 goto label1;
4168 }
4169 /* compiling/compiling_icode.nit:587 */
4170 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4171 /* compiling/compiling_icode.nit:588 */
4172 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4173 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
4174 if (UNTAG_Bool(REGB0)) {
4175 if (!once_value_2) {
4176 fra.me.REG[4] = BOX_NativeString("init_table");
4177 REGB0 = TAG_Int(10);
4178 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4179 once_value_2 = fra.me.REG[4];
4180 register_static_object(&once_value_2);
4181 } else fra.me.REG[4] = once_value_2;
4182 fra.me.REG[4] = fra.me.REG[4];
4183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4184 }
4185 /* compiling/compiling_icode.nit:589 */
4186 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4187 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
4188 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4189 /* compiling/compiling_icode.nit:590 */
4190 if (!once_value_3) {
4191 fra.me.REG[0] = BOX_NativeString("(");
4192 REGB0 = TAG_Int(1);
4193 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4194 once_value_3 = fra.me.REG[0];
4195 register_static_object(&once_value_3);
4196 } else fra.me.REG[0] = once_value_3;
4197 fra.me.REG[0] = fra.me.REG[0];
4198 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4199 /* compiling/compiling_icode.nit:591 */
4200 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4201 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4202 /* compiling/compiling_icode.nit:592 */
4203 if (!once_value_4) {
4204 fra.me.REG[0] = BOX_NativeString(")(");
4205 REGB0 = TAG_Int(2);
4206 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4207 once_value_4 = fra.me.REG[0];
4208 register_static_object(&once_value_4);
4209 } else fra.me.REG[0] = once_value_4;
4210 fra.me.REG[0] = fra.me.REG[0];
4211 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4212 /* compiling/compiling_icode.nit:593 */
4213 if (!once_value_5) {
4214 fra.me.REG[0] = BOX_NativeString(", ");
4215 REGB0 = TAG_Int(2);
4216 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4217 once_value_5 = fra.me.REG[0];
4218 register_static_object(&once_value_5);
4219 } else fra.me.REG[0] = once_value_5;
4220 fra.me.REG[0] = fra.me.REG[0];
4221 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4222 /* compiling/compiling_icode.nit:594 */
4223 if (!once_value_6) {
4224 fra.me.REG[0] = BOX_NativeString(")");
4225 REGB0 = TAG_Int(1);
4226 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4227 once_value_6 = fra.me.REG[0];
4228 register_static_object(&once_value_6);
4229 } else fra.me.REG[0] = once_value_6;
4230 fra.me.REG[0] = fra.me.REG[0];
4231 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4232 /* compiling/compiling_icode.nit:595 */
4233 fra.me.REG[3] = fra.me.REG[1];
4234 goto label1;
4235 label1: while(0);
4236 stack_frame_head = fra.me.prev;
4237 return fra.me.REG[3];
4238 }
4239 static const char LOCATE_compiling___compiling_icode___ISuper___compile_call_to_c[] = "compiling_icode::ISuper::(compiling_icode::IAbsCall::compile_call_to_c)";
4240 val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4241 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4242 val_t REGB0;
4243 val_t tmp;
4244 static val_t once_value_2; /* Once value */
4245 static val_t once_value_3; /* Once value */
4246 static val_t once_value_4; /* Once value */
4247 static val_t once_value_5; /* Once value */
4248 static val_t once_value_6; /* Once value */
4249 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4250 fra.me.file = LOCATE_compiling___compiling_icode;
4251 fra.me.line = 600;
4252 fra.me.meth = LOCATE_compiling___compiling_icode___ISuper___compile_call_to_c;
4253 fra.me.has_broke = 0;
4254 fra.me.REG_size = 4;
4255 fra.me.nitni_local_ref_head = NULL;
4256 fra.me.REG[0] = NIT_NULL;
4257 fra.me.REG[1] = NIT_NULL;
4258 fra.me.REG[2] = NIT_NULL;
4259 fra.me.REG[3] = NIT_NULL;
4260 fra.me.REG[0] = p0;
4261 fra.me.REG[1] = p1;
4262 fra.me.REG[2] = p2;
4263 /* compiling/compiling_icode.nit:604 */
4264 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4265 if (UNTAG_Bool(REGB0)) {
4266 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4267 goto label1;
4268 }
4269 /* compiling/compiling_icode.nit:606 */
4270 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4271 /* compiling/compiling_icode.nit:607 */
4272 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4273 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4274 if (UNTAG_Bool(REGB0)) {
4275 if (!once_value_2) {
4276 fra.me.REG[3] = BOX_NativeString("init_table");
4277 REGB0 = TAG_Int(10);
4278 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4279 once_value_2 = fra.me.REG[3];
4280 register_static_object(&once_value_2);
4281 } else fra.me.REG[3] = once_value_2;
4282 fra.me.REG[3] = fra.me.REG[3];
4283 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4284 }
4285 /* compiling/compiling_icode.nit:608 */
4286 fra.me.REG[3] = NEW_Writer_compiling_writer___Writer___init();
4287 /* compiling/compiling_icode.nit:609 */
4288 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
4289 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4290 /* compiling/compiling_icode.nit:610 */
4291 if (!once_value_3) {
4292 fra.me.REG[0] = BOX_NativeString("(");
4293 REGB0 = TAG_Int(1);
4294 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4295 once_value_3 = fra.me.REG[0];
4296 register_static_object(&once_value_3);
4297 } else fra.me.REG[0] = once_value_3;
4298 fra.me.REG[0] = fra.me.REG[0];
4299 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4300 /* compiling/compiling_icode.nit:611 */
4301 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4302 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4303 /* compiling/compiling_icode.nit:612 */
4304 if (!once_value_4) {
4305 fra.me.REG[0] = BOX_NativeString(")(");
4306 REGB0 = TAG_Int(2);
4307 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4308 once_value_4 = fra.me.REG[0];
4309 register_static_object(&once_value_4);
4310 } else fra.me.REG[0] = once_value_4;
4311 fra.me.REG[0] = fra.me.REG[0];
4312 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4313 /* compiling/compiling_icode.nit:613 */
4314 if (!once_value_5) {
4315 fra.me.REG[0] = BOX_NativeString(", ");
4316 REGB0 = TAG_Int(2);
4317 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4318 once_value_5 = fra.me.REG[0];
4319 register_static_object(&once_value_5);
4320 } else fra.me.REG[0] = once_value_5;
4321 fra.me.REG[0] = fra.me.REG[0];
4322 CALL_compiling_writer___Writer___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4323 /* compiling/compiling_icode.nit:614 */
4324 if (!once_value_6) {
4325 fra.me.REG[0] = BOX_NativeString(")");
4326 REGB0 = TAG_Int(1);
4327 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4328 once_value_6 = fra.me.REG[0];
4329 register_static_object(&once_value_6);
4330 } else fra.me.REG[0] = once_value_6;
4331 fra.me.REG[0] = fra.me.REG[0];
4332 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4333 /* compiling/compiling_icode.nit:615 */
4334 fra.me.REG[1] = fra.me.REG[3];
4335 goto label1;
4336 label1: while(0);
4337 stack_frame_head = fra.me.prev;
4338 return fra.me.REG[1];
4339 }
4340 static const char LOCATE_compiling___compiling_icode___INew___compile_call_to_c[] = "compiling_icode::INew::(compiling_icode::IAbsCall::compile_call_to_c)";
4341 val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4342 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4343 val_t REGB0;
4344 val_t tmp;
4345 static val_t once_value_2; /* Once value */
4346 static val_t once_value_3; /* Once value */
4347 static val_t once_value_4; /* Once value */
4348 static val_t once_value_5; /* Once value */
4349 static val_t once_value_6; /* Once value */
4350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4351 fra.me.file = LOCATE_compiling___compiling_icode;
4352 fra.me.line = 620;
4353 fra.me.meth = LOCATE_compiling___compiling_icode___INew___compile_call_to_c;
4354 fra.me.has_broke = 0;
4355 fra.me.REG_size = 5;
4356 fra.me.nitni_local_ref_head = NULL;
4357 fra.me.REG[0] = NIT_NULL;
4358 fra.me.REG[1] = NIT_NULL;
4359 fra.me.REG[2] = NIT_NULL;
4360 fra.me.REG[3] = NIT_NULL;
4361 fra.me.REG[4] = NIT_NULL;
4362 fra.me.REG[0] = p0;
4363 fra.me.REG[1] = p1;
4364 fra.me.REG[2] = p2;
4365 /* compiling/compiling_icode.nit:622 */
4366 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4367 /* compiling/compiling_icode.nit:626 */
4368 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4369 if (UNTAG_Bool(REGB0)) {
4370 fra.me.REG[3] = fra.me.REG[1];
4371 goto label1;
4372 }
4373 /* compiling/compiling_icode.nit:628 */
4374 if (!once_value_2) {
4375 fra.me.REG[4] = BOX_NativeString("NEW_");
4376 REGB0 = TAG_Int(4);
4377 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4378 once_value_2 = fra.me.REG[4];
4379 register_static_object(&once_value_2);
4380 } else fra.me.REG[4] = once_value_2;
4381 fra.me.REG[4] = fra.me.REG[4];
4382 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4383 /* compiling/compiling_icode.nit:629 */
4384 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
4385 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
4386 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4387 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4388 /* compiling/compiling_icode.nit:630 */
4389 if (!once_value_3) {
4390 fra.me.REG[4] = BOX_NativeString("_");
4391 REGB0 = TAG_Int(1);
4392 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4393 once_value_3 = fra.me.REG[4];
4394 register_static_object(&once_value_3);
4395 } else fra.me.REG[4] = once_value_3;
4396 fra.me.REG[4] = fra.me.REG[4];
4397 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4398 /* compiling/compiling_icode.nit:631 */
4399 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4400 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4401 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
4402 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4403 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4404 /* compiling/compiling_icode.nit:632 */
4405 if (!once_value_4) {
4406 fra.me.REG[0] = BOX_NativeString("(");
4407 REGB0 = TAG_Int(1);
4408 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4409 once_value_4 = fra.me.REG[0];
4410 register_static_object(&once_value_4);
4411 } else fra.me.REG[0] = once_value_4;
4412 fra.me.REG[0] = fra.me.REG[0];
4413 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4414 /* compiling/compiling_icode.nit:633 */
4415 if (!once_value_5) {
4416 fra.me.REG[0] = BOX_NativeString(", ");
4417 REGB0 = TAG_Int(2);
4418 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4419 once_value_5 = fra.me.REG[0];
4420 register_static_object(&once_value_5);
4421 } else fra.me.REG[0] = once_value_5;
4422 fra.me.REG[0] = fra.me.REG[0];
4423 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4424 /* compiling/compiling_icode.nit:634 */
4425 if (!once_value_6) {
4426 fra.me.REG[0] = BOX_NativeString(")");
4427 REGB0 = TAG_Int(1);
4428 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4429 once_value_6 = fra.me.REG[0];
4430 register_static_object(&once_value_6);
4431 } else fra.me.REG[0] = once_value_6;
4432 fra.me.REG[0] = fra.me.REG[0];
4433 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4434 /* compiling/compiling_icode.nit:635 */
4435 fra.me.REG[3] = fra.me.REG[1];
4436 goto label1;
4437 label1: while(0);
4438 stack_frame_head = fra.me.prev;
4439 return fra.me.REG[3];
4440 }
4441 static const char LOCATE_compiling___compiling_icode___IAllocateInstance___compile_to_c[] = "compiling_icode::IAllocateInstance::(compiling_icode::ICode::compile_to_c)";
4442 void compiling___compiling_icode___IAllocateInstance___compile_to_c(val_t p0, val_t p1){
4443 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4444 val_t REGB0;
4445 val_t tmp;
4446 static val_t once_value_1; /* Once value */
4447 static val_t once_value_2; /* Once value */
4448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4449 fra.me.file = LOCATE_compiling___compiling_icode;
4450 fra.me.line = 640;
4451 fra.me.meth = LOCATE_compiling___compiling_icode___IAllocateInstance___compile_to_c;
4452 fra.me.has_broke = 0;
4453 fra.me.REG_size = 3;
4454 fra.me.nitni_local_ref_head = NULL;
4455 fra.me.REG[0] = NIT_NULL;
4456 fra.me.REG[1] = NIT_NULL;
4457 fra.me.REG[2] = NIT_NULL;
4458 fra.me.REG[0] = p0;
4459 fra.me.REG[1] = p1;
4460 /* compiling/compiling_icode.nit:642 */
4461 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4462 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4463 /* compiling/compiling_icode.nit:643 */
4464 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4465 /* compiling/compiling_icode.nit:644 */
4466 if (!once_value_1) {
4467 fra.me.REG[2] = BOX_NativeString("NEW_");
4468 REGB0 = TAG_Int(4);
4469 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
4470 once_value_1 = fra.me.REG[2];
4471 register_static_object(&once_value_1);
4472 } else fra.me.REG[2] = once_value_1;
4473 fra.me.REG[2] = fra.me.REG[2];
4474 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4475 /* compiling/compiling_icode.nit:645 */
4476 fra.me.REG[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4477 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
4478 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
4479 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4480 /* compiling/compiling_icode.nit:646 */
4481 if (!once_value_2) {
4482 fra.me.REG[0] = BOX_NativeString("()");
4483 REGB0 = TAG_Int(2);
4484 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4485 once_value_2 = fra.me.REG[0];
4486 register_static_object(&once_value_2);
4487 } else fra.me.REG[0] = once_value_2;
4488 fra.me.REG[0] = fra.me.REG[0];
4489 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4490 stack_frame_head = fra.me.prev;
4491 return;
4492 }
4493 static const char LOCATE_compiling___compiling_icode___ICheckInstance___compile_to_c[] = "compiling_icode::ICheckInstance::(compiling_icode::ICode::compile_to_c)";
4494 void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t p1){
4495 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4496 val_t REGB0;
4497 val_t tmp;
4498 static val_t once_value_1; /* Once value */
4499 static val_t once_value_2; /* Once value */
4500 static val_t once_value_3; /* Once value */
4501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4502 fra.me.file = LOCATE_compiling___compiling_icode;
4503 fra.me.line = 651;
4504 fra.me.meth = LOCATE_compiling___compiling_icode___ICheckInstance___compile_to_c;
4505 fra.me.has_broke = 0;
4506 fra.me.REG_size = 4;
4507 fra.me.nitni_local_ref_head = NULL;
4508 fra.me.REG[0] = NIT_NULL;
4509 fra.me.REG[1] = NIT_NULL;
4510 fra.me.REG[2] = NIT_NULL;
4511 fra.me.REG[3] = NIT_NULL;
4512 fra.me.REG[0] = p0;
4513 fra.me.REG[1] = p1;
4514 /* compiling/compiling_icode.nit:653 */
4515 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4516 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4517 /* compiling/compiling_icode.nit:654 */
4518 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4519 /* compiling/compiling_icode.nit:655 */
4520 if (!once_value_1) {
4521 fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
4522 REGB0 = TAG_Int(9);
4523 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4524 once_value_1 = fra.me.REG[3];
4525 register_static_object(&once_value_1);
4526 } else fra.me.REG[3] = once_value_1;
4527 fra.me.REG[3] = fra.me.REG[3];
4528 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4529 /* compiling/compiling_icode.nit:656 */
4530 fra.me.REG[3] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4531 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4532 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4533 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4534 /* compiling/compiling_icode.nit:657 */
4535 if (!once_value_2) {
4536 fra.me.REG[3] = BOX_NativeString("(");
4537 REGB0 = TAG_Int(1);
4538 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4539 once_value_2 = fra.me.REG[3];
4540 register_static_object(&once_value_2);
4541 } else fra.me.REG[3] = once_value_2;
4542 fra.me.REG[3] = fra.me.REG[3];
4543 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4544 /* compiling/compiling_icode.nit:658 */
4545 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4546 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4547 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4548 /* compiling/compiling_icode.nit:659 */
4549 if (!once_value_3) {
4550 fra.me.REG[0] = BOX_NativeString(")");
4551 REGB0 = TAG_Int(1);
4552 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4553 once_value_3 = fra.me.REG[0];
4554 register_static_object(&once_value_3);
4555 } else fra.me.REG[0] = once_value_3;
4556 fra.me.REG[0] = fra.me.REG[0];
4557 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4558 stack_frame_head = fra.me.prev;
4559 return;
4560 }
4561 static const char LOCATE_compiling___compiling_icode___IInitAttributes___compile_to_c[] = "compiling_icode::IInitAttributes::(compiling_icode::ICode::compile_to_c)";
4562 void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_t p1){
4563 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4564 val_t REGB0;
4565 val_t tmp;
4566 static val_t once_value_1; /* Once value */
4567 static val_t once_value_2; /* Once value */
4568 static val_t once_value_3; /* Once value */
4569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4570 fra.me.file = LOCATE_compiling___compiling_icode;
4571 fra.me.line = 664;
4572 fra.me.meth = LOCATE_compiling___compiling_icode___IInitAttributes___compile_to_c;
4573 fra.me.has_broke = 0;
4574 fra.me.REG_size = 4;
4575 fra.me.nitni_local_ref_head = NULL;
4576 fra.me.REG[0] = NIT_NULL;
4577 fra.me.REG[1] = NIT_NULL;
4578 fra.me.REG[2] = NIT_NULL;
4579 fra.me.REG[3] = NIT_NULL;
4580 fra.me.REG[0] = p0;
4581 fra.me.REG[1] = p1;
4582 /* compiling/compiling_icode.nit:666 */
4583 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4584 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4585 /* compiling/compiling_icode.nit:667 */
4586 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
4587 /* compiling/compiling_icode.nit:668 */
4588 if (!once_value_1) {
4589 fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__");
4590 REGB0 = TAG_Int(17);
4591 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4592 once_value_1 = fra.me.REG[3];
4593 register_static_object(&once_value_1);
4594 } else fra.me.REG[3] = once_value_1;
4595 fra.me.REG[3] = fra.me.REG[3];
4596 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4597 /* compiling/compiling_icode.nit:669 */
4598 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
4599 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4600 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4601 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4602 /* compiling/compiling_icode.nit:670 */
4603 if (!once_value_2) {
4604 fra.me.REG[3] = BOX_NativeString("(");
4605 REGB0 = TAG_Int(1);
4606 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4607 once_value_2 = fra.me.REG[3];
4608 register_static_object(&once_value_2);
4609 } else fra.me.REG[3] = once_value_2;
4610 fra.me.REG[3] = fra.me.REG[3];
4611 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4612 /* compiling/compiling_icode.nit:671 */
4613 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4614 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4615 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4616 /* compiling/compiling_icode.nit:672 */
4617 if (!once_value_3) {
4618 fra.me.REG[0] = BOX_NativeString(");\n");
4619 REGB0 = TAG_Int(3);
4620 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4621 once_value_3 = fra.me.REG[0];
4622 register_static_object(&once_value_3);
4623 } else fra.me.REG[0] = once_value_3;
4624 fra.me.REG[0] = fra.me.REG[0];
4625 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4626 stack_frame_head = fra.me.prev;
4627 return;
4628 }
4629 static const char LOCATE_compiling___compiling_icode___IStaticCall___compile_call_to_c[] = "compiling_icode::IStaticCall::(compiling_icode::IAbsCall::compile_call_to_c)";
4630 val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4631 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4632 val_t REGB0;
4633 val_t tmp;
4634 static val_t once_value_1; /* Once value */
4635 static val_t once_value_2; /* Once value */
4636 static val_t once_value_3; /* Once value */
4637 static val_t once_value_4; /* Once value */
4638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4639 fra.me.file = LOCATE_compiling___compiling_icode;
4640 fra.me.line = 677;
4641 fra.me.meth = LOCATE_compiling___compiling_icode___IStaticCall___compile_call_to_c;
4642 fra.me.has_broke = 0;
4643 fra.me.REG_size = 3;
4644 fra.me.nitni_local_ref_head = NULL;
4645 fra.me.REG[0] = NIT_NULL;
4646 fra.me.REG[1] = NIT_NULL;
4647 fra.me.REG[2] = NIT_NULL;
4648 fra.me.REG[0] = p0;
4649 fra.me.REG[1] = p1;
4650 fra.me.REG[2] = p2;
4651 /* compiling/compiling_icode.nit:679 */
4652 fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4653 /* compiling/compiling_icode.nit:680 */
4654 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
4655 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
4656 if (UNTAG_Bool(REGB0)) {
4657 if (!once_value_1) {
4658 fra.me.REG[1] = BOX_NativeString("init_table");
4659 REGB0 = TAG_Int(10);
4660 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
4661 once_value_1 = fra.me.REG[1];
4662 register_static_object(&once_value_1);
4663 } else fra.me.REG[1] = once_value_1;
4664 fra.me.REG[1] = fra.me.REG[1];
4665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4666 }
4667 /* compiling/compiling_icode.nit:681 */
4668 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4669 /* compiling/compiling_icode.nit:682 */
4670 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4671 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4672 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4673 /* compiling/compiling_icode.nit:683 */
4674 if (!once_value_2) {
4675 fra.me.REG[0] = BOX_NativeString("(");
4676 REGB0 = TAG_Int(1);
4677 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4678 once_value_2 = fra.me.REG[0];
4679 register_static_object(&once_value_2);
4680 } else fra.me.REG[0] = once_value_2;
4681 fra.me.REG[0] = fra.me.REG[0];
4682 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4683 /* compiling/compiling_icode.nit:684 */
4684 if (!once_value_3) {
4685 fra.me.REG[0] = BOX_NativeString(", ");
4686 REGB0 = TAG_Int(2);
4687 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4688 once_value_3 = fra.me.REG[0];
4689 register_static_object(&once_value_3);
4690 } else fra.me.REG[0] = once_value_3;
4691 fra.me.REG[0] = fra.me.REG[0];
4692 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4693 /* compiling/compiling_icode.nit:685 */
4694 if (!once_value_4) {
4695 fra.me.REG[0] = BOX_NativeString(")");
4696 REGB0 = TAG_Int(1);
4697 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4698 once_value_4 = fra.me.REG[0];
4699 register_static_object(&once_value_4);
4700 } else fra.me.REG[0] = once_value_4;
4701 fra.me.REG[0] = fra.me.REG[0];
4702 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4703 /* compiling/compiling_icode.nit:686 */
4704 goto label5;
4705 label5: while(0);
4706 stack_frame_head = fra.me.prev;
4707 return fra.me.REG[1];
4708 }
4709 static const char LOCATE_compiling___compiling_icode___INative___compile_to_c[] = "compiling_icode::INative::(compiling_icode::ICode::compile_to_c)";
4710 void compiling___compiling_icode___INative___compile_to_c(val_t p0, val_t p1){
4711 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4712 val_t REGB0;
4713 val_t tmp;
4714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4715 fra.me.file = LOCATE_compiling___compiling_icode;
4716 fra.me.line = 691;
4717 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_to_c;
4718 fra.me.has_broke = 0;
4719 fra.me.REG_size = 3;
4720 fra.me.nitni_local_ref_head = NULL;
4721 fra.me.REG[0] = NIT_NULL;
4722 fra.me.REG[1] = NIT_NULL;
4723 fra.me.REG[2] = NIT_NULL;
4724 fra.me.REG[0] = p0;
4725 fra.me.REG[1] = p1;
4726 /* compiling/compiling_icode.nit:693 */
4727 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4728 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4729 /* compiling/compiling_icode.nit:694 */
4730 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4731 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]);
4732 if (UNTAG_Bool(REGB0)) {
4733 /* compiling/compiling_icode.nit:695 */
4734 CALL_compiling___compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4735 } else {
4736 /* compiling/compiling_icode.nit:696 */
4737 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4738 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4739 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
4740 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4741 if (UNTAG_Bool(REGB0)) {
4742 /* compiling/compiling_icode.nit:697 */
4743 CALL_compiling___compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4744 }
4745 }
4746 stack_frame_head = fra.me.prev;
4747 return;
4748 }
4749 static const char LOCATE_compiling___compiling_icode___INative___compile_extern_method_to_c[] = "compiling_icode::INative::compile_extern_method_to_c";
4750 void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0, val_t p1){
4751 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4752 val_t REGB0;
4753 val_t REGB1;
4754 val_t REGB2;
4755 val_t REGB3;
4756 val_t REGB4;
4757 val_t tmp;
4758 static val_t once_value_1; /* Once value */
4759 static val_t once_value_2; /* Once value */
4760 static val_t once_value_6; /* Once value */
4761 static val_t once_value_7; /* Once value */
4762 static val_t once_value_8; /* Once value */
4763 static val_t once_value_9; /* Once value */
4764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4765 fra.me.file = LOCATE_compiling___compiling_icode;
4766 fra.me.line = 701;
4767 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_extern_method_to_c;
4768 fra.me.has_broke = 0;
4769 fra.me.REG_size = 7;
4770 fra.me.nitni_local_ref_head = NULL;
4771 fra.me.REG[0] = NIT_NULL;
4772 fra.me.REG[1] = NIT_NULL;
4773 fra.me.REG[2] = NIT_NULL;
4774 fra.me.REG[3] = NIT_NULL;
4775 fra.me.REG[4] = NIT_NULL;
4776 fra.me.REG[5] = NIT_NULL;
4777 fra.me.REG[6] = NIT_NULL;
4778 fra.me.REG[0] = p0;
4779 fra.me.REG[1] = p1;
4780 /* compiling/compiling_icode.nit:703 */
4781 REGB0 = TAG_Int(3);
4782 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4783 if (!once_value_1) {
4784 fra.me.REG[3] = BOX_NativeString("");
4785 REGB0 = TAG_Int(0);
4786 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4787 once_value_1 = fra.me.REG[3];
4788 register_static_object(&once_value_1);
4789 } else fra.me.REG[3] = once_value_1;
4790 fra.me.REG[3] = fra.me.REG[3];
4791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4792 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4793 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4794 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
4795 fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4797 if (!once_value_2) {
4798 fra.me.REG[4] = BOX_NativeString("___out");
4799 REGB0 = TAG_Int(6);
4800 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4801 once_value_2 = fra.me.REG[4];
4802 register_static_object(&once_value_2);
4803 } else fra.me.REG[4] = once_value_2;
4804 fra.me.REG[4] = fra.me.REG[4];
4805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4806 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4807 /* compiling/compiling_icode.nit:705 */
4808 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4809 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
4810 /* compiling/compiling_icode.nit:706 */
4811 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4812 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4813 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4814 if (UNTAG_Bool(REGB1)) {
4815 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 706);
4816 }
4817 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4818 REGB2 = TAG_Int(1);
4819 /* ../lib/standard/kernel.nit:238 */
4820 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4821 /* compiling/compiling_icode.nit:706 */
4822 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4823 if (UNTAG_Bool(REGB1)) {
4824 } else {
4825 /* ../lib/standard/kernel.nit:230 */
4826 REGB2 = TAG_Bool((REGB0)==(REGB2));
4827 /* compiling/compiling_icode.nit:706 */
4828 REGB1 = REGB2;
4829 }
4830 if (UNTAG_Bool(REGB1)) {
4831 } else {
4832 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 706);
4833 }
4834 /* compiling/compiling_icode.nit:708 */
4835 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4836 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4837 /* compiling/compiling_icode.nit:710 */
4838 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
4839 /* compiling/compiling_icode.nit:711 */
4840 REGB1 = TAG_Int(0);
4841 /* ../lib/standard/collection/array.nit:278 */
4842 fra.me.REG[6] = fra.me.REG[3];
4843 /* ../lib/standard/collection/array.nit:280 */
4844 REGB2 = TAG_Int(0);
4845 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4846 if (UNTAG_Bool(REGB0)) {
4847 } else {
4848 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4849 }
4850 /* ../lib/standard/kernel.nit:236 */
4851 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4852 /* ../lib/standard/collection/array.nit:280 */
4853 if (UNTAG_Bool(REGB2)) {
4854 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4855 if (UNTAG_Bool(REGB2)) {
4856 } else {
4857 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4858 }
4859 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
4860 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4861 if (UNTAG_Bool(REGB0)) {
4862 } else {
4863 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4864 }
4865 /* ../lib/standard/kernel.nit:235 */
4866 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4867 } else {
4868 /* ../lib/standard/collection/array.nit:280 */
4869 REGB0 = TAG_Bool(0);
4870 REGB2 = REGB0;
4871 }
4872 if (UNTAG_Bool(REGB2)) {
4873 } else {
4874 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
4875 }
4876 /* ../lib/standard/collection/array.nit:281 */
4877 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
4878 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4879 if (UNTAG_Bool(REGB2)) {
4880 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4881 }
4882 /* ../lib/standard/collection/array.nit:718 */
4883 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
4884 /* ../lib/standard/collection/array.nit:281 */
4885 goto label3;
4886 label3: while(0);
4887 /* compiling/compiling_icode.nit:711 */
4888 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4889 /* compiling/compiling_icode.nit:712 */
4890 REGB1 = TAG_Int(0);
4891 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4892 if (UNTAG_Bool(REGB2)) {
4893 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 712);
4894 }
4895 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4896 /* ../lib/standard/kernel.nit:355 */
4897 while(1) {
4898 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4899 if (UNTAG_Bool(REGB0)) {
4900 } else {
4901 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4902 }
4903 /* ../lib/standard/kernel.nit:235 */
4904 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4905 /* ../lib/standard/kernel.nit:355 */
4906 if (UNTAG_Bool(REGB0)) {
4907 /* compiling/compiling_icode.nit:712 */
4908 REGB0 = REGB1;
4909 /* compiling/compiling_icode.nit:713 */
4910 REGB3 = TAG_Int(1);
4911 /* ../lib/standard/kernel.nit:238 */
4912 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4913 /* ../lib/standard/collection/array.nit:278 */
4914 fra.me.REG[4] = fra.me.REG[3];
4915 /* ../lib/standard/collection/array.nit:280 */
4916 REGB0 = TAG_Int(0);
4917 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4918 if (UNTAG_Bool(REGB4)) {
4919 } else {
4920 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4921 }
4922 /* ../lib/standard/kernel.nit:236 */
4923 REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
4924 /* ../lib/standard/collection/array.nit:280 */
4925 if (UNTAG_Bool(REGB0)) {
4926 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4927 if (UNTAG_Bool(REGB0)) {
4928 } else {
4929 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4930 }
4931 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4932 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4933 if (UNTAG_Bool(REGB4)) {
4934 } else {
4935 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4936 }
4937 /* ../lib/standard/kernel.nit:235 */
4938 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
4939 } else {
4940 /* ../lib/standard/collection/array.nit:280 */
4941 REGB4 = TAG_Bool(0);
4942 REGB0 = REGB4;
4943 }
4944 if (UNTAG_Bool(REGB0)) {
4945 } else {
4946 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
4947 }
4948 /* ../lib/standard/collection/array.nit:281 */
4949 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4950 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4951 if (UNTAG_Bool(REGB0)) {
4952 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4953 }
4954 /* ../lib/standard/collection/array.nit:718 */
4955 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
4956 /* ../lib/standard/collection/array.nit:281 */
4957 goto label4;
4958 label4: while(0);
4959 /* compiling/compiling_icode.nit:713 */
4960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
4961 /* ../lib/standard/kernel.nit:357 */
4962 REGB3 = TAG_Int(1);
4963 /* ../lib/standard/kernel.nit:238 */
4964 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
4965 /* ../lib/standard/kernel.nit:357 */
4966 REGB1 = REGB3;
4967 } else {
4968 /* ../lib/standard/kernel.nit:355 */
4969 goto label5;
4970 }
4971 }
4972 label5: while(0);
4973 /* compiling/compiling_icode.nit:715 */
4974 REGB1 = TAG_Int(5);
4975 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4976 if (!once_value_6) {
4977 fra.me.REG[4] = BOX_NativeString("");
4978 REGB1 = TAG_Int(0);
4979 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
4980 once_value_6 = fra.me.REG[4];
4981 register_static_object(&once_value_6);
4982 } else fra.me.REG[4] = once_value_6;
4983 fra.me.REG[4] = fra.me.REG[4];
4984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4986 if (!once_value_7) {
4987 fra.me.REG[2] = BOX_NativeString("(");
4988 REGB1 = TAG_Int(1);
4989 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4990 once_value_7 = fra.me.REG[2];
4991 register_static_object(&once_value_7);
4992 } else fra.me.REG[2] = once_value_7;
4993 fra.me.REG[2] = fra.me.REG[2];
4994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4995 if (!once_value_8) {
4996 fra.me.REG[2] = BOX_NativeString(", ");
4997 REGB1 = TAG_Int(2);
4998 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4999 once_value_8 = fra.me.REG[2];
5000 register_static_object(&once_value_8);
5001 } else fra.me.REG[2] = once_value_8;
5002 fra.me.REG[2] = fra.me.REG[2];
5003 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
5004 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5005 if (!once_value_9) {
5006 fra.me.REG[2] = BOX_NativeString(")");
5007 REGB1 = TAG_Int(1);
5008 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
5009 once_value_9 = fra.me.REG[2];
5010 register_static_object(&once_value_9);
5011 } else fra.me.REG[2] = once_value_9;
5012 fra.me.REG[2] = fra.me.REG[2];
5013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5014 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
5015 /* compiling/compiling_icode.nit:717 */
5016 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
5017 if (UNTAG_Bool(REGB1)) {
5018 }
5019 /* compiling/compiling_icode.nit:718 */
5020 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5021 /* compiling/compiling_icode.nit:719 */
5022 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5023 stack_frame_head = fra.me.prev;
5024 return;
5025 }
5026 static const char LOCATE_compiling___compiling_icode___INative___compile_intern_method_to_c[] = "compiling_icode::INative::compile_intern_method_to_c";
5027 void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){
5028 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5029 val_t REGB0;
5030 val_t REGB1;
5031 val_t REGB2;
5032 val_t tmp;
5033 static val_t once_value_1; /* Once value */
5034 static val_t once_value_2; /* Once value */
5035 static val_t once_value_3; /* Once value */
5036 static val_t once_value_4; /* Once value */
5037 static val_t once_value_6; /* Once value */
5038 static val_t once_value_7; /* Once value */
5039 static val_t once_value_8; /* Once value */
5040 static val_t once_value_10; /* Once value */
5041 static val_t once_value_11; /* Once value */
5042 static val_t once_value_12; /* Once value */
5043 static val_t once_value_13; /* Once value */
5044 static val_t once_value_15; /* Once value */
5045 static val_t once_value_16; /* Once value */
5046 static val_t once_value_17; /* Once value */
5047 static val_t once_value_18; /* Once value */
5048 static val_t once_value_20; /* Once value */
5049 static val_t once_value_21; /* Once value */
5050 static val_t once_value_22; /* Once value */
5051 static val_t once_value_23; /* Once value */
5052 static val_t once_value_25; /* Once value */
5053 static val_t once_value_26; /* Once value */
5054 static val_t once_value_27; /* Once value */
5055 static val_t once_value_28; /* Once value */
5056 static val_t once_value_30; /* Once value */
5057 static val_t once_value_31; /* Once value */
5058 static val_t once_value_32; /* Once value */
5059 static val_t once_value_33; /* Once value */
5060 static val_t once_value_35; /* Once value */
5061 static val_t once_value_36; /* Once value */
5062 static val_t once_value_37; /* Once value */
5063 static val_t once_value_38; /* Once value */
5064 static val_t once_value_40; /* Once value */
5065 static val_t once_value_42; /* Once value */
5066 static val_t once_value_43; /* Once value */
5067 static val_t once_value_44; /* Once value */
5068 static val_t once_value_45; /* Once value */
5069 static val_t once_value_47; /* Once value */
5070 static val_t once_value_49; /* Once value */
5071 static val_t once_value_50; /* Once value */
5072 static val_t once_value_51; /* Once value */
5073 static val_t once_value_52; /* Once value */
5074 static val_t once_value_54; /* Once value */
5075 static val_t once_value_56; /* Once value */
5076 static val_t once_value_57; /* Once value */
5077 static val_t once_value_58; /* Once value */
5078 static val_t once_value_59; /* Once value */
5079 static val_t once_value_61; /* Once value */
5080 static val_t once_value_63; /* Once value */
5081 static val_t once_value_64; /* Once value */
5082 static val_t once_value_65; /* Once value */
5083 static val_t once_value_66; /* Once value */
5084 static val_t once_value_68; /* Once value */
5085 static val_t once_value_70; /* Once value */
5086 static val_t once_value_71; /* Once value */
5087 static val_t once_value_72; /* Once value */
5088 static val_t once_value_73; /* Once value */
5089 static val_t once_value_75; /* Once value */
5090 static val_t once_value_77; /* Once value */
5091 static val_t once_value_78; /* Once value */
5092 static val_t once_value_79; /* Once value */
5093 static val_t once_value_80; /* Once value */
5094 static val_t once_value_82; /* Once value */
5095 static val_t once_value_84; /* Once value */
5096 static val_t once_value_85; /* Once value */
5097 static val_t once_value_86; /* Once value */
5098 static val_t once_value_87; /* Once value */
5099 static val_t once_value_89; /* Once value */
5100 static val_t once_value_91; /* Once value */
5101 static val_t once_value_92; /* Once value */
5102 static val_t once_value_93; /* Once value */
5103 static val_t once_value_94; /* Once value */
5104 static val_t once_value_96; /* Once value */
5105 static val_t once_value_98; /* Once value */
5106 static val_t once_value_99; /* Once value */
5107 static val_t once_value_100; /* Once value */
5108 static val_t once_value_101; /* Once value */
5109 static val_t once_value_103; /* Once value */
5110 static val_t once_value_105; /* Once value */
5111 static val_t once_value_106; /* Once value */
5112 static val_t once_value_107; /* Once value */
5113 static val_t once_value_108; /* Once value */
5114 static val_t once_value_110; /* Once value */
5115 static val_t once_value_112; /* Once value */
5116 static val_t once_value_113; /* Once value */
5117 static val_t once_value_114; /* Once value */
5118 static val_t once_value_115; /* Once value */
5119 static val_t once_value_117; /* Once value */
5120 static val_t once_value_119; /* Once value */
5121 static val_t once_value_120; /* Once value */
5122 static val_t once_value_121; /* Once value */
5123 static val_t once_value_122; /* Once value */
5124 static val_t once_value_124; /* Once value */
5125 static val_t once_value_126; /* Once value */
5126 static val_t once_value_127; /* Once value */
5127 static val_t once_value_128; /* Once value */
5128 static val_t once_value_129; /* Once value */
5129 static val_t once_value_130; /* Once value */
5130 static val_t once_value_131; /* Once value */
5131 static val_t once_value_133; /* Once value */
5132 static val_t once_value_134; /* Once value */
5133 static val_t once_value_135; /* Once value */
5134 static val_t once_value_136; /* Once value */
5135 static val_t once_value_138; /* Once value */
5136 static val_t once_value_139; /* Once value */
5137 static val_t once_value_140; /* Once value */
5138 static val_t once_value_141; /* Once value */
5139 static val_t once_value_143; /* Once value */
5140 static val_t once_value_144; /* Once value */
5141 static val_t once_value_145; /* Once value */
5142 static val_t once_value_146; /* Once value */
5143 static val_t once_value_148; /* Once value */
5144 static val_t once_value_149; /* Once value */
5145 static val_t once_value_150; /* Once value */
5146 static val_t once_value_151; /* Once value */
5147 static val_t once_value_153; /* Once value */
5148 static val_t once_value_155; /* Once value */
5149 static val_t once_value_156; /* Once value */
5150 static val_t once_value_157; /* Once value */
5151 static val_t once_value_158; /* Once value */
5152 static val_t once_value_160; /* Once value */
5153 static val_t once_value_162; /* Once value */
5154 static val_t once_value_163; /* Once value */
5155 static val_t once_value_164; /* Once value */
5156 static val_t once_value_165; /* Once value */
5157 static val_t once_value_167; /* Once value */
5158 static val_t once_value_169; /* Once value */
5159 static val_t once_value_170; /* Once value */
5160 static val_t once_value_171; /* Once value */
5161 static val_t once_value_172; /* Once value */
5162 static val_t once_value_174; /* Once value */
5163 static val_t once_value_176; /* Once value */
5164 static val_t once_value_177; /* Once value */
5165 static val_t once_value_178; /* Once value */
5166 static val_t once_value_179; /* Once value */
5167 static val_t once_value_181; /* Once value */
5168 static val_t once_value_183; /* Once value */
5169 static val_t once_value_184; /* Once value */
5170 static val_t once_value_185; /* Once value */
5171 static val_t once_value_186; /* Once value */
5172 static val_t once_value_188; /* Once value */
5173 static val_t once_value_190; /* Once value */
5174 static val_t once_value_191; /* Once value */
5175 static val_t once_value_192; /* Once value */
5176 static val_t once_value_193; /* Once value */
5177 static val_t once_value_195; /* Once value */
5178 static val_t once_value_197; /* Once value */
5179 static val_t once_value_198; /* Once value */
5180 static val_t once_value_199; /* Once value */
5181 static val_t once_value_200; /* Once value */
5182 static val_t once_value_202; /* Once value */
5183 static val_t once_value_204; /* Once value */
5184 static val_t once_value_205; /* Once value */
5185 static val_t once_value_206; /* Once value */
5186 static val_t once_value_207; /* Once value */
5187 static val_t once_value_208; /* Once value */
5188 static val_t once_value_209; /* Once value */
5189 static val_t once_value_211; /* Once value */
5190 static val_t once_value_212; /* Once value */
5191 static val_t once_value_213; /* Once value */
5192 static val_t once_value_214; /* Once value */
5193 static val_t once_value_216; /* Once value */
5194 static val_t once_value_217; /* Once value */
5195 static val_t once_value_218; /* Once value */
5196 static val_t once_value_219; /* Once value */
5197 static val_t once_value_221; /* Once value */
5198 static val_t once_value_222; /* Once value */
5199 static val_t once_value_223; /* Once value */
5200 static val_t once_value_224; /* Once value */
5201 static val_t once_value_226; /* Once value */
5202 static val_t once_value_227; /* Once value */
5203 static val_t once_value_228; /* Once value */
5204 static val_t once_value_229; /* Once value */
5205 static val_t once_value_231; /* Once value */
5206 static val_t once_value_232; /* Once value */
5207 static val_t once_value_233; /* Once value */
5208 static val_t once_value_234; /* Once value */
5209 static val_t once_value_236; /* Once value */
5210 static val_t once_value_237; /* Once value */
5211 static val_t once_value_238; /* Once value */
5212 static val_t once_value_239; /* Once value */
5213 static val_t once_value_241; /* Once value */
5214 static val_t once_value_242; /* Once value */
5215 static val_t once_value_243; /* Once value */
5216 static val_t once_value_244; /* Once value */
5217 static val_t once_value_246; /* Once value */
5218 static val_t once_value_248; /* Once value */
5219 static val_t once_value_249; /* Once value */
5220 static val_t once_value_250; /* Once value */
5221 static val_t once_value_251; /* Once value */
5222 static val_t once_value_253; /* Once value */
5223 static val_t once_value_255; /* Once value */
5224 static val_t once_value_256; /* Once value */
5225 static val_t once_value_257; /* Once value */
5226 static val_t once_value_258; /* Once value */
5227 static val_t once_value_260; /* Once value */
5228 static val_t once_value_262; /* Once value */
5229 static val_t once_value_263; /* Once value */
5230 static val_t once_value_264; /* Once value */
5231 static val_t once_value_265; /* Once value */
5232 static val_t once_value_267; /* Once value */
5233 static val_t once_value_269; /* Once value */
5234 static val_t once_value_270; /* Once value */
5235 static val_t once_value_271; /* Once value */
5236 static val_t once_value_272; /* Once value */
5237 static val_t once_value_274; /* Once value */
5238 static val_t once_value_276; /* Once value */
5239 static val_t once_value_277; /* Once value */
5240 static val_t once_value_278; /* Once value */
5241 static val_t once_value_279; /* Once value */
5242 static val_t once_value_281; /* Once value */
5243 static val_t once_value_283; /* Once value */
5244 static val_t once_value_284; /* Once value */
5245 static val_t once_value_285; /* Once value */
5246 static val_t once_value_286; /* Once value */
5247 static val_t once_value_288; /* Once value */
5248 static val_t once_value_290; /* Once value */
5249 static val_t once_value_291; /* Once value */
5250 static val_t once_value_292; /* Once value */
5251 static val_t once_value_293; /* Once value */
5252 static val_t once_value_295; /* Once value */
5253 static val_t once_value_297; /* Once value */
5254 static val_t once_value_298; /* Once value */
5255 static val_t once_value_299; /* Once value */
5256 static val_t once_value_300; /* Once value */
5257 static val_t once_value_302; /* Once value */
5258 static val_t once_value_304; /* Once value */
5259 static val_t once_value_305; /* Once value */
5260 static val_t once_value_306; /* Once value */
5261 static val_t once_value_307; /* Once value */
5262 static val_t once_value_309; /* Once value */
5263 static val_t once_value_311; /* Once value */
5264 static val_t once_value_312; /* Once value */
5265 static val_t once_value_313; /* Once value */
5266 static val_t once_value_314; /* Once value */
5267 static val_t once_value_316; /* Once value */
5268 static val_t once_value_318; /* Once value */
5269 static val_t once_value_319; /* Once value */
5270 static val_t once_value_320; /* Once value */
5271 static val_t once_value_321; /* Once value */
5272 static val_t once_value_322; /* Once value */
5273 static val_t once_value_323; /* Once value */
5274 static val_t once_value_325; /* Once value */
5275 static val_t once_value_326; /* Once value */
5276 static val_t once_value_327; /* Once value */
5277 static val_t once_value_328; /* Once value */
5278 static val_t once_value_330; /* Once value */
5279 static val_t once_value_331; /* Once value */
5280 static val_t once_value_332; /* Once value */
5281 static val_t once_value_333; /* Once value */
5282 static val_t once_value_335; /* Once value */
5283 static val_t once_value_336; /* Once value */
5284 static val_t once_value_337; /* Once value */
5285 static val_t once_value_338; /* Once value */
5286 static val_t once_value_340; /* Once value */
5287 static val_t once_value_341; /* Once value */
5288 static val_t once_value_342; /* Once value */
5289 static val_t once_value_343; /* Once value */
5290 static val_t once_value_345; /* Once value */
5291 static val_t once_value_346; /* Once value */
5292 static val_t once_value_347; /* Once value */
5293 static val_t once_value_348; /* Once value */
5294 static val_t once_value_350; /* Once value */
5295 static val_t once_value_352; /* Once value */
5296 static val_t once_value_353; /* Once value */
5297 static val_t once_value_354; /* Once value */
5298 static val_t once_value_355; /* Once value */
5299 static val_t once_value_357; /* Once value */
5300 static val_t once_value_359; /* Once value */
5301 static val_t once_value_360; /* Once value */
5302 static val_t once_value_361; /* Once value */
5303 static val_t once_value_362; /* Once value */
5304 static val_t once_value_363; /* Once value */
5305 static val_t once_value_364; /* Once value */
5306 static val_t once_value_366; /* Once value */
5307 static val_t once_value_367; /* Once value */
5308 static val_t once_value_368; /* Once value */
5309 static val_t once_value_369; /* Once value */
5310 static val_t once_value_371; /* Once value */
5311 static val_t once_value_373; /* Once value */
5312 static val_t once_value_374; /* Once value */
5313 static val_t once_value_375; /* Once value */
5314 static val_t once_value_376; /* Once value */
5315 static val_t once_value_378; /* Once value */
5316 static val_t once_value_380; /* Once value */
5317 static val_t once_value_382; /* Once value */
5318 static val_t once_value_383; /* Once value */
5319 static val_t once_value_384; /* Once value */
5320 static val_t once_value_385; /* Once value */
5321 static val_t once_value_387; /* Once value */
5322 static val_t once_value_389; /* Once value */
5323 static val_t once_value_391; /* Once value */
5324 static val_t once_value_392; /* Once value */
5325 static val_t once_value_393; /* Once value */
5326 static val_t once_value_394; /* Once value */
5327 static val_t once_value_395; /* Once value */
5328 static val_t once_value_396; /* Once value */
5329 static val_t once_value_398; /* Once value */
5330 static val_t once_value_399; /* Once value */
5331 static val_t once_value_400; /* Once value */
5332 static val_t once_value_401; /* Once value */
5333 static val_t once_value_403; /* Once value */
5334 static val_t once_value_404; /* Once value */
5335 static val_t once_value_405; /* Once value */
5336 static val_t once_value_406; /* Once value */
5337 static val_t once_value_408; /* Once value */
5338 static val_t once_value_410; /* Once value */
5339 static val_t once_value_411; /* Once value */
5340 static val_t once_value_412; /* Once value */
5341 static val_t once_value_413; /* Once value */
5342 static val_t once_value_415; /* Once value */
5343 static val_t once_value_417; /* Once value */
5344 static val_t once_value_419; /* Once value */
5345 static val_t once_value_420; /* Once value */
5346 static val_t once_value_421; /* Once value */
5347 static val_t once_value_422; /* Once value */
5348 static val_t once_value_424; /* Once value */
5349 static val_t once_value_426; /* Once value */
5350 static val_t once_value_428; /* Once value */
5351 static val_t once_value_430; /* Once value */
5352 static val_t once_value_432; /* Once value */
5353 static val_t once_value_433; /* Once value */
5354 static val_t once_value_434; /* Once value */
5355 static val_t once_value_435; /* Once value */
5356 static val_t once_value_436; /* Once value */
5357 static val_t once_value_437; /* Once value */
5358 static val_t once_value_438; /* Once value */
5359 static val_t once_value_439; /* Once value */
5360 static val_t once_value_440; /* Once value */
5361 static val_t once_value_442; /* Once value */
5362 static val_t once_value_443; /* Once value */
5363 static val_t once_value_444; /* Once value */
5364 static val_t once_value_445; /* Once value */
5365 static val_t once_value_446; /* Once value */
5366 static val_t once_value_447; /* Once value */
5367 static val_t once_value_448; /* Once value */
5368 static val_t once_value_450; /* Once value */
5369 static val_t once_value_452; /* Once value */
5370 static val_t once_value_453; /* Once value */
5371 static val_t once_value_454; /* Once value */
5372 static val_t once_value_455; /* Once value */
5373 static val_t once_value_457; /* Once value */
5374 static val_t once_value_458; /* Once value */
5375 static val_t once_value_459; /* Once value */
5376 static val_t once_value_460; /* Once value */
5377 static val_t once_value_462; /* Once value */
5378 static val_t once_value_463; /* Once value */
5379 static val_t once_value_464; /* Once value */
5380 static val_t once_value_465; /* Once value */
5381 static val_t once_value_467; /* Once value */
5382 static val_t once_value_468; /* Once value */
5383 static val_t once_value_469; /* Once value */
5384 static val_t once_value_470; /* Once value */
5385 static val_t once_value_472; /* Once value */
5386 static val_t once_value_473; /* Once value */
5387 static val_t once_value_474; /* Once value */
5388 static val_t once_value_475; /* Once value */
5389 static val_t once_value_477; /* Once value */
5390 static val_t once_value_478; /* Once value */
5391 static val_t once_value_479; /* Once value */
5392 static val_t once_value_480; /* Once value */
5393 static val_t once_value_481; /* Once value */
5394 static val_t once_value_482; /* Once value */
5395 static val_t once_value_483; /* Once value */
5396 static val_t once_value_484; /* Once value */
5397 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5398 fra.me.file = LOCATE_compiling___compiling_icode;
5399 fra.me.line = 722;
5400 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_intern_method_to_c;
5401 fra.me.has_broke = 0;
5402 fra.me.REG_size = 8;
5403 fra.me.nitni_local_ref_head = NULL;
5404 fra.me.REG[0] = NIT_NULL;
5405 fra.me.REG[1] = NIT_NULL;
5406 fra.me.REG[2] = NIT_NULL;
5407 fra.me.REG[3] = NIT_NULL;
5408 fra.me.REG[4] = NIT_NULL;
5409 fra.me.REG[5] = NIT_NULL;
5410 fra.me.REG[6] = NIT_NULL;
5411 fra.me.REG[7] = NIT_NULL;
5412 fra.me.REG[0] = p0;
5413 fra.me.REG[1] = p1;
5414 /* compiling/compiling_icode.nit:724 */
5415 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5416 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5417 /* compiling/compiling_icode.nit:725 */
5418 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5419 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5420 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5421 if (UNTAG_Bool(REGB1)) {
5422 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 725);
5423 }
5424 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5425 REGB2 = TAG_Int(1);
5426 /* ../lib/standard/kernel.nit:238 */
5427 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5428 /* compiling/compiling_icode.nit:725 */
5429 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5430 if (UNTAG_Bool(REGB1)) {
5431 } else {
5432 /* ../lib/standard/kernel.nit:230 */
5433 REGB2 = TAG_Bool((REGB0)==(REGB2));
5434 /* compiling/compiling_icode.nit:725 */
5435 REGB1 = REGB2;
5436 }
5437 if (UNTAG_Bool(REGB1)) {
5438 } else {
5439 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 725);
5440 }
5441 /* compiling/compiling_icode.nit:726 */
5442 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5443 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5444 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5445 /* compiling/compiling_icode.nit:727 */
5446 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5447 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5448 /* compiling/compiling_icode.nit:728 */
5449 fra.me.REG[4] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5450 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5451 /* compiling/compiling_icode.nit:729 */
5452 fra.me.REG[5] = NIT_NULL;
5453 /* compiling/compiling_icode.nit:730 */
5454 if (!once_value_1) {
5455 if (!once_value_2) {
5456 fra.me.REG[6] = BOX_NativeString("Int");
5457 REGB1 = TAG_Int(3);
5458 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5459 once_value_2 = fra.me.REG[6];
5460 register_static_object(&once_value_2);
5461 } else fra.me.REG[6] = once_value_2;
5462 fra.me.REG[6] = fra.me.REG[6];
5463 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5464 once_value_1 = fra.me.REG[6];
5465 register_static_object(&once_value_1);
5466 } else fra.me.REG[6] = once_value_1;
5467 fra.me.REG[6] = fra.me.REG[6];
5468 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5469 if (UNTAG_Bool(REGB1)) {
5470 } else {
5471 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5472 REGB1 = REGB2;
5473 }
5474 if (UNTAG_Bool(REGB1)) {
5475 /* compiling/compiling_icode.nit:731 */
5476 if (!once_value_3) {
5477 if (!once_value_4) {
5478 fra.me.REG[6] = BOX_NativeString("object_id");
5479 REGB1 = TAG_Int(9);
5480 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5481 once_value_4 = fra.me.REG[6];
5482 register_static_object(&once_value_4);
5483 } else fra.me.REG[6] = once_value_4;
5484 fra.me.REG[6] = fra.me.REG[6];
5485 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5486 once_value_3 = fra.me.REG[6];
5487 register_static_object(&once_value_3);
5488 } else fra.me.REG[6] = once_value_3;
5489 fra.me.REG[6] = fra.me.REG[6];
5490 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5491 if (UNTAG_Bool(REGB1)) {
5492 } else {
5493 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5494 REGB1 = REGB2;
5495 }
5496 if (UNTAG_Bool(REGB1)) {
5497 /* compiling/compiling_icode.nit:732 */
5498 REGB1 = TAG_Int(0);
5499 /* ../lib/standard/collection/array.nit:278 */
5500 fra.me.REG[6] = fra.me.REG[4];
5501 /* ../lib/standard/collection/array.nit:280 */
5502 REGB2 = TAG_Int(0);
5503 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5504 if (UNTAG_Bool(REGB0)) {
5505 } else {
5506 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5507 }
5508 /* ../lib/standard/kernel.nit:236 */
5509 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5510 /* ../lib/standard/collection/array.nit:280 */
5511 if (UNTAG_Bool(REGB2)) {
5512 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5513 if (UNTAG_Bool(REGB2)) {
5514 } else {
5515 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5516 }
5517 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
5518 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5519 if (UNTAG_Bool(REGB0)) {
5520 } else {
5521 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5522 }
5523 /* ../lib/standard/kernel.nit:235 */
5524 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5525 } else {
5526 /* ../lib/standard/collection/array.nit:280 */
5527 REGB0 = TAG_Bool(0);
5528 REGB2 = REGB0;
5529 }
5530 if (UNTAG_Bool(REGB2)) {
5531 } else {
5532 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5533 }
5534 /* ../lib/standard/collection/array.nit:281 */
5535 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
5536 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5537 if (UNTAG_Bool(REGB2)) {
5538 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5539 }
5540 /* ../lib/standard/collection/array.nit:718 */
5541 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5542 /* ../lib/standard/collection/array.nit:281 */
5543 goto label5;
5544 label5: while(0);
5545 /* compiling/compiling_icode.nit:732 */
5546 fra.me.REG[5] = fra.me.REG[6];
5547 } else {
5548 /* compiling/compiling_icode.nit:733 */
5549 if (!once_value_6) {
5550 if (!once_value_7) {
5551 fra.me.REG[6] = BOX_NativeString("unary -");
5552 REGB1 = TAG_Int(7);
5553 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5554 once_value_7 = fra.me.REG[6];
5555 register_static_object(&once_value_7);
5556 } else fra.me.REG[6] = once_value_7;
5557 fra.me.REG[6] = fra.me.REG[6];
5558 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5559 once_value_6 = fra.me.REG[6];
5560 register_static_object(&once_value_6);
5561 } else fra.me.REG[6] = once_value_6;
5562 fra.me.REG[6] = fra.me.REG[6];
5563 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5564 if (UNTAG_Bool(REGB1)) {
5565 } else {
5566 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5567 REGB1 = REGB2;
5568 }
5569 if (UNTAG_Bool(REGB1)) {
5570 /* compiling/compiling_icode.nit:734 */
5571 REGB1 = TAG_Int(3);
5572 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5573 if (!once_value_8) {
5574 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5575 REGB1 = TAG_Int(19);
5576 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5577 once_value_8 = fra.me.REG[7];
5578 register_static_object(&once_value_8);
5579 } else fra.me.REG[7] = once_value_8;
5580 fra.me.REG[7] = fra.me.REG[7];
5581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5582 REGB1 = TAG_Int(0);
5583 /* ../lib/standard/collection/array.nit:278 */
5584 fra.me.REG[7] = fra.me.REG[4];
5585 /* ../lib/standard/collection/array.nit:280 */
5586 REGB2 = TAG_Int(0);
5587 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5588 if (UNTAG_Bool(REGB0)) {
5589 } else {
5590 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5591 }
5592 /* ../lib/standard/kernel.nit:236 */
5593 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5594 /* ../lib/standard/collection/array.nit:280 */
5595 if (UNTAG_Bool(REGB2)) {
5596 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5597 if (UNTAG_Bool(REGB2)) {
5598 } else {
5599 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5600 }
5601 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5602 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5603 if (UNTAG_Bool(REGB0)) {
5604 } else {
5605 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5606 }
5607 /* ../lib/standard/kernel.nit:235 */
5608 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5609 } else {
5610 /* ../lib/standard/collection/array.nit:280 */
5611 REGB0 = TAG_Bool(0);
5612 REGB2 = REGB0;
5613 }
5614 if (UNTAG_Bool(REGB2)) {
5615 } else {
5616 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5617 }
5618 /* ../lib/standard/collection/array.nit:281 */
5619 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5620 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5621 if (UNTAG_Bool(REGB2)) {
5622 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5623 }
5624 /* ../lib/standard/collection/array.nit:718 */
5625 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5626 /* ../lib/standard/collection/array.nit:281 */
5627 goto label9;
5628 label9: while(0);
5629 /* compiling/compiling_icode.nit:734 */
5630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5631 if (!once_value_10) {
5632 fra.me.REG[7] = BOX_NativeString("))");
5633 REGB1 = TAG_Int(2);
5634 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5635 once_value_10 = fra.me.REG[7];
5636 register_static_object(&once_value_10);
5637 } else fra.me.REG[7] = once_value_10;
5638 fra.me.REG[7] = fra.me.REG[7];
5639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5640 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5641 fra.me.REG[5] = fra.me.REG[6];
5642 } else {
5643 /* compiling/compiling_icode.nit:735 */
5644 if (!once_value_11) {
5645 if (!once_value_12) {
5646 fra.me.REG[6] = BOX_NativeString("output");
5647 REGB1 = TAG_Int(6);
5648 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5649 once_value_12 = fra.me.REG[6];
5650 register_static_object(&once_value_12);
5651 } else fra.me.REG[6] = once_value_12;
5652 fra.me.REG[6] = fra.me.REG[6];
5653 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5654 once_value_11 = fra.me.REG[6];
5655 register_static_object(&once_value_11);
5656 } else fra.me.REG[6] = once_value_11;
5657 fra.me.REG[6] = fra.me.REG[6];
5658 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5659 if (UNTAG_Bool(REGB1)) {
5660 } else {
5661 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5662 REGB1 = REGB2;
5663 }
5664 if (UNTAG_Bool(REGB1)) {
5665 /* compiling/compiling_icode.nit:736 */
5666 REGB1 = TAG_Int(3);
5667 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5668 if (!once_value_13) {
5669 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5670 REGB1 = TAG_Int(26);
5671 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5672 once_value_13 = fra.me.REG[7];
5673 register_static_object(&once_value_13);
5674 } else fra.me.REG[7] = once_value_13;
5675 fra.me.REG[7] = fra.me.REG[7];
5676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5677 REGB1 = TAG_Int(0);
5678 /* ../lib/standard/collection/array.nit:278 */
5679 fra.me.REG[7] = fra.me.REG[4];
5680 /* ../lib/standard/collection/array.nit:280 */
5681 REGB2 = TAG_Int(0);
5682 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5683 if (UNTAG_Bool(REGB0)) {
5684 } else {
5685 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5686 }
5687 /* ../lib/standard/kernel.nit:236 */
5688 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5689 /* ../lib/standard/collection/array.nit:280 */
5690 if (UNTAG_Bool(REGB2)) {
5691 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5692 if (UNTAG_Bool(REGB2)) {
5693 } else {
5694 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5695 }
5696 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5697 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5698 if (UNTAG_Bool(REGB0)) {
5699 } else {
5700 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5701 }
5702 /* ../lib/standard/kernel.nit:235 */
5703 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5704 } else {
5705 /* ../lib/standard/collection/array.nit:280 */
5706 REGB0 = TAG_Bool(0);
5707 REGB2 = REGB0;
5708 }
5709 if (UNTAG_Bool(REGB2)) {
5710 } else {
5711 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5712 }
5713 /* ../lib/standard/collection/array.nit:281 */
5714 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5715 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5716 if (UNTAG_Bool(REGB2)) {
5717 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5718 }
5719 /* ../lib/standard/collection/array.nit:718 */
5720 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5721 /* ../lib/standard/collection/array.nit:281 */
5722 goto label14;
5723 label14: while(0);
5724 /* compiling/compiling_icode.nit:736 */
5725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5726 if (!once_value_15) {
5727 fra.me.REG[7] = BOX_NativeString("));");
5728 REGB1 = TAG_Int(3);
5729 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5730 once_value_15 = fra.me.REG[7];
5731 register_static_object(&once_value_15);
5732 } else fra.me.REG[7] = once_value_15;
5733 fra.me.REG[7] = fra.me.REG[7];
5734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5735 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5736 fra.me.REG[5] = fra.me.REG[6];
5737 } else {
5738 /* compiling/compiling_icode.nit:737 */
5739 if (!once_value_16) {
5740 if (!once_value_17) {
5741 fra.me.REG[6] = BOX_NativeString("ascii");
5742 REGB1 = TAG_Int(5);
5743 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5744 once_value_17 = fra.me.REG[6];
5745 register_static_object(&once_value_17);
5746 } else fra.me.REG[6] = once_value_17;
5747 fra.me.REG[6] = fra.me.REG[6];
5748 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5749 once_value_16 = fra.me.REG[6];
5750 register_static_object(&once_value_16);
5751 } else fra.me.REG[6] = once_value_16;
5752 fra.me.REG[6] = fra.me.REG[6];
5753 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5754 if (UNTAG_Bool(REGB1)) {
5755 } else {
5756 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5757 REGB1 = REGB2;
5758 }
5759 if (UNTAG_Bool(REGB1)) {
5760 /* compiling/compiling_icode.nit:738 */
5761 REGB1 = TAG_Int(3);
5762 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5763 if (!once_value_18) {
5764 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5765 REGB1 = TAG_Int(19);
5766 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5767 once_value_18 = fra.me.REG[7];
5768 register_static_object(&once_value_18);
5769 } else fra.me.REG[7] = once_value_18;
5770 fra.me.REG[7] = fra.me.REG[7];
5771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5772 REGB1 = TAG_Int(0);
5773 /* ../lib/standard/collection/array.nit:278 */
5774 fra.me.REG[7] = fra.me.REG[4];
5775 /* ../lib/standard/collection/array.nit:280 */
5776 REGB2 = TAG_Int(0);
5777 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5778 if (UNTAG_Bool(REGB0)) {
5779 } else {
5780 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5781 }
5782 /* ../lib/standard/kernel.nit:236 */
5783 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5784 /* ../lib/standard/collection/array.nit:280 */
5785 if (UNTAG_Bool(REGB2)) {
5786 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5787 if (UNTAG_Bool(REGB2)) {
5788 } else {
5789 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5790 }
5791 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5792 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5793 if (UNTAG_Bool(REGB0)) {
5794 } else {
5795 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5796 }
5797 /* ../lib/standard/kernel.nit:235 */
5798 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5799 } else {
5800 /* ../lib/standard/collection/array.nit:280 */
5801 REGB0 = TAG_Bool(0);
5802 REGB2 = REGB0;
5803 }
5804 if (UNTAG_Bool(REGB2)) {
5805 } else {
5806 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5807 }
5808 /* ../lib/standard/collection/array.nit:281 */
5809 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5810 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5811 if (UNTAG_Bool(REGB2)) {
5812 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5813 }
5814 /* ../lib/standard/collection/array.nit:718 */
5815 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5816 /* ../lib/standard/collection/array.nit:281 */
5817 goto label19;
5818 label19: while(0);
5819 /* compiling/compiling_icode.nit:738 */
5820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5821 if (!once_value_20) {
5822 fra.me.REG[7] = BOX_NativeString("))");
5823 REGB1 = TAG_Int(2);
5824 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5825 once_value_20 = fra.me.REG[7];
5826 register_static_object(&once_value_20);
5827 } else fra.me.REG[7] = once_value_20;
5828 fra.me.REG[7] = fra.me.REG[7];
5829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5830 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5831 fra.me.REG[5] = fra.me.REG[6];
5832 } else {
5833 /* compiling/compiling_icode.nit:739 */
5834 if (!once_value_21) {
5835 if (!once_value_22) {
5836 fra.me.REG[6] = BOX_NativeString("succ");
5837 REGB1 = TAG_Int(4);
5838 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5839 once_value_22 = fra.me.REG[6];
5840 register_static_object(&once_value_22);
5841 } else fra.me.REG[6] = once_value_22;
5842 fra.me.REG[6] = fra.me.REG[6];
5843 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5844 once_value_21 = fra.me.REG[6];
5845 register_static_object(&once_value_21);
5846 } else fra.me.REG[6] = once_value_21;
5847 fra.me.REG[6] = fra.me.REG[6];
5848 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5849 if (UNTAG_Bool(REGB1)) {
5850 } else {
5851 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5852 REGB1 = REGB2;
5853 }
5854 if (UNTAG_Bool(REGB1)) {
5855 /* compiling/compiling_icode.nit:740 */
5856 REGB1 = TAG_Int(3);
5857 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5858 if (!once_value_23) {
5859 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5860 REGB1 = TAG_Int(18);
5861 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5862 once_value_23 = fra.me.REG[7];
5863 register_static_object(&once_value_23);
5864 } else fra.me.REG[7] = once_value_23;
5865 fra.me.REG[7] = fra.me.REG[7];
5866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5867 REGB1 = TAG_Int(0);
5868 /* ../lib/standard/collection/array.nit:278 */
5869 fra.me.REG[7] = fra.me.REG[4];
5870 /* ../lib/standard/collection/array.nit:280 */
5871 REGB2 = TAG_Int(0);
5872 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5873 if (UNTAG_Bool(REGB0)) {
5874 } else {
5875 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5876 }
5877 /* ../lib/standard/kernel.nit:236 */
5878 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5879 /* ../lib/standard/collection/array.nit:280 */
5880 if (UNTAG_Bool(REGB2)) {
5881 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5882 if (UNTAG_Bool(REGB2)) {
5883 } else {
5884 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5885 }
5886 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5887 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5888 if (UNTAG_Bool(REGB0)) {
5889 } else {
5890 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5891 }
5892 /* ../lib/standard/kernel.nit:235 */
5893 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5894 } else {
5895 /* ../lib/standard/collection/array.nit:280 */
5896 REGB0 = TAG_Bool(0);
5897 REGB2 = REGB0;
5898 }
5899 if (UNTAG_Bool(REGB2)) {
5900 } else {
5901 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5902 }
5903 /* ../lib/standard/collection/array.nit:281 */
5904 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5905 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5906 if (UNTAG_Bool(REGB2)) {
5907 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5908 }
5909 /* ../lib/standard/collection/array.nit:718 */
5910 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5911 /* ../lib/standard/collection/array.nit:281 */
5912 goto label24;
5913 label24: while(0);
5914 /* compiling/compiling_icode.nit:740 */
5915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5916 if (!once_value_25) {
5917 fra.me.REG[7] = BOX_NativeString(")+1)");
5918 REGB1 = TAG_Int(4);
5919 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5920 once_value_25 = fra.me.REG[7];
5921 register_static_object(&once_value_25);
5922 } else fra.me.REG[7] = once_value_25;
5923 fra.me.REG[7] = fra.me.REG[7];
5924 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5925 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5926 fra.me.REG[5] = fra.me.REG[6];
5927 } else {
5928 /* compiling/compiling_icode.nit:741 */
5929 if (!once_value_26) {
5930 if (!once_value_27) {
5931 fra.me.REG[6] = BOX_NativeString("prec");
5932 REGB1 = TAG_Int(4);
5933 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5934 once_value_27 = fra.me.REG[6];
5935 register_static_object(&once_value_27);
5936 } else fra.me.REG[6] = once_value_27;
5937 fra.me.REG[6] = fra.me.REG[6];
5938 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5939 once_value_26 = fra.me.REG[6];
5940 register_static_object(&once_value_26);
5941 } else fra.me.REG[6] = once_value_26;
5942 fra.me.REG[6] = fra.me.REG[6];
5943 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5944 if (UNTAG_Bool(REGB1)) {
5945 } else {
5946 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5947 REGB1 = REGB2;
5948 }
5949 if (UNTAG_Bool(REGB1)) {
5950 /* compiling/compiling_icode.nit:742 */
5951 REGB1 = TAG_Int(3);
5952 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5953 if (!once_value_28) {
5954 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5955 REGB1 = TAG_Int(18);
5956 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5957 once_value_28 = fra.me.REG[7];
5958 register_static_object(&once_value_28);
5959 } else fra.me.REG[7] = once_value_28;
5960 fra.me.REG[7] = fra.me.REG[7];
5961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5962 REGB1 = TAG_Int(0);
5963 /* ../lib/standard/collection/array.nit:278 */
5964 fra.me.REG[7] = fra.me.REG[4];
5965 /* ../lib/standard/collection/array.nit:280 */
5966 REGB2 = TAG_Int(0);
5967 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5968 if (UNTAG_Bool(REGB0)) {
5969 } else {
5970 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5971 }
5972 /* ../lib/standard/kernel.nit:236 */
5973 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5974 /* ../lib/standard/collection/array.nit:280 */
5975 if (UNTAG_Bool(REGB2)) {
5976 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5977 if (UNTAG_Bool(REGB2)) {
5978 } else {
5979 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5980 }
5981 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5982 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5983 if (UNTAG_Bool(REGB0)) {
5984 } else {
5985 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5986 }
5987 /* ../lib/standard/kernel.nit:235 */
5988 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5989 } else {
5990 /* ../lib/standard/collection/array.nit:280 */
5991 REGB0 = TAG_Bool(0);
5992 REGB2 = REGB0;
5993 }
5994 if (UNTAG_Bool(REGB2)) {
5995 } else {
5996 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5997 }
5998 /* ../lib/standard/collection/array.nit:281 */
5999 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6000 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6001 if (UNTAG_Bool(REGB2)) {
6002 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6003 }
6004 /* ../lib/standard/collection/array.nit:718 */
6005 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6006 /* ../lib/standard/collection/array.nit:281 */
6007 goto label29;
6008 label29: while(0);
6009 /* compiling/compiling_icode.nit:742 */
6010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6011 if (!once_value_30) {
6012 fra.me.REG[7] = BOX_NativeString(")-1)");
6013 REGB1 = TAG_Int(4);
6014 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6015 once_value_30 = fra.me.REG[7];
6016 register_static_object(&once_value_30);
6017 } else fra.me.REG[7] = once_value_30;
6018 fra.me.REG[7] = fra.me.REG[7];
6019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6020 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6021 fra.me.REG[5] = fra.me.REG[6];
6022 } else {
6023 /* compiling/compiling_icode.nit:743 */
6024 if (!once_value_31) {
6025 if (!once_value_32) {
6026 fra.me.REG[6] = BOX_NativeString("to_f");
6027 REGB1 = TAG_Int(4);
6028 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6029 once_value_32 = fra.me.REG[6];
6030 register_static_object(&once_value_32);
6031 } else fra.me.REG[6] = once_value_32;
6032 fra.me.REG[6] = fra.me.REG[6];
6033 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6034 once_value_31 = fra.me.REG[6];
6035 register_static_object(&once_value_31);
6036 } else fra.me.REG[6] = once_value_31;
6037 fra.me.REG[6] = fra.me.REG[6];
6038 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6039 if (UNTAG_Bool(REGB1)) {
6040 } else {
6041 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6042 REGB1 = REGB2;
6043 }
6044 if (UNTAG_Bool(REGB1)) {
6045 /* compiling/compiling_icode.nit:744 */
6046 REGB1 = TAG_Int(3);
6047 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6048 if (!once_value_33) {
6049 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
6050 REGB1 = TAG_Int(27);
6051 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6052 once_value_33 = fra.me.REG[7];
6053 register_static_object(&once_value_33);
6054 } else fra.me.REG[7] = once_value_33;
6055 fra.me.REG[7] = fra.me.REG[7];
6056 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6057 REGB1 = TAG_Int(0);
6058 /* ../lib/standard/collection/array.nit:278 */
6059 fra.me.REG[7] = fra.me.REG[4];
6060 /* ../lib/standard/collection/array.nit:280 */
6061 REGB2 = TAG_Int(0);
6062 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6063 if (UNTAG_Bool(REGB0)) {
6064 } else {
6065 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6066 }
6067 /* ../lib/standard/kernel.nit:236 */
6068 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6069 /* ../lib/standard/collection/array.nit:280 */
6070 if (UNTAG_Bool(REGB2)) {
6071 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6072 if (UNTAG_Bool(REGB2)) {
6073 } else {
6074 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6075 }
6076 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6077 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6078 if (UNTAG_Bool(REGB0)) {
6079 } else {
6080 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6081 }
6082 /* ../lib/standard/kernel.nit:235 */
6083 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6084 } else {
6085 /* ../lib/standard/collection/array.nit:280 */
6086 REGB0 = TAG_Bool(0);
6087 REGB2 = REGB0;
6088 }
6089 if (UNTAG_Bool(REGB2)) {
6090 } else {
6091 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6092 }
6093 /* ../lib/standard/collection/array.nit:281 */
6094 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6095 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6096 if (UNTAG_Bool(REGB2)) {
6097 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6098 }
6099 /* ../lib/standard/collection/array.nit:718 */
6100 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6101 /* ../lib/standard/collection/array.nit:281 */
6102 goto label34;
6103 label34: while(0);
6104 /* compiling/compiling_icode.nit:744 */
6105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6106 if (!once_value_35) {
6107 fra.me.REG[7] = BOX_NativeString("))");
6108 REGB1 = TAG_Int(2);
6109 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6110 once_value_35 = fra.me.REG[7];
6111 register_static_object(&once_value_35);
6112 } else fra.me.REG[7] = once_value_35;
6113 fra.me.REG[7] = fra.me.REG[7];
6114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6115 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6116 fra.me.REG[5] = fra.me.REG[6];
6117 } else {
6118 /* compiling/compiling_icode.nit:745 */
6119 if (!once_value_36) {
6120 if (!once_value_37) {
6121 fra.me.REG[6] = BOX_NativeString("+");
6122 REGB1 = TAG_Int(1);
6123 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6124 once_value_37 = fra.me.REG[6];
6125 register_static_object(&once_value_37);
6126 } else fra.me.REG[6] = once_value_37;
6127 fra.me.REG[6] = fra.me.REG[6];
6128 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6129 once_value_36 = fra.me.REG[6];
6130 register_static_object(&once_value_36);
6131 } else fra.me.REG[6] = once_value_36;
6132 fra.me.REG[6] = fra.me.REG[6];
6133 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6134 if (UNTAG_Bool(REGB1)) {
6135 } else {
6136 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6137 REGB1 = REGB2;
6138 }
6139 if (UNTAG_Bool(REGB1)) {
6140 /* compiling/compiling_icode.nit:746 */
6141 REGB1 = TAG_Int(5);
6142 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6143 if (!once_value_38) {
6144 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6145 REGB1 = TAG_Int(18);
6146 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6147 once_value_38 = fra.me.REG[7];
6148 register_static_object(&once_value_38);
6149 } else fra.me.REG[7] = once_value_38;
6150 fra.me.REG[7] = fra.me.REG[7];
6151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6152 REGB1 = TAG_Int(0);
6153 /* ../lib/standard/collection/array.nit:278 */
6154 fra.me.REG[7] = fra.me.REG[4];
6155 /* ../lib/standard/collection/array.nit:280 */
6156 REGB2 = TAG_Int(0);
6157 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6158 if (UNTAG_Bool(REGB0)) {
6159 } else {
6160 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6161 }
6162 /* ../lib/standard/kernel.nit:236 */
6163 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6164 /* ../lib/standard/collection/array.nit:280 */
6165 if (UNTAG_Bool(REGB2)) {
6166 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6167 if (UNTAG_Bool(REGB2)) {
6168 } else {
6169 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6170 }
6171 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6172 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6173 if (UNTAG_Bool(REGB0)) {
6174 } else {
6175 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6176 }
6177 /* ../lib/standard/kernel.nit:235 */
6178 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6179 } else {
6180 /* ../lib/standard/collection/array.nit:280 */
6181 REGB0 = TAG_Bool(0);
6182 REGB2 = REGB0;
6183 }
6184 if (UNTAG_Bool(REGB2)) {
6185 } else {
6186 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6187 }
6188 /* ../lib/standard/collection/array.nit:281 */
6189 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6190 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6191 if (UNTAG_Bool(REGB2)) {
6192 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6193 }
6194 /* ../lib/standard/collection/array.nit:718 */
6195 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6196 /* ../lib/standard/collection/array.nit:281 */
6197 goto label39;
6198 label39: while(0);
6199 /* compiling/compiling_icode.nit:746 */
6200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6201 if (!once_value_40) {
6202 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
6203 REGB1 = TAG_Int(12);
6204 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6205 once_value_40 = fra.me.REG[7];
6206 register_static_object(&once_value_40);
6207 } else fra.me.REG[7] = once_value_40;
6208 fra.me.REG[7] = fra.me.REG[7];
6209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6210 REGB1 = TAG_Int(1);
6211 /* ../lib/standard/collection/array.nit:278 */
6212 fra.me.REG[7] = fra.me.REG[4];
6213 /* ../lib/standard/collection/array.nit:280 */
6214 REGB2 = TAG_Int(0);
6215 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6216 if (UNTAG_Bool(REGB0)) {
6217 } else {
6218 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6219 }
6220 /* ../lib/standard/kernel.nit:236 */
6221 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6222 /* ../lib/standard/collection/array.nit:280 */
6223 if (UNTAG_Bool(REGB2)) {
6224 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6225 if (UNTAG_Bool(REGB2)) {
6226 } else {
6227 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6228 }
6229 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6230 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6231 if (UNTAG_Bool(REGB0)) {
6232 } else {
6233 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6234 }
6235 /* ../lib/standard/kernel.nit:235 */
6236 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6237 } else {
6238 /* ../lib/standard/collection/array.nit:280 */
6239 REGB0 = TAG_Bool(0);
6240 REGB2 = REGB0;
6241 }
6242 if (UNTAG_Bool(REGB2)) {
6243 } else {
6244 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6245 }
6246 /* ../lib/standard/collection/array.nit:281 */
6247 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6248 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6249 if (UNTAG_Bool(REGB2)) {
6250 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6251 }
6252 /* ../lib/standard/collection/array.nit:718 */
6253 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6254 /* ../lib/standard/collection/array.nit:281 */
6255 goto label41;
6256 label41: while(0);
6257 /* compiling/compiling_icode.nit:746 */
6258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6259 if (!once_value_42) {
6260 fra.me.REG[7] = BOX_NativeString("))");
6261 REGB1 = TAG_Int(2);
6262 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6263 once_value_42 = fra.me.REG[7];
6264 register_static_object(&once_value_42);
6265 } else fra.me.REG[7] = once_value_42;
6266 fra.me.REG[7] = fra.me.REG[7];
6267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6268 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6269 fra.me.REG[5] = fra.me.REG[6];
6270 } else {
6271 /* compiling/compiling_icode.nit:747 */
6272 if (!once_value_43) {
6273 if (!once_value_44) {
6274 fra.me.REG[6] = BOX_NativeString("-");
6275 REGB1 = TAG_Int(1);
6276 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6277 once_value_44 = fra.me.REG[6];
6278 register_static_object(&once_value_44);
6279 } else fra.me.REG[6] = once_value_44;
6280 fra.me.REG[6] = fra.me.REG[6];
6281 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6282 once_value_43 = fra.me.REG[6];
6283 register_static_object(&once_value_43);
6284 } else fra.me.REG[6] = once_value_43;
6285 fra.me.REG[6] = fra.me.REG[6];
6286 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6287 if (UNTAG_Bool(REGB1)) {
6288 } else {
6289 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6290 REGB1 = REGB2;
6291 }
6292 if (UNTAG_Bool(REGB1)) {
6293 /* compiling/compiling_icode.nit:748 */
6294 REGB1 = TAG_Int(5);
6295 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6296 if (!once_value_45) {
6297 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6298 REGB1 = TAG_Int(18);
6299 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6300 once_value_45 = fra.me.REG[7];
6301 register_static_object(&once_value_45);
6302 } else fra.me.REG[7] = once_value_45;
6303 fra.me.REG[7] = fra.me.REG[7];
6304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6305 REGB1 = TAG_Int(0);
6306 /* ../lib/standard/collection/array.nit:278 */
6307 fra.me.REG[7] = fra.me.REG[4];
6308 /* ../lib/standard/collection/array.nit:280 */
6309 REGB2 = TAG_Int(0);
6310 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6311 if (UNTAG_Bool(REGB0)) {
6312 } else {
6313 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6314 }
6315 /* ../lib/standard/kernel.nit:236 */
6316 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6317 /* ../lib/standard/collection/array.nit:280 */
6318 if (UNTAG_Bool(REGB2)) {
6319 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6320 if (UNTAG_Bool(REGB2)) {
6321 } else {
6322 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6323 }
6324 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6325 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6326 if (UNTAG_Bool(REGB0)) {
6327 } else {
6328 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6329 }
6330 /* ../lib/standard/kernel.nit:235 */
6331 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6332 } else {
6333 /* ../lib/standard/collection/array.nit:280 */
6334 REGB0 = TAG_Bool(0);
6335 REGB2 = REGB0;
6336 }
6337 if (UNTAG_Bool(REGB2)) {
6338 } else {
6339 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6340 }
6341 /* ../lib/standard/collection/array.nit:281 */
6342 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6343 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6344 if (UNTAG_Bool(REGB2)) {
6345 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6346 }
6347 /* ../lib/standard/collection/array.nit:718 */
6348 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6349 /* ../lib/standard/collection/array.nit:281 */
6350 goto label46;
6351 label46: while(0);
6352 /* compiling/compiling_icode.nit:748 */
6353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6354 if (!once_value_47) {
6355 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
6356 REGB1 = TAG_Int(12);
6357 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6358 once_value_47 = fra.me.REG[7];
6359 register_static_object(&once_value_47);
6360 } else fra.me.REG[7] = once_value_47;
6361 fra.me.REG[7] = fra.me.REG[7];
6362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6363 REGB1 = TAG_Int(1);
6364 /* ../lib/standard/collection/array.nit:278 */
6365 fra.me.REG[7] = fra.me.REG[4];
6366 /* ../lib/standard/collection/array.nit:280 */
6367 REGB2 = TAG_Int(0);
6368 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6369 if (UNTAG_Bool(REGB0)) {
6370 } else {
6371 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6372 }
6373 /* ../lib/standard/kernel.nit:236 */
6374 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6375 /* ../lib/standard/collection/array.nit:280 */
6376 if (UNTAG_Bool(REGB2)) {
6377 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6378 if (UNTAG_Bool(REGB2)) {
6379 } else {
6380 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6381 }
6382 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6383 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6384 if (UNTAG_Bool(REGB0)) {
6385 } else {
6386 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6387 }
6388 /* ../lib/standard/kernel.nit:235 */
6389 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6390 } else {
6391 /* ../lib/standard/collection/array.nit:280 */
6392 REGB0 = TAG_Bool(0);
6393 REGB2 = REGB0;
6394 }
6395 if (UNTAG_Bool(REGB2)) {
6396 } else {
6397 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6398 }
6399 /* ../lib/standard/collection/array.nit:281 */
6400 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6401 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6402 if (UNTAG_Bool(REGB2)) {
6403 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6404 }
6405 /* ../lib/standard/collection/array.nit:718 */
6406 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6407 /* ../lib/standard/collection/array.nit:281 */
6408 goto label48;
6409 label48: while(0);
6410 /* compiling/compiling_icode.nit:748 */
6411 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6412 if (!once_value_49) {
6413 fra.me.REG[7] = BOX_NativeString("))");
6414 REGB1 = TAG_Int(2);
6415 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6416 once_value_49 = fra.me.REG[7];
6417 register_static_object(&once_value_49);
6418 } else fra.me.REG[7] = once_value_49;
6419 fra.me.REG[7] = fra.me.REG[7];
6420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6421 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6422 fra.me.REG[5] = fra.me.REG[6];
6423 } else {
6424 /* compiling/compiling_icode.nit:749 */
6425 if (!once_value_50) {
6426 if (!once_value_51) {
6427 fra.me.REG[6] = BOX_NativeString("*");
6428 REGB1 = TAG_Int(1);
6429 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6430 once_value_51 = fra.me.REG[6];
6431 register_static_object(&once_value_51);
6432 } else fra.me.REG[6] = once_value_51;
6433 fra.me.REG[6] = fra.me.REG[6];
6434 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6435 once_value_50 = fra.me.REG[6];
6436 register_static_object(&once_value_50);
6437 } else fra.me.REG[6] = once_value_50;
6438 fra.me.REG[6] = fra.me.REG[6];
6439 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6440 if (UNTAG_Bool(REGB1)) {
6441 } else {
6442 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6443 REGB1 = REGB2;
6444 }
6445 if (UNTAG_Bool(REGB1)) {
6446 /* compiling/compiling_icode.nit:750 */
6447 REGB1 = TAG_Int(5);
6448 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6449 if (!once_value_52) {
6450 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6451 REGB1 = TAG_Int(18);
6452 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6453 once_value_52 = fra.me.REG[7];
6454 register_static_object(&once_value_52);
6455 } else fra.me.REG[7] = once_value_52;
6456 fra.me.REG[7] = fra.me.REG[7];
6457 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6458 REGB1 = TAG_Int(0);
6459 /* ../lib/standard/collection/array.nit:278 */
6460 fra.me.REG[7] = fra.me.REG[4];
6461 /* ../lib/standard/collection/array.nit:280 */
6462 REGB2 = TAG_Int(0);
6463 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6464 if (UNTAG_Bool(REGB0)) {
6465 } else {
6466 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6467 }
6468 /* ../lib/standard/kernel.nit:236 */
6469 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6470 /* ../lib/standard/collection/array.nit:280 */
6471 if (UNTAG_Bool(REGB2)) {
6472 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6473 if (UNTAG_Bool(REGB2)) {
6474 } else {
6475 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6476 }
6477 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6478 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6479 if (UNTAG_Bool(REGB0)) {
6480 } else {
6481 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6482 }
6483 /* ../lib/standard/kernel.nit:235 */
6484 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6485 } else {
6486 /* ../lib/standard/collection/array.nit:280 */
6487 REGB0 = TAG_Bool(0);
6488 REGB2 = REGB0;
6489 }
6490 if (UNTAG_Bool(REGB2)) {
6491 } else {
6492 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6493 }
6494 /* ../lib/standard/collection/array.nit:281 */
6495 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6496 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6497 if (UNTAG_Bool(REGB2)) {
6498 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6499 }
6500 /* ../lib/standard/collection/array.nit:718 */
6501 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6502 /* ../lib/standard/collection/array.nit:281 */
6503 goto label53;
6504 label53: while(0);
6505 /* compiling/compiling_icode.nit:750 */
6506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6507 if (!once_value_54) {
6508 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6509 REGB1 = TAG_Int(12);
6510 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6511 once_value_54 = fra.me.REG[7];
6512 register_static_object(&once_value_54);
6513 } else fra.me.REG[7] = once_value_54;
6514 fra.me.REG[7] = fra.me.REG[7];
6515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6516 REGB1 = TAG_Int(1);
6517 /* ../lib/standard/collection/array.nit:278 */
6518 fra.me.REG[7] = fra.me.REG[4];
6519 /* ../lib/standard/collection/array.nit:280 */
6520 REGB2 = TAG_Int(0);
6521 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6522 if (UNTAG_Bool(REGB0)) {
6523 } else {
6524 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6525 }
6526 /* ../lib/standard/kernel.nit:236 */
6527 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6528 /* ../lib/standard/collection/array.nit:280 */
6529 if (UNTAG_Bool(REGB2)) {
6530 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6531 if (UNTAG_Bool(REGB2)) {
6532 } else {
6533 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6534 }
6535 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6536 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6537 if (UNTAG_Bool(REGB0)) {
6538 } else {
6539 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6540 }
6541 /* ../lib/standard/kernel.nit:235 */
6542 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6543 } else {
6544 /* ../lib/standard/collection/array.nit:280 */
6545 REGB0 = TAG_Bool(0);
6546 REGB2 = REGB0;
6547 }
6548 if (UNTAG_Bool(REGB2)) {
6549 } else {
6550 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6551 }
6552 /* ../lib/standard/collection/array.nit:281 */
6553 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6554 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6555 if (UNTAG_Bool(REGB2)) {
6556 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6557 }
6558 /* ../lib/standard/collection/array.nit:718 */
6559 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6560 /* ../lib/standard/collection/array.nit:281 */
6561 goto label55;
6562 label55: while(0);
6563 /* compiling/compiling_icode.nit:750 */
6564 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6565 if (!once_value_56) {
6566 fra.me.REG[7] = BOX_NativeString("))");
6567 REGB1 = TAG_Int(2);
6568 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6569 once_value_56 = fra.me.REG[7];
6570 register_static_object(&once_value_56);
6571 } else fra.me.REG[7] = once_value_56;
6572 fra.me.REG[7] = fra.me.REG[7];
6573 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6574 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6575 fra.me.REG[5] = fra.me.REG[6];
6576 } else {
6577 /* compiling/compiling_icode.nit:751 */
6578 if (!once_value_57) {
6579 if (!once_value_58) {
6580 fra.me.REG[6] = BOX_NativeString("/");
6581 REGB1 = TAG_Int(1);
6582 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6583 once_value_58 = fra.me.REG[6];
6584 register_static_object(&once_value_58);
6585 } else fra.me.REG[6] = once_value_58;
6586 fra.me.REG[6] = fra.me.REG[6];
6587 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6588 once_value_57 = fra.me.REG[6];
6589 register_static_object(&once_value_57);
6590 } else fra.me.REG[6] = once_value_57;
6591 fra.me.REG[6] = fra.me.REG[6];
6592 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6593 if (UNTAG_Bool(REGB1)) {
6594 } else {
6595 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6596 REGB1 = REGB2;
6597 }
6598 if (UNTAG_Bool(REGB1)) {
6599 /* compiling/compiling_icode.nit:752 */
6600 REGB1 = TAG_Int(5);
6601 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6602 if (!once_value_59) {
6603 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6604 REGB1 = TAG_Int(18);
6605 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6606 once_value_59 = fra.me.REG[7];
6607 register_static_object(&once_value_59);
6608 } else fra.me.REG[7] = once_value_59;
6609 fra.me.REG[7] = fra.me.REG[7];
6610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6611 REGB1 = TAG_Int(0);
6612 /* ../lib/standard/collection/array.nit:278 */
6613 fra.me.REG[7] = fra.me.REG[4];
6614 /* ../lib/standard/collection/array.nit:280 */
6615 REGB2 = TAG_Int(0);
6616 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6617 if (UNTAG_Bool(REGB0)) {
6618 } else {
6619 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6620 }
6621 /* ../lib/standard/kernel.nit:236 */
6622 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6623 /* ../lib/standard/collection/array.nit:280 */
6624 if (UNTAG_Bool(REGB2)) {
6625 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6626 if (UNTAG_Bool(REGB2)) {
6627 } else {
6628 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6629 }
6630 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6631 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6632 if (UNTAG_Bool(REGB0)) {
6633 } else {
6634 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6635 }
6636 /* ../lib/standard/kernel.nit:235 */
6637 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6638 } else {
6639 /* ../lib/standard/collection/array.nit:280 */
6640 REGB0 = TAG_Bool(0);
6641 REGB2 = REGB0;
6642 }
6643 if (UNTAG_Bool(REGB2)) {
6644 } else {
6645 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6646 }
6647 /* ../lib/standard/collection/array.nit:281 */
6648 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6649 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6650 if (UNTAG_Bool(REGB2)) {
6651 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6652 }
6653 /* ../lib/standard/collection/array.nit:718 */
6654 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6655 /* ../lib/standard/collection/array.nit:281 */
6656 goto label60;
6657 label60: while(0);
6658 /* compiling/compiling_icode.nit:752 */
6659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6660 if (!once_value_61) {
6661 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6662 REGB1 = TAG_Int(12);
6663 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6664 once_value_61 = fra.me.REG[7];
6665 register_static_object(&once_value_61);
6666 } else fra.me.REG[7] = once_value_61;
6667 fra.me.REG[7] = fra.me.REG[7];
6668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6669 REGB1 = TAG_Int(1);
6670 /* ../lib/standard/collection/array.nit:278 */
6671 fra.me.REG[7] = fra.me.REG[4];
6672 /* ../lib/standard/collection/array.nit:280 */
6673 REGB2 = TAG_Int(0);
6674 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6675 if (UNTAG_Bool(REGB0)) {
6676 } else {
6677 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6678 }
6679 /* ../lib/standard/kernel.nit:236 */
6680 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6681 /* ../lib/standard/collection/array.nit:280 */
6682 if (UNTAG_Bool(REGB2)) {
6683 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6684 if (UNTAG_Bool(REGB2)) {
6685 } else {
6686 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6687 }
6688 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6689 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6690 if (UNTAG_Bool(REGB0)) {
6691 } else {
6692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6693 }
6694 /* ../lib/standard/kernel.nit:235 */
6695 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6696 } else {
6697 /* ../lib/standard/collection/array.nit:280 */
6698 REGB0 = TAG_Bool(0);
6699 REGB2 = REGB0;
6700 }
6701 if (UNTAG_Bool(REGB2)) {
6702 } else {
6703 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6704 }
6705 /* ../lib/standard/collection/array.nit:281 */
6706 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6707 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6708 if (UNTAG_Bool(REGB2)) {
6709 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6710 }
6711 /* ../lib/standard/collection/array.nit:718 */
6712 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6713 /* ../lib/standard/collection/array.nit:281 */
6714 goto label62;
6715 label62: while(0);
6716 /* compiling/compiling_icode.nit:752 */
6717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6718 if (!once_value_63) {
6719 fra.me.REG[7] = BOX_NativeString("))");
6720 REGB1 = TAG_Int(2);
6721 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6722 once_value_63 = fra.me.REG[7];
6723 register_static_object(&once_value_63);
6724 } else fra.me.REG[7] = once_value_63;
6725 fra.me.REG[7] = fra.me.REG[7];
6726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6727 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6728 fra.me.REG[5] = fra.me.REG[6];
6729 } else {
6730 /* compiling/compiling_icode.nit:753 */
6731 if (!once_value_64) {
6732 if (!once_value_65) {
6733 fra.me.REG[6] = BOX_NativeString("%");
6734 REGB1 = TAG_Int(1);
6735 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6736 once_value_65 = fra.me.REG[6];
6737 register_static_object(&once_value_65);
6738 } else fra.me.REG[6] = once_value_65;
6739 fra.me.REG[6] = fra.me.REG[6];
6740 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6741 once_value_64 = fra.me.REG[6];
6742 register_static_object(&once_value_64);
6743 } else fra.me.REG[6] = once_value_64;
6744 fra.me.REG[6] = fra.me.REG[6];
6745 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6746 if (UNTAG_Bool(REGB1)) {
6747 } else {
6748 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6749 REGB1 = REGB2;
6750 }
6751 if (UNTAG_Bool(REGB1)) {
6752 /* compiling/compiling_icode.nit:754 */
6753 REGB1 = TAG_Int(5);
6754 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6755 if (!once_value_66) {
6756 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6757 REGB1 = TAG_Int(18);
6758 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6759 once_value_66 = fra.me.REG[7];
6760 register_static_object(&once_value_66);
6761 } else fra.me.REG[7] = once_value_66;
6762 fra.me.REG[7] = fra.me.REG[7];
6763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6764 REGB1 = TAG_Int(0);
6765 /* ../lib/standard/collection/array.nit:278 */
6766 fra.me.REG[7] = fra.me.REG[4];
6767 /* ../lib/standard/collection/array.nit:280 */
6768 REGB2 = TAG_Int(0);
6769 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6770 if (UNTAG_Bool(REGB0)) {
6771 } else {
6772 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6773 }
6774 /* ../lib/standard/kernel.nit:236 */
6775 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6776 /* ../lib/standard/collection/array.nit:280 */
6777 if (UNTAG_Bool(REGB2)) {
6778 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6779 if (UNTAG_Bool(REGB2)) {
6780 } else {
6781 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6782 }
6783 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6784 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6785 if (UNTAG_Bool(REGB0)) {
6786 } else {
6787 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6788 }
6789 /* ../lib/standard/kernel.nit:235 */
6790 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6791 } else {
6792 /* ../lib/standard/collection/array.nit:280 */
6793 REGB0 = TAG_Bool(0);
6794 REGB2 = REGB0;
6795 }
6796 if (UNTAG_Bool(REGB2)) {
6797 } else {
6798 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6799 }
6800 /* ../lib/standard/collection/array.nit:281 */
6801 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6802 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6803 if (UNTAG_Bool(REGB2)) {
6804 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6805 }
6806 /* ../lib/standard/collection/array.nit:718 */
6807 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6808 /* ../lib/standard/collection/array.nit:281 */
6809 goto label67;
6810 label67: while(0);
6811 /* compiling/compiling_icode.nit:754 */
6812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6813 if (!once_value_68) {
6814 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6815 REGB1 = TAG_Int(12);
6816 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6817 once_value_68 = fra.me.REG[7];
6818 register_static_object(&once_value_68);
6819 } else fra.me.REG[7] = once_value_68;
6820 fra.me.REG[7] = fra.me.REG[7];
6821 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6822 REGB1 = TAG_Int(1);
6823 /* ../lib/standard/collection/array.nit:278 */
6824 fra.me.REG[7] = fra.me.REG[4];
6825 /* ../lib/standard/collection/array.nit:280 */
6826 REGB2 = TAG_Int(0);
6827 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6828 if (UNTAG_Bool(REGB0)) {
6829 } else {
6830 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6831 }
6832 /* ../lib/standard/kernel.nit:236 */
6833 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6834 /* ../lib/standard/collection/array.nit:280 */
6835 if (UNTAG_Bool(REGB2)) {
6836 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6837 if (UNTAG_Bool(REGB2)) {
6838 } else {
6839 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6840 }
6841 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6842 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6843 if (UNTAG_Bool(REGB0)) {
6844 } else {
6845 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6846 }
6847 /* ../lib/standard/kernel.nit:235 */
6848 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6849 } else {
6850 /* ../lib/standard/collection/array.nit:280 */
6851 REGB0 = TAG_Bool(0);
6852 REGB2 = REGB0;
6853 }
6854 if (UNTAG_Bool(REGB2)) {
6855 } else {
6856 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6857 }
6858 /* ../lib/standard/collection/array.nit:281 */
6859 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6860 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6861 if (UNTAG_Bool(REGB2)) {
6862 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6863 }
6864 /* ../lib/standard/collection/array.nit:718 */
6865 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6866 /* ../lib/standard/collection/array.nit:281 */
6867 goto label69;
6868 label69: while(0);
6869 /* compiling/compiling_icode.nit:754 */
6870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6871 if (!once_value_70) {
6872 fra.me.REG[7] = BOX_NativeString("))");
6873 REGB1 = TAG_Int(2);
6874 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6875 once_value_70 = fra.me.REG[7];
6876 register_static_object(&once_value_70);
6877 } else fra.me.REG[7] = once_value_70;
6878 fra.me.REG[7] = fra.me.REG[7];
6879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6880 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6881 fra.me.REG[5] = fra.me.REG[6];
6882 } else {
6883 /* compiling/compiling_icode.nit:755 */
6884 if (!once_value_71) {
6885 if (!once_value_72) {
6886 fra.me.REG[6] = BOX_NativeString("<");
6887 REGB1 = TAG_Int(1);
6888 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6889 once_value_72 = fra.me.REG[6];
6890 register_static_object(&once_value_72);
6891 } else fra.me.REG[6] = once_value_72;
6892 fra.me.REG[6] = fra.me.REG[6];
6893 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6894 once_value_71 = fra.me.REG[6];
6895 register_static_object(&once_value_71);
6896 } else fra.me.REG[6] = once_value_71;
6897 fra.me.REG[6] = fra.me.REG[6];
6898 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6899 if (UNTAG_Bool(REGB1)) {
6900 } else {
6901 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6902 REGB1 = REGB2;
6903 }
6904 if (UNTAG_Bool(REGB1)) {
6905 /* compiling/compiling_icode.nit:756 */
6906 REGB1 = TAG_Int(5);
6907 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6908 if (!once_value_73) {
6909 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6910 REGB1 = TAG_Int(19);
6911 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6912 once_value_73 = fra.me.REG[7];
6913 register_static_object(&once_value_73);
6914 } else fra.me.REG[7] = once_value_73;
6915 fra.me.REG[7] = fra.me.REG[7];
6916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6917 REGB1 = TAG_Int(0);
6918 /* ../lib/standard/collection/array.nit:278 */
6919 fra.me.REG[7] = fra.me.REG[4];
6920 /* ../lib/standard/collection/array.nit:280 */
6921 REGB2 = TAG_Int(0);
6922 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6923 if (UNTAG_Bool(REGB0)) {
6924 } else {
6925 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6926 }
6927 /* ../lib/standard/kernel.nit:236 */
6928 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6929 /* ../lib/standard/collection/array.nit:280 */
6930 if (UNTAG_Bool(REGB2)) {
6931 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6932 if (UNTAG_Bool(REGB2)) {
6933 } else {
6934 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6935 }
6936 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6937 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6938 if (UNTAG_Bool(REGB0)) {
6939 } else {
6940 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6941 }
6942 /* ../lib/standard/kernel.nit:235 */
6943 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6944 } else {
6945 /* ../lib/standard/collection/array.nit:280 */
6946 REGB0 = TAG_Bool(0);
6947 REGB2 = REGB0;
6948 }
6949 if (UNTAG_Bool(REGB2)) {
6950 } else {
6951 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6952 }
6953 /* ../lib/standard/collection/array.nit:281 */
6954 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6955 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6956 if (UNTAG_Bool(REGB2)) {
6957 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6958 }
6959 /* ../lib/standard/collection/array.nit:718 */
6960 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6961 /* ../lib/standard/collection/array.nit:281 */
6962 goto label74;
6963 label74: while(0);
6964 /* compiling/compiling_icode.nit:756 */
6965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6966 if (!once_value_75) {
6967 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6968 REGB1 = TAG_Int(12);
6969 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6970 once_value_75 = fra.me.REG[7];
6971 register_static_object(&once_value_75);
6972 } else fra.me.REG[7] = once_value_75;
6973 fra.me.REG[7] = fra.me.REG[7];
6974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6975 REGB1 = TAG_Int(1);
6976 /* ../lib/standard/collection/array.nit:278 */
6977 fra.me.REG[7] = fra.me.REG[4];
6978 /* ../lib/standard/collection/array.nit:280 */
6979 REGB2 = TAG_Int(0);
6980 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6981 if (UNTAG_Bool(REGB0)) {
6982 } else {
6983 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6984 }
6985 /* ../lib/standard/kernel.nit:236 */
6986 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6987 /* ../lib/standard/collection/array.nit:280 */
6988 if (UNTAG_Bool(REGB2)) {
6989 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6990 if (UNTAG_Bool(REGB2)) {
6991 } else {
6992 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6993 }
6994 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6995 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6996 if (UNTAG_Bool(REGB0)) {
6997 } else {
6998 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6999 }
7000 /* ../lib/standard/kernel.nit:235 */
7001 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7002 } else {
7003 /* ../lib/standard/collection/array.nit:280 */
7004 REGB0 = TAG_Bool(0);
7005 REGB2 = REGB0;
7006 }
7007 if (UNTAG_Bool(REGB2)) {
7008 } else {
7009 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7010 }
7011 /* ../lib/standard/collection/array.nit:281 */
7012 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7013 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7014 if (UNTAG_Bool(REGB2)) {
7015 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7016 }
7017 /* ../lib/standard/collection/array.nit:718 */
7018 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7019 /* ../lib/standard/collection/array.nit:281 */
7020 goto label76;
7021 label76: while(0);
7022 /* compiling/compiling_icode.nit:756 */
7023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7024 if (!once_value_77) {
7025 fra.me.REG[7] = BOX_NativeString("))");
7026 REGB1 = TAG_Int(2);
7027 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7028 once_value_77 = fra.me.REG[7];
7029 register_static_object(&once_value_77);
7030 } else fra.me.REG[7] = once_value_77;
7031 fra.me.REG[7] = fra.me.REG[7];
7032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7033 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7034 fra.me.REG[5] = fra.me.REG[6];
7035 } else {
7036 /* compiling/compiling_icode.nit:757 */
7037 if (!once_value_78) {
7038 if (!once_value_79) {
7039 fra.me.REG[6] = BOX_NativeString(">");
7040 REGB1 = TAG_Int(1);
7041 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7042 once_value_79 = fra.me.REG[6];
7043 register_static_object(&once_value_79);
7044 } else fra.me.REG[6] = once_value_79;
7045 fra.me.REG[6] = fra.me.REG[6];
7046 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7047 once_value_78 = fra.me.REG[6];
7048 register_static_object(&once_value_78);
7049 } else fra.me.REG[6] = once_value_78;
7050 fra.me.REG[6] = fra.me.REG[6];
7051 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7052 if (UNTAG_Bool(REGB1)) {
7053 } else {
7054 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7055 REGB1 = REGB2;
7056 }
7057 if (UNTAG_Bool(REGB1)) {
7058 /* compiling/compiling_icode.nit:758 */
7059 REGB1 = TAG_Int(5);
7060 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7061 if (!once_value_80) {
7062 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7063 REGB1 = TAG_Int(19);
7064 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7065 once_value_80 = fra.me.REG[7];
7066 register_static_object(&once_value_80);
7067 } else fra.me.REG[7] = once_value_80;
7068 fra.me.REG[7] = fra.me.REG[7];
7069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7070 REGB1 = TAG_Int(0);
7071 /* ../lib/standard/collection/array.nit:278 */
7072 fra.me.REG[7] = fra.me.REG[4];
7073 /* ../lib/standard/collection/array.nit:280 */
7074 REGB2 = TAG_Int(0);
7075 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7076 if (UNTAG_Bool(REGB0)) {
7077 } else {
7078 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7079 }
7080 /* ../lib/standard/kernel.nit:236 */
7081 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7082 /* ../lib/standard/collection/array.nit:280 */
7083 if (UNTAG_Bool(REGB2)) {
7084 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7085 if (UNTAG_Bool(REGB2)) {
7086 } else {
7087 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7088 }
7089 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7090 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7091 if (UNTAG_Bool(REGB0)) {
7092 } else {
7093 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7094 }
7095 /* ../lib/standard/kernel.nit:235 */
7096 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7097 } else {
7098 /* ../lib/standard/collection/array.nit:280 */
7099 REGB0 = TAG_Bool(0);
7100 REGB2 = REGB0;
7101 }
7102 if (UNTAG_Bool(REGB2)) {
7103 } else {
7104 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7105 }
7106 /* ../lib/standard/collection/array.nit:281 */
7107 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7108 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7109 if (UNTAG_Bool(REGB2)) {
7110 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7111 }
7112 /* ../lib/standard/collection/array.nit:718 */
7113 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7114 /* ../lib/standard/collection/array.nit:281 */
7115 goto label81;
7116 label81: while(0);
7117 /* compiling/compiling_icode.nit:758 */
7118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7119 if (!once_value_82) {
7120 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
7121 REGB1 = TAG_Int(12);
7122 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7123 once_value_82 = fra.me.REG[7];
7124 register_static_object(&once_value_82);
7125 } else fra.me.REG[7] = once_value_82;
7126 fra.me.REG[7] = fra.me.REG[7];
7127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7128 REGB1 = TAG_Int(1);
7129 /* ../lib/standard/collection/array.nit:278 */
7130 fra.me.REG[7] = fra.me.REG[4];
7131 /* ../lib/standard/collection/array.nit:280 */
7132 REGB2 = TAG_Int(0);
7133 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7134 if (UNTAG_Bool(REGB0)) {
7135 } else {
7136 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7137 }
7138 /* ../lib/standard/kernel.nit:236 */
7139 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7140 /* ../lib/standard/collection/array.nit:280 */
7141 if (UNTAG_Bool(REGB2)) {
7142 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7143 if (UNTAG_Bool(REGB2)) {
7144 } else {
7145 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7146 }
7147 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7148 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7149 if (UNTAG_Bool(REGB0)) {
7150 } else {
7151 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7152 }
7153 /* ../lib/standard/kernel.nit:235 */
7154 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7155 } else {
7156 /* ../lib/standard/collection/array.nit:280 */
7157 REGB0 = TAG_Bool(0);
7158 REGB2 = REGB0;
7159 }
7160 if (UNTAG_Bool(REGB2)) {
7161 } else {
7162 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7163 }
7164 /* ../lib/standard/collection/array.nit:281 */
7165 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7166 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7167 if (UNTAG_Bool(REGB2)) {
7168 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7169 }
7170 /* ../lib/standard/collection/array.nit:718 */
7171 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7172 /* ../lib/standard/collection/array.nit:281 */
7173 goto label83;
7174 label83: while(0);
7175 /* compiling/compiling_icode.nit:758 */
7176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7177 if (!once_value_84) {
7178 fra.me.REG[7] = BOX_NativeString("))");
7179 REGB1 = TAG_Int(2);
7180 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7181 once_value_84 = fra.me.REG[7];
7182 register_static_object(&once_value_84);
7183 } else fra.me.REG[7] = once_value_84;
7184 fra.me.REG[7] = fra.me.REG[7];
7185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7186 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7187 fra.me.REG[5] = fra.me.REG[6];
7188 } else {
7189 /* compiling/compiling_icode.nit:759 */
7190 if (!once_value_85) {
7191 if (!once_value_86) {
7192 fra.me.REG[6] = BOX_NativeString("<=");
7193 REGB1 = TAG_Int(2);
7194 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7195 once_value_86 = fra.me.REG[6];
7196 register_static_object(&once_value_86);
7197 } else fra.me.REG[6] = once_value_86;
7198 fra.me.REG[6] = fra.me.REG[6];
7199 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7200 once_value_85 = fra.me.REG[6];
7201 register_static_object(&once_value_85);
7202 } else fra.me.REG[6] = once_value_85;
7203 fra.me.REG[6] = fra.me.REG[6];
7204 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7205 if (UNTAG_Bool(REGB1)) {
7206 } else {
7207 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7208 REGB1 = REGB2;
7209 }
7210 if (UNTAG_Bool(REGB1)) {
7211 /* compiling/compiling_icode.nit:760 */
7212 REGB1 = TAG_Int(5);
7213 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7214 if (!once_value_87) {
7215 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7216 REGB1 = TAG_Int(19);
7217 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7218 once_value_87 = fra.me.REG[7];
7219 register_static_object(&once_value_87);
7220 } else fra.me.REG[7] = once_value_87;
7221 fra.me.REG[7] = fra.me.REG[7];
7222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7223 REGB1 = TAG_Int(0);
7224 /* ../lib/standard/collection/array.nit:278 */
7225 fra.me.REG[7] = fra.me.REG[4];
7226 /* ../lib/standard/collection/array.nit:280 */
7227 REGB2 = TAG_Int(0);
7228 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7229 if (UNTAG_Bool(REGB0)) {
7230 } else {
7231 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7232 }
7233 /* ../lib/standard/kernel.nit:236 */
7234 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7235 /* ../lib/standard/collection/array.nit:280 */
7236 if (UNTAG_Bool(REGB2)) {
7237 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7238 if (UNTAG_Bool(REGB2)) {
7239 } else {
7240 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7241 }
7242 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7243 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7244 if (UNTAG_Bool(REGB0)) {
7245 } else {
7246 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7247 }
7248 /* ../lib/standard/kernel.nit:235 */
7249 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7250 } else {
7251 /* ../lib/standard/collection/array.nit:280 */
7252 REGB0 = TAG_Bool(0);
7253 REGB2 = REGB0;
7254 }
7255 if (UNTAG_Bool(REGB2)) {
7256 } else {
7257 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7258 }
7259 /* ../lib/standard/collection/array.nit:281 */
7260 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7261 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7262 if (UNTAG_Bool(REGB2)) {
7263 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7264 }
7265 /* ../lib/standard/collection/array.nit:718 */
7266 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7267 /* ../lib/standard/collection/array.nit:281 */
7268 goto label88;
7269 label88: while(0);
7270 /* compiling/compiling_icode.nit:760 */
7271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7272 if (!once_value_89) {
7273 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
7274 REGB1 = TAG_Int(13);
7275 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7276 once_value_89 = fra.me.REG[7];
7277 register_static_object(&once_value_89);
7278 } else fra.me.REG[7] = once_value_89;
7279 fra.me.REG[7] = fra.me.REG[7];
7280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7281 REGB1 = TAG_Int(1);
7282 /* ../lib/standard/collection/array.nit:278 */
7283 fra.me.REG[7] = fra.me.REG[4];
7284 /* ../lib/standard/collection/array.nit:280 */
7285 REGB2 = TAG_Int(0);
7286 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7287 if (UNTAG_Bool(REGB0)) {
7288 } else {
7289 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7290 }
7291 /* ../lib/standard/kernel.nit:236 */
7292 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7293 /* ../lib/standard/collection/array.nit:280 */
7294 if (UNTAG_Bool(REGB2)) {
7295 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7296 if (UNTAG_Bool(REGB2)) {
7297 } else {
7298 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7299 }
7300 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7301 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7302 if (UNTAG_Bool(REGB0)) {
7303 } else {
7304 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7305 }
7306 /* ../lib/standard/kernel.nit:235 */
7307 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7308 } else {
7309 /* ../lib/standard/collection/array.nit:280 */
7310 REGB0 = TAG_Bool(0);
7311 REGB2 = REGB0;
7312 }
7313 if (UNTAG_Bool(REGB2)) {
7314 } else {
7315 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7316 }
7317 /* ../lib/standard/collection/array.nit:281 */
7318 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7319 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7320 if (UNTAG_Bool(REGB2)) {
7321 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7322 }
7323 /* ../lib/standard/collection/array.nit:718 */
7324 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7325 /* ../lib/standard/collection/array.nit:281 */
7326 goto label90;
7327 label90: while(0);
7328 /* compiling/compiling_icode.nit:760 */
7329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7330 if (!once_value_91) {
7331 fra.me.REG[7] = BOX_NativeString("))");
7332 REGB1 = TAG_Int(2);
7333 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7334 once_value_91 = fra.me.REG[7];
7335 register_static_object(&once_value_91);
7336 } else fra.me.REG[7] = once_value_91;
7337 fra.me.REG[7] = fra.me.REG[7];
7338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7339 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7340 fra.me.REG[5] = fra.me.REG[6];
7341 } else {
7342 /* compiling/compiling_icode.nit:761 */
7343 if (!once_value_92) {
7344 if (!once_value_93) {
7345 fra.me.REG[6] = BOX_NativeString(">=");
7346 REGB1 = TAG_Int(2);
7347 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7348 once_value_93 = fra.me.REG[6];
7349 register_static_object(&once_value_93);
7350 } else fra.me.REG[6] = once_value_93;
7351 fra.me.REG[6] = fra.me.REG[6];
7352 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7353 once_value_92 = fra.me.REG[6];
7354 register_static_object(&once_value_92);
7355 } else fra.me.REG[6] = once_value_92;
7356 fra.me.REG[6] = fra.me.REG[6];
7357 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7358 if (UNTAG_Bool(REGB1)) {
7359 } else {
7360 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7361 REGB1 = REGB2;
7362 }
7363 if (UNTAG_Bool(REGB1)) {
7364 /* compiling/compiling_icode.nit:762 */
7365 REGB1 = TAG_Int(5);
7366 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7367 if (!once_value_94) {
7368 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7369 REGB1 = TAG_Int(19);
7370 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7371 once_value_94 = fra.me.REG[7];
7372 register_static_object(&once_value_94);
7373 } else fra.me.REG[7] = once_value_94;
7374 fra.me.REG[7] = fra.me.REG[7];
7375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7376 REGB1 = TAG_Int(0);
7377 /* ../lib/standard/collection/array.nit:278 */
7378 fra.me.REG[7] = fra.me.REG[4];
7379 /* ../lib/standard/collection/array.nit:280 */
7380 REGB2 = TAG_Int(0);
7381 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7382 if (UNTAG_Bool(REGB0)) {
7383 } else {
7384 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7385 }
7386 /* ../lib/standard/kernel.nit:236 */
7387 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7388 /* ../lib/standard/collection/array.nit:280 */
7389 if (UNTAG_Bool(REGB2)) {
7390 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7391 if (UNTAG_Bool(REGB2)) {
7392 } else {
7393 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7394 }
7395 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7396 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7397 if (UNTAG_Bool(REGB0)) {
7398 } else {
7399 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7400 }
7401 /* ../lib/standard/kernel.nit:235 */
7402 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7403 } else {
7404 /* ../lib/standard/collection/array.nit:280 */
7405 REGB0 = TAG_Bool(0);
7406 REGB2 = REGB0;
7407 }
7408 if (UNTAG_Bool(REGB2)) {
7409 } else {
7410 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7411 }
7412 /* ../lib/standard/collection/array.nit:281 */
7413 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7414 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7415 if (UNTAG_Bool(REGB2)) {
7416 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7417 }
7418 /* ../lib/standard/collection/array.nit:718 */
7419 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7420 /* ../lib/standard/collection/array.nit:281 */
7421 goto label95;
7422 label95: while(0);
7423 /* compiling/compiling_icode.nit:762 */
7424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7425 if (!once_value_96) {
7426 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
7427 REGB1 = TAG_Int(13);
7428 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7429 once_value_96 = fra.me.REG[7];
7430 register_static_object(&once_value_96);
7431 } else fra.me.REG[7] = once_value_96;
7432 fra.me.REG[7] = fra.me.REG[7];
7433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7434 REGB1 = TAG_Int(1);
7435 /* ../lib/standard/collection/array.nit:278 */
7436 fra.me.REG[7] = fra.me.REG[4];
7437 /* ../lib/standard/collection/array.nit:280 */
7438 REGB2 = TAG_Int(0);
7439 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7440 if (UNTAG_Bool(REGB0)) {
7441 } else {
7442 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7443 }
7444 /* ../lib/standard/kernel.nit:236 */
7445 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7446 /* ../lib/standard/collection/array.nit:280 */
7447 if (UNTAG_Bool(REGB2)) {
7448 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7449 if (UNTAG_Bool(REGB2)) {
7450 } else {
7451 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7452 }
7453 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7454 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7455 if (UNTAG_Bool(REGB0)) {
7456 } else {
7457 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7458 }
7459 /* ../lib/standard/kernel.nit:235 */
7460 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7461 } else {
7462 /* ../lib/standard/collection/array.nit:280 */
7463 REGB0 = TAG_Bool(0);
7464 REGB2 = REGB0;
7465 }
7466 if (UNTAG_Bool(REGB2)) {
7467 } else {
7468 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7469 }
7470 /* ../lib/standard/collection/array.nit:281 */
7471 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7472 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7473 if (UNTAG_Bool(REGB2)) {
7474 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7475 }
7476 /* ../lib/standard/collection/array.nit:718 */
7477 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7478 /* ../lib/standard/collection/array.nit:281 */
7479 goto label97;
7480 label97: while(0);
7481 /* compiling/compiling_icode.nit:762 */
7482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7483 if (!once_value_98) {
7484 fra.me.REG[7] = BOX_NativeString("))");
7485 REGB1 = TAG_Int(2);
7486 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7487 once_value_98 = fra.me.REG[7];
7488 register_static_object(&once_value_98);
7489 } else fra.me.REG[7] = once_value_98;
7490 fra.me.REG[7] = fra.me.REG[7];
7491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7492 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7493 fra.me.REG[5] = fra.me.REG[6];
7494 } else {
7495 /* compiling/compiling_icode.nit:763 */
7496 if (!once_value_99) {
7497 if (!once_value_100) {
7498 fra.me.REG[6] = BOX_NativeString("lshift");
7499 REGB1 = TAG_Int(6);
7500 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7501 once_value_100 = fra.me.REG[6];
7502 register_static_object(&once_value_100);
7503 } else fra.me.REG[6] = once_value_100;
7504 fra.me.REG[6] = fra.me.REG[6];
7505 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7506 once_value_99 = fra.me.REG[6];
7507 register_static_object(&once_value_99);
7508 } else fra.me.REG[6] = once_value_99;
7509 fra.me.REG[6] = fra.me.REG[6];
7510 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7511 if (UNTAG_Bool(REGB1)) {
7512 } else {
7513 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7514 REGB1 = REGB2;
7515 }
7516 if (UNTAG_Bool(REGB1)) {
7517 /* compiling/compiling_icode.nit:764 */
7518 REGB1 = TAG_Int(5);
7519 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7520 if (!once_value_101) {
7521 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7522 REGB1 = TAG_Int(18);
7523 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7524 once_value_101 = fra.me.REG[7];
7525 register_static_object(&once_value_101);
7526 } else fra.me.REG[7] = once_value_101;
7527 fra.me.REG[7] = fra.me.REG[7];
7528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7529 REGB1 = TAG_Int(0);
7530 /* ../lib/standard/collection/array.nit:278 */
7531 fra.me.REG[7] = fra.me.REG[4];
7532 /* ../lib/standard/collection/array.nit:280 */
7533 REGB2 = TAG_Int(0);
7534 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7535 if (UNTAG_Bool(REGB0)) {
7536 } else {
7537 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7538 }
7539 /* ../lib/standard/kernel.nit:236 */
7540 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7541 /* ../lib/standard/collection/array.nit:280 */
7542 if (UNTAG_Bool(REGB2)) {
7543 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7544 if (UNTAG_Bool(REGB2)) {
7545 } else {
7546 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7547 }
7548 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7549 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7550 if (UNTAG_Bool(REGB0)) {
7551 } else {
7552 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7553 }
7554 /* ../lib/standard/kernel.nit:235 */
7555 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7556 } else {
7557 /* ../lib/standard/collection/array.nit:280 */
7558 REGB0 = TAG_Bool(0);
7559 REGB2 = REGB0;
7560 }
7561 if (UNTAG_Bool(REGB2)) {
7562 } else {
7563 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7564 }
7565 /* ../lib/standard/collection/array.nit:281 */
7566 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7567 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7568 if (UNTAG_Bool(REGB2)) {
7569 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7570 }
7571 /* ../lib/standard/collection/array.nit:718 */
7572 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7573 /* ../lib/standard/collection/array.nit:281 */
7574 goto label102;
7575 label102: while(0);
7576 /* compiling/compiling_icode.nit:764 */
7577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7578 if (!once_value_103) {
7579 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7580 REGB1 = TAG_Int(13);
7581 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7582 once_value_103 = fra.me.REG[7];
7583 register_static_object(&once_value_103);
7584 } else fra.me.REG[7] = once_value_103;
7585 fra.me.REG[7] = fra.me.REG[7];
7586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7587 REGB1 = TAG_Int(1);
7588 /* ../lib/standard/collection/array.nit:278 */
7589 fra.me.REG[7] = fra.me.REG[4];
7590 /* ../lib/standard/collection/array.nit:280 */
7591 REGB2 = TAG_Int(0);
7592 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7593 if (UNTAG_Bool(REGB0)) {
7594 } else {
7595 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7596 }
7597 /* ../lib/standard/kernel.nit:236 */
7598 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7599 /* ../lib/standard/collection/array.nit:280 */
7600 if (UNTAG_Bool(REGB2)) {
7601 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7602 if (UNTAG_Bool(REGB2)) {
7603 } else {
7604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7605 }
7606 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7607 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7608 if (UNTAG_Bool(REGB0)) {
7609 } else {
7610 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7611 }
7612 /* ../lib/standard/kernel.nit:235 */
7613 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7614 } else {
7615 /* ../lib/standard/collection/array.nit:280 */
7616 REGB0 = TAG_Bool(0);
7617 REGB2 = REGB0;
7618 }
7619 if (UNTAG_Bool(REGB2)) {
7620 } else {
7621 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7622 }
7623 /* ../lib/standard/collection/array.nit:281 */
7624 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7625 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7626 if (UNTAG_Bool(REGB2)) {
7627 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7628 }
7629 /* ../lib/standard/collection/array.nit:718 */
7630 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7631 /* ../lib/standard/collection/array.nit:281 */
7632 goto label104;
7633 label104: while(0);
7634 /* compiling/compiling_icode.nit:764 */
7635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7636 if (!once_value_105) {
7637 fra.me.REG[7] = BOX_NativeString("))");
7638 REGB1 = TAG_Int(2);
7639 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7640 once_value_105 = fra.me.REG[7];
7641 register_static_object(&once_value_105);
7642 } else fra.me.REG[7] = once_value_105;
7643 fra.me.REG[7] = fra.me.REG[7];
7644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7645 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7646 fra.me.REG[5] = fra.me.REG[6];
7647 } else {
7648 /* compiling/compiling_icode.nit:765 */
7649 if (!once_value_106) {
7650 if (!once_value_107) {
7651 fra.me.REG[6] = BOX_NativeString("rshift");
7652 REGB1 = TAG_Int(6);
7653 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7654 once_value_107 = fra.me.REG[6];
7655 register_static_object(&once_value_107);
7656 } else fra.me.REG[6] = once_value_107;
7657 fra.me.REG[6] = fra.me.REG[6];
7658 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7659 once_value_106 = fra.me.REG[6];
7660 register_static_object(&once_value_106);
7661 } else fra.me.REG[6] = once_value_106;
7662 fra.me.REG[6] = fra.me.REG[6];
7663 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7664 if (UNTAG_Bool(REGB1)) {
7665 } else {
7666 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7667 REGB1 = REGB2;
7668 }
7669 if (UNTAG_Bool(REGB1)) {
7670 /* compiling/compiling_icode.nit:766 */
7671 REGB1 = TAG_Int(5);
7672 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7673 if (!once_value_108) {
7674 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7675 REGB1 = TAG_Int(18);
7676 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7677 once_value_108 = fra.me.REG[7];
7678 register_static_object(&once_value_108);
7679 } else fra.me.REG[7] = once_value_108;
7680 fra.me.REG[7] = fra.me.REG[7];
7681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7682 REGB1 = TAG_Int(0);
7683 /* ../lib/standard/collection/array.nit:278 */
7684 fra.me.REG[7] = fra.me.REG[4];
7685 /* ../lib/standard/collection/array.nit:280 */
7686 REGB2 = TAG_Int(0);
7687 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7688 if (UNTAG_Bool(REGB0)) {
7689 } else {
7690 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7691 }
7692 /* ../lib/standard/kernel.nit:236 */
7693 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7694 /* ../lib/standard/collection/array.nit:280 */
7695 if (UNTAG_Bool(REGB2)) {
7696 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7697 if (UNTAG_Bool(REGB2)) {
7698 } else {
7699 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7700 }
7701 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7702 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7703 if (UNTAG_Bool(REGB0)) {
7704 } else {
7705 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7706 }
7707 /* ../lib/standard/kernel.nit:235 */
7708 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7709 } else {
7710 /* ../lib/standard/collection/array.nit:280 */
7711 REGB0 = TAG_Bool(0);
7712 REGB2 = REGB0;
7713 }
7714 if (UNTAG_Bool(REGB2)) {
7715 } else {
7716 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7717 }
7718 /* ../lib/standard/collection/array.nit:281 */
7719 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7720 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7721 if (UNTAG_Bool(REGB2)) {
7722 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7723 }
7724 /* ../lib/standard/collection/array.nit:718 */
7725 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7726 /* ../lib/standard/collection/array.nit:281 */
7727 goto label109;
7728 label109: while(0);
7729 /* compiling/compiling_icode.nit:766 */
7730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7731 if (!once_value_110) {
7732 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7733 REGB1 = TAG_Int(13);
7734 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7735 once_value_110 = fra.me.REG[7];
7736 register_static_object(&once_value_110);
7737 } else fra.me.REG[7] = once_value_110;
7738 fra.me.REG[7] = fra.me.REG[7];
7739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7740 REGB1 = TAG_Int(1);
7741 /* ../lib/standard/collection/array.nit:278 */
7742 fra.me.REG[7] = fra.me.REG[4];
7743 /* ../lib/standard/collection/array.nit:280 */
7744 REGB2 = TAG_Int(0);
7745 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7746 if (UNTAG_Bool(REGB0)) {
7747 } else {
7748 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7749 }
7750 /* ../lib/standard/kernel.nit:236 */
7751 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7752 /* ../lib/standard/collection/array.nit:280 */
7753 if (UNTAG_Bool(REGB2)) {
7754 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7755 if (UNTAG_Bool(REGB2)) {
7756 } else {
7757 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7758 }
7759 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7760 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7761 if (UNTAG_Bool(REGB0)) {
7762 } else {
7763 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7764 }
7765 /* ../lib/standard/kernel.nit:235 */
7766 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7767 } else {
7768 /* ../lib/standard/collection/array.nit:280 */
7769 REGB0 = TAG_Bool(0);
7770 REGB2 = REGB0;
7771 }
7772 if (UNTAG_Bool(REGB2)) {
7773 } else {
7774 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7775 }
7776 /* ../lib/standard/collection/array.nit:281 */
7777 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7778 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7779 if (UNTAG_Bool(REGB2)) {
7780 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7781 }
7782 /* ../lib/standard/collection/array.nit:718 */
7783 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7784 /* ../lib/standard/collection/array.nit:281 */
7785 goto label111;
7786 label111: while(0);
7787 /* compiling/compiling_icode.nit:766 */
7788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7789 if (!once_value_112) {
7790 fra.me.REG[7] = BOX_NativeString("))");
7791 REGB1 = TAG_Int(2);
7792 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7793 once_value_112 = fra.me.REG[7];
7794 register_static_object(&once_value_112);
7795 } else fra.me.REG[7] = once_value_112;
7796 fra.me.REG[7] = fra.me.REG[7];
7797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7798 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7799 fra.me.REG[5] = fra.me.REG[6];
7800 } else {
7801 /* compiling/compiling_icode.nit:767 */
7802 if (!once_value_113) {
7803 if (!once_value_114) {
7804 fra.me.REG[6] = BOX_NativeString("==");
7805 REGB1 = TAG_Int(2);
7806 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7807 once_value_114 = fra.me.REG[6];
7808 register_static_object(&once_value_114);
7809 } else fra.me.REG[6] = once_value_114;
7810 fra.me.REG[6] = fra.me.REG[6];
7811 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7812 once_value_113 = fra.me.REG[6];
7813 register_static_object(&once_value_113);
7814 } else fra.me.REG[6] = once_value_113;
7815 fra.me.REG[6] = fra.me.REG[6];
7816 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7817 if (UNTAG_Bool(REGB1)) {
7818 } else {
7819 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7820 REGB1 = REGB2;
7821 }
7822 if (UNTAG_Bool(REGB1)) {
7823 /* compiling/compiling_icode.nit:768 */
7824 REGB1 = TAG_Int(5);
7825 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7826 if (!once_value_115) {
7827 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7828 REGB1 = TAG_Int(10);
7829 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7830 once_value_115 = fra.me.REG[7];
7831 register_static_object(&once_value_115);
7832 } else fra.me.REG[7] = once_value_115;
7833 fra.me.REG[7] = fra.me.REG[7];
7834 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7835 REGB1 = TAG_Int(0);
7836 /* ../lib/standard/collection/array.nit:278 */
7837 fra.me.REG[7] = fra.me.REG[4];
7838 /* ../lib/standard/collection/array.nit:280 */
7839 REGB2 = TAG_Int(0);
7840 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7841 if (UNTAG_Bool(REGB0)) {
7842 } else {
7843 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7844 }
7845 /* ../lib/standard/kernel.nit:236 */
7846 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7847 /* ../lib/standard/collection/array.nit:280 */
7848 if (UNTAG_Bool(REGB2)) {
7849 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7850 if (UNTAG_Bool(REGB2)) {
7851 } else {
7852 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7853 }
7854 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7855 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7856 if (UNTAG_Bool(REGB0)) {
7857 } else {
7858 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7859 }
7860 /* ../lib/standard/kernel.nit:235 */
7861 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7862 } else {
7863 /* ../lib/standard/collection/array.nit:280 */
7864 REGB0 = TAG_Bool(0);
7865 REGB2 = REGB0;
7866 }
7867 if (UNTAG_Bool(REGB2)) {
7868 } else {
7869 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7870 }
7871 /* ../lib/standard/collection/array.nit:281 */
7872 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7873 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7874 if (UNTAG_Bool(REGB2)) {
7875 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7876 }
7877 /* ../lib/standard/collection/array.nit:718 */
7878 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7879 /* ../lib/standard/collection/array.nit:281 */
7880 goto label116;
7881 label116: while(0);
7882 /* compiling/compiling_icode.nit:768 */
7883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7884 if (!once_value_117) {
7885 fra.me.REG[7] = BOX_NativeString(")==(");
7886 REGB1 = TAG_Int(4);
7887 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7888 once_value_117 = fra.me.REG[7];
7889 register_static_object(&once_value_117);
7890 } else fra.me.REG[7] = once_value_117;
7891 fra.me.REG[7] = fra.me.REG[7];
7892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7893 REGB1 = TAG_Int(1);
7894 /* ../lib/standard/collection/array.nit:278 */
7895 fra.me.REG[7] = fra.me.REG[4];
7896 /* ../lib/standard/collection/array.nit:280 */
7897 REGB2 = TAG_Int(0);
7898 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7899 if (UNTAG_Bool(REGB0)) {
7900 } else {
7901 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7902 }
7903 /* ../lib/standard/kernel.nit:236 */
7904 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7905 /* ../lib/standard/collection/array.nit:280 */
7906 if (UNTAG_Bool(REGB2)) {
7907 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7908 if (UNTAG_Bool(REGB2)) {
7909 } else {
7910 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7911 }
7912 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7913 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7914 if (UNTAG_Bool(REGB0)) {
7915 } else {
7916 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7917 }
7918 /* ../lib/standard/kernel.nit:235 */
7919 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7920 } else {
7921 /* ../lib/standard/collection/array.nit:280 */
7922 REGB0 = TAG_Bool(0);
7923 REGB2 = REGB0;
7924 }
7925 if (UNTAG_Bool(REGB2)) {
7926 } else {
7927 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7928 }
7929 /* ../lib/standard/collection/array.nit:281 */
7930 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7931 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7932 if (UNTAG_Bool(REGB2)) {
7933 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7934 }
7935 /* ../lib/standard/collection/array.nit:718 */
7936 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7937 /* ../lib/standard/collection/array.nit:281 */
7938 goto label118;
7939 label118: while(0);
7940 /* compiling/compiling_icode.nit:768 */
7941 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7942 if (!once_value_119) {
7943 fra.me.REG[7] = BOX_NativeString("))");
7944 REGB1 = TAG_Int(2);
7945 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7946 once_value_119 = fra.me.REG[7];
7947 register_static_object(&once_value_119);
7948 } else fra.me.REG[7] = once_value_119;
7949 fra.me.REG[7] = fra.me.REG[7];
7950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7951 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7952 fra.me.REG[5] = fra.me.REG[6];
7953 } else {
7954 /* compiling/compiling_icode.nit:769 */
7955 if (!once_value_120) {
7956 if (!once_value_121) {
7957 fra.me.REG[6] = BOX_NativeString("!=");
7958 REGB1 = TAG_Int(2);
7959 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7960 once_value_121 = fra.me.REG[6];
7961 register_static_object(&once_value_121);
7962 } else fra.me.REG[6] = once_value_121;
7963 fra.me.REG[6] = fra.me.REG[6];
7964 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7965 once_value_120 = fra.me.REG[6];
7966 register_static_object(&once_value_120);
7967 } else fra.me.REG[6] = once_value_120;
7968 fra.me.REG[6] = fra.me.REG[6];
7969 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7970 if (UNTAG_Bool(REGB1)) {
7971 } else {
7972 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7973 REGB1 = REGB2;
7974 }
7975 if (UNTAG_Bool(REGB1)) {
7976 /* compiling/compiling_icode.nit:770 */
7977 REGB1 = TAG_Int(5);
7978 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7979 if (!once_value_122) {
7980 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7981 REGB1 = TAG_Int(10);
7982 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7983 once_value_122 = fra.me.REG[7];
7984 register_static_object(&once_value_122);
7985 } else fra.me.REG[7] = once_value_122;
7986 fra.me.REG[7] = fra.me.REG[7];
7987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7988 REGB1 = TAG_Int(0);
7989 /* ../lib/standard/collection/array.nit:278 */
7990 fra.me.REG[7] = fra.me.REG[4];
7991 /* ../lib/standard/collection/array.nit:280 */
7992 REGB2 = TAG_Int(0);
7993 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7994 if (UNTAG_Bool(REGB0)) {
7995 } else {
7996 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7997 }
7998 /* ../lib/standard/kernel.nit:236 */
7999 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8000 /* ../lib/standard/collection/array.nit:280 */
8001 if (UNTAG_Bool(REGB2)) {
8002 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8003 if (UNTAG_Bool(REGB2)) {
8004 } else {
8005 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8006 }
8007 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8008 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8009 if (UNTAG_Bool(REGB0)) {
8010 } else {
8011 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8012 }
8013 /* ../lib/standard/kernel.nit:235 */
8014 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8015 } else {
8016 /* ../lib/standard/collection/array.nit:280 */
8017 REGB0 = TAG_Bool(0);
8018 REGB2 = REGB0;
8019 }
8020 if (UNTAG_Bool(REGB2)) {
8021 } else {
8022 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8023 }
8024 /* ../lib/standard/collection/array.nit:281 */
8025 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8026 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8027 if (UNTAG_Bool(REGB2)) {
8028 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8029 }
8030 /* ../lib/standard/collection/array.nit:718 */
8031 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8032 /* ../lib/standard/collection/array.nit:281 */
8033 goto label123;
8034 label123: while(0);
8035 /* compiling/compiling_icode.nit:770 */
8036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8037 if (!once_value_124) {
8038 fra.me.REG[7] = BOX_NativeString(")!=(");
8039 REGB1 = TAG_Int(4);
8040 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8041 once_value_124 = fra.me.REG[7];
8042 register_static_object(&once_value_124);
8043 } else fra.me.REG[7] = once_value_124;
8044 fra.me.REG[7] = fra.me.REG[7];
8045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8046 REGB1 = TAG_Int(1);
8047 /* ../lib/standard/collection/array.nit:278 */
8048 fra.me.REG[7] = fra.me.REG[4];
8049 /* ../lib/standard/collection/array.nit:280 */
8050 REGB2 = TAG_Int(0);
8051 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8052 if (UNTAG_Bool(REGB0)) {
8053 } else {
8054 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8055 }
8056 /* ../lib/standard/kernel.nit:236 */
8057 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8058 /* ../lib/standard/collection/array.nit:280 */
8059 if (UNTAG_Bool(REGB2)) {
8060 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8061 if (UNTAG_Bool(REGB2)) {
8062 } else {
8063 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8064 }
8065 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8066 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8067 if (UNTAG_Bool(REGB0)) {
8068 } else {
8069 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8070 }
8071 /* ../lib/standard/kernel.nit:235 */
8072 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8073 } else {
8074 /* ../lib/standard/collection/array.nit:280 */
8075 REGB0 = TAG_Bool(0);
8076 REGB2 = REGB0;
8077 }
8078 if (UNTAG_Bool(REGB2)) {
8079 } else {
8080 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8081 }
8082 /* ../lib/standard/collection/array.nit:281 */
8083 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8084 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8085 if (UNTAG_Bool(REGB2)) {
8086 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8087 }
8088 /* ../lib/standard/collection/array.nit:718 */
8089 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8090 /* ../lib/standard/collection/array.nit:281 */
8091 goto label125;
8092 label125: while(0);
8093 /* compiling/compiling_icode.nit:770 */
8094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8095 if (!once_value_126) {
8096 fra.me.REG[7] = BOX_NativeString("))");
8097 REGB1 = TAG_Int(2);
8098 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8099 once_value_126 = fra.me.REG[7];
8100 register_static_object(&once_value_126);
8101 } else fra.me.REG[7] = once_value_126;
8102 fra.me.REG[7] = fra.me.REG[7];
8103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8104 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8105 fra.me.REG[5] = fra.me.REG[6];
8106 }
8107 }
8108 }
8109 }
8110 }
8111 }
8112 }
8113 }
8114 }
8115 }
8116 }
8117 }
8118 }
8119 }
8120 }
8121 }
8122 }
8123 }
8124 }
8125 }
8126 } else {
8127 /* compiling/compiling_icode.nit:772 */
8128 if (!once_value_127) {
8129 if (!once_value_128) {
8130 fra.me.REG[6] = BOX_NativeString("Float");
8131 REGB1 = TAG_Int(5);
8132 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8133 once_value_128 = fra.me.REG[6];
8134 register_static_object(&once_value_128);
8135 } else fra.me.REG[6] = once_value_128;
8136 fra.me.REG[6] = fra.me.REG[6];
8137 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8138 once_value_127 = fra.me.REG[6];
8139 register_static_object(&once_value_127);
8140 } else fra.me.REG[6] = once_value_127;
8141 fra.me.REG[6] = fra.me.REG[6];
8142 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8143 if (UNTAG_Bool(REGB1)) {
8144 } else {
8145 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8146 REGB1 = REGB2;
8147 }
8148 if (UNTAG_Bool(REGB1)) {
8149 /* compiling/compiling_icode.nit:773 */
8150 if (!once_value_129) {
8151 if (!once_value_130) {
8152 fra.me.REG[6] = BOX_NativeString("object_id");
8153 REGB1 = TAG_Int(9);
8154 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8155 once_value_130 = fra.me.REG[6];
8156 register_static_object(&once_value_130);
8157 } else fra.me.REG[6] = once_value_130;
8158 fra.me.REG[6] = fra.me.REG[6];
8159 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8160 once_value_129 = fra.me.REG[6];
8161 register_static_object(&once_value_129);
8162 } else fra.me.REG[6] = once_value_129;
8163 fra.me.REG[6] = fra.me.REG[6];
8164 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8165 if (UNTAG_Bool(REGB1)) {
8166 } else {
8167 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8168 REGB1 = REGB2;
8169 }
8170 if (UNTAG_Bool(REGB1)) {
8171 /* compiling/compiling_icode.nit:774 */
8172 REGB1 = TAG_Int(3);
8173 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8174 if (!once_value_131) {
8175 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8176 REGB1 = TAG_Int(28);
8177 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8178 once_value_131 = fra.me.REG[7];
8179 register_static_object(&once_value_131);
8180 } else fra.me.REG[7] = once_value_131;
8181 fra.me.REG[7] = fra.me.REG[7];
8182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8183 REGB1 = TAG_Int(0);
8184 /* ../lib/standard/collection/array.nit:278 */
8185 fra.me.REG[7] = fra.me.REG[4];
8186 /* ../lib/standard/collection/array.nit:280 */
8187 REGB2 = TAG_Int(0);
8188 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8189 if (UNTAG_Bool(REGB0)) {
8190 } else {
8191 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8192 }
8193 /* ../lib/standard/kernel.nit:236 */
8194 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8195 /* ../lib/standard/collection/array.nit:280 */
8196 if (UNTAG_Bool(REGB2)) {
8197 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8198 if (UNTAG_Bool(REGB2)) {
8199 } else {
8200 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8201 }
8202 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8203 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8204 if (UNTAG_Bool(REGB0)) {
8205 } else {
8206 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8207 }
8208 /* ../lib/standard/kernel.nit:235 */
8209 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8210 } else {
8211 /* ../lib/standard/collection/array.nit:280 */
8212 REGB0 = TAG_Bool(0);
8213 REGB2 = REGB0;
8214 }
8215 if (UNTAG_Bool(REGB2)) {
8216 } else {
8217 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8218 }
8219 /* ../lib/standard/collection/array.nit:281 */
8220 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8221 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8222 if (UNTAG_Bool(REGB2)) {
8223 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8224 }
8225 /* ../lib/standard/collection/array.nit:718 */
8226 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8227 /* ../lib/standard/collection/array.nit:281 */
8228 goto label132;
8229 label132: while(0);
8230 /* compiling/compiling_icode.nit:774 */
8231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8232 if (!once_value_133) {
8233 fra.me.REG[7] = BOX_NativeString("))");
8234 REGB1 = TAG_Int(2);
8235 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8236 once_value_133 = fra.me.REG[7];
8237 register_static_object(&once_value_133);
8238 } else fra.me.REG[7] = once_value_133;
8239 fra.me.REG[7] = fra.me.REG[7];
8240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8241 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8242 fra.me.REG[5] = fra.me.REG[6];
8243 } else {
8244 /* compiling/compiling_icode.nit:775 */
8245 if (!once_value_134) {
8246 if (!once_value_135) {
8247 fra.me.REG[6] = BOX_NativeString("unary -");
8248 REGB1 = TAG_Int(7);
8249 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8250 once_value_135 = fra.me.REG[6];
8251 register_static_object(&once_value_135);
8252 } else fra.me.REG[6] = once_value_135;
8253 fra.me.REG[6] = fra.me.REG[6];
8254 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8255 once_value_134 = fra.me.REG[6];
8256 register_static_object(&once_value_134);
8257 } else fra.me.REG[6] = once_value_134;
8258 fra.me.REG[6] = fra.me.REG[6];
8259 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8260 if (UNTAG_Bool(REGB1)) {
8261 } else {
8262 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8263 REGB1 = REGB2;
8264 }
8265 if (UNTAG_Bool(REGB1)) {
8266 /* compiling/compiling_icode.nit:776 */
8267 REGB1 = TAG_Int(3);
8268 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8269 if (!once_value_136) {
8270 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
8271 REGB1 = TAG_Int(23);
8272 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8273 once_value_136 = fra.me.REG[7];
8274 register_static_object(&once_value_136);
8275 } else fra.me.REG[7] = once_value_136;
8276 fra.me.REG[7] = fra.me.REG[7];
8277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8278 REGB1 = TAG_Int(0);
8279 /* ../lib/standard/collection/array.nit:278 */
8280 fra.me.REG[7] = fra.me.REG[4];
8281 /* ../lib/standard/collection/array.nit:280 */
8282 REGB2 = TAG_Int(0);
8283 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8284 if (UNTAG_Bool(REGB0)) {
8285 } else {
8286 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8287 }
8288 /* ../lib/standard/kernel.nit:236 */
8289 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8290 /* ../lib/standard/collection/array.nit:280 */
8291 if (UNTAG_Bool(REGB2)) {
8292 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8293 if (UNTAG_Bool(REGB2)) {
8294 } else {
8295 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8296 }
8297 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8298 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8299 if (UNTAG_Bool(REGB0)) {
8300 } else {
8301 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8302 }
8303 /* ../lib/standard/kernel.nit:235 */
8304 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8305 } else {
8306 /* ../lib/standard/collection/array.nit:280 */
8307 REGB0 = TAG_Bool(0);
8308 REGB2 = REGB0;
8309 }
8310 if (UNTAG_Bool(REGB2)) {
8311 } else {
8312 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8313 }
8314 /* ../lib/standard/collection/array.nit:281 */
8315 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8316 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8317 if (UNTAG_Bool(REGB2)) {
8318 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8319 }
8320 /* ../lib/standard/collection/array.nit:718 */
8321 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8322 /* ../lib/standard/collection/array.nit:281 */
8323 goto label137;
8324 label137: while(0);
8325 /* compiling/compiling_icode.nit:776 */
8326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8327 if (!once_value_138) {
8328 fra.me.REG[7] = BOX_NativeString("))");
8329 REGB1 = TAG_Int(2);
8330 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8331 once_value_138 = fra.me.REG[7];
8332 register_static_object(&once_value_138);
8333 } else fra.me.REG[7] = once_value_138;
8334 fra.me.REG[7] = fra.me.REG[7];
8335 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8336 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8337 fra.me.REG[5] = fra.me.REG[6];
8338 } else {
8339 /* compiling/compiling_icode.nit:777 */
8340 if (!once_value_139) {
8341 if (!once_value_140) {
8342 fra.me.REG[6] = BOX_NativeString("output");
8343 REGB1 = TAG_Int(6);
8344 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8345 once_value_140 = fra.me.REG[6];
8346 register_static_object(&once_value_140);
8347 } else fra.me.REG[6] = once_value_140;
8348 fra.me.REG[6] = fra.me.REG[6];
8349 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8350 once_value_139 = fra.me.REG[6];
8351 register_static_object(&once_value_139);
8352 } else fra.me.REG[6] = once_value_139;
8353 fra.me.REG[6] = fra.me.REG[6];
8354 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8355 if (UNTAG_Bool(REGB1)) {
8356 } else {
8357 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8358 REGB1 = REGB2;
8359 }
8360 if (UNTAG_Bool(REGB1)) {
8361 /* compiling/compiling_icode.nit:778 */
8362 REGB1 = TAG_Int(3);
8363 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8364 if (!once_value_141) {
8365 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
8366 REGB1 = TAG_Int(27);
8367 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8368 once_value_141 = fra.me.REG[7];
8369 register_static_object(&once_value_141);
8370 } else fra.me.REG[7] = once_value_141;
8371 fra.me.REG[7] = fra.me.REG[7];
8372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8373 REGB1 = TAG_Int(0);
8374 /* ../lib/standard/collection/array.nit:278 */
8375 fra.me.REG[7] = fra.me.REG[4];
8376 /* ../lib/standard/collection/array.nit:280 */
8377 REGB2 = TAG_Int(0);
8378 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8379 if (UNTAG_Bool(REGB0)) {
8380 } else {
8381 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8382 }
8383 /* ../lib/standard/kernel.nit:236 */
8384 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8385 /* ../lib/standard/collection/array.nit:280 */
8386 if (UNTAG_Bool(REGB2)) {
8387 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8388 if (UNTAG_Bool(REGB2)) {
8389 } else {
8390 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8391 }
8392 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8393 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8394 if (UNTAG_Bool(REGB0)) {
8395 } else {
8396 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8397 }
8398 /* ../lib/standard/kernel.nit:235 */
8399 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8400 } else {
8401 /* ../lib/standard/collection/array.nit:280 */
8402 REGB0 = TAG_Bool(0);
8403 REGB2 = REGB0;
8404 }
8405 if (UNTAG_Bool(REGB2)) {
8406 } else {
8407 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8408 }
8409 /* ../lib/standard/collection/array.nit:281 */
8410 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8411 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8412 if (UNTAG_Bool(REGB2)) {
8413 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8414 }
8415 /* ../lib/standard/collection/array.nit:718 */
8416 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8417 /* ../lib/standard/collection/array.nit:281 */
8418 goto label142;
8419 label142: while(0);
8420 /* compiling/compiling_icode.nit:778 */
8421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8422 if (!once_value_143) {
8423 fra.me.REG[7] = BOX_NativeString("));");
8424 REGB1 = TAG_Int(3);
8425 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8426 once_value_143 = fra.me.REG[7];
8427 register_static_object(&once_value_143);
8428 } else fra.me.REG[7] = once_value_143;
8429 fra.me.REG[7] = fra.me.REG[7];
8430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8431 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8432 fra.me.REG[5] = fra.me.REG[6];
8433 } else {
8434 /* compiling/compiling_icode.nit:779 */
8435 if (!once_value_144) {
8436 if (!once_value_145) {
8437 fra.me.REG[6] = BOX_NativeString("to_i");
8438 REGB1 = TAG_Int(4);
8439 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8440 once_value_145 = fra.me.REG[6];
8441 register_static_object(&once_value_145);
8442 } else fra.me.REG[6] = once_value_145;
8443 fra.me.REG[6] = fra.me.REG[6];
8444 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8445 once_value_144 = fra.me.REG[6];
8446 register_static_object(&once_value_144);
8447 } else fra.me.REG[6] = once_value_144;
8448 fra.me.REG[6] = fra.me.REG[6];
8449 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8450 if (UNTAG_Bool(REGB1)) {
8451 } else {
8452 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8453 REGB1 = REGB2;
8454 }
8455 if (UNTAG_Bool(REGB1)) {
8456 /* compiling/compiling_icode.nit:780 */
8457 REGB1 = TAG_Int(3);
8458 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8459 if (!once_value_146) {
8460 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8461 REGB1 = TAG_Int(28);
8462 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8463 once_value_146 = fra.me.REG[7];
8464 register_static_object(&once_value_146);
8465 } else fra.me.REG[7] = once_value_146;
8466 fra.me.REG[7] = fra.me.REG[7];
8467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8468 REGB1 = TAG_Int(0);
8469 /* ../lib/standard/collection/array.nit:278 */
8470 fra.me.REG[7] = fra.me.REG[4];
8471 /* ../lib/standard/collection/array.nit:280 */
8472 REGB2 = TAG_Int(0);
8473 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8474 if (UNTAG_Bool(REGB0)) {
8475 } else {
8476 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8477 }
8478 /* ../lib/standard/kernel.nit:236 */
8479 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8480 /* ../lib/standard/collection/array.nit:280 */
8481 if (UNTAG_Bool(REGB2)) {
8482 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8483 if (UNTAG_Bool(REGB2)) {
8484 } else {
8485 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8486 }
8487 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8488 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8489 if (UNTAG_Bool(REGB0)) {
8490 } else {
8491 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8492 }
8493 /* ../lib/standard/kernel.nit:235 */
8494 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8495 } else {
8496 /* ../lib/standard/collection/array.nit:280 */
8497 REGB0 = TAG_Bool(0);
8498 REGB2 = REGB0;
8499 }
8500 if (UNTAG_Bool(REGB2)) {
8501 } else {
8502 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8503 }
8504 /* ../lib/standard/collection/array.nit:281 */
8505 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8506 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8507 if (UNTAG_Bool(REGB2)) {
8508 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8509 }
8510 /* ../lib/standard/collection/array.nit:718 */
8511 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8512 /* ../lib/standard/collection/array.nit:281 */
8513 goto label147;
8514 label147: while(0);
8515 /* compiling/compiling_icode.nit:780 */
8516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8517 if (!once_value_148) {
8518 fra.me.REG[7] = BOX_NativeString("))");
8519 REGB1 = TAG_Int(2);
8520 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8521 once_value_148 = fra.me.REG[7];
8522 register_static_object(&once_value_148);
8523 } else fra.me.REG[7] = once_value_148;
8524 fra.me.REG[7] = fra.me.REG[7];
8525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8526 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8527 fra.me.REG[5] = fra.me.REG[6];
8528 } else {
8529 /* compiling/compiling_icode.nit:781 */
8530 if (!once_value_149) {
8531 if (!once_value_150) {
8532 fra.me.REG[6] = BOX_NativeString("+");
8533 REGB1 = TAG_Int(1);
8534 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8535 once_value_150 = fra.me.REG[6];
8536 register_static_object(&once_value_150);
8537 } else fra.me.REG[6] = once_value_150;
8538 fra.me.REG[6] = fra.me.REG[6];
8539 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8540 once_value_149 = fra.me.REG[6];
8541 register_static_object(&once_value_149);
8542 } else fra.me.REG[6] = once_value_149;
8543 fra.me.REG[6] = fra.me.REG[6];
8544 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8545 if (UNTAG_Bool(REGB1)) {
8546 } else {
8547 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8548 REGB1 = REGB2;
8549 }
8550 if (UNTAG_Bool(REGB1)) {
8551 /* compiling/compiling_icode.nit:782 */
8552 REGB1 = TAG_Int(5);
8553 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8554 if (!once_value_151) {
8555 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8556 REGB1 = TAG_Int(22);
8557 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8558 once_value_151 = fra.me.REG[7];
8559 register_static_object(&once_value_151);
8560 } else fra.me.REG[7] = once_value_151;
8561 fra.me.REG[7] = fra.me.REG[7];
8562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8563 REGB1 = TAG_Int(0);
8564 /* ../lib/standard/collection/array.nit:278 */
8565 fra.me.REG[7] = fra.me.REG[4];
8566 /* ../lib/standard/collection/array.nit:280 */
8567 REGB2 = TAG_Int(0);
8568 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8569 if (UNTAG_Bool(REGB0)) {
8570 } else {
8571 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8572 }
8573 /* ../lib/standard/kernel.nit:236 */
8574 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8575 /* ../lib/standard/collection/array.nit:280 */
8576 if (UNTAG_Bool(REGB2)) {
8577 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8578 if (UNTAG_Bool(REGB2)) {
8579 } else {
8580 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8581 }
8582 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8583 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8584 if (UNTAG_Bool(REGB0)) {
8585 } else {
8586 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8587 }
8588 /* ../lib/standard/kernel.nit:235 */
8589 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8590 } else {
8591 /* ../lib/standard/collection/array.nit:280 */
8592 REGB0 = TAG_Bool(0);
8593 REGB2 = REGB0;
8594 }
8595 if (UNTAG_Bool(REGB2)) {
8596 } else {
8597 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8598 }
8599 /* ../lib/standard/collection/array.nit:281 */
8600 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8601 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8602 if (UNTAG_Bool(REGB2)) {
8603 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8604 }
8605 /* ../lib/standard/collection/array.nit:718 */
8606 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8607 /* ../lib/standard/collection/array.nit:281 */
8608 goto label152;
8609 label152: while(0);
8610 /* compiling/compiling_icode.nit:782 */
8611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8612 if (!once_value_153) {
8613 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
8614 REGB1 = TAG_Int(14);
8615 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8616 once_value_153 = fra.me.REG[7];
8617 register_static_object(&once_value_153);
8618 } else fra.me.REG[7] = once_value_153;
8619 fra.me.REG[7] = fra.me.REG[7];
8620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8621 REGB1 = TAG_Int(1);
8622 /* ../lib/standard/collection/array.nit:278 */
8623 fra.me.REG[7] = fra.me.REG[4];
8624 /* ../lib/standard/collection/array.nit:280 */
8625 REGB2 = TAG_Int(0);
8626 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8627 if (UNTAG_Bool(REGB0)) {
8628 } else {
8629 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8630 }
8631 /* ../lib/standard/kernel.nit:236 */
8632 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8633 /* ../lib/standard/collection/array.nit:280 */
8634 if (UNTAG_Bool(REGB2)) {
8635 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8636 if (UNTAG_Bool(REGB2)) {
8637 } else {
8638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8639 }
8640 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8641 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8642 if (UNTAG_Bool(REGB0)) {
8643 } else {
8644 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8645 }
8646 /* ../lib/standard/kernel.nit:235 */
8647 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8648 } else {
8649 /* ../lib/standard/collection/array.nit:280 */
8650 REGB0 = TAG_Bool(0);
8651 REGB2 = REGB0;
8652 }
8653 if (UNTAG_Bool(REGB2)) {
8654 } else {
8655 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8656 }
8657 /* ../lib/standard/collection/array.nit:281 */
8658 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8659 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8660 if (UNTAG_Bool(REGB2)) {
8661 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8662 }
8663 /* ../lib/standard/collection/array.nit:718 */
8664 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8665 /* ../lib/standard/collection/array.nit:281 */
8666 goto label154;
8667 label154: while(0);
8668 /* compiling/compiling_icode.nit:782 */
8669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8670 if (!once_value_155) {
8671 fra.me.REG[7] = BOX_NativeString("))");
8672 REGB1 = TAG_Int(2);
8673 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8674 once_value_155 = fra.me.REG[7];
8675 register_static_object(&once_value_155);
8676 } else fra.me.REG[7] = once_value_155;
8677 fra.me.REG[7] = fra.me.REG[7];
8678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8679 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8680 fra.me.REG[5] = fra.me.REG[6];
8681 } else {
8682 /* compiling/compiling_icode.nit:783 */
8683 if (!once_value_156) {
8684 if (!once_value_157) {
8685 fra.me.REG[6] = BOX_NativeString("-");
8686 REGB1 = TAG_Int(1);
8687 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8688 once_value_157 = fra.me.REG[6];
8689 register_static_object(&once_value_157);
8690 } else fra.me.REG[6] = once_value_157;
8691 fra.me.REG[6] = fra.me.REG[6];
8692 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8693 once_value_156 = fra.me.REG[6];
8694 register_static_object(&once_value_156);
8695 } else fra.me.REG[6] = once_value_156;
8696 fra.me.REG[6] = fra.me.REG[6];
8697 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8698 if (UNTAG_Bool(REGB1)) {
8699 } else {
8700 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8701 REGB1 = REGB2;
8702 }
8703 if (UNTAG_Bool(REGB1)) {
8704 /* compiling/compiling_icode.nit:784 */
8705 REGB1 = TAG_Int(5);
8706 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8707 if (!once_value_158) {
8708 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8709 REGB1 = TAG_Int(22);
8710 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8711 once_value_158 = fra.me.REG[7];
8712 register_static_object(&once_value_158);
8713 } else fra.me.REG[7] = once_value_158;
8714 fra.me.REG[7] = fra.me.REG[7];
8715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8716 REGB1 = TAG_Int(0);
8717 /* ../lib/standard/collection/array.nit:278 */
8718 fra.me.REG[7] = fra.me.REG[4];
8719 /* ../lib/standard/collection/array.nit:280 */
8720 REGB2 = TAG_Int(0);
8721 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8722 if (UNTAG_Bool(REGB0)) {
8723 } else {
8724 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8725 }
8726 /* ../lib/standard/kernel.nit:236 */
8727 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8728 /* ../lib/standard/collection/array.nit:280 */
8729 if (UNTAG_Bool(REGB2)) {
8730 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8731 if (UNTAG_Bool(REGB2)) {
8732 } else {
8733 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8734 }
8735 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8736 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8737 if (UNTAG_Bool(REGB0)) {
8738 } else {
8739 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8740 }
8741 /* ../lib/standard/kernel.nit:235 */
8742 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8743 } else {
8744 /* ../lib/standard/collection/array.nit:280 */
8745 REGB0 = TAG_Bool(0);
8746 REGB2 = REGB0;
8747 }
8748 if (UNTAG_Bool(REGB2)) {
8749 } else {
8750 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8751 }
8752 /* ../lib/standard/collection/array.nit:281 */
8753 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8754 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8755 if (UNTAG_Bool(REGB2)) {
8756 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8757 }
8758 /* ../lib/standard/collection/array.nit:718 */
8759 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8760 /* ../lib/standard/collection/array.nit:281 */
8761 goto label159;
8762 label159: while(0);
8763 /* compiling/compiling_icode.nit:784 */
8764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8765 if (!once_value_160) {
8766 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8767 REGB1 = TAG_Int(14);
8768 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8769 once_value_160 = fra.me.REG[7];
8770 register_static_object(&once_value_160);
8771 } else fra.me.REG[7] = once_value_160;
8772 fra.me.REG[7] = fra.me.REG[7];
8773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8774 REGB1 = TAG_Int(1);
8775 /* ../lib/standard/collection/array.nit:278 */
8776 fra.me.REG[7] = fra.me.REG[4];
8777 /* ../lib/standard/collection/array.nit:280 */
8778 REGB2 = TAG_Int(0);
8779 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8780 if (UNTAG_Bool(REGB0)) {
8781 } else {
8782 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8783 }
8784 /* ../lib/standard/kernel.nit:236 */
8785 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8786 /* ../lib/standard/collection/array.nit:280 */
8787 if (UNTAG_Bool(REGB2)) {
8788 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8789 if (UNTAG_Bool(REGB2)) {
8790 } else {
8791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8792 }
8793 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8794 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8795 if (UNTAG_Bool(REGB0)) {
8796 } else {
8797 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8798 }
8799 /* ../lib/standard/kernel.nit:235 */
8800 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8801 } else {
8802 /* ../lib/standard/collection/array.nit:280 */
8803 REGB0 = TAG_Bool(0);
8804 REGB2 = REGB0;
8805 }
8806 if (UNTAG_Bool(REGB2)) {
8807 } else {
8808 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8809 }
8810 /* ../lib/standard/collection/array.nit:281 */
8811 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8812 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8813 if (UNTAG_Bool(REGB2)) {
8814 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8815 }
8816 /* ../lib/standard/collection/array.nit:718 */
8817 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8818 /* ../lib/standard/collection/array.nit:281 */
8819 goto label161;
8820 label161: while(0);
8821 /* compiling/compiling_icode.nit:784 */
8822 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8823 if (!once_value_162) {
8824 fra.me.REG[7] = BOX_NativeString("))");
8825 REGB1 = TAG_Int(2);
8826 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8827 once_value_162 = fra.me.REG[7];
8828 register_static_object(&once_value_162);
8829 } else fra.me.REG[7] = once_value_162;
8830 fra.me.REG[7] = fra.me.REG[7];
8831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8832 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8833 fra.me.REG[5] = fra.me.REG[6];
8834 } else {
8835 /* compiling/compiling_icode.nit:785 */
8836 if (!once_value_163) {
8837 if (!once_value_164) {
8838 fra.me.REG[6] = BOX_NativeString("*");
8839 REGB1 = TAG_Int(1);
8840 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8841 once_value_164 = fra.me.REG[6];
8842 register_static_object(&once_value_164);
8843 } else fra.me.REG[6] = once_value_164;
8844 fra.me.REG[6] = fra.me.REG[6];
8845 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8846 once_value_163 = fra.me.REG[6];
8847 register_static_object(&once_value_163);
8848 } else fra.me.REG[6] = once_value_163;
8849 fra.me.REG[6] = fra.me.REG[6];
8850 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8851 if (UNTAG_Bool(REGB1)) {
8852 } else {
8853 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8854 REGB1 = REGB2;
8855 }
8856 if (UNTAG_Bool(REGB1)) {
8857 /* compiling/compiling_icode.nit:786 */
8858 REGB1 = TAG_Int(5);
8859 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8860 if (!once_value_165) {
8861 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8862 REGB1 = TAG_Int(22);
8863 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8864 once_value_165 = fra.me.REG[7];
8865 register_static_object(&once_value_165);
8866 } else fra.me.REG[7] = once_value_165;
8867 fra.me.REG[7] = fra.me.REG[7];
8868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8869 REGB1 = TAG_Int(0);
8870 /* ../lib/standard/collection/array.nit:278 */
8871 fra.me.REG[7] = fra.me.REG[4];
8872 /* ../lib/standard/collection/array.nit:280 */
8873 REGB2 = TAG_Int(0);
8874 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8875 if (UNTAG_Bool(REGB0)) {
8876 } else {
8877 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8878 }
8879 /* ../lib/standard/kernel.nit:236 */
8880 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8881 /* ../lib/standard/collection/array.nit:280 */
8882 if (UNTAG_Bool(REGB2)) {
8883 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8884 if (UNTAG_Bool(REGB2)) {
8885 } else {
8886 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8887 }
8888 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8889 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8890 if (UNTAG_Bool(REGB0)) {
8891 } else {
8892 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8893 }
8894 /* ../lib/standard/kernel.nit:235 */
8895 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8896 } else {
8897 /* ../lib/standard/collection/array.nit:280 */
8898 REGB0 = TAG_Bool(0);
8899 REGB2 = REGB0;
8900 }
8901 if (UNTAG_Bool(REGB2)) {
8902 } else {
8903 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8904 }
8905 /* ../lib/standard/collection/array.nit:281 */
8906 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8907 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8908 if (UNTAG_Bool(REGB2)) {
8909 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8910 }
8911 /* ../lib/standard/collection/array.nit:718 */
8912 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8913 /* ../lib/standard/collection/array.nit:281 */
8914 goto label166;
8915 label166: while(0);
8916 /* compiling/compiling_icode.nit:786 */
8917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8918 if (!once_value_167) {
8919 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8920 REGB1 = TAG_Int(14);
8921 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8922 once_value_167 = fra.me.REG[7];
8923 register_static_object(&once_value_167);
8924 } else fra.me.REG[7] = once_value_167;
8925 fra.me.REG[7] = fra.me.REG[7];
8926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8927 REGB1 = TAG_Int(1);
8928 /* ../lib/standard/collection/array.nit:278 */
8929 fra.me.REG[7] = fra.me.REG[4];
8930 /* ../lib/standard/collection/array.nit:280 */
8931 REGB2 = TAG_Int(0);
8932 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8933 if (UNTAG_Bool(REGB0)) {
8934 } else {
8935 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8936 }
8937 /* ../lib/standard/kernel.nit:236 */
8938 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8939 /* ../lib/standard/collection/array.nit:280 */
8940 if (UNTAG_Bool(REGB2)) {
8941 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8942 if (UNTAG_Bool(REGB2)) {
8943 } else {
8944 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8945 }
8946 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8947 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8948 if (UNTAG_Bool(REGB0)) {
8949 } else {
8950 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8951 }
8952 /* ../lib/standard/kernel.nit:235 */
8953 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8954 } else {
8955 /* ../lib/standard/collection/array.nit:280 */
8956 REGB0 = TAG_Bool(0);
8957 REGB2 = REGB0;
8958 }
8959 if (UNTAG_Bool(REGB2)) {
8960 } else {
8961 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8962 }
8963 /* ../lib/standard/collection/array.nit:281 */
8964 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8965 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8966 if (UNTAG_Bool(REGB2)) {
8967 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8968 }
8969 /* ../lib/standard/collection/array.nit:718 */
8970 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8971 /* ../lib/standard/collection/array.nit:281 */
8972 goto label168;
8973 label168: while(0);
8974 /* compiling/compiling_icode.nit:786 */
8975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8976 if (!once_value_169) {
8977 fra.me.REG[7] = BOX_NativeString("))");
8978 REGB1 = TAG_Int(2);
8979 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8980 once_value_169 = fra.me.REG[7];
8981 register_static_object(&once_value_169);
8982 } else fra.me.REG[7] = once_value_169;
8983 fra.me.REG[7] = fra.me.REG[7];
8984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8985 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8986 fra.me.REG[5] = fra.me.REG[6];
8987 } else {
8988 /* compiling/compiling_icode.nit:787 */
8989 if (!once_value_170) {
8990 if (!once_value_171) {
8991 fra.me.REG[6] = BOX_NativeString("/");
8992 REGB1 = TAG_Int(1);
8993 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8994 once_value_171 = fra.me.REG[6];
8995 register_static_object(&once_value_171);
8996 } else fra.me.REG[6] = once_value_171;
8997 fra.me.REG[6] = fra.me.REG[6];
8998 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8999 once_value_170 = fra.me.REG[6];
9000 register_static_object(&once_value_170);
9001 } else fra.me.REG[6] = once_value_170;
9002 fra.me.REG[6] = fra.me.REG[6];
9003 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9004 if (UNTAG_Bool(REGB1)) {
9005 } else {
9006 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9007 REGB1 = REGB2;
9008 }
9009 if (UNTAG_Bool(REGB1)) {
9010 /* compiling/compiling_icode.nit:788 */
9011 REGB1 = TAG_Int(5);
9012 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9013 if (!once_value_172) {
9014 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
9015 REGB1 = TAG_Int(22);
9016 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9017 once_value_172 = fra.me.REG[7];
9018 register_static_object(&once_value_172);
9019 } else fra.me.REG[7] = once_value_172;
9020 fra.me.REG[7] = fra.me.REG[7];
9021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9022 REGB1 = TAG_Int(0);
9023 /* ../lib/standard/collection/array.nit:278 */
9024 fra.me.REG[7] = fra.me.REG[4];
9025 /* ../lib/standard/collection/array.nit:280 */
9026 REGB2 = TAG_Int(0);
9027 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9028 if (UNTAG_Bool(REGB0)) {
9029 } else {
9030 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9031 }
9032 /* ../lib/standard/kernel.nit:236 */
9033 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9034 /* ../lib/standard/collection/array.nit:280 */
9035 if (UNTAG_Bool(REGB2)) {
9036 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9037 if (UNTAG_Bool(REGB2)) {
9038 } else {
9039 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9040 }
9041 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9042 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9043 if (UNTAG_Bool(REGB0)) {
9044 } else {
9045 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9046 }
9047 /* ../lib/standard/kernel.nit:235 */
9048 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9049 } else {
9050 /* ../lib/standard/collection/array.nit:280 */
9051 REGB0 = TAG_Bool(0);
9052 REGB2 = REGB0;
9053 }
9054 if (UNTAG_Bool(REGB2)) {
9055 } else {
9056 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9057 }
9058 /* ../lib/standard/collection/array.nit:281 */
9059 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9060 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9061 if (UNTAG_Bool(REGB2)) {
9062 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9063 }
9064 /* ../lib/standard/collection/array.nit:718 */
9065 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9066 /* ../lib/standard/collection/array.nit:281 */
9067 goto label173;
9068 label173: while(0);
9069 /* compiling/compiling_icode.nit:788 */
9070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9071 if (!once_value_174) {
9072 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
9073 REGB1 = TAG_Int(14);
9074 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9075 once_value_174 = fra.me.REG[7];
9076 register_static_object(&once_value_174);
9077 } else fra.me.REG[7] = once_value_174;
9078 fra.me.REG[7] = fra.me.REG[7];
9079 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9080 REGB1 = TAG_Int(1);
9081 /* ../lib/standard/collection/array.nit:278 */
9082 fra.me.REG[7] = fra.me.REG[4];
9083 /* ../lib/standard/collection/array.nit:280 */
9084 REGB2 = TAG_Int(0);
9085 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9086 if (UNTAG_Bool(REGB0)) {
9087 } else {
9088 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9089 }
9090 /* ../lib/standard/kernel.nit:236 */
9091 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9092 /* ../lib/standard/collection/array.nit:280 */
9093 if (UNTAG_Bool(REGB2)) {
9094 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9095 if (UNTAG_Bool(REGB2)) {
9096 } else {
9097 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9098 }
9099 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9100 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9101 if (UNTAG_Bool(REGB0)) {
9102 } else {
9103 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9104 }
9105 /* ../lib/standard/kernel.nit:235 */
9106 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9107 } else {
9108 /* ../lib/standard/collection/array.nit:280 */
9109 REGB0 = TAG_Bool(0);
9110 REGB2 = REGB0;
9111 }
9112 if (UNTAG_Bool(REGB2)) {
9113 } else {
9114 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9115 }
9116 /* ../lib/standard/collection/array.nit:281 */
9117 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9118 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9119 if (UNTAG_Bool(REGB2)) {
9120 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9121 }
9122 /* ../lib/standard/collection/array.nit:718 */
9123 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9124 /* ../lib/standard/collection/array.nit:281 */
9125 goto label175;
9126 label175: while(0);
9127 /* compiling/compiling_icode.nit:788 */
9128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9129 if (!once_value_176) {
9130 fra.me.REG[7] = BOX_NativeString("))");
9131 REGB1 = TAG_Int(2);
9132 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9133 once_value_176 = fra.me.REG[7];
9134 register_static_object(&once_value_176);
9135 } else fra.me.REG[7] = once_value_176;
9136 fra.me.REG[7] = fra.me.REG[7];
9137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9138 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9139 fra.me.REG[5] = fra.me.REG[6];
9140 } else {
9141 /* compiling/compiling_icode.nit:789 */
9142 if (!once_value_177) {
9143 if (!once_value_178) {
9144 fra.me.REG[6] = BOX_NativeString("<");
9145 REGB1 = TAG_Int(1);
9146 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9147 once_value_178 = fra.me.REG[6];
9148 register_static_object(&once_value_178);
9149 } else fra.me.REG[6] = once_value_178;
9150 fra.me.REG[6] = fra.me.REG[6];
9151 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9152 once_value_177 = fra.me.REG[6];
9153 register_static_object(&once_value_177);
9154 } else fra.me.REG[6] = once_value_177;
9155 fra.me.REG[6] = fra.me.REG[6];
9156 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9157 if (UNTAG_Bool(REGB1)) {
9158 } else {
9159 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9160 REGB1 = REGB2;
9161 }
9162 if (UNTAG_Bool(REGB1)) {
9163 /* compiling/compiling_icode.nit:790 */
9164 REGB1 = TAG_Int(5);
9165 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9166 if (!once_value_179) {
9167 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9168 REGB1 = TAG_Int(21);
9169 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9170 once_value_179 = fra.me.REG[7];
9171 register_static_object(&once_value_179);
9172 } else fra.me.REG[7] = once_value_179;
9173 fra.me.REG[7] = fra.me.REG[7];
9174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9175 REGB1 = TAG_Int(0);
9176 /* ../lib/standard/collection/array.nit:278 */
9177 fra.me.REG[7] = fra.me.REG[4];
9178 /* ../lib/standard/collection/array.nit:280 */
9179 REGB2 = TAG_Int(0);
9180 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9181 if (UNTAG_Bool(REGB0)) {
9182 } else {
9183 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9184 }
9185 /* ../lib/standard/kernel.nit:236 */
9186 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9187 /* ../lib/standard/collection/array.nit:280 */
9188 if (UNTAG_Bool(REGB2)) {
9189 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9190 if (UNTAG_Bool(REGB2)) {
9191 } else {
9192 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9193 }
9194 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9195 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9196 if (UNTAG_Bool(REGB0)) {
9197 } else {
9198 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9199 }
9200 /* ../lib/standard/kernel.nit:235 */
9201 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9202 } else {
9203 /* ../lib/standard/collection/array.nit:280 */
9204 REGB0 = TAG_Bool(0);
9205 REGB2 = REGB0;
9206 }
9207 if (UNTAG_Bool(REGB2)) {
9208 } else {
9209 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9210 }
9211 /* ../lib/standard/collection/array.nit:281 */
9212 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9213 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9214 if (UNTAG_Bool(REGB2)) {
9215 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9216 }
9217 /* ../lib/standard/collection/array.nit:718 */
9218 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9219 /* ../lib/standard/collection/array.nit:281 */
9220 goto label180;
9221 label180: while(0);
9222 /* compiling/compiling_icode.nit:790 */
9223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9224 if (!once_value_181) {
9225 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
9226 REGB1 = TAG_Int(14);
9227 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9228 once_value_181 = fra.me.REG[7];
9229 register_static_object(&once_value_181);
9230 } else fra.me.REG[7] = once_value_181;
9231 fra.me.REG[7] = fra.me.REG[7];
9232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9233 REGB1 = TAG_Int(1);
9234 /* ../lib/standard/collection/array.nit:278 */
9235 fra.me.REG[7] = fra.me.REG[4];
9236 /* ../lib/standard/collection/array.nit:280 */
9237 REGB2 = TAG_Int(0);
9238 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9239 if (UNTAG_Bool(REGB0)) {
9240 } else {
9241 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9242 }
9243 /* ../lib/standard/kernel.nit:236 */
9244 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9245 /* ../lib/standard/collection/array.nit:280 */
9246 if (UNTAG_Bool(REGB2)) {
9247 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9248 if (UNTAG_Bool(REGB2)) {
9249 } else {
9250 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9251 }
9252 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9253 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9254 if (UNTAG_Bool(REGB0)) {
9255 } else {
9256 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9257 }
9258 /* ../lib/standard/kernel.nit:235 */
9259 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9260 } else {
9261 /* ../lib/standard/collection/array.nit:280 */
9262 REGB0 = TAG_Bool(0);
9263 REGB2 = REGB0;
9264 }
9265 if (UNTAG_Bool(REGB2)) {
9266 } else {
9267 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9268 }
9269 /* ../lib/standard/collection/array.nit:281 */
9270 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9271 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9272 if (UNTAG_Bool(REGB2)) {
9273 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9274 }
9275 /* ../lib/standard/collection/array.nit:718 */
9276 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9277 /* ../lib/standard/collection/array.nit:281 */
9278 goto label182;
9279 label182: while(0);
9280 /* compiling/compiling_icode.nit:790 */
9281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9282 if (!once_value_183) {
9283 fra.me.REG[7] = BOX_NativeString("))");
9284 REGB1 = TAG_Int(2);
9285 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9286 once_value_183 = fra.me.REG[7];
9287 register_static_object(&once_value_183);
9288 } else fra.me.REG[7] = once_value_183;
9289 fra.me.REG[7] = fra.me.REG[7];
9290 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9291 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9292 fra.me.REG[5] = fra.me.REG[6];
9293 } else {
9294 /* compiling/compiling_icode.nit:791 */
9295 if (!once_value_184) {
9296 if (!once_value_185) {
9297 fra.me.REG[6] = BOX_NativeString(">");
9298 REGB1 = TAG_Int(1);
9299 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9300 once_value_185 = fra.me.REG[6];
9301 register_static_object(&once_value_185);
9302 } else fra.me.REG[6] = once_value_185;
9303 fra.me.REG[6] = fra.me.REG[6];
9304 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9305 once_value_184 = fra.me.REG[6];
9306 register_static_object(&once_value_184);
9307 } else fra.me.REG[6] = once_value_184;
9308 fra.me.REG[6] = fra.me.REG[6];
9309 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9310 if (UNTAG_Bool(REGB1)) {
9311 } else {
9312 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9313 REGB1 = REGB2;
9314 }
9315 if (UNTAG_Bool(REGB1)) {
9316 /* compiling/compiling_icode.nit:792 */
9317 REGB1 = TAG_Int(5);
9318 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9319 if (!once_value_186) {
9320 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9321 REGB1 = TAG_Int(21);
9322 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9323 once_value_186 = fra.me.REG[7];
9324 register_static_object(&once_value_186);
9325 } else fra.me.REG[7] = once_value_186;
9326 fra.me.REG[7] = fra.me.REG[7];
9327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9328 REGB1 = TAG_Int(0);
9329 /* ../lib/standard/collection/array.nit:278 */
9330 fra.me.REG[7] = fra.me.REG[4];
9331 /* ../lib/standard/collection/array.nit:280 */
9332 REGB2 = TAG_Int(0);
9333 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9334 if (UNTAG_Bool(REGB0)) {
9335 } else {
9336 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9337 }
9338 /* ../lib/standard/kernel.nit:236 */
9339 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9340 /* ../lib/standard/collection/array.nit:280 */
9341 if (UNTAG_Bool(REGB2)) {
9342 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9343 if (UNTAG_Bool(REGB2)) {
9344 } else {
9345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9346 }
9347 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9348 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9349 if (UNTAG_Bool(REGB0)) {
9350 } else {
9351 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9352 }
9353 /* ../lib/standard/kernel.nit:235 */
9354 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9355 } else {
9356 /* ../lib/standard/collection/array.nit:280 */
9357 REGB0 = TAG_Bool(0);
9358 REGB2 = REGB0;
9359 }
9360 if (UNTAG_Bool(REGB2)) {
9361 } else {
9362 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9363 }
9364 /* ../lib/standard/collection/array.nit:281 */
9365 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9366 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9367 if (UNTAG_Bool(REGB2)) {
9368 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9369 }
9370 /* ../lib/standard/collection/array.nit:718 */
9371 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9372 /* ../lib/standard/collection/array.nit:281 */
9373 goto label187;
9374 label187: while(0);
9375 /* compiling/compiling_icode.nit:792 */
9376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9377 if (!once_value_188) {
9378 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
9379 REGB1 = TAG_Int(14);
9380 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9381 once_value_188 = fra.me.REG[7];
9382 register_static_object(&once_value_188);
9383 } else fra.me.REG[7] = once_value_188;
9384 fra.me.REG[7] = fra.me.REG[7];
9385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9386 REGB1 = TAG_Int(1);
9387 /* ../lib/standard/collection/array.nit:278 */
9388 fra.me.REG[7] = fra.me.REG[4];
9389 /* ../lib/standard/collection/array.nit:280 */
9390 REGB2 = TAG_Int(0);
9391 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9392 if (UNTAG_Bool(REGB0)) {
9393 } else {
9394 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9395 }
9396 /* ../lib/standard/kernel.nit:236 */
9397 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9398 /* ../lib/standard/collection/array.nit:280 */
9399 if (UNTAG_Bool(REGB2)) {
9400 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9401 if (UNTAG_Bool(REGB2)) {
9402 } else {
9403 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9404 }
9405 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9406 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9407 if (UNTAG_Bool(REGB0)) {
9408 } else {
9409 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9410 }
9411 /* ../lib/standard/kernel.nit:235 */
9412 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9413 } else {
9414 /* ../lib/standard/collection/array.nit:280 */
9415 REGB0 = TAG_Bool(0);
9416 REGB2 = REGB0;
9417 }
9418 if (UNTAG_Bool(REGB2)) {
9419 } else {
9420 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9421 }
9422 /* ../lib/standard/collection/array.nit:281 */
9423 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9424 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9425 if (UNTAG_Bool(REGB2)) {
9426 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9427 }
9428 /* ../lib/standard/collection/array.nit:718 */
9429 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9430 /* ../lib/standard/collection/array.nit:281 */
9431 goto label189;
9432 label189: while(0);
9433 /* compiling/compiling_icode.nit:792 */
9434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9435 if (!once_value_190) {
9436 fra.me.REG[7] = BOX_NativeString("))");
9437 REGB1 = TAG_Int(2);
9438 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9439 once_value_190 = fra.me.REG[7];
9440 register_static_object(&once_value_190);
9441 } else fra.me.REG[7] = once_value_190;
9442 fra.me.REG[7] = fra.me.REG[7];
9443 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9444 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9445 fra.me.REG[5] = fra.me.REG[6];
9446 } else {
9447 /* compiling/compiling_icode.nit:793 */
9448 if (!once_value_191) {
9449 if (!once_value_192) {
9450 fra.me.REG[6] = BOX_NativeString("<=");
9451 REGB1 = TAG_Int(2);
9452 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9453 once_value_192 = fra.me.REG[6];
9454 register_static_object(&once_value_192);
9455 } else fra.me.REG[6] = once_value_192;
9456 fra.me.REG[6] = fra.me.REG[6];
9457 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9458 once_value_191 = fra.me.REG[6];
9459 register_static_object(&once_value_191);
9460 } else fra.me.REG[6] = once_value_191;
9461 fra.me.REG[6] = fra.me.REG[6];
9462 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9463 if (UNTAG_Bool(REGB1)) {
9464 } else {
9465 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9466 REGB1 = REGB2;
9467 }
9468 if (UNTAG_Bool(REGB1)) {
9469 /* compiling/compiling_icode.nit:794 */
9470 REGB1 = TAG_Int(5);
9471 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9472 if (!once_value_193) {
9473 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9474 REGB1 = TAG_Int(21);
9475 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9476 once_value_193 = fra.me.REG[7];
9477 register_static_object(&once_value_193);
9478 } else fra.me.REG[7] = once_value_193;
9479 fra.me.REG[7] = fra.me.REG[7];
9480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9481 REGB1 = TAG_Int(0);
9482 /* ../lib/standard/collection/array.nit:278 */
9483 fra.me.REG[7] = fra.me.REG[4];
9484 /* ../lib/standard/collection/array.nit:280 */
9485 REGB2 = TAG_Int(0);
9486 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9487 if (UNTAG_Bool(REGB0)) {
9488 } else {
9489 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9490 }
9491 /* ../lib/standard/kernel.nit:236 */
9492 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9493 /* ../lib/standard/collection/array.nit:280 */
9494 if (UNTAG_Bool(REGB2)) {
9495 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9496 if (UNTAG_Bool(REGB2)) {
9497 } else {
9498 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9499 }
9500 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9501 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9502 if (UNTAG_Bool(REGB0)) {
9503 } else {
9504 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9505 }
9506 /* ../lib/standard/kernel.nit:235 */
9507 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9508 } else {
9509 /* ../lib/standard/collection/array.nit:280 */
9510 REGB0 = TAG_Bool(0);
9511 REGB2 = REGB0;
9512 }
9513 if (UNTAG_Bool(REGB2)) {
9514 } else {
9515 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9516 }
9517 /* ../lib/standard/collection/array.nit:281 */
9518 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9519 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9520 if (UNTAG_Bool(REGB2)) {
9521 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9522 }
9523 /* ../lib/standard/collection/array.nit:718 */
9524 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9525 /* ../lib/standard/collection/array.nit:281 */
9526 goto label194;
9527 label194: while(0);
9528 /* compiling/compiling_icode.nit:794 */
9529 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9530 if (!once_value_195) {
9531 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
9532 REGB1 = TAG_Int(15);
9533 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9534 once_value_195 = fra.me.REG[7];
9535 register_static_object(&once_value_195);
9536 } else fra.me.REG[7] = once_value_195;
9537 fra.me.REG[7] = fra.me.REG[7];
9538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9539 REGB1 = TAG_Int(1);
9540 /* ../lib/standard/collection/array.nit:278 */
9541 fra.me.REG[7] = fra.me.REG[4];
9542 /* ../lib/standard/collection/array.nit:280 */
9543 REGB2 = TAG_Int(0);
9544 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9545 if (UNTAG_Bool(REGB0)) {
9546 } else {
9547 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9548 }
9549 /* ../lib/standard/kernel.nit:236 */
9550 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9551 /* ../lib/standard/collection/array.nit:280 */
9552 if (UNTAG_Bool(REGB2)) {
9553 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9554 if (UNTAG_Bool(REGB2)) {
9555 } else {
9556 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9557 }
9558 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9559 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9560 if (UNTAG_Bool(REGB0)) {
9561 } else {
9562 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9563 }
9564 /* ../lib/standard/kernel.nit:235 */
9565 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9566 } else {
9567 /* ../lib/standard/collection/array.nit:280 */
9568 REGB0 = TAG_Bool(0);
9569 REGB2 = REGB0;
9570 }
9571 if (UNTAG_Bool(REGB2)) {
9572 } else {
9573 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9574 }
9575 /* ../lib/standard/collection/array.nit:281 */
9576 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9577 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9578 if (UNTAG_Bool(REGB2)) {
9579 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9580 }
9581 /* ../lib/standard/collection/array.nit:718 */
9582 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9583 /* ../lib/standard/collection/array.nit:281 */
9584 goto label196;
9585 label196: while(0);
9586 /* compiling/compiling_icode.nit:794 */
9587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9588 if (!once_value_197) {
9589 fra.me.REG[7] = BOX_NativeString("))");
9590 REGB1 = TAG_Int(2);
9591 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9592 once_value_197 = fra.me.REG[7];
9593 register_static_object(&once_value_197);
9594 } else fra.me.REG[7] = once_value_197;
9595 fra.me.REG[7] = fra.me.REG[7];
9596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9597 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9598 fra.me.REG[5] = fra.me.REG[6];
9599 } else {
9600 /* compiling/compiling_icode.nit:795 */
9601 if (!once_value_198) {
9602 if (!once_value_199) {
9603 fra.me.REG[6] = BOX_NativeString(">=");
9604 REGB1 = TAG_Int(2);
9605 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9606 once_value_199 = fra.me.REG[6];
9607 register_static_object(&once_value_199);
9608 } else fra.me.REG[6] = once_value_199;
9609 fra.me.REG[6] = fra.me.REG[6];
9610 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9611 once_value_198 = fra.me.REG[6];
9612 register_static_object(&once_value_198);
9613 } else fra.me.REG[6] = once_value_198;
9614 fra.me.REG[6] = fra.me.REG[6];
9615 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9616 if (UNTAG_Bool(REGB1)) {
9617 } else {
9618 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9619 REGB1 = REGB2;
9620 }
9621 if (UNTAG_Bool(REGB1)) {
9622 /* compiling/compiling_icode.nit:796 */
9623 REGB1 = TAG_Int(5);
9624 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9625 if (!once_value_200) {
9626 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9627 REGB1 = TAG_Int(21);
9628 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9629 once_value_200 = fra.me.REG[7];
9630 register_static_object(&once_value_200);
9631 } else fra.me.REG[7] = once_value_200;
9632 fra.me.REG[7] = fra.me.REG[7];
9633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9634 REGB1 = TAG_Int(0);
9635 /* ../lib/standard/collection/array.nit:278 */
9636 fra.me.REG[7] = fra.me.REG[4];
9637 /* ../lib/standard/collection/array.nit:280 */
9638 REGB2 = TAG_Int(0);
9639 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9640 if (UNTAG_Bool(REGB0)) {
9641 } else {
9642 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9643 }
9644 /* ../lib/standard/kernel.nit:236 */
9645 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9646 /* ../lib/standard/collection/array.nit:280 */
9647 if (UNTAG_Bool(REGB2)) {
9648 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9649 if (UNTAG_Bool(REGB2)) {
9650 } else {
9651 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9652 }
9653 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9654 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9655 if (UNTAG_Bool(REGB0)) {
9656 } else {
9657 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9658 }
9659 /* ../lib/standard/kernel.nit:235 */
9660 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9661 } else {
9662 /* ../lib/standard/collection/array.nit:280 */
9663 REGB0 = TAG_Bool(0);
9664 REGB2 = REGB0;
9665 }
9666 if (UNTAG_Bool(REGB2)) {
9667 } else {
9668 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9669 }
9670 /* ../lib/standard/collection/array.nit:281 */
9671 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9672 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9673 if (UNTAG_Bool(REGB2)) {
9674 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9675 }
9676 /* ../lib/standard/collection/array.nit:718 */
9677 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9678 /* ../lib/standard/collection/array.nit:281 */
9679 goto label201;
9680 label201: while(0);
9681 /* compiling/compiling_icode.nit:796 */
9682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9683 if (!once_value_202) {
9684 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
9685 REGB1 = TAG_Int(15);
9686 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9687 once_value_202 = fra.me.REG[7];
9688 register_static_object(&once_value_202);
9689 } else fra.me.REG[7] = once_value_202;
9690 fra.me.REG[7] = fra.me.REG[7];
9691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9692 REGB1 = TAG_Int(1);
9693 /* ../lib/standard/collection/array.nit:278 */
9694 fra.me.REG[7] = fra.me.REG[4];
9695 /* ../lib/standard/collection/array.nit:280 */
9696 REGB2 = TAG_Int(0);
9697 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9698 if (UNTAG_Bool(REGB0)) {
9699 } else {
9700 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9701 }
9702 /* ../lib/standard/kernel.nit:236 */
9703 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9704 /* ../lib/standard/collection/array.nit:280 */
9705 if (UNTAG_Bool(REGB2)) {
9706 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9707 if (UNTAG_Bool(REGB2)) {
9708 } else {
9709 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9710 }
9711 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9712 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9713 if (UNTAG_Bool(REGB0)) {
9714 } else {
9715 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9716 }
9717 /* ../lib/standard/kernel.nit:235 */
9718 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9719 } else {
9720 /* ../lib/standard/collection/array.nit:280 */
9721 REGB0 = TAG_Bool(0);
9722 REGB2 = REGB0;
9723 }
9724 if (UNTAG_Bool(REGB2)) {
9725 } else {
9726 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9727 }
9728 /* ../lib/standard/collection/array.nit:281 */
9729 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9730 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9731 if (UNTAG_Bool(REGB2)) {
9732 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9733 }
9734 /* ../lib/standard/collection/array.nit:718 */
9735 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9736 /* ../lib/standard/collection/array.nit:281 */
9737 goto label203;
9738 label203: while(0);
9739 /* compiling/compiling_icode.nit:796 */
9740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9741 if (!once_value_204) {
9742 fra.me.REG[7] = BOX_NativeString("))");
9743 REGB1 = TAG_Int(2);
9744 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9745 once_value_204 = fra.me.REG[7];
9746 register_static_object(&once_value_204);
9747 } else fra.me.REG[7] = once_value_204;
9748 fra.me.REG[7] = fra.me.REG[7];
9749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9750 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9751 fra.me.REG[5] = fra.me.REG[6];
9752 }
9753 }
9754 }
9755 }
9756 }
9757 }
9758 }
9759 }
9760 }
9761 }
9762 }
9763 }
9764 } else {
9765 /* compiling/compiling_icode.nit:798 */
9766 if (!once_value_205) {
9767 if (!once_value_206) {
9768 fra.me.REG[6] = BOX_NativeString("Char");
9769 REGB1 = TAG_Int(4);
9770 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9771 once_value_206 = fra.me.REG[6];
9772 register_static_object(&once_value_206);
9773 } else fra.me.REG[6] = once_value_206;
9774 fra.me.REG[6] = fra.me.REG[6];
9775 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9776 once_value_205 = fra.me.REG[6];
9777 register_static_object(&once_value_205);
9778 } else fra.me.REG[6] = once_value_205;
9779 fra.me.REG[6] = fra.me.REG[6];
9780 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
9781 if (UNTAG_Bool(REGB1)) {
9782 } else {
9783 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
9784 REGB1 = REGB2;
9785 }
9786 if (UNTAG_Bool(REGB1)) {
9787 /* compiling/compiling_icode.nit:799 */
9788 if (!once_value_207) {
9789 if (!once_value_208) {
9790 fra.me.REG[6] = BOX_NativeString("object_id");
9791 REGB1 = TAG_Int(9);
9792 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9793 once_value_208 = fra.me.REG[6];
9794 register_static_object(&once_value_208);
9795 } else fra.me.REG[6] = once_value_208;
9796 fra.me.REG[6] = fra.me.REG[6];
9797 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9798 once_value_207 = fra.me.REG[6];
9799 register_static_object(&once_value_207);
9800 } else fra.me.REG[6] = once_value_207;
9801 fra.me.REG[6] = fra.me.REG[6];
9802 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9803 if (UNTAG_Bool(REGB1)) {
9804 } else {
9805 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9806 REGB1 = REGB2;
9807 }
9808 if (UNTAG_Bool(REGB1)) {
9809 /* compiling/compiling_icode.nit:800 */
9810 REGB1 = TAG_Int(3);
9811 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9812 if (!once_value_209) {
9813 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9814 REGB1 = TAG_Int(19);
9815 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9816 once_value_209 = fra.me.REG[7];
9817 register_static_object(&once_value_209);
9818 } else fra.me.REG[7] = once_value_209;
9819 fra.me.REG[7] = fra.me.REG[7];
9820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9821 REGB1 = TAG_Int(0);
9822 /* ../lib/standard/collection/array.nit:278 */
9823 fra.me.REG[7] = fra.me.REG[4];
9824 /* ../lib/standard/collection/array.nit:280 */
9825 REGB2 = TAG_Int(0);
9826 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9827 if (UNTAG_Bool(REGB0)) {
9828 } else {
9829 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9830 }
9831 /* ../lib/standard/kernel.nit:236 */
9832 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9833 /* ../lib/standard/collection/array.nit:280 */
9834 if (UNTAG_Bool(REGB2)) {
9835 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9836 if (UNTAG_Bool(REGB2)) {
9837 } else {
9838 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9839 }
9840 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9841 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9842 if (UNTAG_Bool(REGB0)) {
9843 } else {
9844 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9845 }
9846 /* ../lib/standard/kernel.nit:235 */
9847 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9848 } else {
9849 /* ../lib/standard/collection/array.nit:280 */
9850 REGB0 = TAG_Bool(0);
9851 REGB2 = REGB0;
9852 }
9853 if (UNTAG_Bool(REGB2)) {
9854 } else {
9855 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9856 }
9857 /* ../lib/standard/collection/array.nit:281 */
9858 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9859 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9860 if (UNTAG_Bool(REGB2)) {
9861 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9862 }
9863 /* ../lib/standard/collection/array.nit:718 */
9864 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9865 /* ../lib/standard/collection/array.nit:281 */
9866 goto label210;
9867 label210: while(0);
9868 /* compiling/compiling_icode.nit:800 */
9869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9870 if (!once_value_211) {
9871 fra.me.REG[7] = BOX_NativeString("))");
9872 REGB1 = TAG_Int(2);
9873 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9874 once_value_211 = fra.me.REG[7];
9875 register_static_object(&once_value_211);
9876 } else fra.me.REG[7] = once_value_211;
9877 fra.me.REG[7] = fra.me.REG[7];
9878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9879 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9880 fra.me.REG[5] = fra.me.REG[6];
9881 } else {
9882 /* compiling/compiling_icode.nit:801 */
9883 if (!once_value_212) {
9884 if (!once_value_213) {
9885 fra.me.REG[6] = BOX_NativeString("unary -");
9886 REGB1 = TAG_Int(7);
9887 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9888 once_value_213 = fra.me.REG[6];
9889 register_static_object(&once_value_213);
9890 } else fra.me.REG[6] = once_value_213;
9891 fra.me.REG[6] = fra.me.REG[6];
9892 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9893 once_value_212 = fra.me.REG[6];
9894 register_static_object(&once_value_212);
9895 } else fra.me.REG[6] = once_value_212;
9896 fra.me.REG[6] = fra.me.REG[6];
9897 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9898 if (UNTAG_Bool(REGB1)) {
9899 } else {
9900 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9901 REGB1 = REGB2;
9902 }
9903 if (UNTAG_Bool(REGB1)) {
9904 /* compiling/compiling_icode.nit:802 */
9905 REGB1 = TAG_Int(3);
9906 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9907 if (!once_value_214) {
9908 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9909 REGB1 = TAG_Int(21);
9910 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9911 once_value_214 = fra.me.REG[7];
9912 register_static_object(&once_value_214);
9913 } else fra.me.REG[7] = once_value_214;
9914 fra.me.REG[7] = fra.me.REG[7];
9915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9916 REGB1 = TAG_Int(0);
9917 /* ../lib/standard/collection/array.nit:278 */
9918 fra.me.REG[7] = fra.me.REG[4];
9919 /* ../lib/standard/collection/array.nit:280 */
9920 REGB2 = TAG_Int(0);
9921 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9922 if (UNTAG_Bool(REGB0)) {
9923 } else {
9924 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9925 }
9926 /* ../lib/standard/kernel.nit:236 */
9927 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9928 /* ../lib/standard/collection/array.nit:280 */
9929 if (UNTAG_Bool(REGB2)) {
9930 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9931 if (UNTAG_Bool(REGB2)) {
9932 } else {
9933 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9934 }
9935 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9936 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9937 if (UNTAG_Bool(REGB0)) {
9938 } else {
9939 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9940 }
9941 /* ../lib/standard/kernel.nit:235 */
9942 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9943 } else {
9944 /* ../lib/standard/collection/array.nit:280 */
9945 REGB0 = TAG_Bool(0);
9946 REGB2 = REGB0;
9947 }
9948 if (UNTAG_Bool(REGB2)) {
9949 } else {
9950 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9951 }
9952 /* ../lib/standard/collection/array.nit:281 */
9953 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9954 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9955 if (UNTAG_Bool(REGB2)) {
9956 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9957 }
9958 /* ../lib/standard/collection/array.nit:718 */
9959 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9960 /* ../lib/standard/collection/array.nit:281 */
9961 goto label215;
9962 label215: while(0);
9963 /* compiling/compiling_icode.nit:802 */
9964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9965 if (!once_value_216) {
9966 fra.me.REG[7] = BOX_NativeString("))");
9967 REGB1 = TAG_Int(2);
9968 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9969 once_value_216 = fra.me.REG[7];
9970 register_static_object(&once_value_216);
9971 } else fra.me.REG[7] = once_value_216;
9972 fra.me.REG[7] = fra.me.REG[7];
9973 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9974 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9975 fra.me.REG[5] = fra.me.REG[6];
9976 } else {
9977 /* compiling/compiling_icode.nit:803 */
9978 if (!once_value_217) {
9979 if (!once_value_218) {
9980 fra.me.REG[6] = BOX_NativeString("output");
9981 REGB1 = TAG_Int(6);
9982 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9983 once_value_218 = fra.me.REG[6];
9984 register_static_object(&once_value_218);
9985 } else fra.me.REG[6] = once_value_218;
9986 fra.me.REG[6] = fra.me.REG[6];
9987 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9988 once_value_217 = fra.me.REG[6];
9989 register_static_object(&once_value_217);
9990 } else fra.me.REG[6] = once_value_217;
9991 fra.me.REG[6] = fra.me.REG[6];
9992 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9993 if (UNTAG_Bool(REGB1)) {
9994 } else {
9995 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9996 REGB1 = REGB2;
9997 }
9998 if (UNTAG_Bool(REGB1)) {
9999 /* compiling/compiling_icode.nit:804 */
10000 REGB1 = TAG_Int(3);
10001 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10002 if (!once_value_219) {
10003 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
10004 REGB1 = TAG_Int(39);
10005 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10006 once_value_219 = fra.me.REG[7];
10007 register_static_object(&once_value_219);
10008 } else fra.me.REG[7] = once_value_219;
10009 fra.me.REG[7] = fra.me.REG[7];
10010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10011 REGB1 = TAG_Int(0);
10012 /* ../lib/standard/collection/array.nit:278 */
10013 fra.me.REG[7] = fra.me.REG[4];
10014 /* ../lib/standard/collection/array.nit:280 */
10015 REGB2 = TAG_Int(0);
10016 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10017 if (UNTAG_Bool(REGB0)) {
10018 } else {
10019 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10020 }
10021 /* ../lib/standard/kernel.nit:236 */
10022 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10023 /* ../lib/standard/collection/array.nit:280 */
10024 if (UNTAG_Bool(REGB2)) {
10025 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10026 if (UNTAG_Bool(REGB2)) {
10027 } else {
10028 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10029 }
10030 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10031 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10032 if (UNTAG_Bool(REGB0)) {
10033 } else {
10034 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10035 }
10036 /* ../lib/standard/kernel.nit:235 */
10037 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10038 } else {
10039 /* ../lib/standard/collection/array.nit:280 */
10040 REGB0 = TAG_Bool(0);
10041 REGB2 = REGB0;
10042 }
10043 if (UNTAG_Bool(REGB2)) {
10044 } else {
10045 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10046 }
10047 /* ../lib/standard/collection/array.nit:281 */
10048 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10049 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10050 if (UNTAG_Bool(REGB2)) {
10051 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10052 }
10053 /* ../lib/standard/collection/array.nit:718 */
10054 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10055 /* ../lib/standard/collection/array.nit:281 */
10056 goto label220;
10057 label220: while(0);
10058 /* compiling/compiling_icode.nit:804 */
10059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10060 if (!once_value_221) {
10061 fra.me.REG[7] = BOX_NativeString("));");
10062 REGB1 = TAG_Int(3);
10063 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10064 once_value_221 = fra.me.REG[7];
10065 register_static_object(&once_value_221);
10066 } else fra.me.REG[7] = once_value_221;
10067 fra.me.REG[7] = fra.me.REG[7];
10068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10069 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10070 fra.me.REG[5] = fra.me.REG[6];
10071 } else {
10072 /* compiling/compiling_icode.nit:805 */
10073 if (!once_value_222) {
10074 if (!once_value_223) {
10075 fra.me.REG[6] = BOX_NativeString("ascii");
10076 REGB1 = TAG_Int(5);
10077 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10078 once_value_223 = fra.me.REG[6];
10079 register_static_object(&once_value_223);
10080 } else fra.me.REG[6] = once_value_223;
10081 fra.me.REG[6] = fra.me.REG[6];
10082 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10083 once_value_222 = fra.me.REG[6];
10084 register_static_object(&once_value_222);
10085 } else fra.me.REG[6] = once_value_222;
10086 fra.me.REG[6] = fra.me.REG[6];
10087 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10088 if (UNTAG_Bool(REGB1)) {
10089 } else {
10090 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10091 REGB1 = REGB2;
10092 }
10093 if (UNTAG_Bool(REGB1)) {
10094 /* compiling/compiling_icode.nit:806 */
10095 REGB1 = TAG_Int(3);
10096 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10097 if (!once_value_224) {
10098 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
10099 REGB1 = TAG_Int(34);
10100 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10101 once_value_224 = fra.me.REG[7];
10102 register_static_object(&once_value_224);
10103 } else fra.me.REG[7] = once_value_224;
10104 fra.me.REG[7] = fra.me.REG[7];
10105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10106 REGB1 = TAG_Int(0);
10107 /* ../lib/standard/collection/array.nit:278 */
10108 fra.me.REG[7] = fra.me.REG[4];
10109 /* ../lib/standard/collection/array.nit:280 */
10110 REGB2 = TAG_Int(0);
10111 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10112 if (UNTAG_Bool(REGB0)) {
10113 } else {
10114 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10115 }
10116 /* ../lib/standard/kernel.nit:236 */
10117 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10118 /* ../lib/standard/collection/array.nit:280 */
10119 if (UNTAG_Bool(REGB2)) {
10120 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10121 if (UNTAG_Bool(REGB2)) {
10122 } else {
10123 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10124 }
10125 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10126 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10127 if (UNTAG_Bool(REGB0)) {
10128 } else {
10129 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10130 }
10131 /* ../lib/standard/kernel.nit:235 */
10132 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10133 } else {
10134 /* ../lib/standard/collection/array.nit:280 */
10135 REGB0 = TAG_Bool(0);
10136 REGB2 = REGB0;
10137 }
10138 if (UNTAG_Bool(REGB2)) {
10139 } else {
10140 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10141 }
10142 /* ../lib/standard/collection/array.nit:281 */
10143 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10144 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10145 if (UNTAG_Bool(REGB2)) {
10146 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10147 }
10148 /* ../lib/standard/collection/array.nit:718 */
10149 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10150 /* ../lib/standard/collection/array.nit:281 */
10151 goto label225;
10152 label225: while(0);
10153 /* compiling/compiling_icode.nit:806 */
10154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10155 if (!once_value_226) {
10156 fra.me.REG[7] = BOX_NativeString("))");
10157 REGB1 = TAG_Int(2);
10158 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10159 once_value_226 = fra.me.REG[7];
10160 register_static_object(&once_value_226);
10161 } else fra.me.REG[7] = once_value_226;
10162 fra.me.REG[7] = fra.me.REG[7];
10163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10164 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10165 fra.me.REG[5] = fra.me.REG[6];
10166 } else {
10167 /* compiling/compiling_icode.nit:807 */
10168 if (!once_value_227) {
10169 if (!once_value_228) {
10170 fra.me.REG[6] = BOX_NativeString("succ");
10171 REGB1 = TAG_Int(4);
10172 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10173 once_value_228 = fra.me.REG[6];
10174 register_static_object(&once_value_228);
10175 } else fra.me.REG[6] = once_value_228;
10176 fra.me.REG[6] = fra.me.REG[6];
10177 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10178 once_value_227 = fra.me.REG[6];
10179 register_static_object(&once_value_227);
10180 } else fra.me.REG[6] = once_value_227;
10181 fra.me.REG[6] = fra.me.REG[6];
10182 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10183 if (UNTAG_Bool(REGB1)) {
10184 } else {
10185 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10186 REGB1 = REGB2;
10187 }
10188 if (UNTAG_Bool(REGB1)) {
10189 /* compiling/compiling_icode.nit:808 */
10190 REGB1 = TAG_Int(3);
10191 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10192 if (!once_value_229) {
10193 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10194 REGB1 = TAG_Int(20);
10195 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10196 once_value_229 = fra.me.REG[7];
10197 register_static_object(&once_value_229);
10198 } else fra.me.REG[7] = once_value_229;
10199 fra.me.REG[7] = fra.me.REG[7];
10200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10201 REGB1 = TAG_Int(0);
10202 /* ../lib/standard/collection/array.nit:278 */
10203 fra.me.REG[7] = fra.me.REG[4];
10204 /* ../lib/standard/collection/array.nit:280 */
10205 REGB2 = TAG_Int(0);
10206 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10207 if (UNTAG_Bool(REGB0)) {
10208 } else {
10209 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10210 }
10211 /* ../lib/standard/kernel.nit:236 */
10212 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10213 /* ../lib/standard/collection/array.nit:280 */
10214 if (UNTAG_Bool(REGB2)) {
10215 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10216 if (UNTAG_Bool(REGB2)) {
10217 } else {
10218 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10219 }
10220 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10221 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10222 if (UNTAG_Bool(REGB0)) {
10223 } else {
10224 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10225 }
10226 /* ../lib/standard/kernel.nit:235 */
10227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10228 } else {
10229 /* ../lib/standard/collection/array.nit:280 */
10230 REGB0 = TAG_Bool(0);
10231 REGB2 = REGB0;
10232 }
10233 if (UNTAG_Bool(REGB2)) {
10234 } else {
10235 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10236 }
10237 /* ../lib/standard/collection/array.nit:281 */
10238 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10239 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10240 if (UNTAG_Bool(REGB2)) {
10241 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10242 }
10243 /* ../lib/standard/collection/array.nit:718 */
10244 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10245 /* ../lib/standard/collection/array.nit:281 */
10246 goto label230;
10247 label230: while(0);
10248 /* compiling/compiling_icode.nit:808 */
10249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10250 if (!once_value_231) {
10251 fra.me.REG[7] = BOX_NativeString(")+1)");
10252 REGB1 = TAG_Int(4);
10253 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10254 once_value_231 = fra.me.REG[7];
10255 register_static_object(&once_value_231);
10256 } else fra.me.REG[7] = once_value_231;
10257 fra.me.REG[7] = fra.me.REG[7];
10258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10259 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10260 fra.me.REG[5] = fra.me.REG[6];
10261 } else {
10262 /* compiling/compiling_icode.nit:809 */
10263 if (!once_value_232) {
10264 if (!once_value_233) {
10265 fra.me.REG[6] = BOX_NativeString("prec");
10266 REGB1 = TAG_Int(4);
10267 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10268 once_value_233 = fra.me.REG[6];
10269 register_static_object(&once_value_233);
10270 } else fra.me.REG[6] = once_value_233;
10271 fra.me.REG[6] = fra.me.REG[6];
10272 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10273 once_value_232 = fra.me.REG[6];
10274 register_static_object(&once_value_232);
10275 } else fra.me.REG[6] = once_value_232;
10276 fra.me.REG[6] = fra.me.REG[6];
10277 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10278 if (UNTAG_Bool(REGB1)) {
10279 } else {
10280 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10281 REGB1 = REGB2;
10282 }
10283 if (UNTAG_Bool(REGB1)) {
10284 /* compiling/compiling_icode.nit:810 */
10285 REGB1 = TAG_Int(3);
10286 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10287 if (!once_value_234) {
10288 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10289 REGB1 = TAG_Int(20);
10290 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10291 once_value_234 = fra.me.REG[7];
10292 register_static_object(&once_value_234);
10293 } else fra.me.REG[7] = once_value_234;
10294 fra.me.REG[7] = fra.me.REG[7];
10295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10296 REGB1 = TAG_Int(0);
10297 /* ../lib/standard/collection/array.nit:278 */
10298 fra.me.REG[7] = fra.me.REG[4];
10299 /* ../lib/standard/collection/array.nit:280 */
10300 REGB2 = TAG_Int(0);
10301 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10302 if (UNTAG_Bool(REGB0)) {
10303 } else {
10304 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10305 }
10306 /* ../lib/standard/kernel.nit:236 */
10307 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10308 /* ../lib/standard/collection/array.nit:280 */
10309 if (UNTAG_Bool(REGB2)) {
10310 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10311 if (UNTAG_Bool(REGB2)) {
10312 } else {
10313 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10314 }
10315 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10316 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10317 if (UNTAG_Bool(REGB0)) {
10318 } else {
10319 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10320 }
10321 /* ../lib/standard/kernel.nit:235 */
10322 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10323 } else {
10324 /* ../lib/standard/collection/array.nit:280 */
10325 REGB0 = TAG_Bool(0);
10326 REGB2 = REGB0;
10327 }
10328 if (UNTAG_Bool(REGB2)) {
10329 } else {
10330 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10331 }
10332 /* ../lib/standard/collection/array.nit:281 */
10333 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10334 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10335 if (UNTAG_Bool(REGB2)) {
10336 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10337 }
10338 /* ../lib/standard/collection/array.nit:718 */
10339 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10340 /* ../lib/standard/collection/array.nit:281 */
10341 goto label235;
10342 label235: while(0);
10343 /* compiling/compiling_icode.nit:810 */
10344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10345 if (!once_value_236) {
10346 fra.me.REG[7] = BOX_NativeString(")-1)");
10347 REGB1 = TAG_Int(4);
10348 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10349 once_value_236 = fra.me.REG[7];
10350 register_static_object(&once_value_236);
10351 } else fra.me.REG[7] = once_value_236;
10352 fra.me.REG[7] = fra.me.REG[7];
10353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10354 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10355 fra.me.REG[5] = fra.me.REG[6];
10356 } else {
10357 /* compiling/compiling_icode.nit:811 */
10358 if (!once_value_237) {
10359 if (!once_value_238) {
10360 fra.me.REG[6] = BOX_NativeString("to_i");
10361 REGB1 = TAG_Int(4);
10362 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10363 once_value_238 = fra.me.REG[6];
10364 register_static_object(&once_value_238);
10365 } else fra.me.REG[6] = once_value_238;
10366 fra.me.REG[6] = fra.me.REG[6];
10367 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10368 once_value_237 = fra.me.REG[6];
10369 register_static_object(&once_value_237);
10370 } else fra.me.REG[6] = once_value_237;
10371 fra.me.REG[6] = fra.me.REG[6];
10372 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10373 if (UNTAG_Bool(REGB1)) {
10374 } else {
10375 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10376 REGB1 = REGB2;
10377 }
10378 if (UNTAG_Bool(REGB1)) {
10379 /* compiling/compiling_icode.nit:812 */
10380 REGB1 = TAG_Int(3);
10381 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10382 if (!once_value_239) {
10383 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
10384 REGB1 = TAG_Int(19);
10385 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10386 once_value_239 = fra.me.REG[7];
10387 register_static_object(&once_value_239);
10388 } else fra.me.REG[7] = once_value_239;
10389 fra.me.REG[7] = fra.me.REG[7];
10390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10391 REGB1 = TAG_Int(0);
10392 /* ../lib/standard/collection/array.nit:278 */
10393 fra.me.REG[7] = fra.me.REG[4];
10394 /* ../lib/standard/collection/array.nit:280 */
10395 REGB2 = TAG_Int(0);
10396 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10397 if (UNTAG_Bool(REGB0)) {
10398 } else {
10399 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10400 }
10401 /* ../lib/standard/kernel.nit:236 */
10402 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10403 /* ../lib/standard/collection/array.nit:280 */
10404 if (UNTAG_Bool(REGB2)) {
10405 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10406 if (UNTAG_Bool(REGB2)) {
10407 } else {
10408 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10409 }
10410 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10411 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10412 if (UNTAG_Bool(REGB0)) {
10413 } else {
10414 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10415 }
10416 /* ../lib/standard/kernel.nit:235 */
10417 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10418 } else {
10419 /* ../lib/standard/collection/array.nit:280 */
10420 REGB0 = TAG_Bool(0);
10421 REGB2 = REGB0;
10422 }
10423 if (UNTAG_Bool(REGB2)) {
10424 } else {
10425 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10426 }
10427 /* ../lib/standard/collection/array.nit:281 */
10428 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10429 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10430 if (UNTAG_Bool(REGB2)) {
10431 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10432 }
10433 /* ../lib/standard/collection/array.nit:718 */
10434 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10435 /* ../lib/standard/collection/array.nit:281 */
10436 goto label240;
10437 label240: while(0);
10438 /* compiling/compiling_icode.nit:812 */
10439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10440 if (!once_value_241) {
10441 fra.me.REG[7] = BOX_NativeString(")-'0')");
10442 REGB1 = TAG_Int(6);
10443 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10444 once_value_241 = fra.me.REG[7];
10445 register_static_object(&once_value_241);
10446 } else fra.me.REG[7] = once_value_241;
10447 fra.me.REG[7] = fra.me.REG[7];
10448 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10449 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10450 fra.me.REG[5] = fra.me.REG[6];
10451 } else {
10452 /* compiling/compiling_icode.nit:813 */
10453 if (!once_value_242) {
10454 if (!once_value_243) {
10455 fra.me.REG[6] = BOX_NativeString("+");
10456 REGB1 = TAG_Int(1);
10457 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10458 once_value_243 = fra.me.REG[6];
10459 register_static_object(&once_value_243);
10460 } else fra.me.REG[6] = once_value_243;
10461 fra.me.REG[6] = fra.me.REG[6];
10462 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10463 once_value_242 = fra.me.REG[6];
10464 register_static_object(&once_value_242);
10465 } else fra.me.REG[6] = once_value_242;
10466 fra.me.REG[6] = fra.me.REG[6];
10467 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10468 if (UNTAG_Bool(REGB1)) {
10469 } else {
10470 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10471 REGB1 = REGB2;
10472 }
10473 if (UNTAG_Bool(REGB1)) {
10474 /* compiling/compiling_icode.nit:814 */
10475 REGB1 = TAG_Int(5);
10476 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10477 if (!once_value_244) {
10478 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10479 REGB1 = TAG_Int(20);
10480 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10481 once_value_244 = fra.me.REG[7];
10482 register_static_object(&once_value_244);
10483 } else fra.me.REG[7] = once_value_244;
10484 fra.me.REG[7] = fra.me.REG[7];
10485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10486 REGB1 = TAG_Int(0);
10487 /* ../lib/standard/collection/array.nit:278 */
10488 fra.me.REG[7] = fra.me.REG[4];
10489 /* ../lib/standard/collection/array.nit:280 */
10490 REGB2 = TAG_Int(0);
10491 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10492 if (UNTAG_Bool(REGB0)) {
10493 } else {
10494 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10495 }
10496 /* ../lib/standard/kernel.nit:236 */
10497 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10498 /* ../lib/standard/collection/array.nit:280 */
10499 if (UNTAG_Bool(REGB2)) {
10500 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10501 if (UNTAG_Bool(REGB2)) {
10502 } else {
10503 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10504 }
10505 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10506 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10507 if (UNTAG_Bool(REGB0)) {
10508 } else {
10509 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10510 }
10511 /* ../lib/standard/kernel.nit:235 */
10512 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10513 } else {
10514 /* ../lib/standard/collection/array.nit:280 */
10515 REGB0 = TAG_Bool(0);
10516 REGB2 = REGB0;
10517 }
10518 if (UNTAG_Bool(REGB2)) {
10519 } else {
10520 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10521 }
10522 /* ../lib/standard/collection/array.nit:281 */
10523 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10524 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10525 if (UNTAG_Bool(REGB2)) {
10526 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10527 }
10528 /* ../lib/standard/collection/array.nit:718 */
10529 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10530 /* ../lib/standard/collection/array.nit:281 */
10531 goto label245;
10532 label245: while(0);
10533 /* compiling/compiling_icode.nit:814 */
10534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10535 if (!once_value_246) {
10536 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
10537 REGB1 = TAG_Int(13);
10538 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10539 once_value_246 = fra.me.REG[7];
10540 register_static_object(&once_value_246);
10541 } else fra.me.REG[7] = once_value_246;
10542 fra.me.REG[7] = fra.me.REG[7];
10543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10544 REGB1 = TAG_Int(1);
10545 /* ../lib/standard/collection/array.nit:278 */
10546 fra.me.REG[7] = fra.me.REG[4];
10547 /* ../lib/standard/collection/array.nit:280 */
10548 REGB2 = TAG_Int(0);
10549 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10550 if (UNTAG_Bool(REGB0)) {
10551 } else {
10552 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10553 }
10554 /* ../lib/standard/kernel.nit:236 */
10555 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10556 /* ../lib/standard/collection/array.nit:280 */
10557 if (UNTAG_Bool(REGB2)) {
10558 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10559 if (UNTAG_Bool(REGB2)) {
10560 } else {
10561 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10562 }
10563 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10564 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10565 if (UNTAG_Bool(REGB0)) {
10566 } else {
10567 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10568 }
10569 /* ../lib/standard/kernel.nit:235 */
10570 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10571 } else {
10572 /* ../lib/standard/collection/array.nit:280 */
10573 REGB0 = TAG_Bool(0);
10574 REGB2 = REGB0;
10575 }
10576 if (UNTAG_Bool(REGB2)) {
10577 } else {
10578 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10579 }
10580 /* ../lib/standard/collection/array.nit:281 */
10581 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10582 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10583 if (UNTAG_Bool(REGB2)) {
10584 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10585 }
10586 /* ../lib/standard/collection/array.nit:718 */
10587 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10588 /* ../lib/standard/collection/array.nit:281 */
10589 goto label247;
10590 label247: while(0);
10591 /* compiling/compiling_icode.nit:814 */
10592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10593 if (!once_value_248) {
10594 fra.me.REG[7] = BOX_NativeString("))");
10595 REGB1 = TAG_Int(2);
10596 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10597 once_value_248 = fra.me.REG[7];
10598 register_static_object(&once_value_248);
10599 } else fra.me.REG[7] = once_value_248;
10600 fra.me.REG[7] = fra.me.REG[7];
10601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10602 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10603 fra.me.REG[5] = fra.me.REG[6];
10604 } else {
10605 /* compiling/compiling_icode.nit:815 */
10606 if (!once_value_249) {
10607 if (!once_value_250) {
10608 fra.me.REG[6] = BOX_NativeString("-");
10609 REGB1 = TAG_Int(1);
10610 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10611 once_value_250 = fra.me.REG[6];
10612 register_static_object(&once_value_250);
10613 } else fra.me.REG[6] = once_value_250;
10614 fra.me.REG[6] = fra.me.REG[6];
10615 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10616 once_value_249 = fra.me.REG[6];
10617 register_static_object(&once_value_249);
10618 } else fra.me.REG[6] = once_value_249;
10619 fra.me.REG[6] = fra.me.REG[6];
10620 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10621 if (UNTAG_Bool(REGB1)) {
10622 } else {
10623 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10624 REGB1 = REGB2;
10625 }
10626 if (UNTAG_Bool(REGB1)) {
10627 /* compiling/compiling_icode.nit:816 */
10628 REGB1 = TAG_Int(5);
10629 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10630 if (!once_value_251) {
10631 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10632 REGB1 = TAG_Int(20);
10633 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10634 once_value_251 = fra.me.REG[7];
10635 register_static_object(&once_value_251);
10636 } else fra.me.REG[7] = once_value_251;
10637 fra.me.REG[7] = fra.me.REG[7];
10638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10639 REGB1 = TAG_Int(0);
10640 /* ../lib/standard/collection/array.nit:278 */
10641 fra.me.REG[7] = fra.me.REG[4];
10642 /* ../lib/standard/collection/array.nit:280 */
10643 REGB2 = TAG_Int(0);
10644 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10645 if (UNTAG_Bool(REGB0)) {
10646 } else {
10647 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10648 }
10649 /* ../lib/standard/kernel.nit:236 */
10650 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10651 /* ../lib/standard/collection/array.nit:280 */
10652 if (UNTAG_Bool(REGB2)) {
10653 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10654 if (UNTAG_Bool(REGB2)) {
10655 } else {
10656 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10657 }
10658 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10659 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10660 if (UNTAG_Bool(REGB0)) {
10661 } else {
10662 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10663 }
10664 /* ../lib/standard/kernel.nit:235 */
10665 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10666 } else {
10667 /* ../lib/standard/collection/array.nit:280 */
10668 REGB0 = TAG_Bool(0);
10669 REGB2 = REGB0;
10670 }
10671 if (UNTAG_Bool(REGB2)) {
10672 } else {
10673 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10674 }
10675 /* ../lib/standard/collection/array.nit:281 */
10676 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10677 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10678 if (UNTAG_Bool(REGB2)) {
10679 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10680 }
10681 /* ../lib/standard/collection/array.nit:718 */
10682 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10683 /* ../lib/standard/collection/array.nit:281 */
10684 goto label252;
10685 label252: while(0);
10686 /* compiling/compiling_icode.nit:816 */
10687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10688 if (!once_value_253) {
10689 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
10690 REGB1 = TAG_Int(13);
10691 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10692 once_value_253 = fra.me.REG[7];
10693 register_static_object(&once_value_253);
10694 } else fra.me.REG[7] = once_value_253;
10695 fra.me.REG[7] = fra.me.REG[7];
10696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10697 REGB1 = TAG_Int(1);
10698 /* ../lib/standard/collection/array.nit:278 */
10699 fra.me.REG[7] = fra.me.REG[4];
10700 /* ../lib/standard/collection/array.nit:280 */
10701 REGB2 = TAG_Int(0);
10702 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10703 if (UNTAG_Bool(REGB0)) {
10704 } else {
10705 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10706 }
10707 /* ../lib/standard/kernel.nit:236 */
10708 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10709 /* ../lib/standard/collection/array.nit:280 */
10710 if (UNTAG_Bool(REGB2)) {
10711 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10712 if (UNTAG_Bool(REGB2)) {
10713 } else {
10714 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10715 }
10716 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10717 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10718 if (UNTAG_Bool(REGB0)) {
10719 } else {
10720 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10721 }
10722 /* ../lib/standard/kernel.nit:235 */
10723 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10724 } else {
10725 /* ../lib/standard/collection/array.nit:280 */
10726 REGB0 = TAG_Bool(0);
10727 REGB2 = REGB0;
10728 }
10729 if (UNTAG_Bool(REGB2)) {
10730 } else {
10731 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10732 }
10733 /* ../lib/standard/collection/array.nit:281 */
10734 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10735 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10736 if (UNTAG_Bool(REGB2)) {
10737 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10738 }
10739 /* ../lib/standard/collection/array.nit:718 */
10740 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10741 /* ../lib/standard/collection/array.nit:281 */
10742 goto label254;
10743 label254: while(0);
10744 /* compiling/compiling_icode.nit:816 */
10745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10746 if (!once_value_255) {
10747 fra.me.REG[7] = BOX_NativeString("))");
10748 REGB1 = TAG_Int(2);
10749 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10750 once_value_255 = fra.me.REG[7];
10751 register_static_object(&once_value_255);
10752 } else fra.me.REG[7] = once_value_255;
10753 fra.me.REG[7] = fra.me.REG[7];
10754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10755 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10756 fra.me.REG[5] = fra.me.REG[6];
10757 } else {
10758 /* compiling/compiling_icode.nit:817 */
10759 if (!once_value_256) {
10760 if (!once_value_257) {
10761 fra.me.REG[6] = BOX_NativeString("*");
10762 REGB1 = TAG_Int(1);
10763 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10764 once_value_257 = fra.me.REG[6];
10765 register_static_object(&once_value_257);
10766 } else fra.me.REG[6] = once_value_257;
10767 fra.me.REG[6] = fra.me.REG[6];
10768 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10769 once_value_256 = fra.me.REG[6];
10770 register_static_object(&once_value_256);
10771 } else fra.me.REG[6] = once_value_256;
10772 fra.me.REG[6] = fra.me.REG[6];
10773 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10774 if (UNTAG_Bool(REGB1)) {
10775 } else {
10776 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10777 REGB1 = REGB2;
10778 }
10779 if (UNTAG_Bool(REGB1)) {
10780 /* compiling/compiling_icode.nit:818 */
10781 REGB1 = TAG_Int(5);
10782 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10783 if (!once_value_258) {
10784 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10785 REGB1 = TAG_Int(20);
10786 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10787 once_value_258 = fra.me.REG[7];
10788 register_static_object(&once_value_258);
10789 } else fra.me.REG[7] = once_value_258;
10790 fra.me.REG[7] = fra.me.REG[7];
10791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10792 REGB1 = TAG_Int(0);
10793 /* ../lib/standard/collection/array.nit:278 */
10794 fra.me.REG[7] = fra.me.REG[4];
10795 /* ../lib/standard/collection/array.nit:280 */
10796 REGB2 = TAG_Int(0);
10797 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10798 if (UNTAG_Bool(REGB0)) {
10799 } else {
10800 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10801 }
10802 /* ../lib/standard/kernel.nit:236 */
10803 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10804 /* ../lib/standard/collection/array.nit:280 */
10805 if (UNTAG_Bool(REGB2)) {
10806 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10807 if (UNTAG_Bool(REGB2)) {
10808 } else {
10809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10810 }
10811 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10812 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10813 if (UNTAG_Bool(REGB0)) {
10814 } else {
10815 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10816 }
10817 /* ../lib/standard/kernel.nit:235 */
10818 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10819 } else {
10820 /* ../lib/standard/collection/array.nit:280 */
10821 REGB0 = TAG_Bool(0);
10822 REGB2 = REGB0;
10823 }
10824 if (UNTAG_Bool(REGB2)) {
10825 } else {
10826 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10827 }
10828 /* ../lib/standard/collection/array.nit:281 */
10829 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10830 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10831 if (UNTAG_Bool(REGB2)) {
10832 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10833 }
10834 /* ../lib/standard/collection/array.nit:718 */
10835 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10836 /* ../lib/standard/collection/array.nit:281 */
10837 goto label259;
10838 label259: while(0);
10839 /* compiling/compiling_icode.nit:818 */
10840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10841 if (!once_value_260) {
10842 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
10843 REGB1 = TAG_Int(13);
10844 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10845 once_value_260 = fra.me.REG[7];
10846 register_static_object(&once_value_260);
10847 } else fra.me.REG[7] = once_value_260;
10848 fra.me.REG[7] = fra.me.REG[7];
10849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10850 REGB1 = TAG_Int(1);
10851 /* ../lib/standard/collection/array.nit:278 */
10852 fra.me.REG[7] = fra.me.REG[4];
10853 /* ../lib/standard/collection/array.nit:280 */
10854 REGB2 = TAG_Int(0);
10855 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10856 if (UNTAG_Bool(REGB0)) {
10857 } else {
10858 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10859 }
10860 /* ../lib/standard/kernel.nit:236 */
10861 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10862 /* ../lib/standard/collection/array.nit:280 */
10863 if (UNTAG_Bool(REGB2)) {
10864 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10865 if (UNTAG_Bool(REGB2)) {
10866 } else {
10867 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10868 }
10869 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10870 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10871 if (UNTAG_Bool(REGB0)) {
10872 } else {
10873 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10874 }
10875 /* ../lib/standard/kernel.nit:235 */
10876 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10877 } else {
10878 /* ../lib/standard/collection/array.nit:280 */
10879 REGB0 = TAG_Bool(0);
10880 REGB2 = REGB0;
10881 }
10882 if (UNTAG_Bool(REGB2)) {
10883 } else {
10884 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10885 }
10886 /* ../lib/standard/collection/array.nit:281 */
10887 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10888 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10889 if (UNTAG_Bool(REGB2)) {
10890 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10891 }
10892 /* ../lib/standard/collection/array.nit:718 */
10893 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10894 /* ../lib/standard/collection/array.nit:281 */
10895 goto label261;
10896 label261: while(0);
10897 /* compiling/compiling_icode.nit:818 */
10898 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10899 if (!once_value_262) {
10900 fra.me.REG[7] = BOX_NativeString("))");
10901 REGB1 = TAG_Int(2);
10902 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10903 once_value_262 = fra.me.REG[7];
10904 register_static_object(&once_value_262);
10905 } else fra.me.REG[7] = once_value_262;
10906 fra.me.REG[7] = fra.me.REG[7];
10907 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10908 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10909 fra.me.REG[5] = fra.me.REG[6];
10910 } else {
10911 /* compiling/compiling_icode.nit:819 */
10912 if (!once_value_263) {
10913 if (!once_value_264) {
10914 fra.me.REG[6] = BOX_NativeString("/");
10915 REGB1 = TAG_Int(1);
10916 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10917 once_value_264 = fra.me.REG[6];
10918 register_static_object(&once_value_264);
10919 } else fra.me.REG[6] = once_value_264;
10920 fra.me.REG[6] = fra.me.REG[6];
10921 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10922 once_value_263 = fra.me.REG[6];
10923 register_static_object(&once_value_263);
10924 } else fra.me.REG[6] = once_value_263;
10925 fra.me.REG[6] = fra.me.REG[6];
10926 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10927 if (UNTAG_Bool(REGB1)) {
10928 } else {
10929 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10930 REGB1 = REGB2;
10931 }
10932 if (UNTAG_Bool(REGB1)) {
10933 /* compiling/compiling_icode.nit:820 */
10934 REGB1 = TAG_Int(5);
10935 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10936 if (!once_value_265) {
10937 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10938 REGB1 = TAG_Int(20);
10939 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10940 once_value_265 = fra.me.REG[7];
10941 register_static_object(&once_value_265);
10942 } else fra.me.REG[7] = once_value_265;
10943 fra.me.REG[7] = fra.me.REG[7];
10944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10945 REGB1 = TAG_Int(0);
10946 /* ../lib/standard/collection/array.nit:278 */
10947 fra.me.REG[7] = fra.me.REG[4];
10948 /* ../lib/standard/collection/array.nit:280 */
10949 REGB2 = TAG_Int(0);
10950 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10951 if (UNTAG_Bool(REGB0)) {
10952 } else {
10953 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10954 }
10955 /* ../lib/standard/kernel.nit:236 */
10956 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10957 /* ../lib/standard/collection/array.nit:280 */
10958 if (UNTAG_Bool(REGB2)) {
10959 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10960 if (UNTAG_Bool(REGB2)) {
10961 } else {
10962 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10963 }
10964 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10965 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10966 if (UNTAG_Bool(REGB0)) {
10967 } else {
10968 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10969 }
10970 /* ../lib/standard/kernel.nit:235 */
10971 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10972 } else {
10973 /* ../lib/standard/collection/array.nit:280 */
10974 REGB0 = TAG_Bool(0);
10975 REGB2 = REGB0;
10976 }
10977 if (UNTAG_Bool(REGB2)) {
10978 } else {
10979 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10980 }
10981 /* ../lib/standard/collection/array.nit:281 */
10982 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10983 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10984 if (UNTAG_Bool(REGB2)) {
10985 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10986 }
10987 /* ../lib/standard/collection/array.nit:718 */
10988 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10989 /* ../lib/standard/collection/array.nit:281 */
10990 goto label266;
10991 label266: while(0);
10992 /* compiling/compiling_icode.nit:820 */
10993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10994 if (!once_value_267) {
10995 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
10996 REGB1 = TAG_Int(13);
10997 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10998 once_value_267 = fra.me.REG[7];
10999 register_static_object(&once_value_267);
11000 } else fra.me.REG[7] = once_value_267;
11001 fra.me.REG[7] = fra.me.REG[7];
11002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11003 REGB1 = TAG_Int(1);
11004 /* ../lib/standard/collection/array.nit:278 */
11005 fra.me.REG[7] = fra.me.REG[4];
11006 /* ../lib/standard/collection/array.nit:280 */
11007 REGB2 = TAG_Int(0);
11008 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11009 if (UNTAG_Bool(REGB0)) {
11010 } else {
11011 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11012 }
11013 /* ../lib/standard/kernel.nit:236 */
11014 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11015 /* ../lib/standard/collection/array.nit:280 */
11016 if (UNTAG_Bool(REGB2)) {
11017 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11018 if (UNTAG_Bool(REGB2)) {
11019 } else {
11020 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11021 }
11022 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11023 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11024 if (UNTAG_Bool(REGB0)) {
11025 } else {
11026 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11027 }
11028 /* ../lib/standard/kernel.nit:235 */
11029 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11030 } else {
11031 /* ../lib/standard/collection/array.nit:280 */
11032 REGB0 = TAG_Bool(0);
11033 REGB2 = REGB0;
11034 }
11035 if (UNTAG_Bool(REGB2)) {
11036 } else {
11037 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11038 }
11039 /* ../lib/standard/collection/array.nit:281 */
11040 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11041 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11042 if (UNTAG_Bool(REGB2)) {
11043 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11044 }
11045 /* ../lib/standard/collection/array.nit:718 */
11046 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11047 /* ../lib/standard/collection/array.nit:281 */
11048 goto label268;
11049 label268: while(0);
11050 /* compiling/compiling_icode.nit:820 */
11051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11052 if (!once_value_269) {
11053 fra.me.REG[7] = BOX_NativeString("))");
11054 REGB1 = TAG_Int(2);
11055 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11056 once_value_269 = fra.me.REG[7];
11057 register_static_object(&once_value_269);
11058 } else fra.me.REG[7] = once_value_269;
11059 fra.me.REG[7] = fra.me.REG[7];
11060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11061 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11062 fra.me.REG[5] = fra.me.REG[6];
11063 } else {
11064 /* compiling/compiling_icode.nit:821 */
11065 if (!once_value_270) {
11066 if (!once_value_271) {
11067 fra.me.REG[6] = BOX_NativeString("%");
11068 REGB1 = TAG_Int(1);
11069 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11070 once_value_271 = fra.me.REG[6];
11071 register_static_object(&once_value_271);
11072 } else fra.me.REG[6] = once_value_271;
11073 fra.me.REG[6] = fra.me.REG[6];
11074 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11075 once_value_270 = fra.me.REG[6];
11076 register_static_object(&once_value_270);
11077 } else fra.me.REG[6] = once_value_270;
11078 fra.me.REG[6] = fra.me.REG[6];
11079 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11080 if (UNTAG_Bool(REGB1)) {
11081 } else {
11082 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11083 REGB1 = REGB2;
11084 }
11085 if (UNTAG_Bool(REGB1)) {
11086 /* compiling/compiling_icode.nit:822 */
11087 REGB1 = TAG_Int(5);
11088 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11089 if (!once_value_272) {
11090 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
11091 REGB1 = TAG_Int(20);
11092 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11093 once_value_272 = fra.me.REG[7];
11094 register_static_object(&once_value_272);
11095 } else fra.me.REG[7] = once_value_272;
11096 fra.me.REG[7] = fra.me.REG[7];
11097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11098 REGB1 = TAG_Int(0);
11099 /* ../lib/standard/collection/array.nit:278 */
11100 fra.me.REG[7] = fra.me.REG[4];
11101 /* ../lib/standard/collection/array.nit:280 */
11102 REGB2 = TAG_Int(0);
11103 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11104 if (UNTAG_Bool(REGB0)) {
11105 } else {
11106 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11107 }
11108 /* ../lib/standard/kernel.nit:236 */
11109 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11110 /* ../lib/standard/collection/array.nit:280 */
11111 if (UNTAG_Bool(REGB2)) {
11112 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11113 if (UNTAG_Bool(REGB2)) {
11114 } else {
11115 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11116 }
11117 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11118 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11119 if (UNTAG_Bool(REGB0)) {
11120 } else {
11121 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11122 }
11123 /* ../lib/standard/kernel.nit:235 */
11124 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11125 } else {
11126 /* ../lib/standard/collection/array.nit:280 */
11127 REGB0 = TAG_Bool(0);
11128 REGB2 = REGB0;
11129 }
11130 if (UNTAG_Bool(REGB2)) {
11131 } else {
11132 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11133 }
11134 /* ../lib/standard/collection/array.nit:281 */
11135 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11136 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11137 if (UNTAG_Bool(REGB2)) {
11138 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11139 }
11140 /* ../lib/standard/collection/array.nit:718 */
11141 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11142 /* ../lib/standard/collection/array.nit:281 */
11143 goto label273;
11144 label273: while(0);
11145 /* compiling/compiling_icode.nit:822 */
11146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11147 if (!once_value_274) {
11148 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
11149 REGB1 = TAG_Int(13);
11150 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11151 once_value_274 = fra.me.REG[7];
11152 register_static_object(&once_value_274);
11153 } else fra.me.REG[7] = once_value_274;
11154 fra.me.REG[7] = fra.me.REG[7];
11155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11156 REGB1 = TAG_Int(1);
11157 /* ../lib/standard/collection/array.nit:278 */
11158 fra.me.REG[7] = fra.me.REG[4];
11159 /* ../lib/standard/collection/array.nit:280 */
11160 REGB2 = TAG_Int(0);
11161 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11162 if (UNTAG_Bool(REGB0)) {
11163 } else {
11164 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11165 }
11166 /* ../lib/standard/kernel.nit:236 */
11167 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11168 /* ../lib/standard/collection/array.nit:280 */
11169 if (UNTAG_Bool(REGB2)) {
11170 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11171 if (UNTAG_Bool(REGB2)) {
11172 } else {
11173 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11174 }
11175 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11176 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11177 if (UNTAG_Bool(REGB0)) {
11178 } else {
11179 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11180 }
11181 /* ../lib/standard/kernel.nit:235 */
11182 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11183 } else {
11184 /* ../lib/standard/collection/array.nit:280 */
11185 REGB0 = TAG_Bool(0);
11186 REGB2 = REGB0;
11187 }
11188 if (UNTAG_Bool(REGB2)) {
11189 } else {
11190 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11191 }
11192 /* ../lib/standard/collection/array.nit:281 */
11193 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11194 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11195 if (UNTAG_Bool(REGB2)) {
11196 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11197 }
11198 /* ../lib/standard/collection/array.nit:718 */
11199 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11200 /* ../lib/standard/collection/array.nit:281 */
11201 goto label275;
11202 label275: while(0);
11203 /* compiling/compiling_icode.nit:822 */
11204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11205 if (!once_value_276) {
11206 fra.me.REG[7] = BOX_NativeString("))");
11207 REGB1 = TAG_Int(2);
11208 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11209 once_value_276 = fra.me.REG[7];
11210 register_static_object(&once_value_276);
11211 } else fra.me.REG[7] = once_value_276;
11212 fra.me.REG[7] = fra.me.REG[7];
11213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11214 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11215 fra.me.REG[5] = fra.me.REG[6];
11216 } else {
11217 /* compiling/compiling_icode.nit:823 */
11218 if (!once_value_277) {
11219 if (!once_value_278) {
11220 fra.me.REG[6] = BOX_NativeString("<");
11221 REGB1 = TAG_Int(1);
11222 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11223 once_value_278 = fra.me.REG[6];
11224 register_static_object(&once_value_278);
11225 } else fra.me.REG[6] = once_value_278;
11226 fra.me.REG[6] = fra.me.REG[6];
11227 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11228 once_value_277 = fra.me.REG[6];
11229 register_static_object(&once_value_277);
11230 } else fra.me.REG[6] = once_value_277;
11231 fra.me.REG[6] = fra.me.REG[6];
11232 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11233 if (UNTAG_Bool(REGB1)) {
11234 } else {
11235 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11236 REGB1 = REGB2;
11237 }
11238 if (UNTAG_Bool(REGB1)) {
11239 /* compiling/compiling_icode.nit:824 */
11240 REGB1 = TAG_Int(5);
11241 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11242 if (!once_value_279) {
11243 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11244 REGB1 = TAG_Int(20);
11245 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11246 once_value_279 = fra.me.REG[7];
11247 register_static_object(&once_value_279);
11248 } else fra.me.REG[7] = once_value_279;
11249 fra.me.REG[7] = fra.me.REG[7];
11250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11251 REGB1 = TAG_Int(0);
11252 /* ../lib/standard/collection/array.nit:278 */
11253 fra.me.REG[7] = fra.me.REG[4];
11254 /* ../lib/standard/collection/array.nit:280 */
11255 REGB2 = TAG_Int(0);
11256 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11257 if (UNTAG_Bool(REGB0)) {
11258 } else {
11259 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11260 }
11261 /* ../lib/standard/kernel.nit:236 */
11262 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11263 /* ../lib/standard/collection/array.nit:280 */
11264 if (UNTAG_Bool(REGB2)) {
11265 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11266 if (UNTAG_Bool(REGB2)) {
11267 } else {
11268 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11269 }
11270 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11271 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11272 if (UNTAG_Bool(REGB0)) {
11273 } else {
11274 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11275 }
11276 /* ../lib/standard/kernel.nit:235 */
11277 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11278 } else {
11279 /* ../lib/standard/collection/array.nit:280 */
11280 REGB0 = TAG_Bool(0);
11281 REGB2 = REGB0;
11282 }
11283 if (UNTAG_Bool(REGB2)) {
11284 } else {
11285 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11286 }
11287 /* ../lib/standard/collection/array.nit:281 */
11288 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11289 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11290 if (UNTAG_Bool(REGB2)) {
11291 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11292 }
11293 /* ../lib/standard/collection/array.nit:718 */
11294 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11295 /* ../lib/standard/collection/array.nit:281 */
11296 goto label280;
11297 label280: while(0);
11298 /* compiling/compiling_icode.nit:824 */
11299 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11300 if (!once_value_281) {
11301 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
11302 REGB1 = TAG_Int(13);
11303 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11304 once_value_281 = fra.me.REG[7];
11305 register_static_object(&once_value_281);
11306 } else fra.me.REG[7] = once_value_281;
11307 fra.me.REG[7] = fra.me.REG[7];
11308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11309 REGB1 = TAG_Int(1);
11310 /* ../lib/standard/collection/array.nit:278 */
11311 fra.me.REG[7] = fra.me.REG[4];
11312 /* ../lib/standard/collection/array.nit:280 */
11313 REGB2 = TAG_Int(0);
11314 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11315 if (UNTAG_Bool(REGB0)) {
11316 } else {
11317 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11318 }
11319 /* ../lib/standard/kernel.nit:236 */
11320 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11321 /* ../lib/standard/collection/array.nit:280 */
11322 if (UNTAG_Bool(REGB2)) {
11323 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11324 if (UNTAG_Bool(REGB2)) {
11325 } else {
11326 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11327 }
11328 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11329 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11330 if (UNTAG_Bool(REGB0)) {
11331 } else {
11332 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11333 }
11334 /* ../lib/standard/kernel.nit:235 */
11335 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11336 } else {
11337 /* ../lib/standard/collection/array.nit:280 */
11338 REGB0 = TAG_Bool(0);
11339 REGB2 = REGB0;
11340 }
11341 if (UNTAG_Bool(REGB2)) {
11342 } else {
11343 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11344 }
11345 /* ../lib/standard/collection/array.nit:281 */
11346 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11347 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11348 if (UNTAG_Bool(REGB2)) {
11349 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11350 }
11351 /* ../lib/standard/collection/array.nit:718 */
11352 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11353 /* ../lib/standard/collection/array.nit:281 */
11354 goto label282;
11355 label282: while(0);
11356 /* compiling/compiling_icode.nit:824 */
11357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11358 if (!once_value_283) {
11359 fra.me.REG[7] = BOX_NativeString("))");
11360 REGB1 = TAG_Int(2);
11361 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11362 once_value_283 = fra.me.REG[7];
11363 register_static_object(&once_value_283);
11364 } else fra.me.REG[7] = once_value_283;
11365 fra.me.REG[7] = fra.me.REG[7];
11366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11367 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11368 fra.me.REG[5] = fra.me.REG[6];
11369 } else {
11370 /* compiling/compiling_icode.nit:825 */
11371 if (!once_value_284) {
11372 if (!once_value_285) {
11373 fra.me.REG[6] = BOX_NativeString(">");
11374 REGB1 = TAG_Int(1);
11375 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11376 once_value_285 = fra.me.REG[6];
11377 register_static_object(&once_value_285);
11378 } else fra.me.REG[6] = once_value_285;
11379 fra.me.REG[6] = fra.me.REG[6];
11380 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11381 once_value_284 = fra.me.REG[6];
11382 register_static_object(&once_value_284);
11383 } else fra.me.REG[6] = once_value_284;
11384 fra.me.REG[6] = fra.me.REG[6];
11385 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11386 if (UNTAG_Bool(REGB1)) {
11387 } else {
11388 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11389 REGB1 = REGB2;
11390 }
11391 if (UNTAG_Bool(REGB1)) {
11392 /* compiling/compiling_icode.nit:826 */
11393 REGB1 = TAG_Int(5);
11394 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11395 if (!once_value_286) {
11396 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11397 REGB1 = TAG_Int(20);
11398 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11399 once_value_286 = fra.me.REG[7];
11400 register_static_object(&once_value_286);
11401 } else fra.me.REG[7] = once_value_286;
11402 fra.me.REG[7] = fra.me.REG[7];
11403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11404 REGB1 = TAG_Int(0);
11405 /* ../lib/standard/collection/array.nit:278 */
11406 fra.me.REG[7] = fra.me.REG[4];
11407 /* ../lib/standard/collection/array.nit:280 */
11408 REGB2 = TAG_Int(0);
11409 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11410 if (UNTAG_Bool(REGB0)) {
11411 } else {
11412 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11413 }
11414 /* ../lib/standard/kernel.nit:236 */
11415 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11416 /* ../lib/standard/collection/array.nit:280 */
11417 if (UNTAG_Bool(REGB2)) {
11418 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11419 if (UNTAG_Bool(REGB2)) {
11420 } else {
11421 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11422 }
11423 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11424 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11425 if (UNTAG_Bool(REGB0)) {
11426 } else {
11427 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11428 }
11429 /* ../lib/standard/kernel.nit:235 */
11430 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11431 } else {
11432 /* ../lib/standard/collection/array.nit:280 */
11433 REGB0 = TAG_Bool(0);
11434 REGB2 = REGB0;
11435 }
11436 if (UNTAG_Bool(REGB2)) {
11437 } else {
11438 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11439 }
11440 /* ../lib/standard/collection/array.nit:281 */
11441 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11442 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11443 if (UNTAG_Bool(REGB2)) {
11444 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11445 }
11446 /* ../lib/standard/collection/array.nit:718 */
11447 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11448 /* ../lib/standard/collection/array.nit:281 */
11449 goto label287;
11450 label287: while(0);
11451 /* compiling/compiling_icode.nit:826 */
11452 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11453 if (!once_value_288) {
11454 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
11455 REGB1 = TAG_Int(13);
11456 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11457 once_value_288 = fra.me.REG[7];
11458 register_static_object(&once_value_288);
11459 } else fra.me.REG[7] = once_value_288;
11460 fra.me.REG[7] = fra.me.REG[7];
11461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11462 REGB1 = TAG_Int(1);
11463 /* ../lib/standard/collection/array.nit:278 */
11464 fra.me.REG[7] = fra.me.REG[4];
11465 /* ../lib/standard/collection/array.nit:280 */
11466 REGB2 = TAG_Int(0);
11467 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11468 if (UNTAG_Bool(REGB0)) {
11469 } else {
11470 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11471 }
11472 /* ../lib/standard/kernel.nit:236 */
11473 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11474 /* ../lib/standard/collection/array.nit:280 */
11475 if (UNTAG_Bool(REGB2)) {
11476 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11477 if (UNTAG_Bool(REGB2)) {
11478 } else {
11479 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11480 }
11481 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11482 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11483 if (UNTAG_Bool(REGB0)) {
11484 } else {
11485 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11486 }
11487 /* ../lib/standard/kernel.nit:235 */
11488 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11489 } else {
11490 /* ../lib/standard/collection/array.nit:280 */
11491 REGB0 = TAG_Bool(0);
11492 REGB2 = REGB0;
11493 }
11494 if (UNTAG_Bool(REGB2)) {
11495 } else {
11496 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11497 }
11498 /* ../lib/standard/collection/array.nit:281 */
11499 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11500 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11501 if (UNTAG_Bool(REGB2)) {
11502 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11503 }
11504 /* ../lib/standard/collection/array.nit:718 */
11505 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11506 /* ../lib/standard/collection/array.nit:281 */
11507 goto label289;
11508 label289: while(0);
11509 /* compiling/compiling_icode.nit:826 */
11510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11511 if (!once_value_290) {
11512 fra.me.REG[7] = BOX_NativeString("))");
11513 REGB1 = TAG_Int(2);
11514 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11515 once_value_290 = fra.me.REG[7];
11516 register_static_object(&once_value_290);
11517 } else fra.me.REG[7] = once_value_290;
11518 fra.me.REG[7] = fra.me.REG[7];
11519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11520 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11521 fra.me.REG[5] = fra.me.REG[6];
11522 } else {
11523 /* compiling/compiling_icode.nit:827 */
11524 if (!once_value_291) {
11525 if (!once_value_292) {
11526 fra.me.REG[6] = BOX_NativeString("<=");
11527 REGB1 = TAG_Int(2);
11528 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11529 once_value_292 = fra.me.REG[6];
11530 register_static_object(&once_value_292);
11531 } else fra.me.REG[6] = once_value_292;
11532 fra.me.REG[6] = fra.me.REG[6];
11533 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11534 once_value_291 = fra.me.REG[6];
11535 register_static_object(&once_value_291);
11536 } else fra.me.REG[6] = once_value_291;
11537 fra.me.REG[6] = fra.me.REG[6];
11538 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11539 if (UNTAG_Bool(REGB1)) {
11540 } else {
11541 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11542 REGB1 = REGB2;
11543 }
11544 if (UNTAG_Bool(REGB1)) {
11545 /* compiling/compiling_icode.nit:828 */
11546 REGB1 = TAG_Int(5);
11547 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11548 if (!once_value_293) {
11549 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11550 REGB1 = TAG_Int(20);
11551 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11552 once_value_293 = fra.me.REG[7];
11553 register_static_object(&once_value_293);
11554 } else fra.me.REG[7] = once_value_293;
11555 fra.me.REG[7] = fra.me.REG[7];
11556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11557 REGB1 = TAG_Int(0);
11558 /* ../lib/standard/collection/array.nit:278 */
11559 fra.me.REG[7] = fra.me.REG[4];
11560 /* ../lib/standard/collection/array.nit:280 */
11561 REGB2 = TAG_Int(0);
11562 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11563 if (UNTAG_Bool(REGB0)) {
11564 } else {
11565 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11566 }
11567 /* ../lib/standard/kernel.nit:236 */
11568 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11569 /* ../lib/standard/collection/array.nit:280 */
11570 if (UNTAG_Bool(REGB2)) {
11571 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11572 if (UNTAG_Bool(REGB2)) {
11573 } else {
11574 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11575 }
11576 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11577 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11578 if (UNTAG_Bool(REGB0)) {
11579 } else {
11580 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11581 }
11582 /* ../lib/standard/kernel.nit:235 */
11583 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11584 } else {
11585 /* ../lib/standard/collection/array.nit:280 */
11586 REGB0 = TAG_Bool(0);
11587 REGB2 = REGB0;
11588 }
11589 if (UNTAG_Bool(REGB2)) {
11590 } else {
11591 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11592 }
11593 /* ../lib/standard/collection/array.nit:281 */
11594 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11595 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11596 if (UNTAG_Bool(REGB2)) {
11597 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11598 }
11599 /* ../lib/standard/collection/array.nit:718 */
11600 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11601 /* ../lib/standard/collection/array.nit:281 */
11602 goto label294;
11603 label294: while(0);
11604 /* compiling/compiling_icode.nit:828 */
11605 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11606 if (!once_value_295) {
11607 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
11608 REGB1 = TAG_Int(14);
11609 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11610 once_value_295 = fra.me.REG[7];
11611 register_static_object(&once_value_295);
11612 } else fra.me.REG[7] = once_value_295;
11613 fra.me.REG[7] = fra.me.REG[7];
11614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11615 REGB1 = TAG_Int(1);
11616 /* ../lib/standard/collection/array.nit:278 */
11617 fra.me.REG[7] = fra.me.REG[4];
11618 /* ../lib/standard/collection/array.nit:280 */
11619 REGB2 = TAG_Int(0);
11620 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11621 if (UNTAG_Bool(REGB0)) {
11622 } else {
11623 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11624 }
11625 /* ../lib/standard/kernel.nit:236 */
11626 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11627 /* ../lib/standard/collection/array.nit:280 */
11628 if (UNTAG_Bool(REGB2)) {
11629 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11630 if (UNTAG_Bool(REGB2)) {
11631 } else {
11632 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11633 }
11634 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11635 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11636 if (UNTAG_Bool(REGB0)) {
11637 } else {
11638 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11639 }
11640 /* ../lib/standard/kernel.nit:235 */
11641 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11642 } else {
11643 /* ../lib/standard/collection/array.nit:280 */
11644 REGB0 = TAG_Bool(0);
11645 REGB2 = REGB0;
11646 }
11647 if (UNTAG_Bool(REGB2)) {
11648 } else {
11649 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11650 }
11651 /* ../lib/standard/collection/array.nit:281 */
11652 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11653 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11654 if (UNTAG_Bool(REGB2)) {
11655 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11656 }
11657 /* ../lib/standard/collection/array.nit:718 */
11658 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11659 /* ../lib/standard/collection/array.nit:281 */
11660 goto label296;
11661 label296: while(0);
11662 /* compiling/compiling_icode.nit:828 */
11663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11664 if (!once_value_297) {
11665 fra.me.REG[7] = BOX_NativeString("))");
11666 REGB1 = TAG_Int(2);
11667 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11668 once_value_297 = fra.me.REG[7];
11669 register_static_object(&once_value_297);
11670 } else fra.me.REG[7] = once_value_297;
11671 fra.me.REG[7] = fra.me.REG[7];
11672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11673 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11674 fra.me.REG[5] = fra.me.REG[6];
11675 } else {
11676 /* compiling/compiling_icode.nit:829 */
11677 if (!once_value_298) {
11678 if (!once_value_299) {
11679 fra.me.REG[6] = BOX_NativeString(">=");
11680 REGB1 = TAG_Int(2);
11681 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11682 once_value_299 = fra.me.REG[6];
11683 register_static_object(&once_value_299);
11684 } else fra.me.REG[6] = once_value_299;
11685 fra.me.REG[6] = fra.me.REG[6];
11686 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11687 once_value_298 = fra.me.REG[6];
11688 register_static_object(&once_value_298);
11689 } else fra.me.REG[6] = once_value_298;
11690 fra.me.REG[6] = fra.me.REG[6];
11691 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11692 if (UNTAG_Bool(REGB1)) {
11693 } else {
11694 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11695 REGB1 = REGB2;
11696 }
11697 if (UNTAG_Bool(REGB1)) {
11698 /* compiling/compiling_icode.nit:830 */
11699 REGB1 = TAG_Int(5);
11700 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11701 if (!once_value_300) {
11702 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11703 REGB1 = TAG_Int(20);
11704 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11705 once_value_300 = fra.me.REG[7];
11706 register_static_object(&once_value_300);
11707 } else fra.me.REG[7] = once_value_300;
11708 fra.me.REG[7] = fra.me.REG[7];
11709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11710 REGB1 = TAG_Int(0);
11711 /* ../lib/standard/collection/array.nit:278 */
11712 fra.me.REG[7] = fra.me.REG[4];
11713 /* ../lib/standard/collection/array.nit:280 */
11714 REGB2 = TAG_Int(0);
11715 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11716 if (UNTAG_Bool(REGB0)) {
11717 } else {
11718 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11719 }
11720 /* ../lib/standard/kernel.nit:236 */
11721 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11722 /* ../lib/standard/collection/array.nit:280 */
11723 if (UNTAG_Bool(REGB2)) {
11724 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11725 if (UNTAG_Bool(REGB2)) {
11726 } else {
11727 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11728 }
11729 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11730 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11731 if (UNTAG_Bool(REGB0)) {
11732 } else {
11733 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11734 }
11735 /* ../lib/standard/kernel.nit:235 */
11736 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11737 } else {
11738 /* ../lib/standard/collection/array.nit:280 */
11739 REGB0 = TAG_Bool(0);
11740 REGB2 = REGB0;
11741 }
11742 if (UNTAG_Bool(REGB2)) {
11743 } else {
11744 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11745 }
11746 /* ../lib/standard/collection/array.nit:281 */
11747 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11748 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11749 if (UNTAG_Bool(REGB2)) {
11750 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11751 }
11752 /* ../lib/standard/collection/array.nit:718 */
11753 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11754 /* ../lib/standard/collection/array.nit:281 */
11755 goto label301;
11756 label301: while(0);
11757 /* compiling/compiling_icode.nit:830 */
11758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11759 if (!once_value_302) {
11760 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
11761 REGB1 = TAG_Int(14);
11762 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11763 once_value_302 = fra.me.REG[7];
11764 register_static_object(&once_value_302);
11765 } else fra.me.REG[7] = once_value_302;
11766 fra.me.REG[7] = fra.me.REG[7];
11767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11768 REGB1 = TAG_Int(1);
11769 /* ../lib/standard/collection/array.nit:278 */
11770 fra.me.REG[7] = fra.me.REG[4];
11771 /* ../lib/standard/collection/array.nit:280 */
11772 REGB2 = TAG_Int(0);
11773 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11774 if (UNTAG_Bool(REGB0)) {
11775 } else {
11776 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11777 }
11778 /* ../lib/standard/kernel.nit:236 */
11779 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11780 /* ../lib/standard/collection/array.nit:280 */
11781 if (UNTAG_Bool(REGB2)) {
11782 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11783 if (UNTAG_Bool(REGB2)) {
11784 } else {
11785 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11786 }
11787 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11788 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11789 if (UNTAG_Bool(REGB0)) {
11790 } else {
11791 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11792 }
11793 /* ../lib/standard/kernel.nit:235 */
11794 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11795 } else {
11796 /* ../lib/standard/collection/array.nit:280 */
11797 REGB0 = TAG_Bool(0);
11798 REGB2 = REGB0;
11799 }
11800 if (UNTAG_Bool(REGB2)) {
11801 } else {
11802 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11803 }
11804 /* ../lib/standard/collection/array.nit:281 */
11805 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11806 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11807 if (UNTAG_Bool(REGB2)) {
11808 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11809 }
11810 /* ../lib/standard/collection/array.nit:718 */
11811 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11812 /* ../lib/standard/collection/array.nit:281 */
11813 goto label303;
11814 label303: while(0);
11815 /* compiling/compiling_icode.nit:830 */
11816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11817 if (!once_value_304) {
11818 fra.me.REG[7] = BOX_NativeString("))");
11819 REGB1 = TAG_Int(2);
11820 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11821 once_value_304 = fra.me.REG[7];
11822 register_static_object(&once_value_304);
11823 } else fra.me.REG[7] = once_value_304;
11824 fra.me.REG[7] = fra.me.REG[7];
11825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11826 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11827 fra.me.REG[5] = fra.me.REG[6];
11828 } else {
11829 /* compiling/compiling_icode.nit:831 */
11830 if (!once_value_305) {
11831 if (!once_value_306) {
11832 fra.me.REG[6] = BOX_NativeString("==");
11833 REGB1 = TAG_Int(2);
11834 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11835 once_value_306 = fra.me.REG[6];
11836 register_static_object(&once_value_306);
11837 } else fra.me.REG[6] = once_value_306;
11838 fra.me.REG[6] = fra.me.REG[6];
11839 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11840 once_value_305 = fra.me.REG[6];
11841 register_static_object(&once_value_305);
11842 } else fra.me.REG[6] = once_value_305;
11843 fra.me.REG[6] = fra.me.REG[6];
11844 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11845 if (UNTAG_Bool(REGB1)) {
11846 } else {
11847 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11848 REGB1 = REGB2;
11849 }
11850 if (UNTAG_Bool(REGB1)) {
11851 /* compiling/compiling_icode.nit:832 */
11852 REGB1 = TAG_Int(5);
11853 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11854 if (!once_value_307) {
11855 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11856 REGB1 = TAG_Int(10);
11857 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11858 once_value_307 = fra.me.REG[7];
11859 register_static_object(&once_value_307);
11860 } else fra.me.REG[7] = once_value_307;
11861 fra.me.REG[7] = fra.me.REG[7];
11862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11863 REGB1 = TAG_Int(0);
11864 /* ../lib/standard/collection/array.nit:278 */
11865 fra.me.REG[7] = fra.me.REG[4];
11866 /* ../lib/standard/collection/array.nit:280 */
11867 REGB2 = TAG_Int(0);
11868 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11869 if (UNTAG_Bool(REGB0)) {
11870 } else {
11871 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11872 }
11873 /* ../lib/standard/kernel.nit:236 */
11874 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11875 /* ../lib/standard/collection/array.nit:280 */
11876 if (UNTAG_Bool(REGB2)) {
11877 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11878 if (UNTAG_Bool(REGB2)) {
11879 } else {
11880 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11881 }
11882 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11883 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11884 if (UNTAG_Bool(REGB0)) {
11885 } else {
11886 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11887 }
11888 /* ../lib/standard/kernel.nit:235 */
11889 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11890 } else {
11891 /* ../lib/standard/collection/array.nit:280 */
11892 REGB0 = TAG_Bool(0);
11893 REGB2 = REGB0;
11894 }
11895 if (UNTAG_Bool(REGB2)) {
11896 } else {
11897 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11898 }
11899 /* ../lib/standard/collection/array.nit:281 */
11900 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11901 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11902 if (UNTAG_Bool(REGB2)) {
11903 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11904 }
11905 /* ../lib/standard/collection/array.nit:718 */
11906 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11907 /* ../lib/standard/collection/array.nit:281 */
11908 goto label308;
11909 label308: while(0);
11910 /* compiling/compiling_icode.nit:832 */
11911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11912 if (!once_value_309) {
11913 fra.me.REG[7] = BOX_NativeString(")==(");
11914 REGB1 = TAG_Int(4);
11915 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11916 once_value_309 = fra.me.REG[7];
11917 register_static_object(&once_value_309);
11918 } else fra.me.REG[7] = once_value_309;
11919 fra.me.REG[7] = fra.me.REG[7];
11920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11921 REGB1 = TAG_Int(1);
11922 /* ../lib/standard/collection/array.nit:278 */
11923 fra.me.REG[7] = fra.me.REG[4];
11924 /* ../lib/standard/collection/array.nit:280 */
11925 REGB2 = TAG_Int(0);
11926 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11927 if (UNTAG_Bool(REGB0)) {
11928 } else {
11929 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11930 }
11931 /* ../lib/standard/kernel.nit:236 */
11932 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11933 /* ../lib/standard/collection/array.nit:280 */
11934 if (UNTAG_Bool(REGB2)) {
11935 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11936 if (UNTAG_Bool(REGB2)) {
11937 } else {
11938 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11939 }
11940 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11941 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11942 if (UNTAG_Bool(REGB0)) {
11943 } else {
11944 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11945 }
11946 /* ../lib/standard/kernel.nit:235 */
11947 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11948 } else {
11949 /* ../lib/standard/collection/array.nit:280 */
11950 REGB0 = TAG_Bool(0);
11951 REGB2 = REGB0;
11952 }
11953 if (UNTAG_Bool(REGB2)) {
11954 } else {
11955 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11956 }
11957 /* ../lib/standard/collection/array.nit:281 */
11958 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11959 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11960 if (UNTAG_Bool(REGB2)) {
11961 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11962 }
11963 /* ../lib/standard/collection/array.nit:718 */
11964 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11965 /* ../lib/standard/collection/array.nit:281 */
11966 goto label310;
11967 label310: while(0);
11968 /* compiling/compiling_icode.nit:832 */
11969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11970 if (!once_value_311) {
11971 fra.me.REG[7] = BOX_NativeString("))");
11972 REGB1 = TAG_Int(2);
11973 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11974 once_value_311 = fra.me.REG[7];
11975 register_static_object(&once_value_311);
11976 } else fra.me.REG[7] = once_value_311;
11977 fra.me.REG[7] = fra.me.REG[7];
11978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11979 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11980 fra.me.REG[5] = fra.me.REG[6];
11981 } else {
11982 /* compiling/compiling_icode.nit:833 */
11983 if (!once_value_312) {
11984 if (!once_value_313) {
11985 fra.me.REG[6] = BOX_NativeString("!=");
11986 REGB1 = TAG_Int(2);
11987 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11988 once_value_313 = fra.me.REG[6];
11989 register_static_object(&once_value_313);
11990 } else fra.me.REG[6] = once_value_313;
11991 fra.me.REG[6] = fra.me.REG[6];
11992 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11993 once_value_312 = fra.me.REG[6];
11994 register_static_object(&once_value_312);
11995 } else fra.me.REG[6] = once_value_312;
11996 fra.me.REG[6] = fra.me.REG[6];
11997 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11998 if (UNTAG_Bool(REGB1)) {
11999 } else {
12000 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12001 REGB1 = REGB2;
12002 }
12003 if (UNTAG_Bool(REGB1)) {
12004 /* compiling/compiling_icode.nit:834 */
12005 REGB1 = TAG_Int(5);
12006 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12007 if (!once_value_314) {
12008 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12009 REGB1 = TAG_Int(10);
12010 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12011 once_value_314 = fra.me.REG[7];
12012 register_static_object(&once_value_314);
12013 } else fra.me.REG[7] = once_value_314;
12014 fra.me.REG[7] = fra.me.REG[7];
12015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12016 REGB1 = TAG_Int(0);
12017 /* ../lib/standard/collection/array.nit:278 */
12018 fra.me.REG[7] = fra.me.REG[4];
12019 /* ../lib/standard/collection/array.nit:280 */
12020 REGB2 = TAG_Int(0);
12021 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12022 if (UNTAG_Bool(REGB0)) {
12023 } else {
12024 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12025 }
12026 /* ../lib/standard/kernel.nit:236 */
12027 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12028 /* ../lib/standard/collection/array.nit:280 */
12029 if (UNTAG_Bool(REGB2)) {
12030 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12031 if (UNTAG_Bool(REGB2)) {
12032 } else {
12033 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12034 }
12035 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12036 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12037 if (UNTAG_Bool(REGB0)) {
12038 } else {
12039 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12040 }
12041 /* ../lib/standard/kernel.nit:235 */
12042 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12043 } else {
12044 /* ../lib/standard/collection/array.nit:280 */
12045 REGB0 = TAG_Bool(0);
12046 REGB2 = REGB0;
12047 }
12048 if (UNTAG_Bool(REGB2)) {
12049 } else {
12050 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12051 }
12052 /* ../lib/standard/collection/array.nit:281 */
12053 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12054 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12055 if (UNTAG_Bool(REGB2)) {
12056 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12057 }
12058 /* ../lib/standard/collection/array.nit:718 */
12059 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12060 /* ../lib/standard/collection/array.nit:281 */
12061 goto label315;
12062 label315: while(0);
12063 /* compiling/compiling_icode.nit:834 */
12064 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12065 if (!once_value_316) {
12066 fra.me.REG[7] = BOX_NativeString(")!=(");
12067 REGB1 = TAG_Int(4);
12068 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12069 once_value_316 = fra.me.REG[7];
12070 register_static_object(&once_value_316);
12071 } else fra.me.REG[7] = once_value_316;
12072 fra.me.REG[7] = fra.me.REG[7];
12073 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12074 REGB1 = TAG_Int(1);
12075 /* ../lib/standard/collection/array.nit:278 */
12076 fra.me.REG[7] = fra.me.REG[4];
12077 /* ../lib/standard/collection/array.nit:280 */
12078 REGB2 = TAG_Int(0);
12079 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12080 if (UNTAG_Bool(REGB0)) {
12081 } else {
12082 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12083 }
12084 /* ../lib/standard/kernel.nit:236 */
12085 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12086 /* ../lib/standard/collection/array.nit:280 */
12087 if (UNTAG_Bool(REGB2)) {
12088 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12089 if (UNTAG_Bool(REGB2)) {
12090 } else {
12091 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12092 }
12093 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12094 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12095 if (UNTAG_Bool(REGB0)) {
12096 } else {
12097 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12098 }
12099 /* ../lib/standard/kernel.nit:235 */
12100 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12101 } else {
12102 /* ../lib/standard/collection/array.nit:280 */
12103 REGB0 = TAG_Bool(0);
12104 REGB2 = REGB0;
12105 }
12106 if (UNTAG_Bool(REGB2)) {
12107 } else {
12108 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12109 }
12110 /* ../lib/standard/collection/array.nit:281 */
12111 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12112 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12113 if (UNTAG_Bool(REGB2)) {
12114 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12115 }
12116 /* ../lib/standard/collection/array.nit:718 */
12117 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12118 /* ../lib/standard/collection/array.nit:281 */
12119 goto label317;
12120 label317: while(0);
12121 /* compiling/compiling_icode.nit:834 */
12122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12123 if (!once_value_318) {
12124 fra.me.REG[7] = BOX_NativeString("))");
12125 REGB1 = TAG_Int(2);
12126 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12127 once_value_318 = fra.me.REG[7];
12128 register_static_object(&once_value_318);
12129 } else fra.me.REG[7] = once_value_318;
12130 fra.me.REG[7] = fra.me.REG[7];
12131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12132 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12133 fra.me.REG[5] = fra.me.REG[6];
12134 }
12135 }
12136 }
12137 }
12138 }
12139 }
12140 }
12141 }
12142 }
12143 }
12144 }
12145 }
12146 }
12147 }
12148 }
12149 }
12150 }
12151 }
12152 } else {
12153 /* compiling/compiling_icode.nit:836 */
12154 if (!once_value_319) {
12155 if (!once_value_320) {
12156 fra.me.REG[6] = BOX_NativeString("Bool");
12157 REGB1 = TAG_Int(4);
12158 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12159 once_value_320 = fra.me.REG[6];
12160 register_static_object(&once_value_320);
12161 } else fra.me.REG[6] = once_value_320;
12162 fra.me.REG[6] = fra.me.REG[6];
12163 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12164 once_value_319 = fra.me.REG[6];
12165 register_static_object(&once_value_319);
12166 } else fra.me.REG[6] = once_value_319;
12167 fra.me.REG[6] = fra.me.REG[6];
12168 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12169 if (UNTAG_Bool(REGB1)) {
12170 } else {
12171 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12172 REGB1 = REGB2;
12173 }
12174 if (UNTAG_Bool(REGB1)) {
12175 /* compiling/compiling_icode.nit:837 */
12176 if (!once_value_321) {
12177 if (!once_value_322) {
12178 fra.me.REG[6] = BOX_NativeString("object_id");
12179 REGB1 = TAG_Int(9);
12180 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12181 once_value_322 = fra.me.REG[6];
12182 register_static_object(&once_value_322);
12183 } else fra.me.REG[6] = once_value_322;
12184 fra.me.REG[6] = fra.me.REG[6];
12185 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12186 once_value_321 = fra.me.REG[6];
12187 register_static_object(&once_value_321);
12188 } else fra.me.REG[6] = once_value_321;
12189 fra.me.REG[6] = fra.me.REG[6];
12190 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12191 if (UNTAG_Bool(REGB1)) {
12192 } else {
12193 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12194 REGB1 = REGB2;
12195 }
12196 if (UNTAG_Bool(REGB1)) {
12197 /* compiling/compiling_icode.nit:838 */
12198 REGB1 = TAG_Int(3);
12199 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12200 if (!once_value_323) {
12201 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12202 REGB1 = TAG_Int(19);
12203 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12204 once_value_323 = fra.me.REG[7];
12205 register_static_object(&once_value_323);
12206 } else fra.me.REG[7] = once_value_323;
12207 fra.me.REG[7] = fra.me.REG[7];
12208 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12209 REGB1 = TAG_Int(0);
12210 /* ../lib/standard/collection/array.nit:278 */
12211 fra.me.REG[7] = fra.me.REG[4];
12212 /* ../lib/standard/collection/array.nit:280 */
12213 REGB2 = TAG_Int(0);
12214 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12215 if (UNTAG_Bool(REGB0)) {
12216 } else {
12217 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12218 }
12219 /* ../lib/standard/kernel.nit:236 */
12220 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12221 /* ../lib/standard/collection/array.nit:280 */
12222 if (UNTAG_Bool(REGB2)) {
12223 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12224 if (UNTAG_Bool(REGB2)) {
12225 } else {
12226 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12227 }
12228 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12229 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12230 if (UNTAG_Bool(REGB0)) {
12231 } else {
12232 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12233 }
12234 /* ../lib/standard/kernel.nit:235 */
12235 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12236 } else {
12237 /* ../lib/standard/collection/array.nit:280 */
12238 REGB0 = TAG_Bool(0);
12239 REGB2 = REGB0;
12240 }
12241 if (UNTAG_Bool(REGB2)) {
12242 } else {
12243 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12244 }
12245 /* ../lib/standard/collection/array.nit:281 */
12246 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12247 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12248 if (UNTAG_Bool(REGB2)) {
12249 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12250 }
12251 /* ../lib/standard/collection/array.nit:718 */
12252 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12253 /* ../lib/standard/collection/array.nit:281 */
12254 goto label324;
12255 label324: while(0);
12256 /* compiling/compiling_icode.nit:838 */
12257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12258 if (!once_value_325) {
12259 fra.me.REG[7] = BOX_NativeString("))");
12260 REGB1 = TAG_Int(2);
12261 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12262 once_value_325 = fra.me.REG[7];
12263 register_static_object(&once_value_325);
12264 } else fra.me.REG[7] = once_value_325;
12265 fra.me.REG[7] = fra.me.REG[7];
12266 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12267 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12268 fra.me.REG[5] = fra.me.REG[6];
12269 } else {
12270 /* compiling/compiling_icode.nit:839 */
12271 if (!once_value_326) {
12272 if (!once_value_327) {
12273 fra.me.REG[6] = BOX_NativeString("unary -");
12274 REGB1 = TAG_Int(7);
12275 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12276 once_value_327 = fra.me.REG[6];
12277 register_static_object(&once_value_327);
12278 } else fra.me.REG[6] = once_value_327;
12279 fra.me.REG[6] = fra.me.REG[6];
12280 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12281 once_value_326 = fra.me.REG[6];
12282 register_static_object(&once_value_326);
12283 } else fra.me.REG[6] = once_value_326;
12284 fra.me.REG[6] = fra.me.REG[6];
12285 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12286 if (UNTAG_Bool(REGB1)) {
12287 } else {
12288 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12289 REGB1 = REGB2;
12290 }
12291 if (UNTAG_Bool(REGB1)) {
12292 /* compiling/compiling_icode.nit:840 */
12293 REGB1 = TAG_Int(3);
12294 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12295 if (!once_value_328) {
12296 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
12297 REGB1 = TAG_Int(21);
12298 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12299 once_value_328 = fra.me.REG[7];
12300 register_static_object(&once_value_328);
12301 } else fra.me.REG[7] = once_value_328;
12302 fra.me.REG[7] = fra.me.REG[7];
12303 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12304 REGB1 = TAG_Int(0);
12305 /* ../lib/standard/collection/array.nit:278 */
12306 fra.me.REG[7] = fra.me.REG[4];
12307 /* ../lib/standard/collection/array.nit:280 */
12308 REGB2 = TAG_Int(0);
12309 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12310 if (UNTAG_Bool(REGB0)) {
12311 } else {
12312 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12313 }
12314 /* ../lib/standard/kernel.nit:236 */
12315 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12316 /* ../lib/standard/collection/array.nit:280 */
12317 if (UNTAG_Bool(REGB2)) {
12318 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12319 if (UNTAG_Bool(REGB2)) {
12320 } else {
12321 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12322 }
12323 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12324 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12325 if (UNTAG_Bool(REGB0)) {
12326 } else {
12327 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12328 }
12329 /* ../lib/standard/kernel.nit:235 */
12330 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12331 } else {
12332 /* ../lib/standard/collection/array.nit:280 */
12333 REGB0 = TAG_Bool(0);
12334 REGB2 = REGB0;
12335 }
12336 if (UNTAG_Bool(REGB2)) {
12337 } else {
12338 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12339 }
12340 /* ../lib/standard/collection/array.nit:281 */
12341 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12342 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12343 if (UNTAG_Bool(REGB2)) {
12344 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12345 }
12346 /* ../lib/standard/collection/array.nit:718 */
12347 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12348 /* ../lib/standard/collection/array.nit:281 */
12349 goto label329;
12350 label329: while(0);
12351 /* compiling/compiling_icode.nit:840 */
12352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12353 if (!once_value_330) {
12354 fra.me.REG[7] = BOX_NativeString("))");
12355 REGB1 = TAG_Int(2);
12356 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12357 once_value_330 = fra.me.REG[7];
12358 register_static_object(&once_value_330);
12359 } else fra.me.REG[7] = once_value_330;
12360 fra.me.REG[7] = fra.me.REG[7];
12361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12362 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12363 fra.me.REG[5] = fra.me.REG[6];
12364 } else {
12365 /* compiling/compiling_icode.nit:841 */
12366 if (!once_value_331) {
12367 if (!once_value_332) {
12368 fra.me.REG[6] = BOX_NativeString("output");
12369 REGB1 = TAG_Int(6);
12370 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12371 once_value_332 = fra.me.REG[6];
12372 register_static_object(&once_value_332);
12373 } else fra.me.REG[6] = once_value_332;
12374 fra.me.REG[6] = fra.me.REG[6];
12375 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12376 once_value_331 = fra.me.REG[6];
12377 register_static_object(&once_value_331);
12378 } else fra.me.REG[6] = once_value_331;
12379 fra.me.REG[6] = fra.me.REG[6];
12380 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12381 if (UNTAG_Bool(REGB1)) {
12382 } else {
12383 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12384 REGB1 = REGB2;
12385 }
12386 if (UNTAG_Bool(REGB1)) {
12387 /* compiling/compiling_icode.nit:842 */
12388 REGB1 = TAG_Int(3);
12389 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12390 if (!once_value_333) {
12391 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
12392 REGB1 = TAG_Int(24);
12393 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12394 once_value_333 = fra.me.REG[7];
12395 register_static_object(&once_value_333);
12396 } else fra.me.REG[7] = once_value_333;
12397 fra.me.REG[7] = fra.me.REG[7];
12398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12399 REGB1 = TAG_Int(0);
12400 /* ../lib/standard/collection/array.nit:278 */
12401 fra.me.REG[7] = fra.me.REG[4];
12402 /* ../lib/standard/collection/array.nit:280 */
12403 REGB2 = TAG_Int(0);
12404 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12405 if (UNTAG_Bool(REGB0)) {
12406 } else {
12407 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12408 }
12409 /* ../lib/standard/kernel.nit:236 */
12410 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12411 /* ../lib/standard/collection/array.nit:280 */
12412 if (UNTAG_Bool(REGB2)) {
12413 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12414 if (UNTAG_Bool(REGB2)) {
12415 } else {
12416 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12417 }
12418 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12419 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12420 if (UNTAG_Bool(REGB0)) {
12421 } else {
12422 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12423 }
12424 /* ../lib/standard/kernel.nit:235 */
12425 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12426 } else {
12427 /* ../lib/standard/collection/array.nit:280 */
12428 REGB0 = TAG_Bool(0);
12429 REGB2 = REGB0;
12430 }
12431 if (UNTAG_Bool(REGB2)) {
12432 } else {
12433 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12434 }
12435 /* ../lib/standard/collection/array.nit:281 */
12436 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12437 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12438 if (UNTAG_Bool(REGB2)) {
12439 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12440 }
12441 /* ../lib/standard/collection/array.nit:718 */
12442 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12443 /* ../lib/standard/collection/array.nit:281 */
12444 goto label334;
12445 label334: while(0);
12446 /* compiling/compiling_icode.nit:842 */
12447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12448 if (!once_value_335) {
12449 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
12450 REGB1 = TAG_Int(22);
12451 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12452 once_value_335 = fra.me.REG[7];
12453 register_static_object(&once_value_335);
12454 } else fra.me.REG[7] = once_value_335;
12455 fra.me.REG[7] = fra.me.REG[7];
12456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12457 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12458 fra.me.REG[5] = fra.me.REG[6];
12459 } else {
12460 /* compiling/compiling_icode.nit:843 */
12461 if (!once_value_336) {
12462 if (!once_value_337) {
12463 fra.me.REG[6] = BOX_NativeString("ascii");
12464 REGB1 = TAG_Int(5);
12465 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12466 once_value_337 = fra.me.REG[6];
12467 register_static_object(&once_value_337);
12468 } else fra.me.REG[6] = once_value_337;
12469 fra.me.REG[6] = fra.me.REG[6];
12470 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12471 once_value_336 = fra.me.REG[6];
12472 register_static_object(&once_value_336);
12473 } else fra.me.REG[6] = once_value_336;
12474 fra.me.REG[6] = fra.me.REG[6];
12475 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12476 if (UNTAG_Bool(REGB1)) {
12477 } else {
12478 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12479 REGB1 = REGB2;
12480 }
12481 if (UNTAG_Bool(REGB1)) {
12482 /* compiling/compiling_icode.nit:844 */
12483 REGB1 = TAG_Int(3);
12484 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12485 if (!once_value_338) {
12486 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
12487 REGB1 = TAG_Int(20);
12488 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12489 once_value_338 = fra.me.REG[7];
12490 register_static_object(&once_value_338);
12491 } else fra.me.REG[7] = once_value_338;
12492 fra.me.REG[7] = fra.me.REG[7];
12493 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12494 REGB1 = TAG_Int(0);
12495 /* ../lib/standard/collection/array.nit:278 */
12496 fra.me.REG[7] = fra.me.REG[4];
12497 /* ../lib/standard/collection/array.nit:280 */
12498 REGB2 = TAG_Int(0);
12499 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12500 if (UNTAG_Bool(REGB0)) {
12501 } else {
12502 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12503 }
12504 /* ../lib/standard/kernel.nit:236 */
12505 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12506 /* ../lib/standard/collection/array.nit:280 */
12507 if (UNTAG_Bool(REGB2)) {
12508 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12509 if (UNTAG_Bool(REGB2)) {
12510 } else {
12511 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12512 }
12513 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12514 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12515 if (UNTAG_Bool(REGB0)) {
12516 } else {
12517 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12518 }
12519 /* ../lib/standard/kernel.nit:235 */
12520 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12521 } else {
12522 /* ../lib/standard/collection/array.nit:280 */
12523 REGB0 = TAG_Bool(0);
12524 REGB2 = REGB0;
12525 }
12526 if (UNTAG_Bool(REGB2)) {
12527 } else {
12528 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12529 }
12530 /* ../lib/standard/collection/array.nit:281 */
12531 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12532 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12533 if (UNTAG_Bool(REGB2)) {
12534 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12535 }
12536 /* ../lib/standard/collection/array.nit:718 */
12537 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12538 /* ../lib/standard/collection/array.nit:281 */
12539 goto label339;
12540 label339: while(0);
12541 /* compiling/compiling_icode.nit:844 */
12542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12543 if (!once_value_340) {
12544 fra.me.REG[7] = BOX_NativeString("))");
12545 REGB1 = TAG_Int(2);
12546 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12547 once_value_340 = fra.me.REG[7];
12548 register_static_object(&once_value_340);
12549 } else fra.me.REG[7] = once_value_340;
12550 fra.me.REG[7] = fra.me.REG[7];
12551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12552 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12553 fra.me.REG[5] = fra.me.REG[6];
12554 } else {
12555 /* compiling/compiling_icode.nit:845 */
12556 if (!once_value_341) {
12557 if (!once_value_342) {
12558 fra.me.REG[6] = BOX_NativeString("to_i");
12559 REGB1 = TAG_Int(4);
12560 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12561 once_value_342 = fra.me.REG[6];
12562 register_static_object(&once_value_342);
12563 } else fra.me.REG[6] = once_value_342;
12564 fra.me.REG[6] = fra.me.REG[6];
12565 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12566 once_value_341 = fra.me.REG[6];
12567 register_static_object(&once_value_341);
12568 } else fra.me.REG[6] = once_value_341;
12569 fra.me.REG[6] = fra.me.REG[6];
12570 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12571 if (UNTAG_Bool(REGB1)) {
12572 } else {
12573 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12574 REGB1 = REGB2;
12575 }
12576 if (UNTAG_Bool(REGB1)) {
12577 /* compiling/compiling_icode.nit:846 */
12578 REGB1 = TAG_Int(3);
12579 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12580 if (!once_value_343) {
12581 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12582 REGB1 = TAG_Int(19);
12583 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12584 once_value_343 = fra.me.REG[7];
12585 register_static_object(&once_value_343);
12586 } else fra.me.REG[7] = once_value_343;
12587 fra.me.REG[7] = fra.me.REG[7];
12588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12589 REGB1 = TAG_Int(0);
12590 /* ../lib/standard/collection/array.nit:278 */
12591 fra.me.REG[7] = fra.me.REG[4];
12592 /* ../lib/standard/collection/array.nit:280 */
12593 REGB2 = TAG_Int(0);
12594 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12595 if (UNTAG_Bool(REGB0)) {
12596 } else {
12597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12598 }
12599 /* ../lib/standard/kernel.nit:236 */
12600 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12601 /* ../lib/standard/collection/array.nit:280 */
12602 if (UNTAG_Bool(REGB2)) {
12603 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12604 if (UNTAG_Bool(REGB2)) {
12605 } else {
12606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12607 }
12608 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12609 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12610 if (UNTAG_Bool(REGB0)) {
12611 } else {
12612 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12613 }
12614 /* ../lib/standard/kernel.nit:235 */
12615 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12616 } else {
12617 /* ../lib/standard/collection/array.nit:280 */
12618 REGB0 = TAG_Bool(0);
12619 REGB2 = REGB0;
12620 }
12621 if (UNTAG_Bool(REGB2)) {
12622 } else {
12623 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12624 }
12625 /* ../lib/standard/collection/array.nit:281 */
12626 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12627 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12628 if (UNTAG_Bool(REGB2)) {
12629 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12630 }
12631 /* ../lib/standard/collection/array.nit:718 */
12632 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12633 /* ../lib/standard/collection/array.nit:281 */
12634 goto label344;
12635 label344: while(0);
12636 /* compiling/compiling_icode.nit:846 */
12637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12638 if (!once_value_345) {
12639 fra.me.REG[7] = BOX_NativeString("))");
12640 REGB1 = TAG_Int(2);
12641 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12642 once_value_345 = fra.me.REG[7];
12643 register_static_object(&once_value_345);
12644 } else fra.me.REG[7] = once_value_345;
12645 fra.me.REG[7] = fra.me.REG[7];
12646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12647 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12648 fra.me.REG[5] = fra.me.REG[6];
12649 } else {
12650 /* compiling/compiling_icode.nit:847 */
12651 if (!once_value_346) {
12652 if (!once_value_347) {
12653 fra.me.REG[6] = BOX_NativeString("==");
12654 REGB1 = TAG_Int(2);
12655 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12656 once_value_347 = fra.me.REG[6];
12657 register_static_object(&once_value_347);
12658 } else fra.me.REG[6] = once_value_347;
12659 fra.me.REG[6] = fra.me.REG[6];
12660 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12661 once_value_346 = fra.me.REG[6];
12662 register_static_object(&once_value_346);
12663 } else fra.me.REG[6] = once_value_346;
12664 fra.me.REG[6] = fra.me.REG[6];
12665 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12666 if (UNTAG_Bool(REGB1)) {
12667 } else {
12668 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12669 REGB1 = REGB2;
12670 }
12671 if (UNTAG_Bool(REGB1)) {
12672 /* compiling/compiling_icode.nit:848 */
12673 REGB1 = TAG_Int(5);
12674 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12675 if (!once_value_348) {
12676 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12677 REGB1 = TAG_Int(10);
12678 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12679 once_value_348 = fra.me.REG[7];
12680 register_static_object(&once_value_348);
12681 } else fra.me.REG[7] = once_value_348;
12682 fra.me.REG[7] = fra.me.REG[7];
12683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12684 REGB1 = TAG_Int(0);
12685 /* ../lib/standard/collection/array.nit:278 */
12686 fra.me.REG[7] = fra.me.REG[4];
12687 /* ../lib/standard/collection/array.nit:280 */
12688 REGB2 = TAG_Int(0);
12689 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12690 if (UNTAG_Bool(REGB0)) {
12691 } else {
12692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12693 }
12694 /* ../lib/standard/kernel.nit:236 */
12695 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12696 /* ../lib/standard/collection/array.nit:280 */
12697 if (UNTAG_Bool(REGB2)) {
12698 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12699 if (UNTAG_Bool(REGB2)) {
12700 } else {
12701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12702 }
12703 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12704 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12705 if (UNTAG_Bool(REGB0)) {
12706 } else {
12707 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12708 }
12709 /* ../lib/standard/kernel.nit:235 */
12710 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12711 } else {
12712 /* ../lib/standard/collection/array.nit:280 */
12713 REGB0 = TAG_Bool(0);
12714 REGB2 = REGB0;
12715 }
12716 if (UNTAG_Bool(REGB2)) {
12717 } else {
12718 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12719 }
12720 /* ../lib/standard/collection/array.nit:281 */
12721 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12722 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12723 if (UNTAG_Bool(REGB2)) {
12724 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12725 }
12726 /* ../lib/standard/collection/array.nit:718 */
12727 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12728 /* ../lib/standard/collection/array.nit:281 */
12729 goto label349;
12730 label349: while(0);
12731 /* compiling/compiling_icode.nit:848 */
12732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12733 if (!once_value_350) {
12734 fra.me.REG[7] = BOX_NativeString(")==(");
12735 REGB1 = TAG_Int(4);
12736 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12737 once_value_350 = fra.me.REG[7];
12738 register_static_object(&once_value_350);
12739 } else fra.me.REG[7] = once_value_350;
12740 fra.me.REG[7] = fra.me.REG[7];
12741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12742 REGB1 = TAG_Int(1);
12743 /* ../lib/standard/collection/array.nit:278 */
12744 fra.me.REG[7] = fra.me.REG[4];
12745 /* ../lib/standard/collection/array.nit:280 */
12746 REGB2 = TAG_Int(0);
12747 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12748 if (UNTAG_Bool(REGB0)) {
12749 } else {
12750 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12751 }
12752 /* ../lib/standard/kernel.nit:236 */
12753 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12754 /* ../lib/standard/collection/array.nit:280 */
12755 if (UNTAG_Bool(REGB2)) {
12756 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12757 if (UNTAG_Bool(REGB2)) {
12758 } else {
12759 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12760 }
12761 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12762 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12763 if (UNTAG_Bool(REGB0)) {
12764 } else {
12765 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12766 }
12767 /* ../lib/standard/kernel.nit:235 */
12768 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12769 } else {
12770 /* ../lib/standard/collection/array.nit:280 */
12771 REGB0 = TAG_Bool(0);
12772 REGB2 = REGB0;
12773 }
12774 if (UNTAG_Bool(REGB2)) {
12775 } else {
12776 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12777 }
12778 /* ../lib/standard/collection/array.nit:281 */
12779 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12780 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12781 if (UNTAG_Bool(REGB2)) {
12782 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12783 }
12784 /* ../lib/standard/collection/array.nit:718 */
12785 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12786 /* ../lib/standard/collection/array.nit:281 */
12787 goto label351;
12788 label351: while(0);
12789 /* compiling/compiling_icode.nit:848 */
12790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12791 if (!once_value_352) {
12792 fra.me.REG[7] = BOX_NativeString("))");
12793 REGB1 = TAG_Int(2);
12794 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12795 once_value_352 = fra.me.REG[7];
12796 register_static_object(&once_value_352);
12797 } else fra.me.REG[7] = once_value_352;
12798 fra.me.REG[7] = fra.me.REG[7];
12799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12800 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12801 fra.me.REG[5] = fra.me.REG[6];
12802 } else {
12803 /* compiling/compiling_icode.nit:849 */
12804 if (!once_value_353) {
12805 if (!once_value_354) {
12806 fra.me.REG[6] = BOX_NativeString("!=");
12807 REGB1 = TAG_Int(2);
12808 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12809 once_value_354 = fra.me.REG[6];
12810 register_static_object(&once_value_354);
12811 } else fra.me.REG[6] = once_value_354;
12812 fra.me.REG[6] = fra.me.REG[6];
12813 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12814 once_value_353 = fra.me.REG[6];
12815 register_static_object(&once_value_353);
12816 } else fra.me.REG[6] = once_value_353;
12817 fra.me.REG[6] = fra.me.REG[6];
12818 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12819 if (UNTAG_Bool(REGB1)) {
12820 } else {
12821 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12822 REGB1 = REGB2;
12823 }
12824 if (UNTAG_Bool(REGB1)) {
12825 /* compiling/compiling_icode.nit:850 */
12826 REGB1 = TAG_Int(5);
12827 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12828 if (!once_value_355) {
12829 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12830 REGB1 = TAG_Int(10);
12831 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12832 once_value_355 = fra.me.REG[7];
12833 register_static_object(&once_value_355);
12834 } else fra.me.REG[7] = once_value_355;
12835 fra.me.REG[7] = fra.me.REG[7];
12836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12837 REGB1 = TAG_Int(0);
12838 /* ../lib/standard/collection/array.nit:278 */
12839 fra.me.REG[7] = fra.me.REG[4];
12840 /* ../lib/standard/collection/array.nit:280 */
12841 REGB2 = TAG_Int(0);
12842 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12843 if (UNTAG_Bool(REGB0)) {
12844 } else {
12845 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12846 }
12847 /* ../lib/standard/kernel.nit:236 */
12848 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12849 /* ../lib/standard/collection/array.nit:280 */
12850 if (UNTAG_Bool(REGB2)) {
12851 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12852 if (UNTAG_Bool(REGB2)) {
12853 } else {
12854 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12855 }
12856 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12857 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12858 if (UNTAG_Bool(REGB0)) {
12859 } else {
12860 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12861 }
12862 /* ../lib/standard/kernel.nit:235 */
12863 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12864 } else {
12865 /* ../lib/standard/collection/array.nit:280 */
12866 REGB0 = TAG_Bool(0);
12867 REGB2 = REGB0;
12868 }
12869 if (UNTAG_Bool(REGB2)) {
12870 } else {
12871 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12872 }
12873 /* ../lib/standard/collection/array.nit:281 */
12874 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12875 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12876 if (UNTAG_Bool(REGB2)) {
12877 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12878 }
12879 /* ../lib/standard/collection/array.nit:718 */
12880 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12881 /* ../lib/standard/collection/array.nit:281 */
12882 goto label356;
12883 label356: while(0);
12884 /* compiling/compiling_icode.nit:850 */
12885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12886 if (!once_value_357) {
12887 fra.me.REG[7] = BOX_NativeString(")!=(");
12888 REGB1 = TAG_Int(4);
12889 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12890 once_value_357 = fra.me.REG[7];
12891 register_static_object(&once_value_357);
12892 } else fra.me.REG[7] = once_value_357;
12893 fra.me.REG[7] = fra.me.REG[7];
12894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12895 REGB1 = TAG_Int(1);
12896 /* ../lib/standard/collection/array.nit:278 */
12897 fra.me.REG[7] = fra.me.REG[4];
12898 /* ../lib/standard/collection/array.nit:280 */
12899 REGB2 = TAG_Int(0);
12900 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12901 if (UNTAG_Bool(REGB0)) {
12902 } else {
12903 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12904 }
12905 /* ../lib/standard/kernel.nit:236 */
12906 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12907 /* ../lib/standard/collection/array.nit:280 */
12908 if (UNTAG_Bool(REGB2)) {
12909 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12910 if (UNTAG_Bool(REGB2)) {
12911 } else {
12912 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12913 }
12914 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12915 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12916 if (UNTAG_Bool(REGB0)) {
12917 } else {
12918 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12919 }
12920 /* ../lib/standard/kernel.nit:235 */
12921 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12922 } else {
12923 /* ../lib/standard/collection/array.nit:280 */
12924 REGB0 = TAG_Bool(0);
12925 REGB2 = REGB0;
12926 }
12927 if (UNTAG_Bool(REGB2)) {
12928 } else {
12929 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12930 }
12931 /* ../lib/standard/collection/array.nit:281 */
12932 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12933 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12934 if (UNTAG_Bool(REGB2)) {
12935 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12936 }
12937 /* ../lib/standard/collection/array.nit:718 */
12938 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12939 /* ../lib/standard/collection/array.nit:281 */
12940 goto label358;
12941 label358: while(0);
12942 /* compiling/compiling_icode.nit:850 */
12943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12944 if (!once_value_359) {
12945 fra.me.REG[7] = BOX_NativeString("))");
12946 REGB1 = TAG_Int(2);
12947 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12948 once_value_359 = fra.me.REG[7];
12949 register_static_object(&once_value_359);
12950 } else fra.me.REG[7] = once_value_359;
12951 fra.me.REG[7] = fra.me.REG[7];
12952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12953 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12954 fra.me.REG[5] = fra.me.REG[6];
12955 }
12956 }
12957 }
12958 }
12959 }
12960 }
12961 }
12962 } else {
12963 /* compiling/compiling_icode.nit:852 */
12964 if (!once_value_360) {
12965 if (!once_value_361) {
12966 fra.me.REG[6] = BOX_NativeString("NativeArray");
12967 REGB1 = TAG_Int(11);
12968 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12969 once_value_361 = fra.me.REG[6];
12970 register_static_object(&once_value_361);
12971 } else fra.me.REG[6] = once_value_361;
12972 fra.me.REG[6] = fra.me.REG[6];
12973 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12974 once_value_360 = fra.me.REG[6];
12975 register_static_object(&once_value_360);
12976 } else fra.me.REG[6] = once_value_360;
12977 fra.me.REG[6] = fra.me.REG[6];
12978 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12979 if (UNTAG_Bool(REGB1)) {
12980 } else {
12981 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12982 REGB1 = REGB2;
12983 }
12984 if (UNTAG_Bool(REGB1)) {
12985 /* compiling/compiling_icode.nit:853 */
12986 if (!once_value_362) {
12987 if (!once_value_363) {
12988 fra.me.REG[6] = BOX_NativeString("object_id");
12989 REGB1 = TAG_Int(9);
12990 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12991 once_value_363 = fra.me.REG[6];
12992 register_static_object(&once_value_363);
12993 } else fra.me.REG[6] = once_value_363;
12994 fra.me.REG[6] = fra.me.REG[6];
12995 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12996 once_value_362 = fra.me.REG[6];
12997 register_static_object(&once_value_362);
12998 } else fra.me.REG[6] = once_value_362;
12999 fra.me.REG[6] = fra.me.REG[6];
13000 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13001 if (UNTAG_Bool(REGB1)) {
13002 } else {
13003 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13004 REGB1 = REGB2;
13005 }
13006 if (UNTAG_Bool(REGB1)) {
13007 /* compiling/compiling_icode.nit:854 */
13008 REGB1 = TAG_Int(3);
13009 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13010 if (!once_value_364) {
13011 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
13012 REGB1 = TAG_Int(26);
13013 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13014 once_value_364 = fra.me.REG[7];
13015 register_static_object(&once_value_364);
13016 } else fra.me.REG[7] = once_value_364;
13017 fra.me.REG[7] = fra.me.REG[7];
13018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13019 REGB1 = TAG_Int(0);
13020 /* ../lib/standard/collection/array.nit:278 */
13021 fra.me.REG[7] = fra.me.REG[4];
13022 /* ../lib/standard/collection/array.nit:280 */
13023 REGB2 = TAG_Int(0);
13024 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13025 if (UNTAG_Bool(REGB0)) {
13026 } else {
13027 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13028 }
13029 /* ../lib/standard/kernel.nit:236 */
13030 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13031 /* ../lib/standard/collection/array.nit:280 */
13032 if (UNTAG_Bool(REGB2)) {
13033 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13034 if (UNTAG_Bool(REGB2)) {
13035 } else {
13036 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13037 }
13038 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13039 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13040 if (UNTAG_Bool(REGB0)) {
13041 } else {
13042 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13043 }
13044 /* ../lib/standard/kernel.nit:235 */
13045 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13046 } else {
13047 /* ../lib/standard/collection/array.nit:280 */
13048 REGB0 = TAG_Bool(0);
13049 REGB2 = REGB0;
13050 }
13051 if (UNTAG_Bool(REGB2)) {
13052 } else {
13053 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13054 }
13055 /* ../lib/standard/collection/array.nit:281 */
13056 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13057 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13058 if (UNTAG_Bool(REGB2)) {
13059 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13060 }
13061 /* ../lib/standard/collection/array.nit:718 */
13062 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13063 /* ../lib/standard/collection/array.nit:281 */
13064 goto label365;
13065 label365: while(0);
13066 /* compiling/compiling_icode.nit:854 */
13067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13068 if (!once_value_366) {
13069 fra.me.REG[7] = BOX_NativeString(")->object_id)");
13070 REGB1 = TAG_Int(13);
13071 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13072 once_value_366 = fra.me.REG[7];
13073 register_static_object(&once_value_366);
13074 } else fra.me.REG[7] = once_value_366;
13075 fra.me.REG[7] = fra.me.REG[7];
13076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13077 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13078 fra.me.REG[5] = fra.me.REG[6];
13079 } else {
13080 /* compiling/compiling_icode.nit:855 */
13081 if (!once_value_367) {
13082 if (!once_value_368) {
13083 fra.me.REG[6] = BOX_NativeString("[]");
13084 REGB1 = TAG_Int(2);
13085 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13086 once_value_368 = fra.me.REG[6];
13087 register_static_object(&once_value_368);
13088 } else fra.me.REG[6] = once_value_368;
13089 fra.me.REG[6] = fra.me.REG[6];
13090 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13091 once_value_367 = fra.me.REG[6];
13092 register_static_object(&once_value_367);
13093 } else fra.me.REG[6] = once_value_367;
13094 fra.me.REG[6] = fra.me.REG[6];
13095 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13096 if (UNTAG_Bool(REGB1)) {
13097 } else {
13098 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13099 REGB1 = REGB2;
13100 }
13101 if (UNTAG_Bool(REGB1)) {
13102 /* compiling/compiling_icode.nit:856 */
13103 REGB1 = TAG_Int(5);
13104 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13105 if (!once_value_369) {
13106 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13107 REGB1 = TAG_Int(18);
13108 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13109 once_value_369 = fra.me.REG[7];
13110 register_static_object(&once_value_369);
13111 } else fra.me.REG[7] = once_value_369;
13112 fra.me.REG[7] = fra.me.REG[7];
13113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13114 REGB1 = TAG_Int(0);
13115 /* ../lib/standard/collection/array.nit:278 */
13116 fra.me.REG[7] = fra.me.REG[4];
13117 /* ../lib/standard/collection/array.nit:280 */
13118 REGB2 = TAG_Int(0);
13119 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13120 if (UNTAG_Bool(REGB0)) {
13121 } else {
13122 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13123 }
13124 /* ../lib/standard/kernel.nit:236 */
13125 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13126 /* ../lib/standard/collection/array.nit:280 */
13127 if (UNTAG_Bool(REGB2)) {
13128 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13129 if (UNTAG_Bool(REGB2)) {
13130 } else {
13131 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13132 }
13133 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13134 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13135 if (UNTAG_Bool(REGB0)) {
13136 } else {
13137 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13138 }
13139 /* ../lib/standard/kernel.nit:235 */
13140 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13141 } else {
13142 /* ../lib/standard/collection/array.nit:280 */
13143 REGB0 = TAG_Bool(0);
13144 REGB2 = REGB0;
13145 }
13146 if (UNTAG_Bool(REGB2)) {
13147 } else {
13148 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13149 }
13150 /* ../lib/standard/collection/array.nit:281 */
13151 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13152 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13153 if (UNTAG_Bool(REGB2)) {
13154 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13155 }
13156 /* ../lib/standard/collection/array.nit:718 */
13157 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13158 /* ../lib/standard/collection/array.nit:281 */
13159 goto label370;
13160 label370: while(0);
13161 /* compiling/compiling_icode.nit:856 */
13162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13163 if (!once_value_371) {
13164 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13165 REGB1 = TAG_Int(17);
13166 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13167 once_value_371 = fra.me.REG[7];
13168 register_static_object(&once_value_371);
13169 } else fra.me.REG[7] = once_value_371;
13170 fra.me.REG[7] = fra.me.REG[7];
13171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13172 REGB1 = TAG_Int(1);
13173 /* ../lib/standard/collection/array.nit:278 */
13174 fra.me.REG[7] = fra.me.REG[4];
13175 /* ../lib/standard/collection/array.nit:280 */
13176 REGB2 = TAG_Int(0);
13177 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13178 if (UNTAG_Bool(REGB0)) {
13179 } else {
13180 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13181 }
13182 /* ../lib/standard/kernel.nit:236 */
13183 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13184 /* ../lib/standard/collection/array.nit:280 */
13185 if (UNTAG_Bool(REGB2)) {
13186 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13187 if (UNTAG_Bool(REGB2)) {
13188 } else {
13189 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13190 }
13191 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13192 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13193 if (UNTAG_Bool(REGB0)) {
13194 } else {
13195 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13196 }
13197 /* ../lib/standard/kernel.nit:235 */
13198 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13199 } else {
13200 /* ../lib/standard/collection/array.nit:280 */
13201 REGB0 = TAG_Bool(0);
13202 REGB2 = REGB0;
13203 }
13204 if (UNTAG_Bool(REGB2)) {
13205 } else {
13206 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13207 }
13208 /* ../lib/standard/collection/array.nit:281 */
13209 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13210 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13211 if (UNTAG_Bool(REGB2)) {
13212 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13213 }
13214 /* ../lib/standard/collection/array.nit:718 */
13215 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13216 /* ../lib/standard/collection/array.nit:281 */
13217 goto label372;
13218 label372: while(0);
13219 /* compiling/compiling_icode.nit:856 */
13220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13221 if (!once_value_373) {
13222 fra.me.REG[7] = BOX_NativeString(")]");
13223 REGB1 = TAG_Int(2);
13224 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13225 once_value_373 = fra.me.REG[7];
13226 register_static_object(&once_value_373);
13227 } else fra.me.REG[7] = once_value_373;
13228 fra.me.REG[7] = fra.me.REG[7];
13229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13230 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13231 fra.me.REG[5] = fra.me.REG[6];
13232 } else {
13233 /* compiling/compiling_icode.nit:857 */
13234 if (!once_value_374) {
13235 if (!once_value_375) {
13236 fra.me.REG[6] = BOX_NativeString("[]=");
13237 REGB1 = TAG_Int(3);
13238 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13239 once_value_375 = fra.me.REG[6];
13240 register_static_object(&once_value_375);
13241 } else fra.me.REG[6] = once_value_375;
13242 fra.me.REG[6] = fra.me.REG[6];
13243 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13244 once_value_374 = fra.me.REG[6];
13245 register_static_object(&once_value_374);
13246 } else fra.me.REG[6] = once_value_374;
13247 fra.me.REG[6] = fra.me.REG[6];
13248 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13249 if (UNTAG_Bool(REGB1)) {
13250 } else {
13251 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13252 REGB1 = REGB2;
13253 }
13254 if (UNTAG_Bool(REGB1)) {
13255 /* compiling/compiling_icode.nit:858 */
13256 REGB1 = TAG_Int(7);
13257 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13258 if (!once_value_376) {
13259 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13260 REGB1 = TAG_Int(18);
13261 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13262 once_value_376 = fra.me.REG[7];
13263 register_static_object(&once_value_376);
13264 } else fra.me.REG[7] = once_value_376;
13265 fra.me.REG[7] = fra.me.REG[7];
13266 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13267 REGB1 = TAG_Int(0);
13268 /* ../lib/standard/collection/array.nit:278 */
13269 fra.me.REG[7] = fra.me.REG[4];
13270 /* ../lib/standard/collection/array.nit:280 */
13271 REGB2 = TAG_Int(0);
13272 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13273 if (UNTAG_Bool(REGB0)) {
13274 } else {
13275 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13276 }
13277 /* ../lib/standard/kernel.nit:236 */
13278 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13279 /* ../lib/standard/collection/array.nit:280 */
13280 if (UNTAG_Bool(REGB2)) {
13281 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13282 if (UNTAG_Bool(REGB2)) {
13283 } else {
13284 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13285 }
13286 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13287 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13288 if (UNTAG_Bool(REGB0)) {
13289 } else {
13290 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13291 }
13292 /* ../lib/standard/kernel.nit:235 */
13293 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13294 } else {
13295 /* ../lib/standard/collection/array.nit:280 */
13296 REGB0 = TAG_Bool(0);
13297 REGB2 = REGB0;
13298 }
13299 if (UNTAG_Bool(REGB2)) {
13300 } else {
13301 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13302 }
13303 /* ../lib/standard/collection/array.nit:281 */
13304 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13305 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13306 if (UNTAG_Bool(REGB2)) {
13307 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13308 }
13309 /* ../lib/standard/collection/array.nit:718 */
13310 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13311 /* ../lib/standard/collection/array.nit:281 */
13312 goto label377;
13313 label377: while(0);
13314 /* compiling/compiling_icode.nit:858 */
13315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13316 if (!once_value_378) {
13317 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13318 REGB1 = TAG_Int(17);
13319 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13320 once_value_378 = fra.me.REG[7];
13321 register_static_object(&once_value_378);
13322 } else fra.me.REG[7] = once_value_378;
13323 fra.me.REG[7] = fra.me.REG[7];
13324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13325 REGB1 = TAG_Int(1);
13326 /* ../lib/standard/collection/array.nit:278 */
13327 fra.me.REG[7] = fra.me.REG[4];
13328 /* ../lib/standard/collection/array.nit:280 */
13329 REGB2 = TAG_Int(0);
13330 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13331 if (UNTAG_Bool(REGB0)) {
13332 } else {
13333 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13334 }
13335 /* ../lib/standard/kernel.nit:236 */
13336 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13337 /* ../lib/standard/collection/array.nit:280 */
13338 if (UNTAG_Bool(REGB2)) {
13339 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13340 if (UNTAG_Bool(REGB2)) {
13341 } else {
13342 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13343 }
13344 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13345 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13346 if (UNTAG_Bool(REGB0)) {
13347 } else {
13348 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13349 }
13350 /* ../lib/standard/kernel.nit:235 */
13351 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13352 } else {
13353 /* ../lib/standard/collection/array.nit:280 */
13354 REGB0 = TAG_Bool(0);
13355 REGB2 = REGB0;
13356 }
13357 if (UNTAG_Bool(REGB2)) {
13358 } else {
13359 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13360 }
13361 /* ../lib/standard/collection/array.nit:281 */
13362 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13363 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13364 if (UNTAG_Bool(REGB2)) {
13365 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13366 }
13367 /* ../lib/standard/collection/array.nit:718 */
13368 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13369 /* ../lib/standard/collection/array.nit:281 */
13370 goto label379;
13371 label379: while(0);
13372 /* compiling/compiling_icode.nit:858 */
13373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13374 if (!once_value_380) {
13375 fra.me.REG[7] = BOX_NativeString(")]=");
13376 REGB1 = TAG_Int(3);
13377 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13378 once_value_380 = fra.me.REG[7];
13379 register_static_object(&once_value_380);
13380 } else fra.me.REG[7] = once_value_380;
13381 fra.me.REG[7] = fra.me.REG[7];
13382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13383 REGB1 = TAG_Int(2);
13384 /* ../lib/standard/collection/array.nit:278 */
13385 fra.me.REG[7] = fra.me.REG[4];
13386 /* ../lib/standard/collection/array.nit:280 */
13387 REGB2 = TAG_Int(0);
13388 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13389 if (UNTAG_Bool(REGB0)) {
13390 } else {
13391 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13392 }
13393 /* ../lib/standard/kernel.nit:236 */
13394 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13395 /* ../lib/standard/collection/array.nit:280 */
13396 if (UNTAG_Bool(REGB2)) {
13397 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13398 if (UNTAG_Bool(REGB2)) {
13399 } else {
13400 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13401 }
13402 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13403 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13404 if (UNTAG_Bool(REGB0)) {
13405 } else {
13406 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13407 }
13408 /* ../lib/standard/kernel.nit:235 */
13409 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13410 } else {
13411 /* ../lib/standard/collection/array.nit:280 */
13412 REGB0 = TAG_Bool(0);
13413 REGB2 = REGB0;
13414 }
13415 if (UNTAG_Bool(REGB2)) {
13416 } else {
13417 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13418 }
13419 /* ../lib/standard/collection/array.nit:281 */
13420 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13421 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13422 if (UNTAG_Bool(REGB2)) {
13423 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13424 }
13425 /* ../lib/standard/collection/array.nit:718 */
13426 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13427 /* ../lib/standard/collection/array.nit:281 */
13428 goto label381;
13429 label381: while(0);
13430 /* compiling/compiling_icode.nit:858 */
13431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13432 if (!once_value_382) {
13433 fra.me.REG[7] = BOX_NativeString("");
13434 REGB1 = TAG_Int(0);
13435 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13436 once_value_382 = fra.me.REG[7];
13437 register_static_object(&once_value_382);
13438 } else fra.me.REG[7] = once_value_382;
13439 fra.me.REG[7] = fra.me.REG[7];
13440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13441 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13442 fra.me.REG[5] = fra.me.REG[6];
13443 } else {
13444 /* compiling/compiling_icode.nit:859 */
13445 if (!once_value_383) {
13446 if (!once_value_384) {
13447 fra.me.REG[6] = BOX_NativeString("copy_to");
13448 REGB1 = TAG_Int(7);
13449 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13450 once_value_384 = fra.me.REG[6];
13451 register_static_object(&once_value_384);
13452 } else fra.me.REG[6] = once_value_384;
13453 fra.me.REG[6] = fra.me.REG[6];
13454 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13455 once_value_383 = fra.me.REG[6];
13456 register_static_object(&once_value_383);
13457 } else fra.me.REG[6] = once_value_383;
13458 fra.me.REG[6] = fra.me.REG[6];
13459 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13460 if (UNTAG_Bool(REGB1)) {
13461 } else {
13462 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13463 REGB1 = REGB2;
13464 }
13465 if (UNTAG_Bool(REGB1)) {
13466 /* compiling/compiling_icode.nit:860 */
13467 REGB1 = TAG_Int(7);
13468 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13469 if (!once_value_385) {
13470 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
13471 REGB1 = TAG_Int(32);
13472 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13473 once_value_385 = fra.me.REG[7];
13474 register_static_object(&once_value_385);
13475 } else fra.me.REG[7] = once_value_385;
13476 fra.me.REG[7] = fra.me.REG[7];
13477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13478 REGB1 = TAG_Int(1);
13479 /* ../lib/standard/collection/array.nit:278 */
13480 fra.me.REG[7] = fra.me.REG[4];
13481 /* ../lib/standard/collection/array.nit:280 */
13482 REGB2 = TAG_Int(0);
13483 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13484 if (UNTAG_Bool(REGB0)) {
13485 } else {
13486 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13487 }
13488 /* ../lib/standard/kernel.nit:236 */
13489 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13490 /* ../lib/standard/collection/array.nit:280 */
13491 if (UNTAG_Bool(REGB2)) {
13492 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13493 if (UNTAG_Bool(REGB2)) {
13494 } else {
13495 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13496 }
13497 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13498 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13499 if (UNTAG_Bool(REGB0)) {
13500 } else {
13501 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13502 }
13503 /* ../lib/standard/kernel.nit:235 */
13504 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13505 } else {
13506 /* ../lib/standard/collection/array.nit:280 */
13507 REGB0 = TAG_Bool(0);
13508 REGB2 = REGB0;
13509 }
13510 if (UNTAG_Bool(REGB2)) {
13511 } else {
13512 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13513 }
13514 /* ../lib/standard/collection/array.nit:281 */
13515 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13516 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13517 if (UNTAG_Bool(REGB2)) {
13518 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13519 }
13520 /* ../lib/standard/collection/array.nit:718 */
13521 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13522 /* ../lib/standard/collection/array.nit:281 */
13523 goto label386;
13524 label386: while(0);
13525 /* compiling/compiling_icode.nit:860 */
13526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13527 if (!once_value_387) {
13528 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
13529 REGB1 = TAG_Int(26);
13530 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13531 once_value_387 = fra.me.REG[7];
13532 register_static_object(&once_value_387);
13533 } else fra.me.REG[7] = once_value_387;
13534 fra.me.REG[7] = fra.me.REG[7];
13535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13536 REGB1 = TAG_Int(0);
13537 /* ../lib/standard/collection/array.nit:278 */
13538 fra.me.REG[7] = fra.me.REG[4];
13539 /* ../lib/standard/collection/array.nit:280 */
13540 REGB2 = TAG_Int(0);
13541 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13542 if (UNTAG_Bool(REGB0)) {
13543 } else {
13544 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13545 }
13546 /* ../lib/standard/kernel.nit:236 */
13547 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13548 /* ../lib/standard/collection/array.nit:280 */
13549 if (UNTAG_Bool(REGB2)) {
13550 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13551 if (UNTAG_Bool(REGB2)) {
13552 } else {
13553 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13554 }
13555 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13556 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13557 if (UNTAG_Bool(REGB0)) {
13558 } else {
13559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13560 }
13561 /* ../lib/standard/kernel.nit:235 */
13562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13563 } else {
13564 /* ../lib/standard/collection/array.nit:280 */
13565 REGB0 = TAG_Bool(0);
13566 REGB2 = REGB0;
13567 }
13568 if (UNTAG_Bool(REGB2)) {
13569 } else {
13570 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13571 }
13572 /* ../lib/standard/collection/array.nit:281 */
13573 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13574 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13575 if (UNTAG_Bool(REGB2)) {
13576 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13577 }
13578 /* ../lib/standard/collection/array.nit:718 */
13579 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13580 /* ../lib/standard/collection/array.nit:281 */
13581 goto label388;
13582 label388: while(0);
13583 /* compiling/compiling_icode.nit:860 */
13584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13585 if (!once_value_389) {
13586 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
13587 REGB1 = TAG_Int(18);
13588 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13589 once_value_389 = fra.me.REG[7];
13590 register_static_object(&once_value_389);
13591 } else fra.me.REG[7] = once_value_389;
13592 fra.me.REG[7] = fra.me.REG[7];
13593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13594 REGB1 = TAG_Int(2);
13595 /* ../lib/standard/collection/array.nit:278 */
13596 fra.me.REG[7] = fra.me.REG[4];
13597 /* ../lib/standard/collection/array.nit:280 */
13598 REGB2 = TAG_Int(0);
13599 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13600 if (UNTAG_Bool(REGB0)) {
13601 } else {
13602 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13603 }
13604 /* ../lib/standard/kernel.nit:236 */
13605 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13606 /* ../lib/standard/collection/array.nit:280 */
13607 if (UNTAG_Bool(REGB2)) {
13608 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13609 if (UNTAG_Bool(REGB2)) {
13610 } else {
13611 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13612 }
13613 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13614 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13615 if (UNTAG_Bool(REGB0)) {
13616 } else {
13617 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13618 }
13619 /* ../lib/standard/kernel.nit:235 */
13620 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13621 } else {
13622 /* ../lib/standard/collection/array.nit:280 */
13623 REGB0 = TAG_Bool(0);
13624 REGB2 = REGB0;
13625 }
13626 if (UNTAG_Bool(REGB2)) {
13627 } else {
13628 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13629 }
13630 /* ../lib/standard/collection/array.nit:281 */
13631 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13632 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13633 if (UNTAG_Bool(REGB2)) {
13634 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13635 }
13636 /* ../lib/standard/collection/array.nit:718 */
13637 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13638 /* ../lib/standard/collection/array.nit:281 */
13639 goto label390;
13640 label390: while(0);
13641 /* compiling/compiling_icode.nit:860 */
13642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13643 if (!once_value_391) {
13644 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
13645 REGB1 = TAG_Int(16);
13646 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13647 once_value_391 = fra.me.REG[7];
13648 register_static_object(&once_value_391);
13649 } else fra.me.REG[7] = once_value_391;
13650 fra.me.REG[7] = fra.me.REG[7];
13651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13652 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13653 fra.me.REG[5] = fra.me.REG[6];
13654 }
13655 }
13656 }
13657 }
13658 } else {
13659 /* compiling/compiling_icode.nit:862 */
13660 if (!once_value_392) {
13661 if (!once_value_393) {
13662 fra.me.REG[6] = BOX_NativeString("NativeString");
13663 REGB1 = TAG_Int(12);
13664 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13665 once_value_393 = fra.me.REG[6];
13666 register_static_object(&once_value_393);
13667 } else fra.me.REG[6] = once_value_393;
13668 fra.me.REG[6] = fra.me.REG[6];
13669 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13670 once_value_392 = fra.me.REG[6];
13671 register_static_object(&once_value_392);
13672 } else fra.me.REG[6] = once_value_392;
13673 fra.me.REG[6] = fra.me.REG[6];
13674 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
13675 if (UNTAG_Bool(REGB1)) {
13676 } else {
13677 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
13678 REGB1 = REGB2;
13679 }
13680 if (UNTAG_Bool(REGB1)) {
13681 /* compiling/compiling_icode.nit:863 */
13682 if (!once_value_394) {
13683 if (!once_value_395) {
13684 fra.me.REG[6] = BOX_NativeString("object_id");
13685 REGB1 = TAG_Int(9);
13686 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13687 once_value_395 = fra.me.REG[6];
13688 register_static_object(&once_value_395);
13689 } else fra.me.REG[6] = once_value_395;
13690 fra.me.REG[6] = fra.me.REG[6];
13691 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13692 once_value_394 = fra.me.REG[6];
13693 register_static_object(&once_value_394);
13694 } else fra.me.REG[6] = once_value_394;
13695 fra.me.REG[6] = fra.me.REG[6];
13696 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13697 if (UNTAG_Bool(REGB1)) {
13698 } else {
13699 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13700 REGB1 = REGB2;
13701 }
13702 if (UNTAG_Bool(REGB1)) {
13703 /* compiling/compiling_icode.nit:864 */
13704 REGB1 = TAG_Int(3);
13705 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13706 if (!once_value_396) {
13707 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
13708 REGB1 = TAG_Int(27);
13709 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13710 once_value_396 = fra.me.REG[7];
13711 register_static_object(&once_value_396);
13712 } else fra.me.REG[7] = once_value_396;
13713 fra.me.REG[7] = fra.me.REG[7];
13714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13715 REGB1 = TAG_Int(0);
13716 /* ../lib/standard/collection/array.nit:278 */
13717 fra.me.REG[7] = fra.me.REG[4];
13718 /* ../lib/standard/collection/array.nit:280 */
13719 REGB2 = TAG_Int(0);
13720 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13721 if (UNTAG_Bool(REGB0)) {
13722 } else {
13723 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13724 }
13725 /* ../lib/standard/kernel.nit:236 */
13726 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13727 /* ../lib/standard/collection/array.nit:280 */
13728 if (UNTAG_Bool(REGB2)) {
13729 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13730 if (UNTAG_Bool(REGB2)) {
13731 } else {
13732 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13733 }
13734 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13735 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13736 if (UNTAG_Bool(REGB0)) {
13737 } else {
13738 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13739 }
13740 /* ../lib/standard/kernel.nit:235 */
13741 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13742 } else {
13743 /* ../lib/standard/collection/array.nit:280 */
13744 REGB0 = TAG_Bool(0);
13745 REGB2 = REGB0;
13746 }
13747 if (UNTAG_Bool(REGB2)) {
13748 } else {
13749 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13750 }
13751 /* ../lib/standard/collection/array.nit:281 */
13752 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13753 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13754 if (UNTAG_Bool(REGB2)) {
13755 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13756 }
13757 /* ../lib/standard/collection/array.nit:718 */
13758 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13759 /* ../lib/standard/collection/array.nit:281 */
13760 goto label397;
13761 label397: while(0);
13762 /* compiling/compiling_icode.nit:864 */
13763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13764 if (!once_value_398) {
13765 fra.me.REG[7] = BOX_NativeString("))");
13766 REGB1 = TAG_Int(2);
13767 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13768 once_value_398 = fra.me.REG[7];
13769 register_static_object(&once_value_398);
13770 } else fra.me.REG[7] = once_value_398;
13771 fra.me.REG[7] = fra.me.REG[7];
13772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13773 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13774 fra.me.REG[5] = fra.me.REG[6];
13775 } else {
13776 /* compiling/compiling_icode.nit:865 */
13777 if (!once_value_399) {
13778 if (!once_value_400) {
13779 fra.me.REG[6] = BOX_NativeString("atoi");
13780 REGB1 = TAG_Int(4);
13781 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13782 once_value_400 = fra.me.REG[6];
13783 register_static_object(&once_value_400);
13784 } else fra.me.REG[6] = once_value_400;
13785 fra.me.REG[6] = fra.me.REG[6];
13786 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13787 once_value_399 = fra.me.REG[6];
13788 register_static_object(&once_value_399);
13789 } else fra.me.REG[6] = once_value_399;
13790 fra.me.REG[6] = fra.me.REG[6];
13791 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13792 if (UNTAG_Bool(REGB1)) {
13793 } else {
13794 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13795 REGB1 = REGB2;
13796 }
13797 if (UNTAG_Bool(REGB1)) {
13798 /* compiling/compiling_icode.nit:866 */
13799 REGB1 = TAG_Int(3);
13800 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13801 if (!once_value_401) {
13802 fra.me.REG[7] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
13803 REGB1 = TAG_Int(32);
13804 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13805 once_value_401 = fra.me.REG[7];
13806 register_static_object(&once_value_401);
13807 } else fra.me.REG[7] = once_value_401;
13808 fra.me.REG[7] = fra.me.REG[7];
13809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13810 REGB1 = TAG_Int(0);
13811 /* ../lib/standard/collection/array.nit:278 */
13812 fra.me.REG[7] = fra.me.REG[4];
13813 /* ../lib/standard/collection/array.nit:280 */
13814 REGB2 = TAG_Int(0);
13815 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13816 if (UNTAG_Bool(REGB0)) {
13817 } else {
13818 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13819 }
13820 /* ../lib/standard/kernel.nit:236 */
13821 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13822 /* ../lib/standard/collection/array.nit:280 */
13823 if (UNTAG_Bool(REGB2)) {
13824 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13825 if (UNTAG_Bool(REGB2)) {
13826 } else {
13827 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13828 }
13829 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13830 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13831 if (UNTAG_Bool(REGB0)) {
13832 } else {
13833 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13834 }
13835 /* ../lib/standard/kernel.nit:235 */
13836 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13837 } else {
13838 /* ../lib/standard/collection/array.nit:280 */
13839 REGB0 = TAG_Bool(0);
13840 REGB2 = REGB0;
13841 }
13842 if (UNTAG_Bool(REGB2)) {
13843 } else {
13844 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13845 }
13846 /* ../lib/standard/collection/array.nit:281 */
13847 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13848 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13849 if (UNTAG_Bool(REGB2)) {
13850 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13851 }
13852 /* ../lib/standard/collection/array.nit:718 */
13853 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13854 /* ../lib/standard/collection/array.nit:281 */
13855 goto label402;
13856 label402: while(0);
13857 /* compiling/compiling_icode.nit:866 */
13858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13859 if (!once_value_403) {
13860 fra.me.REG[7] = BOX_NativeString(")))");
13861 REGB1 = TAG_Int(3);
13862 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13863 once_value_403 = fra.me.REG[7];
13864 register_static_object(&once_value_403);
13865 } else fra.me.REG[7] = once_value_403;
13866 fra.me.REG[7] = fra.me.REG[7];
13867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13868 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13869 fra.me.REG[5] = fra.me.REG[6];
13870 } else {
13871 /* compiling/compiling_icode.nit:867 */
13872 if (!once_value_404) {
13873 if (!once_value_405) {
13874 fra.me.REG[6] = BOX_NativeString("[]");
13875 REGB1 = TAG_Int(2);
13876 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13877 once_value_405 = fra.me.REG[6];
13878 register_static_object(&once_value_405);
13879 } else fra.me.REG[6] = once_value_405;
13880 fra.me.REG[6] = fra.me.REG[6];
13881 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13882 once_value_404 = fra.me.REG[6];
13883 register_static_object(&once_value_404);
13884 } else fra.me.REG[6] = once_value_404;
13885 fra.me.REG[6] = fra.me.REG[6];
13886 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13887 if (UNTAG_Bool(REGB1)) {
13888 } else {
13889 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13890 REGB1 = REGB2;
13891 }
13892 if (UNTAG_Bool(REGB1)) {
13893 /* compiling/compiling_icode.nit:868 */
13894 REGB1 = TAG_Int(5);
13895 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13896 if (!once_value_406) {
13897 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
13898 REGB1 = TAG_Int(28);
13899 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13900 once_value_406 = fra.me.REG[7];
13901 register_static_object(&once_value_406);
13902 } else fra.me.REG[7] = once_value_406;
13903 fra.me.REG[7] = fra.me.REG[7];
13904 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13905 REGB1 = TAG_Int(0);
13906 /* ../lib/standard/collection/array.nit:278 */
13907 fra.me.REG[7] = fra.me.REG[4];
13908 /* ../lib/standard/collection/array.nit:280 */
13909 REGB2 = TAG_Int(0);
13910 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13911 if (UNTAG_Bool(REGB0)) {
13912 } else {
13913 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13914 }
13915 /* ../lib/standard/kernel.nit:236 */
13916 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13917 /* ../lib/standard/collection/array.nit:280 */
13918 if (UNTAG_Bool(REGB2)) {
13919 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13920 if (UNTAG_Bool(REGB2)) {
13921 } else {
13922 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13923 }
13924 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13925 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13926 if (UNTAG_Bool(REGB0)) {
13927 } else {
13928 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13929 }
13930 /* ../lib/standard/kernel.nit:235 */
13931 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13932 } else {
13933 /* ../lib/standard/collection/array.nit:280 */
13934 REGB0 = TAG_Bool(0);
13935 REGB2 = REGB0;
13936 }
13937 if (UNTAG_Bool(REGB2)) {
13938 } else {
13939 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13940 }
13941 /* ../lib/standard/collection/array.nit:281 */
13942 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13943 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13944 if (UNTAG_Bool(REGB2)) {
13945 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13946 }
13947 /* ../lib/standard/collection/array.nit:718 */
13948 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13949 /* ../lib/standard/collection/array.nit:281 */
13950 goto label407;
13951 label407: while(0);
13952 /* compiling/compiling_icode.nit:868 */
13953 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13954 if (!once_value_408) {
13955 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
13956 REGB1 = TAG_Int(12);
13957 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13958 once_value_408 = fra.me.REG[7];
13959 register_static_object(&once_value_408);
13960 } else fra.me.REG[7] = once_value_408;
13961 fra.me.REG[7] = fra.me.REG[7];
13962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13963 REGB1 = TAG_Int(1);
13964 /* ../lib/standard/collection/array.nit:278 */
13965 fra.me.REG[7] = fra.me.REG[4];
13966 /* ../lib/standard/collection/array.nit:280 */
13967 REGB2 = TAG_Int(0);
13968 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13969 if (UNTAG_Bool(REGB0)) {
13970 } else {
13971 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13972 }
13973 /* ../lib/standard/kernel.nit:236 */
13974 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13975 /* ../lib/standard/collection/array.nit:280 */
13976 if (UNTAG_Bool(REGB2)) {
13977 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13978 if (UNTAG_Bool(REGB2)) {
13979 } else {
13980 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13981 }
13982 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13983 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13984 if (UNTAG_Bool(REGB0)) {
13985 } else {
13986 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13987 }
13988 /* ../lib/standard/kernel.nit:235 */
13989 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13990 } else {
13991 /* ../lib/standard/collection/array.nit:280 */
13992 REGB0 = TAG_Bool(0);
13993 REGB2 = REGB0;
13994 }
13995 if (UNTAG_Bool(REGB2)) {
13996 } else {
13997 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13998 }
13999 /* ../lib/standard/collection/array.nit:281 */
14000 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14001 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14002 if (UNTAG_Bool(REGB2)) {
14003 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14004 }
14005 /* ../lib/standard/collection/array.nit:718 */
14006 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14007 /* ../lib/standard/collection/array.nit:281 */
14008 goto label409;
14009 label409: while(0);
14010 /* compiling/compiling_icode.nit:868 */
14011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14012 if (!once_value_410) {
14013 fra.me.REG[7] = BOX_NativeString(")])");
14014 REGB1 = TAG_Int(3);
14015 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14016 once_value_410 = fra.me.REG[7];
14017 register_static_object(&once_value_410);
14018 } else fra.me.REG[7] = once_value_410;
14019 fra.me.REG[7] = fra.me.REG[7];
14020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14021 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14022 fra.me.REG[5] = fra.me.REG[6];
14023 } else {
14024 /* compiling/compiling_icode.nit:869 */
14025 if (!once_value_411) {
14026 if (!once_value_412) {
14027 fra.me.REG[6] = BOX_NativeString("[]=");
14028 REGB1 = TAG_Int(3);
14029 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14030 once_value_412 = fra.me.REG[6];
14031 register_static_object(&once_value_412);
14032 } else fra.me.REG[6] = once_value_412;
14033 fra.me.REG[6] = fra.me.REG[6];
14034 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14035 once_value_411 = fra.me.REG[6];
14036 register_static_object(&once_value_411);
14037 } else fra.me.REG[6] = once_value_411;
14038 fra.me.REG[6] = fra.me.REG[6];
14039 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14040 if (UNTAG_Bool(REGB1)) {
14041 } else {
14042 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14043 REGB1 = REGB2;
14044 }
14045 if (UNTAG_Bool(REGB1)) {
14046 /* compiling/compiling_icode.nit:870 */
14047 REGB1 = TAG_Int(7);
14048 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14049 if (!once_value_413) {
14050 fra.me.REG[7] = BOX_NativeString("UNBOX_NativeString(");
14051 REGB1 = TAG_Int(19);
14052 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14053 once_value_413 = fra.me.REG[7];
14054 register_static_object(&once_value_413);
14055 } else fra.me.REG[7] = once_value_413;
14056 fra.me.REG[7] = fra.me.REG[7];
14057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14058 REGB1 = TAG_Int(0);
14059 /* ../lib/standard/collection/array.nit:278 */
14060 fra.me.REG[7] = fra.me.REG[4];
14061 /* ../lib/standard/collection/array.nit:280 */
14062 REGB2 = TAG_Int(0);
14063 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14064 if (UNTAG_Bool(REGB0)) {
14065 } else {
14066 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14067 }
14068 /* ../lib/standard/kernel.nit:236 */
14069 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14070 /* ../lib/standard/collection/array.nit:280 */
14071 if (UNTAG_Bool(REGB2)) {
14072 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14073 if (UNTAG_Bool(REGB2)) {
14074 } else {
14075 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14076 }
14077 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14078 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14079 if (UNTAG_Bool(REGB0)) {
14080 } else {
14081 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14082 }
14083 /* ../lib/standard/kernel.nit:235 */
14084 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14085 } else {
14086 /* ../lib/standard/collection/array.nit:280 */
14087 REGB0 = TAG_Bool(0);
14088 REGB2 = REGB0;
14089 }
14090 if (UNTAG_Bool(REGB2)) {
14091 } else {
14092 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14093 }
14094 /* ../lib/standard/collection/array.nit:281 */
14095 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14096 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14097 if (UNTAG_Bool(REGB2)) {
14098 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14099 }
14100 /* ../lib/standard/collection/array.nit:718 */
14101 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14102 /* ../lib/standard/collection/array.nit:281 */
14103 goto label414;
14104 label414: while(0);
14105 /* compiling/compiling_icode.nit:870 */
14106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14107 if (!once_value_415) {
14108 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
14109 REGB1 = TAG_Int(12);
14110 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14111 once_value_415 = fra.me.REG[7];
14112 register_static_object(&once_value_415);
14113 } else fra.me.REG[7] = once_value_415;
14114 fra.me.REG[7] = fra.me.REG[7];
14115 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14116 REGB1 = TAG_Int(1);
14117 /* ../lib/standard/collection/array.nit:278 */
14118 fra.me.REG[7] = fra.me.REG[4];
14119 /* ../lib/standard/collection/array.nit:280 */
14120 REGB2 = TAG_Int(0);
14121 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14122 if (UNTAG_Bool(REGB0)) {
14123 } else {
14124 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14125 }
14126 /* ../lib/standard/kernel.nit:236 */
14127 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14128 /* ../lib/standard/collection/array.nit:280 */
14129 if (UNTAG_Bool(REGB2)) {
14130 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14131 if (UNTAG_Bool(REGB2)) {
14132 } else {
14133 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14134 }
14135 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14136 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14137 if (UNTAG_Bool(REGB0)) {
14138 } else {
14139 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14140 }
14141 /* ../lib/standard/kernel.nit:235 */
14142 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14143 } else {
14144 /* ../lib/standard/collection/array.nit:280 */
14145 REGB0 = TAG_Bool(0);
14146 REGB2 = REGB0;
14147 }
14148 if (UNTAG_Bool(REGB2)) {
14149 } else {
14150 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14151 }
14152 /* ../lib/standard/collection/array.nit:281 */
14153 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14154 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14155 if (UNTAG_Bool(REGB2)) {
14156 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14157 }
14158 /* ../lib/standard/collection/array.nit:718 */
14159 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14160 /* ../lib/standard/collection/array.nit:281 */
14161 goto label416;
14162 label416: while(0);
14163 /* compiling/compiling_icode.nit:870 */
14164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14165 if (!once_value_417) {
14166 fra.me.REG[7] = BOX_NativeString(")]=UNTAG_Char(");
14167 REGB1 = TAG_Int(14);
14168 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14169 once_value_417 = fra.me.REG[7];
14170 register_static_object(&once_value_417);
14171 } else fra.me.REG[7] = once_value_417;
14172 fra.me.REG[7] = fra.me.REG[7];
14173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14174 REGB1 = TAG_Int(2);
14175 /* ../lib/standard/collection/array.nit:278 */
14176 fra.me.REG[7] = fra.me.REG[4];
14177 /* ../lib/standard/collection/array.nit:280 */
14178 REGB2 = TAG_Int(0);
14179 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14180 if (UNTAG_Bool(REGB0)) {
14181 } else {
14182 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14183 }
14184 /* ../lib/standard/kernel.nit:236 */
14185 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14186 /* ../lib/standard/collection/array.nit:280 */
14187 if (UNTAG_Bool(REGB2)) {
14188 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14189 if (UNTAG_Bool(REGB2)) {
14190 } else {
14191 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14192 }
14193 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14194 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14195 if (UNTAG_Bool(REGB0)) {
14196 } else {
14197 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14198 }
14199 /* ../lib/standard/kernel.nit:235 */
14200 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14201 } else {
14202 /* ../lib/standard/collection/array.nit:280 */
14203 REGB0 = TAG_Bool(0);
14204 REGB2 = REGB0;
14205 }
14206 if (UNTAG_Bool(REGB2)) {
14207 } else {
14208 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14209 }
14210 /* ../lib/standard/collection/array.nit:281 */
14211 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14212 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14213 if (UNTAG_Bool(REGB2)) {
14214 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14215 }
14216 /* ../lib/standard/collection/array.nit:718 */
14217 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14218 /* ../lib/standard/collection/array.nit:281 */
14219 goto label418;
14220 label418: while(0);
14221 /* compiling/compiling_icode.nit:870 */
14222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14223 if (!once_value_419) {
14224 fra.me.REG[7] = BOX_NativeString(");");
14225 REGB1 = TAG_Int(2);
14226 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14227 once_value_419 = fra.me.REG[7];
14228 register_static_object(&once_value_419);
14229 } else fra.me.REG[7] = once_value_419;
14230 fra.me.REG[7] = fra.me.REG[7];
14231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14232 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14233 fra.me.REG[5] = fra.me.REG[6];
14234 } else {
14235 /* compiling/compiling_icode.nit:871 */
14236 if (!once_value_420) {
14237 if (!once_value_421) {
14238 fra.me.REG[6] = BOX_NativeString("copy_to");
14239 REGB1 = TAG_Int(7);
14240 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14241 once_value_421 = fra.me.REG[6];
14242 register_static_object(&once_value_421);
14243 } else fra.me.REG[6] = once_value_421;
14244 fra.me.REG[6] = fra.me.REG[6];
14245 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14246 once_value_420 = fra.me.REG[6];
14247 register_static_object(&once_value_420);
14248 } else fra.me.REG[6] = once_value_420;
14249 fra.me.REG[6] = fra.me.REG[6];
14250 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14251 if (UNTAG_Bool(REGB1)) {
14252 } else {
14253 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14254 REGB1 = REGB2;
14255 }
14256 if (UNTAG_Bool(REGB1)) {
14257 /* compiling/compiling_icode.nit:872 */
14258 REGB1 = TAG_Int(11);
14259 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14260 if (!once_value_422) {
14261 fra.me.REG[7] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
14262 REGB1 = TAG_Int(32);
14263 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14264 once_value_422 = fra.me.REG[7];
14265 register_static_object(&once_value_422);
14266 } else fra.me.REG[7] = once_value_422;
14267 fra.me.REG[7] = fra.me.REG[7];
14268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14269 REGB1 = TAG_Int(1);
14270 /* ../lib/standard/collection/array.nit:278 */
14271 fra.me.REG[7] = fra.me.REG[4];
14272 /* ../lib/standard/collection/array.nit:280 */
14273 REGB2 = TAG_Int(0);
14274 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14275 if (UNTAG_Bool(REGB0)) {
14276 } else {
14277 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14278 }
14279 /* ../lib/standard/kernel.nit:236 */
14280 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14281 /* ../lib/standard/collection/array.nit:280 */
14282 if (UNTAG_Bool(REGB2)) {
14283 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14284 if (UNTAG_Bool(REGB2)) {
14285 } else {
14286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14287 }
14288 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14289 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14290 if (UNTAG_Bool(REGB0)) {
14291 } else {
14292 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14293 }
14294 /* ../lib/standard/kernel.nit:235 */
14295 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14296 } else {
14297 /* ../lib/standard/collection/array.nit:280 */
14298 REGB0 = TAG_Bool(0);
14299 REGB2 = REGB0;
14300 }
14301 if (UNTAG_Bool(REGB2)) {
14302 } else {
14303 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14304 }
14305 /* ../lib/standard/collection/array.nit:281 */
14306 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14307 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14308 if (UNTAG_Bool(REGB2)) {
14309 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14310 }
14311 /* ../lib/standard/collection/array.nit:718 */
14312 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14313 /* ../lib/standard/collection/array.nit:281 */
14314 goto label423;
14315 label423: while(0);
14316 /* compiling/compiling_icode.nit:872 */
14317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14318 if (!once_value_424) {
14319 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14320 REGB1 = TAG_Int(12);
14321 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14322 once_value_424 = fra.me.REG[7];
14323 register_static_object(&once_value_424);
14324 } else fra.me.REG[7] = once_value_424;
14325 fra.me.REG[7] = fra.me.REG[7];
14326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14327 REGB1 = TAG_Int(4);
14328 /* ../lib/standard/collection/array.nit:278 */
14329 fra.me.REG[7] = fra.me.REG[4];
14330 /* ../lib/standard/collection/array.nit:280 */
14331 REGB2 = TAG_Int(0);
14332 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14333 if (UNTAG_Bool(REGB0)) {
14334 } else {
14335 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14336 }
14337 /* ../lib/standard/kernel.nit:236 */
14338 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14339 /* ../lib/standard/collection/array.nit:280 */
14340 if (UNTAG_Bool(REGB2)) {
14341 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14342 if (UNTAG_Bool(REGB2)) {
14343 } else {
14344 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14345 }
14346 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14347 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14348 if (UNTAG_Bool(REGB0)) {
14349 } else {
14350 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14351 }
14352 /* ../lib/standard/kernel.nit:235 */
14353 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14354 } else {
14355 /* ../lib/standard/collection/array.nit:280 */
14356 REGB0 = TAG_Bool(0);
14357 REGB2 = REGB0;
14358 }
14359 if (UNTAG_Bool(REGB2)) {
14360 } else {
14361 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14362 }
14363 /* ../lib/standard/collection/array.nit:281 */
14364 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14365 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14366 if (UNTAG_Bool(REGB2)) {
14367 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14368 }
14369 /* ../lib/standard/collection/array.nit:718 */
14370 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14371 /* ../lib/standard/collection/array.nit:281 */
14372 goto label425;
14373 label425: while(0);
14374 /* compiling/compiling_icode.nit:872 */
14375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14376 if (!once_value_426) {
14377 fra.me.REG[7] = BOX_NativeString("), UNBOX_NativeString(");
14378 REGB1 = TAG_Int(22);
14379 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14380 once_value_426 = fra.me.REG[7];
14381 register_static_object(&once_value_426);
14382 } else fra.me.REG[7] = once_value_426;
14383 fra.me.REG[7] = fra.me.REG[7];
14384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14385 REGB1 = TAG_Int(0);
14386 /* ../lib/standard/collection/array.nit:278 */
14387 fra.me.REG[7] = fra.me.REG[4];
14388 /* ../lib/standard/collection/array.nit:280 */
14389 REGB2 = TAG_Int(0);
14390 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14391 if (UNTAG_Bool(REGB0)) {
14392 } else {
14393 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14394 }
14395 /* ../lib/standard/kernel.nit:236 */
14396 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14397 /* ../lib/standard/collection/array.nit:280 */
14398 if (UNTAG_Bool(REGB2)) {
14399 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14400 if (UNTAG_Bool(REGB2)) {
14401 } else {
14402 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14403 }
14404 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14405 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14406 if (UNTAG_Bool(REGB0)) {
14407 } else {
14408 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14409 }
14410 /* ../lib/standard/kernel.nit:235 */
14411 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14412 } else {
14413 /* ../lib/standard/collection/array.nit:280 */
14414 REGB0 = TAG_Bool(0);
14415 REGB2 = REGB0;
14416 }
14417 if (UNTAG_Bool(REGB2)) {
14418 } else {
14419 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14420 }
14421 /* ../lib/standard/collection/array.nit:281 */
14422 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14423 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14424 if (UNTAG_Bool(REGB2)) {
14425 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14426 }
14427 /* ../lib/standard/collection/array.nit:718 */
14428 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14429 /* ../lib/standard/collection/array.nit:281 */
14430 goto label427;
14431 label427: while(0);
14432 /* compiling/compiling_icode.nit:872 */
14433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14434 if (!once_value_428) {
14435 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14436 REGB1 = TAG_Int(12);
14437 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14438 once_value_428 = fra.me.REG[7];
14439 register_static_object(&once_value_428);
14440 } else fra.me.REG[7] = once_value_428;
14441 fra.me.REG[7] = fra.me.REG[7];
14442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14443 REGB1 = TAG_Int(3);
14444 /* ../lib/standard/collection/array.nit:278 */
14445 fra.me.REG[7] = fra.me.REG[4];
14446 /* ../lib/standard/collection/array.nit:280 */
14447 REGB2 = TAG_Int(0);
14448 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14449 if (UNTAG_Bool(REGB0)) {
14450 } else {
14451 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14452 }
14453 /* ../lib/standard/kernel.nit:236 */
14454 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14455 /* ../lib/standard/collection/array.nit:280 */
14456 if (UNTAG_Bool(REGB2)) {
14457 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14458 if (UNTAG_Bool(REGB2)) {
14459 } else {
14460 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14461 }
14462 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14463 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14464 if (UNTAG_Bool(REGB0)) {
14465 } else {
14466 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14467 }
14468 /* ../lib/standard/kernel.nit:235 */
14469 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14470 } else {
14471 /* ../lib/standard/collection/array.nit:280 */
14472 REGB0 = TAG_Bool(0);
14473 REGB2 = REGB0;
14474 }
14475 if (UNTAG_Bool(REGB2)) {
14476 } else {
14477 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14478 }
14479 /* ../lib/standard/collection/array.nit:281 */
14480 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14481 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14482 if (UNTAG_Bool(REGB2)) {
14483 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14484 }
14485 /* ../lib/standard/collection/array.nit:718 */
14486 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14487 /* ../lib/standard/collection/array.nit:281 */
14488 goto label429;
14489 label429: while(0);
14490 /* compiling/compiling_icode.nit:872 */
14491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14492 if (!once_value_430) {
14493 fra.me.REG[7] = BOX_NativeString("), UNTAG_Int(");
14494 REGB1 = TAG_Int(13);
14495 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14496 once_value_430 = fra.me.REG[7];
14497 register_static_object(&once_value_430);
14498 } else fra.me.REG[7] = once_value_430;
14499 fra.me.REG[7] = fra.me.REG[7];
14500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14501 REGB1 = TAG_Int(2);
14502 /* ../lib/standard/collection/array.nit:278 */
14503 fra.me.REG[7] = fra.me.REG[4];
14504 /* ../lib/standard/collection/array.nit:280 */
14505 REGB2 = TAG_Int(0);
14506 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14507 if (UNTAG_Bool(REGB0)) {
14508 } else {
14509 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14510 }
14511 /* ../lib/standard/kernel.nit:236 */
14512 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14513 /* ../lib/standard/collection/array.nit:280 */
14514 if (UNTAG_Bool(REGB2)) {
14515 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14516 if (UNTAG_Bool(REGB2)) {
14517 } else {
14518 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14519 }
14520 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14521 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14522 if (UNTAG_Bool(REGB0)) {
14523 } else {
14524 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14525 }
14526 /* ../lib/standard/kernel.nit:235 */
14527 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14528 } else {
14529 /* ../lib/standard/collection/array.nit:280 */
14530 REGB0 = TAG_Bool(0);
14531 REGB2 = REGB0;
14532 }
14533 if (UNTAG_Bool(REGB2)) {
14534 } else {
14535 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14536 }
14537 /* ../lib/standard/collection/array.nit:281 */
14538 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14539 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14540 if (UNTAG_Bool(REGB2)) {
14541 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14542 }
14543 /* ../lib/standard/collection/array.nit:718 */
14544 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14545 /* ../lib/standard/collection/array.nit:281 */
14546 goto label431;
14547 label431: while(0);
14548 /* compiling/compiling_icode.nit:872 */
14549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14550 if (!once_value_432) {
14551 fra.me.REG[7] = BOX_NativeString("));");
14552 REGB1 = TAG_Int(3);
14553 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14554 once_value_432 = fra.me.REG[7];
14555 register_static_object(&once_value_432);
14556 } else fra.me.REG[7] = once_value_432;
14557 fra.me.REG[7] = fra.me.REG[7];
14558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14559 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14560 fra.me.REG[5] = fra.me.REG[6];
14561 }
14562 }
14563 }
14564 }
14565 }
14566 } else {
14567 /* compiling/compiling_icode.nit:874 */
14568 if (!once_value_433) {
14569 if (!once_value_434) {
14570 fra.me.REG[6] = BOX_NativeString("Sys");
14571 REGB1 = TAG_Int(3);
14572 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14573 once_value_434 = fra.me.REG[6];
14574 register_static_object(&once_value_434);
14575 } else fra.me.REG[6] = once_value_434;
14576 fra.me.REG[6] = fra.me.REG[6];
14577 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14578 once_value_433 = fra.me.REG[6];
14579 register_static_object(&once_value_433);
14580 } else fra.me.REG[6] = once_value_433;
14581 fra.me.REG[6] = fra.me.REG[6];
14582 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
14583 if (UNTAG_Bool(REGB1)) {
14584 } else {
14585 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
14586 REGB1 = REGB2;
14587 }
14588 if (UNTAG_Bool(REGB1)) {
14589 /* compiling/compiling_icode.nit:875 */
14590 if (!once_value_435) {
14591 if (!once_value_436) {
14592 fra.me.REG[6] = BOX_NativeString("force_garbage_collection");
14593 REGB1 = TAG_Int(24);
14594 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14595 once_value_436 = fra.me.REG[6];
14596 register_static_object(&once_value_436);
14597 } else fra.me.REG[6] = once_value_436;
14598 fra.me.REG[6] = fra.me.REG[6];
14599 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14600 once_value_435 = fra.me.REG[6];
14601 register_static_object(&once_value_435);
14602 } else fra.me.REG[6] = once_value_435;
14603 fra.me.REG[6] = fra.me.REG[6];
14604 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14605 if (UNTAG_Bool(REGB1)) {
14606 } else {
14607 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14608 REGB1 = REGB2;
14609 }
14610 if (UNTAG_Bool(REGB1)) {
14611 /* compiling/compiling_icode.nit:876 */
14612 if (!once_value_437) {
14613 fra.me.REG[6] = BOX_NativeString("Nit_gc_force_garbage_collection()");
14614 REGB1 = TAG_Int(33);
14615 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14616 once_value_437 = fra.me.REG[6];
14617 register_static_object(&once_value_437);
14618 } else fra.me.REG[6] = once_value_437;
14619 fra.me.REG[6] = fra.me.REG[6];
14620 fra.me.REG[5] = fra.me.REG[6];
14621 }
14622 } else {
14623 /* compiling/compiling_icode.nit:878 */
14624 if (!once_value_438) {
14625 if (!once_value_439) {
14626 fra.me.REG[6] = BOX_NativeString("object_id");
14627 REGB1 = TAG_Int(9);
14628 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14629 once_value_439 = fra.me.REG[6];
14630 register_static_object(&once_value_439);
14631 } else fra.me.REG[6] = once_value_439;
14632 fra.me.REG[6] = fra.me.REG[6];
14633 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14634 once_value_438 = fra.me.REG[6];
14635 register_static_object(&once_value_438);
14636 } else fra.me.REG[6] = once_value_438;
14637 fra.me.REG[6] = fra.me.REG[6];
14638 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14639 if (UNTAG_Bool(REGB1)) {
14640 } else {
14641 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14642 REGB1 = REGB2;
14643 }
14644 if (UNTAG_Bool(REGB1)) {
14645 /* compiling/compiling_icode.nit:879 */
14646 REGB1 = TAG_Int(3);
14647 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14648 if (!once_value_440) {
14649 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
14650 REGB1 = TAG_Int(24);
14651 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14652 once_value_440 = fra.me.REG[2];
14653 register_static_object(&once_value_440);
14654 } else fra.me.REG[2] = once_value_440;
14655 fra.me.REG[2] = fra.me.REG[2];
14656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14657 REGB1 = TAG_Int(0);
14658 /* ../lib/standard/collection/array.nit:278 */
14659 fra.me.REG[2] = fra.me.REG[4];
14660 /* ../lib/standard/collection/array.nit:280 */
14661 REGB2 = TAG_Int(0);
14662 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14663 if (UNTAG_Bool(REGB0)) {
14664 } else {
14665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14666 }
14667 /* ../lib/standard/kernel.nit:236 */
14668 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14669 /* ../lib/standard/collection/array.nit:280 */
14670 if (UNTAG_Bool(REGB2)) {
14671 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14672 if (UNTAG_Bool(REGB2)) {
14673 } else {
14674 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14675 }
14676 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14677 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14678 if (UNTAG_Bool(REGB0)) {
14679 } else {
14680 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14681 }
14682 /* ../lib/standard/kernel.nit:235 */
14683 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14684 } else {
14685 /* ../lib/standard/collection/array.nit:280 */
14686 REGB0 = TAG_Bool(0);
14687 REGB2 = REGB0;
14688 }
14689 if (UNTAG_Bool(REGB2)) {
14690 } else {
14691 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14692 }
14693 /* ../lib/standard/collection/array.nit:281 */
14694 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14695 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14696 if (UNTAG_Bool(REGB2)) {
14697 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14698 }
14699 /* ../lib/standard/collection/array.nit:718 */
14700 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14701 /* ../lib/standard/collection/array.nit:281 */
14702 goto label441;
14703 label441: while(0);
14704 /* compiling/compiling_icode.nit:879 */
14705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14706 if (!once_value_442) {
14707 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
14708 REGB1 = TAG_Int(15);
14709 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14710 once_value_442 = fra.me.REG[2];
14711 register_static_object(&once_value_442);
14712 } else fra.me.REG[2] = once_value_442;
14713 fra.me.REG[2] = fra.me.REG[2];
14714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14715 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14716 fra.me.REG[5] = fra.me.REG[6];
14717 } else {
14718 /* compiling/compiling_icode.nit:880 */
14719 if (!once_value_443) {
14720 if (!once_value_444) {
14721 fra.me.REG[6] = BOX_NativeString("sys");
14722 REGB1 = TAG_Int(3);
14723 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14724 once_value_444 = fra.me.REG[6];
14725 register_static_object(&once_value_444);
14726 } else fra.me.REG[6] = once_value_444;
14727 fra.me.REG[6] = fra.me.REG[6];
14728 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14729 once_value_443 = fra.me.REG[6];
14730 register_static_object(&once_value_443);
14731 } else fra.me.REG[6] = once_value_443;
14732 fra.me.REG[6] = fra.me.REG[6];
14733 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14734 if (UNTAG_Bool(REGB1)) {
14735 } else {
14736 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14737 REGB1 = REGB2;
14738 }
14739 if (UNTAG_Bool(REGB1)) {
14740 /* compiling/compiling_icode.nit:881 */
14741 if (!once_value_445) {
14742 fra.me.REG[6] = BOX_NativeString("(G_sys)");
14743 REGB1 = TAG_Int(7);
14744 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14745 once_value_445 = fra.me.REG[6];
14746 register_static_object(&once_value_445);
14747 } else fra.me.REG[6] = once_value_445;
14748 fra.me.REG[6] = fra.me.REG[6];
14749 fra.me.REG[5] = fra.me.REG[6];
14750 } else {
14751 /* compiling/compiling_icode.nit:882 */
14752 if (!once_value_446) {
14753 if (!once_value_447) {
14754 fra.me.REG[6] = BOX_NativeString("is_same_type");
14755 REGB1 = TAG_Int(12);
14756 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14757 once_value_447 = fra.me.REG[6];
14758 register_static_object(&once_value_447);
14759 } else fra.me.REG[6] = once_value_447;
14760 fra.me.REG[6] = fra.me.REG[6];
14761 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14762 once_value_446 = fra.me.REG[6];
14763 register_static_object(&once_value_446);
14764 } else fra.me.REG[6] = once_value_446;
14765 fra.me.REG[6] = fra.me.REG[6];
14766 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14767 if (UNTAG_Bool(REGB1)) {
14768 } else {
14769 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14770 REGB1 = REGB2;
14771 }
14772 if (UNTAG_Bool(REGB1)) {
14773 /* compiling/compiling_icode.nit:883 */
14774 REGB1 = TAG_Int(5);
14775 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14776 if (!once_value_448) {
14777 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
14778 REGB1 = TAG_Int(18);
14779 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14780 once_value_448 = fra.me.REG[2];
14781 register_static_object(&once_value_448);
14782 } else fra.me.REG[2] = once_value_448;
14783 fra.me.REG[2] = fra.me.REG[2];
14784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14785 REGB1 = TAG_Int(0);
14786 /* ../lib/standard/collection/array.nit:278 */
14787 fra.me.REG[2] = fra.me.REG[4];
14788 /* ../lib/standard/collection/array.nit:280 */
14789 REGB2 = TAG_Int(0);
14790 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14791 if (UNTAG_Bool(REGB0)) {
14792 } else {
14793 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14794 }
14795 /* ../lib/standard/kernel.nit:236 */
14796 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14797 /* ../lib/standard/collection/array.nit:280 */
14798 if (UNTAG_Bool(REGB2)) {
14799 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14800 if (UNTAG_Bool(REGB2)) {
14801 } else {
14802 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14803 }
14804 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14805 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14806 if (UNTAG_Bool(REGB0)) {
14807 } else {
14808 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14809 }
14810 /* ../lib/standard/kernel.nit:235 */
14811 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14812 } else {
14813 /* ../lib/standard/collection/array.nit:280 */
14814 REGB0 = TAG_Bool(0);
14815 REGB2 = REGB0;
14816 }
14817 if (UNTAG_Bool(REGB2)) {
14818 } else {
14819 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14820 }
14821 /* ../lib/standard/collection/array.nit:281 */
14822 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14823 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14824 if (UNTAG_Bool(REGB2)) {
14825 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14826 }
14827 /* ../lib/standard/collection/array.nit:718 */
14828 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14829 /* ../lib/standard/collection/array.nit:281 */
14830 goto label449;
14831 label449: while(0);
14832 /* compiling/compiling_icode.nit:883 */
14833 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14834 if (!once_value_450) {
14835 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
14836 REGB1 = TAG_Int(11);
14837 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14838 once_value_450 = fra.me.REG[2];
14839 register_static_object(&once_value_450);
14840 } else fra.me.REG[2] = once_value_450;
14841 fra.me.REG[2] = fra.me.REG[2];
14842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14843 REGB1 = TAG_Int(1);
14844 /* ../lib/standard/collection/array.nit:278 */
14845 fra.me.REG[2] = fra.me.REG[4];
14846 /* ../lib/standard/collection/array.nit:280 */
14847 REGB2 = TAG_Int(0);
14848 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14849 if (UNTAG_Bool(REGB0)) {
14850 } else {
14851 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14852 }
14853 /* ../lib/standard/kernel.nit:236 */
14854 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14855 /* ../lib/standard/collection/array.nit:280 */
14856 if (UNTAG_Bool(REGB2)) {
14857 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14858 if (UNTAG_Bool(REGB2)) {
14859 } else {
14860 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14861 }
14862 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14863 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14864 if (UNTAG_Bool(REGB0)) {
14865 } else {
14866 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14867 }
14868 /* ../lib/standard/kernel.nit:235 */
14869 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14870 } else {
14871 /* ../lib/standard/collection/array.nit:280 */
14872 REGB0 = TAG_Bool(0);
14873 REGB2 = REGB0;
14874 }
14875 if (UNTAG_Bool(REGB2)) {
14876 } else {
14877 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14878 }
14879 /* ../lib/standard/collection/array.nit:281 */
14880 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14881 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14882 if (UNTAG_Bool(REGB2)) {
14883 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14884 }
14885 /* ../lib/standard/collection/array.nit:718 */
14886 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14887 /* ../lib/standard/collection/array.nit:281 */
14888 goto label451;
14889 label451: while(0);
14890 /* compiling/compiling_icode.nit:883 */
14891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14892 if (!once_value_452) {
14893 fra.me.REG[2] = BOX_NativeString(")))");
14894 REGB1 = TAG_Int(3);
14895 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14896 once_value_452 = fra.me.REG[2];
14897 register_static_object(&once_value_452);
14898 } else fra.me.REG[2] = once_value_452;
14899 fra.me.REG[2] = fra.me.REG[2];
14900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14901 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14902 fra.me.REG[5] = fra.me.REG[6];
14903 } else {
14904 /* compiling/compiling_icode.nit:884 */
14905 if (!once_value_453) {
14906 if (!once_value_454) {
14907 fra.me.REG[6] = BOX_NativeString("exit");
14908 REGB1 = TAG_Int(4);
14909 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14910 once_value_454 = fra.me.REG[6];
14911 register_static_object(&once_value_454);
14912 } else fra.me.REG[6] = once_value_454;
14913 fra.me.REG[6] = fra.me.REG[6];
14914 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14915 once_value_453 = fra.me.REG[6];
14916 register_static_object(&once_value_453);
14917 } else fra.me.REG[6] = once_value_453;
14918 fra.me.REG[6] = fra.me.REG[6];
14919 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14920 if (UNTAG_Bool(REGB1)) {
14921 } else {
14922 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14923 REGB1 = REGB2;
14924 }
14925 if (UNTAG_Bool(REGB1)) {
14926 /* compiling/compiling_icode.nit:885 */
14927 REGB1 = TAG_Int(3);
14928 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14929 if (!once_value_455) {
14930 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
14931 REGB1 = TAG_Int(15);
14932 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14933 once_value_455 = fra.me.REG[2];
14934 register_static_object(&once_value_455);
14935 } else fra.me.REG[2] = once_value_455;
14936 fra.me.REG[2] = fra.me.REG[2];
14937 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14938 REGB1 = TAG_Int(1);
14939 /* ../lib/standard/collection/array.nit:278 */
14940 fra.me.REG[2] = fra.me.REG[4];
14941 /* ../lib/standard/collection/array.nit:280 */
14942 REGB2 = TAG_Int(0);
14943 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14944 if (UNTAG_Bool(REGB0)) {
14945 } else {
14946 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14947 }
14948 /* ../lib/standard/kernel.nit:236 */
14949 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14950 /* ../lib/standard/collection/array.nit:280 */
14951 if (UNTAG_Bool(REGB2)) {
14952 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14953 if (UNTAG_Bool(REGB2)) {
14954 } else {
14955 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14956 }
14957 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14958 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14959 if (UNTAG_Bool(REGB0)) {
14960 } else {
14961 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14962 }
14963 /* ../lib/standard/kernel.nit:235 */
14964 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14965 } else {
14966 /* ../lib/standard/collection/array.nit:280 */
14967 REGB0 = TAG_Bool(0);
14968 REGB2 = REGB0;
14969 }
14970 if (UNTAG_Bool(REGB2)) {
14971 } else {
14972 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14973 }
14974 /* ../lib/standard/collection/array.nit:281 */
14975 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14976 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14977 if (UNTAG_Bool(REGB2)) {
14978 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14979 }
14980 /* ../lib/standard/collection/array.nit:718 */
14981 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14982 /* ../lib/standard/collection/array.nit:281 */
14983 goto label456;
14984 label456: while(0);
14985 /* compiling/compiling_icode.nit:885 */
14986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14987 if (!once_value_457) {
14988 fra.me.REG[2] = BOX_NativeString("));");
14989 REGB1 = TAG_Int(3);
14990 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14991 once_value_457 = fra.me.REG[2];
14992 register_static_object(&once_value_457);
14993 } else fra.me.REG[2] = once_value_457;
14994 fra.me.REG[2] = fra.me.REG[2];
14995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14996 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14997 fra.me.REG[5] = fra.me.REG[6];
14998 } else {
14999 /* compiling/compiling_icode.nit:886 */
15000 if (!once_value_458) {
15001 if (!once_value_459) {
15002 fra.me.REG[6] = BOX_NativeString("calloc_array");
15003 REGB1 = TAG_Int(12);
15004 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15005 once_value_459 = fra.me.REG[6];
15006 register_static_object(&once_value_459);
15007 } else fra.me.REG[6] = once_value_459;
15008 fra.me.REG[6] = fra.me.REG[6];
15009 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15010 once_value_458 = fra.me.REG[6];
15011 register_static_object(&once_value_458);
15012 } else fra.me.REG[6] = once_value_458;
15013 fra.me.REG[6] = fra.me.REG[6];
15014 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15015 if (UNTAG_Bool(REGB1)) {
15016 } else {
15017 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15018 REGB1 = REGB2;
15019 }
15020 if (UNTAG_Bool(REGB1)) {
15021 /* compiling/compiling_icode.nit:887 */
15022 REGB1 = TAG_Int(3);
15023 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15024 if (!once_value_460) {
15025 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
15026 REGB1 = TAG_Int(26);
15027 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15028 once_value_460 = fra.me.REG[2];
15029 register_static_object(&once_value_460);
15030 } else fra.me.REG[2] = once_value_460;
15031 fra.me.REG[2] = fra.me.REG[2];
15032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15033 REGB1 = TAG_Int(1);
15034 /* ../lib/standard/collection/array.nit:278 */
15035 fra.me.REG[2] = fra.me.REG[4];
15036 /* ../lib/standard/collection/array.nit:280 */
15037 REGB2 = TAG_Int(0);
15038 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15039 if (UNTAG_Bool(REGB0)) {
15040 } else {
15041 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15042 }
15043 /* ../lib/standard/kernel.nit:236 */
15044 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15045 /* ../lib/standard/collection/array.nit:280 */
15046 if (UNTAG_Bool(REGB2)) {
15047 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15048 if (UNTAG_Bool(REGB2)) {
15049 } else {
15050 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15051 }
15052 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15053 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15054 if (UNTAG_Bool(REGB0)) {
15055 } else {
15056 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15057 }
15058 /* ../lib/standard/kernel.nit:235 */
15059 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15060 } else {
15061 /* ../lib/standard/collection/array.nit:280 */
15062 REGB0 = TAG_Bool(0);
15063 REGB2 = REGB0;
15064 }
15065 if (UNTAG_Bool(REGB2)) {
15066 } else {
15067 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15068 }
15069 /* ../lib/standard/collection/array.nit:281 */
15070 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15071 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15072 if (UNTAG_Bool(REGB2)) {
15073 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15074 }
15075 /* ../lib/standard/collection/array.nit:718 */
15076 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15077 /* ../lib/standard/collection/array.nit:281 */
15078 goto label461;
15079 label461: while(0);
15080 /* compiling/compiling_icode.nit:887 */
15081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15082 if (!once_value_462) {
15083 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
15084 REGB1 = TAG_Int(17);
15085 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15086 once_value_462 = fra.me.REG[2];
15087 register_static_object(&once_value_462);
15088 } else fra.me.REG[2] = once_value_462;
15089 fra.me.REG[2] = fra.me.REG[2];
15090 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15091 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15092 fra.me.REG[5] = fra.me.REG[6];
15093 } else {
15094 /* compiling/compiling_icode.nit:888 */
15095 if (!once_value_463) {
15096 if (!once_value_464) {
15097 fra.me.REG[6] = BOX_NativeString("calloc_string");
15098 REGB1 = TAG_Int(13);
15099 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15100 once_value_464 = fra.me.REG[6];
15101 register_static_object(&once_value_464);
15102 } else fra.me.REG[6] = once_value_464;
15103 fra.me.REG[6] = fra.me.REG[6];
15104 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15105 once_value_463 = fra.me.REG[6];
15106 register_static_object(&once_value_463);
15107 } else fra.me.REG[6] = once_value_463;
15108 fra.me.REG[6] = fra.me.REG[6];
15109 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15110 if (UNTAG_Bool(REGB1)) {
15111 } else {
15112 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15113 REGB1 = REGB2;
15114 }
15115 if (UNTAG_Bool(REGB1)) {
15116 /* compiling/compiling_icode.nit:889 */
15117 REGB1 = TAG_Int(3);
15118 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15119 if (!once_value_465) {
15120 fra.me.REG[2] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
15121 REGB1 = TAG_Int(45);
15122 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15123 once_value_465 = fra.me.REG[2];
15124 register_static_object(&once_value_465);
15125 } else fra.me.REG[2] = once_value_465;
15126 fra.me.REG[2] = fra.me.REG[2];
15127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15128 REGB1 = TAG_Int(1);
15129 /* ../lib/standard/collection/array.nit:278 */
15130 fra.me.REG[2] = fra.me.REG[4];
15131 /* ../lib/standard/collection/array.nit:280 */
15132 REGB2 = TAG_Int(0);
15133 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15134 if (UNTAG_Bool(REGB0)) {
15135 } else {
15136 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15137 }
15138 /* ../lib/standard/kernel.nit:236 */
15139 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15140 /* ../lib/standard/collection/array.nit:280 */
15141 if (UNTAG_Bool(REGB2)) {
15142 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15143 if (UNTAG_Bool(REGB2)) {
15144 } else {
15145 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15146 }
15147 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15148 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15149 if (UNTAG_Bool(REGB0)) {
15150 } else {
15151 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15152 }
15153 /* ../lib/standard/kernel.nit:235 */
15154 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15155 } else {
15156 /* ../lib/standard/collection/array.nit:280 */
15157 REGB0 = TAG_Bool(0);
15158 REGB2 = REGB0;
15159 }
15160 if (UNTAG_Bool(REGB2)) {
15161 } else {
15162 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15163 }
15164 /* ../lib/standard/collection/array.nit:281 */
15165 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15166 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15167 if (UNTAG_Bool(REGB2)) {
15168 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15169 }
15170 /* ../lib/standard/collection/array.nit:718 */
15171 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15172 /* ../lib/standard/collection/array.nit:281 */
15173 goto label466;
15174 label466: while(0);
15175 /* compiling/compiling_icode.nit:889 */
15176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15177 if (!once_value_467) {
15178 fra.me.REG[2] = BOX_NativeString(") * sizeof(char))))");
15179 REGB1 = TAG_Int(19);
15180 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15181 once_value_467 = fra.me.REG[2];
15182 register_static_object(&once_value_467);
15183 } else fra.me.REG[2] = once_value_467;
15184 fra.me.REG[2] = fra.me.REG[2];
15185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15186 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15187 fra.me.REG[5] = fra.me.REG[6];
15188 } else {
15189 /* compiling/compiling_icode.nit:891 */
15190 if (!once_value_468) {
15191 if (!once_value_469) {
15192 fra.me.REG[6] = BOX_NativeString("output_class_name");
15193 REGB1 = TAG_Int(17);
15194 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15195 once_value_469 = fra.me.REG[6];
15196 register_static_object(&once_value_469);
15197 } else fra.me.REG[6] = once_value_469;
15198 fra.me.REG[6] = fra.me.REG[6];
15199 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15200 once_value_468 = fra.me.REG[6];
15201 register_static_object(&once_value_468);
15202 } else fra.me.REG[6] = once_value_468;
15203 fra.me.REG[6] = fra.me.REG[6];
15204 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15205 if (UNTAG_Bool(REGB1)) {
15206 } else {
15207 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15208 REGB1 = REGB2;
15209 }
15210 if (UNTAG_Bool(REGB1)) {
15211 /* compiling/compiling_icode.nit:892 */
15212 REGB1 = TAG_Int(3);
15213 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15214 if (!once_value_470) {
15215 fra.me.REG[2] = BOX_NativeString("printf(\"%s\\n\", VAL2VFT(");
15216 REGB1 = TAG_Int(23);
15217 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15218 once_value_470 = fra.me.REG[2];
15219 register_static_object(&once_value_470);
15220 } else fra.me.REG[2] = once_value_470;
15221 fra.me.REG[2] = fra.me.REG[2];
15222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15223 REGB1 = TAG_Int(0);
15224 /* ../lib/standard/collection/array.nit:278 */
15225 fra.me.REG[2] = fra.me.REG[4];
15226 /* ../lib/standard/collection/array.nit:280 */
15227 REGB2 = TAG_Int(0);
15228 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15229 if (UNTAG_Bool(REGB0)) {
15230 } else {
15231 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15232 }
15233 /* ../lib/standard/kernel.nit:236 */
15234 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15235 /* ../lib/standard/collection/array.nit:280 */
15236 if (UNTAG_Bool(REGB2)) {
15237 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15238 if (UNTAG_Bool(REGB2)) {
15239 } else {
15240 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15241 }
15242 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15243 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15244 if (UNTAG_Bool(REGB0)) {
15245 } else {
15246 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15247 }
15248 /* ../lib/standard/kernel.nit:235 */
15249 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15250 } else {
15251 /* ../lib/standard/collection/array.nit:280 */
15252 REGB0 = TAG_Bool(0);
15253 REGB2 = REGB0;
15254 }
15255 if (UNTAG_Bool(REGB2)) {
15256 } else {
15257 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15258 }
15259 /* ../lib/standard/collection/array.nit:281 */
15260 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15261 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15262 if (UNTAG_Bool(REGB2)) {
15263 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15264 }
15265 /* ../lib/standard/collection/array.nit:718 */
15266 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15267 /* ../lib/standard/collection/array.nit:281 */
15268 goto label471;
15269 label471: while(0);
15270 /* compiling/compiling_icode.nit:892 */
15271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15272 if (!once_value_472) {
15273 fra.me.REG[2] = BOX_NativeString(")[2].cname);");
15274 REGB1 = TAG_Int(12);
15275 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15276 once_value_472 = fra.me.REG[2];
15277 register_static_object(&once_value_472);
15278 } else fra.me.REG[2] = once_value_472;
15279 fra.me.REG[2] = fra.me.REG[2];
15280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15281 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15282 fra.me.REG[5] = fra.me.REG[6];
15283 } else {
15284 /* compiling/compiling_icode.nit:894 */
15285 if (!once_value_473) {
15286 if (!once_value_474) {
15287 fra.me.REG[6] = BOX_NativeString("native_class_name");
15288 REGB1 = TAG_Int(17);
15289 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15290 once_value_474 = fra.me.REG[6];
15291 register_static_object(&once_value_474);
15292 } else fra.me.REG[6] = once_value_474;
15293 fra.me.REG[6] = fra.me.REG[6];
15294 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15295 once_value_473 = fra.me.REG[6];
15296 register_static_object(&once_value_473);
15297 } else fra.me.REG[6] = once_value_473;
15298 fra.me.REG[6] = fra.me.REG[6];
15299 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15300 if (UNTAG_Bool(REGB1)) {
15301 } else {
15302 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15303 REGB1 = REGB2;
15304 }
15305 if (UNTAG_Bool(REGB1)) {
15306 /* compiling/compiling_icode.nit:895 */
15307 REGB1 = TAG_Int(3);
15308 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15309 if (!once_value_475) {
15310 fra.me.REG[3] = BOX_NativeString("BOX_NativeString(VAL2VFT(");
15311 REGB1 = TAG_Int(25);
15312 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15313 once_value_475 = fra.me.REG[3];
15314 register_static_object(&once_value_475);
15315 } else fra.me.REG[3] = once_value_475;
15316 fra.me.REG[3] = fra.me.REG[3];
15317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
15318 REGB1 = TAG_Int(0);
15319 /* ../lib/standard/collection/array.nit:280 */
15320 REGB2 = TAG_Int(0);
15321 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15322 if (UNTAG_Bool(REGB0)) {
15323 } else {
15324 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15325 }
15326 /* ../lib/standard/kernel.nit:236 */
15327 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15328 /* ../lib/standard/collection/array.nit:280 */
15329 if (UNTAG_Bool(REGB2)) {
15330 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
15331 if (UNTAG_Bool(REGB2)) {
15332 } else {
15333 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15334 }
15335 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
15336 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15337 if (UNTAG_Bool(REGB0)) {
15338 } else {
15339 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15340 }
15341 /* ../lib/standard/kernel.nit:235 */
15342 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15343 } else {
15344 /* ../lib/standard/collection/array.nit:280 */
15345 REGB0 = TAG_Bool(0);
15346 REGB2 = REGB0;
15347 }
15348 if (UNTAG_Bool(REGB2)) {
15349 } else {
15350 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15351 }
15352 /* ../lib/standard/collection/array.nit:281 */
15353 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
15354 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15355 if (UNTAG_Bool(REGB2)) {
15356 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15357 }
15358 /* ../lib/standard/collection/array.nit:718 */
15359 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
15360 /* ../lib/standard/collection/array.nit:281 */
15361 goto label476;
15362 label476: while(0);
15363 /* compiling/compiling_icode.nit:895 */
15364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15365 if (!once_value_477) {
15366 fra.me.REG[4] = BOX_NativeString(")[2].cname);");
15367 REGB1 = TAG_Int(12);
15368 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15369 once_value_477 = fra.me.REG[4];
15370 register_static_object(&once_value_477);
15371 } else fra.me.REG[4] = once_value_477;
15372 fra.me.REG[4] = fra.me.REG[4];
15373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15374 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15375 fra.me.REG[5] = fra.me.REG[6];
15376 }
15377 }
15378 }
15379 }
15380 }
15381 }
15382 }
15383 }
15384 }
15385 }
15386 }
15387 }
15388 }
15389 }
15390 }
15391 /* compiling/compiling_icode.nit:898 */
15392 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15393 if (UNTAG_Bool(REGB1)) {
15394 } else {
15395 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15396 if (UNTAG_Bool(REGB2)) {
15397 REGB2 = TAG_Bool(0);
15398 REGB1 = REGB2;
15399 } else {
15400 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15401 REGB1 = REGB2;
15402 }
15403 }
15404 if (UNTAG_Bool(REGB1)) {
15405 /* compiling/compiling_icode.nit:899 */
15406 fra.me.REG[6] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15407 /* compiling/compiling_icode.nit:900 */
15408 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15409 if (UNTAG_Bool(REGB1)) {
15410 } else {
15411 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15412 if (UNTAG_Bool(REGB2)) {
15413 REGB2 = TAG_Bool(0);
15414 REGB1 = REGB2;
15415 } else {
15416 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
15417 REGB1 = REGB2;
15418 }
15419 }
15420 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15421 if (UNTAG_Bool(REGB1)) {
15422 REGB1 = TAG_Int(3);
15423 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15424 if (!once_value_478) {
15425 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
15426 REGB1 = TAG_Int(17);
15427 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15428 once_value_478 = fra.me.REG[3];
15429 register_static_object(&once_value_478);
15430 } else fra.me.REG[3] = once_value_478;
15431 fra.me.REG[3] = fra.me.REG[3];
15432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15433 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15434 if (UNTAG_Bool(REGB1)) {
15435 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 900);
15436 }
15437 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15439 if (!once_value_479) {
15440 fra.me.REG[6] = BOX_NativeString(": \");");
15441 REGB1 = TAG_Int(5);
15442 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15443 once_value_479 = fra.me.REG[6];
15444 register_static_object(&once_value_479);
15445 } else fra.me.REG[6] = once_value_479;
15446 fra.me.REG[6] = fra.me.REG[6];
15447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15448 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15449 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15450 }
15451 /* compiling/compiling_icode.nit:901 */
15452 REGB1 = TAG_Int(3);
15453 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15454 if (!once_value_480) {
15455 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
15456 REGB1 = TAG_Int(52);
15457 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15458 once_value_480 = fra.me.REG[6];
15459 register_static_object(&once_value_480);
15460 } else fra.me.REG[6] = once_value_480;
15461 fra.me.REG[6] = fra.me.REG[6];
15462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15463 fra.me.REG[6] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
15464 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
15465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15466 if (!once_value_481) {
15467 fra.me.REG[6] = BOX_NativeString(".\\n\");");
15468 REGB1 = TAG_Int(6);
15469 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15470 once_value_481 = fra.me.REG[6];
15471 register_static_object(&once_value_481);
15472 } else fra.me.REG[6] = once_value_481;
15473 fra.me.REG[6] = fra.me.REG[6];
15474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15475 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15476 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15477 /* compiling/compiling_icode.nit:902 */
15478 if (!once_value_482) {
15479 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
15480 REGB1 = TAG_Int(12);
15481 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15482 once_value_482 = fra.me.REG[4];
15483 register_static_object(&once_value_482);
15484 } else fra.me.REG[4] = once_value_482;
15485 fra.me.REG[4] = fra.me.REG[4];
15486 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15487 /* compiling/compiling_icode.nit:903 */
15488 if (!once_value_483) {
15489 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
15490 REGB1 = TAG_Int(8);
15491 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15492 once_value_483 = fra.me.REG[4];
15493 register_static_object(&once_value_483);
15494 } else fra.me.REG[4] = once_value_483;
15495 fra.me.REG[4] = fra.me.REG[4];
15496 fra.me.REG[5] = fra.me.REG[4];
15497 }
15498 /* compiling/compiling_icode.nit:905 */
15499 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15500 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15501 if (UNTAG_Bool(REGB1)) {
15502 } else {
15503 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15504 if (UNTAG_Bool(REGB2)) {
15505 REGB2 = TAG_Bool(0);
15506 REGB1 = REGB2;
15507 } else {
15508 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
15509 REGB1 = REGB2;
15510 }
15511 }
15512 if (UNTAG_Bool(REGB1)) {
15513 /* compiling/compiling_icode.nit:906 */
15514 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15515 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15516 if (!once_value_484) {
15517 fra.me.REG[6] = BOX_NativeString(";\n");
15518 REGB1 = TAG_Int(2);
15519 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15520 once_value_484 = fra.me.REG[6];
15521 register_static_object(&once_value_484);
15522 } else fra.me.REG[6] = once_value_484;
15523 fra.me.REG[6] = fra.me.REG[6];
15524 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15525 } else {
15526 /* compiling/compiling_icode.nit:907 */
15527 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15528 if (UNTAG_Bool(REGB1)) {
15529 /* compiling/compiling_icode.nit:908 */
15530 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15531 /* compiling/compiling_icode.nit:909 */
15532 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
15533 }
15534 }
15535 stack_frame_head = fra.me.prev;
15536 return;
15537 }
15538 static const char LOCATE_compiling___compiling_icode___IIntValue___compile_to_c[] = "compiling_icode::IIntValue::(compiling_icode::ICode::compile_to_c)";
15539 void compiling___compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
15540 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15541 val_t REGB0;
15542 val_t tmp;
15543 static val_t once_value_1; /* Once value */
15544 static val_t once_value_2; /* Once value */
15545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15546 fra.me.file = LOCATE_compiling___compiling_icode;
15547 fra.me.line = 915;
15548 fra.me.meth = LOCATE_compiling___compiling_icode___IIntValue___compile_to_c;
15549 fra.me.has_broke = 0;
15550 fra.me.REG_size = 3;
15551 fra.me.nitni_local_ref_head = NULL;
15552 fra.me.REG[0] = NIT_NULL;
15553 fra.me.REG[1] = NIT_NULL;
15554 fra.me.REG[2] = NIT_NULL;
15555 fra.me.REG[0] = p0;
15556 fra.me.REG[1] = p1;
15557 /* compiling/compiling_icode.nit:917 */
15558 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15559 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15560 /* compiling/compiling_icode.nit:918 */
15561 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15562 /* compiling/compiling_icode.nit:919 */
15563 if (!once_value_1) {
15564 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
15565 REGB0 = TAG_Int(8);
15566 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15567 once_value_1 = fra.me.REG[2];
15568 register_static_object(&once_value_1);
15569 } else fra.me.REG[2] = once_value_1;
15570 fra.me.REG[2] = fra.me.REG[2];
15571 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15572 fra.me.REG[0] = CALL_icode___icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
15573 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15574 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15575 if (!once_value_2) {
15576 fra.me.REG[2] = BOX_NativeString(")");
15577 REGB0 = TAG_Int(1);
15578 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15579 once_value_2 = fra.me.REG[2];
15580 register_static_object(&once_value_2);
15581 } else fra.me.REG[2] = once_value_2;
15582 fra.me.REG[2] = fra.me.REG[2];
15583 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15584 stack_frame_head = fra.me.prev;
15585 return;
15586 }
15587 static const char LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c[] = "compiling_icode::IBoolValue::(compiling_icode::ICode::compile_to_c)";
15588 void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
15589 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15590 val_t REGB0;
15591 val_t tmp;
15592 static val_t once_value_1; /* Once value */
15593 static val_t once_value_2; /* Once value */
15594 static val_t once_value_3; /* Once value */
15595 static val_t once_value_4; /* Once value */
15596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15597 fra.me.file = LOCATE_compiling___compiling_icode;
15598 fra.me.line = 924;
15599 fra.me.meth = LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c;
15600 fra.me.has_broke = 0;
15601 fra.me.REG_size = 3;
15602 fra.me.nitni_local_ref_head = NULL;
15603 fra.me.REG[0] = NIT_NULL;
15604 fra.me.REG[1] = NIT_NULL;
15605 fra.me.REG[2] = NIT_NULL;
15606 fra.me.REG[0] = p0;
15607 fra.me.REG[1] = p1;
15608 /* compiling/compiling_icode.nit:926 */
15609 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15610 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15611 /* compiling/compiling_icode.nit:927 */
15612 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15613 /* compiling/compiling_icode.nit:928 */
15614 if (!once_value_1) {
15615 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
15616 REGB0 = TAG_Int(9);
15617 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15618 once_value_1 = fra.me.REG[2];
15619 register_static_object(&once_value_1);
15620 } else fra.me.REG[2] = once_value_1;
15621 fra.me.REG[2] = fra.me.REG[2];
15622 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15623 /* compiling/compiling_icode.nit:929 */
15624 REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
15625 if (UNTAG_Bool(REGB0)) {
15626 if (!once_value_2) {
15627 fra.me.REG[0] = BOX_NativeString("1");
15628 REGB0 = TAG_Int(1);
15629 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15630 once_value_2 = fra.me.REG[0];
15631 register_static_object(&once_value_2);
15632 } else fra.me.REG[0] = once_value_2;
15633 fra.me.REG[0] = fra.me.REG[0];
15634 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15635 } else {
15636 if (!once_value_3) {
15637 fra.me.REG[0] = BOX_NativeString("0");
15638 REGB0 = TAG_Int(1);
15639 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15640 once_value_3 = fra.me.REG[0];
15641 register_static_object(&once_value_3);
15642 } else fra.me.REG[0] = once_value_3;
15643 fra.me.REG[0] = fra.me.REG[0];
15644 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15645 }
15646 /* compiling/compiling_icode.nit:930 */
15647 if (!once_value_4) {
15648 fra.me.REG[0] = BOX_NativeString(")");
15649 REGB0 = TAG_Int(1);
15650 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15651 once_value_4 = fra.me.REG[0];
15652 register_static_object(&once_value_4);
15653 } else fra.me.REG[0] = once_value_4;
15654 fra.me.REG[0] = fra.me.REG[0];
15655 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15656 stack_frame_head = fra.me.prev;
15657 return;
15658 }
15659 static const char LOCATE_compiling___compiling_icode___ICharValue___compile_to_c[] = "compiling_icode::ICharValue::(compiling_icode::ICode::compile_to_c)";
15660 void compiling___compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
15661 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15662 val_t REGB0;
15663 val_t tmp;
15664 static val_t once_value_1; /* Once value */
15665 static val_t once_value_2; /* Once value */
15666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15667 fra.me.file = LOCATE_compiling___compiling_icode;
15668 fra.me.line = 935;
15669 fra.me.meth = LOCATE_compiling___compiling_icode___ICharValue___compile_to_c;
15670 fra.me.has_broke = 0;
15671 fra.me.REG_size = 3;
15672 fra.me.nitni_local_ref_head = NULL;
15673 fra.me.REG[0] = NIT_NULL;
15674 fra.me.REG[1] = NIT_NULL;
15675 fra.me.REG[2] = NIT_NULL;
15676 fra.me.REG[0] = p0;
15677 fra.me.REG[1] = p1;
15678 /* compiling/compiling_icode.nit:937 */
15679 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15680 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15681 /* compiling/compiling_icode.nit:938 */
15682 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15683 /* compiling/compiling_icode.nit:939 */
15684 if (!once_value_1) {
15685 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
15686 REGB0 = TAG_Int(9);
15687 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15688 once_value_1 = fra.me.REG[2];
15689 register_static_object(&once_value_1);
15690 } else fra.me.REG[2] = once_value_1;
15691 fra.me.REG[2] = fra.me.REG[2];
15692 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15693 fra.me.REG[0] = CALL_icode___icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
15694 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15695 if (!once_value_2) {
15696 fra.me.REG[2] = BOX_NativeString(")");
15697 REGB0 = TAG_Int(1);
15698 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15699 once_value_2 = fra.me.REG[2];
15700 register_static_object(&once_value_2);
15701 } else fra.me.REG[2] = once_value_2;
15702 fra.me.REG[2] = fra.me.REG[2];
15703 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15704 stack_frame_head = fra.me.prev;
15705 return;
15706 }
15707 static const char LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c[] = "compiling_icode::IFloatValue::(compiling_icode::ICode::compile_to_c)";
15708 void compiling___compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
15709 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15710 val_t REGB0;
15711 val_t tmp;
15712 static val_t once_value_1; /* Once value */
15713 static val_t once_value_2; /* Once value */
15714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15715 fra.me.file = LOCATE_compiling___compiling_icode;
15716 fra.me.line = 944;
15717 fra.me.meth = LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c;
15718 fra.me.has_broke = 0;
15719 fra.me.REG_size = 3;
15720 fra.me.nitni_local_ref_head = NULL;
15721 fra.me.REG[0] = NIT_NULL;
15722 fra.me.REG[1] = NIT_NULL;
15723 fra.me.REG[2] = NIT_NULL;
15724 fra.me.REG[0] = p0;
15725 fra.me.REG[1] = p1;
15726 /* compiling/compiling_icode.nit:946 */
15727 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15728 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15729 /* compiling/compiling_icode.nit:947 */
15730 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15731 /* compiling/compiling_icode.nit:948 */
15732 if (!once_value_1) {
15733 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
15734 REGB0 = TAG_Int(10);
15735 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15736 once_value_1 = fra.me.REG[2];
15737 register_static_object(&once_value_1);
15738 } else fra.me.REG[2] = once_value_1;
15739 fra.me.REG[2] = fra.me.REG[2];
15740 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15741 fra.me.REG[0] = CALL_icode___icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
15742 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15743 if (!once_value_2) {
15744 fra.me.REG[2] = BOX_NativeString(")");
15745 REGB0 = TAG_Int(1);
15746 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15747 once_value_2 = fra.me.REG[2];
15748 register_static_object(&once_value_2);
15749 } else fra.me.REG[2] = once_value_2;
15750 fra.me.REG[2] = fra.me.REG[2];
15751 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15752 stack_frame_head = fra.me.prev;
15753 return;
15754 }
15755 static const char LOCATE_compiling___compiling_icode___IStringValue___compile_to_c[] = "compiling_icode::IStringValue::(compiling_icode::ICode::compile_to_c)";
15756 void compiling___compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
15757 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15758 val_t REGB0;
15759 val_t tmp;
15760 static val_t once_value_1; /* Once value */
15761 static val_t once_value_2; /* Once value */
15762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15763 fra.me.file = LOCATE_compiling___compiling_icode;
15764 fra.me.line = 953;
15765 fra.me.meth = LOCATE_compiling___compiling_icode___IStringValue___compile_to_c;
15766 fra.me.has_broke = 0;
15767 fra.me.REG_size = 3;
15768 fra.me.nitni_local_ref_head = NULL;
15769 fra.me.REG[0] = NIT_NULL;
15770 fra.me.REG[1] = NIT_NULL;
15771 fra.me.REG[2] = NIT_NULL;
15772 fra.me.REG[0] = p0;
15773 fra.me.REG[1] = p1;
15774 /* compiling/compiling_icode.nit:955 */
15775 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15776 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15777 /* compiling/compiling_icode.nit:956 */
15778 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15779 /* compiling/compiling_icode.nit:957 */
15780 if (!once_value_1) {
15781 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
15782 REGB0 = TAG_Int(18);
15783 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15784 once_value_1 = fra.me.REG[2];
15785 register_static_object(&once_value_1);
15786 } else fra.me.REG[2] = once_value_1;
15787 fra.me.REG[2] = fra.me.REG[2];
15788 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15789 fra.me.REG[0] = CALL_icode___icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
15790 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15791 if (!once_value_2) {
15792 fra.me.REG[2] = BOX_NativeString("\")");
15793 REGB0 = TAG_Int(2);
15794 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15795 once_value_2 = fra.me.REG[2];
15796 register_static_object(&once_value_2);
15797 } else fra.me.REG[2] = once_value_2;
15798 fra.me.REG[2] = fra.me.REG[2];
15799 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15800 stack_frame_head = fra.me.prev;
15801 return;
15802 }
15803 static const char LOCATE_compiling___compiling_icode___IAbort___compile_to_c[] = "compiling_icode::IAbort::(compiling_icode::ICode::compile_to_c)";
15804 void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
15805 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15806 val_t REGB0;
15807 val_t REGB1;
15808 val_t REGB2;
15809 val_t tmp;
15810 static val_t once_value_1; /* Once value */
15811 static val_t once_value_3; /* Once value */
15812 static val_t once_value_5; /* Once value */
15813 static val_t once_value_6; /* Once value */
15814 static val_t once_value_7; /* Once value */
15815 static val_t once_value_8; /* Once value */
15816 static val_t once_value_9; /* Once value */
15817 static val_t once_value_10; /* Once value */
15818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15819 fra.me.file = LOCATE_compiling___compiling_icode;
15820 fra.me.line = 962;
15821 fra.me.meth = LOCATE_compiling___compiling_icode___IAbort___compile_to_c;
15822 fra.me.has_broke = 0;
15823 fra.me.REG_size = 3;
15824 fra.me.nitni_local_ref_head = NULL;
15825 fra.me.REG[0] = NIT_NULL;
15826 fra.me.REG[1] = NIT_NULL;
15827 fra.me.REG[2] = NIT_NULL;
15828 fra.me.REG[0] = p0;
15829 fra.me.REG[1] = p1;
15830 /* compiling/compiling_icode.nit:964 */
15831 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15832 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15833 /* compiling/compiling_icode.nit:965 */
15834 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15835 /* compiling/compiling_icode.nit:966 */
15836 if (!once_value_1) {
15837 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
15838 REGB0 = TAG_Int(11);
15839 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15840 once_value_1 = fra.me.REG[2];
15841 register_static_object(&once_value_1);
15842 } else fra.me.REG[2] = once_value_1;
15843 fra.me.REG[2] = fra.me.REG[2];
15844 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15845 /* compiling/compiling_icode.nit:967 */
15846 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15847 REGB0 = TAG_Int(0);
15848 /* ../lib/standard/collection/array.nit:280 */
15849 REGB1 = TAG_Int(0);
15850 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15851 if (UNTAG_Bool(REGB2)) {
15852 } else {
15853 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15854 }
15855 /* ../lib/standard/kernel.nit:236 */
15856 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
15857 /* ../lib/standard/collection/array.nit:280 */
15858 if (UNTAG_Bool(REGB1)) {
15859 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15860 if (UNTAG_Bool(REGB1)) {
15861 } else {
15862 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15863 }
15864 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15865 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15866 if (UNTAG_Bool(REGB2)) {
15867 } else {
15868 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15869 }
15870 /* ../lib/standard/kernel.nit:235 */
15871 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15872 } else {
15873 /* ../lib/standard/collection/array.nit:280 */
15874 REGB2 = TAG_Bool(0);
15875 REGB1 = REGB2;
15876 }
15877 if (UNTAG_Bool(REGB1)) {
15878 } else {
15879 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15880 }
15881 /* ../lib/standard/collection/array.nit:281 */
15882 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15883 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15884 if (UNTAG_Bool(REGB1)) {
15885 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15886 }
15887 /* ../lib/standard/collection/array.nit:718 */
15888 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
15889 /* ../lib/standard/collection/array.nit:281 */
15890 goto label2;
15891 label2: while(0);
15892 /* compiling/compiling_icode.nit:967 */
15893 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15894 /* compiling/compiling_icode.nit:968 */
15895 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15896 /* ../lib/standard/collection/array.nit:24 */
15897 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15898 if (UNTAG_Bool(REGB0)) {
15899 } else {
15900 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
15901 }
15902 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15903 /* compiling/compiling_icode.nit:968 */
15904 REGB1 = TAG_Int(1);
15905 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15906 if (UNTAG_Bool(REGB2)) {
15907 } else {
15908 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15909 }
15910 /* ../lib/standard/kernel.nit:237 */
15911 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
15912 /* compiling/compiling_icode.nit:968 */
15913 if (UNTAG_Bool(REGB1)) {
15914 /* compiling/compiling_icode.nit:969 */
15915 if (!once_value_3) {
15916 fra.me.REG[2] = BOX_NativeString("\", \"");
15917 REGB1 = TAG_Int(4);
15918 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15919 once_value_3 = fra.me.REG[2];
15920 register_static_object(&once_value_3);
15921 } else fra.me.REG[2] = once_value_3;
15922 fra.me.REG[2] = fra.me.REG[2];
15923 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15924 /* compiling/compiling_icode.nit:970 */
15925 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15926 REGB1 = TAG_Int(1);
15927 /* ../lib/standard/collection/array.nit:280 */
15928 REGB0 = TAG_Int(0);
15929 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15930 if (UNTAG_Bool(REGB2)) {
15931 } else {
15932 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15933 }
15934 /* ../lib/standard/kernel.nit:236 */
15935 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
15936 /* ../lib/standard/collection/array.nit:280 */
15937 if (UNTAG_Bool(REGB0)) {
15938 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15939 if (UNTAG_Bool(REGB0)) {
15940 } else {
15941 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15942 }
15943 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15944 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15945 if (UNTAG_Bool(REGB2)) {
15946 } else {
15947 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15948 }
15949 /* ../lib/standard/kernel.nit:235 */
15950 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
15951 } else {
15952 /* ../lib/standard/collection/array.nit:280 */
15953 REGB2 = TAG_Bool(0);
15954 REGB0 = REGB2;
15955 }
15956 if (UNTAG_Bool(REGB0)) {
15957 } else {
15958 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15959 }
15960 /* ../lib/standard/collection/array.nit:281 */
15961 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15963 if (UNTAG_Bool(REGB0)) {
15964 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15965 }
15966 /* ../lib/standard/collection/array.nit:718 */
15967 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15968 /* ../lib/standard/collection/array.nit:281 */
15969 goto label4;
15970 label4: while(0);
15971 /* compiling/compiling_icode.nit:970 */
15972 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15973 /* compiling/compiling_icode.nit:971 */
15974 if (!once_value_5) {
15975 fra.me.REG[2] = BOX_NativeString("\"");
15976 REGB1 = TAG_Int(1);
15977 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15978 once_value_5 = fra.me.REG[2];
15979 register_static_object(&once_value_5);
15980 } else fra.me.REG[2] = once_value_5;
15981 fra.me.REG[2] = fra.me.REG[2];
15982 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15983 } else {
15984 /* compiling/compiling_icode.nit:973 */
15985 if (!once_value_6) {
15986 fra.me.REG[2] = BOX_NativeString("\", NULL");
15987 REGB1 = TAG_Int(7);
15988 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15989 once_value_6 = fra.me.REG[2];
15990 register_static_object(&once_value_6);
15991 } else fra.me.REG[2] = once_value_6;
15992 fra.me.REG[2] = fra.me.REG[2];
15993 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15994 }
15995 /* compiling/compiling_icode.nit:975 */
15996 if (!once_value_7) {
15997 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
15998 REGB1 = TAG_Int(9);
15999 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16000 once_value_7 = fra.me.REG[2];
16001 register_static_object(&once_value_7);
16002 } else fra.me.REG[2] = once_value_7;
16003 fra.me.REG[2] = fra.me.REG[2];
16004 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16005 /* compiling/compiling_icode.nit:976 */
16006 fra.me.REG[2] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
16007 fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
16008 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16009 /* compiling/compiling_icode.nit:977 */
16010 fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16011 /* compiling/compiling_icode.nit:978 */
16012 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16013 if (UNTAG_Bool(REGB1)) {
16014 } else {
16015 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16016 if (UNTAG_Bool(REGB0)) {
16017 REGB0 = TAG_Bool(0);
16018 REGB1 = REGB0;
16019 } else {
16020 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
16021 REGB1 = REGB0;
16022 }
16023 }
16024 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
16025 if (UNTAG_Bool(REGB1)) {
16026 /* compiling/compiling_icode.nit:979 */
16027 if (!once_value_8) {
16028 fra.me.REG[2] = BOX_NativeString(", ");
16029 REGB1 = TAG_Int(2);
16030 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16031 once_value_8 = fra.me.REG[2];
16032 register_static_object(&once_value_8);
16033 } else fra.me.REG[2] = once_value_8;
16034 fra.me.REG[2] = fra.me.REG[2];
16035 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16036 /* compiling/compiling_icode.nit:980 */
16037 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16038 if (UNTAG_Bool(REGB1)) {
16039 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 980);
16040 }
16041 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
16042 fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
16043 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16044 } else {
16045 /* compiling/compiling_icode.nit:982 */
16046 if (!once_value_9) {
16047 fra.me.REG[0] = BOX_NativeString(", 0");
16048 REGB1 = TAG_Int(3);
16049 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
16050 once_value_9 = fra.me.REG[0];
16051 register_static_object(&once_value_9);
16052 } else fra.me.REG[0] = once_value_9;
16053 fra.me.REG[0] = fra.me.REG[0];
16054 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16055 }
16056 /* compiling/compiling_icode.nit:984 */
16057 if (!once_value_10) {
16058 fra.me.REG[0] = BOX_NativeString(");\n");
16059 REGB1 = TAG_Int(3);
16060 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
16061 once_value_10 = fra.me.REG[0];
16062 register_static_object(&once_value_10);
16063 } else fra.me.REG[0] = once_value_10;
16064 fra.me.REG[0] = fra.me.REG[0];
16065 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16066 stack_frame_head = fra.me.prev;
16067 return;
16068 }
16069 static const char LOCATE_compiling___compiling_icode___IMove___compile_to_c[] = "compiling_icode::IMove::(compiling_icode::ICode::compile_to_c)";
16070 void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
16071 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16072 val_t REGB0;
16073 val_t REGB1;
16074 val_t tmp;
16075 static val_t once_value_2; /* Once value */
16076 static val_t once_value_3; /* Once value */
16077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16078 fra.me.file = LOCATE_compiling___compiling_icode;
16079 fra.me.line = 989;
16080 fra.me.meth = LOCATE_compiling___compiling_icode___IMove___compile_to_c;
16081 fra.me.has_broke = 0;
16082 fra.me.REG_size = 5;
16083 fra.me.nitni_local_ref_head = NULL;
16084 fra.me.REG[0] = NIT_NULL;
16085 fra.me.REG[1] = NIT_NULL;
16086 fra.me.REG[2] = NIT_NULL;
16087 fra.me.REG[3] = NIT_NULL;
16088 fra.me.REG[4] = NIT_NULL;
16089 fra.me.REG[0] = p0;
16090 fra.me.REG[1] = p1;
16091 /* compiling/compiling_icode.nit:989 */
16092 fra.me.REG[2] = fra.me.REG[0];
16093 /* compiling/compiling_icode.nit:991 */
16094 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
16095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16096 if (UNTAG_Bool(REGB0)) {
16097 goto label1;
16098 }
16099 /* compiling/compiling_icode.nit:992 */
16100 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[2])(fra.me.REG[2]);
16101 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16102 /* compiling/compiling_icode.nit:993 */
16103 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
16104 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*/;
16105 if (UNTAG_Bool(REGB0)) {
16106 } else {
16107 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 993);
16108 }
16109 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16110 /* compiling/compiling_icode.nit:994 */
16111 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
16112 if (UNTAG_Bool(REGB0)) {
16113 } else {
16114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16115 REGB0 = REGB1;
16116 }
16117 if (UNTAG_Bool(REGB0)) {
16118 goto label1;
16119 }
16120 /* compiling/compiling_icode.nit:995 */
16121 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
16122 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16123 /* compiling/compiling_icode.nit:996 */
16124 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16125 /* compiling/compiling_icode.nit:997 */
16126 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16127 /* compiling/compiling_icode.nit:998 */
16128 if (!once_value_2) {
16129 fra.me.REG[4] = BOX_NativeString(" = ");
16130 REGB0 = TAG_Int(3);
16131 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16132 once_value_2 = fra.me.REG[4];
16133 register_static_object(&once_value_2);
16134 } else fra.me.REG[4] = once_value_2;
16135 fra.me.REG[4] = fra.me.REG[4];
16136 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16137 /* compiling/compiling_icode.nit:999 */
16138 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16139 /* compiling/compiling_icode.nit:1000 */
16140 if (!once_value_3) {
16141 fra.me.REG[3] = BOX_NativeString(";\n");
16142 REGB0 = TAG_Int(2);
16143 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16144 once_value_3 = fra.me.REG[3];
16145 register_static_object(&once_value_3);
16146 } else fra.me.REG[3] = once_value_3;
16147 fra.me.REG[3] = fra.me.REG[3];
16148 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16149 label1: while(0);
16150 stack_frame_head = fra.me.prev;
16151 return;
16152 }
16153 static const char LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c[] = "compiling_icode::IAttrRead::(compiling_icode::ICode::compile_to_c)";
16154 void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
16155 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16156 val_t REGB0;
16157 val_t tmp;
16158 static val_t once_value_2; /* Once value */
16159 static val_t once_value_3; /* Once value */
16160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16161 fra.me.file = LOCATE_compiling___compiling_icode;
16162 fra.me.line = 1005;
16163 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c;
16164 fra.me.has_broke = 0;
16165 fra.me.REG_size = 4;
16166 fra.me.nitni_local_ref_head = NULL;
16167 fra.me.REG[0] = NIT_NULL;
16168 fra.me.REG[1] = NIT_NULL;
16169 fra.me.REG[2] = NIT_NULL;
16170 fra.me.REG[3] = NIT_NULL;
16171 fra.me.REG[0] = p0;
16172 fra.me.REG[1] = p1;
16173 /* compiling/compiling_icode.nit:1007 */
16174 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16175 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16176 if (UNTAG_Bool(REGB0)) {
16177 goto label1;
16178 }
16179 /* compiling/compiling_icode.nit:1008 */
16180 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16181 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16182 /* compiling/compiling_icode.nit:1009 */
16183 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16184 /* compiling/compiling_icode.nit:1010 */
16185 fra.me.REG[3] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
16186 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16187 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16188 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16189 /* compiling/compiling_icode.nit:1011 */
16190 if (!once_value_2) {
16191 fra.me.REG[3] = BOX_NativeString("(");
16192 REGB0 = TAG_Int(1);
16193 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16194 once_value_2 = fra.me.REG[3];
16195 register_static_object(&once_value_2);
16196 } else fra.me.REG[3] = once_value_2;
16197 fra.me.REG[3] = fra.me.REG[3];
16198 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16199 /* compiling/compiling_icode.nit:1012 */
16200 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16201 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16202 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16203 /* compiling/compiling_icode.nit:1013 */
16204 if (!once_value_3) {
16205 fra.me.REG[0] = BOX_NativeString(")");
16206 REGB0 = TAG_Int(1);
16207 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16208 once_value_3 = fra.me.REG[0];
16209 register_static_object(&once_value_3);
16210 } else fra.me.REG[0] = once_value_3;
16211 fra.me.REG[0] = fra.me.REG[0];
16212 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16213 label1: while(0);
16214 stack_frame_head = fra.me.prev;
16215 return;
16216 }
16217 static const char LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c[] = "compiling_icode::IAttrIsset::(compiling_icode::ICode::compile_to_c)";
16218 void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
16219 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16220 val_t REGB0;
16221 val_t tmp;
16222 static val_t once_value_2; /* Once value */
16223 static val_t once_value_3; /* Once value */
16224 static val_t once_value_4; /* Once value */
16225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16226 fra.me.file = LOCATE_compiling___compiling_icode;
16227 fra.me.line = 1018;
16228 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c;
16229 fra.me.has_broke = 0;
16230 fra.me.REG_size = 4;
16231 fra.me.nitni_local_ref_head = NULL;
16232 fra.me.REG[0] = NIT_NULL;
16233 fra.me.REG[1] = NIT_NULL;
16234 fra.me.REG[2] = NIT_NULL;
16235 fra.me.REG[3] = NIT_NULL;
16236 fra.me.REG[0] = p0;
16237 fra.me.REG[1] = p1;
16238 /* compiling/compiling_icode.nit:1020 */
16239 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16241 if (UNTAG_Bool(REGB0)) {
16242 goto label1;
16243 }
16244 /* compiling/compiling_icode.nit:1021 */
16245 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16246 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16247 /* compiling/compiling_icode.nit:1022 */
16248 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16249 /* compiling/compiling_icode.nit:1023 */
16250 if (!once_value_2) {
16251 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16252 REGB0 = TAG_Int(9);
16253 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16254 once_value_2 = fra.me.REG[3];
16255 register_static_object(&once_value_2);
16256 } else fra.me.REG[3] = once_value_2;
16257 fra.me.REG[3] = fra.me.REG[3];
16258 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16259 /* compiling/compiling_icode.nit:1024 */
16260 fra.me.REG[3] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
16261 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16262 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16263 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16264 /* compiling/compiling_icode.nit:1025 */
16265 if (!once_value_3) {
16266 fra.me.REG[3] = BOX_NativeString("(");
16267 REGB0 = TAG_Int(1);
16268 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16269 once_value_3 = fra.me.REG[3];
16270 register_static_object(&once_value_3);
16271 } else fra.me.REG[3] = once_value_3;
16272 fra.me.REG[3] = fra.me.REG[3];
16273 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16274 /* compiling/compiling_icode.nit:1026 */
16275 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16276 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16277 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16278 /* compiling/compiling_icode.nit:1027 */
16279 if (!once_value_4) {
16280 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
16281 REGB0 = TAG_Int(12);
16282 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16283 once_value_4 = fra.me.REG[0];
16284 register_static_object(&once_value_4);
16285 } else fra.me.REG[0] = once_value_4;
16286 fra.me.REG[0] = fra.me.REG[0];
16287 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16288 label1: while(0);
16289 stack_frame_head = fra.me.prev;
16290 return;
16291 }
16292 static const char LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c[] = "compiling_icode::IAttrWrite::(compiling_icode::ICode::compile_to_c)";
16293 void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
16294 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16295 val_t REGB0;
16296 val_t tmp;
16297 static val_t once_value_1; /* Once value */
16298 static val_t once_value_2; /* Once value */
16299 static val_t once_value_3; /* Once value */
16300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16301 fra.me.file = LOCATE_compiling___compiling_icode;
16302 fra.me.line = 1032;
16303 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c;
16304 fra.me.has_broke = 0;
16305 fra.me.REG_size = 4;
16306 fra.me.nitni_local_ref_head = NULL;
16307 fra.me.REG[0] = NIT_NULL;
16308 fra.me.REG[1] = NIT_NULL;
16309 fra.me.REG[2] = NIT_NULL;
16310 fra.me.REG[3] = NIT_NULL;
16311 fra.me.REG[0] = p0;
16312 fra.me.REG[1] = p1;
16313 /* compiling/compiling_icode.nit:1034 */
16314 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16315 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16316 /* compiling/compiling_icode.nit:1035 */
16317 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16318 /* compiling/compiling_icode.nit:1036 */
16319 fra.me.REG[3] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
16320 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16321 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16322 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16323 /* compiling/compiling_icode.nit:1037 */
16324 if (!once_value_1) {
16325 fra.me.REG[3] = BOX_NativeString("(");
16326 REGB0 = TAG_Int(1);
16327 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16328 once_value_1 = fra.me.REG[3];
16329 register_static_object(&once_value_1);
16330 } else fra.me.REG[3] = once_value_1;
16331 fra.me.REG[3] = fra.me.REG[3];
16332 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16333 /* compiling/compiling_icode.nit:1038 */
16334 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16335 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16336 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16337 /* compiling/compiling_icode.nit:1039 */
16338 if (!once_value_2) {
16339 fra.me.REG[3] = BOX_NativeString(") = ");
16340 REGB0 = TAG_Int(4);
16341 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16342 once_value_2 = fra.me.REG[3];
16343 register_static_object(&once_value_2);
16344 } else fra.me.REG[3] = once_value_2;
16345 fra.me.REG[3] = fra.me.REG[3];
16346 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16347 /* compiling/compiling_icode.nit:1040 */
16348 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16349 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16350 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16351 /* compiling/compiling_icode.nit:1041 */
16352 if (!once_value_3) {
16353 fra.me.REG[0] = BOX_NativeString(";\n");
16354 REGB0 = TAG_Int(2);
16355 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16356 once_value_3 = fra.me.REG[0];
16357 register_static_object(&once_value_3);
16358 } else fra.me.REG[0] = once_value_3;
16359 fra.me.REG[0] = fra.me.REG[0];
16360 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16361 stack_frame_head = fra.me.prev;
16362 return;
16363 }
16364 static const char LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c[] = "compiling_icode::ITypeCheck::(compiling_icode::ICode::compile_to_c)";
16365 void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
16366 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16367 val_t REGB0;
16368 val_t REGB1;
16369 val_t tmp;
16370 static val_t once_value_2; /* Once value */
16371 static val_t once_value_3; /* Once value */
16372 static val_t once_value_4; /* Once value */
16373 static val_t once_value_5; /* Once value */
16374 static val_t once_value_6; /* Once value */
16375 static val_t once_value_7; /* Once value */
16376 static val_t once_value_8; /* Once value */
16377 static val_t once_value_9; /* Once value */
16378 static val_t once_value_10; /* Once value */
16379 static val_t once_value_11; /* Once value */
16380 static val_t once_value_12; /* Once value */
16381 static val_t once_value_13; /* Once value */
16382 static val_t once_value_14; /* Once value */
16383 static val_t once_value_15; /* Once value */
16384 static val_t once_value_16; /* Once value */
16385 static val_t once_value_17; /* Once value */
16386 static val_t once_value_18; /* Once value */
16387 static val_t once_value_19; /* Once value */
16388 static val_t once_value_20; /* Once value */
16389 static val_t once_value_21; /* Once value */
16390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16391 fra.me.file = LOCATE_compiling___compiling_icode;
16392 fra.me.line = 1046;
16393 fra.me.meth = LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c;
16394 fra.me.has_broke = 0;
16395 fra.me.REG_size = 6;
16396 fra.me.nitni_local_ref_head = NULL;
16397 fra.me.REG[0] = NIT_NULL;
16398 fra.me.REG[1] = NIT_NULL;
16399 fra.me.REG[2] = NIT_NULL;
16400 fra.me.REG[3] = NIT_NULL;
16401 fra.me.REG[4] = NIT_NULL;
16402 fra.me.REG[5] = NIT_NULL;
16403 fra.me.REG[0] = p0;
16404 fra.me.REG[1] = p1;
16405 /* compiling/compiling_icode.nit:1048 */
16406 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16408 if (UNTAG_Bool(REGB0)) {
16409 goto label1;
16410 }
16411 /* compiling/compiling_icode.nit:1049 */
16412 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16413 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16414 /* compiling/compiling_icode.nit:1050 */
16415 fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16416 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16417 /* compiling/compiling_icode.nit:1051 */
16418 fra.me.REG[3] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16419 /* compiling/compiling_icode.nit:1052 */
16420 if (!once_value_2) {
16421 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
16422 REGB0 = TAG_Int(9);
16423 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16424 once_value_2 = fra.me.REG[4];
16425 register_static_object(&once_value_2);
16426 } else fra.me.REG[4] = once_value_2;
16427 fra.me.REG[4] = fra.me.REG[4];
16428 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16429 /* compiling/compiling_icode.nit:1053 */
16430 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16431 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16432 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16433 if (UNTAG_Bool(REGB0)) {
16434 /* compiling/compiling_icode.nit:1054 */
16435 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16436 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16437 if (UNTAG_Bool(REGB0)) {
16438 /* compiling/compiling_icode.nit:1055 */
16439 if (!once_value_3) {
16440 fra.me.REG[4] = BOX_NativeString("(");
16441 REGB0 = TAG_Int(1);
16442 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16443 once_value_3 = fra.me.REG[4];
16444 register_static_object(&once_value_3);
16445 } else fra.me.REG[4] = once_value_3;
16446 fra.me.REG[4] = fra.me.REG[4];
16447 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16448 /* compiling/compiling_icode.nit:1056 */
16449 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16450 /* compiling/compiling_icode.nit:1057 */
16451 if (!once_value_4) {
16452 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
16453 REGB0 = TAG_Int(15);
16454 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16455 once_value_4 = fra.me.REG[4];
16456 register_static_object(&once_value_4);
16457 } else fra.me.REG[4] = once_value_4;
16458 fra.me.REG[4] = fra.me.REG[4];
16459 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16460 } else {
16461 /* compiling/compiling_icode.nit:1058 */
16462 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16463 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
16464 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16465 fra.me.REG[5] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
16466 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
16467 if (UNTAG_Bool(REGB0)) {
16468 } else {
16469 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
16470 REGB0 = REGB1;
16471 }
16472 if (UNTAG_Bool(REGB0)) {
16473 /* compiling/compiling_icode.nit:1059 */
16474 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16475 /* compiling/compiling_icode.nit:1060 */
16476 if (!once_value_5) {
16477 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
16478 REGB0 = TAG_Int(11);
16479 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16480 once_value_5 = fra.me.REG[5];
16481 register_static_object(&once_value_5);
16482 } else fra.me.REG[5] = once_value_5;
16483 fra.me.REG[5] = fra.me.REG[5];
16484 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16485 /* compiling/compiling_icode.nit:1061 */
16486 goto label1;
16487 } else {
16488 /* compiling/compiling_icode.nit:1063 */
16489 if (!once_value_6) {
16490 fra.me.REG[5] = BOX_NativeString("(");
16491 REGB0 = TAG_Int(1);
16492 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16493 once_value_6 = fra.me.REG[5];
16494 register_static_object(&once_value_6);
16495 } else fra.me.REG[5] = once_value_6;
16496 fra.me.REG[5] = fra.me.REG[5];
16497 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16498 /* compiling/compiling_icode.nit:1064 */
16499 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16500 /* compiling/compiling_icode.nit:1065 */
16501 if (!once_value_7) {
16502 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
16503 REGB0 = TAG_Int(15);
16504 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16505 once_value_7 = fra.me.REG[5];
16506 register_static_object(&once_value_7);
16507 } else fra.me.REG[5] = once_value_7;
16508 fra.me.REG[5] = fra.me.REG[5];
16509 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16510 }
16511 }
16512 }
16513 /* compiling/compiling_icode.nit:1069 */
16514 fra.me.REG[5] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16515 /* compiling/compiling_icode.nit:1070 */
16516 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
16517 if (UNTAG_Bool(REGB0)) {
16518 /* compiling/compiling_icode.nit:1071 */
16519 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16520 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16521 /* compiling/compiling_icode.nit:1072 */
16522 fra.me.REG[1] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[5])(fra.me.REG[5]);
16523 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
16524 /* compiling/compiling_icode.nit:1073 */
16525 if (!once_value_8) {
16526 fra.me.REG[4] = BOX_NativeString("VAL_ISA(");
16527 REGB0 = TAG_Int(8);
16528 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16529 once_value_8 = fra.me.REG[4];
16530 register_static_object(&once_value_8);
16531 } else fra.me.REG[4] = once_value_8;
16532 fra.me.REG[4] = fra.me.REG[4];
16533 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16534 /* compiling/compiling_icode.nit:1074 */
16535 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16536 /* compiling/compiling_icode.nit:1075 */
16537 if (!once_value_9) {
16538 fra.me.REG[4] = BOX_NativeString(", ");
16539 REGB0 = TAG_Int(2);
16540 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16541 once_value_9 = fra.me.REG[4];
16542 register_static_object(&once_value_9);
16543 } else fra.me.REG[4] = once_value_9;
16544 fra.me.REG[4] = fra.me.REG[4];
16545 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16546 /* compiling/compiling_icode.nit:1076 */
16547 fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[1])(fra.me.REG[1]);
16548 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16549 /* compiling/compiling_icode.nit:1077 */
16550 if (!once_value_10) {
16551 fra.me.REG[4] = BOX_NativeString("(");
16552 REGB0 = TAG_Int(1);
16553 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16554 once_value_10 = fra.me.REG[4];
16555 register_static_object(&once_value_10);
16556 } else fra.me.REG[4] = once_value_10;
16557 fra.me.REG[4] = fra.me.REG[4];
16558 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16559 /* compiling/compiling_icode.nit:1078 */
16560 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16561 /* compiling/compiling_icode.nit:1079 */
16562 if (!once_value_11) {
16563 fra.me.REG[4] = BOX_NativeString(")");
16564 REGB0 = TAG_Int(1);
16565 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16566 once_value_11 = fra.me.REG[4];
16567 register_static_object(&once_value_11);
16568 } else fra.me.REG[4] = once_value_11;
16569 fra.me.REG[4] = fra.me.REG[4];
16570 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16571 /* compiling/compiling_icode.nit:1080 */
16572 if (!once_value_12) {
16573 fra.me.REG[4] = BOX_NativeString(", ");
16574 REGB0 = TAG_Int(2);
16575 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16576 once_value_12 = fra.me.REG[4];
16577 register_static_object(&once_value_12);
16578 } else fra.me.REG[4] = once_value_12;
16579 fra.me.REG[4] = fra.me.REG[4];
16580 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16581 /* compiling/compiling_icode.nit:1081 */
16582 fra.me.REG[1] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[1])(fra.me.REG[1]);
16583 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16584 /* compiling/compiling_icode.nit:1082 */
16585 if (!once_value_13) {
16586 fra.me.REG[1] = BOX_NativeString("(");
16587 REGB0 = TAG_Int(1);
16588 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16589 once_value_13 = fra.me.REG[1];
16590 register_static_object(&once_value_13);
16591 } else fra.me.REG[1] = once_value_13;
16592 fra.me.REG[1] = fra.me.REG[1];
16593 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16594 /* compiling/compiling_icode.nit:1083 */
16595 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16596 /* compiling/compiling_icode.nit:1084 */
16597 if (!once_value_14) {
16598 fra.me.REG[0] = BOX_NativeString(")");
16599 REGB0 = TAG_Int(1);
16600 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16601 once_value_14 = fra.me.REG[0];
16602 register_static_object(&once_value_14);
16603 } else fra.me.REG[0] = once_value_14;
16604 fra.me.REG[0] = fra.me.REG[0];
16605 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16606 /* compiling/compiling_icode.nit:1085 */
16607 if (!once_value_15) {
16608 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16609 REGB0 = TAG_Int(10);
16610 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16611 once_value_15 = fra.me.REG[0];
16612 register_static_object(&once_value_15);
16613 } else fra.me.REG[0] = once_value_15;
16614 fra.me.REG[0] = fra.me.REG[0];
16615 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16616 /* compiling/compiling_icode.nit:1086 */
16617 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16618 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16619 /* compiling/compiling_icode.nit:1087 */
16620 if (!once_value_16) {
16621 fra.me.REG[0] = BOX_NativeString("*/");
16622 REGB0 = TAG_Int(2);
16623 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16624 once_value_16 = fra.me.REG[0];
16625 register_static_object(&once_value_16);
16626 } else fra.me.REG[0] = once_value_16;
16627 fra.me.REG[0] = fra.me.REG[0];
16628 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16629 } else {
16630 /* compiling/compiling_icode.nit:1089 */
16631 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
16632 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
16633 /* compiling/compiling_icode.nit:1090 */
16634 if (!once_value_17) {
16635 fra.me.REG[1] = BOX_NativeString("VAL_ISA(");
16636 REGB0 = TAG_Int(8);
16637 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16638 once_value_17 = fra.me.REG[1];
16639 register_static_object(&once_value_17);
16640 } else fra.me.REG[1] = once_value_17;
16641 fra.me.REG[1] = fra.me.REG[1];
16642 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16643 /* compiling/compiling_icode.nit:1091 */
16644 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16645 /* compiling/compiling_icode.nit:1092 */
16646 if (!once_value_18) {
16647 fra.me.REG[2] = BOX_NativeString(", ");
16648 REGB0 = TAG_Int(2);
16649 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16650 once_value_18 = fra.me.REG[2];
16651 register_static_object(&once_value_18);
16652 } else fra.me.REG[2] = once_value_18;
16653 fra.me.REG[2] = fra.me.REG[2];
16654 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16655 /* compiling/compiling_icode.nit:1093 */
16656 fra.me.REG[2] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
16657 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16658 /* compiling/compiling_icode.nit:1094 */
16659 if (!once_value_19) {
16660 fra.me.REG[2] = BOX_NativeString(", ");
16661 REGB0 = TAG_Int(2);
16662 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16663 once_value_19 = fra.me.REG[2];
16664 register_static_object(&once_value_19);
16665 } else fra.me.REG[2] = once_value_19;
16666 fra.me.REG[2] = fra.me.REG[2];
16667 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16668 /* compiling/compiling_icode.nit:1095 */
16669 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
16670 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16671 /* compiling/compiling_icode.nit:1096 */
16672 if (!once_value_20) {
16673 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16674 REGB0 = TAG_Int(10);
16675 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16676 once_value_20 = fra.me.REG[0];
16677 register_static_object(&once_value_20);
16678 } else fra.me.REG[0] = once_value_20;
16679 fra.me.REG[0] = fra.me.REG[0];
16680 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16681 /* compiling/compiling_icode.nit:1097 */
16682 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16683 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16684 /* compiling/compiling_icode.nit:1098 */
16685 if (!once_value_21) {
16686 fra.me.REG[5] = BOX_NativeString("*/");
16687 REGB0 = TAG_Int(2);
16688 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16689 once_value_21 = fra.me.REG[5];
16690 register_static_object(&once_value_21);
16691 } else fra.me.REG[5] = once_value_21;
16692 fra.me.REG[5] = fra.me.REG[5];
16693 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16694 }
16695 label1: while(0);
16696 stack_frame_head = fra.me.prev;
16697 return;
16698 }
16699 static const char LOCATE_compiling___compiling_icode___IIs___compile_to_c[] = "compiling_icode::IIs::(compiling_icode::ICode::compile_to_c)";
16700 void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
16701 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16702 val_t REGB0;
16703 val_t tmp;
16704 static val_t once_value_2; /* Once value */
16705 static val_t once_value_3; /* Once value */
16706 static val_t once_value_4; /* Once value */
16707 static val_t once_value_5; /* Once value */
16708 static val_t once_value_6; /* Once value */
16709 static val_t once_value_7; /* Once value */
16710 static val_t once_value_8; /* Once value */
16711 static val_t once_value_9; /* Once value */
16712 static val_t once_value_10; /* Once value */
16713 static val_t once_value_11; /* Once value */
16714 static val_t once_value_12; /* Once value */
16715 static val_t once_value_13; /* Once value */
16716 static val_t once_value_14; /* Once value */
16717 static val_t once_value_15; /* Once value */
16718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16719 fra.me.file = LOCATE_compiling___compiling_icode;
16720 fra.me.line = 1104;
16721 fra.me.meth = LOCATE_compiling___compiling_icode___IIs___compile_to_c;
16722 fra.me.has_broke = 0;
16723 fra.me.REG_size = 6;
16724 fra.me.nitni_local_ref_head = NULL;
16725 fra.me.REG[0] = NIT_NULL;
16726 fra.me.REG[1] = NIT_NULL;
16727 fra.me.REG[2] = NIT_NULL;
16728 fra.me.REG[3] = NIT_NULL;
16729 fra.me.REG[4] = NIT_NULL;
16730 fra.me.REG[5] = NIT_NULL;
16731 fra.me.REG[0] = p0;
16732 fra.me.REG[1] = p1;
16733 /* compiling/compiling_icode.nit:1106 */
16734 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16736 if (UNTAG_Bool(REGB0)) {
16737 goto label1;
16738 }
16739 /* compiling/compiling_icode.nit:1107 */
16740 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16741 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16742 /* compiling/compiling_icode.nit:1108 */
16743 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16744 /* compiling/compiling_icode.nit:1109 */
16745 if (!once_value_2) {
16746 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16747 REGB0 = TAG_Int(9);
16748 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16749 once_value_2 = fra.me.REG[3];
16750 register_static_object(&once_value_2);
16751 } else fra.me.REG[3] = once_value_2;
16752 fra.me.REG[3] = fra.me.REG[3];
16753 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16754 /* compiling/compiling_icode.nit:1110 */
16755 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16756 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
16757 /* compiling/compiling_icode.nit:1111 */
16758 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16759 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16760 /* compiling/compiling_icode.nit:1112 */
16761 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16762 if (UNTAG_Bool(REGB0)) {
16763 /* compiling/compiling_icode.nit:1113 */
16764 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16765 if (UNTAG_Bool(REGB0)) {
16766 /* compiling/compiling_icode.nit:1114 */
16767 if (!once_value_3) {
16768 fra.me.REG[5] = BOX_NativeString("1)");
16769 REGB0 = TAG_Int(2);
16770 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16771 once_value_3 = fra.me.REG[5];
16772 register_static_object(&once_value_3);
16773 } else fra.me.REG[5] = once_value_3;
16774 fra.me.REG[5] = fra.me.REG[5];
16775 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16776 /* compiling/compiling_icode.nit:1115 */
16777 goto label1;
16778 } else {
16779 /* compiling/compiling_icode.nit:1116 */
16780 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16781 if (UNTAG_Bool(REGB0)) {
16782 /* compiling/compiling_icode.nit:1117 */
16783 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16784 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
16785 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16786 /* compiling/compiling_icode.nit:1118 */
16787 if (!once_value_4) {
16788 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
16789 REGB0 = TAG_Int(11);
16790 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16791 once_value_4 = fra.me.REG[5];
16792 register_static_object(&once_value_4);
16793 } else fra.me.REG[5] = once_value_4;
16794 fra.me.REG[5] = fra.me.REG[5];
16795 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16796 /* compiling/compiling_icode.nit:1119 */
16797 goto label1;
16798 } else {
16799 /* compiling/compiling_icode.nit:1121 */
16800 if (!once_value_5) {
16801 fra.me.REG[5] = BOX_NativeString("0)");
16802 REGB0 = TAG_Int(2);
16803 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16804 once_value_5 = fra.me.REG[5];
16805 register_static_object(&once_value_5);
16806 } else fra.me.REG[5] = once_value_5;
16807 fra.me.REG[5] = fra.me.REG[5];
16808 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16809 /* compiling/compiling_icode.nit:1122 */
16810 goto label1;
16811 }
16812 }
16813 } else {
16814 /* compiling/compiling_icode.nit:1124 */
16815 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
16816 if (UNTAG_Bool(REGB0)) {
16817 /* compiling/compiling_icode.nit:1125 */
16818 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16819 if (UNTAG_Bool(REGB0)) {
16820 /* compiling/compiling_icode.nit:1126 */
16821 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16822 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16823 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16824 /* compiling/compiling_icode.nit:1127 */
16825 if (!once_value_6) {
16826 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
16827 REGB0 = TAG_Int(11);
16828 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16829 once_value_6 = fra.me.REG[3];
16830 register_static_object(&once_value_6);
16831 } else fra.me.REG[3] = once_value_6;
16832 fra.me.REG[3] = fra.me.REG[3];
16833 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16834 /* compiling/compiling_icode.nit:1128 */
16835 goto label1;
16836 } else {
16837 /* compiling/compiling_icode.nit:1129 */
16838 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16839 if (UNTAG_Bool(REGB0)) {
16840 /* compiling/compiling_icode.nit:1130 */
16841 if (!once_value_7) {
16842 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
16843 REGB0 = TAG_Int(12);
16844 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16845 once_value_7 = fra.me.REG[3];
16846 register_static_object(&once_value_7);
16847 } else fra.me.REG[3] = once_value_7;
16848 fra.me.REG[3] = fra.me.REG[3];
16849 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16850 } else {
16851 /* compiling/compiling_icode.nit:1132 */
16852 if (!once_value_8) {
16853 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
16854 REGB0 = TAG_Int(12);
16855 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16856 once_value_8 = fra.me.REG[3];
16857 register_static_object(&once_value_8);
16858 } else fra.me.REG[3] = once_value_8;
16859 fra.me.REG[3] = fra.me.REG[3];
16860 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16861 /* compiling/compiling_icode.nit:1133 */
16862 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16863 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16864 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16865 /* compiling/compiling_icode.nit:1134 */
16866 if (!once_value_9) {
16867 fra.me.REG[3] = BOX_NativeString(",");
16868 REGB0 = TAG_Int(1);
16869 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16870 once_value_9 = fra.me.REG[3];
16871 register_static_object(&once_value_9);
16872 } else fra.me.REG[3] = once_value_9;
16873 fra.me.REG[3] = fra.me.REG[3];
16874 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16875 /* compiling/compiling_icode.nit:1135 */
16876 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16877 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16878 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16879 /* compiling/compiling_icode.nit:1136 */
16880 if (!once_value_10) {
16881 fra.me.REG[3] = BOX_NativeString("))");
16882 REGB0 = TAG_Int(2);
16883 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16884 once_value_10 = fra.me.REG[3];
16885 register_static_object(&once_value_10);
16886 } else fra.me.REG[3] = once_value_10;
16887 fra.me.REG[3] = fra.me.REG[3];
16888 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16889 /* compiling/compiling_icode.nit:1137 */
16890 goto label1;
16891 }
16892 }
16893 } else {
16894 /* compiling/compiling_icode.nit:1140 */
16895 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16896 if (UNTAG_Bool(REGB0)) {
16897 /* compiling/compiling_icode.nit:1141 */
16898 if (!once_value_11) {
16899 fra.me.REG[3] = BOX_NativeString("0)");
16900 REGB0 = TAG_Int(2);
16901 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16902 once_value_11 = fra.me.REG[3];
16903 register_static_object(&once_value_11);
16904 } else fra.me.REG[3] = once_value_11;
16905 fra.me.REG[3] = fra.me.REG[3];
16906 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16907 /* compiling/compiling_icode.nit:1142 */
16908 goto label1;
16909 } else {
16910 /* compiling/compiling_icode.nit:1143 */
16911 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16912 if (UNTAG_Bool(REGB0)) {
16913 /* compiling/compiling_icode.nit:1144 */
16914 if (!once_value_12) {
16915 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
16916 REGB0 = TAG_Int(12);
16917 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16918 once_value_12 = fra.me.REG[4];
16919 register_static_object(&once_value_12);
16920 } else fra.me.REG[4] = once_value_12;
16921 fra.me.REG[4] = fra.me.REG[4];
16922 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16923 } else {
16924 /* compiling/compiling_icode.nit:1146 */
16925 if (!once_value_13) {
16926 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
16927 REGB0 = TAG_Int(12);
16928 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16929 once_value_13 = fra.me.REG[4];
16930 register_static_object(&once_value_13);
16931 } else fra.me.REG[4] = once_value_13;
16932 fra.me.REG[4] = fra.me.REG[4];
16933 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16934 }
16935 }
16936 }
16937 }
16938 /* compiling/compiling_icode.nit:1149 */
16939 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16940 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16941 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16942 /* compiling/compiling_icode.nit:1150 */
16943 if (!once_value_14) {
16944 fra.me.REG[4] = BOX_NativeString(",");
16945 REGB0 = TAG_Int(1);
16946 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16947 once_value_14 = fra.me.REG[4];
16948 register_static_object(&once_value_14);
16949 } else fra.me.REG[4] = once_value_14;
16950 fra.me.REG[4] = fra.me.REG[4];
16951 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16952 /* compiling/compiling_icode.nit:1151 */
16953 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16954 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16955 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16956 /* compiling/compiling_icode.nit:1152 */
16957 if (!once_value_15) {
16958 fra.me.REG[0] = BOX_NativeString("))");
16959 REGB0 = TAG_Int(2);
16960 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16961 once_value_15 = fra.me.REG[0];
16962 register_static_object(&once_value_15);
16963 } else fra.me.REG[0] = once_value_15;
16964 fra.me.REG[0] = fra.me.REG[0];
16965 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16966 label1: while(0);
16967 stack_frame_head = fra.me.prev;
16968 return;
16969 }
16970 static const char LOCATE_compiling___compiling_icode___INot___compile_to_c[] = "compiling_icode::INot::(compiling_icode::ICode::compile_to_c)";
16971 void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
16972 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16973 val_t REGB0;
16974 val_t tmp;
16975 static val_t once_value_2; /* Once value */
16976 static val_t once_value_3; /* Once value */
16977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16978 fra.me.file = LOCATE_compiling___compiling_icode;
16979 fra.me.line = 1157;
16980 fra.me.meth = LOCATE_compiling___compiling_icode___INot___compile_to_c;
16981 fra.me.has_broke = 0;
16982 fra.me.REG_size = 4;
16983 fra.me.nitni_local_ref_head = NULL;
16984 fra.me.REG[0] = NIT_NULL;
16985 fra.me.REG[1] = NIT_NULL;
16986 fra.me.REG[2] = NIT_NULL;
16987 fra.me.REG[3] = NIT_NULL;
16988 fra.me.REG[0] = p0;
16989 fra.me.REG[1] = p1;
16990 /* compiling/compiling_icode.nit:1159 */
16991 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16993 if (UNTAG_Bool(REGB0)) {
16994 goto label1;
16995 }
16996 /* compiling/compiling_icode.nit:1160 */
16997 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16998 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16999 /* compiling/compiling_icode.nit:1161 */
17000 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17001 /* compiling/compiling_icode.nit:1162 */
17002 if (!once_value_2) {
17003 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
17004 REGB0 = TAG_Int(21);
17005 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17006 once_value_2 = fra.me.REG[3];
17007 register_static_object(&once_value_2);
17008 } else fra.me.REG[3] = once_value_2;
17009 fra.me.REG[3] = fra.me.REG[3];
17010 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17011 /* compiling/compiling_icode.nit:1163 */
17012 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
17013 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17014 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17015 /* compiling/compiling_icode.nit:1164 */
17016 if (!once_value_3) {
17017 fra.me.REG[0] = BOX_NativeString("))");
17018 REGB0 = TAG_Int(2);
17019 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17020 once_value_3 = fra.me.REG[0];
17021 register_static_object(&once_value_3);
17022 } else fra.me.REG[0] = once_value_3;
17023 fra.me.REG[0] = fra.me.REG[0];
17024 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17025 label1: while(0);
17026 stack_frame_head = fra.me.prev;
17027 return;
17028 }
17029 static const char LOCATE_compiling___compiling_icode___IOnce___compile_to_c[] = "compiling_icode::IOnce::(compiling_icode::ICode::compile_to_c)";
17030 void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
17031 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
17032 val_t REGB0;
17033 val_t REGB1;
17034 val_t tmp;
17035 static val_t once_value_1; /* Once value */
17036 static val_t once_value_2; /* Once value */
17037 static val_t once_value_3; /* Once value */
17038 static val_t once_value_4; /* Once value */
17039 static val_t once_value_5; /* Once value */
17040 static val_t once_value_6; /* Once value */
17041 static val_t once_value_7; /* Once value */
17042 static val_t once_value_8; /* Once value */
17043 static val_t once_value_9; /* Once value */
17044 static val_t once_value_10; /* Once value */
17045 static val_t once_value_11; /* Once value */
17046 static val_t once_value_12; /* Once value */
17047 static val_t once_value_13; /* Once value */
17048 static val_t once_value_14; /* Once value */
17049 static val_t once_value_15; /* Once value */
17050 static val_t once_value_16; /* Once value */
17051 static val_t once_value_17; /* Once value */
17052 static val_t once_value_18; /* Once value */
17053 static val_t once_value_19; /* Once value */
17054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17055 fra.me.file = LOCATE_compiling___compiling_icode;
17056 fra.me.line = 1169;
17057 fra.me.meth = LOCATE_compiling___compiling_icode___IOnce___compile_to_c;
17058 fra.me.has_broke = 0;
17059 fra.me.REG_size = 6;
17060 fra.me.nitni_local_ref_head = NULL;
17061 fra.me.REG[0] = NIT_NULL;
17062 fra.me.REG[1] = NIT_NULL;
17063 fra.me.REG[2] = NIT_NULL;
17064 fra.me.REG[3] = NIT_NULL;
17065 fra.me.REG[4] = NIT_NULL;
17066 fra.me.REG[5] = NIT_NULL;
17067 fra.me.REG[0] = p0;
17068 fra.me.REG[1] = p1;
17069 /* compiling/compiling_icode.nit:1169 */
17070 fra.me.REG[2] = fra.me.REG[0];
17071 /* compiling/compiling_icode.nit:1171 */
17072 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
17073 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17074 /* compiling/compiling_icode.nit:1172 */
17075 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17076 /* compiling/compiling_icode.nit:1173 */
17077 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
17078 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*/;
17079 if (UNTAG_Bool(REGB1)) {
17080 } else {
17081 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 1173);
17082 }
17083 /* compiling/compiling_icode.nit:1174 */
17084 fra.me.REG[0] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17085 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
17086 if (UNTAG_Bool(REGB1)) {
17087 /* compiling/compiling_icode.nit:1175 */
17088 REGB1 = TAG_Int(5);
17089 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17090 if (!once_value_1) {
17091 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17092 REGB1 = TAG_Int(24);
17093 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17094 once_value_1 = fra.me.REG[4];
17095 register_static_object(&once_value_1);
17096 } else fra.me.REG[4] = once_value_1;
17097 fra.me.REG[4] = fra.me.REG[4];
17098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17099 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17101 if (!once_value_2) {
17102 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
17103 REGB1 = TAG_Int(23);
17104 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17105 once_value_2 = fra.me.REG[4];
17106 register_static_object(&once_value_2);
17107 } else fra.me.REG[4] = once_value_2;
17108 fra.me.REG[4] = fra.me.REG[4];
17109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17110 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17111 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17112 if (!once_value_3) {
17113 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17114 REGB1 = TAG_Int(18);
17115 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17116 once_value_3 = fra.me.REG[4];
17117 register_static_object(&once_value_3);
17118 } else fra.me.REG[4] = once_value_3;
17119 fra.me.REG[4] = fra.me.REG[4];
17120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17121 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17122 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17123 /* compiling/compiling_icode.nit:1176 */
17124 REGB1 = TAG_Int(3);
17125 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17126 if (!once_value_4) {
17127 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
17128 REGB1 = TAG_Int(15);
17129 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17130 once_value_4 = fra.me.REG[4];
17131 register_static_object(&once_value_4);
17132 } else fra.me.REG[4] = once_value_4;
17133 fra.me.REG[4] = fra.me.REG[4];
17134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17135 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17136 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17137 if (!once_value_5) {
17138 fra.me.REG[4] = BOX_NativeString(") {");
17139 REGB1 = TAG_Int(3);
17140 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17141 once_value_5 = fra.me.REG[4];
17142 register_static_object(&once_value_5);
17143 } else fra.me.REG[4] = once_value_5;
17144 fra.me.REG[4] = fra.me.REG[4];
17145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17146 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17147 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17148 } else {
17149 /* compiling/compiling_icode.nit:1179 */
17150 REGB1 = TAG_Int(3);
17151 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17152 if (!once_value_6) {
17153 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17154 REGB1 = TAG_Int(24);
17155 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17156 once_value_6 = fra.me.REG[4];
17157 register_static_object(&once_value_6);
17158 } else fra.me.REG[4] = once_value_6;
17159 fra.me.REG[4] = fra.me.REG[4];
17160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17161 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17163 if (!once_value_7) {
17164 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17165 REGB1 = TAG_Int(18);
17166 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17167 once_value_7 = fra.me.REG[4];
17168 register_static_object(&once_value_7);
17169 } else fra.me.REG[4] = once_value_7;
17170 fra.me.REG[4] = fra.me.REG[4];
17171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17172 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17173 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17174 /* compiling/compiling_icode.nit:1180 */
17175 REGB1 = TAG_Int(3);
17176 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17177 if (!once_value_8) {
17178 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
17179 REGB1 = TAG_Int(16);
17180 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17181 once_value_8 = fra.me.REG[4];
17182 register_static_object(&once_value_8);
17183 } else fra.me.REG[4] = once_value_8;
17184 fra.me.REG[4] = fra.me.REG[4];
17185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17186 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17188 if (!once_value_9) {
17189 fra.me.REG[4] = BOX_NativeString(") {");
17190 REGB1 = TAG_Int(3);
17191 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17192 once_value_9 = fra.me.REG[4];
17193 register_static_object(&once_value_9);
17194 } else fra.me.REG[4] = once_value_9;
17195 fra.me.REG[4] = fra.me.REG[4];
17196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17197 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17198 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17199 }
17200 /* compiling/compiling_icode.nit:1182 */
17201 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17202 /* compiling/compiling_icode.nit:1183 */
17203 fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
17204 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17205 /* compiling/compiling_icode.nit:1184 */
17206 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17207 /* compiling/compiling_icode.nit:1185 */
17208 REGB1 = TAG_Int(5);
17209 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17210 if (!once_value_10) {
17211 fra.me.REG[5] = BOX_NativeString("once_value_");
17212 REGB1 = TAG_Int(11);
17213 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17214 once_value_10 = fra.me.REG[5];
17215 register_static_object(&once_value_10);
17216 } else fra.me.REG[5] = once_value_10;
17217 fra.me.REG[5] = fra.me.REG[5];
17218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17219 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17221 if (!once_value_11) {
17222 fra.me.REG[5] = BOX_NativeString(" = ");
17223 REGB1 = TAG_Int(3);
17224 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17225 once_value_11 = fra.me.REG[5];
17226 register_static_object(&once_value_11);
17227 } else fra.me.REG[5] = once_value_11;
17228 fra.me.REG[5] = fra.me.REG[5];
17229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
17231 if (!once_value_12) {
17232 fra.me.REG[5] = BOX_NativeString(";");
17233 REGB1 = TAG_Int(1);
17234 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17235 once_value_12 = fra.me.REG[5];
17236 register_static_object(&once_value_12);
17237 } else fra.me.REG[5] = once_value_12;
17238 fra.me.REG[5] = fra.me.REG[5];
17239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17240 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17241 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17242 /* compiling/compiling_icode.nit:1186 */
17243 REGB1 = TAG_Int(3);
17244 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17245 if (!once_value_13) {
17246 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
17247 REGB1 = TAG_Int(35);
17248 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17249 once_value_13 = fra.me.REG[5];
17250 register_static_object(&once_value_13);
17251 } else fra.me.REG[5] = once_value_13;
17252 fra.me.REG[5] = fra.me.REG[5];
17253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17254 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17256 if (!once_value_14) {
17257 fra.me.REG[5] = BOX_NativeString(");");
17258 REGB1 = TAG_Int(2);
17259 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17260 once_value_14 = fra.me.REG[5];
17261 register_static_object(&once_value_14);
17262 } else fra.me.REG[5] = once_value_14;
17263 fra.me.REG[5] = fra.me.REG[5];
17264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17265 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17266 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17267 /* compiling/compiling_icode.nit:1187 */
17268 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17269 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
17270 if (UNTAG_Bool(REGB1)) {
17271 REGB1 = TAG_Int(3);
17272 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17273 if (!once_value_15) {
17274 fra.me.REG[4] = BOX_NativeString("once_bool_");
17275 REGB1 = TAG_Int(10);
17276 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17277 once_value_15 = fra.me.REG[4];
17278 register_static_object(&once_value_15);
17279 } else fra.me.REG[4] = once_value_15;
17280 fra.me.REG[4] = fra.me.REG[4];
17281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17282 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17283 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17284 if (!once_value_16) {
17285 fra.me.REG[4] = BOX_NativeString(" = true;");
17286 REGB1 = TAG_Int(8);
17287 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17288 once_value_16 = fra.me.REG[4];
17289 register_static_object(&once_value_16);
17290 } else fra.me.REG[4] = once_value_16;
17291 fra.me.REG[4] = fra.me.REG[4];
17292 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17293 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17294 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17295 }
17296 /* compiling/compiling_icode.nit:1188 */
17297 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17298 /* compiling/compiling_icode.nit:1189 */
17299 REGB1 = TAG_Int(5);
17300 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17301 if (!once_value_17) {
17302 fra.me.REG[4] = BOX_NativeString("} else ");
17303 REGB1 = TAG_Int(7);
17304 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17305 once_value_17 = fra.me.REG[4];
17306 register_static_object(&once_value_17);
17307 } else fra.me.REG[4] = once_value_17;
17308 fra.me.REG[4] = fra.me.REG[4];
17309 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17311 if (!once_value_18) {
17312 fra.me.REG[4] = BOX_NativeString(" = once_value_");
17313 REGB1 = TAG_Int(14);
17314 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17315 once_value_18 = fra.me.REG[4];
17316 register_static_object(&once_value_18);
17317 } else fra.me.REG[4] = once_value_18;
17318 fra.me.REG[4] = fra.me.REG[4];
17319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17320 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17322 if (!once_value_19) {
17323 fra.me.REG[4] = BOX_NativeString(";");
17324 REGB0 = TAG_Int(1);
17325 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17326 once_value_19 = fra.me.REG[4];
17327 register_static_object(&once_value_19);
17328 } else fra.me.REG[4] = once_value_19;
17329 fra.me.REG[4] = fra.me.REG[4];
17330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17331 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17332 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17333 /* compiling/compiling_icode.nit:1190 */
17334 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
17335 /* compiling/compiling_icode.nit:1191 */
17336 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17337 stack_frame_head = fra.me.prev;
17338 return;
17339 }
17340 static const char LOCATE_compiling___compiling_icode___IClosCall___compile_to_c[] = "compiling_icode::IClosCall::(compiling_icode::ICode::compile_to_c)";
17341 void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
17342 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17343 val_t REGB0;
17344 val_t REGB1;
17345 val_t tmp;
17346 static val_t once_value_1; /* Once value */
17347 static val_t once_value_2; /* Once value */
17348 static val_t once_value_3; /* Once value */
17349 static val_t once_value_4; /* Once value */
17350 static val_t once_value_5; /* Once value */
17351 static val_t once_value_6; /* Once value */
17352 static val_t once_value_7; /* Once value */
17353 static val_t once_value_8; /* Once value */
17354 static val_t once_value_9; /* Once value */
17355 static val_t once_value_10; /* Once value */
17356 static val_t once_value_11; /* Once value */
17357 static val_t once_value_12; /* Once value */
17358 static val_t once_value_13; /* Once value */
17359 static val_t once_value_14; /* Once value */
17360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17361 fra.me.file = LOCATE_compiling___compiling_icode;
17362 fra.me.line = 1196;
17363 fra.me.meth = LOCATE_compiling___compiling_icode___IClosCall___compile_to_c;
17364 fra.me.has_broke = 0;
17365 fra.me.REG_size = 7;
17366 fra.me.nitni_local_ref_head = NULL;
17367 fra.me.REG[0] = NIT_NULL;
17368 fra.me.REG[1] = NIT_NULL;
17369 fra.me.REG[2] = NIT_NULL;
17370 fra.me.REG[3] = NIT_NULL;
17371 fra.me.REG[4] = NIT_NULL;
17372 fra.me.REG[5] = NIT_NULL;
17373 fra.me.REG[6] = NIT_NULL;
17374 fra.me.REG[0] = p0;
17375 fra.me.REG[1] = p1;
17376 /* compiling/compiling_icode.nit:1198 */
17377 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17378 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17379 /* compiling/compiling_icode.nit:1201 */
17380 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17381 if (UNTAG_Bool(REGB0)) {
17382 /* compiling/compiling_icode.nit:1202 */
17383 REGB0 = TAG_Int(3);
17384 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17385 if (!once_value_1) {
17386 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17387 REGB0 = TAG_Int(22);
17388 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17389 once_value_1 = fra.me.REG[3];
17390 register_static_object(&once_value_1);
17391 } else fra.me.REG[3] = once_value_1;
17392 fra.me.REG[3] = fra.me.REG[3];
17393 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17394 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17395 fra.me.REG[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17396 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17398 if (!once_value_2) {
17399 fra.me.REG[4] = BOX_NativeString("]");
17400 REGB0 = TAG_Int(1);
17401 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17402 once_value_2 = fra.me.REG[4];
17403 register_static_object(&once_value_2);
17404 } else fra.me.REG[4] = once_value_2;
17405 fra.me.REG[4] = fra.me.REG[4];
17406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17407 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17408 /* compiling/compiling_icode.nit:1203 */
17409 REGB0 = TAG_Int(1);
17410 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17411 if (!once_value_3) {
17412 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
17413 REGB0 = TAG_Int(20);
17414 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17415 once_value_3 = fra.me.REG[3];
17416 register_static_object(&once_value_3);
17417 } else fra.me.REG[3] = once_value_3;
17418 fra.me.REG[3] = fra.me.REG[3];
17419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17420 } else {
17421 /* compiling/compiling_icode.nit:1205 */
17422 REGB0 = TAG_Int(3);
17423 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17424 if (!once_value_4) {
17425 fra.me.REG[5] = BOX_NativeString("CREG[");
17426 REGB0 = TAG_Int(5);
17427 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17428 once_value_4 = fra.me.REG[5];
17429 register_static_object(&once_value_4);
17430 } else fra.me.REG[5] = once_value_4;
17431 fra.me.REG[5] = fra.me.REG[5];
17432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17433 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17434 fra.me.REG[6] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17435 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17437 if (!once_value_5) {
17438 fra.me.REG[6] = BOX_NativeString("]");
17439 REGB0 = TAG_Int(1);
17440 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17441 once_value_5 = fra.me.REG[6];
17442 register_static_object(&once_value_5);
17443 } else fra.me.REG[6] = once_value_5;
17444 fra.me.REG[6] = fra.me.REG[6];
17445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17446 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17447 fra.me.REG[2] = fra.me.REG[3];
17448 /* compiling/compiling_icode.nit:1206 */
17449 REGB0 = TAG_Int(1);
17450 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17451 if (!once_value_6) {
17452 fra.me.REG[6] = BOX_NativeString("closctx_param");
17453 REGB0 = TAG_Int(13);
17454 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17455 once_value_6 = fra.me.REG[6];
17456 register_static_object(&once_value_6);
17457 } else fra.me.REG[6] = once_value_6;
17458 fra.me.REG[6] = fra.me.REG[6];
17459 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17460 fra.me.REG[4] = fra.me.REG[3];
17461 }
17462 /* compiling/compiling_icode.nit:1208 */
17463 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
17464 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17465 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17466 /* compiling/compiling_icode.nit:1210 */
17467 REGB0 = TAG_Int(7);
17468 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17469 if (!once_value_7) {
17470 fra.me.REG[6] = BOX_NativeString("((");
17471 REGB0 = TAG_Int(2);
17472 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17473 once_value_7 = fra.me.REG[6];
17474 register_static_object(&once_value_7);
17475 } else fra.me.REG[6] = once_value_7;
17476 fra.me.REG[6] = fra.me.REG[6];
17477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17478 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
17479 fra.me.REG[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17480 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
17481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17482 if (!once_value_8) {
17483 fra.me.REG[5] = BOX_NativeString(")(");
17484 REGB0 = TAG_Int(2);
17485 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17486 once_value_8 = fra.me.REG[5];
17487 register_static_object(&once_value_8);
17488 } else fra.me.REG[5] = once_value_8;
17489 fra.me.REG[5] = fra.me.REG[5];
17490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17492 if (!once_value_9) {
17493 fra.me.REG[2] = BOX_NativeString("))(");
17494 REGB0 = TAG_Int(3);
17495 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17496 once_value_9 = fra.me.REG[2];
17497 register_static_object(&once_value_9);
17498 } else fra.me.REG[2] = once_value_9;
17499 fra.me.REG[2] = fra.me.REG[2];
17500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17501 if (!once_value_10) {
17502 fra.me.REG[2] = BOX_NativeString(", ");
17503 REGB0 = TAG_Int(2);
17504 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17505 once_value_10 = fra.me.REG[2];
17506 register_static_object(&once_value_10);
17507 } else fra.me.REG[2] = once_value_10;
17508 fra.me.REG[2] = fra.me.REG[2];
17509 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
17510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17511 if (!once_value_11) {
17512 fra.me.REG[2] = BOX_NativeString(")");
17513 REGB0 = TAG_Int(1);
17514 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17515 once_value_11 = fra.me.REG[2];
17516 register_static_object(&once_value_11);
17517 } else fra.me.REG[2] = once_value_11;
17518 fra.me.REG[2] = fra.me.REG[2];
17519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17520 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17521 /* compiling/compiling_icode.nit:1211 */
17522 fra.me.REG[2] = NEW_Writer_compiling_writer___Writer___init();
17523 /* compiling/compiling_icode.nit:1212 */
17524 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17525 /* compiling/compiling_icode.nit:1213 */
17526 CALL_compiling___compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
17527 /* compiling/compiling_icode.nit:1216 */
17528 REGB0 = TAG_Int(3);
17529 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17530 if (!once_value_12) {
17531 fra.me.REG[3] = BOX_NativeString("if (");
17532 REGB0 = TAG_Int(4);
17533 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17534 once_value_12 = fra.me.REG[3];
17535 register_static_object(&once_value_12);
17536 } else fra.me.REG[3] = once_value_12;
17537 fra.me.REG[3] = fra.me.REG[3];
17538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17539 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
17540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17541 if (!once_value_13) {
17542 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
17543 REGB0 = TAG_Int(14);
17544 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17545 once_value_13 = fra.me.REG[4];
17546 register_static_object(&once_value_13);
17547 } else fra.me.REG[4] = once_value_13;
17548 fra.me.REG[4] = fra.me.REG[4];
17549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17550 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17551 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17552 /* compiling/compiling_icode.nit:1217 */
17553 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17554 /* compiling/compiling_icode.nit:1218 */
17555 fra.me.REG[0] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
17556 /* compiling/compiling_icode.nit:1219 */
17557 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17558 if (UNTAG_Bool(REGB0)) {
17559 } else {
17560 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17561 if (UNTAG_Bool(REGB1)) {
17562 REGB1 = TAG_Bool(0);
17563 REGB0 = REGB1;
17564 } else {
17565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
17566 REGB0 = REGB1;
17567 }
17568 }
17569 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17570 if (UNTAG_Bool(REGB0)) {
17571 /* compiling/compiling_icode.nit:1220 */
17572 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17573 if (UNTAG_Bool(REGB0)) {
17574 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 1220);
17575 }
17576 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17577 }
17578 /* compiling/compiling_icode.nit:1222 */
17579 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
17580 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
17581 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17582 /* compiling/compiling_icode.nit:1223 */
17583 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17584 /* compiling/compiling_icode.nit:1224 */
17585 if (!once_value_14) {
17586 fra.me.REG[0] = BOX_NativeString("}");
17587 REGB0 = TAG_Int(1);
17588 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17589 once_value_14 = fra.me.REG[0];
17590 register_static_object(&once_value_14);
17591 } else fra.me.REG[0] = once_value_14;
17592 fra.me.REG[0] = fra.me.REG[0];
17593 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17594 stack_frame_head = fra.me.prev;
17595 return;
17596 }
17597 static const char LOCATE_compiling___compiling_icode___IHasClos___compile_to_c[] = "compiling_icode::IHasClos::(compiling_icode::ICode::compile_to_c)";
17598 void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
17599 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17600 val_t REGB0;
17601 val_t tmp;
17602 static val_t once_value_2; /* Once value */
17603 static val_t once_value_3; /* Once value */
17604 static val_t once_value_4; /* Once value */
17605 static val_t once_value_5; /* Once value */
17606 static val_t once_value_6; /* Once value */
17607 static val_t once_value_7; /* Once value */
17608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17609 fra.me.file = LOCATE_compiling___compiling_icode;
17610 fra.me.line = 1229;
17611 fra.me.meth = LOCATE_compiling___compiling_icode___IHasClos___compile_to_c;
17612 fra.me.has_broke = 0;
17613 fra.me.REG_size = 5;
17614 fra.me.nitni_local_ref_head = NULL;
17615 fra.me.REG[0] = NIT_NULL;
17616 fra.me.REG[1] = NIT_NULL;
17617 fra.me.REG[2] = NIT_NULL;
17618 fra.me.REG[3] = NIT_NULL;
17619 fra.me.REG[4] = NIT_NULL;
17620 fra.me.REG[0] = p0;
17621 fra.me.REG[1] = p1;
17622 /* compiling/compiling_icode.nit:1231 */
17623 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
17624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17625 if (UNTAG_Bool(REGB0)) {
17626 goto label1;
17627 }
17628 /* compiling/compiling_icode.nit:1232 */
17629 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17630 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17631 /* compiling/compiling_icode.nit:1233 */
17632 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17633 /* compiling/compiling_icode.nit:1234 */
17634 if (!once_value_2) {
17635 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
17636 REGB0 = TAG_Int(9);
17637 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17638 once_value_2 = fra.me.REG[3];
17639 register_static_object(&once_value_2);
17640 } else fra.me.REG[3] = once_value_2;
17641 fra.me.REG[3] = fra.me.REG[3];
17642 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17643 /* compiling/compiling_icode.nit:1235 */
17644 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17645 if (UNTAG_Bool(REGB0)) {
17646 /* compiling/compiling_icode.nit:1236 */
17647 if (!once_value_3) {
17648 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17649 REGB0 = TAG_Int(22);
17650 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17651 once_value_3 = fra.me.REG[3];
17652 register_static_object(&once_value_3);
17653 } else fra.me.REG[3] = once_value_3;
17654 fra.me.REG[3] = fra.me.REG[3];
17655 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17656 /* compiling/compiling_icode.nit:1237 */
17657 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17658 fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17659 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17660 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17661 /* compiling/compiling_icode.nit:1238 */
17662 if (!once_value_4) {
17663 fra.me.REG[4] = BOX_NativeString("]");
17664 REGB0 = TAG_Int(1);
17665 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17666 once_value_4 = fra.me.REG[4];
17667 register_static_object(&once_value_4);
17668 } else fra.me.REG[4] = once_value_4;
17669 fra.me.REG[4] = fra.me.REG[4];
17670 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17671 } else {
17672 /* compiling/compiling_icode.nit:1240 */
17673 if (!once_value_5) {
17674 fra.me.REG[4] = BOX_NativeString("CREG[");
17675 REGB0 = TAG_Int(5);
17676 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17677 once_value_5 = fra.me.REG[4];
17678 register_static_object(&once_value_5);
17679 } else fra.me.REG[4] = once_value_5;
17680 fra.me.REG[4] = fra.me.REG[4];
17681 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17682 /* compiling/compiling_icode.nit:1241 */
17683 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17684 fra.me.REG[0] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17685 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17686 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17687 /* compiling/compiling_icode.nit:1242 */
17688 if (!once_value_6) {
17689 fra.me.REG[0] = BOX_NativeString("]");
17690 REGB0 = TAG_Int(1);
17691 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17692 once_value_6 = fra.me.REG[0];
17693 register_static_object(&once_value_6);
17694 } else fra.me.REG[0] = once_value_6;
17695 fra.me.REG[0] = fra.me.REG[0];
17696 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17697 }
17698 /* compiling/compiling_icode.nit:1244 */
17699 if (!once_value_7) {
17700 fra.me.REG[0] = BOX_NativeString(" != NULL)");
17701 REGB0 = TAG_Int(9);
17702 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17703 once_value_7 = fra.me.REG[0];
17704 register_static_object(&once_value_7);
17705 } else fra.me.REG[0] = once_value_7;
17706 fra.me.REG[0] = fra.me.REG[0];
17707 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17708 label1: while(0);
17709 stack_frame_head = fra.me.prev;
17710 return;
17711 }
17712 static const char LOCATE_compiling___compiling_icode___IClosureDef___compile_closure[] = "compiling_icode::IClosureDef::compile_closure";
17713 val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
17714 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17715 val_t REGB0;
17716 val_t REGB1;
17717 val_t REGB2;
17718 val_t tmp;
17719 static val_t once_value_1; /* Once value */
17720 static val_t once_value_2; /* Once value */
17721 static val_t once_value_3; /* Once value */
17722 static val_t once_value_4; /* Once value */
17723 static val_t once_value_5; /* Once value */
17724 static val_t once_value_6; /* Once value */
17725 static val_t once_value_7; /* Once value */
17726 static val_t once_value_8; /* Once value */
17727 static val_t once_value_9; /* Once value */
17728 static val_t once_value_10; /* Once value */
17729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17730 fra.me.file = LOCATE_compiling___compiling_icode;
17731 fra.me.line = 1249;
17732 fra.me.meth = LOCATE_compiling___compiling_icode___IClosureDef___compile_closure;
17733 fra.me.has_broke = 0;
17734 fra.me.REG_size = 9;
17735 fra.me.nitni_local_ref_head = NULL;
17736 fra.me.REG[0] = NIT_NULL;
17737 fra.me.REG[1] = NIT_NULL;
17738 fra.me.REG[2] = NIT_NULL;
17739 fra.me.REG[3] = NIT_NULL;
17740 fra.me.REG[4] = NIT_NULL;
17741 fra.me.REG[5] = NIT_NULL;
17742 fra.me.REG[6] = NIT_NULL;
17743 fra.me.REG[7] = NIT_NULL;
17744 fra.me.REG[8] = NIT_NULL;
17745 fra.me.REG[0] = p0;
17746 fra.me.REG[1] = p1;
17747 /* compiling/compiling_icode.nit:1253 */
17748 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17749 /* compiling/compiling_icode.nit:1256 */
17750 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17751 /* compiling/compiling_icode.nit:1257 */
17752 REGB1 = TAG_Bool(1);
17753 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
17754 /* compiling/compiling_icode.nit:1260 */
17755 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
17756 /* compiling/compiling_icode.nit:1261 */
17757 fra.me.REG[4] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
17758 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17759 /* compiling/compiling_icode.nit:1264 */
17760 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
17761 /* compiling/compiling_icode.nit:1265 */
17762 fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17763 /* compiling/compiling_icode.nit:1266 */
17764 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
17765 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17766 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17767 /* compiling/compiling_icode.nit:1267 */
17768 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
17769 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17770 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17771 /* compiling/compiling_icode.nit:1270 */
17772 REGB1 = TAG_Int(5);
17773 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17774 if (!once_value_1) {
17775 fra.me.REG[7] = BOX_NativeString("OC_");
17776 REGB1 = TAG_Int(3);
17777 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17778 once_value_1 = fra.me.REG[7];
17779 register_static_object(&once_value_1);
17780 } else fra.me.REG[7] = once_value_1;
17781 fra.me.REG[7] = fra.me.REG[7];
17782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17783 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
17784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17785 if (!once_value_2) {
17786 fra.me.REG[7] = BOX_NativeString("_");
17787 REGB1 = TAG_Int(1);
17788 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17789 once_value_2 = fra.me.REG[7];
17790 register_static_object(&once_value_2);
17791 } else fra.me.REG[7] = once_value_2;
17792 fra.me.REG[7] = fra.me.REG[7];
17793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17794 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17795 fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
17796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17797 if (!once_value_3) {
17798 fra.me.REG[7] = BOX_NativeString("");
17799 REGB1 = TAG_Int(0);
17800 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17801 once_value_3 = fra.me.REG[7];
17802 register_static_object(&once_value_3);
17803 } else fra.me.REG[7] = once_value_3;
17804 fra.me.REG[7] = fra.me.REG[7];
17805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17806 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
17807 /* compiling/compiling_icode.nit:1271 */
17808 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17809 if (!once_value_4) {
17810 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
17811 REGB1 = TAG_Int(29);
17812 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17813 once_value_4 = fra.me.REG[8];
17814 register_static_object(&once_value_4);
17815 } else fra.me.REG[8] = once_value_4;
17816 fra.me.REG[8] = fra.me.REG[8];
17817 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);
17818 /* compiling/compiling_icode.nit:1272 */
17819 fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17820 fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
17821 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
17822 /* compiling/compiling_icode.nit:1274 */
17823 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]);
17824 /* compiling/compiling_icode.nit:1275 */
17825 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17826 if (UNTAG_Bool(REGB1)) {
17827 } else {
17828 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17829 if (UNTAG_Bool(REGB2)) {
17830 REGB2 = TAG_Bool(0);
17831 REGB1 = REGB2;
17832 } else {
17833 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
17834 REGB1 = REGB2;
17835 }
17836 }
17837 if (UNTAG_Bool(REGB1)) {
17838 /* compiling/compiling_icode.nit:1276 */
17839 if (!once_value_5) {
17840 fra.me.REG[0] = BOX_NativeString("return;");
17841 REGB1 = TAG_Int(7);
17842 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17843 once_value_5 = fra.me.REG[0];
17844 register_static_object(&once_value_5);
17845 } else fra.me.REG[0] = once_value_5;
17846 fra.me.REG[0] = fra.me.REG[0];
17847 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17848 } else {
17849 /* compiling/compiling_icode.nit:1278 */
17850 REGB1 = TAG_Int(3);
17851 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17852 if (!once_value_6) {
17853 fra.me.REG[7] = BOX_NativeString("return ");
17854 REGB1 = TAG_Int(7);
17855 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17856 once_value_6 = fra.me.REG[7];
17857 register_static_object(&once_value_6);
17858 } else fra.me.REG[7] = once_value_6;
17859 fra.me.REG[7] = fra.me.REG[7];
17860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
17861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17862 if (!once_value_7) {
17863 fra.me.REG[8] = BOX_NativeString(";");
17864 REGB1 = TAG_Int(1);
17865 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17866 once_value_7 = fra.me.REG[8];
17867 register_static_object(&once_value_7);
17868 } else fra.me.REG[8] = once_value_7;
17869 fra.me.REG[8] = fra.me.REG[8];
17870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17871 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17872 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17873 }
17874 /* compiling/compiling_icode.nit:1280 */
17875 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17876 /* compiling/compiling_icode.nit:1281 */
17877 if (!once_value_8) {
17878 fra.me.REG[0] = BOX_NativeString("}");
17879 REGB1 = TAG_Int(1);
17880 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17881 once_value_8 = fra.me.REG[0];
17882 register_static_object(&once_value_8);
17883 } else fra.me.REG[0] = once_value_8;
17884 fra.me.REG[0] = fra.me.REG[0];
17885 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17886 /* compiling/compiling_icode.nit:1284 */
17887 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
17888 /* compiling/compiling_icode.nit:1285 */
17889 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17890 /* compiling/compiling_icode.nit:1286 */
17891 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
17892 /* compiling/compiling_icode.nit:1287 */
17893 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17894 /* compiling/compiling_icode.nit:1288 */
17895 REGB0 = TAG_Int(3);
17896 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17897 if (!once_value_9) {
17898 fra.me.REG[1] = BOX_NativeString("((fun_t)");
17899 REGB0 = TAG_Int(8);
17900 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
17901 once_value_9 = fra.me.REG[1];
17902 register_static_object(&once_value_9);
17903 } else fra.me.REG[1] = once_value_9;
17904 fra.me.REG[1] = fra.me.REG[1];
17905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17907 if (!once_value_10) {
17908 fra.me.REG[6] = BOX_NativeString(")");
17909 REGB0 = TAG_Int(1);
17910 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17911 once_value_10 = fra.me.REG[6];
17912 register_static_object(&once_value_10);
17913 } else fra.me.REG[6] = once_value_10;
17914 fra.me.REG[6] = fra.me.REG[6];
17915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17916 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17917 goto label11;
17918 label11: while(0);
17919 stack_frame_head = fra.me.prev;
17920 return fra.me.REG[3];
17921 }