ni_nitdoc: added fast copy past utility to signatures.
[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:724 */
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:724 */
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:724 */
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:724 */
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_441; /* Once value */
5362 static val_t once_value_442; /* Once value */
5363 static val_t once_value_443; /* 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_451; /* Once value */
5370 static val_t once_value_452; /* Once value */
5371 static val_t once_value_453; /* Once value */
5372 static val_t once_value_454; /* Once value */
5373 static val_t once_value_455; /* Once value */
5374 static val_t once_value_456; /* Once value */
5375 static val_t once_value_458; /* Once value */
5376 static val_t once_value_460; /* Once value */
5377 static val_t once_value_461; /* Once value */
5378 static val_t once_value_462; /* Once value */
5379 static val_t once_value_463; /* Once value */
5380 static val_t once_value_465; /* Once value */
5381 static val_t once_value_466; /* Once value */
5382 static val_t once_value_467; /* Once value */
5383 static val_t once_value_468; /* Once value */
5384 static val_t once_value_470; /* Once value */
5385 static val_t once_value_471; /* Once value */
5386 static val_t once_value_472; /* Once value */
5387 static val_t once_value_473; /* Once value */
5388 static val_t once_value_475; /* Once value */
5389 static val_t once_value_476; /* Once value */
5390 static val_t once_value_477; /* Once value */
5391 static val_t once_value_478; /* 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_485; /* Once value */
5397 static val_t once_value_486; /* Once value */
5398 static val_t once_value_487; /* Once value */
5399 static val_t once_value_488; /* Once value */
5400 static val_t once_value_489; /* Once value */
5401 static val_t once_value_490; /* Once value */
5402 static val_t once_value_491; /* Once value */
5403 static val_t once_value_492; /* Once value */
5404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5405 fra.me.file = LOCATE_compiling___compiling_icode;
5406 fra.me.line = 722;
5407 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_intern_method_to_c;
5408 fra.me.has_broke = 0;
5409 fra.me.REG_size = 8;
5410 fra.me.nitni_local_ref_head = NULL;
5411 fra.me.REG[0] = NIT_NULL;
5412 fra.me.REG[1] = NIT_NULL;
5413 fra.me.REG[2] = NIT_NULL;
5414 fra.me.REG[3] = NIT_NULL;
5415 fra.me.REG[4] = NIT_NULL;
5416 fra.me.REG[5] = NIT_NULL;
5417 fra.me.REG[6] = NIT_NULL;
5418 fra.me.REG[7] = NIT_NULL;
5419 fra.me.REG[0] = p0;
5420 fra.me.REG[1] = p1;
5421 /* compiling/compiling_icode.nit:724 */
5422 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5423 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5424 /* compiling/compiling_icode.nit:725 */
5425 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5426 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5427 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5428 if (UNTAG_Bool(REGB1)) {
5429 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 725);
5430 }
5431 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5432 REGB2 = TAG_Int(1);
5433 /* ../lib/standard/kernel.nit:238 */
5434 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5435 /* compiling/compiling_icode.nit:725 */
5436 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5437 if (UNTAG_Bool(REGB1)) {
5438 } else {
5439 /* ../lib/standard/kernel.nit:230 */
5440 REGB2 = TAG_Bool((REGB0)==(REGB2));
5441 /* compiling/compiling_icode.nit:725 */
5442 REGB1 = REGB2;
5443 }
5444 if (UNTAG_Bool(REGB1)) {
5445 } else {
5446 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 725);
5447 }
5448 /* compiling/compiling_icode.nit:726 */
5449 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5450 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5451 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5452 /* compiling/compiling_icode.nit:727 */
5453 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5454 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5455 /* compiling/compiling_icode.nit:728 */
5456 fra.me.REG[4] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5457 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5458 /* compiling/compiling_icode.nit:729 */
5459 fra.me.REG[5] = NIT_NULL;
5460 /* compiling/compiling_icode.nit:730 */
5461 if (!once_value_1) {
5462 if (!once_value_2) {
5463 fra.me.REG[6] = BOX_NativeString("Int");
5464 REGB1 = TAG_Int(3);
5465 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5466 once_value_2 = fra.me.REG[6];
5467 register_static_object(&once_value_2);
5468 } else fra.me.REG[6] = once_value_2;
5469 fra.me.REG[6] = fra.me.REG[6];
5470 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5471 once_value_1 = fra.me.REG[6];
5472 register_static_object(&once_value_1);
5473 } else fra.me.REG[6] = once_value_1;
5474 fra.me.REG[6] = fra.me.REG[6];
5475 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5476 if (UNTAG_Bool(REGB1)) {
5477 } else {
5478 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5479 REGB1 = REGB2;
5480 }
5481 if (UNTAG_Bool(REGB1)) {
5482 /* compiling/compiling_icode.nit:731 */
5483 if (!once_value_3) {
5484 if (!once_value_4) {
5485 fra.me.REG[6] = BOX_NativeString("object_id");
5486 REGB1 = TAG_Int(9);
5487 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5488 once_value_4 = fra.me.REG[6];
5489 register_static_object(&once_value_4);
5490 } else fra.me.REG[6] = once_value_4;
5491 fra.me.REG[6] = fra.me.REG[6];
5492 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5493 once_value_3 = fra.me.REG[6];
5494 register_static_object(&once_value_3);
5495 } else fra.me.REG[6] = once_value_3;
5496 fra.me.REG[6] = fra.me.REG[6];
5497 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5498 if (UNTAG_Bool(REGB1)) {
5499 } else {
5500 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5501 REGB1 = REGB2;
5502 }
5503 if (UNTAG_Bool(REGB1)) {
5504 /* compiling/compiling_icode.nit:732 */
5505 REGB1 = TAG_Int(0);
5506 /* ../lib/standard/collection/array.nit:278 */
5507 fra.me.REG[6] = fra.me.REG[4];
5508 /* ../lib/standard/collection/array.nit:280 */
5509 REGB2 = TAG_Int(0);
5510 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5511 if (UNTAG_Bool(REGB0)) {
5512 } else {
5513 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5514 }
5515 /* ../lib/standard/kernel.nit:236 */
5516 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5517 /* ../lib/standard/collection/array.nit:280 */
5518 if (UNTAG_Bool(REGB2)) {
5519 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5520 if (UNTAG_Bool(REGB2)) {
5521 } else {
5522 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5523 }
5524 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
5525 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5526 if (UNTAG_Bool(REGB0)) {
5527 } else {
5528 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5529 }
5530 /* ../lib/standard/kernel.nit:235 */
5531 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5532 } else {
5533 /* ../lib/standard/collection/array.nit:280 */
5534 REGB0 = TAG_Bool(0);
5535 REGB2 = REGB0;
5536 }
5537 if (UNTAG_Bool(REGB2)) {
5538 } else {
5539 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5540 }
5541 /* ../lib/standard/collection/array.nit:281 */
5542 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
5543 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5544 if (UNTAG_Bool(REGB2)) {
5545 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5546 }
5547 /* ../lib/standard/collection/array.nit:724 */
5548 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5549 /* ../lib/standard/collection/array.nit:281 */
5550 goto label5;
5551 label5: while(0);
5552 /* compiling/compiling_icode.nit:732 */
5553 fra.me.REG[5] = fra.me.REG[6];
5554 } else {
5555 /* compiling/compiling_icode.nit:733 */
5556 if (!once_value_6) {
5557 if (!once_value_7) {
5558 fra.me.REG[6] = BOX_NativeString("unary -");
5559 REGB1 = TAG_Int(7);
5560 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5561 once_value_7 = fra.me.REG[6];
5562 register_static_object(&once_value_7);
5563 } else fra.me.REG[6] = once_value_7;
5564 fra.me.REG[6] = fra.me.REG[6];
5565 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5566 once_value_6 = fra.me.REG[6];
5567 register_static_object(&once_value_6);
5568 } else fra.me.REG[6] = once_value_6;
5569 fra.me.REG[6] = fra.me.REG[6];
5570 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5571 if (UNTAG_Bool(REGB1)) {
5572 } else {
5573 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5574 REGB1 = REGB2;
5575 }
5576 if (UNTAG_Bool(REGB1)) {
5577 /* compiling/compiling_icode.nit:734 */
5578 REGB1 = TAG_Int(3);
5579 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5580 if (!once_value_8) {
5581 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5582 REGB1 = TAG_Int(19);
5583 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5584 once_value_8 = fra.me.REG[7];
5585 register_static_object(&once_value_8);
5586 } else fra.me.REG[7] = once_value_8;
5587 fra.me.REG[7] = fra.me.REG[7];
5588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5589 REGB1 = TAG_Int(0);
5590 /* ../lib/standard/collection/array.nit:278 */
5591 fra.me.REG[7] = fra.me.REG[4];
5592 /* ../lib/standard/collection/array.nit:280 */
5593 REGB2 = TAG_Int(0);
5594 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5595 if (UNTAG_Bool(REGB0)) {
5596 } else {
5597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5598 }
5599 /* ../lib/standard/kernel.nit:236 */
5600 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5601 /* ../lib/standard/collection/array.nit:280 */
5602 if (UNTAG_Bool(REGB2)) {
5603 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5604 if (UNTAG_Bool(REGB2)) {
5605 } else {
5606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5607 }
5608 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5609 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5610 if (UNTAG_Bool(REGB0)) {
5611 } else {
5612 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5613 }
5614 /* ../lib/standard/kernel.nit:235 */
5615 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5616 } else {
5617 /* ../lib/standard/collection/array.nit:280 */
5618 REGB0 = TAG_Bool(0);
5619 REGB2 = REGB0;
5620 }
5621 if (UNTAG_Bool(REGB2)) {
5622 } else {
5623 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5624 }
5625 /* ../lib/standard/collection/array.nit:281 */
5626 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5627 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5628 if (UNTAG_Bool(REGB2)) {
5629 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5630 }
5631 /* ../lib/standard/collection/array.nit:724 */
5632 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5633 /* ../lib/standard/collection/array.nit:281 */
5634 goto label9;
5635 label9: while(0);
5636 /* compiling/compiling_icode.nit:734 */
5637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5638 if (!once_value_10) {
5639 fra.me.REG[7] = BOX_NativeString("))");
5640 REGB1 = TAG_Int(2);
5641 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5642 once_value_10 = fra.me.REG[7];
5643 register_static_object(&once_value_10);
5644 } else fra.me.REG[7] = once_value_10;
5645 fra.me.REG[7] = fra.me.REG[7];
5646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5647 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5648 fra.me.REG[5] = fra.me.REG[6];
5649 } else {
5650 /* compiling/compiling_icode.nit:735 */
5651 if (!once_value_11) {
5652 if (!once_value_12) {
5653 fra.me.REG[6] = BOX_NativeString("output");
5654 REGB1 = TAG_Int(6);
5655 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5656 once_value_12 = fra.me.REG[6];
5657 register_static_object(&once_value_12);
5658 } else fra.me.REG[6] = once_value_12;
5659 fra.me.REG[6] = fra.me.REG[6];
5660 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5661 once_value_11 = fra.me.REG[6];
5662 register_static_object(&once_value_11);
5663 } else fra.me.REG[6] = once_value_11;
5664 fra.me.REG[6] = fra.me.REG[6];
5665 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5666 if (UNTAG_Bool(REGB1)) {
5667 } else {
5668 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5669 REGB1 = REGB2;
5670 }
5671 if (UNTAG_Bool(REGB1)) {
5672 /* compiling/compiling_icode.nit:736 */
5673 REGB1 = TAG_Int(3);
5674 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5675 if (!once_value_13) {
5676 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5677 REGB1 = TAG_Int(26);
5678 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5679 once_value_13 = fra.me.REG[7];
5680 register_static_object(&once_value_13);
5681 } else fra.me.REG[7] = once_value_13;
5682 fra.me.REG[7] = fra.me.REG[7];
5683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5684 REGB1 = TAG_Int(0);
5685 /* ../lib/standard/collection/array.nit:278 */
5686 fra.me.REG[7] = fra.me.REG[4];
5687 /* ../lib/standard/collection/array.nit:280 */
5688 REGB2 = TAG_Int(0);
5689 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5690 if (UNTAG_Bool(REGB0)) {
5691 } else {
5692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5693 }
5694 /* ../lib/standard/kernel.nit:236 */
5695 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5696 /* ../lib/standard/collection/array.nit:280 */
5697 if (UNTAG_Bool(REGB2)) {
5698 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5699 if (UNTAG_Bool(REGB2)) {
5700 } else {
5701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5702 }
5703 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5704 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5705 if (UNTAG_Bool(REGB0)) {
5706 } else {
5707 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5708 }
5709 /* ../lib/standard/kernel.nit:235 */
5710 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5711 } else {
5712 /* ../lib/standard/collection/array.nit:280 */
5713 REGB0 = TAG_Bool(0);
5714 REGB2 = REGB0;
5715 }
5716 if (UNTAG_Bool(REGB2)) {
5717 } else {
5718 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5719 }
5720 /* ../lib/standard/collection/array.nit:281 */
5721 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5722 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5723 if (UNTAG_Bool(REGB2)) {
5724 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5725 }
5726 /* ../lib/standard/collection/array.nit:724 */
5727 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5728 /* ../lib/standard/collection/array.nit:281 */
5729 goto label14;
5730 label14: while(0);
5731 /* compiling/compiling_icode.nit:736 */
5732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5733 if (!once_value_15) {
5734 fra.me.REG[7] = BOX_NativeString("));");
5735 REGB1 = TAG_Int(3);
5736 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5737 once_value_15 = fra.me.REG[7];
5738 register_static_object(&once_value_15);
5739 } else fra.me.REG[7] = once_value_15;
5740 fra.me.REG[7] = fra.me.REG[7];
5741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5742 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5743 fra.me.REG[5] = fra.me.REG[6];
5744 } else {
5745 /* compiling/compiling_icode.nit:737 */
5746 if (!once_value_16) {
5747 if (!once_value_17) {
5748 fra.me.REG[6] = BOX_NativeString("ascii");
5749 REGB1 = TAG_Int(5);
5750 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5751 once_value_17 = fra.me.REG[6];
5752 register_static_object(&once_value_17);
5753 } else fra.me.REG[6] = once_value_17;
5754 fra.me.REG[6] = fra.me.REG[6];
5755 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5756 once_value_16 = fra.me.REG[6];
5757 register_static_object(&once_value_16);
5758 } else fra.me.REG[6] = once_value_16;
5759 fra.me.REG[6] = fra.me.REG[6];
5760 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5761 if (UNTAG_Bool(REGB1)) {
5762 } else {
5763 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5764 REGB1 = REGB2;
5765 }
5766 if (UNTAG_Bool(REGB1)) {
5767 /* compiling/compiling_icode.nit:738 */
5768 REGB1 = TAG_Int(3);
5769 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5770 if (!once_value_18) {
5771 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5772 REGB1 = TAG_Int(19);
5773 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5774 once_value_18 = fra.me.REG[7];
5775 register_static_object(&once_value_18);
5776 } else fra.me.REG[7] = once_value_18;
5777 fra.me.REG[7] = fra.me.REG[7];
5778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5779 REGB1 = TAG_Int(0);
5780 /* ../lib/standard/collection/array.nit:278 */
5781 fra.me.REG[7] = fra.me.REG[4];
5782 /* ../lib/standard/collection/array.nit:280 */
5783 REGB2 = TAG_Int(0);
5784 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5785 if (UNTAG_Bool(REGB0)) {
5786 } else {
5787 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5788 }
5789 /* ../lib/standard/kernel.nit:236 */
5790 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5791 /* ../lib/standard/collection/array.nit:280 */
5792 if (UNTAG_Bool(REGB2)) {
5793 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5794 if (UNTAG_Bool(REGB2)) {
5795 } else {
5796 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5797 }
5798 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5799 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5800 if (UNTAG_Bool(REGB0)) {
5801 } else {
5802 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5803 }
5804 /* ../lib/standard/kernel.nit:235 */
5805 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5806 } else {
5807 /* ../lib/standard/collection/array.nit:280 */
5808 REGB0 = TAG_Bool(0);
5809 REGB2 = REGB0;
5810 }
5811 if (UNTAG_Bool(REGB2)) {
5812 } else {
5813 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5814 }
5815 /* ../lib/standard/collection/array.nit:281 */
5816 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5817 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5818 if (UNTAG_Bool(REGB2)) {
5819 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5820 }
5821 /* ../lib/standard/collection/array.nit:724 */
5822 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5823 /* ../lib/standard/collection/array.nit:281 */
5824 goto label19;
5825 label19: while(0);
5826 /* compiling/compiling_icode.nit:738 */
5827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5828 if (!once_value_20) {
5829 fra.me.REG[7] = BOX_NativeString("))");
5830 REGB1 = TAG_Int(2);
5831 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5832 once_value_20 = fra.me.REG[7];
5833 register_static_object(&once_value_20);
5834 } else fra.me.REG[7] = once_value_20;
5835 fra.me.REG[7] = fra.me.REG[7];
5836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5837 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5838 fra.me.REG[5] = fra.me.REG[6];
5839 } else {
5840 /* compiling/compiling_icode.nit:739 */
5841 if (!once_value_21) {
5842 if (!once_value_22) {
5843 fra.me.REG[6] = BOX_NativeString("succ");
5844 REGB1 = TAG_Int(4);
5845 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5846 once_value_22 = fra.me.REG[6];
5847 register_static_object(&once_value_22);
5848 } else fra.me.REG[6] = once_value_22;
5849 fra.me.REG[6] = fra.me.REG[6];
5850 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5851 once_value_21 = fra.me.REG[6];
5852 register_static_object(&once_value_21);
5853 } else fra.me.REG[6] = once_value_21;
5854 fra.me.REG[6] = fra.me.REG[6];
5855 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5856 if (UNTAG_Bool(REGB1)) {
5857 } else {
5858 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5859 REGB1 = REGB2;
5860 }
5861 if (UNTAG_Bool(REGB1)) {
5862 /* compiling/compiling_icode.nit:740 */
5863 REGB1 = TAG_Int(3);
5864 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5865 if (!once_value_23) {
5866 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5867 REGB1 = TAG_Int(18);
5868 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5869 once_value_23 = fra.me.REG[7];
5870 register_static_object(&once_value_23);
5871 } else fra.me.REG[7] = once_value_23;
5872 fra.me.REG[7] = fra.me.REG[7];
5873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5874 REGB1 = TAG_Int(0);
5875 /* ../lib/standard/collection/array.nit:278 */
5876 fra.me.REG[7] = fra.me.REG[4];
5877 /* ../lib/standard/collection/array.nit:280 */
5878 REGB2 = TAG_Int(0);
5879 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5880 if (UNTAG_Bool(REGB0)) {
5881 } else {
5882 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5883 }
5884 /* ../lib/standard/kernel.nit:236 */
5885 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5886 /* ../lib/standard/collection/array.nit:280 */
5887 if (UNTAG_Bool(REGB2)) {
5888 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5889 if (UNTAG_Bool(REGB2)) {
5890 } else {
5891 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5892 }
5893 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5894 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5895 if (UNTAG_Bool(REGB0)) {
5896 } else {
5897 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5898 }
5899 /* ../lib/standard/kernel.nit:235 */
5900 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5901 } else {
5902 /* ../lib/standard/collection/array.nit:280 */
5903 REGB0 = TAG_Bool(0);
5904 REGB2 = REGB0;
5905 }
5906 if (UNTAG_Bool(REGB2)) {
5907 } else {
5908 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5909 }
5910 /* ../lib/standard/collection/array.nit:281 */
5911 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5912 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5913 if (UNTAG_Bool(REGB2)) {
5914 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5915 }
5916 /* ../lib/standard/collection/array.nit:724 */
5917 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5918 /* ../lib/standard/collection/array.nit:281 */
5919 goto label24;
5920 label24: while(0);
5921 /* compiling/compiling_icode.nit:740 */
5922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5923 if (!once_value_25) {
5924 fra.me.REG[7] = BOX_NativeString(")+1)");
5925 REGB1 = TAG_Int(4);
5926 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5927 once_value_25 = fra.me.REG[7];
5928 register_static_object(&once_value_25);
5929 } else fra.me.REG[7] = once_value_25;
5930 fra.me.REG[7] = fra.me.REG[7];
5931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5932 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5933 fra.me.REG[5] = fra.me.REG[6];
5934 } else {
5935 /* compiling/compiling_icode.nit:741 */
5936 if (!once_value_26) {
5937 if (!once_value_27) {
5938 fra.me.REG[6] = BOX_NativeString("prec");
5939 REGB1 = TAG_Int(4);
5940 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5941 once_value_27 = fra.me.REG[6];
5942 register_static_object(&once_value_27);
5943 } else fra.me.REG[6] = once_value_27;
5944 fra.me.REG[6] = fra.me.REG[6];
5945 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5946 once_value_26 = fra.me.REG[6];
5947 register_static_object(&once_value_26);
5948 } else fra.me.REG[6] = once_value_26;
5949 fra.me.REG[6] = fra.me.REG[6];
5950 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5951 if (UNTAG_Bool(REGB1)) {
5952 } else {
5953 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5954 REGB1 = REGB2;
5955 }
5956 if (UNTAG_Bool(REGB1)) {
5957 /* compiling/compiling_icode.nit:742 */
5958 REGB1 = TAG_Int(3);
5959 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5960 if (!once_value_28) {
5961 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5962 REGB1 = TAG_Int(18);
5963 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5964 once_value_28 = fra.me.REG[7];
5965 register_static_object(&once_value_28);
5966 } else fra.me.REG[7] = once_value_28;
5967 fra.me.REG[7] = fra.me.REG[7];
5968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5969 REGB1 = TAG_Int(0);
5970 /* ../lib/standard/collection/array.nit:278 */
5971 fra.me.REG[7] = fra.me.REG[4];
5972 /* ../lib/standard/collection/array.nit:280 */
5973 REGB2 = TAG_Int(0);
5974 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5975 if (UNTAG_Bool(REGB0)) {
5976 } else {
5977 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5978 }
5979 /* ../lib/standard/kernel.nit:236 */
5980 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5981 /* ../lib/standard/collection/array.nit:280 */
5982 if (UNTAG_Bool(REGB2)) {
5983 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5984 if (UNTAG_Bool(REGB2)) {
5985 } else {
5986 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5987 }
5988 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5989 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5990 if (UNTAG_Bool(REGB0)) {
5991 } else {
5992 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5993 }
5994 /* ../lib/standard/kernel.nit:235 */
5995 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5996 } else {
5997 /* ../lib/standard/collection/array.nit:280 */
5998 REGB0 = TAG_Bool(0);
5999 REGB2 = REGB0;
6000 }
6001 if (UNTAG_Bool(REGB2)) {
6002 } else {
6003 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6004 }
6005 /* ../lib/standard/collection/array.nit:281 */
6006 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6007 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6008 if (UNTAG_Bool(REGB2)) {
6009 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6010 }
6011 /* ../lib/standard/collection/array.nit:724 */
6012 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6013 /* ../lib/standard/collection/array.nit:281 */
6014 goto label29;
6015 label29: while(0);
6016 /* compiling/compiling_icode.nit:742 */
6017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6018 if (!once_value_30) {
6019 fra.me.REG[7] = BOX_NativeString(")-1)");
6020 REGB1 = TAG_Int(4);
6021 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6022 once_value_30 = fra.me.REG[7];
6023 register_static_object(&once_value_30);
6024 } else fra.me.REG[7] = once_value_30;
6025 fra.me.REG[7] = fra.me.REG[7];
6026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6027 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6028 fra.me.REG[5] = fra.me.REG[6];
6029 } else {
6030 /* compiling/compiling_icode.nit:743 */
6031 if (!once_value_31) {
6032 if (!once_value_32) {
6033 fra.me.REG[6] = BOX_NativeString("to_f");
6034 REGB1 = TAG_Int(4);
6035 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6036 once_value_32 = fra.me.REG[6];
6037 register_static_object(&once_value_32);
6038 } else fra.me.REG[6] = once_value_32;
6039 fra.me.REG[6] = fra.me.REG[6];
6040 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6041 once_value_31 = fra.me.REG[6];
6042 register_static_object(&once_value_31);
6043 } else fra.me.REG[6] = once_value_31;
6044 fra.me.REG[6] = fra.me.REG[6];
6045 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6046 if (UNTAG_Bool(REGB1)) {
6047 } else {
6048 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6049 REGB1 = REGB2;
6050 }
6051 if (UNTAG_Bool(REGB1)) {
6052 /* compiling/compiling_icode.nit:744 */
6053 REGB1 = TAG_Int(3);
6054 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6055 if (!once_value_33) {
6056 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
6057 REGB1 = TAG_Int(27);
6058 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6059 once_value_33 = fra.me.REG[7];
6060 register_static_object(&once_value_33);
6061 } else fra.me.REG[7] = once_value_33;
6062 fra.me.REG[7] = fra.me.REG[7];
6063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6064 REGB1 = TAG_Int(0);
6065 /* ../lib/standard/collection/array.nit:278 */
6066 fra.me.REG[7] = fra.me.REG[4];
6067 /* ../lib/standard/collection/array.nit:280 */
6068 REGB2 = TAG_Int(0);
6069 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6070 if (UNTAG_Bool(REGB0)) {
6071 } else {
6072 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6073 }
6074 /* ../lib/standard/kernel.nit:236 */
6075 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6076 /* ../lib/standard/collection/array.nit:280 */
6077 if (UNTAG_Bool(REGB2)) {
6078 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6079 if (UNTAG_Bool(REGB2)) {
6080 } else {
6081 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6082 }
6083 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6084 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6085 if (UNTAG_Bool(REGB0)) {
6086 } else {
6087 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6088 }
6089 /* ../lib/standard/kernel.nit:235 */
6090 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6091 } else {
6092 /* ../lib/standard/collection/array.nit:280 */
6093 REGB0 = TAG_Bool(0);
6094 REGB2 = REGB0;
6095 }
6096 if (UNTAG_Bool(REGB2)) {
6097 } else {
6098 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6099 }
6100 /* ../lib/standard/collection/array.nit:281 */
6101 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6102 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6103 if (UNTAG_Bool(REGB2)) {
6104 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6105 }
6106 /* ../lib/standard/collection/array.nit:724 */
6107 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6108 /* ../lib/standard/collection/array.nit:281 */
6109 goto label34;
6110 label34: while(0);
6111 /* compiling/compiling_icode.nit:744 */
6112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6113 if (!once_value_35) {
6114 fra.me.REG[7] = BOX_NativeString("))");
6115 REGB1 = TAG_Int(2);
6116 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6117 once_value_35 = fra.me.REG[7];
6118 register_static_object(&once_value_35);
6119 } else fra.me.REG[7] = once_value_35;
6120 fra.me.REG[7] = fra.me.REG[7];
6121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6122 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6123 fra.me.REG[5] = fra.me.REG[6];
6124 } else {
6125 /* compiling/compiling_icode.nit:745 */
6126 if (!once_value_36) {
6127 if (!once_value_37) {
6128 fra.me.REG[6] = BOX_NativeString("+");
6129 REGB1 = TAG_Int(1);
6130 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6131 once_value_37 = fra.me.REG[6];
6132 register_static_object(&once_value_37);
6133 } else fra.me.REG[6] = once_value_37;
6134 fra.me.REG[6] = fra.me.REG[6];
6135 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6136 once_value_36 = fra.me.REG[6];
6137 register_static_object(&once_value_36);
6138 } else fra.me.REG[6] = once_value_36;
6139 fra.me.REG[6] = fra.me.REG[6];
6140 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6141 if (UNTAG_Bool(REGB1)) {
6142 } else {
6143 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6144 REGB1 = REGB2;
6145 }
6146 if (UNTAG_Bool(REGB1)) {
6147 /* compiling/compiling_icode.nit:746 */
6148 REGB1 = TAG_Int(5);
6149 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6150 if (!once_value_38) {
6151 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6152 REGB1 = TAG_Int(18);
6153 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6154 once_value_38 = fra.me.REG[7];
6155 register_static_object(&once_value_38);
6156 } else fra.me.REG[7] = once_value_38;
6157 fra.me.REG[7] = fra.me.REG[7];
6158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6159 REGB1 = TAG_Int(0);
6160 /* ../lib/standard/collection/array.nit:278 */
6161 fra.me.REG[7] = fra.me.REG[4];
6162 /* ../lib/standard/collection/array.nit:280 */
6163 REGB2 = TAG_Int(0);
6164 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6165 if (UNTAG_Bool(REGB0)) {
6166 } else {
6167 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6168 }
6169 /* ../lib/standard/kernel.nit:236 */
6170 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6171 /* ../lib/standard/collection/array.nit:280 */
6172 if (UNTAG_Bool(REGB2)) {
6173 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6174 if (UNTAG_Bool(REGB2)) {
6175 } else {
6176 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6177 }
6178 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6179 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6180 if (UNTAG_Bool(REGB0)) {
6181 } else {
6182 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6183 }
6184 /* ../lib/standard/kernel.nit:235 */
6185 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6186 } else {
6187 /* ../lib/standard/collection/array.nit:280 */
6188 REGB0 = TAG_Bool(0);
6189 REGB2 = REGB0;
6190 }
6191 if (UNTAG_Bool(REGB2)) {
6192 } else {
6193 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6194 }
6195 /* ../lib/standard/collection/array.nit:281 */
6196 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6197 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6198 if (UNTAG_Bool(REGB2)) {
6199 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6200 }
6201 /* ../lib/standard/collection/array.nit:724 */
6202 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6203 /* ../lib/standard/collection/array.nit:281 */
6204 goto label39;
6205 label39: while(0);
6206 /* compiling/compiling_icode.nit:746 */
6207 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6208 if (!once_value_40) {
6209 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
6210 REGB1 = TAG_Int(12);
6211 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6212 once_value_40 = fra.me.REG[7];
6213 register_static_object(&once_value_40);
6214 } else fra.me.REG[7] = once_value_40;
6215 fra.me.REG[7] = fra.me.REG[7];
6216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6217 REGB1 = TAG_Int(1);
6218 /* ../lib/standard/collection/array.nit:278 */
6219 fra.me.REG[7] = fra.me.REG[4];
6220 /* ../lib/standard/collection/array.nit:280 */
6221 REGB2 = TAG_Int(0);
6222 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6223 if (UNTAG_Bool(REGB0)) {
6224 } else {
6225 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6226 }
6227 /* ../lib/standard/kernel.nit:236 */
6228 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6229 /* ../lib/standard/collection/array.nit:280 */
6230 if (UNTAG_Bool(REGB2)) {
6231 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6232 if (UNTAG_Bool(REGB2)) {
6233 } else {
6234 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6235 }
6236 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6237 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6238 if (UNTAG_Bool(REGB0)) {
6239 } else {
6240 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6241 }
6242 /* ../lib/standard/kernel.nit:235 */
6243 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6244 } else {
6245 /* ../lib/standard/collection/array.nit:280 */
6246 REGB0 = TAG_Bool(0);
6247 REGB2 = REGB0;
6248 }
6249 if (UNTAG_Bool(REGB2)) {
6250 } else {
6251 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6252 }
6253 /* ../lib/standard/collection/array.nit:281 */
6254 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6255 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6256 if (UNTAG_Bool(REGB2)) {
6257 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6258 }
6259 /* ../lib/standard/collection/array.nit:724 */
6260 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6261 /* ../lib/standard/collection/array.nit:281 */
6262 goto label41;
6263 label41: while(0);
6264 /* compiling/compiling_icode.nit:746 */
6265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6266 if (!once_value_42) {
6267 fra.me.REG[7] = BOX_NativeString("))");
6268 REGB1 = TAG_Int(2);
6269 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6270 once_value_42 = fra.me.REG[7];
6271 register_static_object(&once_value_42);
6272 } else fra.me.REG[7] = once_value_42;
6273 fra.me.REG[7] = fra.me.REG[7];
6274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6275 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6276 fra.me.REG[5] = fra.me.REG[6];
6277 } else {
6278 /* compiling/compiling_icode.nit:747 */
6279 if (!once_value_43) {
6280 if (!once_value_44) {
6281 fra.me.REG[6] = BOX_NativeString("-");
6282 REGB1 = TAG_Int(1);
6283 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6284 once_value_44 = fra.me.REG[6];
6285 register_static_object(&once_value_44);
6286 } else fra.me.REG[6] = once_value_44;
6287 fra.me.REG[6] = fra.me.REG[6];
6288 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6289 once_value_43 = fra.me.REG[6];
6290 register_static_object(&once_value_43);
6291 } else fra.me.REG[6] = once_value_43;
6292 fra.me.REG[6] = fra.me.REG[6];
6293 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6294 if (UNTAG_Bool(REGB1)) {
6295 } else {
6296 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6297 REGB1 = REGB2;
6298 }
6299 if (UNTAG_Bool(REGB1)) {
6300 /* compiling/compiling_icode.nit:748 */
6301 REGB1 = TAG_Int(5);
6302 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6303 if (!once_value_45) {
6304 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6305 REGB1 = TAG_Int(18);
6306 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6307 once_value_45 = fra.me.REG[7];
6308 register_static_object(&once_value_45);
6309 } else fra.me.REG[7] = once_value_45;
6310 fra.me.REG[7] = fra.me.REG[7];
6311 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6312 REGB1 = TAG_Int(0);
6313 /* ../lib/standard/collection/array.nit:278 */
6314 fra.me.REG[7] = fra.me.REG[4];
6315 /* ../lib/standard/collection/array.nit:280 */
6316 REGB2 = TAG_Int(0);
6317 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6318 if (UNTAG_Bool(REGB0)) {
6319 } else {
6320 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6321 }
6322 /* ../lib/standard/kernel.nit:236 */
6323 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6324 /* ../lib/standard/collection/array.nit:280 */
6325 if (UNTAG_Bool(REGB2)) {
6326 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6327 if (UNTAG_Bool(REGB2)) {
6328 } else {
6329 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6330 }
6331 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6332 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6333 if (UNTAG_Bool(REGB0)) {
6334 } else {
6335 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6336 }
6337 /* ../lib/standard/kernel.nit:235 */
6338 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6339 } else {
6340 /* ../lib/standard/collection/array.nit:280 */
6341 REGB0 = TAG_Bool(0);
6342 REGB2 = REGB0;
6343 }
6344 if (UNTAG_Bool(REGB2)) {
6345 } else {
6346 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6347 }
6348 /* ../lib/standard/collection/array.nit:281 */
6349 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6350 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6351 if (UNTAG_Bool(REGB2)) {
6352 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6353 }
6354 /* ../lib/standard/collection/array.nit:724 */
6355 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6356 /* ../lib/standard/collection/array.nit:281 */
6357 goto label46;
6358 label46: while(0);
6359 /* compiling/compiling_icode.nit:748 */
6360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6361 if (!once_value_47) {
6362 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
6363 REGB1 = TAG_Int(12);
6364 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6365 once_value_47 = fra.me.REG[7];
6366 register_static_object(&once_value_47);
6367 } else fra.me.REG[7] = once_value_47;
6368 fra.me.REG[7] = fra.me.REG[7];
6369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6370 REGB1 = TAG_Int(1);
6371 /* ../lib/standard/collection/array.nit:278 */
6372 fra.me.REG[7] = fra.me.REG[4];
6373 /* ../lib/standard/collection/array.nit:280 */
6374 REGB2 = TAG_Int(0);
6375 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6376 if (UNTAG_Bool(REGB0)) {
6377 } else {
6378 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6379 }
6380 /* ../lib/standard/kernel.nit:236 */
6381 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6382 /* ../lib/standard/collection/array.nit:280 */
6383 if (UNTAG_Bool(REGB2)) {
6384 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6385 if (UNTAG_Bool(REGB2)) {
6386 } else {
6387 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6388 }
6389 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6390 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6391 if (UNTAG_Bool(REGB0)) {
6392 } else {
6393 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6394 }
6395 /* ../lib/standard/kernel.nit:235 */
6396 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6397 } else {
6398 /* ../lib/standard/collection/array.nit:280 */
6399 REGB0 = TAG_Bool(0);
6400 REGB2 = REGB0;
6401 }
6402 if (UNTAG_Bool(REGB2)) {
6403 } else {
6404 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6405 }
6406 /* ../lib/standard/collection/array.nit:281 */
6407 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6408 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6409 if (UNTAG_Bool(REGB2)) {
6410 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6411 }
6412 /* ../lib/standard/collection/array.nit:724 */
6413 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6414 /* ../lib/standard/collection/array.nit:281 */
6415 goto label48;
6416 label48: while(0);
6417 /* compiling/compiling_icode.nit:748 */
6418 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6419 if (!once_value_49) {
6420 fra.me.REG[7] = BOX_NativeString("))");
6421 REGB1 = TAG_Int(2);
6422 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6423 once_value_49 = fra.me.REG[7];
6424 register_static_object(&once_value_49);
6425 } else fra.me.REG[7] = once_value_49;
6426 fra.me.REG[7] = fra.me.REG[7];
6427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6428 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6429 fra.me.REG[5] = fra.me.REG[6];
6430 } else {
6431 /* compiling/compiling_icode.nit:749 */
6432 if (!once_value_50) {
6433 if (!once_value_51) {
6434 fra.me.REG[6] = BOX_NativeString("*");
6435 REGB1 = TAG_Int(1);
6436 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6437 once_value_51 = fra.me.REG[6];
6438 register_static_object(&once_value_51);
6439 } else fra.me.REG[6] = once_value_51;
6440 fra.me.REG[6] = fra.me.REG[6];
6441 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6442 once_value_50 = fra.me.REG[6];
6443 register_static_object(&once_value_50);
6444 } else fra.me.REG[6] = once_value_50;
6445 fra.me.REG[6] = fra.me.REG[6];
6446 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6447 if (UNTAG_Bool(REGB1)) {
6448 } else {
6449 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6450 REGB1 = REGB2;
6451 }
6452 if (UNTAG_Bool(REGB1)) {
6453 /* compiling/compiling_icode.nit:750 */
6454 REGB1 = TAG_Int(5);
6455 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6456 if (!once_value_52) {
6457 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6458 REGB1 = TAG_Int(18);
6459 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6460 once_value_52 = fra.me.REG[7];
6461 register_static_object(&once_value_52);
6462 } else fra.me.REG[7] = once_value_52;
6463 fra.me.REG[7] = fra.me.REG[7];
6464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6465 REGB1 = TAG_Int(0);
6466 /* ../lib/standard/collection/array.nit:278 */
6467 fra.me.REG[7] = fra.me.REG[4];
6468 /* ../lib/standard/collection/array.nit:280 */
6469 REGB2 = TAG_Int(0);
6470 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6471 if (UNTAG_Bool(REGB0)) {
6472 } else {
6473 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6474 }
6475 /* ../lib/standard/kernel.nit:236 */
6476 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6477 /* ../lib/standard/collection/array.nit:280 */
6478 if (UNTAG_Bool(REGB2)) {
6479 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6480 if (UNTAG_Bool(REGB2)) {
6481 } else {
6482 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6483 }
6484 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6485 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6486 if (UNTAG_Bool(REGB0)) {
6487 } else {
6488 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6489 }
6490 /* ../lib/standard/kernel.nit:235 */
6491 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6492 } else {
6493 /* ../lib/standard/collection/array.nit:280 */
6494 REGB0 = TAG_Bool(0);
6495 REGB2 = REGB0;
6496 }
6497 if (UNTAG_Bool(REGB2)) {
6498 } else {
6499 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6500 }
6501 /* ../lib/standard/collection/array.nit:281 */
6502 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6503 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6504 if (UNTAG_Bool(REGB2)) {
6505 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6506 }
6507 /* ../lib/standard/collection/array.nit:724 */
6508 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6509 /* ../lib/standard/collection/array.nit:281 */
6510 goto label53;
6511 label53: while(0);
6512 /* compiling/compiling_icode.nit:750 */
6513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6514 if (!once_value_54) {
6515 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6516 REGB1 = TAG_Int(12);
6517 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6518 once_value_54 = fra.me.REG[7];
6519 register_static_object(&once_value_54);
6520 } else fra.me.REG[7] = once_value_54;
6521 fra.me.REG[7] = fra.me.REG[7];
6522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6523 REGB1 = TAG_Int(1);
6524 /* ../lib/standard/collection/array.nit:278 */
6525 fra.me.REG[7] = fra.me.REG[4];
6526 /* ../lib/standard/collection/array.nit:280 */
6527 REGB2 = TAG_Int(0);
6528 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6529 if (UNTAG_Bool(REGB0)) {
6530 } else {
6531 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6532 }
6533 /* ../lib/standard/kernel.nit:236 */
6534 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6535 /* ../lib/standard/collection/array.nit:280 */
6536 if (UNTAG_Bool(REGB2)) {
6537 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6538 if (UNTAG_Bool(REGB2)) {
6539 } else {
6540 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6541 }
6542 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6543 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6544 if (UNTAG_Bool(REGB0)) {
6545 } else {
6546 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6547 }
6548 /* ../lib/standard/kernel.nit:235 */
6549 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6550 } else {
6551 /* ../lib/standard/collection/array.nit:280 */
6552 REGB0 = TAG_Bool(0);
6553 REGB2 = REGB0;
6554 }
6555 if (UNTAG_Bool(REGB2)) {
6556 } else {
6557 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6558 }
6559 /* ../lib/standard/collection/array.nit:281 */
6560 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6561 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6562 if (UNTAG_Bool(REGB2)) {
6563 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6564 }
6565 /* ../lib/standard/collection/array.nit:724 */
6566 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6567 /* ../lib/standard/collection/array.nit:281 */
6568 goto label55;
6569 label55: while(0);
6570 /* compiling/compiling_icode.nit:750 */
6571 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6572 if (!once_value_56) {
6573 fra.me.REG[7] = BOX_NativeString("))");
6574 REGB1 = TAG_Int(2);
6575 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6576 once_value_56 = fra.me.REG[7];
6577 register_static_object(&once_value_56);
6578 } else fra.me.REG[7] = once_value_56;
6579 fra.me.REG[7] = fra.me.REG[7];
6580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6581 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6582 fra.me.REG[5] = fra.me.REG[6];
6583 } else {
6584 /* compiling/compiling_icode.nit:751 */
6585 if (!once_value_57) {
6586 if (!once_value_58) {
6587 fra.me.REG[6] = BOX_NativeString("/");
6588 REGB1 = TAG_Int(1);
6589 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6590 once_value_58 = fra.me.REG[6];
6591 register_static_object(&once_value_58);
6592 } else fra.me.REG[6] = once_value_58;
6593 fra.me.REG[6] = fra.me.REG[6];
6594 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6595 once_value_57 = fra.me.REG[6];
6596 register_static_object(&once_value_57);
6597 } else fra.me.REG[6] = once_value_57;
6598 fra.me.REG[6] = fra.me.REG[6];
6599 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6600 if (UNTAG_Bool(REGB1)) {
6601 } else {
6602 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6603 REGB1 = REGB2;
6604 }
6605 if (UNTAG_Bool(REGB1)) {
6606 /* compiling/compiling_icode.nit:752 */
6607 REGB1 = TAG_Int(5);
6608 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6609 if (!once_value_59) {
6610 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6611 REGB1 = TAG_Int(18);
6612 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6613 once_value_59 = fra.me.REG[7];
6614 register_static_object(&once_value_59);
6615 } else fra.me.REG[7] = once_value_59;
6616 fra.me.REG[7] = fra.me.REG[7];
6617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6618 REGB1 = TAG_Int(0);
6619 /* ../lib/standard/collection/array.nit:278 */
6620 fra.me.REG[7] = fra.me.REG[4];
6621 /* ../lib/standard/collection/array.nit:280 */
6622 REGB2 = TAG_Int(0);
6623 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6624 if (UNTAG_Bool(REGB0)) {
6625 } else {
6626 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6627 }
6628 /* ../lib/standard/kernel.nit:236 */
6629 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6630 /* ../lib/standard/collection/array.nit:280 */
6631 if (UNTAG_Bool(REGB2)) {
6632 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6633 if (UNTAG_Bool(REGB2)) {
6634 } else {
6635 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6636 }
6637 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6638 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6639 if (UNTAG_Bool(REGB0)) {
6640 } else {
6641 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6642 }
6643 /* ../lib/standard/kernel.nit:235 */
6644 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6645 } else {
6646 /* ../lib/standard/collection/array.nit:280 */
6647 REGB0 = TAG_Bool(0);
6648 REGB2 = REGB0;
6649 }
6650 if (UNTAG_Bool(REGB2)) {
6651 } else {
6652 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6653 }
6654 /* ../lib/standard/collection/array.nit:281 */
6655 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6656 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6657 if (UNTAG_Bool(REGB2)) {
6658 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6659 }
6660 /* ../lib/standard/collection/array.nit:724 */
6661 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6662 /* ../lib/standard/collection/array.nit:281 */
6663 goto label60;
6664 label60: while(0);
6665 /* compiling/compiling_icode.nit:752 */
6666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6667 if (!once_value_61) {
6668 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6669 REGB1 = TAG_Int(12);
6670 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6671 once_value_61 = fra.me.REG[7];
6672 register_static_object(&once_value_61);
6673 } else fra.me.REG[7] = once_value_61;
6674 fra.me.REG[7] = fra.me.REG[7];
6675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6676 REGB1 = TAG_Int(1);
6677 /* ../lib/standard/collection/array.nit:278 */
6678 fra.me.REG[7] = fra.me.REG[4];
6679 /* ../lib/standard/collection/array.nit:280 */
6680 REGB2 = TAG_Int(0);
6681 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6682 if (UNTAG_Bool(REGB0)) {
6683 } else {
6684 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6685 }
6686 /* ../lib/standard/kernel.nit:236 */
6687 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6688 /* ../lib/standard/collection/array.nit:280 */
6689 if (UNTAG_Bool(REGB2)) {
6690 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6691 if (UNTAG_Bool(REGB2)) {
6692 } else {
6693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6694 }
6695 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6696 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6697 if (UNTAG_Bool(REGB0)) {
6698 } else {
6699 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6700 }
6701 /* ../lib/standard/kernel.nit:235 */
6702 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6703 } else {
6704 /* ../lib/standard/collection/array.nit:280 */
6705 REGB0 = TAG_Bool(0);
6706 REGB2 = REGB0;
6707 }
6708 if (UNTAG_Bool(REGB2)) {
6709 } else {
6710 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6711 }
6712 /* ../lib/standard/collection/array.nit:281 */
6713 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6714 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6715 if (UNTAG_Bool(REGB2)) {
6716 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6717 }
6718 /* ../lib/standard/collection/array.nit:724 */
6719 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6720 /* ../lib/standard/collection/array.nit:281 */
6721 goto label62;
6722 label62: while(0);
6723 /* compiling/compiling_icode.nit:752 */
6724 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6725 if (!once_value_63) {
6726 fra.me.REG[7] = BOX_NativeString("))");
6727 REGB1 = TAG_Int(2);
6728 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6729 once_value_63 = fra.me.REG[7];
6730 register_static_object(&once_value_63);
6731 } else fra.me.REG[7] = once_value_63;
6732 fra.me.REG[7] = fra.me.REG[7];
6733 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6734 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6735 fra.me.REG[5] = fra.me.REG[6];
6736 } else {
6737 /* compiling/compiling_icode.nit:753 */
6738 if (!once_value_64) {
6739 if (!once_value_65) {
6740 fra.me.REG[6] = BOX_NativeString("%");
6741 REGB1 = TAG_Int(1);
6742 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6743 once_value_65 = fra.me.REG[6];
6744 register_static_object(&once_value_65);
6745 } else fra.me.REG[6] = once_value_65;
6746 fra.me.REG[6] = fra.me.REG[6];
6747 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6748 once_value_64 = fra.me.REG[6];
6749 register_static_object(&once_value_64);
6750 } else fra.me.REG[6] = once_value_64;
6751 fra.me.REG[6] = fra.me.REG[6];
6752 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6753 if (UNTAG_Bool(REGB1)) {
6754 } else {
6755 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6756 REGB1 = REGB2;
6757 }
6758 if (UNTAG_Bool(REGB1)) {
6759 /* compiling/compiling_icode.nit:754 */
6760 REGB1 = TAG_Int(5);
6761 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6762 if (!once_value_66) {
6763 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6764 REGB1 = TAG_Int(18);
6765 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6766 once_value_66 = fra.me.REG[7];
6767 register_static_object(&once_value_66);
6768 } else fra.me.REG[7] = once_value_66;
6769 fra.me.REG[7] = fra.me.REG[7];
6770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6771 REGB1 = TAG_Int(0);
6772 /* ../lib/standard/collection/array.nit:278 */
6773 fra.me.REG[7] = fra.me.REG[4];
6774 /* ../lib/standard/collection/array.nit:280 */
6775 REGB2 = TAG_Int(0);
6776 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6777 if (UNTAG_Bool(REGB0)) {
6778 } else {
6779 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6780 }
6781 /* ../lib/standard/kernel.nit:236 */
6782 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6783 /* ../lib/standard/collection/array.nit:280 */
6784 if (UNTAG_Bool(REGB2)) {
6785 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6786 if (UNTAG_Bool(REGB2)) {
6787 } else {
6788 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6789 }
6790 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6791 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6792 if (UNTAG_Bool(REGB0)) {
6793 } else {
6794 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6795 }
6796 /* ../lib/standard/kernel.nit:235 */
6797 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6798 } else {
6799 /* ../lib/standard/collection/array.nit:280 */
6800 REGB0 = TAG_Bool(0);
6801 REGB2 = REGB0;
6802 }
6803 if (UNTAG_Bool(REGB2)) {
6804 } else {
6805 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6806 }
6807 /* ../lib/standard/collection/array.nit:281 */
6808 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6809 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6810 if (UNTAG_Bool(REGB2)) {
6811 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6812 }
6813 /* ../lib/standard/collection/array.nit:724 */
6814 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6815 /* ../lib/standard/collection/array.nit:281 */
6816 goto label67;
6817 label67: while(0);
6818 /* compiling/compiling_icode.nit:754 */
6819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6820 if (!once_value_68) {
6821 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6822 REGB1 = TAG_Int(12);
6823 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6824 once_value_68 = fra.me.REG[7];
6825 register_static_object(&once_value_68);
6826 } else fra.me.REG[7] = once_value_68;
6827 fra.me.REG[7] = fra.me.REG[7];
6828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6829 REGB1 = TAG_Int(1);
6830 /* ../lib/standard/collection/array.nit:278 */
6831 fra.me.REG[7] = fra.me.REG[4];
6832 /* ../lib/standard/collection/array.nit:280 */
6833 REGB2 = TAG_Int(0);
6834 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6835 if (UNTAG_Bool(REGB0)) {
6836 } else {
6837 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6838 }
6839 /* ../lib/standard/kernel.nit:236 */
6840 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6841 /* ../lib/standard/collection/array.nit:280 */
6842 if (UNTAG_Bool(REGB2)) {
6843 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6844 if (UNTAG_Bool(REGB2)) {
6845 } else {
6846 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6847 }
6848 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6849 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6850 if (UNTAG_Bool(REGB0)) {
6851 } else {
6852 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6853 }
6854 /* ../lib/standard/kernel.nit:235 */
6855 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6856 } else {
6857 /* ../lib/standard/collection/array.nit:280 */
6858 REGB0 = TAG_Bool(0);
6859 REGB2 = REGB0;
6860 }
6861 if (UNTAG_Bool(REGB2)) {
6862 } else {
6863 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6864 }
6865 /* ../lib/standard/collection/array.nit:281 */
6866 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6867 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6868 if (UNTAG_Bool(REGB2)) {
6869 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6870 }
6871 /* ../lib/standard/collection/array.nit:724 */
6872 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6873 /* ../lib/standard/collection/array.nit:281 */
6874 goto label69;
6875 label69: while(0);
6876 /* compiling/compiling_icode.nit:754 */
6877 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6878 if (!once_value_70) {
6879 fra.me.REG[7] = BOX_NativeString("))");
6880 REGB1 = TAG_Int(2);
6881 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6882 once_value_70 = fra.me.REG[7];
6883 register_static_object(&once_value_70);
6884 } else fra.me.REG[7] = once_value_70;
6885 fra.me.REG[7] = fra.me.REG[7];
6886 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6887 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6888 fra.me.REG[5] = fra.me.REG[6];
6889 } else {
6890 /* compiling/compiling_icode.nit:755 */
6891 if (!once_value_71) {
6892 if (!once_value_72) {
6893 fra.me.REG[6] = BOX_NativeString("<");
6894 REGB1 = TAG_Int(1);
6895 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6896 once_value_72 = fra.me.REG[6];
6897 register_static_object(&once_value_72);
6898 } else fra.me.REG[6] = once_value_72;
6899 fra.me.REG[6] = fra.me.REG[6];
6900 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6901 once_value_71 = fra.me.REG[6];
6902 register_static_object(&once_value_71);
6903 } else fra.me.REG[6] = once_value_71;
6904 fra.me.REG[6] = fra.me.REG[6];
6905 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6906 if (UNTAG_Bool(REGB1)) {
6907 } else {
6908 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6909 REGB1 = REGB2;
6910 }
6911 if (UNTAG_Bool(REGB1)) {
6912 /* compiling/compiling_icode.nit:756 */
6913 REGB1 = TAG_Int(5);
6914 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6915 if (!once_value_73) {
6916 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6917 REGB1 = TAG_Int(19);
6918 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6919 once_value_73 = fra.me.REG[7];
6920 register_static_object(&once_value_73);
6921 } else fra.me.REG[7] = once_value_73;
6922 fra.me.REG[7] = fra.me.REG[7];
6923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6924 REGB1 = TAG_Int(0);
6925 /* ../lib/standard/collection/array.nit:278 */
6926 fra.me.REG[7] = fra.me.REG[4];
6927 /* ../lib/standard/collection/array.nit:280 */
6928 REGB2 = TAG_Int(0);
6929 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6930 if (UNTAG_Bool(REGB0)) {
6931 } else {
6932 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6933 }
6934 /* ../lib/standard/kernel.nit:236 */
6935 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6936 /* ../lib/standard/collection/array.nit:280 */
6937 if (UNTAG_Bool(REGB2)) {
6938 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6939 if (UNTAG_Bool(REGB2)) {
6940 } else {
6941 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6942 }
6943 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6944 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6945 if (UNTAG_Bool(REGB0)) {
6946 } else {
6947 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6948 }
6949 /* ../lib/standard/kernel.nit:235 */
6950 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6951 } else {
6952 /* ../lib/standard/collection/array.nit:280 */
6953 REGB0 = TAG_Bool(0);
6954 REGB2 = REGB0;
6955 }
6956 if (UNTAG_Bool(REGB2)) {
6957 } else {
6958 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6959 }
6960 /* ../lib/standard/collection/array.nit:281 */
6961 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6962 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6963 if (UNTAG_Bool(REGB2)) {
6964 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6965 }
6966 /* ../lib/standard/collection/array.nit:724 */
6967 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6968 /* ../lib/standard/collection/array.nit:281 */
6969 goto label74;
6970 label74: while(0);
6971 /* compiling/compiling_icode.nit:756 */
6972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6973 if (!once_value_75) {
6974 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6975 REGB1 = TAG_Int(12);
6976 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6977 once_value_75 = fra.me.REG[7];
6978 register_static_object(&once_value_75);
6979 } else fra.me.REG[7] = once_value_75;
6980 fra.me.REG[7] = fra.me.REG[7];
6981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6982 REGB1 = TAG_Int(1);
6983 /* ../lib/standard/collection/array.nit:278 */
6984 fra.me.REG[7] = fra.me.REG[4];
6985 /* ../lib/standard/collection/array.nit:280 */
6986 REGB2 = TAG_Int(0);
6987 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6988 if (UNTAG_Bool(REGB0)) {
6989 } else {
6990 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6991 }
6992 /* ../lib/standard/kernel.nit:236 */
6993 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6994 /* ../lib/standard/collection/array.nit:280 */
6995 if (UNTAG_Bool(REGB2)) {
6996 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6997 if (UNTAG_Bool(REGB2)) {
6998 } else {
6999 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7000 }
7001 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7002 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7003 if (UNTAG_Bool(REGB0)) {
7004 } else {
7005 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7006 }
7007 /* ../lib/standard/kernel.nit:235 */
7008 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7009 } else {
7010 /* ../lib/standard/collection/array.nit:280 */
7011 REGB0 = TAG_Bool(0);
7012 REGB2 = REGB0;
7013 }
7014 if (UNTAG_Bool(REGB2)) {
7015 } else {
7016 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7017 }
7018 /* ../lib/standard/collection/array.nit:281 */
7019 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7020 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7021 if (UNTAG_Bool(REGB2)) {
7022 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7023 }
7024 /* ../lib/standard/collection/array.nit:724 */
7025 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7026 /* ../lib/standard/collection/array.nit:281 */
7027 goto label76;
7028 label76: while(0);
7029 /* compiling/compiling_icode.nit:756 */
7030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7031 if (!once_value_77) {
7032 fra.me.REG[7] = BOX_NativeString("))");
7033 REGB1 = TAG_Int(2);
7034 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7035 once_value_77 = fra.me.REG[7];
7036 register_static_object(&once_value_77);
7037 } else fra.me.REG[7] = once_value_77;
7038 fra.me.REG[7] = fra.me.REG[7];
7039 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7040 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7041 fra.me.REG[5] = fra.me.REG[6];
7042 } else {
7043 /* compiling/compiling_icode.nit:757 */
7044 if (!once_value_78) {
7045 if (!once_value_79) {
7046 fra.me.REG[6] = BOX_NativeString(">");
7047 REGB1 = TAG_Int(1);
7048 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7049 once_value_79 = fra.me.REG[6];
7050 register_static_object(&once_value_79);
7051 } else fra.me.REG[6] = once_value_79;
7052 fra.me.REG[6] = fra.me.REG[6];
7053 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7054 once_value_78 = fra.me.REG[6];
7055 register_static_object(&once_value_78);
7056 } else fra.me.REG[6] = once_value_78;
7057 fra.me.REG[6] = fra.me.REG[6];
7058 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7059 if (UNTAG_Bool(REGB1)) {
7060 } else {
7061 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7062 REGB1 = REGB2;
7063 }
7064 if (UNTAG_Bool(REGB1)) {
7065 /* compiling/compiling_icode.nit:758 */
7066 REGB1 = TAG_Int(5);
7067 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7068 if (!once_value_80) {
7069 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7070 REGB1 = TAG_Int(19);
7071 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7072 once_value_80 = fra.me.REG[7];
7073 register_static_object(&once_value_80);
7074 } else fra.me.REG[7] = once_value_80;
7075 fra.me.REG[7] = fra.me.REG[7];
7076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7077 REGB1 = TAG_Int(0);
7078 /* ../lib/standard/collection/array.nit:278 */
7079 fra.me.REG[7] = fra.me.REG[4];
7080 /* ../lib/standard/collection/array.nit:280 */
7081 REGB2 = TAG_Int(0);
7082 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7083 if (UNTAG_Bool(REGB0)) {
7084 } else {
7085 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7086 }
7087 /* ../lib/standard/kernel.nit:236 */
7088 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7089 /* ../lib/standard/collection/array.nit:280 */
7090 if (UNTAG_Bool(REGB2)) {
7091 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7092 if (UNTAG_Bool(REGB2)) {
7093 } else {
7094 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7095 }
7096 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7097 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7098 if (UNTAG_Bool(REGB0)) {
7099 } else {
7100 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7101 }
7102 /* ../lib/standard/kernel.nit:235 */
7103 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7104 } else {
7105 /* ../lib/standard/collection/array.nit:280 */
7106 REGB0 = TAG_Bool(0);
7107 REGB2 = REGB0;
7108 }
7109 if (UNTAG_Bool(REGB2)) {
7110 } else {
7111 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7112 }
7113 /* ../lib/standard/collection/array.nit:281 */
7114 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7115 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7116 if (UNTAG_Bool(REGB2)) {
7117 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7118 }
7119 /* ../lib/standard/collection/array.nit:724 */
7120 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7121 /* ../lib/standard/collection/array.nit:281 */
7122 goto label81;
7123 label81: while(0);
7124 /* compiling/compiling_icode.nit:758 */
7125 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7126 if (!once_value_82) {
7127 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
7128 REGB1 = TAG_Int(12);
7129 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7130 once_value_82 = fra.me.REG[7];
7131 register_static_object(&once_value_82);
7132 } else fra.me.REG[7] = once_value_82;
7133 fra.me.REG[7] = fra.me.REG[7];
7134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7135 REGB1 = TAG_Int(1);
7136 /* ../lib/standard/collection/array.nit:278 */
7137 fra.me.REG[7] = fra.me.REG[4];
7138 /* ../lib/standard/collection/array.nit:280 */
7139 REGB2 = TAG_Int(0);
7140 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7141 if (UNTAG_Bool(REGB0)) {
7142 } else {
7143 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7144 }
7145 /* ../lib/standard/kernel.nit:236 */
7146 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7147 /* ../lib/standard/collection/array.nit:280 */
7148 if (UNTAG_Bool(REGB2)) {
7149 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7150 if (UNTAG_Bool(REGB2)) {
7151 } else {
7152 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7153 }
7154 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7155 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7156 if (UNTAG_Bool(REGB0)) {
7157 } else {
7158 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7159 }
7160 /* ../lib/standard/kernel.nit:235 */
7161 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7162 } else {
7163 /* ../lib/standard/collection/array.nit:280 */
7164 REGB0 = TAG_Bool(0);
7165 REGB2 = REGB0;
7166 }
7167 if (UNTAG_Bool(REGB2)) {
7168 } else {
7169 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7170 }
7171 /* ../lib/standard/collection/array.nit:281 */
7172 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7173 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7174 if (UNTAG_Bool(REGB2)) {
7175 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7176 }
7177 /* ../lib/standard/collection/array.nit:724 */
7178 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7179 /* ../lib/standard/collection/array.nit:281 */
7180 goto label83;
7181 label83: while(0);
7182 /* compiling/compiling_icode.nit:758 */
7183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7184 if (!once_value_84) {
7185 fra.me.REG[7] = BOX_NativeString("))");
7186 REGB1 = TAG_Int(2);
7187 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7188 once_value_84 = fra.me.REG[7];
7189 register_static_object(&once_value_84);
7190 } else fra.me.REG[7] = once_value_84;
7191 fra.me.REG[7] = fra.me.REG[7];
7192 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7193 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7194 fra.me.REG[5] = fra.me.REG[6];
7195 } else {
7196 /* compiling/compiling_icode.nit:759 */
7197 if (!once_value_85) {
7198 if (!once_value_86) {
7199 fra.me.REG[6] = BOX_NativeString("<=");
7200 REGB1 = TAG_Int(2);
7201 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7202 once_value_86 = fra.me.REG[6];
7203 register_static_object(&once_value_86);
7204 } else fra.me.REG[6] = once_value_86;
7205 fra.me.REG[6] = fra.me.REG[6];
7206 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7207 once_value_85 = fra.me.REG[6];
7208 register_static_object(&once_value_85);
7209 } else fra.me.REG[6] = once_value_85;
7210 fra.me.REG[6] = fra.me.REG[6];
7211 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7212 if (UNTAG_Bool(REGB1)) {
7213 } else {
7214 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7215 REGB1 = REGB2;
7216 }
7217 if (UNTAG_Bool(REGB1)) {
7218 /* compiling/compiling_icode.nit:760 */
7219 REGB1 = TAG_Int(5);
7220 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7221 if (!once_value_87) {
7222 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7223 REGB1 = TAG_Int(19);
7224 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7225 once_value_87 = fra.me.REG[7];
7226 register_static_object(&once_value_87);
7227 } else fra.me.REG[7] = once_value_87;
7228 fra.me.REG[7] = fra.me.REG[7];
7229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7230 REGB1 = TAG_Int(0);
7231 /* ../lib/standard/collection/array.nit:278 */
7232 fra.me.REG[7] = fra.me.REG[4];
7233 /* ../lib/standard/collection/array.nit:280 */
7234 REGB2 = TAG_Int(0);
7235 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7236 if (UNTAG_Bool(REGB0)) {
7237 } else {
7238 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7239 }
7240 /* ../lib/standard/kernel.nit:236 */
7241 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7242 /* ../lib/standard/collection/array.nit:280 */
7243 if (UNTAG_Bool(REGB2)) {
7244 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7245 if (UNTAG_Bool(REGB2)) {
7246 } else {
7247 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7248 }
7249 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7250 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7251 if (UNTAG_Bool(REGB0)) {
7252 } else {
7253 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7254 }
7255 /* ../lib/standard/kernel.nit:235 */
7256 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7257 } else {
7258 /* ../lib/standard/collection/array.nit:280 */
7259 REGB0 = TAG_Bool(0);
7260 REGB2 = REGB0;
7261 }
7262 if (UNTAG_Bool(REGB2)) {
7263 } else {
7264 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7265 }
7266 /* ../lib/standard/collection/array.nit:281 */
7267 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7268 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7269 if (UNTAG_Bool(REGB2)) {
7270 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7271 }
7272 /* ../lib/standard/collection/array.nit:724 */
7273 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7274 /* ../lib/standard/collection/array.nit:281 */
7275 goto label88;
7276 label88: while(0);
7277 /* compiling/compiling_icode.nit:760 */
7278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7279 if (!once_value_89) {
7280 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
7281 REGB1 = TAG_Int(13);
7282 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7283 once_value_89 = fra.me.REG[7];
7284 register_static_object(&once_value_89);
7285 } else fra.me.REG[7] = once_value_89;
7286 fra.me.REG[7] = fra.me.REG[7];
7287 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7288 REGB1 = TAG_Int(1);
7289 /* ../lib/standard/collection/array.nit:278 */
7290 fra.me.REG[7] = fra.me.REG[4];
7291 /* ../lib/standard/collection/array.nit:280 */
7292 REGB2 = TAG_Int(0);
7293 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7294 if (UNTAG_Bool(REGB0)) {
7295 } else {
7296 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7297 }
7298 /* ../lib/standard/kernel.nit:236 */
7299 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7300 /* ../lib/standard/collection/array.nit:280 */
7301 if (UNTAG_Bool(REGB2)) {
7302 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7303 if (UNTAG_Bool(REGB2)) {
7304 } else {
7305 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7306 }
7307 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7308 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7309 if (UNTAG_Bool(REGB0)) {
7310 } else {
7311 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7312 }
7313 /* ../lib/standard/kernel.nit:235 */
7314 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7315 } else {
7316 /* ../lib/standard/collection/array.nit:280 */
7317 REGB0 = TAG_Bool(0);
7318 REGB2 = REGB0;
7319 }
7320 if (UNTAG_Bool(REGB2)) {
7321 } else {
7322 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7323 }
7324 /* ../lib/standard/collection/array.nit:281 */
7325 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7326 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7327 if (UNTAG_Bool(REGB2)) {
7328 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7329 }
7330 /* ../lib/standard/collection/array.nit:724 */
7331 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7332 /* ../lib/standard/collection/array.nit:281 */
7333 goto label90;
7334 label90: while(0);
7335 /* compiling/compiling_icode.nit:760 */
7336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7337 if (!once_value_91) {
7338 fra.me.REG[7] = BOX_NativeString("))");
7339 REGB1 = TAG_Int(2);
7340 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7341 once_value_91 = fra.me.REG[7];
7342 register_static_object(&once_value_91);
7343 } else fra.me.REG[7] = once_value_91;
7344 fra.me.REG[7] = fra.me.REG[7];
7345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7346 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7347 fra.me.REG[5] = fra.me.REG[6];
7348 } else {
7349 /* compiling/compiling_icode.nit:761 */
7350 if (!once_value_92) {
7351 if (!once_value_93) {
7352 fra.me.REG[6] = BOX_NativeString(">=");
7353 REGB1 = TAG_Int(2);
7354 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7355 once_value_93 = fra.me.REG[6];
7356 register_static_object(&once_value_93);
7357 } else fra.me.REG[6] = once_value_93;
7358 fra.me.REG[6] = fra.me.REG[6];
7359 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7360 once_value_92 = fra.me.REG[6];
7361 register_static_object(&once_value_92);
7362 } else fra.me.REG[6] = once_value_92;
7363 fra.me.REG[6] = fra.me.REG[6];
7364 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7365 if (UNTAG_Bool(REGB1)) {
7366 } else {
7367 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7368 REGB1 = REGB2;
7369 }
7370 if (UNTAG_Bool(REGB1)) {
7371 /* compiling/compiling_icode.nit:762 */
7372 REGB1 = TAG_Int(5);
7373 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7374 if (!once_value_94) {
7375 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7376 REGB1 = TAG_Int(19);
7377 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7378 once_value_94 = fra.me.REG[7];
7379 register_static_object(&once_value_94);
7380 } else fra.me.REG[7] = once_value_94;
7381 fra.me.REG[7] = fra.me.REG[7];
7382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7383 REGB1 = TAG_Int(0);
7384 /* ../lib/standard/collection/array.nit:278 */
7385 fra.me.REG[7] = fra.me.REG[4];
7386 /* ../lib/standard/collection/array.nit:280 */
7387 REGB2 = TAG_Int(0);
7388 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7389 if (UNTAG_Bool(REGB0)) {
7390 } else {
7391 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7392 }
7393 /* ../lib/standard/kernel.nit:236 */
7394 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7395 /* ../lib/standard/collection/array.nit:280 */
7396 if (UNTAG_Bool(REGB2)) {
7397 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7398 if (UNTAG_Bool(REGB2)) {
7399 } else {
7400 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7401 }
7402 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7403 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7404 if (UNTAG_Bool(REGB0)) {
7405 } else {
7406 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7407 }
7408 /* ../lib/standard/kernel.nit:235 */
7409 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7410 } else {
7411 /* ../lib/standard/collection/array.nit:280 */
7412 REGB0 = TAG_Bool(0);
7413 REGB2 = REGB0;
7414 }
7415 if (UNTAG_Bool(REGB2)) {
7416 } else {
7417 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7418 }
7419 /* ../lib/standard/collection/array.nit:281 */
7420 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7421 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7422 if (UNTAG_Bool(REGB2)) {
7423 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7424 }
7425 /* ../lib/standard/collection/array.nit:724 */
7426 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7427 /* ../lib/standard/collection/array.nit:281 */
7428 goto label95;
7429 label95: while(0);
7430 /* compiling/compiling_icode.nit:762 */
7431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7432 if (!once_value_96) {
7433 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
7434 REGB1 = TAG_Int(13);
7435 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7436 once_value_96 = fra.me.REG[7];
7437 register_static_object(&once_value_96);
7438 } else fra.me.REG[7] = once_value_96;
7439 fra.me.REG[7] = fra.me.REG[7];
7440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7441 REGB1 = TAG_Int(1);
7442 /* ../lib/standard/collection/array.nit:278 */
7443 fra.me.REG[7] = fra.me.REG[4];
7444 /* ../lib/standard/collection/array.nit:280 */
7445 REGB2 = TAG_Int(0);
7446 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7447 if (UNTAG_Bool(REGB0)) {
7448 } else {
7449 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7450 }
7451 /* ../lib/standard/kernel.nit:236 */
7452 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7453 /* ../lib/standard/collection/array.nit:280 */
7454 if (UNTAG_Bool(REGB2)) {
7455 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7456 if (UNTAG_Bool(REGB2)) {
7457 } else {
7458 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7459 }
7460 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7461 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7462 if (UNTAG_Bool(REGB0)) {
7463 } else {
7464 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7465 }
7466 /* ../lib/standard/kernel.nit:235 */
7467 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7468 } else {
7469 /* ../lib/standard/collection/array.nit:280 */
7470 REGB0 = TAG_Bool(0);
7471 REGB2 = REGB0;
7472 }
7473 if (UNTAG_Bool(REGB2)) {
7474 } else {
7475 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7476 }
7477 /* ../lib/standard/collection/array.nit:281 */
7478 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7479 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7480 if (UNTAG_Bool(REGB2)) {
7481 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7482 }
7483 /* ../lib/standard/collection/array.nit:724 */
7484 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7485 /* ../lib/standard/collection/array.nit:281 */
7486 goto label97;
7487 label97: while(0);
7488 /* compiling/compiling_icode.nit:762 */
7489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7490 if (!once_value_98) {
7491 fra.me.REG[7] = BOX_NativeString("))");
7492 REGB1 = TAG_Int(2);
7493 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7494 once_value_98 = fra.me.REG[7];
7495 register_static_object(&once_value_98);
7496 } else fra.me.REG[7] = once_value_98;
7497 fra.me.REG[7] = fra.me.REG[7];
7498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7499 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7500 fra.me.REG[5] = fra.me.REG[6];
7501 } else {
7502 /* compiling/compiling_icode.nit:763 */
7503 if (!once_value_99) {
7504 if (!once_value_100) {
7505 fra.me.REG[6] = BOX_NativeString("lshift");
7506 REGB1 = TAG_Int(6);
7507 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7508 once_value_100 = fra.me.REG[6];
7509 register_static_object(&once_value_100);
7510 } else fra.me.REG[6] = once_value_100;
7511 fra.me.REG[6] = fra.me.REG[6];
7512 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7513 once_value_99 = fra.me.REG[6];
7514 register_static_object(&once_value_99);
7515 } else fra.me.REG[6] = once_value_99;
7516 fra.me.REG[6] = fra.me.REG[6];
7517 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7518 if (UNTAG_Bool(REGB1)) {
7519 } else {
7520 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7521 REGB1 = REGB2;
7522 }
7523 if (UNTAG_Bool(REGB1)) {
7524 /* compiling/compiling_icode.nit:764 */
7525 REGB1 = TAG_Int(5);
7526 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7527 if (!once_value_101) {
7528 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7529 REGB1 = TAG_Int(18);
7530 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7531 once_value_101 = fra.me.REG[7];
7532 register_static_object(&once_value_101);
7533 } else fra.me.REG[7] = once_value_101;
7534 fra.me.REG[7] = fra.me.REG[7];
7535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7536 REGB1 = TAG_Int(0);
7537 /* ../lib/standard/collection/array.nit:278 */
7538 fra.me.REG[7] = fra.me.REG[4];
7539 /* ../lib/standard/collection/array.nit:280 */
7540 REGB2 = TAG_Int(0);
7541 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7542 if (UNTAG_Bool(REGB0)) {
7543 } else {
7544 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7545 }
7546 /* ../lib/standard/kernel.nit:236 */
7547 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7548 /* ../lib/standard/collection/array.nit:280 */
7549 if (UNTAG_Bool(REGB2)) {
7550 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7551 if (UNTAG_Bool(REGB2)) {
7552 } else {
7553 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7554 }
7555 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7556 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7557 if (UNTAG_Bool(REGB0)) {
7558 } else {
7559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7560 }
7561 /* ../lib/standard/kernel.nit:235 */
7562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7563 } else {
7564 /* ../lib/standard/collection/array.nit:280 */
7565 REGB0 = TAG_Bool(0);
7566 REGB2 = REGB0;
7567 }
7568 if (UNTAG_Bool(REGB2)) {
7569 } else {
7570 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7571 }
7572 /* ../lib/standard/collection/array.nit:281 */
7573 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7574 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7575 if (UNTAG_Bool(REGB2)) {
7576 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7577 }
7578 /* ../lib/standard/collection/array.nit:724 */
7579 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7580 /* ../lib/standard/collection/array.nit:281 */
7581 goto label102;
7582 label102: while(0);
7583 /* compiling/compiling_icode.nit:764 */
7584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7585 if (!once_value_103) {
7586 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7587 REGB1 = TAG_Int(13);
7588 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7589 once_value_103 = fra.me.REG[7];
7590 register_static_object(&once_value_103);
7591 } else fra.me.REG[7] = once_value_103;
7592 fra.me.REG[7] = fra.me.REG[7];
7593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7594 REGB1 = TAG_Int(1);
7595 /* ../lib/standard/collection/array.nit:278 */
7596 fra.me.REG[7] = fra.me.REG[4];
7597 /* ../lib/standard/collection/array.nit:280 */
7598 REGB2 = TAG_Int(0);
7599 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7600 if (UNTAG_Bool(REGB0)) {
7601 } else {
7602 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7603 }
7604 /* ../lib/standard/kernel.nit:236 */
7605 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7606 /* ../lib/standard/collection/array.nit:280 */
7607 if (UNTAG_Bool(REGB2)) {
7608 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7609 if (UNTAG_Bool(REGB2)) {
7610 } else {
7611 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7612 }
7613 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7614 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7615 if (UNTAG_Bool(REGB0)) {
7616 } else {
7617 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7618 }
7619 /* ../lib/standard/kernel.nit:235 */
7620 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7621 } else {
7622 /* ../lib/standard/collection/array.nit:280 */
7623 REGB0 = TAG_Bool(0);
7624 REGB2 = REGB0;
7625 }
7626 if (UNTAG_Bool(REGB2)) {
7627 } else {
7628 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7629 }
7630 /* ../lib/standard/collection/array.nit:281 */
7631 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7632 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7633 if (UNTAG_Bool(REGB2)) {
7634 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7635 }
7636 /* ../lib/standard/collection/array.nit:724 */
7637 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7638 /* ../lib/standard/collection/array.nit:281 */
7639 goto label104;
7640 label104: while(0);
7641 /* compiling/compiling_icode.nit:764 */
7642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7643 if (!once_value_105) {
7644 fra.me.REG[7] = BOX_NativeString("))");
7645 REGB1 = TAG_Int(2);
7646 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7647 once_value_105 = fra.me.REG[7];
7648 register_static_object(&once_value_105);
7649 } else fra.me.REG[7] = once_value_105;
7650 fra.me.REG[7] = fra.me.REG[7];
7651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7652 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7653 fra.me.REG[5] = fra.me.REG[6];
7654 } else {
7655 /* compiling/compiling_icode.nit:765 */
7656 if (!once_value_106) {
7657 if (!once_value_107) {
7658 fra.me.REG[6] = BOX_NativeString("rshift");
7659 REGB1 = TAG_Int(6);
7660 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7661 once_value_107 = fra.me.REG[6];
7662 register_static_object(&once_value_107);
7663 } else fra.me.REG[6] = once_value_107;
7664 fra.me.REG[6] = fra.me.REG[6];
7665 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7666 once_value_106 = fra.me.REG[6];
7667 register_static_object(&once_value_106);
7668 } else fra.me.REG[6] = once_value_106;
7669 fra.me.REG[6] = fra.me.REG[6];
7670 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7671 if (UNTAG_Bool(REGB1)) {
7672 } else {
7673 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7674 REGB1 = REGB2;
7675 }
7676 if (UNTAG_Bool(REGB1)) {
7677 /* compiling/compiling_icode.nit:766 */
7678 REGB1 = TAG_Int(5);
7679 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7680 if (!once_value_108) {
7681 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7682 REGB1 = TAG_Int(18);
7683 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7684 once_value_108 = fra.me.REG[7];
7685 register_static_object(&once_value_108);
7686 } else fra.me.REG[7] = once_value_108;
7687 fra.me.REG[7] = fra.me.REG[7];
7688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7689 REGB1 = TAG_Int(0);
7690 /* ../lib/standard/collection/array.nit:278 */
7691 fra.me.REG[7] = fra.me.REG[4];
7692 /* ../lib/standard/collection/array.nit:280 */
7693 REGB2 = TAG_Int(0);
7694 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7695 if (UNTAG_Bool(REGB0)) {
7696 } else {
7697 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7698 }
7699 /* ../lib/standard/kernel.nit:236 */
7700 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7701 /* ../lib/standard/collection/array.nit:280 */
7702 if (UNTAG_Bool(REGB2)) {
7703 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7704 if (UNTAG_Bool(REGB2)) {
7705 } else {
7706 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7707 }
7708 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7709 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7710 if (UNTAG_Bool(REGB0)) {
7711 } else {
7712 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7713 }
7714 /* ../lib/standard/kernel.nit:235 */
7715 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7716 } else {
7717 /* ../lib/standard/collection/array.nit:280 */
7718 REGB0 = TAG_Bool(0);
7719 REGB2 = REGB0;
7720 }
7721 if (UNTAG_Bool(REGB2)) {
7722 } else {
7723 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7724 }
7725 /* ../lib/standard/collection/array.nit:281 */
7726 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7727 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7728 if (UNTAG_Bool(REGB2)) {
7729 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7730 }
7731 /* ../lib/standard/collection/array.nit:724 */
7732 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7733 /* ../lib/standard/collection/array.nit:281 */
7734 goto label109;
7735 label109: while(0);
7736 /* compiling/compiling_icode.nit:766 */
7737 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7738 if (!once_value_110) {
7739 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7740 REGB1 = TAG_Int(13);
7741 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7742 once_value_110 = fra.me.REG[7];
7743 register_static_object(&once_value_110);
7744 } else fra.me.REG[7] = once_value_110;
7745 fra.me.REG[7] = fra.me.REG[7];
7746 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7747 REGB1 = TAG_Int(1);
7748 /* ../lib/standard/collection/array.nit:278 */
7749 fra.me.REG[7] = fra.me.REG[4];
7750 /* ../lib/standard/collection/array.nit:280 */
7751 REGB2 = TAG_Int(0);
7752 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7753 if (UNTAG_Bool(REGB0)) {
7754 } else {
7755 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7756 }
7757 /* ../lib/standard/kernel.nit:236 */
7758 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7759 /* ../lib/standard/collection/array.nit:280 */
7760 if (UNTAG_Bool(REGB2)) {
7761 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7762 if (UNTAG_Bool(REGB2)) {
7763 } else {
7764 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7765 }
7766 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7767 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7768 if (UNTAG_Bool(REGB0)) {
7769 } else {
7770 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7771 }
7772 /* ../lib/standard/kernel.nit:235 */
7773 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7774 } else {
7775 /* ../lib/standard/collection/array.nit:280 */
7776 REGB0 = TAG_Bool(0);
7777 REGB2 = REGB0;
7778 }
7779 if (UNTAG_Bool(REGB2)) {
7780 } else {
7781 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7782 }
7783 /* ../lib/standard/collection/array.nit:281 */
7784 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7785 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7786 if (UNTAG_Bool(REGB2)) {
7787 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7788 }
7789 /* ../lib/standard/collection/array.nit:724 */
7790 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7791 /* ../lib/standard/collection/array.nit:281 */
7792 goto label111;
7793 label111: while(0);
7794 /* compiling/compiling_icode.nit:766 */
7795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7796 if (!once_value_112) {
7797 fra.me.REG[7] = BOX_NativeString("))");
7798 REGB1 = TAG_Int(2);
7799 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7800 once_value_112 = fra.me.REG[7];
7801 register_static_object(&once_value_112);
7802 } else fra.me.REG[7] = once_value_112;
7803 fra.me.REG[7] = fra.me.REG[7];
7804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7805 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7806 fra.me.REG[5] = fra.me.REG[6];
7807 } else {
7808 /* compiling/compiling_icode.nit:767 */
7809 if (!once_value_113) {
7810 if (!once_value_114) {
7811 fra.me.REG[6] = BOX_NativeString("==");
7812 REGB1 = TAG_Int(2);
7813 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7814 once_value_114 = fra.me.REG[6];
7815 register_static_object(&once_value_114);
7816 } else fra.me.REG[6] = once_value_114;
7817 fra.me.REG[6] = fra.me.REG[6];
7818 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7819 once_value_113 = fra.me.REG[6];
7820 register_static_object(&once_value_113);
7821 } else fra.me.REG[6] = once_value_113;
7822 fra.me.REG[6] = fra.me.REG[6];
7823 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7824 if (UNTAG_Bool(REGB1)) {
7825 } else {
7826 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7827 REGB1 = REGB2;
7828 }
7829 if (UNTAG_Bool(REGB1)) {
7830 /* compiling/compiling_icode.nit:768 */
7831 REGB1 = TAG_Int(5);
7832 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7833 if (!once_value_115) {
7834 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7835 REGB1 = TAG_Int(10);
7836 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7837 once_value_115 = fra.me.REG[7];
7838 register_static_object(&once_value_115);
7839 } else fra.me.REG[7] = once_value_115;
7840 fra.me.REG[7] = fra.me.REG[7];
7841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7842 REGB1 = TAG_Int(0);
7843 /* ../lib/standard/collection/array.nit:278 */
7844 fra.me.REG[7] = fra.me.REG[4];
7845 /* ../lib/standard/collection/array.nit:280 */
7846 REGB2 = TAG_Int(0);
7847 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7848 if (UNTAG_Bool(REGB0)) {
7849 } else {
7850 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7851 }
7852 /* ../lib/standard/kernel.nit:236 */
7853 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7854 /* ../lib/standard/collection/array.nit:280 */
7855 if (UNTAG_Bool(REGB2)) {
7856 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7857 if (UNTAG_Bool(REGB2)) {
7858 } else {
7859 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7860 }
7861 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7862 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7863 if (UNTAG_Bool(REGB0)) {
7864 } else {
7865 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7866 }
7867 /* ../lib/standard/kernel.nit:235 */
7868 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7869 } else {
7870 /* ../lib/standard/collection/array.nit:280 */
7871 REGB0 = TAG_Bool(0);
7872 REGB2 = REGB0;
7873 }
7874 if (UNTAG_Bool(REGB2)) {
7875 } else {
7876 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7877 }
7878 /* ../lib/standard/collection/array.nit:281 */
7879 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7880 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7881 if (UNTAG_Bool(REGB2)) {
7882 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7883 }
7884 /* ../lib/standard/collection/array.nit:724 */
7885 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7886 /* ../lib/standard/collection/array.nit:281 */
7887 goto label116;
7888 label116: while(0);
7889 /* compiling/compiling_icode.nit:768 */
7890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7891 if (!once_value_117) {
7892 fra.me.REG[7] = BOX_NativeString(")==(");
7893 REGB1 = TAG_Int(4);
7894 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7895 once_value_117 = fra.me.REG[7];
7896 register_static_object(&once_value_117);
7897 } else fra.me.REG[7] = once_value_117;
7898 fra.me.REG[7] = fra.me.REG[7];
7899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7900 REGB1 = TAG_Int(1);
7901 /* ../lib/standard/collection/array.nit:278 */
7902 fra.me.REG[7] = fra.me.REG[4];
7903 /* ../lib/standard/collection/array.nit:280 */
7904 REGB2 = TAG_Int(0);
7905 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7906 if (UNTAG_Bool(REGB0)) {
7907 } else {
7908 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7909 }
7910 /* ../lib/standard/kernel.nit:236 */
7911 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7912 /* ../lib/standard/collection/array.nit:280 */
7913 if (UNTAG_Bool(REGB2)) {
7914 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7915 if (UNTAG_Bool(REGB2)) {
7916 } else {
7917 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7918 }
7919 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7920 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7921 if (UNTAG_Bool(REGB0)) {
7922 } else {
7923 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7924 }
7925 /* ../lib/standard/kernel.nit:235 */
7926 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7927 } else {
7928 /* ../lib/standard/collection/array.nit:280 */
7929 REGB0 = TAG_Bool(0);
7930 REGB2 = REGB0;
7931 }
7932 if (UNTAG_Bool(REGB2)) {
7933 } else {
7934 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7935 }
7936 /* ../lib/standard/collection/array.nit:281 */
7937 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7938 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7939 if (UNTAG_Bool(REGB2)) {
7940 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7941 }
7942 /* ../lib/standard/collection/array.nit:724 */
7943 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7944 /* ../lib/standard/collection/array.nit:281 */
7945 goto label118;
7946 label118: while(0);
7947 /* compiling/compiling_icode.nit:768 */
7948 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7949 if (!once_value_119) {
7950 fra.me.REG[7] = BOX_NativeString("))");
7951 REGB1 = TAG_Int(2);
7952 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7953 once_value_119 = fra.me.REG[7];
7954 register_static_object(&once_value_119);
7955 } else fra.me.REG[7] = once_value_119;
7956 fra.me.REG[7] = fra.me.REG[7];
7957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7958 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7959 fra.me.REG[5] = fra.me.REG[6];
7960 } else {
7961 /* compiling/compiling_icode.nit:769 */
7962 if (!once_value_120) {
7963 if (!once_value_121) {
7964 fra.me.REG[6] = BOX_NativeString("!=");
7965 REGB1 = TAG_Int(2);
7966 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7967 once_value_121 = fra.me.REG[6];
7968 register_static_object(&once_value_121);
7969 } else fra.me.REG[6] = once_value_121;
7970 fra.me.REG[6] = fra.me.REG[6];
7971 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7972 once_value_120 = fra.me.REG[6];
7973 register_static_object(&once_value_120);
7974 } else fra.me.REG[6] = once_value_120;
7975 fra.me.REG[6] = fra.me.REG[6];
7976 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7977 if (UNTAG_Bool(REGB1)) {
7978 } else {
7979 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7980 REGB1 = REGB2;
7981 }
7982 if (UNTAG_Bool(REGB1)) {
7983 /* compiling/compiling_icode.nit:770 */
7984 REGB1 = TAG_Int(5);
7985 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7986 if (!once_value_122) {
7987 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7988 REGB1 = TAG_Int(10);
7989 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7990 once_value_122 = fra.me.REG[7];
7991 register_static_object(&once_value_122);
7992 } else fra.me.REG[7] = once_value_122;
7993 fra.me.REG[7] = fra.me.REG[7];
7994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7995 REGB1 = TAG_Int(0);
7996 /* ../lib/standard/collection/array.nit:278 */
7997 fra.me.REG[7] = fra.me.REG[4];
7998 /* ../lib/standard/collection/array.nit:280 */
7999 REGB2 = TAG_Int(0);
8000 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8001 if (UNTAG_Bool(REGB0)) {
8002 } else {
8003 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8004 }
8005 /* ../lib/standard/kernel.nit:236 */
8006 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8007 /* ../lib/standard/collection/array.nit:280 */
8008 if (UNTAG_Bool(REGB2)) {
8009 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8010 if (UNTAG_Bool(REGB2)) {
8011 } else {
8012 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8013 }
8014 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8015 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8016 if (UNTAG_Bool(REGB0)) {
8017 } else {
8018 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8019 }
8020 /* ../lib/standard/kernel.nit:235 */
8021 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8022 } else {
8023 /* ../lib/standard/collection/array.nit:280 */
8024 REGB0 = TAG_Bool(0);
8025 REGB2 = REGB0;
8026 }
8027 if (UNTAG_Bool(REGB2)) {
8028 } else {
8029 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8030 }
8031 /* ../lib/standard/collection/array.nit:281 */
8032 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8033 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8034 if (UNTAG_Bool(REGB2)) {
8035 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8036 }
8037 /* ../lib/standard/collection/array.nit:724 */
8038 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8039 /* ../lib/standard/collection/array.nit:281 */
8040 goto label123;
8041 label123: while(0);
8042 /* compiling/compiling_icode.nit:770 */
8043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8044 if (!once_value_124) {
8045 fra.me.REG[7] = BOX_NativeString(")!=(");
8046 REGB1 = TAG_Int(4);
8047 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8048 once_value_124 = fra.me.REG[7];
8049 register_static_object(&once_value_124);
8050 } else fra.me.REG[7] = once_value_124;
8051 fra.me.REG[7] = fra.me.REG[7];
8052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8053 REGB1 = TAG_Int(1);
8054 /* ../lib/standard/collection/array.nit:278 */
8055 fra.me.REG[7] = fra.me.REG[4];
8056 /* ../lib/standard/collection/array.nit:280 */
8057 REGB2 = TAG_Int(0);
8058 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8059 if (UNTAG_Bool(REGB0)) {
8060 } else {
8061 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8062 }
8063 /* ../lib/standard/kernel.nit:236 */
8064 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8065 /* ../lib/standard/collection/array.nit:280 */
8066 if (UNTAG_Bool(REGB2)) {
8067 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8068 if (UNTAG_Bool(REGB2)) {
8069 } else {
8070 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8071 }
8072 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8073 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8074 if (UNTAG_Bool(REGB0)) {
8075 } else {
8076 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8077 }
8078 /* ../lib/standard/kernel.nit:235 */
8079 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8080 } else {
8081 /* ../lib/standard/collection/array.nit:280 */
8082 REGB0 = TAG_Bool(0);
8083 REGB2 = REGB0;
8084 }
8085 if (UNTAG_Bool(REGB2)) {
8086 } else {
8087 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8088 }
8089 /* ../lib/standard/collection/array.nit:281 */
8090 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8091 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8092 if (UNTAG_Bool(REGB2)) {
8093 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8094 }
8095 /* ../lib/standard/collection/array.nit:724 */
8096 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8097 /* ../lib/standard/collection/array.nit:281 */
8098 goto label125;
8099 label125: while(0);
8100 /* compiling/compiling_icode.nit:770 */
8101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8102 if (!once_value_126) {
8103 fra.me.REG[7] = BOX_NativeString("))");
8104 REGB1 = TAG_Int(2);
8105 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8106 once_value_126 = fra.me.REG[7];
8107 register_static_object(&once_value_126);
8108 } else fra.me.REG[7] = once_value_126;
8109 fra.me.REG[7] = fra.me.REG[7];
8110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8111 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8112 fra.me.REG[5] = fra.me.REG[6];
8113 }
8114 }
8115 }
8116 }
8117 }
8118 }
8119 }
8120 }
8121 }
8122 }
8123 }
8124 }
8125 }
8126 }
8127 }
8128 }
8129 }
8130 }
8131 }
8132 }
8133 } else {
8134 /* compiling/compiling_icode.nit:772 */
8135 if (!once_value_127) {
8136 if (!once_value_128) {
8137 fra.me.REG[6] = BOX_NativeString("Float");
8138 REGB1 = TAG_Int(5);
8139 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8140 once_value_128 = fra.me.REG[6];
8141 register_static_object(&once_value_128);
8142 } else fra.me.REG[6] = once_value_128;
8143 fra.me.REG[6] = fra.me.REG[6];
8144 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8145 once_value_127 = fra.me.REG[6];
8146 register_static_object(&once_value_127);
8147 } else fra.me.REG[6] = once_value_127;
8148 fra.me.REG[6] = fra.me.REG[6];
8149 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8150 if (UNTAG_Bool(REGB1)) {
8151 } else {
8152 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8153 REGB1 = REGB2;
8154 }
8155 if (UNTAG_Bool(REGB1)) {
8156 /* compiling/compiling_icode.nit:773 */
8157 if (!once_value_129) {
8158 if (!once_value_130) {
8159 fra.me.REG[6] = BOX_NativeString("object_id");
8160 REGB1 = TAG_Int(9);
8161 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8162 once_value_130 = fra.me.REG[6];
8163 register_static_object(&once_value_130);
8164 } else fra.me.REG[6] = once_value_130;
8165 fra.me.REG[6] = fra.me.REG[6];
8166 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8167 once_value_129 = fra.me.REG[6];
8168 register_static_object(&once_value_129);
8169 } else fra.me.REG[6] = once_value_129;
8170 fra.me.REG[6] = fra.me.REG[6];
8171 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8172 if (UNTAG_Bool(REGB1)) {
8173 } else {
8174 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8175 REGB1 = REGB2;
8176 }
8177 if (UNTAG_Bool(REGB1)) {
8178 /* compiling/compiling_icode.nit:774 */
8179 REGB1 = TAG_Int(3);
8180 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8181 if (!once_value_131) {
8182 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8183 REGB1 = TAG_Int(28);
8184 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8185 once_value_131 = fra.me.REG[7];
8186 register_static_object(&once_value_131);
8187 } else fra.me.REG[7] = once_value_131;
8188 fra.me.REG[7] = fra.me.REG[7];
8189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8190 REGB1 = TAG_Int(0);
8191 /* ../lib/standard/collection/array.nit:278 */
8192 fra.me.REG[7] = fra.me.REG[4];
8193 /* ../lib/standard/collection/array.nit:280 */
8194 REGB2 = TAG_Int(0);
8195 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8196 if (UNTAG_Bool(REGB0)) {
8197 } else {
8198 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8199 }
8200 /* ../lib/standard/kernel.nit:236 */
8201 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8202 /* ../lib/standard/collection/array.nit:280 */
8203 if (UNTAG_Bool(REGB2)) {
8204 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8205 if (UNTAG_Bool(REGB2)) {
8206 } else {
8207 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8208 }
8209 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8210 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8211 if (UNTAG_Bool(REGB0)) {
8212 } else {
8213 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8214 }
8215 /* ../lib/standard/kernel.nit:235 */
8216 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8217 } else {
8218 /* ../lib/standard/collection/array.nit:280 */
8219 REGB0 = TAG_Bool(0);
8220 REGB2 = REGB0;
8221 }
8222 if (UNTAG_Bool(REGB2)) {
8223 } else {
8224 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8225 }
8226 /* ../lib/standard/collection/array.nit:281 */
8227 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8228 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8229 if (UNTAG_Bool(REGB2)) {
8230 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8231 }
8232 /* ../lib/standard/collection/array.nit:724 */
8233 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8234 /* ../lib/standard/collection/array.nit:281 */
8235 goto label132;
8236 label132: while(0);
8237 /* compiling/compiling_icode.nit:774 */
8238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8239 if (!once_value_133) {
8240 fra.me.REG[7] = BOX_NativeString("))");
8241 REGB1 = TAG_Int(2);
8242 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8243 once_value_133 = fra.me.REG[7];
8244 register_static_object(&once_value_133);
8245 } else fra.me.REG[7] = once_value_133;
8246 fra.me.REG[7] = fra.me.REG[7];
8247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8248 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8249 fra.me.REG[5] = fra.me.REG[6];
8250 } else {
8251 /* compiling/compiling_icode.nit:775 */
8252 if (!once_value_134) {
8253 if (!once_value_135) {
8254 fra.me.REG[6] = BOX_NativeString("unary -");
8255 REGB1 = TAG_Int(7);
8256 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8257 once_value_135 = fra.me.REG[6];
8258 register_static_object(&once_value_135);
8259 } else fra.me.REG[6] = once_value_135;
8260 fra.me.REG[6] = fra.me.REG[6];
8261 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8262 once_value_134 = fra.me.REG[6];
8263 register_static_object(&once_value_134);
8264 } else fra.me.REG[6] = once_value_134;
8265 fra.me.REG[6] = fra.me.REG[6];
8266 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8267 if (UNTAG_Bool(REGB1)) {
8268 } else {
8269 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8270 REGB1 = REGB2;
8271 }
8272 if (UNTAG_Bool(REGB1)) {
8273 /* compiling/compiling_icode.nit:776 */
8274 REGB1 = TAG_Int(3);
8275 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8276 if (!once_value_136) {
8277 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
8278 REGB1 = TAG_Int(23);
8279 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8280 once_value_136 = fra.me.REG[7];
8281 register_static_object(&once_value_136);
8282 } else fra.me.REG[7] = once_value_136;
8283 fra.me.REG[7] = fra.me.REG[7];
8284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8285 REGB1 = TAG_Int(0);
8286 /* ../lib/standard/collection/array.nit:278 */
8287 fra.me.REG[7] = fra.me.REG[4];
8288 /* ../lib/standard/collection/array.nit:280 */
8289 REGB2 = TAG_Int(0);
8290 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8291 if (UNTAG_Bool(REGB0)) {
8292 } else {
8293 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8294 }
8295 /* ../lib/standard/kernel.nit:236 */
8296 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8297 /* ../lib/standard/collection/array.nit:280 */
8298 if (UNTAG_Bool(REGB2)) {
8299 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8300 if (UNTAG_Bool(REGB2)) {
8301 } else {
8302 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8303 }
8304 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8305 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8306 if (UNTAG_Bool(REGB0)) {
8307 } else {
8308 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8309 }
8310 /* ../lib/standard/kernel.nit:235 */
8311 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8312 } else {
8313 /* ../lib/standard/collection/array.nit:280 */
8314 REGB0 = TAG_Bool(0);
8315 REGB2 = REGB0;
8316 }
8317 if (UNTAG_Bool(REGB2)) {
8318 } else {
8319 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8320 }
8321 /* ../lib/standard/collection/array.nit:281 */
8322 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8323 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8324 if (UNTAG_Bool(REGB2)) {
8325 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8326 }
8327 /* ../lib/standard/collection/array.nit:724 */
8328 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8329 /* ../lib/standard/collection/array.nit:281 */
8330 goto label137;
8331 label137: while(0);
8332 /* compiling/compiling_icode.nit:776 */
8333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8334 if (!once_value_138) {
8335 fra.me.REG[7] = BOX_NativeString("))");
8336 REGB1 = TAG_Int(2);
8337 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8338 once_value_138 = fra.me.REG[7];
8339 register_static_object(&once_value_138);
8340 } else fra.me.REG[7] = once_value_138;
8341 fra.me.REG[7] = fra.me.REG[7];
8342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8343 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8344 fra.me.REG[5] = fra.me.REG[6];
8345 } else {
8346 /* compiling/compiling_icode.nit:777 */
8347 if (!once_value_139) {
8348 if (!once_value_140) {
8349 fra.me.REG[6] = BOX_NativeString("output");
8350 REGB1 = TAG_Int(6);
8351 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8352 once_value_140 = fra.me.REG[6];
8353 register_static_object(&once_value_140);
8354 } else fra.me.REG[6] = once_value_140;
8355 fra.me.REG[6] = fra.me.REG[6];
8356 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8357 once_value_139 = fra.me.REG[6];
8358 register_static_object(&once_value_139);
8359 } else fra.me.REG[6] = once_value_139;
8360 fra.me.REG[6] = fra.me.REG[6];
8361 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8362 if (UNTAG_Bool(REGB1)) {
8363 } else {
8364 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8365 REGB1 = REGB2;
8366 }
8367 if (UNTAG_Bool(REGB1)) {
8368 /* compiling/compiling_icode.nit:778 */
8369 REGB1 = TAG_Int(3);
8370 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8371 if (!once_value_141) {
8372 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
8373 REGB1 = TAG_Int(27);
8374 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8375 once_value_141 = fra.me.REG[7];
8376 register_static_object(&once_value_141);
8377 } else fra.me.REG[7] = once_value_141;
8378 fra.me.REG[7] = fra.me.REG[7];
8379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8380 REGB1 = TAG_Int(0);
8381 /* ../lib/standard/collection/array.nit:278 */
8382 fra.me.REG[7] = fra.me.REG[4];
8383 /* ../lib/standard/collection/array.nit:280 */
8384 REGB2 = TAG_Int(0);
8385 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8386 if (UNTAG_Bool(REGB0)) {
8387 } else {
8388 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8389 }
8390 /* ../lib/standard/kernel.nit:236 */
8391 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8392 /* ../lib/standard/collection/array.nit:280 */
8393 if (UNTAG_Bool(REGB2)) {
8394 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8395 if (UNTAG_Bool(REGB2)) {
8396 } else {
8397 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8398 }
8399 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8400 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8401 if (UNTAG_Bool(REGB0)) {
8402 } else {
8403 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8404 }
8405 /* ../lib/standard/kernel.nit:235 */
8406 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8407 } else {
8408 /* ../lib/standard/collection/array.nit:280 */
8409 REGB0 = TAG_Bool(0);
8410 REGB2 = REGB0;
8411 }
8412 if (UNTAG_Bool(REGB2)) {
8413 } else {
8414 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8415 }
8416 /* ../lib/standard/collection/array.nit:281 */
8417 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8418 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8419 if (UNTAG_Bool(REGB2)) {
8420 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8421 }
8422 /* ../lib/standard/collection/array.nit:724 */
8423 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8424 /* ../lib/standard/collection/array.nit:281 */
8425 goto label142;
8426 label142: while(0);
8427 /* compiling/compiling_icode.nit:778 */
8428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8429 if (!once_value_143) {
8430 fra.me.REG[7] = BOX_NativeString("));");
8431 REGB1 = TAG_Int(3);
8432 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8433 once_value_143 = fra.me.REG[7];
8434 register_static_object(&once_value_143);
8435 } else fra.me.REG[7] = once_value_143;
8436 fra.me.REG[7] = fra.me.REG[7];
8437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8438 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8439 fra.me.REG[5] = fra.me.REG[6];
8440 } else {
8441 /* compiling/compiling_icode.nit:779 */
8442 if (!once_value_144) {
8443 if (!once_value_145) {
8444 fra.me.REG[6] = BOX_NativeString("to_i");
8445 REGB1 = TAG_Int(4);
8446 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8447 once_value_145 = fra.me.REG[6];
8448 register_static_object(&once_value_145);
8449 } else fra.me.REG[6] = once_value_145;
8450 fra.me.REG[6] = fra.me.REG[6];
8451 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8452 once_value_144 = fra.me.REG[6];
8453 register_static_object(&once_value_144);
8454 } else fra.me.REG[6] = once_value_144;
8455 fra.me.REG[6] = fra.me.REG[6];
8456 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8457 if (UNTAG_Bool(REGB1)) {
8458 } else {
8459 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8460 REGB1 = REGB2;
8461 }
8462 if (UNTAG_Bool(REGB1)) {
8463 /* compiling/compiling_icode.nit:780 */
8464 REGB1 = TAG_Int(3);
8465 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8466 if (!once_value_146) {
8467 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8468 REGB1 = TAG_Int(28);
8469 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8470 once_value_146 = fra.me.REG[7];
8471 register_static_object(&once_value_146);
8472 } else fra.me.REG[7] = once_value_146;
8473 fra.me.REG[7] = fra.me.REG[7];
8474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8475 REGB1 = TAG_Int(0);
8476 /* ../lib/standard/collection/array.nit:278 */
8477 fra.me.REG[7] = fra.me.REG[4];
8478 /* ../lib/standard/collection/array.nit:280 */
8479 REGB2 = TAG_Int(0);
8480 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8481 if (UNTAG_Bool(REGB0)) {
8482 } else {
8483 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8484 }
8485 /* ../lib/standard/kernel.nit:236 */
8486 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8487 /* ../lib/standard/collection/array.nit:280 */
8488 if (UNTAG_Bool(REGB2)) {
8489 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8490 if (UNTAG_Bool(REGB2)) {
8491 } else {
8492 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8493 }
8494 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8495 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8496 if (UNTAG_Bool(REGB0)) {
8497 } else {
8498 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8499 }
8500 /* ../lib/standard/kernel.nit:235 */
8501 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8502 } else {
8503 /* ../lib/standard/collection/array.nit:280 */
8504 REGB0 = TAG_Bool(0);
8505 REGB2 = REGB0;
8506 }
8507 if (UNTAG_Bool(REGB2)) {
8508 } else {
8509 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8510 }
8511 /* ../lib/standard/collection/array.nit:281 */
8512 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8513 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8514 if (UNTAG_Bool(REGB2)) {
8515 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8516 }
8517 /* ../lib/standard/collection/array.nit:724 */
8518 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8519 /* ../lib/standard/collection/array.nit:281 */
8520 goto label147;
8521 label147: while(0);
8522 /* compiling/compiling_icode.nit:780 */
8523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8524 if (!once_value_148) {
8525 fra.me.REG[7] = BOX_NativeString("))");
8526 REGB1 = TAG_Int(2);
8527 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8528 once_value_148 = fra.me.REG[7];
8529 register_static_object(&once_value_148);
8530 } else fra.me.REG[7] = once_value_148;
8531 fra.me.REG[7] = fra.me.REG[7];
8532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8533 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8534 fra.me.REG[5] = fra.me.REG[6];
8535 } else {
8536 /* compiling/compiling_icode.nit:781 */
8537 if (!once_value_149) {
8538 if (!once_value_150) {
8539 fra.me.REG[6] = BOX_NativeString("+");
8540 REGB1 = TAG_Int(1);
8541 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8542 once_value_150 = fra.me.REG[6];
8543 register_static_object(&once_value_150);
8544 } else fra.me.REG[6] = once_value_150;
8545 fra.me.REG[6] = fra.me.REG[6];
8546 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8547 once_value_149 = fra.me.REG[6];
8548 register_static_object(&once_value_149);
8549 } else fra.me.REG[6] = once_value_149;
8550 fra.me.REG[6] = fra.me.REG[6];
8551 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8552 if (UNTAG_Bool(REGB1)) {
8553 } else {
8554 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8555 REGB1 = REGB2;
8556 }
8557 if (UNTAG_Bool(REGB1)) {
8558 /* compiling/compiling_icode.nit:782 */
8559 REGB1 = TAG_Int(5);
8560 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8561 if (!once_value_151) {
8562 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8563 REGB1 = TAG_Int(22);
8564 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8565 once_value_151 = fra.me.REG[7];
8566 register_static_object(&once_value_151);
8567 } else fra.me.REG[7] = once_value_151;
8568 fra.me.REG[7] = fra.me.REG[7];
8569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8570 REGB1 = TAG_Int(0);
8571 /* ../lib/standard/collection/array.nit:278 */
8572 fra.me.REG[7] = fra.me.REG[4];
8573 /* ../lib/standard/collection/array.nit:280 */
8574 REGB2 = TAG_Int(0);
8575 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8576 if (UNTAG_Bool(REGB0)) {
8577 } else {
8578 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8579 }
8580 /* ../lib/standard/kernel.nit:236 */
8581 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8582 /* ../lib/standard/collection/array.nit:280 */
8583 if (UNTAG_Bool(REGB2)) {
8584 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8585 if (UNTAG_Bool(REGB2)) {
8586 } else {
8587 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8588 }
8589 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8590 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8591 if (UNTAG_Bool(REGB0)) {
8592 } else {
8593 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8594 }
8595 /* ../lib/standard/kernel.nit:235 */
8596 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8597 } else {
8598 /* ../lib/standard/collection/array.nit:280 */
8599 REGB0 = TAG_Bool(0);
8600 REGB2 = REGB0;
8601 }
8602 if (UNTAG_Bool(REGB2)) {
8603 } else {
8604 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8605 }
8606 /* ../lib/standard/collection/array.nit:281 */
8607 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8608 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8609 if (UNTAG_Bool(REGB2)) {
8610 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8611 }
8612 /* ../lib/standard/collection/array.nit:724 */
8613 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8614 /* ../lib/standard/collection/array.nit:281 */
8615 goto label152;
8616 label152: while(0);
8617 /* compiling/compiling_icode.nit:782 */
8618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8619 if (!once_value_153) {
8620 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
8621 REGB1 = TAG_Int(14);
8622 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8623 once_value_153 = fra.me.REG[7];
8624 register_static_object(&once_value_153);
8625 } else fra.me.REG[7] = once_value_153;
8626 fra.me.REG[7] = fra.me.REG[7];
8627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8628 REGB1 = TAG_Int(1);
8629 /* ../lib/standard/collection/array.nit:278 */
8630 fra.me.REG[7] = fra.me.REG[4];
8631 /* ../lib/standard/collection/array.nit:280 */
8632 REGB2 = TAG_Int(0);
8633 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8634 if (UNTAG_Bool(REGB0)) {
8635 } else {
8636 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8637 }
8638 /* ../lib/standard/kernel.nit:236 */
8639 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8640 /* ../lib/standard/collection/array.nit:280 */
8641 if (UNTAG_Bool(REGB2)) {
8642 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8643 if (UNTAG_Bool(REGB2)) {
8644 } else {
8645 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8646 }
8647 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8648 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8649 if (UNTAG_Bool(REGB0)) {
8650 } else {
8651 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8652 }
8653 /* ../lib/standard/kernel.nit:235 */
8654 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8655 } else {
8656 /* ../lib/standard/collection/array.nit:280 */
8657 REGB0 = TAG_Bool(0);
8658 REGB2 = REGB0;
8659 }
8660 if (UNTAG_Bool(REGB2)) {
8661 } else {
8662 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8663 }
8664 /* ../lib/standard/collection/array.nit:281 */
8665 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8666 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8667 if (UNTAG_Bool(REGB2)) {
8668 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8669 }
8670 /* ../lib/standard/collection/array.nit:724 */
8671 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8672 /* ../lib/standard/collection/array.nit:281 */
8673 goto label154;
8674 label154: while(0);
8675 /* compiling/compiling_icode.nit:782 */
8676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8677 if (!once_value_155) {
8678 fra.me.REG[7] = BOX_NativeString("))");
8679 REGB1 = TAG_Int(2);
8680 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8681 once_value_155 = fra.me.REG[7];
8682 register_static_object(&once_value_155);
8683 } else fra.me.REG[7] = once_value_155;
8684 fra.me.REG[7] = fra.me.REG[7];
8685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8686 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8687 fra.me.REG[5] = fra.me.REG[6];
8688 } else {
8689 /* compiling/compiling_icode.nit:783 */
8690 if (!once_value_156) {
8691 if (!once_value_157) {
8692 fra.me.REG[6] = BOX_NativeString("-");
8693 REGB1 = TAG_Int(1);
8694 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8695 once_value_157 = fra.me.REG[6];
8696 register_static_object(&once_value_157);
8697 } else fra.me.REG[6] = once_value_157;
8698 fra.me.REG[6] = fra.me.REG[6];
8699 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8700 once_value_156 = fra.me.REG[6];
8701 register_static_object(&once_value_156);
8702 } else fra.me.REG[6] = once_value_156;
8703 fra.me.REG[6] = fra.me.REG[6];
8704 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8705 if (UNTAG_Bool(REGB1)) {
8706 } else {
8707 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8708 REGB1 = REGB2;
8709 }
8710 if (UNTAG_Bool(REGB1)) {
8711 /* compiling/compiling_icode.nit:784 */
8712 REGB1 = TAG_Int(5);
8713 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8714 if (!once_value_158) {
8715 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8716 REGB1 = TAG_Int(22);
8717 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8718 once_value_158 = fra.me.REG[7];
8719 register_static_object(&once_value_158);
8720 } else fra.me.REG[7] = once_value_158;
8721 fra.me.REG[7] = fra.me.REG[7];
8722 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8723 REGB1 = TAG_Int(0);
8724 /* ../lib/standard/collection/array.nit:278 */
8725 fra.me.REG[7] = fra.me.REG[4];
8726 /* ../lib/standard/collection/array.nit:280 */
8727 REGB2 = TAG_Int(0);
8728 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8729 if (UNTAG_Bool(REGB0)) {
8730 } else {
8731 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8732 }
8733 /* ../lib/standard/kernel.nit:236 */
8734 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8735 /* ../lib/standard/collection/array.nit:280 */
8736 if (UNTAG_Bool(REGB2)) {
8737 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8738 if (UNTAG_Bool(REGB2)) {
8739 } else {
8740 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8741 }
8742 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8743 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8744 if (UNTAG_Bool(REGB0)) {
8745 } else {
8746 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8747 }
8748 /* ../lib/standard/kernel.nit:235 */
8749 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8750 } else {
8751 /* ../lib/standard/collection/array.nit:280 */
8752 REGB0 = TAG_Bool(0);
8753 REGB2 = REGB0;
8754 }
8755 if (UNTAG_Bool(REGB2)) {
8756 } else {
8757 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8758 }
8759 /* ../lib/standard/collection/array.nit:281 */
8760 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8761 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8762 if (UNTAG_Bool(REGB2)) {
8763 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8764 }
8765 /* ../lib/standard/collection/array.nit:724 */
8766 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8767 /* ../lib/standard/collection/array.nit:281 */
8768 goto label159;
8769 label159: while(0);
8770 /* compiling/compiling_icode.nit:784 */
8771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8772 if (!once_value_160) {
8773 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8774 REGB1 = TAG_Int(14);
8775 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8776 once_value_160 = fra.me.REG[7];
8777 register_static_object(&once_value_160);
8778 } else fra.me.REG[7] = once_value_160;
8779 fra.me.REG[7] = fra.me.REG[7];
8780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8781 REGB1 = TAG_Int(1);
8782 /* ../lib/standard/collection/array.nit:278 */
8783 fra.me.REG[7] = fra.me.REG[4];
8784 /* ../lib/standard/collection/array.nit:280 */
8785 REGB2 = TAG_Int(0);
8786 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8787 if (UNTAG_Bool(REGB0)) {
8788 } else {
8789 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8790 }
8791 /* ../lib/standard/kernel.nit:236 */
8792 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8793 /* ../lib/standard/collection/array.nit:280 */
8794 if (UNTAG_Bool(REGB2)) {
8795 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8796 if (UNTAG_Bool(REGB2)) {
8797 } else {
8798 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8799 }
8800 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8801 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8802 if (UNTAG_Bool(REGB0)) {
8803 } else {
8804 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8805 }
8806 /* ../lib/standard/kernel.nit:235 */
8807 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8808 } else {
8809 /* ../lib/standard/collection/array.nit:280 */
8810 REGB0 = TAG_Bool(0);
8811 REGB2 = REGB0;
8812 }
8813 if (UNTAG_Bool(REGB2)) {
8814 } else {
8815 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8816 }
8817 /* ../lib/standard/collection/array.nit:281 */
8818 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8819 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8820 if (UNTAG_Bool(REGB2)) {
8821 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8822 }
8823 /* ../lib/standard/collection/array.nit:724 */
8824 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8825 /* ../lib/standard/collection/array.nit:281 */
8826 goto label161;
8827 label161: while(0);
8828 /* compiling/compiling_icode.nit:784 */
8829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8830 if (!once_value_162) {
8831 fra.me.REG[7] = BOX_NativeString("))");
8832 REGB1 = TAG_Int(2);
8833 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8834 once_value_162 = fra.me.REG[7];
8835 register_static_object(&once_value_162);
8836 } else fra.me.REG[7] = once_value_162;
8837 fra.me.REG[7] = fra.me.REG[7];
8838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8839 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8840 fra.me.REG[5] = fra.me.REG[6];
8841 } else {
8842 /* compiling/compiling_icode.nit:785 */
8843 if (!once_value_163) {
8844 if (!once_value_164) {
8845 fra.me.REG[6] = BOX_NativeString("*");
8846 REGB1 = TAG_Int(1);
8847 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8848 once_value_164 = fra.me.REG[6];
8849 register_static_object(&once_value_164);
8850 } else fra.me.REG[6] = once_value_164;
8851 fra.me.REG[6] = fra.me.REG[6];
8852 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8853 once_value_163 = fra.me.REG[6];
8854 register_static_object(&once_value_163);
8855 } else fra.me.REG[6] = once_value_163;
8856 fra.me.REG[6] = fra.me.REG[6];
8857 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8858 if (UNTAG_Bool(REGB1)) {
8859 } else {
8860 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8861 REGB1 = REGB2;
8862 }
8863 if (UNTAG_Bool(REGB1)) {
8864 /* compiling/compiling_icode.nit:786 */
8865 REGB1 = TAG_Int(5);
8866 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8867 if (!once_value_165) {
8868 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8869 REGB1 = TAG_Int(22);
8870 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8871 once_value_165 = fra.me.REG[7];
8872 register_static_object(&once_value_165);
8873 } else fra.me.REG[7] = once_value_165;
8874 fra.me.REG[7] = fra.me.REG[7];
8875 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8876 REGB1 = TAG_Int(0);
8877 /* ../lib/standard/collection/array.nit:278 */
8878 fra.me.REG[7] = fra.me.REG[4];
8879 /* ../lib/standard/collection/array.nit:280 */
8880 REGB2 = TAG_Int(0);
8881 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8882 if (UNTAG_Bool(REGB0)) {
8883 } else {
8884 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8885 }
8886 /* ../lib/standard/kernel.nit:236 */
8887 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8888 /* ../lib/standard/collection/array.nit:280 */
8889 if (UNTAG_Bool(REGB2)) {
8890 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8891 if (UNTAG_Bool(REGB2)) {
8892 } else {
8893 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8894 }
8895 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8896 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8897 if (UNTAG_Bool(REGB0)) {
8898 } else {
8899 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8900 }
8901 /* ../lib/standard/kernel.nit:235 */
8902 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8903 } else {
8904 /* ../lib/standard/collection/array.nit:280 */
8905 REGB0 = TAG_Bool(0);
8906 REGB2 = REGB0;
8907 }
8908 if (UNTAG_Bool(REGB2)) {
8909 } else {
8910 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8911 }
8912 /* ../lib/standard/collection/array.nit:281 */
8913 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8914 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8915 if (UNTAG_Bool(REGB2)) {
8916 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8917 }
8918 /* ../lib/standard/collection/array.nit:724 */
8919 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8920 /* ../lib/standard/collection/array.nit:281 */
8921 goto label166;
8922 label166: while(0);
8923 /* compiling/compiling_icode.nit:786 */
8924 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8925 if (!once_value_167) {
8926 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8927 REGB1 = TAG_Int(14);
8928 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8929 once_value_167 = fra.me.REG[7];
8930 register_static_object(&once_value_167);
8931 } else fra.me.REG[7] = once_value_167;
8932 fra.me.REG[7] = fra.me.REG[7];
8933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8934 REGB1 = TAG_Int(1);
8935 /* ../lib/standard/collection/array.nit:278 */
8936 fra.me.REG[7] = fra.me.REG[4];
8937 /* ../lib/standard/collection/array.nit:280 */
8938 REGB2 = TAG_Int(0);
8939 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8940 if (UNTAG_Bool(REGB0)) {
8941 } else {
8942 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8943 }
8944 /* ../lib/standard/kernel.nit:236 */
8945 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8946 /* ../lib/standard/collection/array.nit:280 */
8947 if (UNTAG_Bool(REGB2)) {
8948 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8949 if (UNTAG_Bool(REGB2)) {
8950 } else {
8951 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8952 }
8953 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8954 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8955 if (UNTAG_Bool(REGB0)) {
8956 } else {
8957 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8958 }
8959 /* ../lib/standard/kernel.nit:235 */
8960 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8961 } else {
8962 /* ../lib/standard/collection/array.nit:280 */
8963 REGB0 = TAG_Bool(0);
8964 REGB2 = REGB0;
8965 }
8966 if (UNTAG_Bool(REGB2)) {
8967 } else {
8968 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
8969 }
8970 /* ../lib/standard/collection/array.nit:281 */
8971 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8972 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8973 if (UNTAG_Bool(REGB2)) {
8974 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8975 }
8976 /* ../lib/standard/collection/array.nit:724 */
8977 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8978 /* ../lib/standard/collection/array.nit:281 */
8979 goto label168;
8980 label168: while(0);
8981 /* compiling/compiling_icode.nit:786 */
8982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8983 if (!once_value_169) {
8984 fra.me.REG[7] = BOX_NativeString("))");
8985 REGB1 = TAG_Int(2);
8986 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8987 once_value_169 = fra.me.REG[7];
8988 register_static_object(&once_value_169);
8989 } else fra.me.REG[7] = once_value_169;
8990 fra.me.REG[7] = fra.me.REG[7];
8991 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8992 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8993 fra.me.REG[5] = fra.me.REG[6];
8994 } else {
8995 /* compiling/compiling_icode.nit:787 */
8996 if (!once_value_170) {
8997 if (!once_value_171) {
8998 fra.me.REG[6] = BOX_NativeString("/");
8999 REGB1 = TAG_Int(1);
9000 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9001 once_value_171 = fra.me.REG[6];
9002 register_static_object(&once_value_171);
9003 } else fra.me.REG[6] = once_value_171;
9004 fra.me.REG[6] = fra.me.REG[6];
9005 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9006 once_value_170 = fra.me.REG[6];
9007 register_static_object(&once_value_170);
9008 } else fra.me.REG[6] = once_value_170;
9009 fra.me.REG[6] = fra.me.REG[6];
9010 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9011 if (UNTAG_Bool(REGB1)) {
9012 } else {
9013 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9014 REGB1 = REGB2;
9015 }
9016 if (UNTAG_Bool(REGB1)) {
9017 /* compiling/compiling_icode.nit:788 */
9018 REGB1 = TAG_Int(5);
9019 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9020 if (!once_value_172) {
9021 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
9022 REGB1 = TAG_Int(22);
9023 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9024 once_value_172 = fra.me.REG[7];
9025 register_static_object(&once_value_172);
9026 } else fra.me.REG[7] = once_value_172;
9027 fra.me.REG[7] = fra.me.REG[7];
9028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9029 REGB1 = TAG_Int(0);
9030 /* ../lib/standard/collection/array.nit:278 */
9031 fra.me.REG[7] = fra.me.REG[4];
9032 /* ../lib/standard/collection/array.nit:280 */
9033 REGB2 = TAG_Int(0);
9034 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9035 if (UNTAG_Bool(REGB0)) {
9036 } else {
9037 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9038 }
9039 /* ../lib/standard/kernel.nit:236 */
9040 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9041 /* ../lib/standard/collection/array.nit:280 */
9042 if (UNTAG_Bool(REGB2)) {
9043 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9044 if (UNTAG_Bool(REGB2)) {
9045 } else {
9046 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9047 }
9048 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9049 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9050 if (UNTAG_Bool(REGB0)) {
9051 } else {
9052 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9053 }
9054 /* ../lib/standard/kernel.nit:235 */
9055 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9056 } else {
9057 /* ../lib/standard/collection/array.nit:280 */
9058 REGB0 = TAG_Bool(0);
9059 REGB2 = REGB0;
9060 }
9061 if (UNTAG_Bool(REGB2)) {
9062 } else {
9063 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9064 }
9065 /* ../lib/standard/collection/array.nit:281 */
9066 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9067 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9068 if (UNTAG_Bool(REGB2)) {
9069 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9070 }
9071 /* ../lib/standard/collection/array.nit:724 */
9072 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9073 /* ../lib/standard/collection/array.nit:281 */
9074 goto label173;
9075 label173: while(0);
9076 /* compiling/compiling_icode.nit:788 */
9077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9078 if (!once_value_174) {
9079 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
9080 REGB1 = TAG_Int(14);
9081 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9082 once_value_174 = fra.me.REG[7];
9083 register_static_object(&once_value_174);
9084 } else fra.me.REG[7] = once_value_174;
9085 fra.me.REG[7] = fra.me.REG[7];
9086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9087 REGB1 = TAG_Int(1);
9088 /* ../lib/standard/collection/array.nit:278 */
9089 fra.me.REG[7] = fra.me.REG[4];
9090 /* ../lib/standard/collection/array.nit:280 */
9091 REGB2 = TAG_Int(0);
9092 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9093 if (UNTAG_Bool(REGB0)) {
9094 } else {
9095 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9096 }
9097 /* ../lib/standard/kernel.nit:236 */
9098 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9099 /* ../lib/standard/collection/array.nit:280 */
9100 if (UNTAG_Bool(REGB2)) {
9101 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9102 if (UNTAG_Bool(REGB2)) {
9103 } else {
9104 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9105 }
9106 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9107 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9108 if (UNTAG_Bool(REGB0)) {
9109 } else {
9110 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9111 }
9112 /* ../lib/standard/kernel.nit:235 */
9113 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9114 } else {
9115 /* ../lib/standard/collection/array.nit:280 */
9116 REGB0 = TAG_Bool(0);
9117 REGB2 = REGB0;
9118 }
9119 if (UNTAG_Bool(REGB2)) {
9120 } else {
9121 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9122 }
9123 /* ../lib/standard/collection/array.nit:281 */
9124 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9125 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9126 if (UNTAG_Bool(REGB2)) {
9127 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9128 }
9129 /* ../lib/standard/collection/array.nit:724 */
9130 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9131 /* ../lib/standard/collection/array.nit:281 */
9132 goto label175;
9133 label175: while(0);
9134 /* compiling/compiling_icode.nit:788 */
9135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9136 if (!once_value_176) {
9137 fra.me.REG[7] = BOX_NativeString("))");
9138 REGB1 = TAG_Int(2);
9139 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9140 once_value_176 = fra.me.REG[7];
9141 register_static_object(&once_value_176);
9142 } else fra.me.REG[7] = once_value_176;
9143 fra.me.REG[7] = fra.me.REG[7];
9144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9145 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9146 fra.me.REG[5] = fra.me.REG[6];
9147 } else {
9148 /* compiling/compiling_icode.nit:789 */
9149 if (!once_value_177) {
9150 if (!once_value_178) {
9151 fra.me.REG[6] = BOX_NativeString("<");
9152 REGB1 = TAG_Int(1);
9153 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9154 once_value_178 = fra.me.REG[6];
9155 register_static_object(&once_value_178);
9156 } else fra.me.REG[6] = once_value_178;
9157 fra.me.REG[6] = fra.me.REG[6];
9158 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9159 once_value_177 = fra.me.REG[6];
9160 register_static_object(&once_value_177);
9161 } else fra.me.REG[6] = once_value_177;
9162 fra.me.REG[6] = fra.me.REG[6];
9163 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9164 if (UNTAG_Bool(REGB1)) {
9165 } else {
9166 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9167 REGB1 = REGB2;
9168 }
9169 if (UNTAG_Bool(REGB1)) {
9170 /* compiling/compiling_icode.nit:790 */
9171 REGB1 = TAG_Int(5);
9172 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9173 if (!once_value_179) {
9174 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9175 REGB1 = TAG_Int(21);
9176 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9177 once_value_179 = fra.me.REG[7];
9178 register_static_object(&once_value_179);
9179 } else fra.me.REG[7] = once_value_179;
9180 fra.me.REG[7] = fra.me.REG[7];
9181 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9182 REGB1 = TAG_Int(0);
9183 /* ../lib/standard/collection/array.nit:278 */
9184 fra.me.REG[7] = fra.me.REG[4];
9185 /* ../lib/standard/collection/array.nit:280 */
9186 REGB2 = TAG_Int(0);
9187 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9188 if (UNTAG_Bool(REGB0)) {
9189 } else {
9190 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9191 }
9192 /* ../lib/standard/kernel.nit:236 */
9193 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9194 /* ../lib/standard/collection/array.nit:280 */
9195 if (UNTAG_Bool(REGB2)) {
9196 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9197 if (UNTAG_Bool(REGB2)) {
9198 } else {
9199 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9200 }
9201 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9202 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9203 if (UNTAG_Bool(REGB0)) {
9204 } else {
9205 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9206 }
9207 /* ../lib/standard/kernel.nit:235 */
9208 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9209 } else {
9210 /* ../lib/standard/collection/array.nit:280 */
9211 REGB0 = TAG_Bool(0);
9212 REGB2 = REGB0;
9213 }
9214 if (UNTAG_Bool(REGB2)) {
9215 } else {
9216 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9217 }
9218 /* ../lib/standard/collection/array.nit:281 */
9219 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9220 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9221 if (UNTAG_Bool(REGB2)) {
9222 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9223 }
9224 /* ../lib/standard/collection/array.nit:724 */
9225 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9226 /* ../lib/standard/collection/array.nit:281 */
9227 goto label180;
9228 label180: while(0);
9229 /* compiling/compiling_icode.nit:790 */
9230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9231 if (!once_value_181) {
9232 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
9233 REGB1 = TAG_Int(14);
9234 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9235 once_value_181 = fra.me.REG[7];
9236 register_static_object(&once_value_181);
9237 } else fra.me.REG[7] = once_value_181;
9238 fra.me.REG[7] = fra.me.REG[7];
9239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9240 REGB1 = TAG_Int(1);
9241 /* ../lib/standard/collection/array.nit:278 */
9242 fra.me.REG[7] = fra.me.REG[4];
9243 /* ../lib/standard/collection/array.nit:280 */
9244 REGB2 = TAG_Int(0);
9245 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9246 if (UNTAG_Bool(REGB0)) {
9247 } else {
9248 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9249 }
9250 /* ../lib/standard/kernel.nit:236 */
9251 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9252 /* ../lib/standard/collection/array.nit:280 */
9253 if (UNTAG_Bool(REGB2)) {
9254 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9255 if (UNTAG_Bool(REGB2)) {
9256 } else {
9257 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9258 }
9259 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9260 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9261 if (UNTAG_Bool(REGB0)) {
9262 } else {
9263 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9264 }
9265 /* ../lib/standard/kernel.nit:235 */
9266 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9267 } else {
9268 /* ../lib/standard/collection/array.nit:280 */
9269 REGB0 = TAG_Bool(0);
9270 REGB2 = REGB0;
9271 }
9272 if (UNTAG_Bool(REGB2)) {
9273 } else {
9274 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9275 }
9276 /* ../lib/standard/collection/array.nit:281 */
9277 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9278 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9279 if (UNTAG_Bool(REGB2)) {
9280 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9281 }
9282 /* ../lib/standard/collection/array.nit:724 */
9283 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9284 /* ../lib/standard/collection/array.nit:281 */
9285 goto label182;
9286 label182: while(0);
9287 /* compiling/compiling_icode.nit:790 */
9288 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9289 if (!once_value_183) {
9290 fra.me.REG[7] = BOX_NativeString("))");
9291 REGB1 = TAG_Int(2);
9292 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9293 once_value_183 = fra.me.REG[7];
9294 register_static_object(&once_value_183);
9295 } else fra.me.REG[7] = once_value_183;
9296 fra.me.REG[7] = fra.me.REG[7];
9297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9298 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9299 fra.me.REG[5] = fra.me.REG[6];
9300 } else {
9301 /* compiling/compiling_icode.nit:791 */
9302 if (!once_value_184) {
9303 if (!once_value_185) {
9304 fra.me.REG[6] = BOX_NativeString(">");
9305 REGB1 = TAG_Int(1);
9306 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9307 once_value_185 = fra.me.REG[6];
9308 register_static_object(&once_value_185);
9309 } else fra.me.REG[6] = once_value_185;
9310 fra.me.REG[6] = fra.me.REG[6];
9311 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9312 once_value_184 = fra.me.REG[6];
9313 register_static_object(&once_value_184);
9314 } else fra.me.REG[6] = once_value_184;
9315 fra.me.REG[6] = fra.me.REG[6];
9316 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9317 if (UNTAG_Bool(REGB1)) {
9318 } else {
9319 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9320 REGB1 = REGB2;
9321 }
9322 if (UNTAG_Bool(REGB1)) {
9323 /* compiling/compiling_icode.nit:792 */
9324 REGB1 = TAG_Int(5);
9325 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9326 if (!once_value_186) {
9327 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9328 REGB1 = TAG_Int(21);
9329 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9330 once_value_186 = fra.me.REG[7];
9331 register_static_object(&once_value_186);
9332 } else fra.me.REG[7] = once_value_186;
9333 fra.me.REG[7] = fra.me.REG[7];
9334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9335 REGB1 = TAG_Int(0);
9336 /* ../lib/standard/collection/array.nit:278 */
9337 fra.me.REG[7] = fra.me.REG[4];
9338 /* ../lib/standard/collection/array.nit:280 */
9339 REGB2 = TAG_Int(0);
9340 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9341 if (UNTAG_Bool(REGB0)) {
9342 } else {
9343 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9344 }
9345 /* ../lib/standard/kernel.nit:236 */
9346 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9347 /* ../lib/standard/collection/array.nit:280 */
9348 if (UNTAG_Bool(REGB2)) {
9349 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9350 if (UNTAG_Bool(REGB2)) {
9351 } else {
9352 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9353 }
9354 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9355 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9356 if (UNTAG_Bool(REGB0)) {
9357 } else {
9358 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9359 }
9360 /* ../lib/standard/kernel.nit:235 */
9361 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9362 } else {
9363 /* ../lib/standard/collection/array.nit:280 */
9364 REGB0 = TAG_Bool(0);
9365 REGB2 = REGB0;
9366 }
9367 if (UNTAG_Bool(REGB2)) {
9368 } else {
9369 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9370 }
9371 /* ../lib/standard/collection/array.nit:281 */
9372 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9373 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9374 if (UNTAG_Bool(REGB2)) {
9375 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9376 }
9377 /* ../lib/standard/collection/array.nit:724 */
9378 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9379 /* ../lib/standard/collection/array.nit:281 */
9380 goto label187;
9381 label187: while(0);
9382 /* compiling/compiling_icode.nit:792 */
9383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9384 if (!once_value_188) {
9385 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
9386 REGB1 = TAG_Int(14);
9387 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9388 once_value_188 = fra.me.REG[7];
9389 register_static_object(&once_value_188);
9390 } else fra.me.REG[7] = once_value_188;
9391 fra.me.REG[7] = fra.me.REG[7];
9392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9393 REGB1 = TAG_Int(1);
9394 /* ../lib/standard/collection/array.nit:278 */
9395 fra.me.REG[7] = fra.me.REG[4];
9396 /* ../lib/standard/collection/array.nit:280 */
9397 REGB2 = TAG_Int(0);
9398 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9399 if (UNTAG_Bool(REGB0)) {
9400 } else {
9401 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9402 }
9403 /* ../lib/standard/kernel.nit:236 */
9404 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9405 /* ../lib/standard/collection/array.nit:280 */
9406 if (UNTAG_Bool(REGB2)) {
9407 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9408 if (UNTAG_Bool(REGB2)) {
9409 } else {
9410 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9411 }
9412 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9413 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9414 if (UNTAG_Bool(REGB0)) {
9415 } else {
9416 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9417 }
9418 /* ../lib/standard/kernel.nit:235 */
9419 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9420 } else {
9421 /* ../lib/standard/collection/array.nit:280 */
9422 REGB0 = TAG_Bool(0);
9423 REGB2 = REGB0;
9424 }
9425 if (UNTAG_Bool(REGB2)) {
9426 } else {
9427 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9428 }
9429 /* ../lib/standard/collection/array.nit:281 */
9430 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9431 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9432 if (UNTAG_Bool(REGB2)) {
9433 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9434 }
9435 /* ../lib/standard/collection/array.nit:724 */
9436 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9437 /* ../lib/standard/collection/array.nit:281 */
9438 goto label189;
9439 label189: while(0);
9440 /* compiling/compiling_icode.nit:792 */
9441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9442 if (!once_value_190) {
9443 fra.me.REG[7] = BOX_NativeString("))");
9444 REGB1 = TAG_Int(2);
9445 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9446 once_value_190 = fra.me.REG[7];
9447 register_static_object(&once_value_190);
9448 } else fra.me.REG[7] = once_value_190;
9449 fra.me.REG[7] = fra.me.REG[7];
9450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9451 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9452 fra.me.REG[5] = fra.me.REG[6];
9453 } else {
9454 /* compiling/compiling_icode.nit:793 */
9455 if (!once_value_191) {
9456 if (!once_value_192) {
9457 fra.me.REG[6] = BOX_NativeString("<=");
9458 REGB1 = TAG_Int(2);
9459 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9460 once_value_192 = fra.me.REG[6];
9461 register_static_object(&once_value_192);
9462 } else fra.me.REG[6] = once_value_192;
9463 fra.me.REG[6] = fra.me.REG[6];
9464 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9465 once_value_191 = fra.me.REG[6];
9466 register_static_object(&once_value_191);
9467 } else fra.me.REG[6] = once_value_191;
9468 fra.me.REG[6] = fra.me.REG[6];
9469 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9470 if (UNTAG_Bool(REGB1)) {
9471 } else {
9472 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9473 REGB1 = REGB2;
9474 }
9475 if (UNTAG_Bool(REGB1)) {
9476 /* compiling/compiling_icode.nit:794 */
9477 REGB1 = TAG_Int(5);
9478 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9479 if (!once_value_193) {
9480 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9481 REGB1 = TAG_Int(21);
9482 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9483 once_value_193 = fra.me.REG[7];
9484 register_static_object(&once_value_193);
9485 } else fra.me.REG[7] = once_value_193;
9486 fra.me.REG[7] = fra.me.REG[7];
9487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9488 REGB1 = TAG_Int(0);
9489 /* ../lib/standard/collection/array.nit:278 */
9490 fra.me.REG[7] = fra.me.REG[4];
9491 /* ../lib/standard/collection/array.nit:280 */
9492 REGB2 = TAG_Int(0);
9493 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9494 if (UNTAG_Bool(REGB0)) {
9495 } else {
9496 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9497 }
9498 /* ../lib/standard/kernel.nit:236 */
9499 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9500 /* ../lib/standard/collection/array.nit:280 */
9501 if (UNTAG_Bool(REGB2)) {
9502 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9503 if (UNTAG_Bool(REGB2)) {
9504 } else {
9505 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9506 }
9507 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9508 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9509 if (UNTAG_Bool(REGB0)) {
9510 } else {
9511 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9512 }
9513 /* ../lib/standard/kernel.nit:235 */
9514 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9515 } else {
9516 /* ../lib/standard/collection/array.nit:280 */
9517 REGB0 = TAG_Bool(0);
9518 REGB2 = REGB0;
9519 }
9520 if (UNTAG_Bool(REGB2)) {
9521 } else {
9522 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9523 }
9524 /* ../lib/standard/collection/array.nit:281 */
9525 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9526 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9527 if (UNTAG_Bool(REGB2)) {
9528 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9529 }
9530 /* ../lib/standard/collection/array.nit:724 */
9531 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9532 /* ../lib/standard/collection/array.nit:281 */
9533 goto label194;
9534 label194: while(0);
9535 /* compiling/compiling_icode.nit:794 */
9536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9537 if (!once_value_195) {
9538 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
9539 REGB1 = TAG_Int(15);
9540 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9541 once_value_195 = fra.me.REG[7];
9542 register_static_object(&once_value_195);
9543 } else fra.me.REG[7] = once_value_195;
9544 fra.me.REG[7] = fra.me.REG[7];
9545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9546 REGB1 = TAG_Int(1);
9547 /* ../lib/standard/collection/array.nit:278 */
9548 fra.me.REG[7] = fra.me.REG[4];
9549 /* ../lib/standard/collection/array.nit:280 */
9550 REGB2 = TAG_Int(0);
9551 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9552 if (UNTAG_Bool(REGB0)) {
9553 } else {
9554 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9555 }
9556 /* ../lib/standard/kernel.nit:236 */
9557 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9558 /* ../lib/standard/collection/array.nit:280 */
9559 if (UNTAG_Bool(REGB2)) {
9560 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9561 if (UNTAG_Bool(REGB2)) {
9562 } else {
9563 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9564 }
9565 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9566 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9567 if (UNTAG_Bool(REGB0)) {
9568 } else {
9569 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9570 }
9571 /* ../lib/standard/kernel.nit:235 */
9572 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9573 } else {
9574 /* ../lib/standard/collection/array.nit:280 */
9575 REGB0 = TAG_Bool(0);
9576 REGB2 = REGB0;
9577 }
9578 if (UNTAG_Bool(REGB2)) {
9579 } else {
9580 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9581 }
9582 /* ../lib/standard/collection/array.nit:281 */
9583 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9584 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9585 if (UNTAG_Bool(REGB2)) {
9586 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9587 }
9588 /* ../lib/standard/collection/array.nit:724 */
9589 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9590 /* ../lib/standard/collection/array.nit:281 */
9591 goto label196;
9592 label196: while(0);
9593 /* compiling/compiling_icode.nit:794 */
9594 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9595 if (!once_value_197) {
9596 fra.me.REG[7] = BOX_NativeString("))");
9597 REGB1 = TAG_Int(2);
9598 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9599 once_value_197 = fra.me.REG[7];
9600 register_static_object(&once_value_197);
9601 } else fra.me.REG[7] = once_value_197;
9602 fra.me.REG[7] = fra.me.REG[7];
9603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9604 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9605 fra.me.REG[5] = fra.me.REG[6];
9606 } else {
9607 /* compiling/compiling_icode.nit:795 */
9608 if (!once_value_198) {
9609 if (!once_value_199) {
9610 fra.me.REG[6] = BOX_NativeString(">=");
9611 REGB1 = TAG_Int(2);
9612 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9613 once_value_199 = fra.me.REG[6];
9614 register_static_object(&once_value_199);
9615 } else fra.me.REG[6] = once_value_199;
9616 fra.me.REG[6] = fra.me.REG[6];
9617 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9618 once_value_198 = fra.me.REG[6];
9619 register_static_object(&once_value_198);
9620 } else fra.me.REG[6] = once_value_198;
9621 fra.me.REG[6] = fra.me.REG[6];
9622 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9623 if (UNTAG_Bool(REGB1)) {
9624 } else {
9625 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9626 REGB1 = REGB2;
9627 }
9628 if (UNTAG_Bool(REGB1)) {
9629 /* compiling/compiling_icode.nit:796 */
9630 REGB1 = TAG_Int(5);
9631 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9632 if (!once_value_200) {
9633 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9634 REGB1 = TAG_Int(21);
9635 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9636 once_value_200 = fra.me.REG[7];
9637 register_static_object(&once_value_200);
9638 } else fra.me.REG[7] = once_value_200;
9639 fra.me.REG[7] = fra.me.REG[7];
9640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9641 REGB1 = TAG_Int(0);
9642 /* ../lib/standard/collection/array.nit:278 */
9643 fra.me.REG[7] = fra.me.REG[4];
9644 /* ../lib/standard/collection/array.nit:280 */
9645 REGB2 = TAG_Int(0);
9646 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9647 if (UNTAG_Bool(REGB0)) {
9648 } else {
9649 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9650 }
9651 /* ../lib/standard/kernel.nit:236 */
9652 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9653 /* ../lib/standard/collection/array.nit:280 */
9654 if (UNTAG_Bool(REGB2)) {
9655 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9656 if (UNTAG_Bool(REGB2)) {
9657 } else {
9658 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9659 }
9660 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9661 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9662 if (UNTAG_Bool(REGB0)) {
9663 } else {
9664 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9665 }
9666 /* ../lib/standard/kernel.nit:235 */
9667 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9668 } else {
9669 /* ../lib/standard/collection/array.nit:280 */
9670 REGB0 = TAG_Bool(0);
9671 REGB2 = REGB0;
9672 }
9673 if (UNTAG_Bool(REGB2)) {
9674 } else {
9675 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9676 }
9677 /* ../lib/standard/collection/array.nit:281 */
9678 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9679 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9680 if (UNTAG_Bool(REGB2)) {
9681 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9682 }
9683 /* ../lib/standard/collection/array.nit:724 */
9684 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9685 /* ../lib/standard/collection/array.nit:281 */
9686 goto label201;
9687 label201: while(0);
9688 /* compiling/compiling_icode.nit:796 */
9689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9690 if (!once_value_202) {
9691 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
9692 REGB1 = TAG_Int(15);
9693 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9694 once_value_202 = fra.me.REG[7];
9695 register_static_object(&once_value_202);
9696 } else fra.me.REG[7] = once_value_202;
9697 fra.me.REG[7] = fra.me.REG[7];
9698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9699 REGB1 = TAG_Int(1);
9700 /* ../lib/standard/collection/array.nit:278 */
9701 fra.me.REG[7] = fra.me.REG[4];
9702 /* ../lib/standard/collection/array.nit:280 */
9703 REGB2 = TAG_Int(0);
9704 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9705 if (UNTAG_Bool(REGB0)) {
9706 } else {
9707 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9708 }
9709 /* ../lib/standard/kernel.nit:236 */
9710 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9711 /* ../lib/standard/collection/array.nit:280 */
9712 if (UNTAG_Bool(REGB2)) {
9713 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9714 if (UNTAG_Bool(REGB2)) {
9715 } else {
9716 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9717 }
9718 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9719 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9720 if (UNTAG_Bool(REGB0)) {
9721 } else {
9722 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9723 }
9724 /* ../lib/standard/kernel.nit:235 */
9725 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9726 } else {
9727 /* ../lib/standard/collection/array.nit:280 */
9728 REGB0 = TAG_Bool(0);
9729 REGB2 = REGB0;
9730 }
9731 if (UNTAG_Bool(REGB2)) {
9732 } else {
9733 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9734 }
9735 /* ../lib/standard/collection/array.nit:281 */
9736 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9737 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9738 if (UNTAG_Bool(REGB2)) {
9739 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9740 }
9741 /* ../lib/standard/collection/array.nit:724 */
9742 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9743 /* ../lib/standard/collection/array.nit:281 */
9744 goto label203;
9745 label203: while(0);
9746 /* compiling/compiling_icode.nit:796 */
9747 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9748 if (!once_value_204) {
9749 fra.me.REG[7] = BOX_NativeString("))");
9750 REGB1 = TAG_Int(2);
9751 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9752 once_value_204 = fra.me.REG[7];
9753 register_static_object(&once_value_204);
9754 } else fra.me.REG[7] = once_value_204;
9755 fra.me.REG[7] = fra.me.REG[7];
9756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9757 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9758 fra.me.REG[5] = fra.me.REG[6];
9759 }
9760 }
9761 }
9762 }
9763 }
9764 }
9765 }
9766 }
9767 }
9768 }
9769 }
9770 }
9771 } else {
9772 /* compiling/compiling_icode.nit:798 */
9773 if (!once_value_205) {
9774 if (!once_value_206) {
9775 fra.me.REG[6] = BOX_NativeString("Char");
9776 REGB1 = TAG_Int(4);
9777 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9778 once_value_206 = fra.me.REG[6];
9779 register_static_object(&once_value_206);
9780 } else fra.me.REG[6] = once_value_206;
9781 fra.me.REG[6] = fra.me.REG[6];
9782 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9783 once_value_205 = fra.me.REG[6];
9784 register_static_object(&once_value_205);
9785 } else fra.me.REG[6] = once_value_205;
9786 fra.me.REG[6] = fra.me.REG[6];
9787 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
9788 if (UNTAG_Bool(REGB1)) {
9789 } else {
9790 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
9791 REGB1 = REGB2;
9792 }
9793 if (UNTAG_Bool(REGB1)) {
9794 /* compiling/compiling_icode.nit:799 */
9795 if (!once_value_207) {
9796 if (!once_value_208) {
9797 fra.me.REG[6] = BOX_NativeString("object_id");
9798 REGB1 = TAG_Int(9);
9799 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9800 once_value_208 = fra.me.REG[6];
9801 register_static_object(&once_value_208);
9802 } else fra.me.REG[6] = once_value_208;
9803 fra.me.REG[6] = fra.me.REG[6];
9804 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9805 once_value_207 = fra.me.REG[6];
9806 register_static_object(&once_value_207);
9807 } else fra.me.REG[6] = once_value_207;
9808 fra.me.REG[6] = fra.me.REG[6];
9809 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9810 if (UNTAG_Bool(REGB1)) {
9811 } else {
9812 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9813 REGB1 = REGB2;
9814 }
9815 if (UNTAG_Bool(REGB1)) {
9816 /* compiling/compiling_icode.nit:800 */
9817 REGB1 = TAG_Int(3);
9818 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9819 if (!once_value_209) {
9820 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9821 REGB1 = TAG_Int(19);
9822 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9823 once_value_209 = fra.me.REG[7];
9824 register_static_object(&once_value_209);
9825 } else fra.me.REG[7] = once_value_209;
9826 fra.me.REG[7] = fra.me.REG[7];
9827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9828 REGB1 = TAG_Int(0);
9829 /* ../lib/standard/collection/array.nit:278 */
9830 fra.me.REG[7] = fra.me.REG[4];
9831 /* ../lib/standard/collection/array.nit:280 */
9832 REGB2 = TAG_Int(0);
9833 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9834 if (UNTAG_Bool(REGB0)) {
9835 } else {
9836 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9837 }
9838 /* ../lib/standard/kernel.nit:236 */
9839 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9840 /* ../lib/standard/collection/array.nit:280 */
9841 if (UNTAG_Bool(REGB2)) {
9842 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9843 if (UNTAG_Bool(REGB2)) {
9844 } else {
9845 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9846 }
9847 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9848 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9849 if (UNTAG_Bool(REGB0)) {
9850 } else {
9851 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9852 }
9853 /* ../lib/standard/kernel.nit:235 */
9854 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9855 } else {
9856 /* ../lib/standard/collection/array.nit:280 */
9857 REGB0 = TAG_Bool(0);
9858 REGB2 = REGB0;
9859 }
9860 if (UNTAG_Bool(REGB2)) {
9861 } else {
9862 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9863 }
9864 /* ../lib/standard/collection/array.nit:281 */
9865 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9866 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9867 if (UNTAG_Bool(REGB2)) {
9868 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9869 }
9870 /* ../lib/standard/collection/array.nit:724 */
9871 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9872 /* ../lib/standard/collection/array.nit:281 */
9873 goto label210;
9874 label210: while(0);
9875 /* compiling/compiling_icode.nit:800 */
9876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9877 if (!once_value_211) {
9878 fra.me.REG[7] = BOX_NativeString("))");
9879 REGB1 = TAG_Int(2);
9880 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9881 once_value_211 = fra.me.REG[7];
9882 register_static_object(&once_value_211);
9883 } else fra.me.REG[7] = once_value_211;
9884 fra.me.REG[7] = fra.me.REG[7];
9885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9886 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9887 fra.me.REG[5] = fra.me.REG[6];
9888 } else {
9889 /* compiling/compiling_icode.nit:801 */
9890 if (!once_value_212) {
9891 if (!once_value_213) {
9892 fra.me.REG[6] = BOX_NativeString("unary -");
9893 REGB1 = TAG_Int(7);
9894 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9895 once_value_213 = fra.me.REG[6];
9896 register_static_object(&once_value_213);
9897 } else fra.me.REG[6] = once_value_213;
9898 fra.me.REG[6] = fra.me.REG[6];
9899 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9900 once_value_212 = fra.me.REG[6];
9901 register_static_object(&once_value_212);
9902 } else fra.me.REG[6] = once_value_212;
9903 fra.me.REG[6] = fra.me.REG[6];
9904 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9905 if (UNTAG_Bool(REGB1)) {
9906 } else {
9907 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9908 REGB1 = REGB2;
9909 }
9910 if (UNTAG_Bool(REGB1)) {
9911 /* compiling/compiling_icode.nit:802 */
9912 REGB1 = TAG_Int(3);
9913 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9914 if (!once_value_214) {
9915 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9916 REGB1 = TAG_Int(21);
9917 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9918 once_value_214 = fra.me.REG[7];
9919 register_static_object(&once_value_214);
9920 } else fra.me.REG[7] = once_value_214;
9921 fra.me.REG[7] = fra.me.REG[7];
9922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9923 REGB1 = TAG_Int(0);
9924 /* ../lib/standard/collection/array.nit:278 */
9925 fra.me.REG[7] = fra.me.REG[4];
9926 /* ../lib/standard/collection/array.nit:280 */
9927 REGB2 = TAG_Int(0);
9928 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9929 if (UNTAG_Bool(REGB0)) {
9930 } else {
9931 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9932 }
9933 /* ../lib/standard/kernel.nit:236 */
9934 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9935 /* ../lib/standard/collection/array.nit:280 */
9936 if (UNTAG_Bool(REGB2)) {
9937 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9938 if (UNTAG_Bool(REGB2)) {
9939 } else {
9940 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9941 }
9942 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9943 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9944 if (UNTAG_Bool(REGB0)) {
9945 } else {
9946 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9947 }
9948 /* ../lib/standard/kernel.nit:235 */
9949 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9950 } else {
9951 /* ../lib/standard/collection/array.nit:280 */
9952 REGB0 = TAG_Bool(0);
9953 REGB2 = REGB0;
9954 }
9955 if (UNTAG_Bool(REGB2)) {
9956 } else {
9957 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
9958 }
9959 /* ../lib/standard/collection/array.nit:281 */
9960 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9961 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9962 if (UNTAG_Bool(REGB2)) {
9963 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9964 }
9965 /* ../lib/standard/collection/array.nit:724 */
9966 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9967 /* ../lib/standard/collection/array.nit:281 */
9968 goto label215;
9969 label215: while(0);
9970 /* compiling/compiling_icode.nit:802 */
9971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9972 if (!once_value_216) {
9973 fra.me.REG[7] = BOX_NativeString("))");
9974 REGB1 = TAG_Int(2);
9975 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9976 once_value_216 = fra.me.REG[7];
9977 register_static_object(&once_value_216);
9978 } else fra.me.REG[7] = once_value_216;
9979 fra.me.REG[7] = fra.me.REG[7];
9980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9981 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9982 fra.me.REG[5] = fra.me.REG[6];
9983 } else {
9984 /* compiling/compiling_icode.nit:803 */
9985 if (!once_value_217) {
9986 if (!once_value_218) {
9987 fra.me.REG[6] = BOX_NativeString("output");
9988 REGB1 = TAG_Int(6);
9989 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9990 once_value_218 = fra.me.REG[6];
9991 register_static_object(&once_value_218);
9992 } else fra.me.REG[6] = once_value_218;
9993 fra.me.REG[6] = fra.me.REG[6];
9994 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9995 once_value_217 = fra.me.REG[6];
9996 register_static_object(&once_value_217);
9997 } else fra.me.REG[6] = once_value_217;
9998 fra.me.REG[6] = fra.me.REG[6];
9999 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10000 if (UNTAG_Bool(REGB1)) {
10001 } else {
10002 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10003 REGB1 = REGB2;
10004 }
10005 if (UNTAG_Bool(REGB1)) {
10006 /* compiling/compiling_icode.nit:804 */
10007 REGB1 = TAG_Int(3);
10008 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10009 if (!once_value_219) {
10010 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
10011 REGB1 = TAG_Int(39);
10012 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10013 once_value_219 = fra.me.REG[7];
10014 register_static_object(&once_value_219);
10015 } else fra.me.REG[7] = once_value_219;
10016 fra.me.REG[7] = fra.me.REG[7];
10017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10018 REGB1 = TAG_Int(0);
10019 /* ../lib/standard/collection/array.nit:278 */
10020 fra.me.REG[7] = fra.me.REG[4];
10021 /* ../lib/standard/collection/array.nit:280 */
10022 REGB2 = TAG_Int(0);
10023 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10024 if (UNTAG_Bool(REGB0)) {
10025 } else {
10026 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10027 }
10028 /* ../lib/standard/kernel.nit:236 */
10029 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10030 /* ../lib/standard/collection/array.nit:280 */
10031 if (UNTAG_Bool(REGB2)) {
10032 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10033 if (UNTAG_Bool(REGB2)) {
10034 } else {
10035 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10036 }
10037 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10038 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10039 if (UNTAG_Bool(REGB0)) {
10040 } else {
10041 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10042 }
10043 /* ../lib/standard/kernel.nit:235 */
10044 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10045 } else {
10046 /* ../lib/standard/collection/array.nit:280 */
10047 REGB0 = TAG_Bool(0);
10048 REGB2 = REGB0;
10049 }
10050 if (UNTAG_Bool(REGB2)) {
10051 } else {
10052 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10053 }
10054 /* ../lib/standard/collection/array.nit:281 */
10055 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10056 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10057 if (UNTAG_Bool(REGB2)) {
10058 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10059 }
10060 /* ../lib/standard/collection/array.nit:724 */
10061 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10062 /* ../lib/standard/collection/array.nit:281 */
10063 goto label220;
10064 label220: while(0);
10065 /* compiling/compiling_icode.nit:804 */
10066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10067 if (!once_value_221) {
10068 fra.me.REG[7] = BOX_NativeString("));");
10069 REGB1 = TAG_Int(3);
10070 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10071 once_value_221 = fra.me.REG[7];
10072 register_static_object(&once_value_221);
10073 } else fra.me.REG[7] = once_value_221;
10074 fra.me.REG[7] = fra.me.REG[7];
10075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10076 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10077 fra.me.REG[5] = fra.me.REG[6];
10078 } else {
10079 /* compiling/compiling_icode.nit:805 */
10080 if (!once_value_222) {
10081 if (!once_value_223) {
10082 fra.me.REG[6] = BOX_NativeString("ascii");
10083 REGB1 = TAG_Int(5);
10084 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10085 once_value_223 = fra.me.REG[6];
10086 register_static_object(&once_value_223);
10087 } else fra.me.REG[6] = once_value_223;
10088 fra.me.REG[6] = fra.me.REG[6];
10089 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10090 once_value_222 = fra.me.REG[6];
10091 register_static_object(&once_value_222);
10092 } else fra.me.REG[6] = once_value_222;
10093 fra.me.REG[6] = fra.me.REG[6];
10094 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10095 if (UNTAG_Bool(REGB1)) {
10096 } else {
10097 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10098 REGB1 = REGB2;
10099 }
10100 if (UNTAG_Bool(REGB1)) {
10101 /* compiling/compiling_icode.nit:806 */
10102 REGB1 = TAG_Int(3);
10103 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10104 if (!once_value_224) {
10105 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
10106 REGB1 = TAG_Int(34);
10107 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10108 once_value_224 = fra.me.REG[7];
10109 register_static_object(&once_value_224);
10110 } else fra.me.REG[7] = once_value_224;
10111 fra.me.REG[7] = fra.me.REG[7];
10112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10113 REGB1 = TAG_Int(0);
10114 /* ../lib/standard/collection/array.nit:278 */
10115 fra.me.REG[7] = fra.me.REG[4];
10116 /* ../lib/standard/collection/array.nit:280 */
10117 REGB2 = TAG_Int(0);
10118 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10119 if (UNTAG_Bool(REGB0)) {
10120 } else {
10121 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10122 }
10123 /* ../lib/standard/kernel.nit:236 */
10124 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10125 /* ../lib/standard/collection/array.nit:280 */
10126 if (UNTAG_Bool(REGB2)) {
10127 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10128 if (UNTAG_Bool(REGB2)) {
10129 } else {
10130 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10131 }
10132 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10133 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10134 if (UNTAG_Bool(REGB0)) {
10135 } else {
10136 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10137 }
10138 /* ../lib/standard/kernel.nit:235 */
10139 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10140 } else {
10141 /* ../lib/standard/collection/array.nit:280 */
10142 REGB0 = TAG_Bool(0);
10143 REGB2 = REGB0;
10144 }
10145 if (UNTAG_Bool(REGB2)) {
10146 } else {
10147 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10148 }
10149 /* ../lib/standard/collection/array.nit:281 */
10150 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10151 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10152 if (UNTAG_Bool(REGB2)) {
10153 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10154 }
10155 /* ../lib/standard/collection/array.nit:724 */
10156 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10157 /* ../lib/standard/collection/array.nit:281 */
10158 goto label225;
10159 label225: while(0);
10160 /* compiling/compiling_icode.nit:806 */
10161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10162 if (!once_value_226) {
10163 fra.me.REG[7] = BOX_NativeString("))");
10164 REGB1 = TAG_Int(2);
10165 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10166 once_value_226 = fra.me.REG[7];
10167 register_static_object(&once_value_226);
10168 } else fra.me.REG[7] = once_value_226;
10169 fra.me.REG[7] = fra.me.REG[7];
10170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10171 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10172 fra.me.REG[5] = fra.me.REG[6];
10173 } else {
10174 /* compiling/compiling_icode.nit:807 */
10175 if (!once_value_227) {
10176 if (!once_value_228) {
10177 fra.me.REG[6] = BOX_NativeString("succ");
10178 REGB1 = TAG_Int(4);
10179 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10180 once_value_228 = fra.me.REG[6];
10181 register_static_object(&once_value_228);
10182 } else fra.me.REG[6] = once_value_228;
10183 fra.me.REG[6] = fra.me.REG[6];
10184 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10185 once_value_227 = fra.me.REG[6];
10186 register_static_object(&once_value_227);
10187 } else fra.me.REG[6] = once_value_227;
10188 fra.me.REG[6] = fra.me.REG[6];
10189 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10190 if (UNTAG_Bool(REGB1)) {
10191 } else {
10192 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10193 REGB1 = REGB2;
10194 }
10195 if (UNTAG_Bool(REGB1)) {
10196 /* compiling/compiling_icode.nit:808 */
10197 REGB1 = TAG_Int(3);
10198 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10199 if (!once_value_229) {
10200 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10201 REGB1 = TAG_Int(20);
10202 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10203 once_value_229 = fra.me.REG[7];
10204 register_static_object(&once_value_229);
10205 } else fra.me.REG[7] = once_value_229;
10206 fra.me.REG[7] = fra.me.REG[7];
10207 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10208 REGB1 = TAG_Int(0);
10209 /* ../lib/standard/collection/array.nit:278 */
10210 fra.me.REG[7] = fra.me.REG[4];
10211 /* ../lib/standard/collection/array.nit:280 */
10212 REGB2 = TAG_Int(0);
10213 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10214 if (UNTAG_Bool(REGB0)) {
10215 } else {
10216 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10217 }
10218 /* ../lib/standard/kernel.nit:236 */
10219 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10220 /* ../lib/standard/collection/array.nit:280 */
10221 if (UNTAG_Bool(REGB2)) {
10222 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10223 if (UNTAG_Bool(REGB2)) {
10224 } else {
10225 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10226 }
10227 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10228 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10229 if (UNTAG_Bool(REGB0)) {
10230 } else {
10231 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10232 }
10233 /* ../lib/standard/kernel.nit:235 */
10234 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10235 } else {
10236 /* ../lib/standard/collection/array.nit:280 */
10237 REGB0 = TAG_Bool(0);
10238 REGB2 = REGB0;
10239 }
10240 if (UNTAG_Bool(REGB2)) {
10241 } else {
10242 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10243 }
10244 /* ../lib/standard/collection/array.nit:281 */
10245 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10246 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10247 if (UNTAG_Bool(REGB2)) {
10248 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10249 }
10250 /* ../lib/standard/collection/array.nit:724 */
10251 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10252 /* ../lib/standard/collection/array.nit:281 */
10253 goto label230;
10254 label230: while(0);
10255 /* compiling/compiling_icode.nit:808 */
10256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10257 if (!once_value_231) {
10258 fra.me.REG[7] = BOX_NativeString(")+1)");
10259 REGB1 = TAG_Int(4);
10260 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10261 once_value_231 = fra.me.REG[7];
10262 register_static_object(&once_value_231);
10263 } else fra.me.REG[7] = once_value_231;
10264 fra.me.REG[7] = fra.me.REG[7];
10265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10266 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10267 fra.me.REG[5] = fra.me.REG[6];
10268 } else {
10269 /* compiling/compiling_icode.nit:809 */
10270 if (!once_value_232) {
10271 if (!once_value_233) {
10272 fra.me.REG[6] = BOX_NativeString("prec");
10273 REGB1 = TAG_Int(4);
10274 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10275 once_value_233 = fra.me.REG[6];
10276 register_static_object(&once_value_233);
10277 } else fra.me.REG[6] = once_value_233;
10278 fra.me.REG[6] = fra.me.REG[6];
10279 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10280 once_value_232 = fra.me.REG[6];
10281 register_static_object(&once_value_232);
10282 } else fra.me.REG[6] = once_value_232;
10283 fra.me.REG[6] = fra.me.REG[6];
10284 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10285 if (UNTAG_Bool(REGB1)) {
10286 } else {
10287 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10288 REGB1 = REGB2;
10289 }
10290 if (UNTAG_Bool(REGB1)) {
10291 /* compiling/compiling_icode.nit:810 */
10292 REGB1 = TAG_Int(3);
10293 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10294 if (!once_value_234) {
10295 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10296 REGB1 = TAG_Int(20);
10297 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10298 once_value_234 = fra.me.REG[7];
10299 register_static_object(&once_value_234);
10300 } else fra.me.REG[7] = once_value_234;
10301 fra.me.REG[7] = fra.me.REG[7];
10302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10303 REGB1 = TAG_Int(0);
10304 /* ../lib/standard/collection/array.nit:278 */
10305 fra.me.REG[7] = fra.me.REG[4];
10306 /* ../lib/standard/collection/array.nit:280 */
10307 REGB2 = TAG_Int(0);
10308 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10309 if (UNTAG_Bool(REGB0)) {
10310 } else {
10311 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10312 }
10313 /* ../lib/standard/kernel.nit:236 */
10314 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10315 /* ../lib/standard/collection/array.nit:280 */
10316 if (UNTAG_Bool(REGB2)) {
10317 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10318 if (UNTAG_Bool(REGB2)) {
10319 } else {
10320 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10321 }
10322 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10323 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10324 if (UNTAG_Bool(REGB0)) {
10325 } else {
10326 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10327 }
10328 /* ../lib/standard/kernel.nit:235 */
10329 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10330 } else {
10331 /* ../lib/standard/collection/array.nit:280 */
10332 REGB0 = TAG_Bool(0);
10333 REGB2 = REGB0;
10334 }
10335 if (UNTAG_Bool(REGB2)) {
10336 } else {
10337 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10338 }
10339 /* ../lib/standard/collection/array.nit:281 */
10340 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10341 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10342 if (UNTAG_Bool(REGB2)) {
10343 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10344 }
10345 /* ../lib/standard/collection/array.nit:724 */
10346 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10347 /* ../lib/standard/collection/array.nit:281 */
10348 goto label235;
10349 label235: while(0);
10350 /* compiling/compiling_icode.nit:810 */
10351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10352 if (!once_value_236) {
10353 fra.me.REG[7] = BOX_NativeString(")-1)");
10354 REGB1 = TAG_Int(4);
10355 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10356 once_value_236 = fra.me.REG[7];
10357 register_static_object(&once_value_236);
10358 } else fra.me.REG[7] = once_value_236;
10359 fra.me.REG[7] = fra.me.REG[7];
10360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10361 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10362 fra.me.REG[5] = fra.me.REG[6];
10363 } else {
10364 /* compiling/compiling_icode.nit:811 */
10365 if (!once_value_237) {
10366 if (!once_value_238) {
10367 fra.me.REG[6] = BOX_NativeString("to_i");
10368 REGB1 = TAG_Int(4);
10369 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10370 once_value_238 = fra.me.REG[6];
10371 register_static_object(&once_value_238);
10372 } else fra.me.REG[6] = once_value_238;
10373 fra.me.REG[6] = fra.me.REG[6];
10374 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10375 once_value_237 = fra.me.REG[6];
10376 register_static_object(&once_value_237);
10377 } else fra.me.REG[6] = once_value_237;
10378 fra.me.REG[6] = fra.me.REG[6];
10379 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10380 if (UNTAG_Bool(REGB1)) {
10381 } else {
10382 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10383 REGB1 = REGB2;
10384 }
10385 if (UNTAG_Bool(REGB1)) {
10386 /* compiling/compiling_icode.nit:812 */
10387 REGB1 = TAG_Int(3);
10388 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10389 if (!once_value_239) {
10390 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
10391 REGB1 = TAG_Int(19);
10392 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10393 once_value_239 = fra.me.REG[7];
10394 register_static_object(&once_value_239);
10395 } else fra.me.REG[7] = once_value_239;
10396 fra.me.REG[7] = fra.me.REG[7];
10397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10398 REGB1 = TAG_Int(0);
10399 /* ../lib/standard/collection/array.nit:278 */
10400 fra.me.REG[7] = fra.me.REG[4];
10401 /* ../lib/standard/collection/array.nit:280 */
10402 REGB2 = TAG_Int(0);
10403 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10404 if (UNTAG_Bool(REGB0)) {
10405 } else {
10406 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10407 }
10408 /* ../lib/standard/kernel.nit:236 */
10409 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10410 /* ../lib/standard/collection/array.nit:280 */
10411 if (UNTAG_Bool(REGB2)) {
10412 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10413 if (UNTAG_Bool(REGB2)) {
10414 } else {
10415 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10416 }
10417 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10418 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10419 if (UNTAG_Bool(REGB0)) {
10420 } else {
10421 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10422 }
10423 /* ../lib/standard/kernel.nit:235 */
10424 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10425 } else {
10426 /* ../lib/standard/collection/array.nit:280 */
10427 REGB0 = TAG_Bool(0);
10428 REGB2 = REGB0;
10429 }
10430 if (UNTAG_Bool(REGB2)) {
10431 } else {
10432 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10433 }
10434 /* ../lib/standard/collection/array.nit:281 */
10435 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10436 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10437 if (UNTAG_Bool(REGB2)) {
10438 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10439 }
10440 /* ../lib/standard/collection/array.nit:724 */
10441 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10442 /* ../lib/standard/collection/array.nit:281 */
10443 goto label240;
10444 label240: while(0);
10445 /* compiling/compiling_icode.nit:812 */
10446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10447 if (!once_value_241) {
10448 fra.me.REG[7] = BOX_NativeString(")-'0')");
10449 REGB1 = TAG_Int(6);
10450 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10451 once_value_241 = fra.me.REG[7];
10452 register_static_object(&once_value_241);
10453 } else fra.me.REG[7] = once_value_241;
10454 fra.me.REG[7] = fra.me.REG[7];
10455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10456 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10457 fra.me.REG[5] = fra.me.REG[6];
10458 } else {
10459 /* compiling/compiling_icode.nit:813 */
10460 if (!once_value_242) {
10461 if (!once_value_243) {
10462 fra.me.REG[6] = BOX_NativeString("+");
10463 REGB1 = TAG_Int(1);
10464 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10465 once_value_243 = fra.me.REG[6];
10466 register_static_object(&once_value_243);
10467 } else fra.me.REG[6] = once_value_243;
10468 fra.me.REG[6] = fra.me.REG[6];
10469 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10470 once_value_242 = fra.me.REG[6];
10471 register_static_object(&once_value_242);
10472 } else fra.me.REG[6] = once_value_242;
10473 fra.me.REG[6] = fra.me.REG[6];
10474 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10475 if (UNTAG_Bool(REGB1)) {
10476 } else {
10477 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10478 REGB1 = REGB2;
10479 }
10480 if (UNTAG_Bool(REGB1)) {
10481 /* compiling/compiling_icode.nit:814 */
10482 REGB1 = TAG_Int(5);
10483 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10484 if (!once_value_244) {
10485 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10486 REGB1 = TAG_Int(20);
10487 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10488 once_value_244 = fra.me.REG[7];
10489 register_static_object(&once_value_244);
10490 } else fra.me.REG[7] = once_value_244;
10491 fra.me.REG[7] = fra.me.REG[7];
10492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10493 REGB1 = TAG_Int(0);
10494 /* ../lib/standard/collection/array.nit:278 */
10495 fra.me.REG[7] = fra.me.REG[4];
10496 /* ../lib/standard/collection/array.nit:280 */
10497 REGB2 = TAG_Int(0);
10498 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10499 if (UNTAG_Bool(REGB0)) {
10500 } else {
10501 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10502 }
10503 /* ../lib/standard/kernel.nit:236 */
10504 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10505 /* ../lib/standard/collection/array.nit:280 */
10506 if (UNTAG_Bool(REGB2)) {
10507 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10508 if (UNTAG_Bool(REGB2)) {
10509 } else {
10510 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10511 }
10512 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10513 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10514 if (UNTAG_Bool(REGB0)) {
10515 } else {
10516 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10517 }
10518 /* ../lib/standard/kernel.nit:235 */
10519 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10520 } else {
10521 /* ../lib/standard/collection/array.nit:280 */
10522 REGB0 = TAG_Bool(0);
10523 REGB2 = REGB0;
10524 }
10525 if (UNTAG_Bool(REGB2)) {
10526 } else {
10527 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10528 }
10529 /* ../lib/standard/collection/array.nit:281 */
10530 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10531 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10532 if (UNTAG_Bool(REGB2)) {
10533 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10534 }
10535 /* ../lib/standard/collection/array.nit:724 */
10536 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10537 /* ../lib/standard/collection/array.nit:281 */
10538 goto label245;
10539 label245: while(0);
10540 /* compiling/compiling_icode.nit:814 */
10541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10542 if (!once_value_246) {
10543 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
10544 REGB1 = TAG_Int(13);
10545 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10546 once_value_246 = fra.me.REG[7];
10547 register_static_object(&once_value_246);
10548 } else fra.me.REG[7] = once_value_246;
10549 fra.me.REG[7] = fra.me.REG[7];
10550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10551 REGB1 = TAG_Int(1);
10552 /* ../lib/standard/collection/array.nit:278 */
10553 fra.me.REG[7] = fra.me.REG[4];
10554 /* ../lib/standard/collection/array.nit:280 */
10555 REGB2 = TAG_Int(0);
10556 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10557 if (UNTAG_Bool(REGB0)) {
10558 } else {
10559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10560 }
10561 /* ../lib/standard/kernel.nit:236 */
10562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10563 /* ../lib/standard/collection/array.nit:280 */
10564 if (UNTAG_Bool(REGB2)) {
10565 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10566 if (UNTAG_Bool(REGB2)) {
10567 } else {
10568 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10569 }
10570 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10571 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10572 if (UNTAG_Bool(REGB0)) {
10573 } else {
10574 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10575 }
10576 /* ../lib/standard/kernel.nit:235 */
10577 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10578 } else {
10579 /* ../lib/standard/collection/array.nit:280 */
10580 REGB0 = TAG_Bool(0);
10581 REGB2 = REGB0;
10582 }
10583 if (UNTAG_Bool(REGB2)) {
10584 } else {
10585 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10586 }
10587 /* ../lib/standard/collection/array.nit:281 */
10588 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10589 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10590 if (UNTAG_Bool(REGB2)) {
10591 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10592 }
10593 /* ../lib/standard/collection/array.nit:724 */
10594 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10595 /* ../lib/standard/collection/array.nit:281 */
10596 goto label247;
10597 label247: while(0);
10598 /* compiling/compiling_icode.nit:814 */
10599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10600 if (!once_value_248) {
10601 fra.me.REG[7] = BOX_NativeString("))");
10602 REGB1 = TAG_Int(2);
10603 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10604 once_value_248 = fra.me.REG[7];
10605 register_static_object(&once_value_248);
10606 } else fra.me.REG[7] = once_value_248;
10607 fra.me.REG[7] = fra.me.REG[7];
10608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10609 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10610 fra.me.REG[5] = fra.me.REG[6];
10611 } else {
10612 /* compiling/compiling_icode.nit:815 */
10613 if (!once_value_249) {
10614 if (!once_value_250) {
10615 fra.me.REG[6] = BOX_NativeString("-");
10616 REGB1 = TAG_Int(1);
10617 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10618 once_value_250 = fra.me.REG[6];
10619 register_static_object(&once_value_250);
10620 } else fra.me.REG[6] = once_value_250;
10621 fra.me.REG[6] = fra.me.REG[6];
10622 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10623 once_value_249 = fra.me.REG[6];
10624 register_static_object(&once_value_249);
10625 } else fra.me.REG[6] = once_value_249;
10626 fra.me.REG[6] = fra.me.REG[6];
10627 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10628 if (UNTAG_Bool(REGB1)) {
10629 } else {
10630 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10631 REGB1 = REGB2;
10632 }
10633 if (UNTAG_Bool(REGB1)) {
10634 /* compiling/compiling_icode.nit:816 */
10635 REGB1 = TAG_Int(5);
10636 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10637 if (!once_value_251) {
10638 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10639 REGB1 = TAG_Int(20);
10640 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10641 once_value_251 = fra.me.REG[7];
10642 register_static_object(&once_value_251);
10643 } else fra.me.REG[7] = once_value_251;
10644 fra.me.REG[7] = fra.me.REG[7];
10645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10646 REGB1 = TAG_Int(0);
10647 /* ../lib/standard/collection/array.nit:278 */
10648 fra.me.REG[7] = fra.me.REG[4];
10649 /* ../lib/standard/collection/array.nit:280 */
10650 REGB2 = TAG_Int(0);
10651 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10652 if (UNTAG_Bool(REGB0)) {
10653 } else {
10654 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10655 }
10656 /* ../lib/standard/kernel.nit:236 */
10657 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10658 /* ../lib/standard/collection/array.nit:280 */
10659 if (UNTAG_Bool(REGB2)) {
10660 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10661 if (UNTAG_Bool(REGB2)) {
10662 } else {
10663 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10664 }
10665 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10666 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10667 if (UNTAG_Bool(REGB0)) {
10668 } else {
10669 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10670 }
10671 /* ../lib/standard/kernel.nit:235 */
10672 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10673 } else {
10674 /* ../lib/standard/collection/array.nit:280 */
10675 REGB0 = TAG_Bool(0);
10676 REGB2 = REGB0;
10677 }
10678 if (UNTAG_Bool(REGB2)) {
10679 } else {
10680 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10681 }
10682 /* ../lib/standard/collection/array.nit:281 */
10683 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10684 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10685 if (UNTAG_Bool(REGB2)) {
10686 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10687 }
10688 /* ../lib/standard/collection/array.nit:724 */
10689 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10690 /* ../lib/standard/collection/array.nit:281 */
10691 goto label252;
10692 label252: while(0);
10693 /* compiling/compiling_icode.nit:816 */
10694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10695 if (!once_value_253) {
10696 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
10697 REGB1 = TAG_Int(13);
10698 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10699 once_value_253 = fra.me.REG[7];
10700 register_static_object(&once_value_253);
10701 } else fra.me.REG[7] = once_value_253;
10702 fra.me.REG[7] = fra.me.REG[7];
10703 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10704 REGB1 = TAG_Int(1);
10705 /* ../lib/standard/collection/array.nit:278 */
10706 fra.me.REG[7] = fra.me.REG[4];
10707 /* ../lib/standard/collection/array.nit:280 */
10708 REGB2 = TAG_Int(0);
10709 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10710 if (UNTAG_Bool(REGB0)) {
10711 } else {
10712 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10713 }
10714 /* ../lib/standard/kernel.nit:236 */
10715 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10716 /* ../lib/standard/collection/array.nit:280 */
10717 if (UNTAG_Bool(REGB2)) {
10718 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10719 if (UNTAG_Bool(REGB2)) {
10720 } else {
10721 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10722 }
10723 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10724 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10725 if (UNTAG_Bool(REGB0)) {
10726 } else {
10727 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10728 }
10729 /* ../lib/standard/kernel.nit:235 */
10730 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10731 } else {
10732 /* ../lib/standard/collection/array.nit:280 */
10733 REGB0 = TAG_Bool(0);
10734 REGB2 = REGB0;
10735 }
10736 if (UNTAG_Bool(REGB2)) {
10737 } else {
10738 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10739 }
10740 /* ../lib/standard/collection/array.nit:281 */
10741 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10742 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10743 if (UNTAG_Bool(REGB2)) {
10744 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10745 }
10746 /* ../lib/standard/collection/array.nit:724 */
10747 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10748 /* ../lib/standard/collection/array.nit:281 */
10749 goto label254;
10750 label254: while(0);
10751 /* compiling/compiling_icode.nit:816 */
10752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10753 if (!once_value_255) {
10754 fra.me.REG[7] = BOX_NativeString("))");
10755 REGB1 = TAG_Int(2);
10756 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10757 once_value_255 = fra.me.REG[7];
10758 register_static_object(&once_value_255);
10759 } else fra.me.REG[7] = once_value_255;
10760 fra.me.REG[7] = fra.me.REG[7];
10761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10762 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10763 fra.me.REG[5] = fra.me.REG[6];
10764 } else {
10765 /* compiling/compiling_icode.nit:817 */
10766 if (!once_value_256) {
10767 if (!once_value_257) {
10768 fra.me.REG[6] = BOX_NativeString("*");
10769 REGB1 = TAG_Int(1);
10770 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10771 once_value_257 = fra.me.REG[6];
10772 register_static_object(&once_value_257);
10773 } else fra.me.REG[6] = once_value_257;
10774 fra.me.REG[6] = fra.me.REG[6];
10775 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10776 once_value_256 = fra.me.REG[6];
10777 register_static_object(&once_value_256);
10778 } else fra.me.REG[6] = once_value_256;
10779 fra.me.REG[6] = fra.me.REG[6];
10780 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10781 if (UNTAG_Bool(REGB1)) {
10782 } else {
10783 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10784 REGB1 = REGB2;
10785 }
10786 if (UNTAG_Bool(REGB1)) {
10787 /* compiling/compiling_icode.nit:818 */
10788 REGB1 = TAG_Int(5);
10789 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10790 if (!once_value_258) {
10791 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10792 REGB1 = TAG_Int(20);
10793 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10794 once_value_258 = fra.me.REG[7];
10795 register_static_object(&once_value_258);
10796 } else fra.me.REG[7] = once_value_258;
10797 fra.me.REG[7] = fra.me.REG[7];
10798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10799 REGB1 = TAG_Int(0);
10800 /* ../lib/standard/collection/array.nit:278 */
10801 fra.me.REG[7] = fra.me.REG[4];
10802 /* ../lib/standard/collection/array.nit:280 */
10803 REGB2 = TAG_Int(0);
10804 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10805 if (UNTAG_Bool(REGB0)) {
10806 } else {
10807 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10808 }
10809 /* ../lib/standard/kernel.nit:236 */
10810 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10811 /* ../lib/standard/collection/array.nit:280 */
10812 if (UNTAG_Bool(REGB2)) {
10813 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10814 if (UNTAG_Bool(REGB2)) {
10815 } else {
10816 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10817 }
10818 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10819 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10820 if (UNTAG_Bool(REGB0)) {
10821 } else {
10822 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10823 }
10824 /* ../lib/standard/kernel.nit:235 */
10825 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10826 } else {
10827 /* ../lib/standard/collection/array.nit:280 */
10828 REGB0 = TAG_Bool(0);
10829 REGB2 = REGB0;
10830 }
10831 if (UNTAG_Bool(REGB2)) {
10832 } else {
10833 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10834 }
10835 /* ../lib/standard/collection/array.nit:281 */
10836 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10837 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10838 if (UNTAG_Bool(REGB2)) {
10839 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10840 }
10841 /* ../lib/standard/collection/array.nit:724 */
10842 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10843 /* ../lib/standard/collection/array.nit:281 */
10844 goto label259;
10845 label259: while(0);
10846 /* compiling/compiling_icode.nit:818 */
10847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10848 if (!once_value_260) {
10849 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
10850 REGB1 = TAG_Int(13);
10851 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10852 once_value_260 = fra.me.REG[7];
10853 register_static_object(&once_value_260);
10854 } else fra.me.REG[7] = once_value_260;
10855 fra.me.REG[7] = fra.me.REG[7];
10856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10857 REGB1 = TAG_Int(1);
10858 /* ../lib/standard/collection/array.nit:278 */
10859 fra.me.REG[7] = fra.me.REG[4];
10860 /* ../lib/standard/collection/array.nit:280 */
10861 REGB2 = TAG_Int(0);
10862 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10863 if (UNTAG_Bool(REGB0)) {
10864 } else {
10865 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10866 }
10867 /* ../lib/standard/kernel.nit:236 */
10868 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10869 /* ../lib/standard/collection/array.nit:280 */
10870 if (UNTAG_Bool(REGB2)) {
10871 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10872 if (UNTAG_Bool(REGB2)) {
10873 } else {
10874 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10875 }
10876 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10877 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10878 if (UNTAG_Bool(REGB0)) {
10879 } else {
10880 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10881 }
10882 /* ../lib/standard/kernel.nit:235 */
10883 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10884 } else {
10885 /* ../lib/standard/collection/array.nit:280 */
10886 REGB0 = TAG_Bool(0);
10887 REGB2 = REGB0;
10888 }
10889 if (UNTAG_Bool(REGB2)) {
10890 } else {
10891 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10892 }
10893 /* ../lib/standard/collection/array.nit:281 */
10894 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10895 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10896 if (UNTAG_Bool(REGB2)) {
10897 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10898 }
10899 /* ../lib/standard/collection/array.nit:724 */
10900 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10901 /* ../lib/standard/collection/array.nit:281 */
10902 goto label261;
10903 label261: while(0);
10904 /* compiling/compiling_icode.nit:818 */
10905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10906 if (!once_value_262) {
10907 fra.me.REG[7] = BOX_NativeString("))");
10908 REGB1 = TAG_Int(2);
10909 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10910 once_value_262 = fra.me.REG[7];
10911 register_static_object(&once_value_262);
10912 } else fra.me.REG[7] = once_value_262;
10913 fra.me.REG[7] = fra.me.REG[7];
10914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10915 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10916 fra.me.REG[5] = fra.me.REG[6];
10917 } else {
10918 /* compiling/compiling_icode.nit:819 */
10919 if (!once_value_263) {
10920 if (!once_value_264) {
10921 fra.me.REG[6] = BOX_NativeString("/");
10922 REGB1 = TAG_Int(1);
10923 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10924 once_value_264 = fra.me.REG[6];
10925 register_static_object(&once_value_264);
10926 } else fra.me.REG[6] = once_value_264;
10927 fra.me.REG[6] = fra.me.REG[6];
10928 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10929 once_value_263 = fra.me.REG[6];
10930 register_static_object(&once_value_263);
10931 } else fra.me.REG[6] = once_value_263;
10932 fra.me.REG[6] = fra.me.REG[6];
10933 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10934 if (UNTAG_Bool(REGB1)) {
10935 } else {
10936 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10937 REGB1 = REGB2;
10938 }
10939 if (UNTAG_Bool(REGB1)) {
10940 /* compiling/compiling_icode.nit:820 */
10941 REGB1 = TAG_Int(5);
10942 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10943 if (!once_value_265) {
10944 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10945 REGB1 = TAG_Int(20);
10946 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10947 once_value_265 = fra.me.REG[7];
10948 register_static_object(&once_value_265);
10949 } else fra.me.REG[7] = once_value_265;
10950 fra.me.REG[7] = fra.me.REG[7];
10951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10952 REGB1 = TAG_Int(0);
10953 /* ../lib/standard/collection/array.nit:278 */
10954 fra.me.REG[7] = fra.me.REG[4];
10955 /* ../lib/standard/collection/array.nit:280 */
10956 REGB2 = TAG_Int(0);
10957 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10958 if (UNTAG_Bool(REGB0)) {
10959 } else {
10960 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10961 }
10962 /* ../lib/standard/kernel.nit:236 */
10963 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10964 /* ../lib/standard/collection/array.nit:280 */
10965 if (UNTAG_Bool(REGB2)) {
10966 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10967 if (UNTAG_Bool(REGB2)) {
10968 } else {
10969 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10970 }
10971 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10972 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10973 if (UNTAG_Bool(REGB0)) {
10974 } else {
10975 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10976 }
10977 /* ../lib/standard/kernel.nit:235 */
10978 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10979 } else {
10980 /* ../lib/standard/collection/array.nit:280 */
10981 REGB0 = TAG_Bool(0);
10982 REGB2 = REGB0;
10983 }
10984 if (UNTAG_Bool(REGB2)) {
10985 } else {
10986 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
10987 }
10988 /* ../lib/standard/collection/array.nit:281 */
10989 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10990 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10991 if (UNTAG_Bool(REGB2)) {
10992 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10993 }
10994 /* ../lib/standard/collection/array.nit:724 */
10995 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10996 /* ../lib/standard/collection/array.nit:281 */
10997 goto label266;
10998 label266: while(0);
10999 /* compiling/compiling_icode.nit:820 */
11000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11001 if (!once_value_267) {
11002 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
11003 REGB1 = TAG_Int(13);
11004 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11005 once_value_267 = fra.me.REG[7];
11006 register_static_object(&once_value_267);
11007 } else fra.me.REG[7] = once_value_267;
11008 fra.me.REG[7] = fra.me.REG[7];
11009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11010 REGB1 = TAG_Int(1);
11011 /* ../lib/standard/collection/array.nit:278 */
11012 fra.me.REG[7] = fra.me.REG[4];
11013 /* ../lib/standard/collection/array.nit:280 */
11014 REGB2 = TAG_Int(0);
11015 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11016 if (UNTAG_Bool(REGB0)) {
11017 } else {
11018 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11019 }
11020 /* ../lib/standard/kernel.nit:236 */
11021 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11022 /* ../lib/standard/collection/array.nit:280 */
11023 if (UNTAG_Bool(REGB2)) {
11024 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11025 if (UNTAG_Bool(REGB2)) {
11026 } else {
11027 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11028 }
11029 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11030 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11031 if (UNTAG_Bool(REGB0)) {
11032 } else {
11033 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11034 }
11035 /* ../lib/standard/kernel.nit:235 */
11036 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11037 } else {
11038 /* ../lib/standard/collection/array.nit:280 */
11039 REGB0 = TAG_Bool(0);
11040 REGB2 = REGB0;
11041 }
11042 if (UNTAG_Bool(REGB2)) {
11043 } else {
11044 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11045 }
11046 /* ../lib/standard/collection/array.nit:281 */
11047 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11048 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11049 if (UNTAG_Bool(REGB2)) {
11050 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11051 }
11052 /* ../lib/standard/collection/array.nit:724 */
11053 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11054 /* ../lib/standard/collection/array.nit:281 */
11055 goto label268;
11056 label268: while(0);
11057 /* compiling/compiling_icode.nit:820 */
11058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11059 if (!once_value_269) {
11060 fra.me.REG[7] = BOX_NativeString("))");
11061 REGB1 = TAG_Int(2);
11062 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11063 once_value_269 = fra.me.REG[7];
11064 register_static_object(&once_value_269);
11065 } else fra.me.REG[7] = once_value_269;
11066 fra.me.REG[7] = fra.me.REG[7];
11067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11068 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11069 fra.me.REG[5] = fra.me.REG[6];
11070 } else {
11071 /* compiling/compiling_icode.nit:821 */
11072 if (!once_value_270) {
11073 if (!once_value_271) {
11074 fra.me.REG[6] = BOX_NativeString("%");
11075 REGB1 = TAG_Int(1);
11076 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11077 once_value_271 = fra.me.REG[6];
11078 register_static_object(&once_value_271);
11079 } else fra.me.REG[6] = once_value_271;
11080 fra.me.REG[6] = fra.me.REG[6];
11081 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11082 once_value_270 = fra.me.REG[6];
11083 register_static_object(&once_value_270);
11084 } else fra.me.REG[6] = once_value_270;
11085 fra.me.REG[6] = fra.me.REG[6];
11086 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11087 if (UNTAG_Bool(REGB1)) {
11088 } else {
11089 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11090 REGB1 = REGB2;
11091 }
11092 if (UNTAG_Bool(REGB1)) {
11093 /* compiling/compiling_icode.nit:822 */
11094 REGB1 = TAG_Int(5);
11095 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11096 if (!once_value_272) {
11097 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
11098 REGB1 = TAG_Int(20);
11099 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11100 once_value_272 = fra.me.REG[7];
11101 register_static_object(&once_value_272);
11102 } else fra.me.REG[7] = once_value_272;
11103 fra.me.REG[7] = fra.me.REG[7];
11104 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11105 REGB1 = TAG_Int(0);
11106 /* ../lib/standard/collection/array.nit:278 */
11107 fra.me.REG[7] = fra.me.REG[4];
11108 /* ../lib/standard/collection/array.nit:280 */
11109 REGB2 = TAG_Int(0);
11110 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11111 if (UNTAG_Bool(REGB0)) {
11112 } else {
11113 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11114 }
11115 /* ../lib/standard/kernel.nit:236 */
11116 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11117 /* ../lib/standard/collection/array.nit:280 */
11118 if (UNTAG_Bool(REGB2)) {
11119 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11120 if (UNTAG_Bool(REGB2)) {
11121 } else {
11122 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11123 }
11124 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11125 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11126 if (UNTAG_Bool(REGB0)) {
11127 } else {
11128 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11129 }
11130 /* ../lib/standard/kernel.nit:235 */
11131 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11132 } else {
11133 /* ../lib/standard/collection/array.nit:280 */
11134 REGB0 = TAG_Bool(0);
11135 REGB2 = REGB0;
11136 }
11137 if (UNTAG_Bool(REGB2)) {
11138 } else {
11139 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11140 }
11141 /* ../lib/standard/collection/array.nit:281 */
11142 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11143 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11144 if (UNTAG_Bool(REGB2)) {
11145 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11146 }
11147 /* ../lib/standard/collection/array.nit:724 */
11148 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11149 /* ../lib/standard/collection/array.nit:281 */
11150 goto label273;
11151 label273: while(0);
11152 /* compiling/compiling_icode.nit:822 */
11153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11154 if (!once_value_274) {
11155 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
11156 REGB1 = TAG_Int(13);
11157 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11158 once_value_274 = fra.me.REG[7];
11159 register_static_object(&once_value_274);
11160 } else fra.me.REG[7] = once_value_274;
11161 fra.me.REG[7] = fra.me.REG[7];
11162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11163 REGB1 = TAG_Int(1);
11164 /* ../lib/standard/collection/array.nit:278 */
11165 fra.me.REG[7] = fra.me.REG[4];
11166 /* ../lib/standard/collection/array.nit:280 */
11167 REGB2 = TAG_Int(0);
11168 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11169 if (UNTAG_Bool(REGB0)) {
11170 } else {
11171 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11172 }
11173 /* ../lib/standard/kernel.nit:236 */
11174 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11175 /* ../lib/standard/collection/array.nit:280 */
11176 if (UNTAG_Bool(REGB2)) {
11177 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11178 if (UNTAG_Bool(REGB2)) {
11179 } else {
11180 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11181 }
11182 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11183 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11184 if (UNTAG_Bool(REGB0)) {
11185 } else {
11186 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11187 }
11188 /* ../lib/standard/kernel.nit:235 */
11189 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11190 } else {
11191 /* ../lib/standard/collection/array.nit:280 */
11192 REGB0 = TAG_Bool(0);
11193 REGB2 = REGB0;
11194 }
11195 if (UNTAG_Bool(REGB2)) {
11196 } else {
11197 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11198 }
11199 /* ../lib/standard/collection/array.nit:281 */
11200 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11201 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11202 if (UNTAG_Bool(REGB2)) {
11203 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11204 }
11205 /* ../lib/standard/collection/array.nit:724 */
11206 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11207 /* ../lib/standard/collection/array.nit:281 */
11208 goto label275;
11209 label275: while(0);
11210 /* compiling/compiling_icode.nit:822 */
11211 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11212 if (!once_value_276) {
11213 fra.me.REG[7] = BOX_NativeString("))");
11214 REGB1 = TAG_Int(2);
11215 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11216 once_value_276 = fra.me.REG[7];
11217 register_static_object(&once_value_276);
11218 } else fra.me.REG[7] = once_value_276;
11219 fra.me.REG[7] = fra.me.REG[7];
11220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11221 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11222 fra.me.REG[5] = fra.me.REG[6];
11223 } else {
11224 /* compiling/compiling_icode.nit:823 */
11225 if (!once_value_277) {
11226 if (!once_value_278) {
11227 fra.me.REG[6] = BOX_NativeString("<");
11228 REGB1 = TAG_Int(1);
11229 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11230 once_value_278 = fra.me.REG[6];
11231 register_static_object(&once_value_278);
11232 } else fra.me.REG[6] = once_value_278;
11233 fra.me.REG[6] = fra.me.REG[6];
11234 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11235 once_value_277 = fra.me.REG[6];
11236 register_static_object(&once_value_277);
11237 } else fra.me.REG[6] = once_value_277;
11238 fra.me.REG[6] = fra.me.REG[6];
11239 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11240 if (UNTAG_Bool(REGB1)) {
11241 } else {
11242 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11243 REGB1 = REGB2;
11244 }
11245 if (UNTAG_Bool(REGB1)) {
11246 /* compiling/compiling_icode.nit:824 */
11247 REGB1 = TAG_Int(5);
11248 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11249 if (!once_value_279) {
11250 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11251 REGB1 = TAG_Int(20);
11252 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11253 once_value_279 = fra.me.REG[7];
11254 register_static_object(&once_value_279);
11255 } else fra.me.REG[7] = once_value_279;
11256 fra.me.REG[7] = fra.me.REG[7];
11257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11258 REGB1 = TAG_Int(0);
11259 /* ../lib/standard/collection/array.nit:278 */
11260 fra.me.REG[7] = fra.me.REG[4];
11261 /* ../lib/standard/collection/array.nit:280 */
11262 REGB2 = TAG_Int(0);
11263 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11264 if (UNTAG_Bool(REGB0)) {
11265 } else {
11266 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11267 }
11268 /* ../lib/standard/kernel.nit:236 */
11269 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11270 /* ../lib/standard/collection/array.nit:280 */
11271 if (UNTAG_Bool(REGB2)) {
11272 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11273 if (UNTAG_Bool(REGB2)) {
11274 } else {
11275 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11276 }
11277 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11278 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11279 if (UNTAG_Bool(REGB0)) {
11280 } else {
11281 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11282 }
11283 /* ../lib/standard/kernel.nit:235 */
11284 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11285 } else {
11286 /* ../lib/standard/collection/array.nit:280 */
11287 REGB0 = TAG_Bool(0);
11288 REGB2 = REGB0;
11289 }
11290 if (UNTAG_Bool(REGB2)) {
11291 } else {
11292 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11293 }
11294 /* ../lib/standard/collection/array.nit:281 */
11295 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11296 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11297 if (UNTAG_Bool(REGB2)) {
11298 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11299 }
11300 /* ../lib/standard/collection/array.nit:724 */
11301 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11302 /* ../lib/standard/collection/array.nit:281 */
11303 goto label280;
11304 label280: while(0);
11305 /* compiling/compiling_icode.nit:824 */
11306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11307 if (!once_value_281) {
11308 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
11309 REGB1 = TAG_Int(13);
11310 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11311 once_value_281 = fra.me.REG[7];
11312 register_static_object(&once_value_281);
11313 } else fra.me.REG[7] = once_value_281;
11314 fra.me.REG[7] = fra.me.REG[7];
11315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11316 REGB1 = TAG_Int(1);
11317 /* ../lib/standard/collection/array.nit:278 */
11318 fra.me.REG[7] = fra.me.REG[4];
11319 /* ../lib/standard/collection/array.nit:280 */
11320 REGB2 = TAG_Int(0);
11321 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11322 if (UNTAG_Bool(REGB0)) {
11323 } else {
11324 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11325 }
11326 /* ../lib/standard/kernel.nit:236 */
11327 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11328 /* ../lib/standard/collection/array.nit:280 */
11329 if (UNTAG_Bool(REGB2)) {
11330 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11331 if (UNTAG_Bool(REGB2)) {
11332 } else {
11333 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11334 }
11335 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11336 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11337 if (UNTAG_Bool(REGB0)) {
11338 } else {
11339 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11340 }
11341 /* ../lib/standard/kernel.nit:235 */
11342 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11343 } else {
11344 /* ../lib/standard/collection/array.nit:280 */
11345 REGB0 = TAG_Bool(0);
11346 REGB2 = REGB0;
11347 }
11348 if (UNTAG_Bool(REGB2)) {
11349 } else {
11350 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11351 }
11352 /* ../lib/standard/collection/array.nit:281 */
11353 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11354 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11355 if (UNTAG_Bool(REGB2)) {
11356 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11357 }
11358 /* ../lib/standard/collection/array.nit:724 */
11359 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11360 /* ../lib/standard/collection/array.nit:281 */
11361 goto label282;
11362 label282: while(0);
11363 /* compiling/compiling_icode.nit:824 */
11364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11365 if (!once_value_283) {
11366 fra.me.REG[7] = BOX_NativeString("))");
11367 REGB1 = TAG_Int(2);
11368 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11369 once_value_283 = fra.me.REG[7];
11370 register_static_object(&once_value_283);
11371 } else fra.me.REG[7] = once_value_283;
11372 fra.me.REG[7] = fra.me.REG[7];
11373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11374 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11375 fra.me.REG[5] = fra.me.REG[6];
11376 } else {
11377 /* compiling/compiling_icode.nit:825 */
11378 if (!once_value_284) {
11379 if (!once_value_285) {
11380 fra.me.REG[6] = BOX_NativeString(">");
11381 REGB1 = TAG_Int(1);
11382 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11383 once_value_285 = fra.me.REG[6];
11384 register_static_object(&once_value_285);
11385 } else fra.me.REG[6] = once_value_285;
11386 fra.me.REG[6] = fra.me.REG[6];
11387 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11388 once_value_284 = fra.me.REG[6];
11389 register_static_object(&once_value_284);
11390 } else fra.me.REG[6] = once_value_284;
11391 fra.me.REG[6] = fra.me.REG[6];
11392 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11393 if (UNTAG_Bool(REGB1)) {
11394 } else {
11395 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11396 REGB1 = REGB2;
11397 }
11398 if (UNTAG_Bool(REGB1)) {
11399 /* compiling/compiling_icode.nit:826 */
11400 REGB1 = TAG_Int(5);
11401 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11402 if (!once_value_286) {
11403 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11404 REGB1 = TAG_Int(20);
11405 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11406 once_value_286 = fra.me.REG[7];
11407 register_static_object(&once_value_286);
11408 } else fra.me.REG[7] = once_value_286;
11409 fra.me.REG[7] = fra.me.REG[7];
11410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11411 REGB1 = TAG_Int(0);
11412 /* ../lib/standard/collection/array.nit:278 */
11413 fra.me.REG[7] = fra.me.REG[4];
11414 /* ../lib/standard/collection/array.nit:280 */
11415 REGB2 = TAG_Int(0);
11416 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11417 if (UNTAG_Bool(REGB0)) {
11418 } else {
11419 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11420 }
11421 /* ../lib/standard/kernel.nit:236 */
11422 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11423 /* ../lib/standard/collection/array.nit:280 */
11424 if (UNTAG_Bool(REGB2)) {
11425 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11426 if (UNTAG_Bool(REGB2)) {
11427 } else {
11428 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11429 }
11430 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11431 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11432 if (UNTAG_Bool(REGB0)) {
11433 } else {
11434 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11435 }
11436 /* ../lib/standard/kernel.nit:235 */
11437 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11438 } else {
11439 /* ../lib/standard/collection/array.nit:280 */
11440 REGB0 = TAG_Bool(0);
11441 REGB2 = REGB0;
11442 }
11443 if (UNTAG_Bool(REGB2)) {
11444 } else {
11445 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11446 }
11447 /* ../lib/standard/collection/array.nit:281 */
11448 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11449 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11450 if (UNTAG_Bool(REGB2)) {
11451 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11452 }
11453 /* ../lib/standard/collection/array.nit:724 */
11454 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11455 /* ../lib/standard/collection/array.nit:281 */
11456 goto label287;
11457 label287: while(0);
11458 /* compiling/compiling_icode.nit:826 */
11459 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11460 if (!once_value_288) {
11461 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
11462 REGB1 = TAG_Int(13);
11463 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11464 once_value_288 = fra.me.REG[7];
11465 register_static_object(&once_value_288);
11466 } else fra.me.REG[7] = once_value_288;
11467 fra.me.REG[7] = fra.me.REG[7];
11468 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11469 REGB1 = TAG_Int(1);
11470 /* ../lib/standard/collection/array.nit:278 */
11471 fra.me.REG[7] = fra.me.REG[4];
11472 /* ../lib/standard/collection/array.nit:280 */
11473 REGB2 = TAG_Int(0);
11474 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11475 if (UNTAG_Bool(REGB0)) {
11476 } else {
11477 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11478 }
11479 /* ../lib/standard/kernel.nit:236 */
11480 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11481 /* ../lib/standard/collection/array.nit:280 */
11482 if (UNTAG_Bool(REGB2)) {
11483 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11484 if (UNTAG_Bool(REGB2)) {
11485 } else {
11486 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11487 }
11488 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11489 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11490 if (UNTAG_Bool(REGB0)) {
11491 } else {
11492 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11493 }
11494 /* ../lib/standard/kernel.nit:235 */
11495 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11496 } else {
11497 /* ../lib/standard/collection/array.nit:280 */
11498 REGB0 = TAG_Bool(0);
11499 REGB2 = REGB0;
11500 }
11501 if (UNTAG_Bool(REGB2)) {
11502 } else {
11503 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11504 }
11505 /* ../lib/standard/collection/array.nit:281 */
11506 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11507 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11508 if (UNTAG_Bool(REGB2)) {
11509 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11510 }
11511 /* ../lib/standard/collection/array.nit:724 */
11512 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11513 /* ../lib/standard/collection/array.nit:281 */
11514 goto label289;
11515 label289: while(0);
11516 /* compiling/compiling_icode.nit:826 */
11517 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11518 if (!once_value_290) {
11519 fra.me.REG[7] = BOX_NativeString("))");
11520 REGB1 = TAG_Int(2);
11521 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11522 once_value_290 = fra.me.REG[7];
11523 register_static_object(&once_value_290);
11524 } else fra.me.REG[7] = once_value_290;
11525 fra.me.REG[7] = fra.me.REG[7];
11526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11527 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11528 fra.me.REG[5] = fra.me.REG[6];
11529 } else {
11530 /* compiling/compiling_icode.nit:827 */
11531 if (!once_value_291) {
11532 if (!once_value_292) {
11533 fra.me.REG[6] = BOX_NativeString("<=");
11534 REGB1 = TAG_Int(2);
11535 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11536 once_value_292 = fra.me.REG[6];
11537 register_static_object(&once_value_292);
11538 } else fra.me.REG[6] = once_value_292;
11539 fra.me.REG[6] = fra.me.REG[6];
11540 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11541 once_value_291 = fra.me.REG[6];
11542 register_static_object(&once_value_291);
11543 } else fra.me.REG[6] = once_value_291;
11544 fra.me.REG[6] = fra.me.REG[6];
11545 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11546 if (UNTAG_Bool(REGB1)) {
11547 } else {
11548 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11549 REGB1 = REGB2;
11550 }
11551 if (UNTAG_Bool(REGB1)) {
11552 /* compiling/compiling_icode.nit:828 */
11553 REGB1 = TAG_Int(5);
11554 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11555 if (!once_value_293) {
11556 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11557 REGB1 = TAG_Int(20);
11558 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11559 once_value_293 = fra.me.REG[7];
11560 register_static_object(&once_value_293);
11561 } else fra.me.REG[7] = once_value_293;
11562 fra.me.REG[7] = fra.me.REG[7];
11563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11564 REGB1 = TAG_Int(0);
11565 /* ../lib/standard/collection/array.nit:278 */
11566 fra.me.REG[7] = fra.me.REG[4];
11567 /* ../lib/standard/collection/array.nit:280 */
11568 REGB2 = TAG_Int(0);
11569 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11570 if (UNTAG_Bool(REGB0)) {
11571 } else {
11572 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11573 }
11574 /* ../lib/standard/kernel.nit:236 */
11575 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11576 /* ../lib/standard/collection/array.nit:280 */
11577 if (UNTAG_Bool(REGB2)) {
11578 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11579 if (UNTAG_Bool(REGB2)) {
11580 } else {
11581 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11582 }
11583 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11584 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11585 if (UNTAG_Bool(REGB0)) {
11586 } else {
11587 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11588 }
11589 /* ../lib/standard/kernel.nit:235 */
11590 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11591 } else {
11592 /* ../lib/standard/collection/array.nit:280 */
11593 REGB0 = TAG_Bool(0);
11594 REGB2 = REGB0;
11595 }
11596 if (UNTAG_Bool(REGB2)) {
11597 } else {
11598 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11599 }
11600 /* ../lib/standard/collection/array.nit:281 */
11601 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11602 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11603 if (UNTAG_Bool(REGB2)) {
11604 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11605 }
11606 /* ../lib/standard/collection/array.nit:724 */
11607 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11608 /* ../lib/standard/collection/array.nit:281 */
11609 goto label294;
11610 label294: while(0);
11611 /* compiling/compiling_icode.nit:828 */
11612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11613 if (!once_value_295) {
11614 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
11615 REGB1 = TAG_Int(14);
11616 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11617 once_value_295 = fra.me.REG[7];
11618 register_static_object(&once_value_295);
11619 } else fra.me.REG[7] = once_value_295;
11620 fra.me.REG[7] = fra.me.REG[7];
11621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11622 REGB1 = TAG_Int(1);
11623 /* ../lib/standard/collection/array.nit:278 */
11624 fra.me.REG[7] = fra.me.REG[4];
11625 /* ../lib/standard/collection/array.nit:280 */
11626 REGB2 = TAG_Int(0);
11627 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11628 if (UNTAG_Bool(REGB0)) {
11629 } else {
11630 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11631 }
11632 /* ../lib/standard/kernel.nit:236 */
11633 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11634 /* ../lib/standard/collection/array.nit:280 */
11635 if (UNTAG_Bool(REGB2)) {
11636 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11637 if (UNTAG_Bool(REGB2)) {
11638 } else {
11639 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11640 }
11641 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11642 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11643 if (UNTAG_Bool(REGB0)) {
11644 } else {
11645 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11646 }
11647 /* ../lib/standard/kernel.nit:235 */
11648 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11649 } else {
11650 /* ../lib/standard/collection/array.nit:280 */
11651 REGB0 = TAG_Bool(0);
11652 REGB2 = REGB0;
11653 }
11654 if (UNTAG_Bool(REGB2)) {
11655 } else {
11656 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11657 }
11658 /* ../lib/standard/collection/array.nit:281 */
11659 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11660 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11661 if (UNTAG_Bool(REGB2)) {
11662 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11663 }
11664 /* ../lib/standard/collection/array.nit:724 */
11665 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11666 /* ../lib/standard/collection/array.nit:281 */
11667 goto label296;
11668 label296: while(0);
11669 /* compiling/compiling_icode.nit:828 */
11670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11671 if (!once_value_297) {
11672 fra.me.REG[7] = BOX_NativeString("))");
11673 REGB1 = TAG_Int(2);
11674 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11675 once_value_297 = fra.me.REG[7];
11676 register_static_object(&once_value_297);
11677 } else fra.me.REG[7] = once_value_297;
11678 fra.me.REG[7] = fra.me.REG[7];
11679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11680 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11681 fra.me.REG[5] = fra.me.REG[6];
11682 } else {
11683 /* compiling/compiling_icode.nit:829 */
11684 if (!once_value_298) {
11685 if (!once_value_299) {
11686 fra.me.REG[6] = BOX_NativeString(">=");
11687 REGB1 = TAG_Int(2);
11688 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11689 once_value_299 = fra.me.REG[6];
11690 register_static_object(&once_value_299);
11691 } else fra.me.REG[6] = once_value_299;
11692 fra.me.REG[6] = fra.me.REG[6];
11693 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11694 once_value_298 = fra.me.REG[6];
11695 register_static_object(&once_value_298);
11696 } else fra.me.REG[6] = once_value_298;
11697 fra.me.REG[6] = fra.me.REG[6];
11698 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11699 if (UNTAG_Bool(REGB1)) {
11700 } else {
11701 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11702 REGB1 = REGB2;
11703 }
11704 if (UNTAG_Bool(REGB1)) {
11705 /* compiling/compiling_icode.nit:830 */
11706 REGB1 = TAG_Int(5);
11707 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11708 if (!once_value_300) {
11709 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11710 REGB1 = TAG_Int(20);
11711 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11712 once_value_300 = fra.me.REG[7];
11713 register_static_object(&once_value_300);
11714 } else fra.me.REG[7] = once_value_300;
11715 fra.me.REG[7] = fra.me.REG[7];
11716 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11717 REGB1 = TAG_Int(0);
11718 /* ../lib/standard/collection/array.nit:278 */
11719 fra.me.REG[7] = fra.me.REG[4];
11720 /* ../lib/standard/collection/array.nit:280 */
11721 REGB2 = TAG_Int(0);
11722 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11723 if (UNTAG_Bool(REGB0)) {
11724 } else {
11725 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11726 }
11727 /* ../lib/standard/kernel.nit:236 */
11728 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11729 /* ../lib/standard/collection/array.nit:280 */
11730 if (UNTAG_Bool(REGB2)) {
11731 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11732 if (UNTAG_Bool(REGB2)) {
11733 } else {
11734 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11735 }
11736 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11737 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11738 if (UNTAG_Bool(REGB0)) {
11739 } else {
11740 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11741 }
11742 /* ../lib/standard/kernel.nit:235 */
11743 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11744 } else {
11745 /* ../lib/standard/collection/array.nit:280 */
11746 REGB0 = TAG_Bool(0);
11747 REGB2 = REGB0;
11748 }
11749 if (UNTAG_Bool(REGB2)) {
11750 } else {
11751 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11752 }
11753 /* ../lib/standard/collection/array.nit:281 */
11754 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11755 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11756 if (UNTAG_Bool(REGB2)) {
11757 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11758 }
11759 /* ../lib/standard/collection/array.nit:724 */
11760 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11761 /* ../lib/standard/collection/array.nit:281 */
11762 goto label301;
11763 label301: while(0);
11764 /* compiling/compiling_icode.nit:830 */
11765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11766 if (!once_value_302) {
11767 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
11768 REGB1 = TAG_Int(14);
11769 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11770 once_value_302 = fra.me.REG[7];
11771 register_static_object(&once_value_302);
11772 } else fra.me.REG[7] = once_value_302;
11773 fra.me.REG[7] = fra.me.REG[7];
11774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11775 REGB1 = TAG_Int(1);
11776 /* ../lib/standard/collection/array.nit:278 */
11777 fra.me.REG[7] = fra.me.REG[4];
11778 /* ../lib/standard/collection/array.nit:280 */
11779 REGB2 = TAG_Int(0);
11780 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11781 if (UNTAG_Bool(REGB0)) {
11782 } else {
11783 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11784 }
11785 /* ../lib/standard/kernel.nit:236 */
11786 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11787 /* ../lib/standard/collection/array.nit:280 */
11788 if (UNTAG_Bool(REGB2)) {
11789 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11790 if (UNTAG_Bool(REGB2)) {
11791 } else {
11792 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11793 }
11794 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11795 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11796 if (UNTAG_Bool(REGB0)) {
11797 } else {
11798 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11799 }
11800 /* ../lib/standard/kernel.nit:235 */
11801 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11802 } else {
11803 /* ../lib/standard/collection/array.nit:280 */
11804 REGB0 = TAG_Bool(0);
11805 REGB2 = REGB0;
11806 }
11807 if (UNTAG_Bool(REGB2)) {
11808 } else {
11809 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11810 }
11811 /* ../lib/standard/collection/array.nit:281 */
11812 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11813 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11814 if (UNTAG_Bool(REGB2)) {
11815 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11816 }
11817 /* ../lib/standard/collection/array.nit:724 */
11818 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11819 /* ../lib/standard/collection/array.nit:281 */
11820 goto label303;
11821 label303: while(0);
11822 /* compiling/compiling_icode.nit:830 */
11823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11824 if (!once_value_304) {
11825 fra.me.REG[7] = BOX_NativeString("))");
11826 REGB1 = TAG_Int(2);
11827 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11828 once_value_304 = fra.me.REG[7];
11829 register_static_object(&once_value_304);
11830 } else fra.me.REG[7] = once_value_304;
11831 fra.me.REG[7] = fra.me.REG[7];
11832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11833 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11834 fra.me.REG[5] = fra.me.REG[6];
11835 } else {
11836 /* compiling/compiling_icode.nit:831 */
11837 if (!once_value_305) {
11838 if (!once_value_306) {
11839 fra.me.REG[6] = BOX_NativeString("==");
11840 REGB1 = TAG_Int(2);
11841 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11842 once_value_306 = fra.me.REG[6];
11843 register_static_object(&once_value_306);
11844 } else fra.me.REG[6] = once_value_306;
11845 fra.me.REG[6] = fra.me.REG[6];
11846 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11847 once_value_305 = fra.me.REG[6];
11848 register_static_object(&once_value_305);
11849 } else fra.me.REG[6] = once_value_305;
11850 fra.me.REG[6] = fra.me.REG[6];
11851 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11852 if (UNTAG_Bool(REGB1)) {
11853 } else {
11854 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11855 REGB1 = REGB2;
11856 }
11857 if (UNTAG_Bool(REGB1)) {
11858 /* compiling/compiling_icode.nit:832 */
11859 REGB1 = TAG_Int(5);
11860 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11861 if (!once_value_307) {
11862 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11863 REGB1 = TAG_Int(10);
11864 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11865 once_value_307 = fra.me.REG[7];
11866 register_static_object(&once_value_307);
11867 } else fra.me.REG[7] = once_value_307;
11868 fra.me.REG[7] = fra.me.REG[7];
11869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11870 REGB1 = TAG_Int(0);
11871 /* ../lib/standard/collection/array.nit:278 */
11872 fra.me.REG[7] = fra.me.REG[4];
11873 /* ../lib/standard/collection/array.nit:280 */
11874 REGB2 = TAG_Int(0);
11875 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11876 if (UNTAG_Bool(REGB0)) {
11877 } else {
11878 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11879 }
11880 /* ../lib/standard/kernel.nit:236 */
11881 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11882 /* ../lib/standard/collection/array.nit:280 */
11883 if (UNTAG_Bool(REGB2)) {
11884 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11885 if (UNTAG_Bool(REGB2)) {
11886 } else {
11887 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11888 }
11889 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11890 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11891 if (UNTAG_Bool(REGB0)) {
11892 } else {
11893 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11894 }
11895 /* ../lib/standard/kernel.nit:235 */
11896 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11897 } else {
11898 /* ../lib/standard/collection/array.nit:280 */
11899 REGB0 = TAG_Bool(0);
11900 REGB2 = REGB0;
11901 }
11902 if (UNTAG_Bool(REGB2)) {
11903 } else {
11904 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11905 }
11906 /* ../lib/standard/collection/array.nit:281 */
11907 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11908 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11909 if (UNTAG_Bool(REGB2)) {
11910 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11911 }
11912 /* ../lib/standard/collection/array.nit:724 */
11913 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11914 /* ../lib/standard/collection/array.nit:281 */
11915 goto label308;
11916 label308: while(0);
11917 /* compiling/compiling_icode.nit:832 */
11918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11919 if (!once_value_309) {
11920 fra.me.REG[7] = BOX_NativeString(")==(");
11921 REGB1 = TAG_Int(4);
11922 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11923 once_value_309 = fra.me.REG[7];
11924 register_static_object(&once_value_309);
11925 } else fra.me.REG[7] = once_value_309;
11926 fra.me.REG[7] = fra.me.REG[7];
11927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11928 REGB1 = TAG_Int(1);
11929 /* ../lib/standard/collection/array.nit:278 */
11930 fra.me.REG[7] = fra.me.REG[4];
11931 /* ../lib/standard/collection/array.nit:280 */
11932 REGB2 = TAG_Int(0);
11933 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11934 if (UNTAG_Bool(REGB0)) {
11935 } else {
11936 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11937 }
11938 /* ../lib/standard/kernel.nit:236 */
11939 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11940 /* ../lib/standard/collection/array.nit:280 */
11941 if (UNTAG_Bool(REGB2)) {
11942 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11943 if (UNTAG_Bool(REGB2)) {
11944 } else {
11945 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11946 }
11947 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11948 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11949 if (UNTAG_Bool(REGB0)) {
11950 } else {
11951 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11952 }
11953 /* ../lib/standard/kernel.nit:235 */
11954 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11955 } else {
11956 /* ../lib/standard/collection/array.nit:280 */
11957 REGB0 = TAG_Bool(0);
11958 REGB2 = REGB0;
11959 }
11960 if (UNTAG_Bool(REGB2)) {
11961 } else {
11962 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
11963 }
11964 /* ../lib/standard/collection/array.nit:281 */
11965 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11966 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11967 if (UNTAG_Bool(REGB2)) {
11968 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11969 }
11970 /* ../lib/standard/collection/array.nit:724 */
11971 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11972 /* ../lib/standard/collection/array.nit:281 */
11973 goto label310;
11974 label310: while(0);
11975 /* compiling/compiling_icode.nit:832 */
11976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11977 if (!once_value_311) {
11978 fra.me.REG[7] = BOX_NativeString("))");
11979 REGB1 = TAG_Int(2);
11980 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11981 once_value_311 = fra.me.REG[7];
11982 register_static_object(&once_value_311);
11983 } else fra.me.REG[7] = once_value_311;
11984 fra.me.REG[7] = fra.me.REG[7];
11985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11986 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11987 fra.me.REG[5] = fra.me.REG[6];
11988 } else {
11989 /* compiling/compiling_icode.nit:833 */
11990 if (!once_value_312) {
11991 if (!once_value_313) {
11992 fra.me.REG[6] = BOX_NativeString("!=");
11993 REGB1 = TAG_Int(2);
11994 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11995 once_value_313 = fra.me.REG[6];
11996 register_static_object(&once_value_313);
11997 } else fra.me.REG[6] = once_value_313;
11998 fra.me.REG[6] = fra.me.REG[6];
11999 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12000 once_value_312 = fra.me.REG[6];
12001 register_static_object(&once_value_312);
12002 } else fra.me.REG[6] = once_value_312;
12003 fra.me.REG[6] = fra.me.REG[6];
12004 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12005 if (UNTAG_Bool(REGB1)) {
12006 } else {
12007 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12008 REGB1 = REGB2;
12009 }
12010 if (UNTAG_Bool(REGB1)) {
12011 /* compiling/compiling_icode.nit:834 */
12012 REGB1 = TAG_Int(5);
12013 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12014 if (!once_value_314) {
12015 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12016 REGB1 = TAG_Int(10);
12017 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12018 once_value_314 = fra.me.REG[7];
12019 register_static_object(&once_value_314);
12020 } else fra.me.REG[7] = once_value_314;
12021 fra.me.REG[7] = fra.me.REG[7];
12022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12023 REGB1 = TAG_Int(0);
12024 /* ../lib/standard/collection/array.nit:278 */
12025 fra.me.REG[7] = fra.me.REG[4];
12026 /* ../lib/standard/collection/array.nit:280 */
12027 REGB2 = TAG_Int(0);
12028 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12029 if (UNTAG_Bool(REGB0)) {
12030 } else {
12031 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12032 }
12033 /* ../lib/standard/kernel.nit:236 */
12034 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12035 /* ../lib/standard/collection/array.nit:280 */
12036 if (UNTAG_Bool(REGB2)) {
12037 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12038 if (UNTAG_Bool(REGB2)) {
12039 } else {
12040 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12041 }
12042 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12043 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12044 if (UNTAG_Bool(REGB0)) {
12045 } else {
12046 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12047 }
12048 /* ../lib/standard/kernel.nit:235 */
12049 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12050 } else {
12051 /* ../lib/standard/collection/array.nit:280 */
12052 REGB0 = TAG_Bool(0);
12053 REGB2 = REGB0;
12054 }
12055 if (UNTAG_Bool(REGB2)) {
12056 } else {
12057 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12058 }
12059 /* ../lib/standard/collection/array.nit:281 */
12060 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12061 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12062 if (UNTAG_Bool(REGB2)) {
12063 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12064 }
12065 /* ../lib/standard/collection/array.nit:724 */
12066 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12067 /* ../lib/standard/collection/array.nit:281 */
12068 goto label315;
12069 label315: while(0);
12070 /* compiling/compiling_icode.nit:834 */
12071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12072 if (!once_value_316) {
12073 fra.me.REG[7] = BOX_NativeString(")!=(");
12074 REGB1 = TAG_Int(4);
12075 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12076 once_value_316 = fra.me.REG[7];
12077 register_static_object(&once_value_316);
12078 } else fra.me.REG[7] = once_value_316;
12079 fra.me.REG[7] = fra.me.REG[7];
12080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12081 REGB1 = TAG_Int(1);
12082 /* ../lib/standard/collection/array.nit:278 */
12083 fra.me.REG[7] = fra.me.REG[4];
12084 /* ../lib/standard/collection/array.nit:280 */
12085 REGB2 = TAG_Int(0);
12086 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12087 if (UNTAG_Bool(REGB0)) {
12088 } else {
12089 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12090 }
12091 /* ../lib/standard/kernel.nit:236 */
12092 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12093 /* ../lib/standard/collection/array.nit:280 */
12094 if (UNTAG_Bool(REGB2)) {
12095 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12096 if (UNTAG_Bool(REGB2)) {
12097 } else {
12098 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12099 }
12100 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12101 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12102 if (UNTAG_Bool(REGB0)) {
12103 } else {
12104 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12105 }
12106 /* ../lib/standard/kernel.nit:235 */
12107 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12108 } else {
12109 /* ../lib/standard/collection/array.nit:280 */
12110 REGB0 = TAG_Bool(0);
12111 REGB2 = REGB0;
12112 }
12113 if (UNTAG_Bool(REGB2)) {
12114 } else {
12115 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12116 }
12117 /* ../lib/standard/collection/array.nit:281 */
12118 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12119 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12120 if (UNTAG_Bool(REGB2)) {
12121 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12122 }
12123 /* ../lib/standard/collection/array.nit:724 */
12124 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12125 /* ../lib/standard/collection/array.nit:281 */
12126 goto label317;
12127 label317: while(0);
12128 /* compiling/compiling_icode.nit:834 */
12129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12130 if (!once_value_318) {
12131 fra.me.REG[7] = BOX_NativeString("))");
12132 REGB1 = TAG_Int(2);
12133 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12134 once_value_318 = fra.me.REG[7];
12135 register_static_object(&once_value_318);
12136 } else fra.me.REG[7] = once_value_318;
12137 fra.me.REG[7] = fra.me.REG[7];
12138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12139 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12140 fra.me.REG[5] = fra.me.REG[6];
12141 }
12142 }
12143 }
12144 }
12145 }
12146 }
12147 }
12148 }
12149 }
12150 }
12151 }
12152 }
12153 }
12154 }
12155 }
12156 }
12157 }
12158 }
12159 } else {
12160 /* compiling/compiling_icode.nit:836 */
12161 if (!once_value_319) {
12162 if (!once_value_320) {
12163 fra.me.REG[6] = BOX_NativeString("Bool");
12164 REGB1 = TAG_Int(4);
12165 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12166 once_value_320 = fra.me.REG[6];
12167 register_static_object(&once_value_320);
12168 } else fra.me.REG[6] = once_value_320;
12169 fra.me.REG[6] = fra.me.REG[6];
12170 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12171 once_value_319 = fra.me.REG[6];
12172 register_static_object(&once_value_319);
12173 } else fra.me.REG[6] = once_value_319;
12174 fra.me.REG[6] = fra.me.REG[6];
12175 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12176 if (UNTAG_Bool(REGB1)) {
12177 } else {
12178 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12179 REGB1 = REGB2;
12180 }
12181 if (UNTAG_Bool(REGB1)) {
12182 /* compiling/compiling_icode.nit:837 */
12183 if (!once_value_321) {
12184 if (!once_value_322) {
12185 fra.me.REG[6] = BOX_NativeString("object_id");
12186 REGB1 = TAG_Int(9);
12187 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12188 once_value_322 = fra.me.REG[6];
12189 register_static_object(&once_value_322);
12190 } else fra.me.REG[6] = once_value_322;
12191 fra.me.REG[6] = fra.me.REG[6];
12192 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12193 once_value_321 = fra.me.REG[6];
12194 register_static_object(&once_value_321);
12195 } else fra.me.REG[6] = once_value_321;
12196 fra.me.REG[6] = fra.me.REG[6];
12197 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12198 if (UNTAG_Bool(REGB1)) {
12199 } else {
12200 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12201 REGB1 = REGB2;
12202 }
12203 if (UNTAG_Bool(REGB1)) {
12204 /* compiling/compiling_icode.nit:838 */
12205 REGB1 = TAG_Int(3);
12206 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12207 if (!once_value_323) {
12208 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12209 REGB1 = TAG_Int(19);
12210 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12211 once_value_323 = fra.me.REG[7];
12212 register_static_object(&once_value_323);
12213 } else fra.me.REG[7] = once_value_323;
12214 fra.me.REG[7] = fra.me.REG[7];
12215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12216 REGB1 = TAG_Int(0);
12217 /* ../lib/standard/collection/array.nit:278 */
12218 fra.me.REG[7] = fra.me.REG[4];
12219 /* ../lib/standard/collection/array.nit:280 */
12220 REGB2 = TAG_Int(0);
12221 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12222 if (UNTAG_Bool(REGB0)) {
12223 } else {
12224 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12225 }
12226 /* ../lib/standard/kernel.nit:236 */
12227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12228 /* ../lib/standard/collection/array.nit:280 */
12229 if (UNTAG_Bool(REGB2)) {
12230 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12231 if (UNTAG_Bool(REGB2)) {
12232 } else {
12233 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12234 }
12235 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12236 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12237 if (UNTAG_Bool(REGB0)) {
12238 } else {
12239 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12240 }
12241 /* ../lib/standard/kernel.nit:235 */
12242 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12243 } else {
12244 /* ../lib/standard/collection/array.nit:280 */
12245 REGB0 = TAG_Bool(0);
12246 REGB2 = REGB0;
12247 }
12248 if (UNTAG_Bool(REGB2)) {
12249 } else {
12250 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12251 }
12252 /* ../lib/standard/collection/array.nit:281 */
12253 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12254 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12255 if (UNTAG_Bool(REGB2)) {
12256 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12257 }
12258 /* ../lib/standard/collection/array.nit:724 */
12259 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12260 /* ../lib/standard/collection/array.nit:281 */
12261 goto label324;
12262 label324: while(0);
12263 /* compiling/compiling_icode.nit:838 */
12264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12265 if (!once_value_325) {
12266 fra.me.REG[7] = BOX_NativeString("))");
12267 REGB1 = TAG_Int(2);
12268 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12269 once_value_325 = fra.me.REG[7];
12270 register_static_object(&once_value_325);
12271 } else fra.me.REG[7] = once_value_325;
12272 fra.me.REG[7] = fra.me.REG[7];
12273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12274 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12275 fra.me.REG[5] = fra.me.REG[6];
12276 } else {
12277 /* compiling/compiling_icode.nit:839 */
12278 if (!once_value_326) {
12279 if (!once_value_327) {
12280 fra.me.REG[6] = BOX_NativeString("unary -");
12281 REGB1 = TAG_Int(7);
12282 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12283 once_value_327 = fra.me.REG[6];
12284 register_static_object(&once_value_327);
12285 } else fra.me.REG[6] = once_value_327;
12286 fra.me.REG[6] = fra.me.REG[6];
12287 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12288 once_value_326 = fra.me.REG[6];
12289 register_static_object(&once_value_326);
12290 } else fra.me.REG[6] = once_value_326;
12291 fra.me.REG[6] = fra.me.REG[6];
12292 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12293 if (UNTAG_Bool(REGB1)) {
12294 } else {
12295 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12296 REGB1 = REGB2;
12297 }
12298 if (UNTAG_Bool(REGB1)) {
12299 /* compiling/compiling_icode.nit:840 */
12300 REGB1 = TAG_Int(3);
12301 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12302 if (!once_value_328) {
12303 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
12304 REGB1 = TAG_Int(21);
12305 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12306 once_value_328 = fra.me.REG[7];
12307 register_static_object(&once_value_328);
12308 } else fra.me.REG[7] = once_value_328;
12309 fra.me.REG[7] = fra.me.REG[7];
12310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12311 REGB1 = TAG_Int(0);
12312 /* ../lib/standard/collection/array.nit:278 */
12313 fra.me.REG[7] = fra.me.REG[4];
12314 /* ../lib/standard/collection/array.nit:280 */
12315 REGB2 = TAG_Int(0);
12316 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12317 if (UNTAG_Bool(REGB0)) {
12318 } else {
12319 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12320 }
12321 /* ../lib/standard/kernel.nit:236 */
12322 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12323 /* ../lib/standard/collection/array.nit:280 */
12324 if (UNTAG_Bool(REGB2)) {
12325 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12326 if (UNTAG_Bool(REGB2)) {
12327 } else {
12328 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12329 }
12330 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12331 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12332 if (UNTAG_Bool(REGB0)) {
12333 } else {
12334 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12335 }
12336 /* ../lib/standard/kernel.nit:235 */
12337 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12338 } else {
12339 /* ../lib/standard/collection/array.nit:280 */
12340 REGB0 = TAG_Bool(0);
12341 REGB2 = REGB0;
12342 }
12343 if (UNTAG_Bool(REGB2)) {
12344 } else {
12345 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12346 }
12347 /* ../lib/standard/collection/array.nit:281 */
12348 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12349 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12350 if (UNTAG_Bool(REGB2)) {
12351 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12352 }
12353 /* ../lib/standard/collection/array.nit:724 */
12354 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12355 /* ../lib/standard/collection/array.nit:281 */
12356 goto label329;
12357 label329: while(0);
12358 /* compiling/compiling_icode.nit:840 */
12359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12360 if (!once_value_330) {
12361 fra.me.REG[7] = BOX_NativeString("))");
12362 REGB1 = TAG_Int(2);
12363 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12364 once_value_330 = fra.me.REG[7];
12365 register_static_object(&once_value_330);
12366 } else fra.me.REG[7] = once_value_330;
12367 fra.me.REG[7] = fra.me.REG[7];
12368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12369 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12370 fra.me.REG[5] = fra.me.REG[6];
12371 } else {
12372 /* compiling/compiling_icode.nit:841 */
12373 if (!once_value_331) {
12374 if (!once_value_332) {
12375 fra.me.REG[6] = BOX_NativeString("output");
12376 REGB1 = TAG_Int(6);
12377 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12378 once_value_332 = fra.me.REG[6];
12379 register_static_object(&once_value_332);
12380 } else fra.me.REG[6] = once_value_332;
12381 fra.me.REG[6] = fra.me.REG[6];
12382 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12383 once_value_331 = fra.me.REG[6];
12384 register_static_object(&once_value_331);
12385 } else fra.me.REG[6] = once_value_331;
12386 fra.me.REG[6] = fra.me.REG[6];
12387 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12388 if (UNTAG_Bool(REGB1)) {
12389 } else {
12390 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12391 REGB1 = REGB2;
12392 }
12393 if (UNTAG_Bool(REGB1)) {
12394 /* compiling/compiling_icode.nit:842 */
12395 REGB1 = TAG_Int(3);
12396 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12397 if (!once_value_333) {
12398 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
12399 REGB1 = TAG_Int(24);
12400 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12401 once_value_333 = fra.me.REG[7];
12402 register_static_object(&once_value_333);
12403 } else fra.me.REG[7] = once_value_333;
12404 fra.me.REG[7] = fra.me.REG[7];
12405 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12406 REGB1 = TAG_Int(0);
12407 /* ../lib/standard/collection/array.nit:278 */
12408 fra.me.REG[7] = fra.me.REG[4];
12409 /* ../lib/standard/collection/array.nit:280 */
12410 REGB2 = TAG_Int(0);
12411 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12412 if (UNTAG_Bool(REGB0)) {
12413 } else {
12414 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12415 }
12416 /* ../lib/standard/kernel.nit:236 */
12417 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12418 /* ../lib/standard/collection/array.nit:280 */
12419 if (UNTAG_Bool(REGB2)) {
12420 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12421 if (UNTAG_Bool(REGB2)) {
12422 } else {
12423 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12424 }
12425 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12426 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12427 if (UNTAG_Bool(REGB0)) {
12428 } else {
12429 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12430 }
12431 /* ../lib/standard/kernel.nit:235 */
12432 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12433 } else {
12434 /* ../lib/standard/collection/array.nit:280 */
12435 REGB0 = TAG_Bool(0);
12436 REGB2 = REGB0;
12437 }
12438 if (UNTAG_Bool(REGB2)) {
12439 } else {
12440 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12441 }
12442 /* ../lib/standard/collection/array.nit:281 */
12443 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12444 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12445 if (UNTAG_Bool(REGB2)) {
12446 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12447 }
12448 /* ../lib/standard/collection/array.nit:724 */
12449 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12450 /* ../lib/standard/collection/array.nit:281 */
12451 goto label334;
12452 label334: while(0);
12453 /* compiling/compiling_icode.nit:842 */
12454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12455 if (!once_value_335) {
12456 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
12457 REGB1 = TAG_Int(22);
12458 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12459 once_value_335 = fra.me.REG[7];
12460 register_static_object(&once_value_335);
12461 } else fra.me.REG[7] = once_value_335;
12462 fra.me.REG[7] = fra.me.REG[7];
12463 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12464 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12465 fra.me.REG[5] = fra.me.REG[6];
12466 } else {
12467 /* compiling/compiling_icode.nit:843 */
12468 if (!once_value_336) {
12469 if (!once_value_337) {
12470 fra.me.REG[6] = BOX_NativeString("ascii");
12471 REGB1 = TAG_Int(5);
12472 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12473 once_value_337 = fra.me.REG[6];
12474 register_static_object(&once_value_337);
12475 } else fra.me.REG[6] = once_value_337;
12476 fra.me.REG[6] = fra.me.REG[6];
12477 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12478 once_value_336 = fra.me.REG[6];
12479 register_static_object(&once_value_336);
12480 } else fra.me.REG[6] = once_value_336;
12481 fra.me.REG[6] = fra.me.REG[6];
12482 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12483 if (UNTAG_Bool(REGB1)) {
12484 } else {
12485 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12486 REGB1 = REGB2;
12487 }
12488 if (UNTAG_Bool(REGB1)) {
12489 /* compiling/compiling_icode.nit:844 */
12490 REGB1 = TAG_Int(3);
12491 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12492 if (!once_value_338) {
12493 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
12494 REGB1 = TAG_Int(20);
12495 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12496 once_value_338 = fra.me.REG[7];
12497 register_static_object(&once_value_338);
12498 } else fra.me.REG[7] = once_value_338;
12499 fra.me.REG[7] = fra.me.REG[7];
12500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12501 REGB1 = TAG_Int(0);
12502 /* ../lib/standard/collection/array.nit:278 */
12503 fra.me.REG[7] = fra.me.REG[4];
12504 /* ../lib/standard/collection/array.nit:280 */
12505 REGB2 = TAG_Int(0);
12506 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12507 if (UNTAG_Bool(REGB0)) {
12508 } else {
12509 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12510 }
12511 /* ../lib/standard/kernel.nit:236 */
12512 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12513 /* ../lib/standard/collection/array.nit:280 */
12514 if (UNTAG_Bool(REGB2)) {
12515 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12516 if (UNTAG_Bool(REGB2)) {
12517 } else {
12518 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12519 }
12520 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12521 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12522 if (UNTAG_Bool(REGB0)) {
12523 } else {
12524 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12525 }
12526 /* ../lib/standard/kernel.nit:235 */
12527 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12528 } else {
12529 /* ../lib/standard/collection/array.nit:280 */
12530 REGB0 = TAG_Bool(0);
12531 REGB2 = REGB0;
12532 }
12533 if (UNTAG_Bool(REGB2)) {
12534 } else {
12535 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12536 }
12537 /* ../lib/standard/collection/array.nit:281 */
12538 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12539 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12540 if (UNTAG_Bool(REGB2)) {
12541 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12542 }
12543 /* ../lib/standard/collection/array.nit:724 */
12544 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12545 /* ../lib/standard/collection/array.nit:281 */
12546 goto label339;
12547 label339: while(0);
12548 /* compiling/compiling_icode.nit:844 */
12549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12550 if (!once_value_340) {
12551 fra.me.REG[7] = BOX_NativeString("))");
12552 REGB1 = TAG_Int(2);
12553 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12554 once_value_340 = fra.me.REG[7];
12555 register_static_object(&once_value_340);
12556 } else fra.me.REG[7] = once_value_340;
12557 fra.me.REG[7] = fra.me.REG[7];
12558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12559 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12560 fra.me.REG[5] = fra.me.REG[6];
12561 } else {
12562 /* compiling/compiling_icode.nit:845 */
12563 if (!once_value_341) {
12564 if (!once_value_342) {
12565 fra.me.REG[6] = BOX_NativeString("to_i");
12566 REGB1 = TAG_Int(4);
12567 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12568 once_value_342 = fra.me.REG[6];
12569 register_static_object(&once_value_342);
12570 } else fra.me.REG[6] = once_value_342;
12571 fra.me.REG[6] = fra.me.REG[6];
12572 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12573 once_value_341 = fra.me.REG[6];
12574 register_static_object(&once_value_341);
12575 } else fra.me.REG[6] = once_value_341;
12576 fra.me.REG[6] = fra.me.REG[6];
12577 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12578 if (UNTAG_Bool(REGB1)) {
12579 } else {
12580 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12581 REGB1 = REGB2;
12582 }
12583 if (UNTAG_Bool(REGB1)) {
12584 /* compiling/compiling_icode.nit:846 */
12585 REGB1 = TAG_Int(3);
12586 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12587 if (!once_value_343) {
12588 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12589 REGB1 = TAG_Int(19);
12590 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12591 once_value_343 = fra.me.REG[7];
12592 register_static_object(&once_value_343);
12593 } else fra.me.REG[7] = once_value_343;
12594 fra.me.REG[7] = fra.me.REG[7];
12595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12596 REGB1 = TAG_Int(0);
12597 /* ../lib/standard/collection/array.nit:278 */
12598 fra.me.REG[7] = fra.me.REG[4];
12599 /* ../lib/standard/collection/array.nit:280 */
12600 REGB2 = TAG_Int(0);
12601 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12602 if (UNTAG_Bool(REGB0)) {
12603 } else {
12604 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12605 }
12606 /* ../lib/standard/kernel.nit:236 */
12607 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12608 /* ../lib/standard/collection/array.nit:280 */
12609 if (UNTAG_Bool(REGB2)) {
12610 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12611 if (UNTAG_Bool(REGB2)) {
12612 } else {
12613 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12614 }
12615 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12616 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12617 if (UNTAG_Bool(REGB0)) {
12618 } else {
12619 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12620 }
12621 /* ../lib/standard/kernel.nit:235 */
12622 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12623 } else {
12624 /* ../lib/standard/collection/array.nit:280 */
12625 REGB0 = TAG_Bool(0);
12626 REGB2 = REGB0;
12627 }
12628 if (UNTAG_Bool(REGB2)) {
12629 } else {
12630 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12631 }
12632 /* ../lib/standard/collection/array.nit:281 */
12633 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12634 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12635 if (UNTAG_Bool(REGB2)) {
12636 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12637 }
12638 /* ../lib/standard/collection/array.nit:724 */
12639 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12640 /* ../lib/standard/collection/array.nit:281 */
12641 goto label344;
12642 label344: while(0);
12643 /* compiling/compiling_icode.nit:846 */
12644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12645 if (!once_value_345) {
12646 fra.me.REG[7] = BOX_NativeString("))");
12647 REGB1 = TAG_Int(2);
12648 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12649 once_value_345 = fra.me.REG[7];
12650 register_static_object(&once_value_345);
12651 } else fra.me.REG[7] = once_value_345;
12652 fra.me.REG[7] = fra.me.REG[7];
12653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12654 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12655 fra.me.REG[5] = fra.me.REG[6];
12656 } else {
12657 /* compiling/compiling_icode.nit:847 */
12658 if (!once_value_346) {
12659 if (!once_value_347) {
12660 fra.me.REG[6] = BOX_NativeString("==");
12661 REGB1 = TAG_Int(2);
12662 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12663 once_value_347 = fra.me.REG[6];
12664 register_static_object(&once_value_347);
12665 } else fra.me.REG[6] = once_value_347;
12666 fra.me.REG[6] = fra.me.REG[6];
12667 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12668 once_value_346 = fra.me.REG[6];
12669 register_static_object(&once_value_346);
12670 } else fra.me.REG[6] = once_value_346;
12671 fra.me.REG[6] = fra.me.REG[6];
12672 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12673 if (UNTAG_Bool(REGB1)) {
12674 } else {
12675 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12676 REGB1 = REGB2;
12677 }
12678 if (UNTAG_Bool(REGB1)) {
12679 /* compiling/compiling_icode.nit:848 */
12680 REGB1 = TAG_Int(5);
12681 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12682 if (!once_value_348) {
12683 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12684 REGB1 = TAG_Int(10);
12685 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12686 once_value_348 = fra.me.REG[7];
12687 register_static_object(&once_value_348);
12688 } else fra.me.REG[7] = once_value_348;
12689 fra.me.REG[7] = fra.me.REG[7];
12690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12691 REGB1 = TAG_Int(0);
12692 /* ../lib/standard/collection/array.nit:278 */
12693 fra.me.REG[7] = fra.me.REG[4];
12694 /* ../lib/standard/collection/array.nit:280 */
12695 REGB2 = TAG_Int(0);
12696 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12697 if (UNTAG_Bool(REGB0)) {
12698 } else {
12699 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12700 }
12701 /* ../lib/standard/kernel.nit:236 */
12702 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12703 /* ../lib/standard/collection/array.nit:280 */
12704 if (UNTAG_Bool(REGB2)) {
12705 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12706 if (UNTAG_Bool(REGB2)) {
12707 } else {
12708 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12709 }
12710 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12711 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12712 if (UNTAG_Bool(REGB0)) {
12713 } else {
12714 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12715 }
12716 /* ../lib/standard/kernel.nit:235 */
12717 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12718 } else {
12719 /* ../lib/standard/collection/array.nit:280 */
12720 REGB0 = TAG_Bool(0);
12721 REGB2 = REGB0;
12722 }
12723 if (UNTAG_Bool(REGB2)) {
12724 } else {
12725 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12726 }
12727 /* ../lib/standard/collection/array.nit:281 */
12728 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12729 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12730 if (UNTAG_Bool(REGB2)) {
12731 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12732 }
12733 /* ../lib/standard/collection/array.nit:724 */
12734 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12735 /* ../lib/standard/collection/array.nit:281 */
12736 goto label349;
12737 label349: while(0);
12738 /* compiling/compiling_icode.nit:848 */
12739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12740 if (!once_value_350) {
12741 fra.me.REG[7] = BOX_NativeString(")==(");
12742 REGB1 = TAG_Int(4);
12743 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12744 once_value_350 = fra.me.REG[7];
12745 register_static_object(&once_value_350);
12746 } else fra.me.REG[7] = once_value_350;
12747 fra.me.REG[7] = fra.me.REG[7];
12748 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12749 REGB1 = TAG_Int(1);
12750 /* ../lib/standard/collection/array.nit:278 */
12751 fra.me.REG[7] = fra.me.REG[4];
12752 /* ../lib/standard/collection/array.nit:280 */
12753 REGB2 = TAG_Int(0);
12754 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12755 if (UNTAG_Bool(REGB0)) {
12756 } else {
12757 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12758 }
12759 /* ../lib/standard/kernel.nit:236 */
12760 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12761 /* ../lib/standard/collection/array.nit:280 */
12762 if (UNTAG_Bool(REGB2)) {
12763 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12764 if (UNTAG_Bool(REGB2)) {
12765 } else {
12766 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12767 }
12768 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12769 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12770 if (UNTAG_Bool(REGB0)) {
12771 } else {
12772 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12773 }
12774 /* ../lib/standard/kernel.nit:235 */
12775 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12776 } else {
12777 /* ../lib/standard/collection/array.nit:280 */
12778 REGB0 = TAG_Bool(0);
12779 REGB2 = REGB0;
12780 }
12781 if (UNTAG_Bool(REGB2)) {
12782 } else {
12783 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12784 }
12785 /* ../lib/standard/collection/array.nit:281 */
12786 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12787 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12788 if (UNTAG_Bool(REGB2)) {
12789 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12790 }
12791 /* ../lib/standard/collection/array.nit:724 */
12792 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12793 /* ../lib/standard/collection/array.nit:281 */
12794 goto label351;
12795 label351: while(0);
12796 /* compiling/compiling_icode.nit:848 */
12797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12798 if (!once_value_352) {
12799 fra.me.REG[7] = BOX_NativeString("))");
12800 REGB1 = TAG_Int(2);
12801 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12802 once_value_352 = fra.me.REG[7];
12803 register_static_object(&once_value_352);
12804 } else fra.me.REG[7] = once_value_352;
12805 fra.me.REG[7] = fra.me.REG[7];
12806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12807 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12808 fra.me.REG[5] = fra.me.REG[6];
12809 } else {
12810 /* compiling/compiling_icode.nit:849 */
12811 if (!once_value_353) {
12812 if (!once_value_354) {
12813 fra.me.REG[6] = BOX_NativeString("!=");
12814 REGB1 = TAG_Int(2);
12815 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12816 once_value_354 = fra.me.REG[6];
12817 register_static_object(&once_value_354);
12818 } else fra.me.REG[6] = once_value_354;
12819 fra.me.REG[6] = fra.me.REG[6];
12820 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12821 once_value_353 = fra.me.REG[6];
12822 register_static_object(&once_value_353);
12823 } else fra.me.REG[6] = once_value_353;
12824 fra.me.REG[6] = fra.me.REG[6];
12825 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12826 if (UNTAG_Bool(REGB1)) {
12827 } else {
12828 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12829 REGB1 = REGB2;
12830 }
12831 if (UNTAG_Bool(REGB1)) {
12832 /* compiling/compiling_icode.nit:850 */
12833 REGB1 = TAG_Int(5);
12834 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12835 if (!once_value_355) {
12836 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12837 REGB1 = TAG_Int(10);
12838 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12839 once_value_355 = fra.me.REG[7];
12840 register_static_object(&once_value_355);
12841 } else fra.me.REG[7] = once_value_355;
12842 fra.me.REG[7] = fra.me.REG[7];
12843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12844 REGB1 = TAG_Int(0);
12845 /* ../lib/standard/collection/array.nit:278 */
12846 fra.me.REG[7] = fra.me.REG[4];
12847 /* ../lib/standard/collection/array.nit:280 */
12848 REGB2 = TAG_Int(0);
12849 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12850 if (UNTAG_Bool(REGB0)) {
12851 } else {
12852 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12853 }
12854 /* ../lib/standard/kernel.nit:236 */
12855 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12856 /* ../lib/standard/collection/array.nit:280 */
12857 if (UNTAG_Bool(REGB2)) {
12858 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12859 if (UNTAG_Bool(REGB2)) {
12860 } else {
12861 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12862 }
12863 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12864 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12865 if (UNTAG_Bool(REGB0)) {
12866 } else {
12867 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12868 }
12869 /* ../lib/standard/kernel.nit:235 */
12870 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12871 } else {
12872 /* ../lib/standard/collection/array.nit:280 */
12873 REGB0 = TAG_Bool(0);
12874 REGB2 = REGB0;
12875 }
12876 if (UNTAG_Bool(REGB2)) {
12877 } else {
12878 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12879 }
12880 /* ../lib/standard/collection/array.nit:281 */
12881 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12882 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12883 if (UNTAG_Bool(REGB2)) {
12884 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12885 }
12886 /* ../lib/standard/collection/array.nit:724 */
12887 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12888 /* ../lib/standard/collection/array.nit:281 */
12889 goto label356;
12890 label356: while(0);
12891 /* compiling/compiling_icode.nit:850 */
12892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12893 if (!once_value_357) {
12894 fra.me.REG[7] = BOX_NativeString(")!=(");
12895 REGB1 = TAG_Int(4);
12896 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12897 once_value_357 = fra.me.REG[7];
12898 register_static_object(&once_value_357);
12899 } else fra.me.REG[7] = once_value_357;
12900 fra.me.REG[7] = fra.me.REG[7];
12901 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12902 REGB1 = TAG_Int(1);
12903 /* ../lib/standard/collection/array.nit:278 */
12904 fra.me.REG[7] = fra.me.REG[4];
12905 /* ../lib/standard/collection/array.nit:280 */
12906 REGB2 = TAG_Int(0);
12907 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12908 if (UNTAG_Bool(REGB0)) {
12909 } else {
12910 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12911 }
12912 /* ../lib/standard/kernel.nit:236 */
12913 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12914 /* ../lib/standard/collection/array.nit:280 */
12915 if (UNTAG_Bool(REGB2)) {
12916 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12917 if (UNTAG_Bool(REGB2)) {
12918 } else {
12919 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12920 }
12921 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12922 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12923 if (UNTAG_Bool(REGB0)) {
12924 } else {
12925 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12926 }
12927 /* ../lib/standard/kernel.nit:235 */
12928 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12929 } else {
12930 /* ../lib/standard/collection/array.nit:280 */
12931 REGB0 = TAG_Bool(0);
12932 REGB2 = REGB0;
12933 }
12934 if (UNTAG_Bool(REGB2)) {
12935 } else {
12936 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
12937 }
12938 /* ../lib/standard/collection/array.nit:281 */
12939 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12940 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12941 if (UNTAG_Bool(REGB2)) {
12942 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12943 }
12944 /* ../lib/standard/collection/array.nit:724 */
12945 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12946 /* ../lib/standard/collection/array.nit:281 */
12947 goto label358;
12948 label358: while(0);
12949 /* compiling/compiling_icode.nit:850 */
12950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12951 if (!once_value_359) {
12952 fra.me.REG[7] = BOX_NativeString("))");
12953 REGB1 = TAG_Int(2);
12954 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12955 once_value_359 = fra.me.REG[7];
12956 register_static_object(&once_value_359);
12957 } else fra.me.REG[7] = once_value_359;
12958 fra.me.REG[7] = fra.me.REG[7];
12959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12960 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12961 fra.me.REG[5] = fra.me.REG[6];
12962 }
12963 }
12964 }
12965 }
12966 }
12967 }
12968 }
12969 } else {
12970 /* compiling/compiling_icode.nit:852 */
12971 if (!once_value_360) {
12972 if (!once_value_361) {
12973 fra.me.REG[6] = BOX_NativeString("NativeArray");
12974 REGB1 = TAG_Int(11);
12975 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12976 once_value_361 = fra.me.REG[6];
12977 register_static_object(&once_value_361);
12978 } else fra.me.REG[6] = once_value_361;
12979 fra.me.REG[6] = fra.me.REG[6];
12980 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12981 once_value_360 = fra.me.REG[6];
12982 register_static_object(&once_value_360);
12983 } else fra.me.REG[6] = once_value_360;
12984 fra.me.REG[6] = fra.me.REG[6];
12985 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12986 if (UNTAG_Bool(REGB1)) {
12987 } else {
12988 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12989 REGB1 = REGB2;
12990 }
12991 if (UNTAG_Bool(REGB1)) {
12992 /* compiling/compiling_icode.nit:853 */
12993 if (!once_value_362) {
12994 if (!once_value_363) {
12995 fra.me.REG[6] = BOX_NativeString("object_id");
12996 REGB1 = TAG_Int(9);
12997 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12998 once_value_363 = fra.me.REG[6];
12999 register_static_object(&once_value_363);
13000 } else fra.me.REG[6] = once_value_363;
13001 fra.me.REG[6] = fra.me.REG[6];
13002 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13003 once_value_362 = fra.me.REG[6];
13004 register_static_object(&once_value_362);
13005 } else fra.me.REG[6] = once_value_362;
13006 fra.me.REG[6] = fra.me.REG[6];
13007 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13008 if (UNTAG_Bool(REGB1)) {
13009 } else {
13010 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13011 REGB1 = REGB2;
13012 }
13013 if (UNTAG_Bool(REGB1)) {
13014 /* compiling/compiling_icode.nit:854 */
13015 REGB1 = TAG_Int(3);
13016 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13017 if (!once_value_364) {
13018 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
13019 REGB1 = TAG_Int(26);
13020 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13021 once_value_364 = fra.me.REG[7];
13022 register_static_object(&once_value_364);
13023 } else fra.me.REG[7] = once_value_364;
13024 fra.me.REG[7] = fra.me.REG[7];
13025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13026 REGB1 = TAG_Int(0);
13027 /* ../lib/standard/collection/array.nit:278 */
13028 fra.me.REG[7] = fra.me.REG[4];
13029 /* ../lib/standard/collection/array.nit:280 */
13030 REGB2 = TAG_Int(0);
13031 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13032 if (UNTAG_Bool(REGB0)) {
13033 } else {
13034 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13035 }
13036 /* ../lib/standard/kernel.nit:236 */
13037 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13038 /* ../lib/standard/collection/array.nit:280 */
13039 if (UNTAG_Bool(REGB2)) {
13040 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13041 if (UNTAG_Bool(REGB2)) {
13042 } else {
13043 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13044 }
13045 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13046 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13047 if (UNTAG_Bool(REGB0)) {
13048 } else {
13049 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13050 }
13051 /* ../lib/standard/kernel.nit:235 */
13052 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13053 } else {
13054 /* ../lib/standard/collection/array.nit:280 */
13055 REGB0 = TAG_Bool(0);
13056 REGB2 = REGB0;
13057 }
13058 if (UNTAG_Bool(REGB2)) {
13059 } else {
13060 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13061 }
13062 /* ../lib/standard/collection/array.nit:281 */
13063 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13064 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13065 if (UNTAG_Bool(REGB2)) {
13066 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13067 }
13068 /* ../lib/standard/collection/array.nit:724 */
13069 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13070 /* ../lib/standard/collection/array.nit:281 */
13071 goto label365;
13072 label365: while(0);
13073 /* compiling/compiling_icode.nit:854 */
13074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13075 if (!once_value_366) {
13076 fra.me.REG[7] = BOX_NativeString(")->object_id)");
13077 REGB1 = TAG_Int(13);
13078 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13079 once_value_366 = fra.me.REG[7];
13080 register_static_object(&once_value_366);
13081 } else fra.me.REG[7] = once_value_366;
13082 fra.me.REG[7] = fra.me.REG[7];
13083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13084 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13085 fra.me.REG[5] = fra.me.REG[6];
13086 } else {
13087 /* compiling/compiling_icode.nit:855 */
13088 if (!once_value_367) {
13089 if (!once_value_368) {
13090 fra.me.REG[6] = BOX_NativeString("[]");
13091 REGB1 = TAG_Int(2);
13092 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13093 once_value_368 = fra.me.REG[6];
13094 register_static_object(&once_value_368);
13095 } else fra.me.REG[6] = once_value_368;
13096 fra.me.REG[6] = fra.me.REG[6];
13097 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13098 once_value_367 = fra.me.REG[6];
13099 register_static_object(&once_value_367);
13100 } else fra.me.REG[6] = once_value_367;
13101 fra.me.REG[6] = fra.me.REG[6];
13102 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13103 if (UNTAG_Bool(REGB1)) {
13104 } else {
13105 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13106 REGB1 = REGB2;
13107 }
13108 if (UNTAG_Bool(REGB1)) {
13109 /* compiling/compiling_icode.nit:856 */
13110 REGB1 = TAG_Int(5);
13111 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13112 if (!once_value_369) {
13113 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13114 REGB1 = TAG_Int(18);
13115 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13116 once_value_369 = fra.me.REG[7];
13117 register_static_object(&once_value_369);
13118 } else fra.me.REG[7] = once_value_369;
13119 fra.me.REG[7] = fra.me.REG[7];
13120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13121 REGB1 = TAG_Int(0);
13122 /* ../lib/standard/collection/array.nit:278 */
13123 fra.me.REG[7] = fra.me.REG[4];
13124 /* ../lib/standard/collection/array.nit:280 */
13125 REGB2 = TAG_Int(0);
13126 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13127 if (UNTAG_Bool(REGB0)) {
13128 } else {
13129 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13130 }
13131 /* ../lib/standard/kernel.nit:236 */
13132 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13133 /* ../lib/standard/collection/array.nit:280 */
13134 if (UNTAG_Bool(REGB2)) {
13135 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13136 if (UNTAG_Bool(REGB2)) {
13137 } else {
13138 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13139 }
13140 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13141 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13142 if (UNTAG_Bool(REGB0)) {
13143 } else {
13144 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13145 }
13146 /* ../lib/standard/kernel.nit:235 */
13147 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13148 } else {
13149 /* ../lib/standard/collection/array.nit:280 */
13150 REGB0 = TAG_Bool(0);
13151 REGB2 = REGB0;
13152 }
13153 if (UNTAG_Bool(REGB2)) {
13154 } else {
13155 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13156 }
13157 /* ../lib/standard/collection/array.nit:281 */
13158 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13159 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13160 if (UNTAG_Bool(REGB2)) {
13161 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13162 }
13163 /* ../lib/standard/collection/array.nit:724 */
13164 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13165 /* ../lib/standard/collection/array.nit:281 */
13166 goto label370;
13167 label370: while(0);
13168 /* compiling/compiling_icode.nit:856 */
13169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13170 if (!once_value_371) {
13171 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13172 REGB1 = TAG_Int(17);
13173 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13174 once_value_371 = fra.me.REG[7];
13175 register_static_object(&once_value_371);
13176 } else fra.me.REG[7] = once_value_371;
13177 fra.me.REG[7] = fra.me.REG[7];
13178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13179 REGB1 = TAG_Int(1);
13180 /* ../lib/standard/collection/array.nit:278 */
13181 fra.me.REG[7] = fra.me.REG[4];
13182 /* ../lib/standard/collection/array.nit:280 */
13183 REGB2 = TAG_Int(0);
13184 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13185 if (UNTAG_Bool(REGB0)) {
13186 } else {
13187 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13188 }
13189 /* ../lib/standard/kernel.nit:236 */
13190 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13191 /* ../lib/standard/collection/array.nit:280 */
13192 if (UNTAG_Bool(REGB2)) {
13193 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13194 if (UNTAG_Bool(REGB2)) {
13195 } else {
13196 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13197 }
13198 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13199 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13200 if (UNTAG_Bool(REGB0)) {
13201 } else {
13202 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13203 }
13204 /* ../lib/standard/kernel.nit:235 */
13205 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13206 } else {
13207 /* ../lib/standard/collection/array.nit:280 */
13208 REGB0 = TAG_Bool(0);
13209 REGB2 = REGB0;
13210 }
13211 if (UNTAG_Bool(REGB2)) {
13212 } else {
13213 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13214 }
13215 /* ../lib/standard/collection/array.nit:281 */
13216 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13217 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13218 if (UNTAG_Bool(REGB2)) {
13219 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13220 }
13221 /* ../lib/standard/collection/array.nit:724 */
13222 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13223 /* ../lib/standard/collection/array.nit:281 */
13224 goto label372;
13225 label372: while(0);
13226 /* compiling/compiling_icode.nit:856 */
13227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13228 if (!once_value_373) {
13229 fra.me.REG[7] = BOX_NativeString(")]");
13230 REGB1 = TAG_Int(2);
13231 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13232 once_value_373 = fra.me.REG[7];
13233 register_static_object(&once_value_373);
13234 } else fra.me.REG[7] = once_value_373;
13235 fra.me.REG[7] = fra.me.REG[7];
13236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13237 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13238 fra.me.REG[5] = fra.me.REG[6];
13239 } else {
13240 /* compiling/compiling_icode.nit:857 */
13241 if (!once_value_374) {
13242 if (!once_value_375) {
13243 fra.me.REG[6] = BOX_NativeString("[]=");
13244 REGB1 = TAG_Int(3);
13245 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13246 once_value_375 = fra.me.REG[6];
13247 register_static_object(&once_value_375);
13248 } else fra.me.REG[6] = once_value_375;
13249 fra.me.REG[6] = fra.me.REG[6];
13250 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13251 once_value_374 = fra.me.REG[6];
13252 register_static_object(&once_value_374);
13253 } else fra.me.REG[6] = once_value_374;
13254 fra.me.REG[6] = fra.me.REG[6];
13255 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13256 if (UNTAG_Bool(REGB1)) {
13257 } else {
13258 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13259 REGB1 = REGB2;
13260 }
13261 if (UNTAG_Bool(REGB1)) {
13262 /* compiling/compiling_icode.nit:858 */
13263 REGB1 = TAG_Int(7);
13264 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13265 if (!once_value_376) {
13266 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13267 REGB1 = TAG_Int(18);
13268 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13269 once_value_376 = fra.me.REG[7];
13270 register_static_object(&once_value_376);
13271 } else fra.me.REG[7] = once_value_376;
13272 fra.me.REG[7] = fra.me.REG[7];
13273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13274 REGB1 = TAG_Int(0);
13275 /* ../lib/standard/collection/array.nit:278 */
13276 fra.me.REG[7] = fra.me.REG[4];
13277 /* ../lib/standard/collection/array.nit:280 */
13278 REGB2 = TAG_Int(0);
13279 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13280 if (UNTAG_Bool(REGB0)) {
13281 } else {
13282 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13283 }
13284 /* ../lib/standard/kernel.nit:236 */
13285 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13286 /* ../lib/standard/collection/array.nit:280 */
13287 if (UNTAG_Bool(REGB2)) {
13288 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13289 if (UNTAG_Bool(REGB2)) {
13290 } else {
13291 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13292 }
13293 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13294 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13295 if (UNTAG_Bool(REGB0)) {
13296 } else {
13297 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13298 }
13299 /* ../lib/standard/kernel.nit:235 */
13300 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13301 } else {
13302 /* ../lib/standard/collection/array.nit:280 */
13303 REGB0 = TAG_Bool(0);
13304 REGB2 = REGB0;
13305 }
13306 if (UNTAG_Bool(REGB2)) {
13307 } else {
13308 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13309 }
13310 /* ../lib/standard/collection/array.nit:281 */
13311 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13312 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13313 if (UNTAG_Bool(REGB2)) {
13314 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13315 }
13316 /* ../lib/standard/collection/array.nit:724 */
13317 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13318 /* ../lib/standard/collection/array.nit:281 */
13319 goto label377;
13320 label377: while(0);
13321 /* compiling/compiling_icode.nit:858 */
13322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13323 if (!once_value_378) {
13324 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13325 REGB1 = TAG_Int(17);
13326 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13327 once_value_378 = fra.me.REG[7];
13328 register_static_object(&once_value_378);
13329 } else fra.me.REG[7] = once_value_378;
13330 fra.me.REG[7] = fra.me.REG[7];
13331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13332 REGB1 = TAG_Int(1);
13333 /* ../lib/standard/collection/array.nit:278 */
13334 fra.me.REG[7] = fra.me.REG[4];
13335 /* ../lib/standard/collection/array.nit:280 */
13336 REGB2 = TAG_Int(0);
13337 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13338 if (UNTAG_Bool(REGB0)) {
13339 } else {
13340 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13341 }
13342 /* ../lib/standard/kernel.nit:236 */
13343 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13344 /* ../lib/standard/collection/array.nit:280 */
13345 if (UNTAG_Bool(REGB2)) {
13346 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13347 if (UNTAG_Bool(REGB2)) {
13348 } else {
13349 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13350 }
13351 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13352 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13353 if (UNTAG_Bool(REGB0)) {
13354 } else {
13355 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13356 }
13357 /* ../lib/standard/kernel.nit:235 */
13358 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13359 } else {
13360 /* ../lib/standard/collection/array.nit:280 */
13361 REGB0 = TAG_Bool(0);
13362 REGB2 = REGB0;
13363 }
13364 if (UNTAG_Bool(REGB2)) {
13365 } else {
13366 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13367 }
13368 /* ../lib/standard/collection/array.nit:281 */
13369 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13370 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13371 if (UNTAG_Bool(REGB2)) {
13372 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13373 }
13374 /* ../lib/standard/collection/array.nit:724 */
13375 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13376 /* ../lib/standard/collection/array.nit:281 */
13377 goto label379;
13378 label379: while(0);
13379 /* compiling/compiling_icode.nit:858 */
13380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13381 if (!once_value_380) {
13382 fra.me.REG[7] = BOX_NativeString(")]=");
13383 REGB1 = TAG_Int(3);
13384 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13385 once_value_380 = fra.me.REG[7];
13386 register_static_object(&once_value_380);
13387 } else fra.me.REG[7] = once_value_380;
13388 fra.me.REG[7] = fra.me.REG[7];
13389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13390 REGB1 = TAG_Int(2);
13391 /* ../lib/standard/collection/array.nit:278 */
13392 fra.me.REG[7] = fra.me.REG[4];
13393 /* ../lib/standard/collection/array.nit:280 */
13394 REGB2 = TAG_Int(0);
13395 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13396 if (UNTAG_Bool(REGB0)) {
13397 } else {
13398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13399 }
13400 /* ../lib/standard/kernel.nit:236 */
13401 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13402 /* ../lib/standard/collection/array.nit:280 */
13403 if (UNTAG_Bool(REGB2)) {
13404 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13405 if (UNTAG_Bool(REGB2)) {
13406 } else {
13407 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13408 }
13409 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13410 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13411 if (UNTAG_Bool(REGB0)) {
13412 } else {
13413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13414 }
13415 /* ../lib/standard/kernel.nit:235 */
13416 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13417 } else {
13418 /* ../lib/standard/collection/array.nit:280 */
13419 REGB0 = TAG_Bool(0);
13420 REGB2 = REGB0;
13421 }
13422 if (UNTAG_Bool(REGB2)) {
13423 } else {
13424 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13425 }
13426 /* ../lib/standard/collection/array.nit:281 */
13427 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13428 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13429 if (UNTAG_Bool(REGB2)) {
13430 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13431 }
13432 /* ../lib/standard/collection/array.nit:724 */
13433 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13434 /* ../lib/standard/collection/array.nit:281 */
13435 goto label381;
13436 label381: while(0);
13437 /* compiling/compiling_icode.nit:858 */
13438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13439 if (!once_value_382) {
13440 fra.me.REG[7] = BOX_NativeString("");
13441 REGB1 = TAG_Int(0);
13442 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13443 once_value_382 = fra.me.REG[7];
13444 register_static_object(&once_value_382);
13445 } else fra.me.REG[7] = once_value_382;
13446 fra.me.REG[7] = fra.me.REG[7];
13447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13448 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13449 fra.me.REG[5] = fra.me.REG[6];
13450 } else {
13451 /* compiling/compiling_icode.nit:859 */
13452 if (!once_value_383) {
13453 if (!once_value_384) {
13454 fra.me.REG[6] = BOX_NativeString("copy_to");
13455 REGB1 = TAG_Int(7);
13456 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13457 once_value_384 = fra.me.REG[6];
13458 register_static_object(&once_value_384);
13459 } else fra.me.REG[6] = once_value_384;
13460 fra.me.REG[6] = fra.me.REG[6];
13461 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13462 once_value_383 = fra.me.REG[6];
13463 register_static_object(&once_value_383);
13464 } else fra.me.REG[6] = once_value_383;
13465 fra.me.REG[6] = fra.me.REG[6];
13466 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13467 if (UNTAG_Bool(REGB1)) {
13468 } else {
13469 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13470 REGB1 = REGB2;
13471 }
13472 if (UNTAG_Bool(REGB1)) {
13473 /* compiling/compiling_icode.nit:860 */
13474 REGB1 = TAG_Int(7);
13475 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13476 if (!once_value_385) {
13477 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
13478 REGB1 = TAG_Int(32);
13479 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13480 once_value_385 = fra.me.REG[7];
13481 register_static_object(&once_value_385);
13482 } else fra.me.REG[7] = once_value_385;
13483 fra.me.REG[7] = fra.me.REG[7];
13484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13485 REGB1 = TAG_Int(1);
13486 /* ../lib/standard/collection/array.nit:278 */
13487 fra.me.REG[7] = fra.me.REG[4];
13488 /* ../lib/standard/collection/array.nit:280 */
13489 REGB2 = TAG_Int(0);
13490 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13491 if (UNTAG_Bool(REGB0)) {
13492 } else {
13493 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13494 }
13495 /* ../lib/standard/kernel.nit:236 */
13496 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13497 /* ../lib/standard/collection/array.nit:280 */
13498 if (UNTAG_Bool(REGB2)) {
13499 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13500 if (UNTAG_Bool(REGB2)) {
13501 } else {
13502 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13503 }
13504 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13505 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13506 if (UNTAG_Bool(REGB0)) {
13507 } else {
13508 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13509 }
13510 /* ../lib/standard/kernel.nit:235 */
13511 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13512 } else {
13513 /* ../lib/standard/collection/array.nit:280 */
13514 REGB0 = TAG_Bool(0);
13515 REGB2 = REGB0;
13516 }
13517 if (UNTAG_Bool(REGB2)) {
13518 } else {
13519 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13520 }
13521 /* ../lib/standard/collection/array.nit:281 */
13522 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13523 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13524 if (UNTAG_Bool(REGB2)) {
13525 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13526 }
13527 /* ../lib/standard/collection/array.nit:724 */
13528 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13529 /* ../lib/standard/collection/array.nit:281 */
13530 goto label386;
13531 label386: while(0);
13532 /* compiling/compiling_icode.nit:860 */
13533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13534 if (!once_value_387) {
13535 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
13536 REGB1 = TAG_Int(26);
13537 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13538 once_value_387 = fra.me.REG[7];
13539 register_static_object(&once_value_387);
13540 } else fra.me.REG[7] = once_value_387;
13541 fra.me.REG[7] = fra.me.REG[7];
13542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13543 REGB1 = TAG_Int(0);
13544 /* ../lib/standard/collection/array.nit:278 */
13545 fra.me.REG[7] = fra.me.REG[4];
13546 /* ../lib/standard/collection/array.nit:280 */
13547 REGB2 = TAG_Int(0);
13548 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13549 if (UNTAG_Bool(REGB0)) {
13550 } else {
13551 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13552 }
13553 /* ../lib/standard/kernel.nit:236 */
13554 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13555 /* ../lib/standard/collection/array.nit:280 */
13556 if (UNTAG_Bool(REGB2)) {
13557 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13558 if (UNTAG_Bool(REGB2)) {
13559 } else {
13560 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13561 }
13562 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13563 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13564 if (UNTAG_Bool(REGB0)) {
13565 } else {
13566 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13567 }
13568 /* ../lib/standard/kernel.nit:235 */
13569 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13570 } else {
13571 /* ../lib/standard/collection/array.nit:280 */
13572 REGB0 = TAG_Bool(0);
13573 REGB2 = REGB0;
13574 }
13575 if (UNTAG_Bool(REGB2)) {
13576 } else {
13577 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13578 }
13579 /* ../lib/standard/collection/array.nit:281 */
13580 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13581 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13582 if (UNTAG_Bool(REGB2)) {
13583 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13584 }
13585 /* ../lib/standard/collection/array.nit:724 */
13586 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13587 /* ../lib/standard/collection/array.nit:281 */
13588 goto label388;
13589 label388: while(0);
13590 /* compiling/compiling_icode.nit:860 */
13591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13592 if (!once_value_389) {
13593 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
13594 REGB1 = TAG_Int(18);
13595 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13596 once_value_389 = fra.me.REG[7];
13597 register_static_object(&once_value_389);
13598 } else fra.me.REG[7] = once_value_389;
13599 fra.me.REG[7] = fra.me.REG[7];
13600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13601 REGB1 = TAG_Int(2);
13602 /* ../lib/standard/collection/array.nit:278 */
13603 fra.me.REG[7] = fra.me.REG[4];
13604 /* ../lib/standard/collection/array.nit:280 */
13605 REGB2 = TAG_Int(0);
13606 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13607 if (UNTAG_Bool(REGB0)) {
13608 } else {
13609 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13610 }
13611 /* ../lib/standard/kernel.nit:236 */
13612 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13613 /* ../lib/standard/collection/array.nit:280 */
13614 if (UNTAG_Bool(REGB2)) {
13615 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13616 if (UNTAG_Bool(REGB2)) {
13617 } else {
13618 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13619 }
13620 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13621 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13622 if (UNTAG_Bool(REGB0)) {
13623 } else {
13624 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13625 }
13626 /* ../lib/standard/kernel.nit:235 */
13627 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13628 } else {
13629 /* ../lib/standard/collection/array.nit:280 */
13630 REGB0 = TAG_Bool(0);
13631 REGB2 = REGB0;
13632 }
13633 if (UNTAG_Bool(REGB2)) {
13634 } else {
13635 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13636 }
13637 /* ../lib/standard/collection/array.nit:281 */
13638 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13639 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13640 if (UNTAG_Bool(REGB2)) {
13641 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13642 }
13643 /* ../lib/standard/collection/array.nit:724 */
13644 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13645 /* ../lib/standard/collection/array.nit:281 */
13646 goto label390;
13647 label390: while(0);
13648 /* compiling/compiling_icode.nit:860 */
13649 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13650 if (!once_value_391) {
13651 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
13652 REGB1 = TAG_Int(16);
13653 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13654 once_value_391 = fra.me.REG[7];
13655 register_static_object(&once_value_391);
13656 } else fra.me.REG[7] = once_value_391;
13657 fra.me.REG[7] = fra.me.REG[7];
13658 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13659 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13660 fra.me.REG[5] = fra.me.REG[6];
13661 }
13662 }
13663 }
13664 }
13665 } else {
13666 /* compiling/compiling_icode.nit:862 */
13667 if (!once_value_392) {
13668 if (!once_value_393) {
13669 fra.me.REG[6] = BOX_NativeString("NativeString");
13670 REGB1 = TAG_Int(12);
13671 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13672 once_value_393 = fra.me.REG[6];
13673 register_static_object(&once_value_393);
13674 } else fra.me.REG[6] = once_value_393;
13675 fra.me.REG[6] = fra.me.REG[6];
13676 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13677 once_value_392 = fra.me.REG[6];
13678 register_static_object(&once_value_392);
13679 } else fra.me.REG[6] = once_value_392;
13680 fra.me.REG[6] = fra.me.REG[6];
13681 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
13682 if (UNTAG_Bool(REGB1)) {
13683 } else {
13684 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
13685 REGB1 = REGB2;
13686 }
13687 if (UNTAG_Bool(REGB1)) {
13688 /* compiling/compiling_icode.nit:863 */
13689 if (!once_value_394) {
13690 if (!once_value_395) {
13691 fra.me.REG[6] = BOX_NativeString("object_id");
13692 REGB1 = TAG_Int(9);
13693 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13694 once_value_395 = fra.me.REG[6];
13695 register_static_object(&once_value_395);
13696 } else fra.me.REG[6] = once_value_395;
13697 fra.me.REG[6] = fra.me.REG[6];
13698 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13699 once_value_394 = fra.me.REG[6];
13700 register_static_object(&once_value_394);
13701 } else fra.me.REG[6] = once_value_394;
13702 fra.me.REG[6] = fra.me.REG[6];
13703 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13704 if (UNTAG_Bool(REGB1)) {
13705 } else {
13706 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13707 REGB1 = REGB2;
13708 }
13709 if (UNTAG_Bool(REGB1)) {
13710 /* compiling/compiling_icode.nit:864 */
13711 REGB1 = TAG_Int(3);
13712 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13713 if (!once_value_396) {
13714 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
13715 REGB1 = TAG_Int(27);
13716 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13717 once_value_396 = fra.me.REG[7];
13718 register_static_object(&once_value_396);
13719 } else fra.me.REG[7] = once_value_396;
13720 fra.me.REG[7] = fra.me.REG[7];
13721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13722 REGB1 = TAG_Int(0);
13723 /* ../lib/standard/collection/array.nit:278 */
13724 fra.me.REG[7] = fra.me.REG[4];
13725 /* ../lib/standard/collection/array.nit:280 */
13726 REGB2 = TAG_Int(0);
13727 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13728 if (UNTAG_Bool(REGB0)) {
13729 } else {
13730 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13731 }
13732 /* ../lib/standard/kernel.nit:236 */
13733 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13734 /* ../lib/standard/collection/array.nit:280 */
13735 if (UNTAG_Bool(REGB2)) {
13736 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13737 if (UNTAG_Bool(REGB2)) {
13738 } else {
13739 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13740 }
13741 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13742 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13743 if (UNTAG_Bool(REGB0)) {
13744 } else {
13745 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13746 }
13747 /* ../lib/standard/kernel.nit:235 */
13748 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13749 } else {
13750 /* ../lib/standard/collection/array.nit:280 */
13751 REGB0 = TAG_Bool(0);
13752 REGB2 = REGB0;
13753 }
13754 if (UNTAG_Bool(REGB2)) {
13755 } else {
13756 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13757 }
13758 /* ../lib/standard/collection/array.nit:281 */
13759 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13760 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13761 if (UNTAG_Bool(REGB2)) {
13762 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13763 }
13764 /* ../lib/standard/collection/array.nit:724 */
13765 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13766 /* ../lib/standard/collection/array.nit:281 */
13767 goto label397;
13768 label397: while(0);
13769 /* compiling/compiling_icode.nit:864 */
13770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13771 if (!once_value_398) {
13772 fra.me.REG[7] = BOX_NativeString("))");
13773 REGB1 = TAG_Int(2);
13774 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13775 once_value_398 = fra.me.REG[7];
13776 register_static_object(&once_value_398);
13777 } else fra.me.REG[7] = once_value_398;
13778 fra.me.REG[7] = fra.me.REG[7];
13779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13780 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13781 fra.me.REG[5] = fra.me.REG[6];
13782 } else {
13783 /* compiling/compiling_icode.nit:865 */
13784 if (!once_value_399) {
13785 if (!once_value_400) {
13786 fra.me.REG[6] = BOX_NativeString("atoi");
13787 REGB1 = TAG_Int(4);
13788 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13789 once_value_400 = fra.me.REG[6];
13790 register_static_object(&once_value_400);
13791 } else fra.me.REG[6] = once_value_400;
13792 fra.me.REG[6] = fra.me.REG[6];
13793 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13794 once_value_399 = fra.me.REG[6];
13795 register_static_object(&once_value_399);
13796 } else fra.me.REG[6] = once_value_399;
13797 fra.me.REG[6] = fra.me.REG[6];
13798 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13799 if (UNTAG_Bool(REGB1)) {
13800 } else {
13801 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13802 REGB1 = REGB2;
13803 }
13804 if (UNTAG_Bool(REGB1)) {
13805 /* compiling/compiling_icode.nit:866 */
13806 REGB1 = TAG_Int(3);
13807 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13808 if (!once_value_401) {
13809 fra.me.REG[7] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
13810 REGB1 = TAG_Int(32);
13811 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13812 once_value_401 = fra.me.REG[7];
13813 register_static_object(&once_value_401);
13814 } else fra.me.REG[7] = once_value_401;
13815 fra.me.REG[7] = fra.me.REG[7];
13816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13817 REGB1 = TAG_Int(0);
13818 /* ../lib/standard/collection/array.nit:278 */
13819 fra.me.REG[7] = fra.me.REG[4];
13820 /* ../lib/standard/collection/array.nit:280 */
13821 REGB2 = TAG_Int(0);
13822 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13823 if (UNTAG_Bool(REGB0)) {
13824 } else {
13825 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13826 }
13827 /* ../lib/standard/kernel.nit:236 */
13828 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13829 /* ../lib/standard/collection/array.nit:280 */
13830 if (UNTAG_Bool(REGB2)) {
13831 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13832 if (UNTAG_Bool(REGB2)) {
13833 } else {
13834 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13835 }
13836 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13837 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13838 if (UNTAG_Bool(REGB0)) {
13839 } else {
13840 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13841 }
13842 /* ../lib/standard/kernel.nit:235 */
13843 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13844 } else {
13845 /* ../lib/standard/collection/array.nit:280 */
13846 REGB0 = TAG_Bool(0);
13847 REGB2 = REGB0;
13848 }
13849 if (UNTAG_Bool(REGB2)) {
13850 } else {
13851 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13852 }
13853 /* ../lib/standard/collection/array.nit:281 */
13854 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13855 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13856 if (UNTAG_Bool(REGB2)) {
13857 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13858 }
13859 /* ../lib/standard/collection/array.nit:724 */
13860 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13861 /* ../lib/standard/collection/array.nit:281 */
13862 goto label402;
13863 label402: while(0);
13864 /* compiling/compiling_icode.nit:866 */
13865 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13866 if (!once_value_403) {
13867 fra.me.REG[7] = BOX_NativeString(")))");
13868 REGB1 = TAG_Int(3);
13869 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13870 once_value_403 = fra.me.REG[7];
13871 register_static_object(&once_value_403);
13872 } else fra.me.REG[7] = once_value_403;
13873 fra.me.REG[7] = fra.me.REG[7];
13874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13875 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13876 fra.me.REG[5] = fra.me.REG[6];
13877 } else {
13878 /* compiling/compiling_icode.nit:867 */
13879 if (!once_value_404) {
13880 if (!once_value_405) {
13881 fra.me.REG[6] = BOX_NativeString("[]");
13882 REGB1 = TAG_Int(2);
13883 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13884 once_value_405 = fra.me.REG[6];
13885 register_static_object(&once_value_405);
13886 } else fra.me.REG[6] = once_value_405;
13887 fra.me.REG[6] = fra.me.REG[6];
13888 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13889 once_value_404 = fra.me.REG[6];
13890 register_static_object(&once_value_404);
13891 } else fra.me.REG[6] = once_value_404;
13892 fra.me.REG[6] = fra.me.REG[6];
13893 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13894 if (UNTAG_Bool(REGB1)) {
13895 } else {
13896 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13897 REGB1 = REGB2;
13898 }
13899 if (UNTAG_Bool(REGB1)) {
13900 /* compiling/compiling_icode.nit:868 */
13901 REGB1 = TAG_Int(5);
13902 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13903 if (!once_value_406) {
13904 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
13905 REGB1 = TAG_Int(28);
13906 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13907 once_value_406 = fra.me.REG[7];
13908 register_static_object(&once_value_406);
13909 } else fra.me.REG[7] = once_value_406;
13910 fra.me.REG[7] = fra.me.REG[7];
13911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13912 REGB1 = TAG_Int(0);
13913 /* ../lib/standard/collection/array.nit:278 */
13914 fra.me.REG[7] = fra.me.REG[4];
13915 /* ../lib/standard/collection/array.nit:280 */
13916 REGB2 = TAG_Int(0);
13917 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13918 if (UNTAG_Bool(REGB0)) {
13919 } else {
13920 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13921 }
13922 /* ../lib/standard/kernel.nit:236 */
13923 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13924 /* ../lib/standard/collection/array.nit:280 */
13925 if (UNTAG_Bool(REGB2)) {
13926 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13927 if (UNTAG_Bool(REGB2)) {
13928 } else {
13929 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13930 }
13931 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13932 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13933 if (UNTAG_Bool(REGB0)) {
13934 } else {
13935 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13936 }
13937 /* ../lib/standard/kernel.nit:235 */
13938 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13939 } else {
13940 /* ../lib/standard/collection/array.nit:280 */
13941 REGB0 = TAG_Bool(0);
13942 REGB2 = REGB0;
13943 }
13944 if (UNTAG_Bool(REGB2)) {
13945 } else {
13946 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
13947 }
13948 /* ../lib/standard/collection/array.nit:281 */
13949 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13950 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13951 if (UNTAG_Bool(REGB2)) {
13952 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13953 }
13954 /* ../lib/standard/collection/array.nit:724 */
13955 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13956 /* ../lib/standard/collection/array.nit:281 */
13957 goto label407;
13958 label407: while(0);
13959 /* compiling/compiling_icode.nit:868 */
13960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13961 if (!once_value_408) {
13962 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
13963 REGB1 = TAG_Int(12);
13964 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13965 once_value_408 = fra.me.REG[7];
13966 register_static_object(&once_value_408);
13967 } else fra.me.REG[7] = once_value_408;
13968 fra.me.REG[7] = fra.me.REG[7];
13969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13970 REGB1 = TAG_Int(1);
13971 /* ../lib/standard/collection/array.nit:278 */
13972 fra.me.REG[7] = fra.me.REG[4];
13973 /* ../lib/standard/collection/array.nit:280 */
13974 REGB2 = TAG_Int(0);
13975 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13976 if (UNTAG_Bool(REGB0)) {
13977 } else {
13978 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13979 }
13980 /* ../lib/standard/kernel.nit:236 */
13981 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13982 /* ../lib/standard/collection/array.nit:280 */
13983 if (UNTAG_Bool(REGB2)) {
13984 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13985 if (UNTAG_Bool(REGB2)) {
13986 } else {
13987 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13988 }
13989 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13990 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13991 if (UNTAG_Bool(REGB0)) {
13992 } else {
13993 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13994 }
13995 /* ../lib/standard/kernel.nit:235 */
13996 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13997 } else {
13998 /* ../lib/standard/collection/array.nit:280 */
13999 REGB0 = TAG_Bool(0);
14000 REGB2 = REGB0;
14001 }
14002 if (UNTAG_Bool(REGB2)) {
14003 } else {
14004 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14005 }
14006 /* ../lib/standard/collection/array.nit:281 */
14007 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14008 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14009 if (UNTAG_Bool(REGB2)) {
14010 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14011 }
14012 /* ../lib/standard/collection/array.nit:724 */
14013 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14014 /* ../lib/standard/collection/array.nit:281 */
14015 goto label409;
14016 label409: while(0);
14017 /* compiling/compiling_icode.nit:868 */
14018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14019 if (!once_value_410) {
14020 fra.me.REG[7] = BOX_NativeString(")])");
14021 REGB1 = TAG_Int(3);
14022 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14023 once_value_410 = fra.me.REG[7];
14024 register_static_object(&once_value_410);
14025 } else fra.me.REG[7] = once_value_410;
14026 fra.me.REG[7] = fra.me.REG[7];
14027 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14028 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14029 fra.me.REG[5] = fra.me.REG[6];
14030 } else {
14031 /* compiling/compiling_icode.nit:869 */
14032 if (!once_value_411) {
14033 if (!once_value_412) {
14034 fra.me.REG[6] = BOX_NativeString("[]=");
14035 REGB1 = TAG_Int(3);
14036 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14037 once_value_412 = fra.me.REG[6];
14038 register_static_object(&once_value_412);
14039 } else fra.me.REG[6] = once_value_412;
14040 fra.me.REG[6] = fra.me.REG[6];
14041 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14042 once_value_411 = fra.me.REG[6];
14043 register_static_object(&once_value_411);
14044 } else fra.me.REG[6] = once_value_411;
14045 fra.me.REG[6] = fra.me.REG[6];
14046 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14047 if (UNTAG_Bool(REGB1)) {
14048 } else {
14049 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14050 REGB1 = REGB2;
14051 }
14052 if (UNTAG_Bool(REGB1)) {
14053 /* compiling/compiling_icode.nit:870 */
14054 REGB1 = TAG_Int(7);
14055 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14056 if (!once_value_413) {
14057 fra.me.REG[7] = BOX_NativeString("UNBOX_NativeString(");
14058 REGB1 = TAG_Int(19);
14059 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14060 once_value_413 = fra.me.REG[7];
14061 register_static_object(&once_value_413);
14062 } else fra.me.REG[7] = once_value_413;
14063 fra.me.REG[7] = fra.me.REG[7];
14064 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14065 REGB1 = TAG_Int(0);
14066 /* ../lib/standard/collection/array.nit:278 */
14067 fra.me.REG[7] = fra.me.REG[4];
14068 /* ../lib/standard/collection/array.nit:280 */
14069 REGB2 = TAG_Int(0);
14070 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14071 if (UNTAG_Bool(REGB0)) {
14072 } else {
14073 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14074 }
14075 /* ../lib/standard/kernel.nit:236 */
14076 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14077 /* ../lib/standard/collection/array.nit:280 */
14078 if (UNTAG_Bool(REGB2)) {
14079 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14080 if (UNTAG_Bool(REGB2)) {
14081 } else {
14082 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14083 }
14084 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14085 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14086 if (UNTAG_Bool(REGB0)) {
14087 } else {
14088 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14089 }
14090 /* ../lib/standard/kernel.nit:235 */
14091 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14092 } else {
14093 /* ../lib/standard/collection/array.nit:280 */
14094 REGB0 = TAG_Bool(0);
14095 REGB2 = REGB0;
14096 }
14097 if (UNTAG_Bool(REGB2)) {
14098 } else {
14099 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14100 }
14101 /* ../lib/standard/collection/array.nit:281 */
14102 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14103 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14104 if (UNTAG_Bool(REGB2)) {
14105 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14106 }
14107 /* ../lib/standard/collection/array.nit:724 */
14108 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14109 /* ../lib/standard/collection/array.nit:281 */
14110 goto label414;
14111 label414: while(0);
14112 /* compiling/compiling_icode.nit:870 */
14113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14114 if (!once_value_415) {
14115 fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
14116 REGB1 = TAG_Int(12);
14117 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14118 once_value_415 = fra.me.REG[7];
14119 register_static_object(&once_value_415);
14120 } else fra.me.REG[7] = once_value_415;
14121 fra.me.REG[7] = fra.me.REG[7];
14122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14123 REGB1 = TAG_Int(1);
14124 /* ../lib/standard/collection/array.nit:278 */
14125 fra.me.REG[7] = fra.me.REG[4];
14126 /* ../lib/standard/collection/array.nit:280 */
14127 REGB2 = TAG_Int(0);
14128 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14129 if (UNTAG_Bool(REGB0)) {
14130 } else {
14131 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14132 }
14133 /* ../lib/standard/kernel.nit:236 */
14134 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14135 /* ../lib/standard/collection/array.nit:280 */
14136 if (UNTAG_Bool(REGB2)) {
14137 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14138 if (UNTAG_Bool(REGB2)) {
14139 } else {
14140 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14141 }
14142 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14143 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14144 if (UNTAG_Bool(REGB0)) {
14145 } else {
14146 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14147 }
14148 /* ../lib/standard/kernel.nit:235 */
14149 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14150 } else {
14151 /* ../lib/standard/collection/array.nit:280 */
14152 REGB0 = TAG_Bool(0);
14153 REGB2 = REGB0;
14154 }
14155 if (UNTAG_Bool(REGB2)) {
14156 } else {
14157 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14158 }
14159 /* ../lib/standard/collection/array.nit:281 */
14160 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14161 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14162 if (UNTAG_Bool(REGB2)) {
14163 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14164 }
14165 /* ../lib/standard/collection/array.nit:724 */
14166 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14167 /* ../lib/standard/collection/array.nit:281 */
14168 goto label416;
14169 label416: while(0);
14170 /* compiling/compiling_icode.nit:870 */
14171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14172 if (!once_value_417) {
14173 fra.me.REG[7] = BOX_NativeString(")]=UNTAG_Char(");
14174 REGB1 = TAG_Int(14);
14175 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14176 once_value_417 = fra.me.REG[7];
14177 register_static_object(&once_value_417);
14178 } else fra.me.REG[7] = once_value_417;
14179 fra.me.REG[7] = fra.me.REG[7];
14180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14181 REGB1 = TAG_Int(2);
14182 /* ../lib/standard/collection/array.nit:278 */
14183 fra.me.REG[7] = fra.me.REG[4];
14184 /* ../lib/standard/collection/array.nit:280 */
14185 REGB2 = TAG_Int(0);
14186 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14187 if (UNTAG_Bool(REGB0)) {
14188 } else {
14189 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14190 }
14191 /* ../lib/standard/kernel.nit:236 */
14192 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14193 /* ../lib/standard/collection/array.nit:280 */
14194 if (UNTAG_Bool(REGB2)) {
14195 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14196 if (UNTAG_Bool(REGB2)) {
14197 } else {
14198 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14199 }
14200 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14201 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14202 if (UNTAG_Bool(REGB0)) {
14203 } else {
14204 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14205 }
14206 /* ../lib/standard/kernel.nit:235 */
14207 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14208 } else {
14209 /* ../lib/standard/collection/array.nit:280 */
14210 REGB0 = TAG_Bool(0);
14211 REGB2 = REGB0;
14212 }
14213 if (UNTAG_Bool(REGB2)) {
14214 } else {
14215 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14216 }
14217 /* ../lib/standard/collection/array.nit:281 */
14218 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14219 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14220 if (UNTAG_Bool(REGB2)) {
14221 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14222 }
14223 /* ../lib/standard/collection/array.nit:724 */
14224 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14225 /* ../lib/standard/collection/array.nit:281 */
14226 goto label418;
14227 label418: while(0);
14228 /* compiling/compiling_icode.nit:870 */
14229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14230 if (!once_value_419) {
14231 fra.me.REG[7] = BOX_NativeString(");");
14232 REGB1 = TAG_Int(2);
14233 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14234 once_value_419 = fra.me.REG[7];
14235 register_static_object(&once_value_419);
14236 } else fra.me.REG[7] = once_value_419;
14237 fra.me.REG[7] = fra.me.REG[7];
14238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14239 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14240 fra.me.REG[5] = fra.me.REG[6];
14241 } else {
14242 /* compiling/compiling_icode.nit:871 */
14243 if (!once_value_420) {
14244 if (!once_value_421) {
14245 fra.me.REG[6] = BOX_NativeString("copy_to");
14246 REGB1 = TAG_Int(7);
14247 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14248 once_value_421 = fra.me.REG[6];
14249 register_static_object(&once_value_421);
14250 } else fra.me.REG[6] = once_value_421;
14251 fra.me.REG[6] = fra.me.REG[6];
14252 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14253 once_value_420 = fra.me.REG[6];
14254 register_static_object(&once_value_420);
14255 } else fra.me.REG[6] = once_value_420;
14256 fra.me.REG[6] = fra.me.REG[6];
14257 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14258 if (UNTAG_Bool(REGB1)) {
14259 } else {
14260 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14261 REGB1 = REGB2;
14262 }
14263 if (UNTAG_Bool(REGB1)) {
14264 /* compiling/compiling_icode.nit:872 */
14265 REGB1 = TAG_Int(11);
14266 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14267 if (!once_value_422) {
14268 fra.me.REG[7] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
14269 REGB1 = TAG_Int(32);
14270 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14271 once_value_422 = fra.me.REG[7];
14272 register_static_object(&once_value_422);
14273 } else fra.me.REG[7] = once_value_422;
14274 fra.me.REG[7] = fra.me.REG[7];
14275 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14276 REGB1 = TAG_Int(1);
14277 /* ../lib/standard/collection/array.nit:278 */
14278 fra.me.REG[7] = fra.me.REG[4];
14279 /* ../lib/standard/collection/array.nit:280 */
14280 REGB2 = TAG_Int(0);
14281 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14282 if (UNTAG_Bool(REGB0)) {
14283 } else {
14284 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14285 }
14286 /* ../lib/standard/kernel.nit:236 */
14287 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14288 /* ../lib/standard/collection/array.nit:280 */
14289 if (UNTAG_Bool(REGB2)) {
14290 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14291 if (UNTAG_Bool(REGB2)) {
14292 } else {
14293 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14294 }
14295 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14296 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14297 if (UNTAG_Bool(REGB0)) {
14298 } else {
14299 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14300 }
14301 /* ../lib/standard/kernel.nit:235 */
14302 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14303 } else {
14304 /* ../lib/standard/collection/array.nit:280 */
14305 REGB0 = TAG_Bool(0);
14306 REGB2 = REGB0;
14307 }
14308 if (UNTAG_Bool(REGB2)) {
14309 } else {
14310 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14311 }
14312 /* ../lib/standard/collection/array.nit:281 */
14313 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14314 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14315 if (UNTAG_Bool(REGB2)) {
14316 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14317 }
14318 /* ../lib/standard/collection/array.nit:724 */
14319 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14320 /* ../lib/standard/collection/array.nit:281 */
14321 goto label423;
14322 label423: while(0);
14323 /* compiling/compiling_icode.nit:872 */
14324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14325 if (!once_value_424) {
14326 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14327 REGB1 = TAG_Int(12);
14328 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14329 once_value_424 = fra.me.REG[7];
14330 register_static_object(&once_value_424);
14331 } else fra.me.REG[7] = once_value_424;
14332 fra.me.REG[7] = fra.me.REG[7];
14333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14334 REGB1 = TAG_Int(4);
14335 /* ../lib/standard/collection/array.nit:278 */
14336 fra.me.REG[7] = fra.me.REG[4];
14337 /* ../lib/standard/collection/array.nit:280 */
14338 REGB2 = TAG_Int(0);
14339 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14340 if (UNTAG_Bool(REGB0)) {
14341 } else {
14342 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14343 }
14344 /* ../lib/standard/kernel.nit:236 */
14345 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14346 /* ../lib/standard/collection/array.nit:280 */
14347 if (UNTAG_Bool(REGB2)) {
14348 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14349 if (UNTAG_Bool(REGB2)) {
14350 } else {
14351 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14352 }
14353 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14354 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14355 if (UNTAG_Bool(REGB0)) {
14356 } else {
14357 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14358 }
14359 /* ../lib/standard/kernel.nit:235 */
14360 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14361 } else {
14362 /* ../lib/standard/collection/array.nit:280 */
14363 REGB0 = TAG_Bool(0);
14364 REGB2 = REGB0;
14365 }
14366 if (UNTAG_Bool(REGB2)) {
14367 } else {
14368 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14369 }
14370 /* ../lib/standard/collection/array.nit:281 */
14371 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14372 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14373 if (UNTAG_Bool(REGB2)) {
14374 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14375 }
14376 /* ../lib/standard/collection/array.nit:724 */
14377 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14378 /* ../lib/standard/collection/array.nit:281 */
14379 goto label425;
14380 label425: while(0);
14381 /* compiling/compiling_icode.nit:872 */
14382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14383 if (!once_value_426) {
14384 fra.me.REG[7] = BOX_NativeString("), UNBOX_NativeString(");
14385 REGB1 = TAG_Int(22);
14386 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14387 once_value_426 = fra.me.REG[7];
14388 register_static_object(&once_value_426);
14389 } else fra.me.REG[7] = once_value_426;
14390 fra.me.REG[7] = fra.me.REG[7];
14391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14392 REGB1 = TAG_Int(0);
14393 /* ../lib/standard/collection/array.nit:278 */
14394 fra.me.REG[7] = fra.me.REG[4];
14395 /* ../lib/standard/collection/array.nit:280 */
14396 REGB2 = TAG_Int(0);
14397 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14398 if (UNTAG_Bool(REGB0)) {
14399 } else {
14400 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14401 }
14402 /* ../lib/standard/kernel.nit:236 */
14403 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14404 /* ../lib/standard/collection/array.nit:280 */
14405 if (UNTAG_Bool(REGB2)) {
14406 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14407 if (UNTAG_Bool(REGB2)) {
14408 } else {
14409 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14410 }
14411 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14412 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14413 if (UNTAG_Bool(REGB0)) {
14414 } else {
14415 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14416 }
14417 /* ../lib/standard/kernel.nit:235 */
14418 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14419 } else {
14420 /* ../lib/standard/collection/array.nit:280 */
14421 REGB0 = TAG_Bool(0);
14422 REGB2 = REGB0;
14423 }
14424 if (UNTAG_Bool(REGB2)) {
14425 } else {
14426 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14427 }
14428 /* ../lib/standard/collection/array.nit:281 */
14429 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14430 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14431 if (UNTAG_Bool(REGB2)) {
14432 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14433 }
14434 /* ../lib/standard/collection/array.nit:724 */
14435 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14436 /* ../lib/standard/collection/array.nit:281 */
14437 goto label427;
14438 label427: while(0);
14439 /* compiling/compiling_icode.nit:872 */
14440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14441 if (!once_value_428) {
14442 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
14443 REGB1 = TAG_Int(12);
14444 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14445 once_value_428 = fra.me.REG[7];
14446 register_static_object(&once_value_428);
14447 } else fra.me.REG[7] = once_value_428;
14448 fra.me.REG[7] = fra.me.REG[7];
14449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14450 REGB1 = TAG_Int(3);
14451 /* ../lib/standard/collection/array.nit:278 */
14452 fra.me.REG[7] = fra.me.REG[4];
14453 /* ../lib/standard/collection/array.nit:280 */
14454 REGB2 = TAG_Int(0);
14455 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14456 if (UNTAG_Bool(REGB0)) {
14457 } else {
14458 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14459 }
14460 /* ../lib/standard/kernel.nit:236 */
14461 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14462 /* ../lib/standard/collection/array.nit:280 */
14463 if (UNTAG_Bool(REGB2)) {
14464 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14465 if (UNTAG_Bool(REGB2)) {
14466 } else {
14467 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14468 }
14469 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14470 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14471 if (UNTAG_Bool(REGB0)) {
14472 } else {
14473 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14474 }
14475 /* ../lib/standard/kernel.nit:235 */
14476 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14477 } else {
14478 /* ../lib/standard/collection/array.nit:280 */
14479 REGB0 = TAG_Bool(0);
14480 REGB2 = REGB0;
14481 }
14482 if (UNTAG_Bool(REGB2)) {
14483 } else {
14484 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14485 }
14486 /* ../lib/standard/collection/array.nit:281 */
14487 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14488 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14489 if (UNTAG_Bool(REGB2)) {
14490 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14491 }
14492 /* ../lib/standard/collection/array.nit:724 */
14493 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14494 /* ../lib/standard/collection/array.nit:281 */
14495 goto label429;
14496 label429: while(0);
14497 /* compiling/compiling_icode.nit:872 */
14498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14499 if (!once_value_430) {
14500 fra.me.REG[7] = BOX_NativeString("), UNTAG_Int(");
14501 REGB1 = TAG_Int(13);
14502 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14503 once_value_430 = fra.me.REG[7];
14504 register_static_object(&once_value_430);
14505 } else fra.me.REG[7] = once_value_430;
14506 fra.me.REG[7] = fra.me.REG[7];
14507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14508 REGB1 = TAG_Int(2);
14509 /* ../lib/standard/collection/array.nit:278 */
14510 fra.me.REG[7] = fra.me.REG[4];
14511 /* ../lib/standard/collection/array.nit:280 */
14512 REGB2 = TAG_Int(0);
14513 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14514 if (UNTAG_Bool(REGB0)) {
14515 } else {
14516 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14517 }
14518 /* ../lib/standard/kernel.nit:236 */
14519 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14520 /* ../lib/standard/collection/array.nit:280 */
14521 if (UNTAG_Bool(REGB2)) {
14522 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
14523 if (UNTAG_Bool(REGB2)) {
14524 } else {
14525 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14526 }
14527 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
14528 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14529 if (UNTAG_Bool(REGB0)) {
14530 } else {
14531 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14532 }
14533 /* ../lib/standard/kernel.nit:235 */
14534 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14535 } else {
14536 /* ../lib/standard/collection/array.nit:280 */
14537 REGB0 = TAG_Bool(0);
14538 REGB2 = REGB0;
14539 }
14540 if (UNTAG_Bool(REGB2)) {
14541 } else {
14542 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14543 }
14544 /* ../lib/standard/collection/array.nit:281 */
14545 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
14546 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
14547 if (UNTAG_Bool(REGB2)) {
14548 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14549 }
14550 /* ../lib/standard/collection/array.nit:724 */
14551 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
14552 /* ../lib/standard/collection/array.nit:281 */
14553 goto label431;
14554 label431: while(0);
14555 /* compiling/compiling_icode.nit:872 */
14556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14557 if (!once_value_432) {
14558 fra.me.REG[7] = BOX_NativeString("));");
14559 REGB1 = TAG_Int(3);
14560 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
14561 once_value_432 = fra.me.REG[7];
14562 register_static_object(&once_value_432);
14563 } else fra.me.REG[7] = once_value_432;
14564 fra.me.REG[7] = fra.me.REG[7];
14565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
14566 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14567 fra.me.REG[5] = fra.me.REG[6];
14568 }
14569 }
14570 }
14571 }
14572 }
14573 } else {
14574 /* compiling/compiling_icode.nit:874 */
14575 if (!once_value_433) {
14576 if (!once_value_434) {
14577 fra.me.REG[6] = BOX_NativeString("Sys");
14578 REGB1 = TAG_Int(3);
14579 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14580 once_value_434 = fra.me.REG[6];
14581 register_static_object(&once_value_434);
14582 } else fra.me.REG[6] = once_value_434;
14583 fra.me.REG[6] = fra.me.REG[6];
14584 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14585 once_value_433 = fra.me.REG[6];
14586 register_static_object(&once_value_433);
14587 } else fra.me.REG[6] = once_value_433;
14588 fra.me.REG[6] = fra.me.REG[6];
14589 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
14590 if (UNTAG_Bool(REGB1)) {
14591 } else {
14592 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
14593 REGB1 = REGB2;
14594 }
14595 if (UNTAG_Bool(REGB1)) {
14596 /* compiling/compiling_icode.nit:875 */
14597 if (!once_value_435) {
14598 if (!once_value_436) {
14599 fra.me.REG[6] = BOX_NativeString("force_garbage_collection");
14600 REGB1 = TAG_Int(24);
14601 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14602 once_value_436 = fra.me.REG[6];
14603 register_static_object(&once_value_436);
14604 } else fra.me.REG[6] = once_value_436;
14605 fra.me.REG[6] = fra.me.REG[6];
14606 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14607 once_value_435 = fra.me.REG[6];
14608 register_static_object(&once_value_435);
14609 } else fra.me.REG[6] = once_value_435;
14610 fra.me.REG[6] = fra.me.REG[6];
14611 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14612 if (UNTAG_Bool(REGB1)) {
14613 } else {
14614 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14615 REGB1 = REGB2;
14616 }
14617 if (UNTAG_Bool(REGB1)) {
14618 /* compiling/compiling_icode.nit:876 */
14619 if (!once_value_437) {
14620 fra.me.REG[6] = BOX_NativeString("Nit_gc_force_garbage_collection()");
14621 REGB1 = TAG_Int(33);
14622 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14623 once_value_437 = fra.me.REG[6];
14624 register_static_object(&once_value_437);
14625 } else fra.me.REG[6] = once_value_437;
14626 fra.me.REG[6] = fra.me.REG[6];
14627 fra.me.REG[5] = fra.me.REG[6];
14628 } else {
14629 /* compiling/compiling_icode.nit:877 */
14630 if (!once_value_438) {
14631 if (!once_value_439) {
14632 fra.me.REG[6] = BOX_NativeString("native_argc");
14633 REGB1 = TAG_Int(11);
14634 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14635 once_value_439 = fra.me.REG[6];
14636 register_static_object(&once_value_439);
14637 } else fra.me.REG[6] = once_value_439;
14638 fra.me.REG[6] = fra.me.REG[6];
14639 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14640 once_value_438 = fra.me.REG[6];
14641 register_static_object(&once_value_438);
14642 } else fra.me.REG[6] = once_value_438;
14643 fra.me.REG[6] = fra.me.REG[6];
14644 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14645 if (UNTAG_Bool(REGB1)) {
14646 } else {
14647 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14648 REGB1 = REGB2;
14649 }
14650 if (UNTAG_Bool(REGB1)) {
14651 /* compiling/compiling_icode.nit:878 */
14652 if (!once_value_440) {
14653 fra.me.REG[6] = BOX_NativeString("TAG_Int(glob_argc)");
14654 REGB1 = TAG_Int(18);
14655 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14656 once_value_440 = fra.me.REG[6];
14657 register_static_object(&once_value_440);
14658 } else fra.me.REG[6] = once_value_440;
14659 fra.me.REG[6] = fra.me.REG[6];
14660 fra.me.REG[5] = fra.me.REG[6];
14661 } else {
14662 /* compiling/compiling_icode.nit:879 */
14663 if (!once_value_441) {
14664 if (!once_value_442) {
14665 fra.me.REG[6] = BOX_NativeString("native_argv");
14666 REGB1 = TAG_Int(11);
14667 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14668 once_value_442 = fra.me.REG[6];
14669 register_static_object(&once_value_442);
14670 } else fra.me.REG[6] = once_value_442;
14671 fra.me.REG[6] = fra.me.REG[6];
14672 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14673 once_value_441 = fra.me.REG[6];
14674 register_static_object(&once_value_441);
14675 } else fra.me.REG[6] = once_value_441;
14676 fra.me.REG[6] = fra.me.REG[6];
14677 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14678 if (UNTAG_Bool(REGB1)) {
14679 } else {
14680 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14681 REGB1 = REGB2;
14682 }
14683 if (UNTAG_Bool(REGB1)) {
14684 /* compiling/compiling_icode.nit:880 */
14685 REGB1 = TAG_Int(3);
14686 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14687 if (!once_value_443) {
14688 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(glob_argv[UNTAG_Int(");
14689 REGB1 = TAG_Int(37);
14690 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14691 once_value_443 = fra.me.REG[2];
14692 register_static_object(&once_value_443);
14693 } else fra.me.REG[2] = once_value_443;
14694 fra.me.REG[2] = fra.me.REG[2];
14695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14696 REGB1 = TAG_Int(1);
14697 /* ../lib/standard/collection/array.nit:278 */
14698 fra.me.REG[2] = fra.me.REG[4];
14699 /* ../lib/standard/collection/array.nit:280 */
14700 REGB2 = TAG_Int(0);
14701 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14702 if (UNTAG_Bool(REGB0)) {
14703 } else {
14704 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14705 }
14706 /* ../lib/standard/kernel.nit:236 */
14707 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14708 /* ../lib/standard/collection/array.nit:280 */
14709 if (UNTAG_Bool(REGB2)) {
14710 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14711 if (UNTAG_Bool(REGB2)) {
14712 } else {
14713 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14714 }
14715 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14716 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14717 if (UNTAG_Bool(REGB0)) {
14718 } else {
14719 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14720 }
14721 /* ../lib/standard/kernel.nit:235 */
14722 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14723 } else {
14724 /* ../lib/standard/collection/array.nit:280 */
14725 REGB0 = TAG_Bool(0);
14726 REGB2 = REGB0;
14727 }
14728 if (UNTAG_Bool(REGB2)) {
14729 } else {
14730 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14731 }
14732 /* ../lib/standard/collection/array.nit:281 */
14733 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14734 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14735 if (UNTAG_Bool(REGB2)) {
14736 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14737 }
14738 /* ../lib/standard/collection/array.nit:724 */
14739 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14740 /* ../lib/standard/collection/array.nit:281 */
14741 goto label444;
14742 label444: while(0);
14743 /* compiling/compiling_icode.nit:880 */
14744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14745 if (!once_value_445) {
14746 fra.me.REG[2] = BOX_NativeString(")])");
14747 REGB1 = TAG_Int(3);
14748 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14749 once_value_445 = fra.me.REG[2];
14750 register_static_object(&once_value_445);
14751 } else fra.me.REG[2] = once_value_445;
14752 fra.me.REG[2] = fra.me.REG[2];
14753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14754 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14755 fra.me.REG[5] = fra.me.REG[6];
14756 }
14757 }
14758 }
14759 } else {
14760 /* compiling/compiling_icode.nit:882 */
14761 if (!once_value_446) {
14762 if (!once_value_447) {
14763 fra.me.REG[6] = BOX_NativeString("object_id");
14764 REGB1 = TAG_Int(9);
14765 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14766 once_value_447 = fra.me.REG[6];
14767 register_static_object(&once_value_447);
14768 } else fra.me.REG[6] = once_value_447;
14769 fra.me.REG[6] = fra.me.REG[6];
14770 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14771 once_value_446 = fra.me.REG[6];
14772 register_static_object(&once_value_446);
14773 } else fra.me.REG[6] = once_value_446;
14774 fra.me.REG[6] = fra.me.REG[6];
14775 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14776 if (UNTAG_Bool(REGB1)) {
14777 } else {
14778 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14779 REGB1 = REGB2;
14780 }
14781 if (UNTAG_Bool(REGB1)) {
14782 /* compiling/compiling_icode.nit:883 */
14783 REGB1 = TAG_Int(3);
14784 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14785 if (!once_value_448) {
14786 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
14787 REGB1 = TAG_Int(24);
14788 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14789 once_value_448 = fra.me.REG[2];
14790 register_static_object(&once_value_448);
14791 } else fra.me.REG[2] = once_value_448;
14792 fra.me.REG[2] = fra.me.REG[2];
14793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14794 REGB1 = TAG_Int(0);
14795 /* ../lib/standard/collection/array.nit:278 */
14796 fra.me.REG[2] = fra.me.REG[4];
14797 /* ../lib/standard/collection/array.nit:280 */
14798 REGB2 = TAG_Int(0);
14799 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14800 if (UNTAG_Bool(REGB0)) {
14801 } else {
14802 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14803 }
14804 /* ../lib/standard/kernel.nit:236 */
14805 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14806 /* ../lib/standard/collection/array.nit:280 */
14807 if (UNTAG_Bool(REGB2)) {
14808 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14809 if (UNTAG_Bool(REGB2)) {
14810 } else {
14811 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14812 }
14813 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14814 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14815 if (UNTAG_Bool(REGB0)) {
14816 } else {
14817 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14818 }
14819 /* ../lib/standard/kernel.nit:235 */
14820 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14821 } else {
14822 /* ../lib/standard/collection/array.nit:280 */
14823 REGB0 = TAG_Bool(0);
14824 REGB2 = REGB0;
14825 }
14826 if (UNTAG_Bool(REGB2)) {
14827 } else {
14828 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14829 }
14830 /* ../lib/standard/collection/array.nit:281 */
14831 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14832 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14833 if (UNTAG_Bool(REGB2)) {
14834 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14835 }
14836 /* ../lib/standard/collection/array.nit:724 */
14837 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14838 /* ../lib/standard/collection/array.nit:281 */
14839 goto label449;
14840 label449: while(0);
14841 /* compiling/compiling_icode.nit:883 */
14842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14843 if (!once_value_450) {
14844 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
14845 REGB1 = TAG_Int(15);
14846 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14847 once_value_450 = fra.me.REG[2];
14848 register_static_object(&once_value_450);
14849 } else fra.me.REG[2] = once_value_450;
14850 fra.me.REG[2] = fra.me.REG[2];
14851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14852 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14853 fra.me.REG[5] = fra.me.REG[6];
14854 } else {
14855 /* compiling/compiling_icode.nit:884 */
14856 if (!once_value_451) {
14857 if (!once_value_452) {
14858 fra.me.REG[6] = BOX_NativeString("sys");
14859 REGB1 = TAG_Int(3);
14860 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14861 once_value_452 = fra.me.REG[6];
14862 register_static_object(&once_value_452);
14863 } else fra.me.REG[6] = once_value_452;
14864 fra.me.REG[6] = fra.me.REG[6];
14865 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14866 once_value_451 = fra.me.REG[6];
14867 register_static_object(&once_value_451);
14868 } else fra.me.REG[6] = once_value_451;
14869 fra.me.REG[6] = fra.me.REG[6];
14870 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14871 if (UNTAG_Bool(REGB1)) {
14872 } else {
14873 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14874 REGB1 = REGB2;
14875 }
14876 if (UNTAG_Bool(REGB1)) {
14877 /* compiling/compiling_icode.nit:885 */
14878 if (!once_value_453) {
14879 fra.me.REG[6] = BOX_NativeString("(G_sys)");
14880 REGB1 = TAG_Int(7);
14881 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14882 once_value_453 = fra.me.REG[6];
14883 register_static_object(&once_value_453);
14884 } else fra.me.REG[6] = once_value_453;
14885 fra.me.REG[6] = fra.me.REG[6];
14886 fra.me.REG[5] = fra.me.REG[6];
14887 } else {
14888 /* compiling/compiling_icode.nit:886 */
14889 if (!once_value_454) {
14890 if (!once_value_455) {
14891 fra.me.REG[6] = BOX_NativeString("is_same_type");
14892 REGB1 = TAG_Int(12);
14893 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14894 once_value_455 = fra.me.REG[6];
14895 register_static_object(&once_value_455);
14896 } else fra.me.REG[6] = once_value_455;
14897 fra.me.REG[6] = fra.me.REG[6];
14898 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14899 once_value_454 = fra.me.REG[6];
14900 register_static_object(&once_value_454);
14901 } else fra.me.REG[6] = once_value_454;
14902 fra.me.REG[6] = fra.me.REG[6];
14903 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14904 if (UNTAG_Bool(REGB1)) {
14905 } else {
14906 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14907 REGB1 = REGB2;
14908 }
14909 if (UNTAG_Bool(REGB1)) {
14910 /* compiling/compiling_icode.nit:887 */
14911 REGB1 = TAG_Int(5);
14912 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14913 if (!once_value_456) {
14914 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
14915 REGB1 = TAG_Int(18);
14916 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14917 once_value_456 = fra.me.REG[2];
14918 register_static_object(&once_value_456);
14919 } else fra.me.REG[2] = once_value_456;
14920 fra.me.REG[2] = fra.me.REG[2];
14921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14922 REGB1 = TAG_Int(0);
14923 /* ../lib/standard/collection/array.nit:278 */
14924 fra.me.REG[2] = fra.me.REG[4];
14925 /* ../lib/standard/collection/array.nit:280 */
14926 REGB2 = TAG_Int(0);
14927 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14928 if (UNTAG_Bool(REGB0)) {
14929 } else {
14930 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14931 }
14932 /* ../lib/standard/kernel.nit:236 */
14933 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14934 /* ../lib/standard/collection/array.nit:280 */
14935 if (UNTAG_Bool(REGB2)) {
14936 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14937 if (UNTAG_Bool(REGB2)) {
14938 } else {
14939 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14940 }
14941 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14942 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14943 if (UNTAG_Bool(REGB0)) {
14944 } else {
14945 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14946 }
14947 /* ../lib/standard/kernel.nit:235 */
14948 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14949 } else {
14950 /* ../lib/standard/collection/array.nit:280 */
14951 REGB0 = TAG_Bool(0);
14952 REGB2 = REGB0;
14953 }
14954 if (UNTAG_Bool(REGB2)) {
14955 } else {
14956 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
14957 }
14958 /* ../lib/standard/collection/array.nit:281 */
14959 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14960 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14961 if (UNTAG_Bool(REGB2)) {
14962 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14963 }
14964 /* ../lib/standard/collection/array.nit:724 */
14965 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14966 /* ../lib/standard/collection/array.nit:281 */
14967 goto label457;
14968 label457: while(0);
14969 /* compiling/compiling_icode.nit:887 */
14970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14971 if (!once_value_458) {
14972 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
14973 REGB1 = TAG_Int(11);
14974 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14975 once_value_458 = fra.me.REG[2];
14976 register_static_object(&once_value_458);
14977 } else fra.me.REG[2] = once_value_458;
14978 fra.me.REG[2] = fra.me.REG[2];
14979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14980 REGB1 = TAG_Int(1);
14981 /* ../lib/standard/collection/array.nit:278 */
14982 fra.me.REG[2] = fra.me.REG[4];
14983 /* ../lib/standard/collection/array.nit:280 */
14984 REGB2 = TAG_Int(0);
14985 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14986 if (UNTAG_Bool(REGB0)) {
14987 } else {
14988 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14989 }
14990 /* ../lib/standard/kernel.nit:236 */
14991 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14992 /* ../lib/standard/collection/array.nit:280 */
14993 if (UNTAG_Bool(REGB2)) {
14994 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14995 if (UNTAG_Bool(REGB2)) {
14996 } else {
14997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14998 }
14999 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15000 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15001 if (UNTAG_Bool(REGB0)) {
15002 } else {
15003 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15004 }
15005 /* ../lib/standard/kernel.nit:235 */
15006 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15007 } else {
15008 /* ../lib/standard/collection/array.nit:280 */
15009 REGB0 = TAG_Bool(0);
15010 REGB2 = REGB0;
15011 }
15012 if (UNTAG_Bool(REGB2)) {
15013 } else {
15014 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15015 }
15016 /* ../lib/standard/collection/array.nit:281 */
15017 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15018 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15019 if (UNTAG_Bool(REGB2)) {
15020 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15021 }
15022 /* ../lib/standard/collection/array.nit:724 */
15023 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15024 /* ../lib/standard/collection/array.nit:281 */
15025 goto label459;
15026 label459: while(0);
15027 /* compiling/compiling_icode.nit:887 */
15028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15029 if (!once_value_460) {
15030 fra.me.REG[2] = BOX_NativeString(")))");
15031 REGB1 = TAG_Int(3);
15032 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15033 once_value_460 = fra.me.REG[2];
15034 register_static_object(&once_value_460);
15035 } else fra.me.REG[2] = once_value_460;
15036 fra.me.REG[2] = fra.me.REG[2];
15037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15038 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15039 fra.me.REG[5] = fra.me.REG[6];
15040 } else {
15041 /* compiling/compiling_icode.nit:888 */
15042 if (!once_value_461) {
15043 if (!once_value_462) {
15044 fra.me.REG[6] = BOX_NativeString("exit");
15045 REGB1 = TAG_Int(4);
15046 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15047 once_value_462 = fra.me.REG[6];
15048 register_static_object(&once_value_462);
15049 } else fra.me.REG[6] = once_value_462;
15050 fra.me.REG[6] = fra.me.REG[6];
15051 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15052 once_value_461 = fra.me.REG[6];
15053 register_static_object(&once_value_461);
15054 } else fra.me.REG[6] = once_value_461;
15055 fra.me.REG[6] = fra.me.REG[6];
15056 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15057 if (UNTAG_Bool(REGB1)) {
15058 } else {
15059 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15060 REGB1 = REGB2;
15061 }
15062 if (UNTAG_Bool(REGB1)) {
15063 /* compiling/compiling_icode.nit:889 */
15064 REGB1 = TAG_Int(3);
15065 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15066 if (!once_value_463) {
15067 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
15068 REGB1 = TAG_Int(15);
15069 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15070 once_value_463 = fra.me.REG[2];
15071 register_static_object(&once_value_463);
15072 } else fra.me.REG[2] = once_value_463;
15073 fra.me.REG[2] = fra.me.REG[2];
15074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15075 REGB1 = TAG_Int(1);
15076 /* ../lib/standard/collection/array.nit:278 */
15077 fra.me.REG[2] = fra.me.REG[4];
15078 /* ../lib/standard/collection/array.nit:280 */
15079 REGB2 = TAG_Int(0);
15080 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15081 if (UNTAG_Bool(REGB0)) {
15082 } else {
15083 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15084 }
15085 /* ../lib/standard/kernel.nit:236 */
15086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15087 /* ../lib/standard/collection/array.nit:280 */
15088 if (UNTAG_Bool(REGB2)) {
15089 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15090 if (UNTAG_Bool(REGB2)) {
15091 } else {
15092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15093 }
15094 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15095 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15096 if (UNTAG_Bool(REGB0)) {
15097 } else {
15098 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15099 }
15100 /* ../lib/standard/kernel.nit:235 */
15101 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15102 } else {
15103 /* ../lib/standard/collection/array.nit:280 */
15104 REGB0 = TAG_Bool(0);
15105 REGB2 = REGB0;
15106 }
15107 if (UNTAG_Bool(REGB2)) {
15108 } else {
15109 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15110 }
15111 /* ../lib/standard/collection/array.nit:281 */
15112 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15113 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15114 if (UNTAG_Bool(REGB2)) {
15115 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15116 }
15117 /* ../lib/standard/collection/array.nit:724 */
15118 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15119 /* ../lib/standard/collection/array.nit:281 */
15120 goto label464;
15121 label464: while(0);
15122 /* compiling/compiling_icode.nit:889 */
15123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15124 if (!once_value_465) {
15125 fra.me.REG[2] = BOX_NativeString("));");
15126 REGB1 = TAG_Int(3);
15127 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15128 once_value_465 = fra.me.REG[2];
15129 register_static_object(&once_value_465);
15130 } else fra.me.REG[2] = once_value_465;
15131 fra.me.REG[2] = fra.me.REG[2];
15132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15133 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15134 fra.me.REG[5] = fra.me.REG[6];
15135 } else {
15136 /* compiling/compiling_icode.nit:890 */
15137 if (!once_value_466) {
15138 if (!once_value_467) {
15139 fra.me.REG[6] = BOX_NativeString("calloc_array");
15140 REGB1 = TAG_Int(12);
15141 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15142 once_value_467 = fra.me.REG[6];
15143 register_static_object(&once_value_467);
15144 } else fra.me.REG[6] = once_value_467;
15145 fra.me.REG[6] = fra.me.REG[6];
15146 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15147 once_value_466 = fra.me.REG[6];
15148 register_static_object(&once_value_466);
15149 } else fra.me.REG[6] = once_value_466;
15150 fra.me.REG[6] = fra.me.REG[6];
15151 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15152 if (UNTAG_Bool(REGB1)) {
15153 } else {
15154 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15155 REGB1 = REGB2;
15156 }
15157 if (UNTAG_Bool(REGB1)) {
15158 /* compiling/compiling_icode.nit:891 */
15159 REGB1 = TAG_Int(3);
15160 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15161 if (!once_value_468) {
15162 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
15163 REGB1 = TAG_Int(26);
15164 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15165 once_value_468 = fra.me.REG[2];
15166 register_static_object(&once_value_468);
15167 } else fra.me.REG[2] = once_value_468;
15168 fra.me.REG[2] = fra.me.REG[2];
15169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15170 REGB1 = TAG_Int(1);
15171 /* ../lib/standard/collection/array.nit:278 */
15172 fra.me.REG[2] = fra.me.REG[4];
15173 /* ../lib/standard/collection/array.nit:280 */
15174 REGB2 = TAG_Int(0);
15175 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15176 if (UNTAG_Bool(REGB0)) {
15177 } else {
15178 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15179 }
15180 /* ../lib/standard/kernel.nit:236 */
15181 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15182 /* ../lib/standard/collection/array.nit:280 */
15183 if (UNTAG_Bool(REGB2)) {
15184 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15185 if (UNTAG_Bool(REGB2)) {
15186 } else {
15187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15188 }
15189 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15190 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15191 if (UNTAG_Bool(REGB0)) {
15192 } else {
15193 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15194 }
15195 /* ../lib/standard/kernel.nit:235 */
15196 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15197 } else {
15198 /* ../lib/standard/collection/array.nit:280 */
15199 REGB0 = TAG_Bool(0);
15200 REGB2 = REGB0;
15201 }
15202 if (UNTAG_Bool(REGB2)) {
15203 } else {
15204 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15205 }
15206 /* ../lib/standard/collection/array.nit:281 */
15207 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15208 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15209 if (UNTAG_Bool(REGB2)) {
15210 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15211 }
15212 /* ../lib/standard/collection/array.nit:724 */
15213 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15214 /* ../lib/standard/collection/array.nit:281 */
15215 goto label469;
15216 label469: while(0);
15217 /* compiling/compiling_icode.nit:891 */
15218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15219 if (!once_value_470) {
15220 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
15221 REGB1 = TAG_Int(17);
15222 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15223 once_value_470 = fra.me.REG[2];
15224 register_static_object(&once_value_470);
15225 } else fra.me.REG[2] = once_value_470;
15226 fra.me.REG[2] = fra.me.REG[2];
15227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15228 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15229 fra.me.REG[5] = fra.me.REG[6];
15230 } else {
15231 /* compiling/compiling_icode.nit:892 */
15232 if (!once_value_471) {
15233 if (!once_value_472) {
15234 fra.me.REG[6] = BOX_NativeString("calloc_string");
15235 REGB1 = TAG_Int(13);
15236 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15237 once_value_472 = fra.me.REG[6];
15238 register_static_object(&once_value_472);
15239 } else fra.me.REG[6] = once_value_472;
15240 fra.me.REG[6] = fra.me.REG[6];
15241 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15242 once_value_471 = fra.me.REG[6];
15243 register_static_object(&once_value_471);
15244 } else fra.me.REG[6] = once_value_471;
15245 fra.me.REG[6] = fra.me.REG[6];
15246 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15247 if (UNTAG_Bool(REGB1)) {
15248 } else {
15249 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15250 REGB1 = REGB2;
15251 }
15252 if (UNTAG_Bool(REGB1)) {
15253 /* compiling/compiling_icode.nit:893 */
15254 REGB1 = TAG_Int(3);
15255 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15256 if (!once_value_473) {
15257 fra.me.REG[2] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
15258 REGB1 = TAG_Int(45);
15259 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15260 once_value_473 = fra.me.REG[2];
15261 register_static_object(&once_value_473);
15262 } else fra.me.REG[2] = once_value_473;
15263 fra.me.REG[2] = fra.me.REG[2];
15264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15265 REGB1 = TAG_Int(1);
15266 /* ../lib/standard/collection/array.nit:278 */
15267 fra.me.REG[2] = fra.me.REG[4];
15268 /* ../lib/standard/collection/array.nit:280 */
15269 REGB2 = TAG_Int(0);
15270 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15271 if (UNTAG_Bool(REGB0)) {
15272 } else {
15273 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15274 }
15275 /* ../lib/standard/kernel.nit:236 */
15276 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15277 /* ../lib/standard/collection/array.nit:280 */
15278 if (UNTAG_Bool(REGB2)) {
15279 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15280 if (UNTAG_Bool(REGB2)) {
15281 } else {
15282 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15283 }
15284 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15285 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15286 if (UNTAG_Bool(REGB0)) {
15287 } else {
15288 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15289 }
15290 /* ../lib/standard/kernel.nit:235 */
15291 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15292 } else {
15293 /* ../lib/standard/collection/array.nit:280 */
15294 REGB0 = TAG_Bool(0);
15295 REGB2 = REGB0;
15296 }
15297 if (UNTAG_Bool(REGB2)) {
15298 } else {
15299 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15300 }
15301 /* ../lib/standard/collection/array.nit:281 */
15302 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15303 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15304 if (UNTAG_Bool(REGB2)) {
15305 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15306 }
15307 /* ../lib/standard/collection/array.nit:724 */
15308 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15309 /* ../lib/standard/collection/array.nit:281 */
15310 goto label474;
15311 label474: while(0);
15312 /* compiling/compiling_icode.nit:893 */
15313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15314 if (!once_value_475) {
15315 fra.me.REG[2] = BOX_NativeString(") * sizeof(char))))");
15316 REGB1 = TAG_Int(19);
15317 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15318 once_value_475 = fra.me.REG[2];
15319 register_static_object(&once_value_475);
15320 } else fra.me.REG[2] = once_value_475;
15321 fra.me.REG[2] = fra.me.REG[2];
15322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15323 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15324 fra.me.REG[5] = fra.me.REG[6];
15325 } else {
15326 /* compiling/compiling_icode.nit:895 */
15327 if (!once_value_476) {
15328 if (!once_value_477) {
15329 fra.me.REG[6] = BOX_NativeString("output_class_name");
15330 REGB1 = TAG_Int(17);
15331 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15332 once_value_477 = fra.me.REG[6];
15333 register_static_object(&once_value_477);
15334 } else fra.me.REG[6] = once_value_477;
15335 fra.me.REG[6] = fra.me.REG[6];
15336 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15337 once_value_476 = fra.me.REG[6];
15338 register_static_object(&once_value_476);
15339 } else fra.me.REG[6] = once_value_476;
15340 fra.me.REG[6] = fra.me.REG[6];
15341 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15342 if (UNTAG_Bool(REGB1)) {
15343 } else {
15344 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15345 REGB1 = REGB2;
15346 }
15347 if (UNTAG_Bool(REGB1)) {
15348 /* compiling/compiling_icode.nit:896 */
15349 REGB1 = TAG_Int(3);
15350 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15351 if (!once_value_478) {
15352 fra.me.REG[2] = BOX_NativeString("printf(\"%s\\n\", VAL2VFT(");
15353 REGB1 = TAG_Int(23);
15354 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15355 once_value_478 = fra.me.REG[2];
15356 register_static_object(&once_value_478);
15357 } else fra.me.REG[2] = once_value_478;
15358 fra.me.REG[2] = fra.me.REG[2];
15359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15360 REGB1 = TAG_Int(0);
15361 /* ../lib/standard/collection/array.nit:278 */
15362 fra.me.REG[2] = fra.me.REG[4];
15363 /* ../lib/standard/collection/array.nit:280 */
15364 REGB2 = TAG_Int(0);
15365 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15366 if (UNTAG_Bool(REGB0)) {
15367 } else {
15368 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15369 }
15370 /* ../lib/standard/kernel.nit:236 */
15371 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15372 /* ../lib/standard/collection/array.nit:280 */
15373 if (UNTAG_Bool(REGB2)) {
15374 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15375 if (UNTAG_Bool(REGB2)) {
15376 } else {
15377 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15378 }
15379 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15380 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15381 if (UNTAG_Bool(REGB0)) {
15382 } else {
15383 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15384 }
15385 /* ../lib/standard/kernel.nit:235 */
15386 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15387 } else {
15388 /* ../lib/standard/collection/array.nit:280 */
15389 REGB0 = TAG_Bool(0);
15390 REGB2 = REGB0;
15391 }
15392 if (UNTAG_Bool(REGB2)) {
15393 } else {
15394 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15395 }
15396 /* ../lib/standard/collection/array.nit:281 */
15397 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15398 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15399 if (UNTAG_Bool(REGB2)) {
15400 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15401 }
15402 /* ../lib/standard/collection/array.nit:724 */
15403 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15404 /* ../lib/standard/collection/array.nit:281 */
15405 goto label479;
15406 label479: while(0);
15407 /* compiling/compiling_icode.nit:896 */
15408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15409 if (!once_value_480) {
15410 fra.me.REG[2] = BOX_NativeString(")[2].cname);");
15411 REGB1 = TAG_Int(12);
15412 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15413 once_value_480 = fra.me.REG[2];
15414 register_static_object(&once_value_480);
15415 } else fra.me.REG[2] = once_value_480;
15416 fra.me.REG[2] = fra.me.REG[2];
15417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15418 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15419 fra.me.REG[5] = fra.me.REG[6];
15420 } else {
15421 /* compiling/compiling_icode.nit:898 */
15422 if (!once_value_481) {
15423 if (!once_value_482) {
15424 fra.me.REG[6] = BOX_NativeString("native_class_name");
15425 REGB1 = TAG_Int(17);
15426 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15427 once_value_482 = fra.me.REG[6];
15428 register_static_object(&once_value_482);
15429 } else fra.me.REG[6] = once_value_482;
15430 fra.me.REG[6] = fra.me.REG[6];
15431 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15432 once_value_481 = fra.me.REG[6];
15433 register_static_object(&once_value_481);
15434 } else fra.me.REG[6] = once_value_481;
15435 fra.me.REG[6] = fra.me.REG[6];
15436 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15437 if (UNTAG_Bool(REGB1)) {
15438 } else {
15439 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15440 REGB1 = REGB2;
15441 }
15442 if (UNTAG_Bool(REGB1)) {
15443 /* compiling/compiling_icode.nit:899 */
15444 REGB1 = TAG_Int(3);
15445 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15446 if (!once_value_483) {
15447 fra.me.REG[3] = BOX_NativeString("BOX_NativeString(VAL2VFT(");
15448 REGB1 = TAG_Int(25);
15449 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15450 once_value_483 = fra.me.REG[3];
15451 register_static_object(&once_value_483);
15452 } else fra.me.REG[3] = once_value_483;
15453 fra.me.REG[3] = fra.me.REG[3];
15454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
15455 REGB1 = TAG_Int(0);
15456 /* ../lib/standard/collection/array.nit:280 */
15457 REGB2 = TAG_Int(0);
15458 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15459 if (UNTAG_Bool(REGB0)) {
15460 } else {
15461 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15462 }
15463 /* ../lib/standard/kernel.nit:236 */
15464 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15465 /* ../lib/standard/collection/array.nit:280 */
15466 if (UNTAG_Bool(REGB2)) {
15467 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
15468 if (UNTAG_Bool(REGB2)) {
15469 } else {
15470 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15471 }
15472 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
15473 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15474 if (UNTAG_Bool(REGB0)) {
15475 } else {
15476 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15477 }
15478 /* ../lib/standard/kernel.nit:235 */
15479 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15480 } else {
15481 /* ../lib/standard/collection/array.nit:280 */
15482 REGB0 = TAG_Bool(0);
15483 REGB2 = REGB0;
15484 }
15485 if (UNTAG_Bool(REGB2)) {
15486 } else {
15487 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
15488 }
15489 /* ../lib/standard/collection/array.nit:281 */
15490 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
15491 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15492 if (UNTAG_Bool(REGB2)) {
15493 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15494 }
15495 /* ../lib/standard/collection/array.nit:724 */
15496 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
15497 /* ../lib/standard/collection/array.nit:281 */
15498 goto label484;
15499 label484: while(0);
15500 /* compiling/compiling_icode.nit:899 */
15501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15502 if (!once_value_485) {
15503 fra.me.REG[4] = BOX_NativeString(")[2].cname);");
15504 REGB1 = TAG_Int(12);
15505 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15506 once_value_485 = fra.me.REG[4];
15507 register_static_object(&once_value_485);
15508 } else fra.me.REG[4] = once_value_485;
15509 fra.me.REG[4] = fra.me.REG[4];
15510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15511 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15512 fra.me.REG[5] = fra.me.REG[6];
15513 }
15514 }
15515 }
15516 }
15517 }
15518 }
15519 }
15520 }
15521 }
15522 }
15523 }
15524 }
15525 }
15526 }
15527 }
15528 /* compiling/compiling_icode.nit:902 */
15529 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15530 if (UNTAG_Bool(REGB1)) {
15531 } else {
15532 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15533 if (UNTAG_Bool(REGB2)) {
15534 REGB2 = TAG_Bool(0);
15535 REGB1 = REGB2;
15536 } else {
15537 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15538 REGB1 = REGB2;
15539 }
15540 }
15541 if (UNTAG_Bool(REGB1)) {
15542 /* compiling/compiling_icode.nit:903 */
15543 fra.me.REG[6] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15544 /* compiling/compiling_icode.nit:904 */
15545 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15546 if (UNTAG_Bool(REGB1)) {
15547 } else {
15548 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15549 if (UNTAG_Bool(REGB2)) {
15550 REGB2 = TAG_Bool(0);
15551 REGB1 = REGB2;
15552 } else {
15553 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
15554 REGB1 = REGB2;
15555 }
15556 }
15557 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15558 if (UNTAG_Bool(REGB1)) {
15559 REGB1 = TAG_Int(3);
15560 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15561 if (!once_value_486) {
15562 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
15563 REGB1 = TAG_Int(17);
15564 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15565 once_value_486 = fra.me.REG[3];
15566 register_static_object(&once_value_486);
15567 } else fra.me.REG[3] = once_value_486;
15568 fra.me.REG[3] = fra.me.REG[3];
15569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15570 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15571 if (UNTAG_Bool(REGB1)) {
15572 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 904);
15573 }
15574 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15576 if (!once_value_487) {
15577 fra.me.REG[6] = BOX_NativeString(": \");");
15578 REGB1 = TAG_Int(5);
15579 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15580 once_value_487 = fra.me.REG[6];
15581 register_static_object(&once_value_487);
15582 } else fra.me.REG[6] = once_value_487;
15583 fra.me.REG[6] = fra.me.REG[6];
15584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15585 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15586 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15587 }
15588 /* compiling/compiling_icode.nit:905 */
15589 REGB1 = TAG_Int(3);
15590 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15591 if (!once_value_488) {
15592 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
15593 REGB1 = TAG_Int(52);
15594 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15595 once_value_488 = fra.me.REG[6];
15596 register_static_object(&once_value_488);
15597 } else fra.me.REG[6] = once_value_488;
15598 fra.me.REG[6] = fra.me.REG[6];
15599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15600 fra.me.REG[6] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
15601 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
15602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15603 if (!once_value_489) {
15604 fra.me.REG[6] = BOX_NativeString(".\\n\");");
15605 REGB1 = TAG_Int(6);
15606 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15607 once_value_489 = fra.me.REG[6];
15608 register_static_object(&once_value_489);
15609 } else fra.me.REG[6] = once_value_489;
15610 fra.me.REG[6] = fra.me.REG[6];
15611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15612 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15613 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15614 /* compiling/compiling_icode.nit:906 */
15615 if (!once_value_490) {
15616 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
15617 REGB1 = TAG_Int(12);
15618 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15619 once_value_490 = fra.me.REG[4];
15620 register_static_object(&once_value_490);
15621 } else fra.me.REG[4] = once_value_490;
15622 fra.me.REG[4] = fra.me.REG[4];
15623 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15624 /* compiling/compiling_icode.nit:907 */
15625 if (!once_value_491) {
15626 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
15627 REGB1 = TAG_Int(8);
15628 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15629 once_value_491 = fra.me.REG[4];
15630 register_static_object(&once_value_491);
15631 } else fra.me.REG[4] = once_value_491;
15632 fra.me.REG[4] = fra.me.REG[4];
15633 fra.me.REG[5] = fra.me.REG[4];
15634 }
15635 /* compiling/compiling_icode.nit:909 */
15636 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15637 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15638 if (UNTAG_Bool(REGB1)) {
15639 } else {
15640 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15641 if (UNTAG_Bool(REGB2)) {
15642 REGB2 = TAG_Bool(0);
15643 REGB1 = REGB2;
15644 } else {
15645 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
15646 REGB1 = REGB2;
15647 }
15648 }
15649 if (UNTAG_Bool(REGB1)) {
15650 /* compiling/compiling_icode.nit:910 */
15651 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15652 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15653 if (!once_value_492) {
15654 fra.me.REG[6] = BOX_NativeString(";\n");
15655 REGB1 = TAG_Int(2);
15656 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15657 once_value_492 = fra.me.REG[6];
15658 register_static_object(&once_value_492);
15659 } else fra.me.REG[6] = once_value_492;
15660 fra.me.REG[6] = fra.me.REG[6];
15661 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15662 } else {
15663 /* compiling/compiling_icode.nit:911 */
15664 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15665 if (UNTAG_Bool(REGB1)) {
15666 /* compiling/compiling_icode.nit:912 */
15667 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15668 /* compiling/compiling_icode.nit:913 */
15669 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
15670 }
15671 }
15672 stack_frame_head = fra.me.prev;
15673 return;
15674 }
15675 static const char LOCATE_compiling___compiling_icode___IIntValue___compile_to_c[] = "compiling_icode::IIntValue::(compiling_icode::ICode::compile_to_c)";
15676 void compiling___compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
15677 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15678 val_t REGB0;
15679 val_t tmp;
15680 static val_t once_value_1; /* Once value */
15681 static val_t once_value_2; /* Once value */
15682 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15683 fra.me.file = LOCATE_compiling___compiling_icode;
15684 fra.me.line = 919;
15685 fra.me.meth = LOCATE_compiling___compiling_icode___IIntValue___compile_to_c;
15686 fra.me.has_broke = 0;
15687 fra.me.REG_size = 3;
15688 fra.me.nitni_local_ref_head = NULL;
15689 fra.me.REG[0] = NIT_NULL;
15690 fra.me.REG[1] = NIT_NULL;
15691 fra.me.REG[2] = NIT_NULL;
15692 fra.me.REG[0] = p0;
15693 fra.me.REG[1] = p1;
15694 /* compiling/compiling_icode.nit:921 */
15695 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15696 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15697 /* compiling/compiling_icode.nit:922 */
15698 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15699 /* compiling/compiling_icode.nit:923 */
15700 if (!once_value_1) {
15701 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
15702 REGB0 = TAG_Int(8);
15703 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15704 once_value_1 = fra.me.REG[2];
15705 register_static_object(&once_value_1);
15706 } else fra.me.REG[2] = once_value_1;
15707 fra.me.REG[2] = fra.me.REG[2];
15708 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15709 fra.me.REG[0] = CALL_icode___icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
15710 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15711 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15712 if (!once_value_2) {
15713 fra.me.REG[2] = BOX_NativeString(")");
15714 REGB0 = TAG_Int(1);
15715 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15716 once_value_2 = fra.me.REG[2];
15717 register_static_object(&once_value_2);
15718 } else fra.me.REG[2] = once_value_2;
15719 fra.me.REG[2] = fra.me.REG[2];
15720 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15721 stack_frame_head = fra.me.prev;
15722 return;
15723 }
15724 static const char LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c[] = "compiling_icode::IBoolValue::(compiling_icode::ICode::compile_to_c)";
15725 void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
15726 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15727 val_t REGB0;
15728 val_t tmp;
15729 static val_t once_value_1; /* Once value */
15730 static val_t once_value_2; /* Once value */
15731 static val_t once_value_3; /* Once value */
15732 static val_t once_value_4; /* Once value */
15733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15734 fra.me.file = LOCATE_compiling___compiling_icode;
15735 fra.me.line = 928;
15736 fra.me.meth = LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c;
15737 fra.me.has_broke = 0;
15738 fra.me.REG_size = 3;
15739 fra.me.nitni_local_ref_head = NULL;
15740 fra.me.REG[0] = NIT_NULL;
15741 fra.me.REG[1] = NIT_NULL;
15742 fra.me.REG[2] = NIT_NULL;
15743 fra.me.REG[0] = p0;
15744 fra.me.REG[1] = p1;
15745 /* compiling/compiling_icode.nit:930 */
15746 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15747 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15748 /* compiling/compiling_icode.nit:931 */
15749 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15750 /* compiling/compiling_icode.nit:932 */
15751 if (!once_value_1) {
15752 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
15753 REGB0 = TAG_Int(9);
15754 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15755 once_value_1 = fra.me.REG[2];
15756 register_static_object(&once_value_1);
15757 } else fra.me.REG[2] = once_value_1;
15758 fra.me.REG[2] = fra.me.REG[2];
15759 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15760 /* compiling/compiling_icode.nit:933 */
15761 REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
15762 if (UNTAG_Bool(REGB0)) {
15763 if (!once_value_2) {
15764 fra.me.REG[0] = BOX_NativeString("1");
15765 REGB0 = TAG_Int(1);
15766 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15767 once_value_2 = fra.me.REG[0];
15768 register_static_object(&once_value_2);
15769 } else fra.me.REG[0] = once_value_2;
15770 fra.me.REG[0] = fra.me.REG[0];
15771 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15772 } else {
15773 if (!once_value_3) {
15774 fra.me.REG[0] = BOX_NativeString("0");
15775 REGB0 = TAG_Int(1);
15776 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15777 once_value_3 = fra.me.REG[0];
15778 register_static_object(&once_value_3);
15779 } else fra.me.REG[0] = once_value_3;
15780 fra.me.REG[0] = fra.me.REG[0];
15781 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15782 }
15783 /* compiling/compiling_icode.nit:934 */
15784 if (!once_value_4) {
15785 fra.me.REG[0] = BOX_NativeString(")");
15786 REGB0 = TAG_Int(1);
15787 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15788 once_value_4 = fra.me.REG[0];
15789 register_static_object(&once_value_4);
15790 } else fra.me.REG[0] = once_value_4;
15791 fra.me.REG[0] = fra.me.REG[0];
15792 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15793 stack_frame_head = fra.me.prev;
15794 return;
15795 }
15796 static const char LOCATE_compiling___compiling_icode___ICharValue___compile_to_c[] = "compiling_icode::ICharValue::(compiling_icode::ICode::compile_to_c)";
15797 void compiling___compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
15798 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15799 val_t REGB0;
15800 val_t tmp;
15801 static val_t once_value_1; /* Once value */
15802 static val_t once_value_2; /* Once value */
15803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15804 fra.me.file = LOCATE_compiling___compiling_icode;
15805 fra.me.line = 939;
15806 fra.me.meth = LOCATE_compiling___compiling_icode___ICharValue___compile_to_c;
15807 fra.me.has_broke = 0;
15808 fra.me.REG_size = 3;
15809 fra.me.nitni_local_ref_head = NULL;
15810 fra.me.REG[0] = NIT_NULL;
15811 fra.me.REG[1] = NIT_NULL;
15812 fra.me.REG[2] = NIT_NULL;
15813 fra.me.REG[0] = p0;
15814 fra.me.REG[1] = p1;
15815 /* compiling/compiling_icode.nit:941 */
15816 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15817 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15818 /* compiling/compiling_icode.nit:942 */
15819 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15820 /* compiling/compiling_icode.nit:943 */
15821 if (!once_value_1) {
15822 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
15823 REGB0 = TAG_Int(9);
15824 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15825 once_value_1 = fra.me.REG[2];
15826 register_static_object(&once_value_1);
15827 } else fra.me.REG[2] = once_value_1;
15828 fra.me.REG[2] = fra.me.REG[2];
15829 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15830 fra.me.REG[0] = CALL_icode___icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
15831 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15832 if (!once_value_2) {
15833 fra.me.REG[2] = BOX_NativeString(")");
15834 REGB0 = TAG_Int(1);
15835 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15836 once_value_2 = fra.me.REG[2];
15837 register_static_object(&once_value_2);
15838 } else fra.me.REG[2] = once_value_2;
15839 fra.me.REG[2] = fra.me.REG[2];
15840 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15841 stack_frame_head = fra.me.prev;
15842 return;
15843 }
15844 static const char LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c[] = "compiling_icode::IFloatValue::(compiling_icode::ICode::compile_to_c)";
15845 void compiling___compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
15846 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15847 val_t REGB0;
15848 val_t tmp;
15849 static val_t once_value_1; /* Once value */
15850 static val_t once_value_2; /* Once value */
15851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15852 fra.me.file = LOCATE_compiling___compiling_icode;
15853 fra.me.line = 948;
15854 fra.me.meth = LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c;
15855 fra.me.has_broke = 0;
15856 fra.me.REG_size = 3;
15857 fra.me.nitni_local_ref_head = NULL;
15858 fra.me.REG[0] = NIT_NULL;
15859 fra.me.REG[1] = NIT_NULL;
15860 fra.me.REG[2] = NIT_NULL;
15861 fra.me.REG[0] = p0;
15862 fra.me.REG[1] = p1;
15863 /* compiling/compiling_icode.nit:950 */
15864 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15865 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15866 /* compiling/compiling_icode.nit:951 */
15867 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15868 /* compiling/compiling_icode.nit:952 */
15869 if (!once_value_1) {
15870 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
15871 REGB0 = TAG_Int(10);
15872 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15873 once_value_1 = fra.me.REG[2];
15874 register_static_object(&once_value_1);
15875 } else fra.me.REG[2] = once_value_1;
15876 fra.me.REG[2] = fra.me.REG[2];
15877 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15878 fra.me.REG[0] = CALL_icode___icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
15879 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15880 if (!once_value_2) {
15881 fra.me.REG[2] = BOX_NativeString(")");
15882 REGB0 = TAG_Int(1);
15883 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15884 once_value_2 = fra.me.REG[2];
15885 register_static_object(&once_value_2);
15886 } else fra.me.REG[2] = once_value_2;
15887 fra.me.REG[2] = fra.me.REG[2];
15888 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15889 stack_frame_head = fra.me.prev;
15890 return;
15891 }
15892 static const char LOCATE_compiling___compiling_icode___IStringValue___compile_to_c[] = "compiling_icode::IStringValue::(compiling_icode::ICode::compile_to_c)";
15893 void compiling___compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
15894 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15895 val_t REGB0;
15896 val_t tmp;
15897 static val_t once_value_1; /* Once value */
15898 static val_t once_value_2; /* Once value */
15899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15900 fra.me.file = LOCATE_compiling___compiling_icode;
15901 fra.me.line = 957;
15902 fra.me.meth = LOCATE_compiling___compiling_icode___IStringValue___compile_to_c;
15903 fra.me.has_broke = 0;
15904 fra.me.REG_size = 3;
15905 fra.me.nitni_local_ref_head = NULL;
15906 fra.me.REG[0] = NIT_NULL;
15907 fra.me.REG[1] = NIT_NULL;
15908 fra.me.REG[2] = NIT_NULL;
15909 fra.me.REG[0] = p0;
15910 fra.me.REG[1] = p1;
15911 /* compiling/compiling_icode.nit:959 */
15912 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15913 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15914 /* compiling/compiling_icode.nit:960 */
15915 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15916 /* compiling/compiling_icode.nit:961 */
15917 if (!once_value_1) {
15918 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
15919 REGB0 = TAG_Int(18);
15920 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15921 once_value_1 = fra.me.REG[2];
15922 register_static_object(&once_value_1);
15923 } else fra.me.REG[2] = once_value_1;
15924 fra.me.REG[2] = fra.me.REG[2];
15925 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15926 fra.me.REG[0] = CALL_icode___icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
15927 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15928 if (!once_value_2) {
15929 fra.me.REG[2] = BOX_NativeString("\")");
15930 REGB0 = TAG_Int(2);
15931 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15932 once_value_2 = fra.me.REG[2];
15933 register_static_object(&once_value_2);
15934 } else fra.me.REG[2] = once_value_2;
15935 fra.me.REG[2] = fra.me.REG[2];
15936 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15937 stack_frame_head = fra.me.prev;
15938 return;
15939 }
15940 static const char LOCATE_compiling___compiling_icode___IAbort___compile_to_c[] = "compiling_icode::IAbort::(compiling_icode::ICode::compile_to_c)";
15941 void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
15942 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15943 val_t REGB0;
15944 val_t REGB1;
15945 val_t REGB2;
15946 val_t tmp;
15947 static val_t once_value_1; /* Once value */
15948 static val_t once_value_3; /* Once value */
15949 static val_t once_value_5; /* Once value */
15950 static val_t once_value_6; /* Once value */
15951 static val_t once_value_7; /* Once value */
15952 static val_t once_value_8; /* Once value */
15953 static val_t once_value_9; /* Once value */
15954 static val_t once_value_10; /* Once value */
15955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15956 fra.me.file = LOCATE_compiling___compiling_icode;
15957 fra.me.line = 966;
15958 fra.me.meth = LOCATE_compiling___compiling_icode___IAbort___compile_to_c;
15959 fra.me.has_broke = 0;
15960 fra.me.REG_size = 3;
15961 fra.me.nitni_local_ref_head = NULL;
15962 fra.me.REG[0] = NIT_NULL;
15963 fra.me.REG[1] = NIT_NULL;
15964 fra.me.REG[2] = NIT_NULL;
15965 fra.me.REG[0] = p0;
15966 fra.me.REG[1] = p1;
15967 /* compiling/compiling_icode.nit:968 */
15968 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15969 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15970 /* compiling/compiling_icode.nit:969 */
15971 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15972 /* compiling/compiling_icode.nit:970 */
15973 if (!once_value_1) {
15974 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
15975 REGB0 = TAG_Int(11);
15976 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15977 once_value_1 = fra.me.REG[2];
15978 register_static_object(&once_value_1);
15979 } else fra.me.REG[2] = once_value_1;
15980 fra.me.REG[2] = fra.me.REG[2];
15981 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15982 /* compiling/compiling_icode.nit:971 */
15983 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15984 REGB0 = TAG_Int(0);
15985 /* ../lib/standard/collection/array.nit:280 */
15986 REGB1 = TAG_Int(0);
15987 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15988 if (UNTAG_Bool(REGB2)) {
15989 } else {
15990 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15991 }
15992 /* ../lib/standard/kernel.nit:236 */
15993 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
15994 /* ../lib/standard/collection/array.nit:280 */
15995 if (UNTAG_Bool(REGB1)) {
15996 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15997 if (UNTAG_Bool(REGB1)) {
15998 } else {
15999 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
16000 }
16001 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
16002 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16003 if (UNTAG_Bool(REGB2)) {
16004 } else {
16005 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16006 }
16007 /* ../lib/standard/kernel.nit:235 */
16008 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16009 } else {
16010 /* ../lib/standard/collection/array.nit:280 */
16011 REGB2 = TAG_Bool(0);
16012 REGB1 = REGB2;
16013 }
16014 if (UNTAG_Bool(REGB1)) {
16015 } else {
16016 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
16017 }
16018 /* ../lib/standard/collection/array.nit:281 */
16019 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
16020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16021 if (UNTAG_Bool(REGB1)) {
16022 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
16023 }
16024 /* ../lib/standard/collection/array.nit:724 */
16025 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
16026 /* ../lib/standard/collection/array.nit:281 */
16027 goto label2;
16028 label2: while(0);
16029 /* compiling/compiling_icode.nit:971 */
16030 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16031 /* compiling/compiling_icode.nit:972 */
16032 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
16033 /* ../lib/standard/collection/array.nit:24 */
16034 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
16035 if (UNTAG_Bool(REGB0)) {
16036 } else {
16037 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
16038 }
16039 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
16040 /* compiling/compiling_icode.nit:972 */
16041 REGB1 = TAG_Int(1);
16042 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16043 if (UNTAG_Bool(REGB2)) {
16044 } else {
16045 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16046 }
16047 /* ../lib/standard/kernel.nit:237 */
16048 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
16049 /* compiling/compiling_icode.nit:972 */
16050 if (UNTAG_Bool(REGB1)) {
16051 /* compiling/compiling_icode.nit:973 */
16052 if (!once_value_3) {
16053 fra.me.REG[2] = BOX_NativeString("\", \"");
16054 REGB1 = TAG_Int(4);
16055 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16056 once_value_3 = fra.me.REG[2];
16057 register_static_object(&once_value_3);
16058 } else fra.me.REG[2] = once_value_3;
16059 fra.me.REG[2] = fra.me.REG[2];
16060 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16061 /* compiling/compiling_icode.nit:974 */
16062 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
16063 REGB1 = TAG_Int(1);
16064 /* ../lib/standard/collection/array.nit:280 */
16065 REGB0 = TAG_Int(0);
16066 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
16067 if (UNTAG_Bool(REGB2)) {
16068 } else {
16069 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16070 }
16071 /* ../lib/standard/kernel.nit:236 */
16072 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
16073 /* ../lib/standard/collection/array.nit:280 */
16074 if (UNTAG_Bool(REGB0)) {
16075 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
16076 if (UNTAG_Bool(REGB0)) {
16077 } else {
16078 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
16079 }
16080 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
16081 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
16082 if (UNTAG_Bool(REGB2)) {
16083 } else {
16084 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16085 }
16086 /* ../lib/standard/kernel.nit:235 */
16087 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
16088 } else {
16089 /* ../lib/standard/collection/array.nit:280 */
16090 REGB2 = TAG_Bool(0);
16091 REGB0 = REGB2;
16092 }
16093 if (UNTAG_Bool(REGB0)) {
16094 } else {
16095 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
16096 }
16097 /* ../lib/standard/collection/array.nit:281 */
16098 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
16099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16100 if (UNTAG_Bool(REGB0)) {
16101 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
16102 }
16103 /* ../lib/standard/collection/array.nit:724 */
16104 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
16105 /* ../lib/standard/collection/array.nit:281 */
16106 goto label4;
16107 label4: while(0);
16108 /* compiling/compiling_icode.nit:974 */
16109 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16110 /* compiling/compiling_icode.nit:975 */
16111 if (!once_value_5) {
16112 fra.me.REG[2] = BOX_NativeString("\"");
16113 REGB1 = TAG_Int(1);
16114 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16115 once_value_5 = fra.me.REG[2];
16116 register_static_object(&once_value_5);
16117 } else fra.me.REG[2] = once_value_5;
16118 fra.me.REG[2] = fra.me.REG[2];
16119 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16120 } else {
16121 /* compiling/compiling_icode.nit:977 */
16122 if (!once_value_6) {
16123 fra.me.REG[2] = BOX_NativeString("\", NULL");
16124 REGB1 = TAG_Int(7);
16125 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16126 once_value_6 = fra.me.REG[2];
16127 register_static_object(&once_value_6);
16128 } else fra.me.REG[2] = once_value_6;
16129 fra.me.REG[2] = fra.me.REG[2];
16130 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16131 }
16132 /* compiling/compiling_icode.nit:979 */
16133 if (!once_value_7) {
16134 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
16135 REGB1 = TAG_Int(9);
16136 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16137 once_value_7 = fra.me.REG[2];
16138 register_static_object(&once_value_7);
16139 } else fra.me.REG[2] = once_value_7;
16140 fra.me.REG[2] = fra.me.REG[2];
16141 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16142 /* compiling/compiling_icode.nit:980 */
16143 fra.me.REG[2] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
16144 fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
16145 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16146 /* compiling/compiling_icode.nit:981 */
16147 fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16148 /* compiling/compiling_icode.nit:982 */
16149 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16150 if (UNTAG_Bool(REGB1)) {
16151 } else {
16152 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16153 if (UNTAG_Bool(REGB0)) {
16154 REGB0 = TAG_Bool(0);
16155 REGB1 = REGB0;
16156 } else {
16157 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
16158 REGB1 = REGB0;
16159 }
16160 }
16161 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
16162 if (UNTAG_Bool(REGB1)) {
16163 /* compiling/compiling_icode.nit:983 */
16164 if (!once_value_8) {
16165 fra.me.REG[2] = BOX_NativeString(", ");
16166 REGB1 = TAG_Int(2);
16167 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
16168 once_value_8 = fra.me.REG[2];
16169 register_static_object(&once_value_8);
16170 } else fra.me.REG[2] = once_value_8;
16171 fra.me.REG[2] = fra.me.REG[2];
16172 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16173 /* compiling/compiling_icode.nit:984 */
16174 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
16175 if (UNTAG_Bool(REGB1)) {
16176 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 984);
16177 }
16178 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
16179 fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
16180 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16181 } else {
16182 /* compiling/compiling_icode.nit:986 */
16183 if (!once_value_9) {
16184 fra.me.REG[0] = BOX_NativeString(", 0");
16185 REGB1 = TAG_Int(3);
16186 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
16187 once_value_9 = fra.me.REG[0];
16188 register_static_object(&once_value_9);
16189 } else fra.me.REG[0] = once_value_9;
16190 fra.me.REG[0] = fra.me.REG[0];
16191 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16192 }
16193 /* compiling/compiling_icode.nit:988 */
16194 if (!once_value_10) {
16195 fra.me.REG[0] = BOX_NativeString(");\n");
16196 REGB1 = TAG_Int(3);
16197 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
16198 once_value_10 = fra.me.REG[0];
16199 register_static_object(&once_value_10);
16200 } else fra.me.REG[0] = once_value_10;
16201 fra.me.REG[0] = fra.me.REG[0];
16202 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16203 stack_frame_head = fra.me.prev;
16204 return;
16205 }
16206 static const char LOCATE_compiling___compiling_icode___IMove___compile_to_c[] = "compiling_icode::IMove::(compiling_icode::ICode::compile_to_c)";
16207 void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
16208 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16209 val_t REGB0;
16210 val_t REGB1;
16211 val_t tmp;
16212 static val_t once_value_2; /* Once value */
16213 static val_t once_value_3; /* Once value */
16214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16215 fra.me.file = LOCATE_compiling___compiling_icode;
16216 fra.me.line = 993;
16217 fra.me.meth = LOCATE_compiling___compiling_icode___IMove___compile_to_c;
16218 fra.me.has_broke = 0;
16219 fra.me.REG_size = 5;
16220 fra.me.nitni_local_ref_head = NULL;
16221 fra.me.REG[0] = NIT_NULL;
16222 fra.me.REG[1] = NIT_NULL;
16223 fra.me.REG[2] = NIT_NULL;
16224 fra.me.REG[3] = NIT_NULL;
16225 fra.me.REG[4] = NIT_NULL;
16226 fra.me.REG[0] = p0;
16227 fra.me.REG[1] = p1;
16228 /* compiling/compiling_icode.nit:993 */
16229 fra.me.REG[2] = fra.me.REG[0];
16230 /* compiling/compiling_icode.nit:995 */
16231 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
16232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16233 if (UNTAG_Bool(REGB0)) {
16234 goto label1;
16235 }
16236 /* compiling/compiling_icode.nit:996 */
16237 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[2])(fra.me.REG[2]);
16238 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16239 /* compiling/compiling_icode.nit:997 */
16240 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
16241 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*/;
16242 if (UNTAG_Bool(REGB0)) {
16243 } else {
16244 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 997);
16245 }
16246 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16247 /* compiling/compiling_icode.nit:998 */
16248 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
16249 if (UNTAG_Bool(REGB0)) {
16250 } else {
16251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16252 REGB0 = REGB1;
16253 }
16254 if (UNTAG_Bool(REGB0)) {
16255 goto label1;
16256 }
16257 /* compiling/compiling_icode.nit:999 */
16258 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
16259 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16260 /* compiling/compiling_icode.nit:1000 */
16261 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16262 /* compiling/compiling_icode.nit:1001 */
16263 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16264 /* compiling/compiling_icode.nit:1002 */
16265 if (!once_value_2) {
16266 fra.me.REG[4] = BOX_NativeString(" = ");
16267 REGB0 = TAG_Int(3);
16268 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16269 once_value_2 = fra.me.REG[4];
16270 register_static_object(&once_value_2);
16271 } else fra.me.REG[4] = once_value_2;
16272 fra.me.REG[4] = fra.me.REG[4];
16273 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16274 /* compiling/compiling_icode.nit:1003 */
16275 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16276 /* compiling/compiling_icode.nit:1004 */
16277 if (!once_value_3) {
16278 fra.me.REG[3] = BOX_NativeString(";\n");
16279 REGB0 = TAG_Int(2);
16280 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16281 once_value_3 = fra.me.REG[3];
16282 register_static_object(&once_value_3);
16283 } else fra.me.REG[3] = once_value_3;
16284 fra.me.REG[3] = fra.me.REG[3];
16285 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16286 label1: while(0);
16287 stack_frame_head = fra.me.prev;
16288 return;
16289 }
16290 static const char LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c[] = "compiling_icode::IAttrRead::(compiling_icode::ICode::compile_to_c)";
16291 void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
16292 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16293 val_t REGB0;
16294 val_t tmp;
16295 static val_t once_value_2; /* Once value */
16296 static val_t once_value_3; /* Once value */
16297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16298 fra.me.file = LOCATE_compiling___compiling_icode;
16299 fra.me.line = 1009;
16300 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c;
16301 fra.me.has_broke = 0;
16302 fra.me.REG_size = 4;
16303 fra.me.nitni_local_ref_head = NULL;
16304 fra.me.REG[0] = NIT_NULL;
16305 fra.me.REG[1] = NIT_NULL;
16306 fra.me.REG[2] = NIT_NULL;
16307 fra.me.REG[3] = NIT_NULL;
16308 fra.me.REG[0] = p0;
16309 fra.me.REG[1] = p1;
16310 /* compiling/compiling_icode.nit:1011 */
16311 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16313 if (UNTAG_Bool(REGB0)) {
16314 goto label1;
16315 }
16316 /* compiling/compiling_icode.nit:1012 */
16317 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16318 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16319 /* compiling/compiling_icode.nit:1013 */
16320 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16321 /* compiling/compiling_icode.nit:1014 */
16322 fra.me.REG[3] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
16323 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16324 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16325 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16326 /* compiling/compiling_icode.nit:1015 */
16327 if (!once_value_2) {
16328 fra.me.REG[3] = BOX_NativeString("(");
16329 REGB0 = TAG_Int(1);
16330 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16331 once_value_2 = fra.me.REG[3];
16332 register_static_object(&once_value_2);
16333 } else fra.me.REG[3] = once_value_2;
16334 fra.me.REG[3] = fra.me.REG[3];
16335 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16336 /* compiling/compiling_icode.nit:1016 */
16337 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16338 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16339 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16340 /* compiling/compiling_icode.nit:1017 */
16341 if (!once_value_3) {
16342 fra.me.REG[0] = BOX_NativeString(")");
16343 REGB0 = TAG_Int(1);
16344 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16345 once_value_3 = fra.me.REG[0];
16346 register_static_object(&once_value_3);
16347 } else fra.me.REG[0] = once_value_3;
16348 fra.me.REG[0] = fra.me.REG[0];
16349 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16350 label1: while(0);
16351 stack_frame_head = fra.me.prev;
16352 return;
16353 }
16354 static const char LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c[] = "compiling_icode::IAttrIsset::(compiling_icode::ICode::compile_to_c)";
16355 void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
16356 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16357 val_t REGB0;
16358 val_t tmp;
16359 static val_t once_value_2; /* Once value */
16360 static val_t once_value_3; /* Once value */
16361 static val_t once_value_4; /* Once value */
16362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16363 fra.me.file = LOCATE_compiling___compiling_icode;
16364 fra.me.line = 1022;
16365 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c;
16366 fra.me.has_broke = 0;
16367 fra.me.REG_size = 4;
16368 fra.me.nitni_local_ref_head = NULL;
16369 fra.me.REG[0] = NIT_NULL;
16370 fra.me.REG[1] = NIT_NULL;
16371 fra.me.REG[2] = NIT_NULL;
16372 fra.me.REG[3] = NIT_NULL;
16373 fra.me.REG[0] = p0;
16374 fra.me.REG[1] = p1;
16375 /* compiling/compiling_icode.nit:1024 */
16376 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16377 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16378 if (UNTAG_Bool(REGB0)) {
16379 goto label1;
16380 }
16381 /* compiling/compiling_icode.nit:1025 */
16382 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16383 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16384 /* compiling/compiling_icode.nit:1026 */
16385 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16386 /* compiling/compiling_icode.nit:1027 */
16387 if (!once_value_2) {
16388 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16389 REGB0 = TAG_Int(9);
16390 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16391 once_value_2 = fra.me.REG[3];
16392 register_static_object(&once_value_2);
16393 } else fra.me.REG[3] = once_value_2;
16394 fra.me.REG[3] = fra.me.REG[3];
16395 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16396 /* compiling/compiling_icode.nit:1028 */
16397 fra.me.REG[3] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
16398 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16399 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16400 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16401 /* compiling/compiling_icode.nit:1029 */
16402 if (!once_value_3) {
16403 fra.me.REG[3] = BOX_NativeString("(");
16404 REGB0 = TAG_Int(1);
16405 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16406 once_value_3 = fra.me.REG[3];
16407 register_static_object(&once_value_3);
16408 } else fra.me.REG[3] = once_value_3;
16409 fra.me.REG[3] = fra.me.REG[3];
16410 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16411 /* compiling/compiling_icode.nit:1030 */
16412 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16413 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16414 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16415 /* compiling/compiling_icode.nit:1031 */
16416 if (!once_value_4) {
16417 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
16418 REGB0 = TAG_Int(12);
16419 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16420 once_value_4 = fra.me.REG[0];
16421 register_static_object(&once_value_4);
16422 } else fra.me.REG[0] = once_value_4;
16423 fra.me.REG[0] = fra.me.REG[0];
16424 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16425 label1: while(0);
16426 stack_frame_head = fra.me.prev;
16427 return;
16428 }
16429 static const char LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c[] = "compiling_icode::IAttrWrite::(compiling_icode::ICode::compile_to_c)";
16430 void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
16431 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16432 val_t REGB0;
16433 val_t tmp;
16434 static val_t once_value_1; /* Once value */
16435 static val_t once_value_2; /* Once value */
16436 static val_t once_value_3; /* Once value */
16437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16438 fra.me.file = LOCATE_compiling___compiling_icode;
16439 fra.me.line = 1036;
16440 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c;
16441 fra.me.has_broke = 0;
16442 fra.me.REG_size = 4;
16443 fra.me.nitni_local_ref_head = NULL;
16444 fra.me.REG[0] = NIT_NULL;
16445 fra.me.REG[1] = NIT_NULL;
16446 fra.me.REG[2] = NIT_NULL;
16447 fra.me.REG[3] = NIT_NULL;
16448 fra.me.REG[0] = p0;
16449 fra.me.REG[1] = p1;
16450 /* compiling/compiling_icode.nit:1038 */
16451 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16452 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16453 /* compiling/compiling_icode.nit:1039 */
16454 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16455 /* compiling/compiling_icode.nit:1040 */
16456 fra.me.REG[3] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
16457 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16458 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16459 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16460 /* compiling/compiling_icode.nit:1041 */
16461 if (!once_value_1) {
16462 fra.me.REG[3] = BOX_NativeString("(");
16463 REGB0 = TAG_Int(1);
16464 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16465 once_value_1 = fra.me.REG[3];
16466 register_static_object(&once_value_1);
16467 } else fra.me.REG[3] = once_value_1;
16468 fra.me.REG[3] = fra.me.REG[3];
16469 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16470 /* compiling/compiling_icode.nit:1042 */
16471 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16472 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16473 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16474 /* compiling/compiling_icode.nit:1043 */
16475 if (!once_value_2) {
16476 fra.me.REG[3] = BOX_NativeString(") = ");
16477 REGB0 = TAG_Int(4);
16478 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16479 once_value_2 = fra.me.REG[3];
16480 register_static_object(&once_value_2);
16481 } else fra.me.REG[3] = once_value_2;
16482 fra.me.REG[3] = fra.me.REG[3];
16483 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16484 /* compiling/compiling_icode.nit:1044 */
16485 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16486 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16487 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16488 /* compiling/compiling_icode.nit:1045 */
16489 if (!once_value_3) {
16490 fra.me.REG[0] = BOX_NativeString(";\n");
16491 REGB0 = TAG_Int(2);
16492 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16493 once_value_3 = fra.me.REG[0];
16494 register_static_object(&once_value_3);
16495 } else fra.me.REG[0] = once_value_3;
16496 fra.me.REG[0] = fra.me.REG[0];
16497 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16498 stack_frame_head = fra.me.prev;
16499 return;
16500 }
16501 static const char LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c[] = "compiling_icode::ITypeCheck::(compiling_icode::ICode::compile_to_c)";
16502 void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
16503 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16504 val_t REGB0;
16505 val_t REGB1;
16506 val_t tmp;
16507 static val_t once_value_2; /* Once value */
16508 static val_t once_value_3; /* Once value */
16509 static val_t once_value_4; /* Once value */
16510 static val_t once_value_5; /* Once value */
16511 static val_t once_value_6; /* Once value */
16512 static val_t once_value_7; /* Once value */
16513 static val_t once_value_8; /* Once value */
16514 static val_t once_value_9; /* Once value */
16515 static val_t once_value_10; /* Once value */
16516 static val_t once_value_11; /* Once value */
16517 static val_t once_value_12; /* Once value */
16518 static val_t once_value_13; /* Once value */
16519 static val_t once_value_14; /* Once value */
16520 static val_t once_value_15; /* Once value */
16521 static val_t once_value_16; /* Once value */
16522 static val_t once_value_17; /* Once value */
16523 static val_t once_value_18; /* Once value */
16524 static val_t once_value_19; /* Once value */
16525 static val_t once_value_20; /* Once value */
16526 static val_t once_value_21; /* Once value */
16527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16528 fra.me.file = LOCATE_compiling___compiling_icode;
16529 fra.me.line = 1050;
16530 fra.me.meth = LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c;
16531 fra.me.has_broke = 0;
16532 fra.me.REG_size = 6;
16533 fra.me.nitni_local_ref_head = NULL;
16534 fra.me.REG[0] = NIT_NULL;
16535 fra.me.REG[1] = NIT_NULL;
16536 fra.me.REG[2] = NIT_NULL;
16537 fra.me.REG[3] = NIT_NULL;
16538 fra.me.REG[4] = NIT_NULL;
16539 fra.me.REG[5] = NIT_NULL;
16540 fra.me.REG[0] = p0;
16541 fra.me.REG[1] = p1;
16542 /* compiling/compiling_icode.nit:1052 */
16543 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16545 if (UNTAG_Bool(REGB0)) {
16546 goto label1;
16547 }
16548 /* compiling/compiling_icode.nit:1053 */
16549 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16550 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16551 /* compiling/compiling_icode.nit:1054 */
16552 fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16553 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16554 /* compiling/compiling_icode.nit:1055 */
16555 fra.me.REG[3] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16556 /* compiling/compiling_icode.nit:1056 */
16557 if (!once_value_2) {
16558 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
16559 REGB0 = TAG_Int(9);
16560 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16561 once_value_2 = fra.me.REG[4];
16562 register_static_object(&once_value_2);
16563 } else fra.me.REG[4] = once_value_2;
16564 fra.me.REG[4] = fra.me.REG[4];
16565 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16566 /* compiling/compiling_icode.nit:1057 */
16567 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16568 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16569 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16570 if (UNTAG_Bool(REGB0)) {
16571 /* compiling/compiling_icode.nit:1058 */
16572 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16573 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16574 if (UNTAG_Bool(REGB0)) {
16575 /* compiling/compiling_icode.nit:1059 */
16576 if (!once_value_3) {
16577 fra.me.REG[4] = BOX_NativeString("(");
16578 REGB0 = TAG_Int(1);
16579 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16580 once_value_3 = fra.me.REG[4];
16581 register_static_object(&once_value_3);
16582 } else fra.me.REG[4] = once_value_3;
16583 fra.me.REG[4] = fra.me.REG[4];
16584 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16585 /* compiling/compiling_icode.nit:1060 */
16586 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16587 /* compiling/compiling_icode.nit:1061 */
16588 if (!once_value_4) {
16589 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
16590 REGB0 = TAG_Int(15);
16591 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16592 once_value_4 = fra.me.REG[4];
16593 register_static_object(&once_value_4);
16594 } else fra.me.REG[4] = once_value_4;
16595 fra.me.REG[4] = fra.me.REG[4];
16596 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16597 } else {
16598 /* compiling/compiling_icode.nit:1062 */
16599 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16600 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
16601 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16602 fra.me.REG[5] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
16603 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
16604 if (UNTAG_Bool(REGB0)) {
16605 } else {
16606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
16607 REGB0 = REGB1;
16608 }
16609 if (UNTAG_Bool(REGB0)) {
16610 /* compiling/compiling_icode.nit:1063 */
16611 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16612 /* compiling/compiling_icode.nit:1064 */
16613 if (!once_value_5) {
16614 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
16615 REGB0 = TAG_Int(11);
16616 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16617 once_value_5 = fra.me.REG[5];
16618 register_static_object(&once_value_5);
16619 } else fra.me.REG[5] = once_value_5;
16620 fra.me.REG[5] = fra.me.REG[5];
16621 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16622 /* compiling/compiling_icode.nit:1065 */
16623 goto label1;
16624 } else {
16625 /* compiling/compiling_icode.nit:1067 */
16626 if (!once_value_6) {
16627 fra.me.REG[5] = BOX_NativeString("(");
16628 REGB0 = TAG_Int(1);
16629 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16630 once_value_6 = fra.me.REG[5];
16631 register_static_object(&once_value_6);
16632 } else fra.me.REG[5] = once_value_6;
16633 fra.me.REG[5] = fra.me.REG[5];
16634 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16635 /* compiling/compiling_icode.nit:1068 */
16636 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16637 /* compiling/compiling_icode.nit:1069 */
16638 if (!once_value_7) {
16639 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
16640 REGB0 = TAG_Int(15);
16641 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16642 once_value_7 = fra.me.REG[5];
16643 register_static_object(&once_value_7);
16644 } else fra.me.REG[5] = once_value_7;
16645 fra.me.REG[5] = fra.me.REG[5];
16646 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16647 }
16648 }
16649 }
16650 /* compiling/compiling_icode.nit:1073 */
16651 fra.me.REG[5] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16652 /* compiling/compiling_icode.nit:1074 */
16653 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
16654 if (UNTAG_Bool(REGB0)) {
16655 /* compiling/compiling_icode.nit:1075 */
16656 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16657 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16658 /* compiling/compiling_icode.nit:1076 */
16659 fra.me.REG[1] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[5])(fra.me.REG[5]);
16660 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
16661 /* compiling/compiling_icode.nit:1077 */
16662 if (!once_value_8) {
16663 fra.me.REG[4] = BOX_NativeString("VAL_ISA(");
16664 REGB0 = TAG_Int(8);
16665 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16666 once_value_8 = fra.me.REG[4];
16667 register_static_object(&once_value_8);
16668 } else fra.me.REG[4] = once_value_8;
16669 fra.me.REG[4] = fra.me.REG[4];
16670 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16671 /* compiling/compiling_icode.nit:1078 */
16672 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16673 /* compiling/compiling_icode.nit:1079 */
16674 if (!once_value_9) {
16675 fra.me.REG[4] = BOX_NativeString(", ");
16676 REGB0 = TAG_Int(2);
16677 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16678 once_value_9 = fra.me.REG[4];
16679 register_static_object(&once_value_9);
16680 } else fra.me.REG[4] = once_value_9;
16681 fra.me.REG[4] = fra.me.REG[4];
16682 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16683 /* compiling/compiling_icode.nit:1080 */
16684 fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[1])(fra.me.REG[1]);
16685 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16686 /* compiling/compiling_icode.nit:1081 */
16687 if (!once_value_10) {
16688 fra.me.REG[4] = BOX_NativeString("(");
16689 REGB0 = TAG_Int(1);
16690 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16691 once_value_10 = fra.me.REG[4];
16692 register_static_object(&once_value_10);
16693 } else fra.me.REG[4] = once_value_10;
16694 fra.me.REG[4] = fra.me.REG[4];
16695 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16696 /* compiling/compiling_icode.nit:1082 */
16697 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16698 /* compiling/compiling_icode.nit:1083 */
16699 if (!once_value_11) {
16700 fra.me.REG[4] = BOX_NativeString(")");
16701 REGB0 = TAG_Int(1);
16702 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16703 once_value_11 = fra.me.REG[4];
16704 register_static_object(&once_value_11);
16705 } else fra.me.REG[4] = once_value_11;
16706 fra.me.REG[4] = fra.me.REG[4];
16707 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16708 /* compiling/compiling_icode.nit:1084 */
16709 if (!once_value_12) {
16710 fra.me.REG[4] = BOX_NativeString(", ");
16711 REGB0 = TAG_Int(2);
16712 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16713 once_value_12 = fra.me.REG[4];
16714 register_static_object(&once_value_12);
16715 } else fra.me.REG[4] = once_value_12;
16716 fra.me.REG[4] = fra.me.REG[4];
16717 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16718 /* compiling/compiling_icode.nit:1085 */
16719 fra.me.REG[1] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[1])(fra.me.REG[1]);
16720 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16721 /* compiling/compiling_icode.nit:1086 */
16722 if (!once_value_13) {
16723 fra.me.REG[1] = BOX_NativeString("(");
16724 REGB0 = TAG_Int(1);
16725 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16726 once_value_13 = fra.me.REG[1];
16727 register_static_object(&once_value_13);
16728 } else fra.me.REG[1] = once_value_13;
16729 fra.me.REG[1] = fra.me.REG[1];
16730 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16731 /* compiling/compiling_icode.nit:1087 */
16732 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16733 /* compiling/compiling_icode.nit:1088 */
16734 if (!once_value_14) {
16735 fra.me.REG[0] = BOX_NativeString(")");
16736 REGB0 = TAG_Int(1);
16737 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16738 once_value_14 = fra.me.REG[0];
16739 register_static_object(&once_value_14);
16740 } else fra.me.REG[0] = once_value_14;
16741 fra.me.REG[0] = fra.me.REG[0];
16742 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16743 /* compiling/compiling_icode.nit:1089 */
16744 if (!once_value_15) {
16745 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16746 REGB0 = TAG_Int(10);
16747 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16748 once_value_15 = fra.me.REG[0];
16749 register_static_object(&once_value_15);
16750 } else fra.me.REG[0] = once_value_15;
16751 fra.me.REG[0] = fra.me.REG[0];
16752 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16753 /* compiling/compiling_icode.nit:1090 */
16754 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16755 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16756 /* compiling/compiling_icode.nit:1091 */
16757 if (!once_value_16) {
16758 fra.me.REG[0] = BOX_NativeString("*/");
16759 REGB0 = TAG_Int(2);
16760 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16761 once_value_16 = fra.me.REG[0];
16762 register_static_object(&once_value_16);
16763 } else fra.me.REG[0] = once_value_16;
16764 fra.me.REG[0] = fra.me.REG[0];
16765 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16766 } else {
16767 /* compiling/compiling_icode.nit:1093 */
16768 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
16769 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
16770 /* compiling/compiling_icode.nit:1094 */
16771 if (!once_value_17) {
16772 fra.me.REG[1] = BOX_NativeString("VAL_ISA(");
16773 REGB0 = TAG_Int(8);
16774 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16775 once_value_17 = fra.me.REG[1];
16776 register_static_object(&once_value_17);
16777 } else fra.me.REG[1] = once_value_17;
16778 fra.me.REG[1] = fra.me.REG[1];
16779 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16780 /* compiling/compiling_icode.nit:1095 */
16781 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16782 /* compiling/compiling_icode.nit:1096 */
16783 if (!once_value_18) {
16784 fra.me.REG[2] = BOX_NativeString(", ");
16785 REGB0 = TAG_Int(2);
16786 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16787 once_value_18 = fra.me.REG[2];
16788 register_static_object(&once_value_18);
16789 } else fra.me.REG[2] = once_value_18;
16790 fra.me.REG[2] = fra.me.REG[2];
16791 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16792 /* compiling/compiling_icode.nit:1097 */
16793 fra.me.REG[2] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
16794 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16795 /* compiling/compiling_icode.nit:1098 */
16796 if (!once_value_19) {
16797 fra.me.REG[2] = BOX_NativeString(", ");
16798 REGB0 = TAG_Int(2);
16799 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16800 once_value_19 = fra.me.REG[2];
16801 register_static_object(&once_value_19);
16802 } else fra.me.REG[2] = once_value_19;
16803 fra.me.REG[2] = fra.me.REG[2];
16804 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16805 /* compiling/compiling_icode.nit:1099 */
16806 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
16807 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16808 /* compiling/compiling_icode.nit:1100 */
16809 if (!once_value_20) {
16810 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16811 REGB0 = TAG_Int(10);
16812 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16813 once_value_20 = fra.me.REG[0];
16814 register_static_object(&once_value_20);
16815 } else fra.me.REG[0] = once_value_20;
16816 fra.me.REG[0] = fra.me.REG[0];
16817 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16818 /* compiling/compiling_icode.nit:1101 */
16819 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16820 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16821 /* compiling/compiling_icode.nit:1102 */
16822 if (!once_value_21) {
16823 fra.me.REG[5] = BOX_NativeString("*/");
16824 REGB0 = TAG_Int(2);
16825 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16826 once_value_21 = fra.me.REG[5];
16827 register_static_object(&once_value_21);
16828 } else fra.me.REG[5] = once_value_21;
16829 fra.me.REG[5] = fra.me.REG[5];
16830 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16831 }
16832 label1: while(0);
16833 stack_frame_head = fra.me.prev;
16834 return;
16835 }
16836 static const char LOCATE_compiling___compiling_icode___IIs___compile_to_c[] = "compiling_icode::IIs::(compiling_icode::ICode::compile_to_c)";
16837 void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
16838 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16839 val_t REGB0;
16840 val_t tmp;
16841 static val_t once_value_2; /* Once value */
16842 static val_t once_value_3; /* Once value */
16843 static val_t once_value_4; /* Once value */
16844 static val_t once_value_5; /* Once value */
16845 static val_t once_value_6; /* Once value */
16846 static val_t once_value_7; /* Once value */
16847 static val_t once_value_8; /* Once value */
16848 static val_t once_value_9; /* Once value */
16849 static val_t once_value_10; /* Once value */
16850 static val_t once_value_11; /* Once value */
16851 static val_t once_value_12; /* Once value */
16852 static val_t once_value_13; /* Once value */
16853 static val_t once_value_14; /* Once value */
16854 static val_t once_value_15; /* Once value */
16855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16856 fra.me.file = LOCATE_compiling___compiling_icode;
16857 fra.me.line = 1108;
16858 fra.me.meth = LOCATE_compiling___compiling_icode___IIs___compile_to_c;
16859 fra.me.has_broke = 0;
16860 fra.me.REG_size = 6;
16861 fra.me.nitni_local_ref_head = NULL;
16862 fra.me.REG[0] = NIT_NULL;
16863 fra.me.REG[1] = NIT_NULL;
16864 fra.me.REG[2] = NIT_NULL;
16865 fra.me.REG[3] = NIT_NULL;
16866 fra.me.REG[4] = NIT_NULL;
16867 fra.me.REG[5] = NIT_NULL;
16868 fra.me.REG[0] = p0;
16869 fra.me.REG[1] = p1;
16870 /* compiling/compiling_icode.nit:1110 */
16871 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16872 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16873 if (UNTAG_Bool(REGB0)) {
16874 goto label1;
16875 }
16876 /* compiling/compiling_icode.nit:1111 */
16877 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16878 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16879 /* compiling/compiling_icode.nit:1112 */
16880 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16881 /* compiling/compiling_icode.nit:1113 */
16882 if (!once_value_2) {
16883 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16884 REGB0 = TAG_Int(9);
16885 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16886 once_value_2 = fra.me.REG[3];
16887 register_static_object(&once_value_2);
16888 } else fra.me.REG[3] = once_value_2;
16889 fra.me.REG[3] = fra.me.REG[3];
16890 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16891 /* compiling/compiling_icode.nit:1114 */
16892 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16893 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
16894 /* compiling/compiling_icode.nit:1115 */
16895 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16896 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16897 /* compiling/compiling_icode.nit:1116 */
16898 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16899 if (UNTAG_Bool(REGB0)) {
16900 /* compiling/compiling_icode.nit:1117 */
16901 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16902 if (UNTAG_Bool(REGB0)) {
16903 /* compiling/compiling_icode.nit:1118 */
16904 if (!once_value_3) {
16905 fra.me.REG[5] = BOX_NativeString("1)");
16906 REGB0 = TAG_Int(2);
16907 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16908 once_value_3 = fra.me.REG[5];
16909 register_static_object(&once_value_3);
16910 } else fra.me.REG[5] = once_value_3;
16911 fra.me.REG[5] = fra.me.REG[5];
16912 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16913 /* compiling/compiling_icode.nit:1119 */
16914 goto label1;
16915 } else {
16916 /* compiling/compiling_icode.nit:1120 */
16917 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16918 if (UNTAG_Bool(REGB0)) {
16919 /* compiling/compiling_icode.nit:1121 */
16920 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16921 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
16922 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16923 /* compiling/compiling_icode.nit:1122 */
16924 if (!once_value_4) {
16925 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
16926 REGB0 = TAG_Int(11);
16927 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16928 once_value_4 = fra.me.REG[5];
16929 register_static_object(&once_value_4);
16930 } else fra.me.REG[5] = once_value_4;
16931 fra.me.REG[5] = fra.me.REG[5];
16932 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16933 /* compiling/compiling_icode.nit:1123 */
16934 goto label1;
16935 } else {
16936 /* compiling/compiling_icode.nit:1125 */
16937 if (!once_value_5) {
16938 fra.me.REG[5] = BOX_NativeString("0)");
16939 REGB0 = TAG_Int(2);
16940 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16941 once_value_5 = fra.me.REG[5];
16942 register_static_object(&once_value_5);
16943 } else fra.me.REG[5] = once_value_5;
16944 fra.me.REG[5] = fra.me.REG[5];
16945 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16946 /* compiling/compiling_icode.nit:1126 */
16947 goto label1;
16948 }
16949 }
16950 } else {
16951 /* compiling/compiling_icode.nit:1128 */
16952 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
16953 if (UNTAG_Bool(REGB0)) {
16954 /* compiling/compiling_icode.nit:1129 */
16955 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16956 if (UNTAG_Bool(REGB0)) {
16957 /* compiling/compiling_icode.nit:1130 */
16958 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16959 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16960 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16961 /* compiling/compiling_icode.nit:1131 */
16962 if (!once_value_6) {
16963 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
16964 REGB0 = TAG_Int(11);
16965 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16966 once_value_6 = fra.me.REG[3];
16967 register_static_object(&once_value_6);
16968 } else fra.me.REG[3] = once_value_6;
16969 fra.me.REG[3] = fra.me.REG[3];
16970 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16971 /* compiling/compiling_icode.nit:1132 */
16972 goto label1;
16973 } else {
16974 /* compiling/compiling_icode.nit:1133 */
16975 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16976 if (UNTAG_Bool(REGB0)) {
16977 /* compiling/compiling_icode.nit:1134 */
16978 if (!once_value_7) {
16979 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
16980 REGB0 = TAG_Int(12);
16981 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16982 once_value_7 = fra.me.REG[3];
16983 register_static_object(&once_value_7);
16984 } else fra.me.REG[3] = once_value_7;
16985 fra.me.REG[3] = fra.me.REG[3];
16986 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16987 } else {
16988 /* compiling/compiling_icode.nit:1136 */
16989 if (!once_value_8) {
16990 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
16991 REGB0 = TAG_Int(12);
16992 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16993 once_value_8 = fra.me.REG[3];
16994 register_static_object(&once_value_8);
16995 } else fra.me.REG[3] = once_value_8;
16996 fra.me.REG[3] = fra.me.REG[3];
16997 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16998 /* compiling/compiling_icode.nit:1137 */
16999 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
17000 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17001 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17002 /* compiling/compiling_icode.nit:1138 */
17003 if (!once_value_9) {
17004 fra.me.REG[3] = BOX_NativeString(",");
17005 REGB0 = TAG_Int(1);
17006 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17007 once_value_9 = fra.me.REG[3];
17008 register_static_object(&once_value_9);
17009 } else fra.me.REG[3] = once_value_9;
17010 fra.me.REG[3] = fra.me.REG[3];
17011 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17012 /* compiling/compiling_icode.nit:1139 */
17013 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
17014 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17015 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17016 /* compiling/compiling_icode.nit:1140 */
17017 if (!once_value_10) {
17018 fra.me.REG[3] = BOX_NativeString("))");
17019 REGB0 = TAG_Int(2);
17020 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17021 once_value_10 = fra.me.REG[3];
17022 register_static_object(&once_value_10);
17023 } else fra.me.REG[3] = once_value_10;
17024 fra.me.REG[3] = fra.me.REG[3];
17025 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17026 /* compiling/compiling_icode.nit:1141 */
17027 goto label1;
17028 }
17029 }
17030 } else {
17031 /* compiling/compiling_icode.nit:1144 */
17032 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
17033 if (UNTAG_Bool(REGB0)) {
17034 /* compiling/compiling_icode.nit:1145 */
17035 if (!once_value_11) {
17036 fra.me.REG[3] = BOX_NativeString("0)");
17037 REGB0 = TAG_Int(2);
17038 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17039 once_value_11 = fra.me.REG[3];
17040 register_static_object(&once_value_11);
17041 } else fra.me.REG[3] = once_value_11;
17042 fra.me.REG[3] = fra.me.REG[3];
17043 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17044 /* compiling/compiling_icode.nit:1146 */
17045 goto label1;
17046 } else {
17047 /* compiling/compiling_icode.nit:1147 */
17048 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
17049 if (UNTAG_Bool(REGB0)) {
17050 /* compiling/compiling_icode.nit:1148 */
17051 if (!once_value_12) {
17052 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
17053 REGB0 = TAG_Int(12);
17054 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17055 once_value_12 = fra.me.REG[4];
17056 register_static_object(&once_value_12);
17057 } else fra.me.REG[4] = once_value_12;
17058 fra.me.REG[4] = fra.me.REG[4];
17059 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17060 } else {
17061 /* compiling/compiling_icode.nit:1150 */
17062 if (!once_value_13) {
17063 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
17064 REGB0 = TAG_Int(12);
17065 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17066 once_value_13 = fra.me.REG[4];
17067 register_static_object(&once_value_13);
17068 } else fra.me.REG[4] = once_value_13;
17069 fra.me.REG[4] = fra.me.REG[4];
17070 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17071 }
17072 }
17073 }
17074 }
17075 /* compiling/compiling_icode.nit:1153 */
17076 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
17077 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17078 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17079 /* compiling/compiling_icode.nit:1154 */
17080 if (!once_value_14) {
17081 fra.me.REG[4] = BOX_NativeString(",");
17082 REGB0 = TAG_Int(1);
17083 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17084 once_value_14 = fra.me.REG[4];
17085 register_static_object(&once_value_14);
17086 } else fra.me.REG[4] = once_value_14;
17087 fra.me.REG[4] = fra.me.REG[4];
17088 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17089 /* compiling/compiling_icode.nit:1155 */
17090 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
17091 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17092 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17093 /* compiling/compiling_icode.nit:1156 */
17094 if (!once_value_15) {
17095 fra.me.REG[0] = BOX_NativeString("))");
17096 REGB0 = TAG_Int(2);
17097 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17098 once_value_15 = fra.me.REG[0];
17099 register_static_object(&once_value_15);
17100 } else fra.me.REG[0] = once_value_15;
17101 fra.me.REG[0] = fra.me.REG[0];
17102 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17103 label1: while(0);
17104 stack_frame_head = fra.me.prev;
17105 return;
17106 }
17107 static const char LOCATE_compiling___compiling_icode___INot___compile_to_c[] = "compiling_icode::INot::(compiling_icode::ICode::compile_to_c)";
17108 void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
17109 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17110 val_t REGB0;
17111 val_t tmp;
17112 static val_t once_value_2; /* Once value */
17113 static val_t once_value_3; /* Once value */
17114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17115 fra.me.file = LOCATE_compiling___compiling_icode;
17116 fra.me.line = 1161;
17117 fra.me.meth = LOCATE_compiling___compiling_icode___INot___compile_to_c;
17118 fra.me.has_broke = 0;
17119 fra.me.REG_size = 4;
17120 fra.me.nitni_local_ref_head = NULL;
17121 fra.me.REG[0] = NIT_NULL;
17122 fra.me.REG[1] = NIT_NULL;
17123 fra.me.REG[2] = NIT_NULL;
17124 fra.me.REG[3] = NIT_NULL;
17125 fra.me.REG[0] = p0;
17126 fra.me.REG[1] = p1;
17127 /* compiling/compiling_icode.nit:1163 */
17128 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
17129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17130 if (UNTAG_Bool(REGB0)) {
17131 goto label1;
17132 }
17133 /* compiling/compiling_icode.nit:1164 */
17134 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17135 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17136 /* compiling/compiling_icode.nit:1165 */
17137 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17138 /* compiling/compiling_icode.nit:1166 */
17139 if (!once_value_2) {
17140 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
17141 REGB0 = TAG_Int(21);
17142 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17143 once_value_2 = fra.me.REG[3];
17144 register_static_object(&once_value_2);
17145 } else fra.me.REG[3] = once_value_2;
17146 fra.me.REG[3] = fra.me.REG[3];
17147 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17148 /* compiling/compiling_icode.nit:1167 */
17149 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
17150 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17151 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17152 /* compiling/compiling_icode.nit:1168 */
17153 if (!once_value_3) {
17154 fra.me.REG[0] = BOX_NativeString("))");
17155 REGB0 = TAG_Int(2);
17156 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17157 once_value_3 = fra.me.REG[0];
17158 register_static_object(&once_value_3);
17159 } else fra.me.REG[0] = once_value_3;
17160 fra.me.REG[0] = fra.me.REG[0];
17161 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17162 label1: while(0);
17163 stack_frame_head = fra.me.prev;
17164 return;
17165 }
17166 static const char LOCATE_compiling___compiling_icode___IOnce___compile_to_c[] = "compiling_icode::IOnce::(compiling_icode::ICode::compile_to_c)";
17167 void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
17168 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
17169 val_t REGB0;
17170 val_t REGB1;
17171 val_t tmp;
17172 static val_t once_value_1; /* Once value */
17173 static val_t once_value_2; /* Once value */
17174 static val_t once_value_3; /* Once value */
17175 static val_t once_value_4; /* Once value */
17176 static val_t once_value_5; /* Once value */
17177 static val_t once_value_6; /* Once value */
17178 static val_t once_value_7; /* Once value */
17179 static val_t once_value_8; /* Once value */
17180 static val_t once_value_9; /* Once value */
17181 static val_t once_value_10; /* Once value */
17182 static val_t once_value_11; /* Once value */
17183 static val_t once_value_12; /* Once value */
17184 static val_t once_value_13; /* Once value */
17185 static val_t once_value_14; /* Once value */
17186 static val_t once_value_15; /* Once value */
17187 static val_t once_value_16; /* Once value */
17188 static val_t once_value_17; /* Once value */
17189 static val_t once_value_18; /* Once value */
17190 static val_t once_value_19; /* Once value */
17191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17192 fra.me.file = LOCATE_compiling___compiling_icode;
17193 fra.me.line = 1173;
17194 fra.me.meth = LOCATE_compiling___compiling_icode___IOnce___compile_to_c;
17195 fra.me.has_broke = 0;
17196 fra.me.REG_size = 6;
17197 fra.me.nitni_local_ref_head = NULL;
17198 fra.me.REG[0] = NIT_NULL;
17199 fra.me.REG[1] = NIT_NULL;
17200 fra.me.REG[2] = NIT_NULL;
17201 fra.me.REG[3] = NIT_NULL;
17202 fra.me.REG[4] = NIT_NULL;
17203 fra.me.REG[5] = NIT_NULL;
17204 fra.me.REG[0] = p0;
17205 fra.me.REG[1] = p1;
17206 /* compiling/compiling_icode.nit:1173 */
17207 fra.me.REG[2] = fra.me.REG[0];
17208 /* compiling/compiling_icode.nit:1175 */
17209 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
17210 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17211 /* compiling/compiling_icode.nit:1176 */
17212 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17213 /* compiling/compiling_icode.nit:1177 */
17214 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
17215 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*/;
17216 if (UNTAG_Bool(REGB1)) {
17217 } else {
17218 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 1177);
17219 }
17220 /* compiling/compiling_icode.nit:1178 */
17221 fra.me.REG[0] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17222 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
17223 if (UNTAG_Bool(REGB1)) {
17224 /* compiling/compiling_icode.nit:1179 */
17225 REGB1 = TAG_Int(5);
17226 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17227 if (!once_value_1) {
17228 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17229 REGB1 = TAG_Int(24);
17230 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17231 once_value_1 = fra.me.REG[4];
17232 register_static_object(&once_value_1);
17233 } else fra.me.REG[4] = once_value_1;
17234 fra.me.REG[4] = fra.me.REG[4];
17235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17236 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17238 if (!once_value_2) {
17239 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
17240 REGB1 = TAG_Int(23);
17241 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17242 once_value_2 = fra.me.REG[4];
17243 register_static_object(&once_value_2);
17244 } else fra.me.REG[4] = once_value_2;
17245 fra.me.REG[4] = fra.me.REG[4];
17246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17247 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17249 if (!once_value_3) {
17250 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17251 REGB1 = TAG_Int(18);
17252 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17253 once_value_3 = fra.me.REG[4];
17254 register_static_object(&once_value_3);
17255 } else fra.me.REG[4] = once_value_3;
17256 fra.me.REG[4] = fra.me.REG[4];
17257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17258 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17259 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17260 /* compiling/compiling_icode.nit:1180 */
17261 REGB1 = TAG_Int(3);
17262 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17263 if (!once_value_4) {
17264 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
17265 REGB1 = TAG_Int(15);
17266 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17267 once_value_4 = fra.me.REG[4];
17268 register_static_object(&once_value_4);
17269 } else fra.me.REG[4] = once_value_4;
17270 fra.me.REG[4] = fra.me.REG[4];
17271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17272 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17274 if (!once_value_5) {
17275 fra.me.REG[4] = BOX_NativeString(") {");
17276 REGB1 = TAG_Int(3);
17277 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17278 once_value_5 = fra.me.REG[4];
17279 register_static_object(&once_value_5);
17280 } else fra.me.REG[4] = once_value_5;
17281 fra.me.REG[4] = fra.me.REG[4];
17282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17283 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17284 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17285 } else {
17286 /* compiling/compiling_icode.nit:1183 */
17287 REGB1 = TAG_Int(3);
17288 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17289 if (!once_value_6) {
17290 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
17291 REGB1 = TAG_Int(24);
17292 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17293 once_value_6 = fra.me.REG[4];
17294 register_static_object(&once_value_6);
17295 } else fra.me.REG[4] = once_value_6;
17296 fra.me.REG[4] = fra.me.REG[4];
17297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17298 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17299 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17300 if (!once_value_7) {
17301 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
17302 REGB1 = TAG_Int(18);
17303 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17304 once_value_7 = fra.me.REG[4];
17305 register_static_object(&once_value_7);
17306 } else fra.me.REG[4] = once_value_7;
17307 fra.me.REG[4] = fra.me.REG[4];
17308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17309 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17310 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17311 /* compiling/compiling_icode.nit:1184 */
17312 REGB1 = TAG_Int(3);
17313 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17314 if (!once_value_8) {
17315 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
17316 REGB1 = TAG_Int(16);
17317 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17318 once_value_8 = fra.me.REG[4];
17319 register_static_object(&once_value_8);
17320 } else fra.me.REG[4] = once_value_8;
17321 fra.me.REG[4] = fra.me.REG[4];
17322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17323 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17325 if (!once_value_9) {
17326 fra.me.REG[4] = BOX_NativeString(") {");
17327 REGB1 = TAG_Int(3);
17328 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17329 once_value_9 = fra.me.REG[4];
17330 register_static_object(&once_value_9);
17331 } else fra.me.REG[4] = once_value_9;
17332 fra.me.REG[4] = fra.me.REG[4];
17333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
17334 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17335 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17336 }
17337 /* compiling/compiling_icode.nit:1186 */
17338 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17339 /* compiling/compiling_icode.nit:1187 */
17340 fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
17341 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17342 /* compiling/compiling_icode.nit:1188 */
17343 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17344 /* compiling/compiling_icode.nit:1189 */
17345 REGB1 = TAG_Int(5);
17346 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17347 if (!once_value_10) {
17348 fra.me.REG[5] = BOX_NativeString("once_value_");
17349 REGB1 = TAG_Int(11);
17350 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17351 once_value_10 = fra.me.REG[5];
17352 register_static_object(&once_value_10);
17353 } else fra.me.REG[5] = once_value_10;
17354 fra.me.REG[5] = fra.me.REG[5];
17355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17356 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17358 if (!once_value_11) {
17359 fra.me.REG[5] = BOX_NativeString(" = ");
17360 REGB1 = TAG_Int(3);
17361 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17362 once_value_11 = fra.me.REG[5];
17363 register_static_object(&once_value_11);
17364 } else fra.me.REG[5] = once_value_11;
17365 fra.me.REG[5] = fra.me.REG[5];
17366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
17368 if (!once_value_12) {
17369 fra.me.REG[5] = BOX_NativeString(";");
17370 REGB1 = TAG_Int(1);
17371 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17372 once_value_12 = fra.me.REG[5];
17373 register_static_object(&once_value_12);
17374 } else fra.me.REG[5] = once_value_12;
17375 fra.me.REG[5] = fra.me.REG[5];
17376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17377 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17378 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17379 /* compiling/compiling_icode.nit:1190 */
17380 REGB1 = TAG_Int(3);
17381 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17382 if (!once_value_13) {
17383 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
17384 REGB1 = TAG_Int(35);
17385 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17386 once_value_13 = fra.me.REG[5];
17387 register_static_object(&once_value_13);
17388 } else fra.me.REG[5] = once_value_13;
17389 fra.me.REG[5] = fra.me.REG[5];
17390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17391 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17393 if (!once_value_14) {
17394 fra.me.REG[5] = BOX_NativeString(");");
17395 REGB1 = TAG_Int(2);
17396 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17397 once_value_14 = fra.me.REG[5];
17398 register_static_object(&once_value_14);
17399 } else fra.me.REG[5] = once_value_14;
17400 fra.me.REG[5] = fra.me.REG[5];
17401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17402 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17403 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17404 /* compiling/compiling_icode.nit:1191 */
17405 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17406 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
17407 if (UNTAG_Bool(REGB1)) {
17408 REGB1 = TAG_Int(3);
17409 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17410 if (!once_value_15) {
17411 fra.me.REG[4] = BOX_NativeString("once_bool_");
17412 REGB1 = TAG_Int(10);
17413 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17414 once_value_15 = fra.me.REG[4];
17415 register_static_object(&once_value_15);
17416 } else fra.me.REG[4] = once_value_15;
17417 fra.me.REG[4] = fra.me.REG[4];
17418 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17419 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17421 if (!once_value_16) {
17422 fra.me.REG[4] = BOX_NativeString(" = true;");
17423 REGB1 = TAG_Int(8);
17424 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17425 once_value_16 = fra.me.REG[4];
17426 register_static_object(&once_value_16);
17427 } else fra.me.REG[4] = once_value_16;
17428 fra.me.REG[4] = fra.me.REG[4];
17429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17430 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17431 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17432 }
17433 /* compiling/compiling_icode.nit:1192 */
17434 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17435 /* compiling/compiling_icode.nit:1193 */
17436 REGB1 = TAG_Int(5);
17437 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17438 if (!once_value_17) {
17439 fra.me.REG[4] = BOX_NativeString("} else ");
17440 REGB1 = TAG_Int(7);
17441 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17442 once_value_17 = fra.me.REG[4];
17443 register_static_object(&once_value_17);
17444 } else fra.me.REG[4] = once_value_17;
17445 fra.me.REG[4] = fra.me.REG[4];
17446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17448 if (!once_value_18) {
17449 fra.me.REG[4] = BOX_NativeString(" = once_value_");
17450 REGB1 = TAG_Int(14);
17451 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17452 once_value_18 = fra.me.REG[4];
17453 register_static_object(&once_value_18);
17454 } else fra.me.REG[4] = once_value_18;
17455 fra.me.REG[4] = fra.me.REG[4];
17456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17457 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17459 if (!once_value_19) {
17460 fra.me.REG[4] = BOX_NativeString(";");
17461 REGB0 = TAG_Int(1);
17462 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17463 once_value_19 = fra.me.REG[4];
17464 register_static_object(&once_value_19);
17465 } else fra.me.REG[4] = once_value_19;
17466 fra.me.REG[4] = fra.me.REG[4];
17467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17468 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17469 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17470 /* compiling/compiling_icode.nit:1194 */
17471 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
17472 /* compiling/compiling_icode.nit:1195 */
17473 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17474 stack_frame_head = fra.me.prev;
17475 return;
17476 }
17477 static const char LOCATE_compiling___compiling_icode___IClosCall___compile_to_c[] = "compiling_icode::IClosCall::(compiling_icode::ICode::compile_to_c)";
17478 void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
17479 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17480 val_t REGB0;
17481 val_t REGB1;
17482 val_t tmp;
17483 static val_t once_value_1; /* Once value */
17484 static val_t once_value_2; /* Once value */
17485 static val_t once_value_3; /* Once value */
17486 static val_t once_value_4; /* Once value */
17487 static val_t once_value_5; /* Once value */
17488 static val_t once_value_6; /* Once value */
17489 static val_t once_value_7; /* Once value */
17490 static val_t once_value_8; /* Once value */
17491 static val_t once_value_9; /* Once value */
17492 static val_t once_value_10; /* Once value */
17493 static val_t once_value_11; /* Once value */
17494 static val_t once_value_12; /* Once value */
17495 static val_t once_value_13; /* Once value */
17496 static val_t once_value_14; /* Once value */
17497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17498 fra.me.file = LOCATE_compiling___compiling_icode;
17499 fra.me.line = 1200;
17500 fra.me.meth = LOCATE_compiling___compiling_icode___IClosCall___compile_to_c;
17501 fra.me.has_broke = 0;
17502 fra.me.REG_size = 7;
17503 fra.me.nitni_local_ref_head = NULL;
17504 fra.me.REG[0] = NIT_NULL;
17505 fra.me.REG[1] = NIT_NULL;
17506 fra.me.REG[2] = NIT_NULL;
17507 fra.me.REG[3] = NIT_NULL;
17508 fra.me.REG[4] = NIT_NULL;
17509 fra.me.REG[5] = NIT_NULL;
17510 fra.me.REG[6] = NIT_NULL;
17511 fra.me.REG[0] = p0;
17512 fra.me.REG[1] = p1;
17513 /* compiling/compiling_icode.nit:1202 */
17514 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17515 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17516 /* compiling/compiling_icode.nit:1205 */
17517 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17518 if (UNTAG_Bool(REGB0)) {
17519 /* compiling/compiling_icode.nit:1206 */
17520 REGB0 = TAG_Int(3);
17521 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17522 if (!once_value_1) {
17523 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17524 REGB0 = TAG_Int(22);
17525 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17526 once_value_1 = fra.me.REG[3];
17527 register_static_object(&once_value_1);
17528 } else fra.me.REG[3] = once_value_1;
17529 fra.me.REG[3] = fra.me.REG[3];
17530 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17531 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17532 fra.me.REG[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17533 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17535 if (!once_value_2) {
17536 fra.me.REG[4] = BOX_NativeString("]");
17537 REGB0 = TAG_Int(1);
17538 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17539 once_value_2 = fra.me.REG[4];
17540 register_static_object(&once_value_2);
17541 } else fra.me.REG[4] = once_value_2;
17542 fra.me.REG[4] = fra.me.REG[4];
17543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17544 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17545 /* compiling/compiling_icode.nit:1207 */
17546 REGB0 = TAG_Int(1);
17547 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17548 if (!once_value_3) {
17549 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
17550 REGB0 = TAG_Int(20);
17551 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17552 once_value_3 = fra.me.REG[3];
17553 register_static_object(&once_value_3);
17554 } else fra.me.REG[3] = once_value_3;
17555 fra.me.REG[3] = fra.me.REG[3];
17556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17557 } else {
17558 /* compiling/compiling_icode.nit:1209 */
17559 REGB0 = TAG_Int(3);
17560 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17561 if (!once_value_4) {
17562 fra.me.REG[5] = BOX_NativeString("CREG[");
17563 REGB0 = TAG_Int(5);
17564 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17565 once_value_4 = fra.me.REG[5];
17566 register_static_object(&once_value_4);
17567 } else fra.me.REG[5] = once_value_4;
17568 fra.me.REG[5] = fra.me.REG[5];
17569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17570 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17571 fra.me.REG[6] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17572 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17573 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17574 if (!once_value_5) {
17575 fra.me.REG[6] = BOX_NativeString("]");
17576 REGB0 = TAG_Int(1);
17577 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17578 once_value_5 = fra.me.REG[6];
17579 register_static_object(&once_value_5);
17580 } else fra.me.REG[6] = once_value_5;
17581 fra.me.REG[6] = fra.me.REG[6];
17582 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17583 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17584 fra.me.REG[2] = fra.me.REG[3];
17585 /* compiling/compiling_icode.nit:1210 */
17586 REGB0 = TAG_Int(1);
17587 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17588 if (!once_value_6) {
17589 fra.me.REG[6] = BOX_NativeString("closctx_param");
17590 REGB0 = TAG_Int(13);
17591 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17592 once_value_6 = fra.me.REG[6];
17593 register_static_object(&once_value_6);
17594 } else fra.me.REG[6] = once_value_6;
17595 fra.me.REG[6] = fra.me.REG[6];
17596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17597 fra.me.REG[4] = fra.me.REG[3];
17598 }
17599 /* compiling/compiling_icode.nit:1212 */
17600 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
17601 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17602 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17603 /* compiling/compiling_icode.nit:1214 */
17604 REGB0 = TAG_Int(7);
17605 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17606 if (!once_value_7) {
17607 fra.me.REG[6] = BOX_NativeString("((");
17608 REGB0 = TAG_Int(2);
17609 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17610 once_value_7 = fra.me.REG[6];
17611 register_static_object(&once_value_7);
17612 } else fra.me.REG[6] = once_value_7;
17613 fra.me.REG[6] = fra.me.REG[6];
17614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17615 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
17616 fra.me.REG[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17617 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
17618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17619 if (!once_value_8) {
17620 fra.me.REG[5] = BOX_NativeString(")(");
17621 REGB0 = TAG_Int(2);
17622 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17623 once_value_8 = fra.me.REG[5];
17624 register_static_object(&once_value_8);
17625 } else fra.me.REG[5] = once_value_8;
17626 fra.me.REG[5] = fra.me.REG[5];
17627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17629 if (!once_value_9) {
17630 fra.me.REG[2] = BOX_NativeString("))(");
17631 REGB0 = TAG_Int(3);
17632 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17633 once_value_9 = fra.me.REG[2];
17634 register_static_object(&once_value_9);
17635 } else fra.me.REG[2] = once_value_9;
17636 fra.me.REG[2] = fra.me.REG[2];
17637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17638 if (!once_value_10) {
17639 fra.me.REG[2] = BOX_NativeString(", ");
17640 REGB0 = TAG_Int(2);
17641 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17642 once_value_10 = fra.me.REG[2];
17643 register_static_object(&once_value_10);
17644 } else fra.me.REG[2] = once_value_10;
17645 fra.me.REG[2] = fra.me.REG[2];
17646 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
17647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17648 if (!once_value_11) {
17649 fra.me.REG[2] = BOX_NativeString(")");
17650 REGB0 = TAG_Int(1);
17651 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17652 once_value_11 = fra.me.REG[2];
17653 register_static_object(&once_value_11);
17654 } else fra.me.REG[2] = once_value_11;
17655 fra.me.REG[2] = fra.me.REG[2];
17656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17657 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17658 /* compiling/compiling_icode.nit:1215 */
17659 fra.me.REG[2] = NEW_Writer_compiling_writer___Writer___init();
17660 /* compiling/compiling_icode.nit:1216 */
17661 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17662 /* compiling/compiling_icode.nit:1217 */
17663 CALL_compiling___compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
17664 /* compiling/compiling_icode.nit:1220 */
17665 REGB0 = TAG_Int(3);
17666 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17667 if (!once_value_12) {
17668 fra.me.REG[3] = BOX_NativeString("if (");
17669 REGB0 = TAG_Int(4);
17670 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17671 once_value_12 = fra.me.REG[3];
17672 register_static_object(&once_value_12);
17673 } else fra.me.REG[3] = once_value_12;
17674 fra.me.REG[3] = fra.me.REG[3];
17675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17676 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
17677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17678 if (!once_value_13) {
17679 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
17680 REGB0 = TAG_Int(14);
17681 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17682 once_value_13 = fra.me.REG[4];
17683 register_static_object(&once_value_13);
17684 } else fra.me.REG[4] = once_value_13;
17685 fra.me.REG[4] = fra.me.REG[4];
17686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17687 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17688 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17689 /* compiling/compiling_icode.nit:1221 */
17690 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17691 /* compiling/compiling_icode.nit:1222 */
17692 fra.me.REG[0] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
17693 /* compiling/compiling_icode.nit:1223 */
17694 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17695 if (UNTAG_Bool(REGB0)) {
17696 } else {
17697 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17698 if (UNTAG_Bool(REGB1)) {
17699 REGB1 = TAG_Bool(0);
17700 REGB0 = REGB1;
17701 } else {
17702 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
17703 REGB0 = REGB1;
17704 }
17705 }
17706 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17707 if (UNTAG_Bool(REGB0)) {
17708 /* compiling/compiling_icode.nit:1224 */
17709 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17710 if (UNTAG_Bool(REGB0)) {
17711 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 1224);
17712 }
17713 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17714 }
17715 /* compiling/compiling_icode.nit:1226 */
17716 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
17717 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
17718 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17719 /* compiling/compiling_icode.nit:1227 */
17720 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17721 /* compiling/compiling_icode.nit:1228 */
17722 if (!once_value_14) {
17723 fra.me.REG[0] = BOX_NativeString("}");
17724 REGB0 = TAG_Int(1);
17725 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17726 once_value_14 = fra.me.REG[0];
17727 register_static_object(&once_value_14);
17728 } else fra.me.REG[0] = once_value_14;
17729 fra.me.REG[0] = fra.me.REG[0];
17730 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17731 stack_frame_head = fra.me.prev;
17732 return;
17733 }
17734 static const char LOCATE_compiling___compiling_icode___IHasClos___compile_to_c[] = "compiling_icode::IHasClos::(compiling_icode::ICode::compile_to_c)";
17735 void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
17736 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17737 val_t REGB0;
17738 val_t tmp;
17739 static val_t once_value_2; /* Once value */
17740 static val_t once_value_3; /* Once value */
17741 static val_t once_value_4; /* Once value */
17742 static val_t once_value_5; /* Once value */
17743 static val_t once_value_6; /* Once value */
17744 static val_t once_value_7; /* Once value */
17745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17746 fra.me.file = LOCATE_compiling___compiling_icode;
17747 fra.me.line = 1233;
17748 fra.me.meth = LOCATE_compiling___compiling_icode___IHasClos___compile_to_c;
17749 fra.me.has_broke = 0;
17750 fra.me.REG_size = 5;
17751 fra.me.nitni_local_ref_head = NULL;
17752 fra.me.REG[0] = NIT_NULL;
17753 fra.me.REG[1] = NIT_NULL;
17754 fra.me.REG[2] = NIT_NULL;
17755 fra.me.REG[3] = NIT_NULL;
17756 fra.me.REG[4] = NIT_NULL;
17757 fra.me.REG[0] = p0;
17758 fra.me.REG[1] = p1;
17759 /* compiling/compiling_icode.nit:1235 */
17760 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
17761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17762 if (UNTAG_Bool(REGB0)) {
17763 goto label1;
17764 }
17765 /* compiling/compiling_icode.nit:1236 */
17766 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17767 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17768 /* compiling/compiling_icode.nit:1237 */
17769 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17770 /* compiling/compiling_icode.nit:1238 */
17771 if (!once_value_2) {
17772 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
17773 REGB0 = TAG_Int(9);
17774 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17775 once_value_2 = fra.me.REG[3];
17776 register_static_object(&once_value_2);
17777 } else fra.me.REG[3] = once_value_2;
17778 fra.me.REG[3] = fra.me.REG[3];
17779 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17780 /* compiling/compiling_icode.nit:1239 */
17781 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17782 if (UNTAG_Bool(REGB0)) {
17783 /* compiling/compiling_icode.nit:1240 */
17784 if (!once_value_3) {
17785 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17786 REGB0 = TAG_Int(22);
17787 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17788 once_value_3 = fra.me.REG[3];
17789 register_static_object(&once_value_3);
17790 } else fra.me.REG[3] = once_value_3;
17791 fra.me.REG[3] = fra.me.REG[3];
17792 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17793 /* compiling/compiling_icode.nit:1241 */
17794 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17795 fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17796 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17797 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17798 /* compiling/compiling_icode.nit:1242 */
17799 if (!once_value_4) {
17800 fra.me.REG[4] = BOX_NativeString("]");
17801 REGB0 = TAG_Int(1);
17802 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17803 once_value_4 = fra.me.REG[4];
17804 register_static_object(&once_value_4);
17805 } else fra.me.REG[4] = once_value_4;
17806 fra.me.REG[4] = fra.me.REG[4];
17807 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17808 } else {
17809 /* compiling/compiling_icode.nit:1244 */
17810 if (!once_value_5) {
17811 fra.me.REG[4] = BOX_NativeString("CREG[");
17812 REGB0 = TAG_Int(5);
17813 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17814 once_value_5 = fra.me.REG[4];
17815 register_static_object(&once_value_5);
17816 } else fra.me.REG[4] = once_value_5;
17817 fra.me.REG[4] = fra.me.REG[4];
17818 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17819 /* compiling/compiling_icode.nit:1245 */
17820 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17821 fra.me.REG[0] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17822 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17823 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17824 /* compiling/compiling_icode.nit:1246 */
17825 if (!once_value_6) {
17826 fra.me.REG[0] = BOX_NativeString("]");
17827 REGB0 = TAG_Int(1);
17828 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17829 once_value_6 = fra.me.REG[0];
17830 register_static_object(&once_value_6);
17831 } else fra.me.REG[0] = once_value_6;
17832 fra.me.REG[0] = fra.me.REG[0];
17833 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17834 }
17835 /* compiling/compiling_icode.nit:1248 */
17836 if (!once_value_7) {
17837 fra.me.REG[0] = BOX_NativeString(" != NULL)");
17838 REGB0 = TAG_Int(9);
17839 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17840 once_value_7 = fra.me.REG[0];
17841 register_static_object(&once_value_7);
17842 } else fra.me.REG[0] = once_value_7;
17843 fra.me.REG[0] = fra.me.REG[0];
17844 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17845 label1: while(0);
17846 stack_frame_head = fra.me.prev;
17847 return;
17848 }
17849 static const char LOCATE_compiling___compiling_icode___IClosureDef___compile_closure[] = "compiling_icode::IClosureDef::compile_closure";
17850 val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
17851 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17852 val_t REGB0;
17853 val_t REGB1;
17854 val_t REGB2;
17855 val_t tmp;
17856 static val_t once_value_1; /* Once value */
17857 static val_t once_value_2; /* Once value */
17858 static val_t once_value_3; /* Once value */
17859 static val_t once_value_4; /* Once value */
17860 static val_t once_value_5; /* Once value */
17861 static val_t once_value_6; /* Once value */
17862 static val_t once_value_7; /* Once value */
17863 static val_t once_value_8; /* Once value */
17864 static val_t once_value_9; /* Once value */
17865 static val_t once_value_10; /* Once value */
17866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17867 fra.me.file = LOCATE_compiling___compiling_icode;
17868 fra.me.line = 1253;
17869 fra.me.meth = LOCATE_compiling___compiling_icode___IClosureDef___compile_closure;
17870 fra.me.has_broke = 0;
17871 fra.me.REG_size = 9;
17872 fra.me.nitni_local_ref_head = NULL;
17873 fra.me.REG[0] = NIT_NULL;
17874 fra.me.REG[1] = NIT_NULL;
17875 fra.me.REG[2] = NIT_NULL;
17876 fra.me.REG[3] = NIT_NULL;
17877 fra.me.REG[4] = NIT_NULL;
17878 fra.me.REG[5] = NIT_NULL;
17879 fra.me.REG[6] = NIT_NULL;
17880 fra.me.REG[7] = NIT_NULL;
17881 fra.me.REG[8] = NIT_NULL;
17882 fra.me.REG[0] = p0;
17883 fra.me.REG[1] = p1;
17884 /* compiling/compiling_icode.nit:1257 */
17885 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17886 /* compiling/compiling_icode.nit:1260 */
17887 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17888 /* compiling/compiling_icode.nit:1261 */
17889 REGB1 = TAG_Bool(1);
17890 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
17891 /* compiling/compiling_icode.nit:1264 */
17892 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
17893 /* compiling/compiling_icode.nit:1265 */
17894 fra.me.REG[4] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
17895 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17896 /* compiling/compiling_icode.nit:1268 */
17897 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
17898 /* compiling/compiling_icode.nit:1269 */
17899 fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17900 /* compiling/compiling_icode.nit:1270 */
17901 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
17902 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17903 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17904 /* compiling/compiling_icode.nit:1271 */
17905 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
17906 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17907 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17908 /* compiling/compiling_icode.nit:1274 */
17909 REGB1 = TAG_Int(5);
17910 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17911 if (!once_value_1) {
17912 fra.me.REG[7] = BOX_NativeString("OC_");
17913 REGB1 = TAG_Int(3);
17914 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17915 once_value_1 = fra.me.REG[7];
17916 register_static_object(&once_value_1);
17917 } else fra.me.REG[7] = once_value_1;
17918 fra.me.REG[7] = fra.me.REG[7];
17919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17920 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
17921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17922 if (!once_value_2) {
17923 fra.me.REG[7] = BOX_NativeString("_");
17924 REGB1 = TAG_Int(1);
17925 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17926 once_value_2 = fra.me.REG[7];
17927 register_static_object(&once_value_2);
17928 } else fra.me.REG[7] = once_value_2;
17929 fra.me.REG[7] = fra.me.REG[7];
17930 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17931 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17932 fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
17933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17934 if (!once_value_3) {
17935 fra.me.REG[7] = BOX_NativeString("");
17936 REGB1 = TAG_Int(0);
17937 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17938 once_value_3 = fra.me.REG[7];
17939 register_static_object(&once_value_3);
17940 } else fra.me.REG[7] = once_value_3;
17941 fra.me.REG[7] = fra.me.REG[7];
17942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17943 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
17944 /* compiling/compiling_icode.nit:1275 */
17945 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17946 if (!once_value_4) {
17947 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
17948 REGB1 = TAG_Int(29);
17949 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17950 once_value_4 = fra.me.REG[8];
17951 register_static_object(&once_value_4);
17952 } else fra.me.REG[8] = once_value_4;
17953 fra.me.REG[8] = fra.me.REG[8];
17954 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);
17955 /* compiling/compiling_icode.nit:1276 */
17956 fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17957 fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
17958 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
17959 /* compiling/compiling_icode.nit:1278 */
17960 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]);
17961 /* compiling/compiling_icode.nit:1279 */
17962 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17963 if (UNTAG_Bool(REGB1)) {
17964 } else {
17965 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17966 if (UNTAG_Bool(REGB2)) {
17967 REGB2 = TAG_Bool(0);
17968 REGB1 = REGB2;
17969 } else {
17970 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
17971 REGB1 = REGB2;
17972 }
17973 }
17974 if (UNTAG_Bool(REGB1)) {
17975 /* compiling/compiling_icode.nit:1280 */
17976 if (!once_value_5) {
17977 fra.me.REG[0] = BOX_NativeString("return;");
17978 REGB1 = TAG_Int(7);
17979 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17980 once_value_5 = fra.me.REG[0];
17981 register_static_object(&once_value_5);
17982 } else fra.me.REG[0] = once_value_5;
17983 fra.me.REG[0] = fra.me.REG[0];
17984 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17985 } else {
17986 /* compiling/compiling_icode.nit:1282 */
17987 REGB1 = TAG_Int(3);
17988 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17989 if (!once_value_6) {
17990 fra.me.REG[7] = BOX_NativeString("return ");
17991 REGB1 = TAG_Int(7);
17992 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17993 once_value_6 = fra.me.REG[7];
17994 register_static_object(&once_value_6);
17995 } else fra.me.REG[7] = once_value_6;
17996 fra.me.REG[7] = fra.me.REG[7];
17997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
17998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17999 if (!once_value_7) {
18000 fra.me.REG[8] = BOX_NativeString(";");
18001 REGB1 = TAG_Int(1);
18002 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
18003 once_value_7 = fra.me.REG[8];
18004 register_static_object(&once_value_7);
18005 } else fra.me.REG[8] = once_value_7;
18006 fra.me.REG[8] = fra.me.REG[8];
18007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
18008 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
18009 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18010 }
18011 /* compiling/compiling_icode.nit:1284 */
18012 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
18013 /* compiling/compiling_icode.nit:1285 */
18014 if (!once_value_8) {
18015 fra.me.REG[0] = BOX_NativeString("}");
18016 REGB1 = TAG_Int(1);
18017 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
18018 once_value_8 = fra.me.REG[0];
18019 register_static_object(&once_value_8);
18020 } else fra.me.REG[0] = once_value_8;
18021 fra.me.REG[0] = fra.me.REG[0];
18022 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18023 /* compiling/compiling_icode.nit:1288 */
18024 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
18025 /* compiling/compiling_icode.nit:1289 */
18026 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
18027 /* compiling/compiling_icode.nit:1290 */
18028 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
18029 /* compiling/compiling_icode.nit:1291 */
18030 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18031 /* compiling/compiling_icode.nit:1292 */
18032 REGB0 = TAG_Int(3);
18033 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
18034 if (!once_value_9) {
18035 fra.me.REG[1] = BOX_NativeString("((fun_t)");
18036 REGB0 = TAG_Int(8);
18037 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
18038 once_value_9 = fra.me.REG[1];
18039 register_static_object(&once_value_9);
18040 } else fra.me.REG[1] = once_value_9;
18041 fra.me.REG[1] = fra.me.REG[1];
18042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
18044 if (!once_value_10) {
18045 fra.me.REG[6] = BOX_NativeString(")");
18046 REGB0 = TAG_Int(1);
18047 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
18048 once_value_10 = fra.me.REG[6];
18049 register_static_object(&once_value_10);
18050 } else fra.me.REG[6] = once_value_10;
18051 fra.me.REG[6] = fra.me.REG[6];
18052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
18053 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
18054 goto label11;
18055 label11: while(0);
18056 stack_frame_head = fra.me.prev;
18057 return fra.me.REG[3];
18058 }