c_src: update
[nit.git] / c_src / compiling_icode._sep.c
1 /* This C file is generated by NIT to compile module compiling_icode. */
2 #include "compiling_icode._sep.h"
3 val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_3; /* Once value */
10 static val_t once_value_4; /* Once value */
11 static val_t once_value_5; /* Once value */
12 static val_t once_value_6; /* Once value */
13 static val_t once_value_7; /* Once value */
14 static val_t once_value_8; /* Once value */
15 static val_t once_value_9; /* Once value */
16 static val_t once_value_10; /* Once value */
17 static val_t once_value_11; /* Once value */
18 static val_t once_value_12; /* Once value */
19 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20 fra.me.file = LOCATE_compiling_icode;
21 fra.me.line = 31;
22 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___register;
23 fra.me.has_broke = 0;
24 fra.me.REG_size = 8;
25 fra.me.REG[0] = NIT_NULL;
26 fra.me.REG[1] = NIT_NULL;
27 fra.me.REG[2] = NIT_NULL;
28 fra.me.REG[3] = NIT_NULL;
29 fra.me.REG[4] = NIT_NULL;
30 fra.me.REG[5] = NIT_NULL;
31 fra.me.REG[6] = NIT_NULL;
32 fra.me.REG[7] = NIT_NULL;
33 fra.me.REG[0] = p0;
34 fra.me.REG[1] = p1;
35 /* ./compiling//compiling_icode.nit:34 */
36 fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
37 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
38 if (UNTAG_Bool(REGB0)) {
39 if (!once_value_1) {
40 fra.me.REG[2] = BOX_NativeString("NIT_NULL");
41 REGB0 = TAG_Int(8);
42 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
43 once_value_1 = fra.me.REG[2];
44 register_static_object(&once_value_1);
45 } else fra.me.REG[2] = once_value_1;
46 fra.me.REG[2] = fra.me.REG[2];
47 goto label2;
48 }
49 /* ./compiling//compiling_icode.nit:35 */
50 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
51 if (UNTAG_Bool(REGB0)) {
52 } else {
53 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 35);
54 }
55 fra.me.REG[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
56 /* ./compiling//compiling_icode.nit:36 */
57 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
58 if (UNTAG_Bool(REGB0)) {
59 REGB0 = CALL_allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
60 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
61 } else {
62 REGB1 = TAG_Bool(false);
63 REGB0 = REGB1;
64 }
65 if (UNTAG_Bool(REGB0)) {
66 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0])!=NIT_NULL);
67 if (UNTAG_Bool(REGB0)) {
68 } else {
69 nit_abort("Uninitialized attribute %s", "_ids2", LOCATE_compiling_icode, 36);
70 }
71 fra.me.REG[4] = ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]);
72 fra.me.REG[3] = fra.me.REG[4];
73 }
74 /* ./compiling//compiling_icode.nit:37 */
75 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
76 if (UNTAG_Bool(REGB0)) {
77 /* ./compiling//compiling_icode.nit:38 */
78 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
79 fra.me.REG[2] = fra.me.REG[4];
80 goto label2;
81 } else {
82 /* ./compiling//compiling_icode.nit:40 */
83 fra.me.REG[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
84 /* ./compiling//compiling_icode.nit:41 */
85 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
86 if (UNTAG_Bool(REGB0)) {
87 } else {
88 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
89 if (UNTAG_Bool(REGB1)) {
90 REGB1 = TAG_Bool(false);
91 REGB0 = REGB1;
92 } else {
93 /* ./../lib/standard//kernel.nit:207 */
94 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
95 /* ./compiling//compiling_icode.nit:41 */
96 REGB0 = REGB1;
97 }
98 }
99 if (UNTAG_Bool(REGB0)) {
100 /* ./compiling//compiling_icode.nit:43 */
101 if (!once_value_3) {
102 fra.me.REG[5] = BOX_NativeString("NIT_NULL");
103 REGB0 = TAG_Int(8);
104 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
105 once_value_3 = fra.me.REG[5];
106 register_static_object(&once_value_3);
107 } else fra.me.REG[5] = once_value_3;
108 fra.me.REG[5] = fra.me.REG[5];
109 /* ./compiling//compiling_icode.nit:44 */
110 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5]);
111 /* ./compiling//compiling_icode.nit:45 */
112 fra.me.REG[2] = fra.me.REG[5];
113 goto label2;
114 } else {
115 /* ./compiling//compiling_icode.nit:49 */
116 REGB0 = CALL_allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]);
117 if (UNTAG_Bool(REGB0)) {
118 /* ./compiling//compiling_icode.nit:50 */
119 if (!once_value_4) {
120 fra.me.REG[5] = NEW_HashMap_hash_collection___HashMap___init();
121 once_value_4 = fra.me.REG[5];
122 register_static_object(&once_value_4);
123 } else fra.me.REG[5] = once_value_4;
124 fra.me.REG[5] = fra.me.REG[5];
125 /* ./compiling//compiling_icode.nit:51 */
126 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
127 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
128 if (UNTAG_Bool(REGB0)) {
129 REGB0 = TAG_Int(3);
130 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
131 if (!once_value_5) {
132 fra.me.REG[7] = BOX_NativeString("REGB");
133 REGB0 = TAG_Int(4);
134 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
135 once_value_5 = fra.me.REG[7];
136 register_static_object(&once_value_5);
137 } else fra.me.REG[7] = once_value_5;
138 fra.me.REG[7] = fra.me.REG[7];
139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
140 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
141 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
142 if (!once_value_6) {
143 fra.me.REG[7] = BOX_NativeString("");
144 REGB0 = TAG_Int(0);
145 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
146 once_value_6 = fra.me.REG[7];
147 register_static_object(&once_value_6);
148 } else fra.me.REG[7] = once_value_6;
149 fra.me.REG[7] = fra.me.REG[7];
150 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
151 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
152 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
153 }
154 } else {
155 /* ./compiling//compiling_icode.nit:52 */
156 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
157 if (UNTAG_Bool(REGB0)) {
158 REGB0 = CALL_allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
160 } else {
161 REGB1 = TAG_Bool(false);
162 REGB0 = REGB1;
163 }
164 if (UNTAG_Bool(REGB0)) {
165 /* ./compiling//compiling_icode.nit:53 */
166 if (!once_value_7) {
167 fra.me.REG[0] = NEW_HashMap_hash_collection___HashMap___init();
168 once_value_7 = fra.me.REG[0];
169 register_static_object(&once_value_7);
170 } else fra.me.REG[0] = once_value_7;
171 fra.me.REG[0] = fra.me.REG[0];
172 fra.me.REG[5] = fra.me.REG[0];
173 /* ./compiling//compiling_icode.nit:54 */
174 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
175 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
176 if (UNTAG_Bool(REGB0)) {
177 REGB0 = TAG_Int(3);
178 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
179 if (!once_value_8) {
180 fra.me.REG[6] = BOX_NativeString("closctx->REG[");
181 REGB0 = TAG_Int(13);
182 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
183 once_value_8 = fra.me.REG[6];
184 register_static_object(&once_value_8);
185 } else fra.me.REG[6] = once_value_8;
186 fra.me.REG[6] = fra.me.REG[6];
187 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
188 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
190 if (!once_value_9) {
191 fra.me.REG[6] = BOX_NativeString("]");
192 REGB0 = TAG_Int(1);
193 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
194 once_value_9 = fra.me.REG[6];
195 register_static_object(&once_value_9);
196 } else fra.me.REG[6] = once_value_9;
197 fra.me.REG[6] = fra.me.REG[6];
198 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
199 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
200 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
201 }
202 } else {
203 /* ./compiling//compiling_icode.nit:56 */
204 if (!once_value_10) {
205 fra.me.REG[0] = NEW_HashMap_hash_collection___HashMap___init();
206 once_value_10 = fra.me.REG[0];
207 register_static_object(&once_value_10);
208 } else fra.me.REG[0] = once_value_10;
209 fra.me.REG[0] = fra.me.REG[0];
210 fra.me.REG[5] = fra.me.REG[0];
211 /* ./compiling//compiling_icode.nit:57 */
212 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
214 if (UNTAG_Bool(REGB0)) {
215 REGB0 = TAG_Int(3);
216 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
217 if (!once_value_11) {
218 fra.me.REG[6] = BOX_NativeString("fra.me.REG[");
219 REGB0 = TAG_Int(11);
220 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
221 once_value_11 = fra.me.REG[6];
222 register_static_object(&once_value_11);
223 } else fra.me.REG[6] = once_value_11;
224 fra.me.REG[6] = fra.me.REG[6];
225 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
226 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
227 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
228 if (!once_value_12) {
229 fra.me.REG[6] = BOX_NativeString("]");
230 REGB0 = TAG_Int(1);
231 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
232 once_value_12 = fra.me.REG[6];
233 register_static_object(&once_value_12);
234 } else fra.me.REG[6] = once_value_12;
235 fra.me.REG[6] = fra.me.REG[6];
236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
237 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
238 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
239 }
240 }
241 }
242 /* ./compiling//compiling_icode.nit:59 */
243 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
244 /* ./compiling//compiling_icode.nit:60 */
245 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
246 /* ./compiling//compiling_icode.nit:61 */
247 fra.me.REG[2] = fra.me.REG[4];
248 goto label2;
249 }
250 }
251 label2: while(0);
252 stack_frame_head = fra.me.prev;
253 return fra.me.REG[2];
254 }
255 val_t compiling_icode___I2CCompilerVisitor___registers(val_t p0, val_t p1){
256 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
257 val_t REGB0;
258 val_t tmp;
259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
260 fra.me.file = LOCATE_compiling_icode;
261 fra.me.line = 66;
262 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___registers;
263 fra.me.has_broke = 0;
264 fra.me.REG_size = 3;
265 fra.me.REG[0] = NIT_NULL;
266 fra.me.REG[1] = NIT_NULL;
267 fra.me.REG[2] = NIT_NULL;
268 fra.me.REG[0] = p0;
269 fra.me.REG[1] = p1;
270 /* ./compiling//compiling_icode.nit:69 */
271 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
272 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
273 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling_icode___I2CCompilerVisitor___registers_1));
274 /* ./compiling//compiling_icode.nit:73 */
275 goto label2;
276 label2: while(0);
277 stack_frame_head = fra.me.prev;
278 return fra.me.REG[2];
279 }
280 void OC_compiling_icode___I2CCompilerVisitor___registers_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
281 struct {struct stack_frame_t me;} fra;
282 fun_t CREG[1];
283 val_t tmp;
284 /* ./compiling//compiling_icode.nit:70 */
285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
286 fra.me.file = LOCATE_compiling_icode;
287 fra.me.line = 0;
288 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___registers;
289 fra.me.has_broke = 0;
290 fra.me.REG_size = 1;
291 fra.me.REG[0] = NIT_NULL;
292 fra.me.closure_ctx = closctx_param;
293 fra.me.closure_funs = CREG;
294 fra.me.REG[0] = p0;
295 CREG[0] = clos_fun0;
296 /* ./compiling//compiling_icode.nit:71 */
297 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
298 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
299 stack_frame_head = fra.me.prev;
300 return;
301 }
302 val_t compiling_icode___I2CCompilerVisitor___new_number(val_t p0){
303 struct {struct stack_frame_t me;} fra;
304 val_t REGB0;
305 val_t REGB1;
306 val_t tmp;
307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
308 fra.me.file = LOCATE_compiling_icode;
309 fra.me.line = 77;
310 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___new_number;
311 fra.me.has_broke = 0;
312 fra.me.REG_size = 1;
313 fra.me.REG[0] = NIT_NULL;
314 fra.me.REG[0] = p0;
315 /* ./compiling//compiling_icode.nit:80 */
316 REGB0 = ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
317 REGB1 = TAG_Int(1);
318 /* ./../lib/standard//kernel.nit:215 */
319 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
320 /* ./compiling//compiling_icode.nit:80 */
321 ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1;
322 /* ./compiling//compiling_icode.nit:81 */
323 REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL);
324 if (UNTAG_Bool(REGB1)) {
325 } else {
326 nit_abort("Uninitialized attribute %s", "_last_number", LOCATE_compiling_icode, 81);
327 }
328 REGB1 = ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
329 goto label1;
330 label1: while(0);
331 stack_frame_head = fra.me.prev;
332 return REGB1;
333 }
334 val_t compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){
335 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
336 val_t REGB0;
337 val_t tmp;
338 static val_t once_value_2; /* Once value */
339 static val_t once_value_3; /* Once value */
340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
341 fra.me.file = LOCATE_compiling_icode;
342 fra.me.line = 84;
343 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___lab;
344 fra.me.has_broke = 0;
345 fra.me.REG_size = 5;
346 fra.me.REG[0] = NIT_NULL;
347 fra.me.REG[1] = NIT_NULL;
348 fra.me.REG[2] = NIT_NULL;
349 fra.me.REG[3] = NIT_NULL;
350 fra.me.REG[4] = NIT_NULL;
351 fra.me.REG[0] = p0;
352 fra.me.REG[1] = p1;
353 /* ./compiling//compiling_icode.nit:87 */
354 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
355 if (UNTAG_Bool(REGB0)) {
356 } else {
357 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 87);
358 }
359 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
360 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
361 if (UNTAG_Bool(REGB0)) {
362 /* ./compiling//compiling_icode.nit:88 */
363 REGB0 = TAG_Bool(ATTR_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_icode, 88);
367 }
368 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
369 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
370 goto label1;
371 } else {
372 /* ./compiling//compiling_icode.nit:90 */
373 REGB0 = TAG_Int(3);
374 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
375 if (!once_value_2) {
376 fra.me.REG[4] = BOX_NativeString("label");
377 REGB0 = TAG_Int(5);
378 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
379 once_value_2 = fra.me.REG[4];
380 register_static_object(&once_value_2);
381 } else fra.me.REG[4] = once_value_2;
382 fra.me.REG[4] = fra.me.REG[4];
383 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
384 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[0])(fra.me.REG[0]);
385 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
387 if (!once_value_3) {
388 fra.me.REG[4] = BOX_NativeString("");
389 REGB0 = TAG_Int(0);
390 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
391 once_value_3 = fra.me.REG[4];
392 register_static_object(&once_value_3);
393 } else fra.me.REG[4] = once_value_3;
394 fra.me.REG[4] = fra.me.REG[4];
395 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
396 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
397 /* ./compiling//compiling_icode.nit:91 */
398 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
399 if (UNTAG_Bool(REGB0)) {
400 } else {
401 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 91);
402 }
403 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
404 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
405 /* ./compiling//compiling_icode.nit:92 */
406 fra.me.REG[2] = fra.me.REG[3];
407 goto label1;
408 }
409 label1: while(0);
410 stack_frame_head = fra.me.prev;
411 return fra.me.REG[2];
412 }
413 val_t compiling_icode___I2CCompilerVisitor___closures(val_t p0){
414 struct {struct stack_frame_t me;} fra;
415 val_t REGB0;
416 val_t tmp;
417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
418 fra.me.file = LOCATE_compiling_icode;
419 fra.me.line = 96;
420 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___closures;
421 fra.me.has_broke = 0;
422 fra.me.REG_size = 1;
423 fra.me.REG[0] = NIT_NULL;
424 fra.me.REG[0] = p0;
425 /* ./compiling//compiling_icode.nit:96 */
426 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL);
427 if (UNTAG_Bool(REGB0)) {
428 } else {
429 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_compiling_icode, 96);
430 }
431 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]);
432 stack_frame_head = fra.me.prev;
433 return fra.me.REG[0];
434 }
435 val_t compiling_icode___I2CCompilerVisitor___clostypes(val_t p0){
436 struct {struct stack_frame_t me;} fra;
437 val_t REGB0;
438 val_t tmp;
439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
440 fra.me.file = LOCATE_compiling_icode;
441 fra.me.line = 99;
442 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___clostypes;
443 fra.me.has_broke = 0;
444 fra.me.REG_size = 1;
445 fra.me.REG[0] = NIT_NULL;
446 fra.me.REG[0] = p0;
447 /* ./compiling//compiling_icode.nit:99 */
448 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL);
449 if (UNTAG_Bool(REGB0)) {
450 } else {
451 nit_abort("Uninitialized attribute %s", "_clostypes", LOCATE_compiling_icode, 99);
452 }
453 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]);
454 stack_frame_head = fra.me.prev;
455 return fra.me.REG[0];
456 }
457 val_t compiling_icode___I2CCompilerVisitor___local_labels(val_t p0){
458 struct {struct stack_frame_t me;} fra;
459 val_t REGB0;
460 val_t tmp;
461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
462 fra.me.file = LOCATE_compiling_icode;
463 fra.me.line = 102;
464 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___local_labels;
465 fra.me.has_broke = 0;
466 fra.me.REG_size = 1;
467 fra.me.REG[0] = NIT_NULL;
468 fra.me.REG[0] = p0;
469 /* ./compiling//compiling_icode.nit:102 */
470 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL);
471 if (UNTAG_Bool(REGB0)) {
472 } else {
473 nit_abort("Uninitialized attribute %s", "_local_labels", LOCATE_compiling_icode, 102);
474 }
475 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]);
476 stack_frame_head = fra.me.prev;
477 return fra.me.REG[0];
478 }
479 void compiling_icode___I2CCompilerVisitor___local_labels__eq(val_t p0, val_t p1){
480 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
481 val_t tmp;
482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
483 fra.me.file = LOCATE_compiling_icode;
484 fra.me.line = 102;
485 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___local_labels__eq;
486 fra.me.has_broke = 0;
487 fra.me.REG_size = 2;
488 fra.me.REG[0] = NIT_NULL;
489 fra.me.REG[1] = NIT_NULL;
490 fra.me.REG[0] = p0;
491 fra.me.REG[1] = p1;
492 /* ./compiling//compiling_icode.nit:102 */
493 ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
494 stack_frame_head = fra.me.prev;
495 return;
496 }
497 val_t compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0){
498 struct {struct stack_frame_t me;} fra;
499 val_t REGB0;
500 val_t tmp;
501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
502 fra.me.file = LOCATE_compiling_icode;
503 fra.me.line = 105;
504 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___escaped_labels;
505 fra.me.has_broke = 0;
506 fra.me.REG_size = 1;
507 fra.me.REG[0] = NIT_NULL;
508 fra.me.REG[0] = p0;
509 /* ./compiling//compiling_icode.nit:105 */
510 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
511 if (UNTAG_Bool(REGB0)) {
512 } else {
513 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 105);
514 }
515 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
516 stack_frame_head = fra.me.prev;
517 return fra.me.REG[0];
518 }
519 void compiling_icode___I2CCompilerVisitor___escaped_labels__eq(val_t p0, val_t p1){
520 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
521 val_t tmp;
522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
523 fra.me.file = LOCATE_compiling_icode;
524 fra.me.line = 105;
525 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___escaped_labels__eq;
526 fra.me.has_broke = 0;
527 fra.me.REG_size = 2;
528 fra.me.REG[0] = NIT_NULL;
529 fra.me.REG[1] = NIT_NULL;
530 fra.me.REG[0] = p0;
531 fra.me.REG[1] = p1;
532 /* ./compiling//compiling_icode.nit:105 */
533 ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
534 stack_frame_head = fra.me.prev;
535 return;
536 }
537 val_t compiling_icode___I2CCompilerVisitor___register_escape_label(val_t p0, val_t p1){
538 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
539 val_t REGB0;
540 val_t REGB1;
541 val_t REGB2;
542 val_t tmp;
543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
544 fra.me.file = LOCATE_compiling_icode;
545 fra.me.line = 109;
546 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___register_escape_label;
547 fra.me.has_broke = 0;
548 fra.me.REG_size = 3;
549 fra.me.REG[0] = NIT_NULL;
550 fra.me.REG[1] = NIT_NULL;
551 fra.me.REG[2] = NIT_NULL;
552 fra.me.REG[0] = p0;
553 fra.me.REG[1] = p1;
554 /* ./compiling//compiling_icode.nit:112 */
555 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
556 if (UNTAG_Bool(REGB0)) {
557 } else {
558 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 112);
559 }
560 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
561 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
562 if (UNTAG_Bool(REGB0)) {
563 /* ./compiling//compiling_icode.nit:113 */
564 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
565 if (UNTAG_Bool(REGB0)) {
566 } else {
567 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 113);
568 }
569 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
570 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
571 REGB0 = fra.me.REG[2];
572 goto label1;
573 } else {
574 /* ./compiling//compiling_icode.nit:115 */
575 REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
576 if (UNTAG_Bool(REGB1)) {
577 } else {
578 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 115);
579 }
580 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
581 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
582 REGB2 = TAG_Int(1);
583 /* ./../lib/standard//kernel.nit:215 */
584 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
585 /* ./compiling//compiling_icode.nit:116 */
586 REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
587 if (UNTAG_Bool(REGB1)) {
588 } else {
589 nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 116);
590 }
591 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
592 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2);
593 /* ./compiling//compiling_icode.nit:117 */
594 REGB0 = REGB2;
595 goto label1;
596 }
597 label1: while(0);
598 stack_frame_head = fra.me.prev;
599 return REGB0;
600 }
601 void compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){
602 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
603 val_t REGB0;
604 val_t tmp;
605 static val_t once_value_1; /* Once value */
606 static val_t once_value_2; /* Once value */
607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
608 fra.me.file = LOCATE_compiling_icode;
609 fra.me.line = 121;
610 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_label;
611 fra.me.has_broke = 0;
612 fra.me.REG_size = 4;
613 fra.me.REG[0] = NIT_NULL;
614 fra.me.REG[1] = NIT_NULL;
615 fra.me.REG[2] = NIT_NULL;
616 fra.me.REG[3] = NIT_NULL;
617 fra.me.REG[0] = p0;
618 fra.me.REG[1] = p1;
619 /* ./compiling//compiling_icode.nit:124 */
620 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
621 if (UNTAG_Bool(REGB0)) {
622 } else {
623 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 124);
624 }
625 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
626 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
627 if (UNTAG_Bool(REGB0)) {
628 /* ./compiling//compiling_icode.nit:125 */
629 REGB0 = TAG_Int(3);
630 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
631 if (!once_value_1) {
632 fra.me.REG[3] = BOX_NativeString("");
633 REGB0 = TAG_Int(0);
634 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
635 once_value_1 = fra.me.REG[3];
636 register_static_object(&once_value_1);
637 } else fra.me.REG[3] = once_value_1;
638 fra.me.REG[3] = fra.me.REG[3];
639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
640 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
641 if (UNTAG_Bool(REGB0)) {
642 } else {
643 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 125);
644 }
645 fra.me.REG[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
646 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
647 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
648 if (!once_value_2) {
649 fra.me.REG[1] = BOX_NativeString(": while(0);");
650 REGB0 = TAG_Int(11);
651 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
652 once_value_2 = fra.me.REG[1];
653 register_static_object(&once_value_2);
654 } else fra.me.REG[1] = once_value_2;
655 fra.me.REG[1] = fra.me.REG[1];
656 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
657 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
658 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
659 }
660 stack_frame_head = fra.me.prev;
661 return;
662 }
663 void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){
664 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
665 val_t REGB0;
666 val_t REGB1;
667 val_t tmp;
668 static val_t once_value_1; /* Once value */
669 static val_t once_value_2; /* Once value */
670 static val_t once_value_3; /* Once value */
671 static val_t once_value_4; /* Once value */
672 static val_t once_value_5; /* Once value */
673 static val_t once_value_6; /* Once value */
674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
675 fra.me.file = LOCATE_compiling_icode;
676 fra.me.line = 129;
677 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_goto;
678 fra.me.has_broke = 0;
679 fra.me.REG_size = 4;
680 fra.me.REG[0] = NIT_NULL;
681 fra.me.REG[1] = NIT_NULL;
682 fra.me.REG[2] = NIT_NULL;
683 fra.me.REG[3] = NIT_NULL;
684 fra.me.REG[0] = p0;
685 fra.me.REG[1] = p1;
686 /* ./compiling//compiling_icode.nit:132 */
687 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[0])(fra.me.REG[0]);
688 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
689 if (UNTAG_Bool(REGB0)) {
690 /* ./compiling//compiling_icode.nit:133 */
691 REGB0 = TAG_Int(3);
692 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
693 if (!once_value_1) {
694 fra.me.REG[3] = BOX_NativeString("goto ");
695 REGB0 = TAG_Int(5);
696 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
697 once_value_1 = fra.me.REG[3];
698 register_static_object(&once_value_1);
699 } else fra.me.REG[3] = once_value_1;
700 fra.me.REG[3] = fra.me.REG[3];
701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
702 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
703 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
704 if (!once_value_2) {
705 fra.me.REG[3] = BOX_NativeString(";");
706 REGB0 = TAG_Int(1);
707 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
708 once_value_2 = fra.me.REG[3];
709 register_static_object(&once_value_2);
710 } else fra.me.REG[3] = once_value_2;
711 fra.me.REG[3] = fra.me.REG[3];
712 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
713 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
714 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
715 } else {
716 /* ./compiling//compiling_icode.nit:135 */
717 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
718 if (UNTAG_Bool(REGB0)) {
719 } else {
720 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 135);
721 }
722 /* ./compiling//compiling_icode.nit:136 */
723 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
724 /* ./compiling//compiling_icode.nit:137 */
725 REGB1 = TAG_Int(3);
726 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB1);
727 if (!once_value_3) {
728 fra.me.REG[2] = BOX_NativeString("closctx->has_broke = ");
729 REGB1 = TAG_Int(21);
730 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
731 once_value_3 = fra.me.REG[2];
732 register_static_object(&once_value_3);
733 } else fra.me.REG[2] = once_value_3;
734 fra.me.REG[2] = fra.me.REG[2];
735 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
736 fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0);
737 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
738 if (!once_value_4) {
739 fra.me.REG[2] = BOX_NativeString(";");
740 REGB0 = TAG_Int(1);
741 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
742 once_value_4 = fra.me.REG[2];
743 register_static_object(&once_value_4);
744 } else fra.me.REG[2] = once_value_4;
745 fra.me.REG[2] = fra.me.REG[2];
746 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
747 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
748 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
749 /* ./compiling//compiling_icode.nit:138 */
750 REGB0 = TAG_Int(3);
751 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
752 if (!once_value_5) {
753 fra.me.REG[2] = BOX_NativeString("goto ");
754 REGB0 = TAG_Int(5);
755 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
756 once_value_5 = fra.me.REG[2];
757 register_static_object(&once_value_5);
758 } else fra.me.REG[2] = once_value_5;
759 fra.me.REG[2] = fra.me.REG[2];
760 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
761 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[0])(fra.me.REG[0]);
762 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
763 if (UNTAG_Bool(REGB0)) {
764 } else {
765 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 138);
766 }
767 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
768 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
769 if (!once_value_6) {
770 fra.me.REG[2] = BOX_NativeString(";");
771 REGB0 = TAG_Int(1);
772 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
773 once_value_6 = fra.me.REG[2];
774 register_static_object(&once_value_6);
775 } else fra.me.REG[2] = once_value_6;
776 fra.me.REG[2] = fra.me.REG[2];
777 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
778 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
779 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
780 }
781 stack_frame_head = fra.me.prev;
782 return;
783 }
784 val_t compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){
785 struct {struct stack_frame_t me;} fra;
786 val_t REGB0;
787 val_t tmp;
788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
789 fra.me.file = LOCATE_compiling_icode;
790 fra.me.line = 142;
791 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___marks_to_seq;
792 fra.me.has_broke = 0;
793 fra.me.REG_size = 1;
794 fra.me.REG[0] = NIT_NULL;
795 fra.me.REG[0] = p0;
796 /* ./compiling//compiling_icode.nit:142 */
797 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
798 if (UNTAG_Bool(REGB0)) {
799 } else {
800 nit_abort("Uninitialized attribute %s", "_marks_to_seq", LOCATE_compiling_icode, 142);
801 }
802 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]);
803 stack_frame_head = fra.me.prev;
804 return fra.me.REG[0];
805 }
806 val_t compiling_icode___I2CCompilerVisitor___closure(val_t p0){
807 struct {struct stack_frame_t me;} fra;
808 val_t REGB0;
809 val_t tmp;
810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
811 fra.me.file = LOCATE_compiling_icode;
812 fra.me.line = 145;
813 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___closure;
814 fra.me.has_broke = 0;
815 fra.me.REG_size = 1;
816 fra.me.REG[0] = NIT_NULL;
817 fra.me.REG[0] = p0;
818 /* ./compiling//compiling_icode.nit:145 */
819 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
820 if (UNTAG_Bool(REGB0)) {
821 } else {
822 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_compiling_icode, 145);
823 }
824 REGB0 = ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]);
825 stack_frame_head = fra.me.prev;
826 return REGB0;
827 }
828 void compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0, val_t p1){
829 struct {struct stack_frame_t me;} fra;
830 val_t REGB0;
831 val_t tmp;
832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
833 fra.me.file = LOCATE_compiling_icode;
834 fra.me.line = 145;
835 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___closure__eq;
836 fra.me.has_broke = 0;
837 fra.me.REG_size = 1;
838 fra.me.REG[0] = NIT_NULL;
839 fra.me.REG[0] = p0;
840 REGB0 = p1;
841 /* ./compiling//compiling_icode.nit:145 */
842 ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
843 stack_frame_head = fra.me.prev;
844 return;
845 }
846 val_t compiling_icode___I2CCompilerVisitor___visitor(val_t p0){
847 struct {struct stack_frame_t me;} fra;
848 val_t REGB0;
849 val_t tmp;
850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
851 fra.me.file = LOCATE_compiling_icode;
852 fra.me.line = 148;
853 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___visitor;
854 fra.me.has_broke = 0;
855 fra.me.REG_size = 1;
856 fra.me.REG[0] = NIT_NULL;
857 fra.me.REG[0] = p0;
858 /* ./compiling//compiling_icode.nit:148 */
859 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
860 if (UNTAG_Bool(REGB0)) {
861 } else {
862 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_compiling_icode, 148);
863 }
864 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]);
865 stack_frame_head = fra.me.prev;
866 return fra.me.REG[0];
867 }
868 val_t compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){
869 struct {struct stack_frame_t me;} fra;
870 val_t REGB0;
871 val_t tmp;
872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
873 fra.me.file = LOCATE_compiling_icode;
874 fra.me.line = 151;
875 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___iroutine;
876 fra.me.has_broke = 0;
877 fra.me.REG_size = 1;
878 fra.me.REG[0] = NIT_NULL;
879 fra.me.REG[0] = p0;
880 /* ./compiling//compiling_icode.nit:151 */
881 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
882 if (UNTAG_Bool(REGB0)) {
883 } else {
884 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_compiling_icode, 151);
885 }
886 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]);
887 stack_frame_head = fra.me.prev;
888 return fra.me.REG[0];
889 }
890 val_t compiling_icode___I2CCompilerVisitor___return_label(val_t p0){
891 struct {struct stack_frame_t me;} fra;
892 val_t tmp;
893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
894 fra.me.file = LOCATE_compiling_icode;
895 fra.me.line = 154;
896 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___return_label;
897 fra.me.has_broke = 0;
898 fra.me.REG_size = 1;
899 fra.me.REG[0] = NIT_NULL;
900 fra.me.REG[0] = p0;
901 /* ./compiling//compiling_icode.nit:154 */
902 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]);
903 stack_frame_head = fra.me.prev;
904 return fra.me.REG[0];
905 }
906 void compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0, val_t p1){
907 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
908 val_t tmp;
909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
910 fra.me.file = LOCATE_compiling_icode;
911 fra.me.line = 154;
912 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___return_label__eq;
913 fra.me.has_broke = 0;
914 fra.me.REG_size = 2;
915 fra.me.REG[0] = NIT_NULL;
916 fra.me.REG[1] = NIT_NULL;
917 fra.me.REG[0] = p0;
918 fra.me.REG[1] = p1;
919 /* ./compiling//compiling_icode.nit:154 */
920 ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
921 stack_frame_head = fra.me.prev;
922 return;
923 }
924 void compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t p1){
925 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
926 val_t tmp;
927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
928 fra.me.file = LOCATE_compiling_icode;
929 fra.me.line = 157;
930 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_decl;
931 fra.me.has_broke = 0;
932 fra.me.REG_size = 2;
933 fra.me.REG[0] = NIT_NULL;
934 fra.me.REG[1] = NIT_NULL;
935 fra.me.REG[0] = p0;
936 fra.me.REG[1] = p1;
937 /* ./compiling//compiling_icode.nit:159 */
938 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
939 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
940 stack_frame_head = fra.me.prev;
941 return;
942 }
943 val_t compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
944 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
945 val_t REGB0;
946 val_t REGB1;
947 val_t tmp;
948 static val_t once_value_1; /* Once value */
949 static val_t once_value_2; /* Once value */
950 static val_t once_value_3; /* Once value */
951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
952 fra.me.file = LOCATE_compiling_icode;
953 fra.me.line = 162;
954 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___new_instr;
955 fra.me.has_broke = 0;
956 fra.me.REG_size = 4;
957 fra.me.REG[0] = NIT_NULL;
958 fra.me.REG[1] = NIT_NULL;
959 fra.me.REG[2] = NIT_NULL;
960 fra.me.REG[3] = NIT_NULL;
961 fra.me.REG[0] = p0;
962 /* ./compiling//compiling_icode.nit:166 */
963 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
964 fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
965 /* ./compiling//compiling_icode.nit:167 */
966 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]);
967 /* ./compiling//compiling_icode.nit:168 */
968 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
969 if (UNTAG_Bool(REGB0)) {
970 } else {
971 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
972 if (UNTAG_Bool(REGB1)) {
973 REGB1 = TAG_Bool(false);
974 REGB0 = REGB1;
975 } else {
976 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
977 REGB0 = REGB1;
978 }
979 }
980 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
981 if (UNTAG_Bool(REGB0)) {
982 /* ./compiling//compiling_icode.nit:169 */
983 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
984 CALL_compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
985 /* ./compiling//compiling_icode.nit:170 */
986 if (!once_value_1) {
987 fra.me.REG[3] = BOX_NativeString("/* ");
988 REGB0 = TAG_Int(3);
989 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
990 once_value_1 = fra.me.REG[3];
991 register_static_object(&once_value_1);
992 } else fra.me.REG[3] = once_value_1;
993 fra.me.REG[3] = fra.me.REG[3];
994 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
995 /* ./compiling//compiling_icode.nit:171 */
996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
997 if (UNTAG_Bool(REGB0)) {
998 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 171);
999 }
1000 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1001 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1002 /* ./compiling//compiling_icode.nit:172 */
1003 if (!once_value_2) {
1004 fra.me.REG[3] = BOX_NativeString(":");
1005 REGB0 = TAG_Int(1);
1006 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1007 once_value_2 = fra.me.REG[3];
1008 register_static_object(&once_value_2);
1009 } else fra.me.REG[3] = once_value_2;
1010 fra.me.REG[3] = fra.me.REG[3];
1011 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1012 /* ./compiling//compiling_icode.nit:173 */
1013 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1014 if (UNTAG_Bool(REGB0)) {
1015 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 173);
1016 }
1017 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1018 fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0);
1019 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1020 /* ./compiling//compiling_icode.nit:174 */
1021 if (!once_value_3) {
1022 fra.me.REG[2] = BOX_NativeString(" */\n");
1023 REGB0 = TAG_Int(4);
1024 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1025 once_value_3 = fra.me.REG[2];
1026 register_static_object(&once_value_3);
1027 } else fra.me.REG[2] = once_value_3;
1028 fra.me.REG[2] = fra.me.REG[2];
1029 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1030 /* ./compiling//compiling_icode.nit:175 */
1031 ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL;
1032 }
1033 /* ./compiling//compiling_icode.nit:177 */
1034 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1035 CALL_compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1036 /* ./compiling//compiling_icode.nit:178 */
1037 goto label4;
1038 label4: while(0);
1039 stack_frame_head = fra.me.prev;
1040 return fra.me.REG[1];
1041 }
1042 void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){
1043 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1044 val_t REGB0;
1045 val_t tmp;
1046 static val_t once_value_1; /* Once value */
1047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1048 fra.me.file = LOCATE_compiling_icode;
1049 fra.me.line = 181;
1050 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_instr;
1051 fra.me.has_broke = 0;
1052 fra.me.REG_size = 2;
1053 fra.me.REG[0] = NIT_NULL;
1054 fra.me.REG[1] = NIT_NULL;
1055 fra.me.REG[0] = p0;
1056 fra.me.REG[1] = p1;
1057 /* ./compiling//compiling_icode.nit:183 */
1058 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]);
1059 fra.me.REG[1] = CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1060 if (!once_value_1) {
1061 fra.me.REG[0] = BOX_NativeString("\n");
1062 REGB0 = TAG_Int(1);
1063 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1064 once_value_1 = fra.me.REG[0];
1065 register_static_object(&once_value_1);
1066 } else fra.me.REG[0] = once_value_1;
1067 fra.me.REG[0] = fra.me.REG[0];
1068 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1069 stack_frame_head = fra.me.prev;
1070 return;
1071 }
1072 void compiling_icode___I2CCompilerVisitor___indent(val_t p0){
1073 struct {struct stack_frame_t me;} fra;
1074 val_t tmp;
1075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1076 fra.me.file = LOCATE_compiling_icode;
1077 fra.me.line = 186;
1078 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___indent;
1079 fra.me.has_broke = 0;
1080 fra.me.REG_size = 1;
1081 fra.me.REG[0] = NIT_NULL;
1082 fra.me.REG[0] = p0;
1083 /* ./compiling//compiling_icode.nit:188 */
1084 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1085 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]);
1086 stack_frame_head = fra.me.prev;
1087 return;
1088 }
1089 void compiling_icode___I2CCompilerVisitor___unindent(val_t p0){
1090 struct {struct stack_frame_t me;} fra;
1091 val_t tmp;
1092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1093 fra.me.file = LOCATE_compiling_icode;
1094 fra.me.line = 191;
1095 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___unindent;
1096 fra.me.has_broke = 0;
1097 fra.me.REG_size = 1;
1098 fra.me.REG[0] = NIT_NULL;
1099 fra.me.REG[0] = p0;
1100 /* ./compiling//compiling_icode.nit:193 */
1101 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1102 CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]);
1103 stack_frame_head = fra.me.prev;
1104 return;
1105 }
1106 void compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, val_t p2){
1107 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1108 val_t tmp;
1109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1110 fra.me.file = LOCATE_compiling_icode;
1111 fra.me.line = 196;
1112 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_assignment;
1113 fra.me.has_broke = 0;
1114 fra.me.REG_size = 3;
1115 fra.me.REG[0] = NIT_NULL;
1116 fra.me.REG[1] = NIT_NULL;
1117 fra.me.REG[2] = NIT_NULL;
1118 fra.me.REG[0] = p0;
1119 fra.me.REG[1] = p1;
1120 fra.me.REG[2] = p2;
1121 /* ./compiling//compiling_icode.nit:198 */
1122 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1123 CALL_compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1124 stack_frame_head = fra.me.prev;
1125 return;
1126 }
1127 void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){
1128 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1129 val_t REGB0;
1130 val_t REGB1;
1131 val_t REGB2;
1132 val_t tmp;
1133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1134 fra.me.file = LOCATE_compiling_icode;
1135 fra.me.line = 204;
1136 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_location;
1137 fra.me.has_broke = 0;
1138 fra.me.REG_size = 5;
1139 fra.me.REG[0] = NIT_NULL;
1140 fra.me.REG[1] = NIT_NULL;
1141 fra.me.REG[2] = NIT_NULL;
1142 fra.me.REG[3] = NIT_NULL;
1143 fra.me.REG[4] = NIT_NULL;
1144 fra.me.REG[0] = p0;
1145 fra.me.REG[1] = p1;
1146 /* ./compiling//compiling_icode.nit:208 */
1147 fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]);
1148 /* ./compiling//compiling_icode.nit:209 */
1149 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1150 if (UNTAG_Bool(REGB0)) {
1151 } else {
1152 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1153 if (UNTAG_Bool(REGB1)) {
1154 REGB1 = TAG_Bool(false);
1155 REGB0 = REGB1;
1156 } else {
1157 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1158 REGB0 = REGB1;
1159 }
1160 }
1161 if (UNTAG_Bool(REGB0)) {
1162 REGB0 = TAG_Bool(true);
1163 } else {
1164 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1165 if (UNTAG_Bool(REGB1)) {
1166 } else {
1167 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1168 if (UNTAG_Bool(REGB2)) {
1169 REGB2 = TAG_Bool(false);
1170 REGB1 = REGB2;
1171 } else {
1172 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1173 REGB1 = REGB2;
1174 }
1175 }
1176 REGB0 = REGB1;
1177 }
1178 if (UNTAG_Bool(REGB0)) {
1179 goto label1;
1180 }
1181 /* ./compiling//compiling_icode.nit:210 */
1182 ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
1183 /* ./compiling//compiling_icode.nit:211 */
1184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1185 if (UNTAG_Bool(REGB0)) {
1186 } else {
1187 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1188 if (UNTAG_Bool(REGB1)) {
1189 REGB1 = TAG_Bool(false);
1190 REGB0 = REGB1;
1191 } else {
1192 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1193 REGB0 = REGB1;
1194 }
1195 }
1196 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1197 if (UNTAG_Bool(REGB0)) {
1198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1199 if (UNTAG_Bool(REGB0)) {
1200 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211);
1201 }
1202 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1203 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1204 if (UNTAG_Bool(REGB0)) {
1205 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211);
1206 }
1207 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]);
1208 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1209 if (UNTAG_Bool(REGB0)) {
1210 } else {
1211 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1212 REGB0 = REGB1;
1213 }
1214 } else {
1215 REGB1 = TAG_Bool(false);
1216 REGB0 = REGB1;
1217 }
1218 if (UNTAG_Bool(REGB0)) {
1219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1220 if (UNTAG_Bool(REGB0)) {
1221 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211);
1222 }
1223 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1224 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1225 if (UNTAG_Bool(REGB1)) {
1226 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211);
1227 }
1228 REGB1 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]);
1229 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1230 if (UNTAG_Bool(REGB2)) {
1231 } else {
1232 /* ./../lib/standard//kernel.nit:207 */
1233 REGB1 = TAG_Bool((REGB0)==(REGB1));
1234 /* ./compiling//compiling_icode.nit:211 */
1235 REGB2 = REGB1;
1236 }
1237 } else {
1238 REGB1 = TAG_Bool(false);
1239 REGB2 = REGB1;
1240 }
1241 if (UNTAG_Bool(REGB2)) {
1242 /* ./compiling//compiling_icode.nit:212 */
1243 goto label1;
1244 } else {
1245 /* ./compiling//compiling_icode.nit:214 */
1246 ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
1247 }
1248 label1: while(0);
1249 stack_frame_head = fra.me.prev;
1250 return;
1251 }
1252 val_t compiling_icode___I2CCompilerVisitor___basecname(val_t p0){
1253 struct {struct stack_frame_t me;} fra;
1254 val_t REGB0;
1255 val_t tmp;
1256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1257 fra.me.file = LOCATE_compiling_icode;
1258 fra.me.line = 218;
1259 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___basecname;
1260 fra.me.has_broke = 0;
1261 fra.me.REG_size = 1;
1262 fra.me.REG[0] = NIT_NULL;
1263 fra.me.REG[0] = p0;
1264 /* ./compiling//compiling_icode.nit:218 */
1265 REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
1266 if (UNTAG_Bool(REGB0)) {
1267 } else {
1268 nit_abort("Uninitialized attribute %s", "_basecname", LOCATE_compiling_icode, 218);
1269 }
1270 fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]);
1271 stack_frame_head = fra.me.prev;
1272 return fra.me.REG[0];
1273 }
1274 void compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1275 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_I2CCompilerVisitor].i;
1276 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1277 val_t tmp;
1278 if (init_table[itpos0]) return;
1279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1280 fra.me.file = LOCATE_compiling_icode;
1281 fra.me.line = 221;
1282 fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___init;
1283 fra.me.has_broke = 0;
1284 fra.me.REG_size = 4;
1285 fra.me.REG[0] = NIT_NULL;
1286 fra.me.REG[1] = NIT_NULL;
1287 fra.me.REG[2] = NIT_NULL;
1288 fra.me.REG[3] = NIT_NULL;
1289 fra.me.REG[0] = p0;
1290 fra.me.REG[1] = p1;
1291 fra.me.REG[2] = p2;
1292 fra.me.REG[3] = p3;
1293 /* ./compiling//compiling_icode.nit:223 */
1294 ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1];
1295 /* ./compiling//compiling_icode.nit:224 */
1296 ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2];
1297 /* ./compiling//compiling_icode.nit:225 */
1298 ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3];
1299 stack_frame_head = fra.me.prev;
1300 init_table[itpos0] = 1;
1301 return;
1302 }
1303 val_t 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){
1304 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
1305 val_t REGB0;
1306 val_t REGB1;
1307 val_t REGB2;
1308 val_t REGB3;
1309 val_t REGB4;
1310 val_t REGB5;
1311 val_t tmp;
1312 static val_t once_value_1; /* Once value */
1313 static val_t once_value_2; /* Once value */
1314 static val_t once_value_3; /* Once value */
1315 static val_t once_value_4; /* Once value */
1316 static val_t once_value_6; /* Once value */
1317 static val_t once_value_7; /* Once value */
1318 static val_t once_value_8; /* Once value */
1319 static val_t once_value_9; /* Once value */
1320 static val_t once_value_10; /* Once value */
1321 static val_t once_value_11; /* Once value */
1322 static val_t once_value_13; /* Once value */
1323 static val_t once_value_14; /* Once value */
1324 static val_t once_value_15; /* Once value */
1325 static val_t once_value_16; /* Once value */
1326 static val_t once_value_17; /* Once value */
1327 static val_t once_value_18; /* Once value */
1328 static val_t once_value_19; /* Once value */
1329 static val_t once_value_20; /* Once value */
1330 static val_t once_value_21; /* Once value */
1331 static val_t once_value_22; /* Once value */
1332 static val_t once_value_23; /* Once value */
1333 static val_t once_value_25; /* Once value */
1334 static val_t once_value_26; /* Once value */
1335 static val_t once_value_27; /* Once value */
1336 static val_t once_value_28; /* Once value */
1337 static val_t once_value_29; /* Once value */
1338 static val_t once_value_30; /* Once value */
1339 static val_t once_value_31; /* Once value */
1340 static val_t once_value_32; /* Once value */
1341 static val_t once_value_33; /* Once value */
1342 static val_t once_value_34; /* Once value */
1343 static val_t once_value_35; /* Once value */
1344 static val_t once_value_36; /* Once value */
1345 static val_t once_value_37; /* Once value */
1346 static val_t once_value_38; /* Once value */
1347 static val_t once_value_39; /* Once value */
1348 static val_t once_value_40; /* Once value */
1349 static val_t once_value_41; /* Once value */
1350 static val_t once_value_42; /* Once value */
1351 static val_t once_value_43; /* Once value */
1352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1353 fra.me.file = LOCATE_compiling_icode;
1354 fra.me.line = 230;
1355 fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_signature_to_c;
1356 fra.me.has_broke = 0;
1357 fra.me.REG_size = 12;
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[4] = NIT_NULL;
1363 fra.me.REG[5] = NIT_NULL;
1364 fra.me.REG[6] = NIT_NULL;
1365 fra.me.REG[7] = NIT_NULL;
1366 fra.me.REG[8] = NIT_NULL;
1367 fra.me.REG[9] = NIT_NULL;
1368 fra.me.REG[10] = NIT_NULL;
1369 fra.me.REG[11] = NIT_NULL;
1370 fra.me.REG[0] = p0;
1371 fra.me.REG[1] = p1;
1372 fra.me.REG[2] = p2;
1373 fra.me.REG[3] = p3;
1374 fra.me.REG[4] = p4;
1375 fra.me.REG[5] = p5;
1376 /* ./compiling//compiling_icode.nit:236 */
1377 fra.me.REG[6] = NEW_Array_array___Array___init();
1378 /* ./compiling//compiling_icode.nit:237 */
1379 fra.me.REG[7] = NEW_Array_array___Array___init();
1380 /* ./compiling//compiling_icode.nit:238 */
1381 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1382 if (UNTAG_Bool(REGB0)) {
1383 } else {
1384 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1385 if (UNTAG_Bool(REGB1)) {
1386 REGB1 = TAG_Bool(false);
1387 REGB0 = REGB1;
1388 } else {
1389 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1390 REGB0 = REGB1;
1391 }
1392 }
1393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1394 if (UNTAG_Bool(REGB0)) {
1395 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1396 }
1397 /* ./compiling//compiling_icode.nit:239 */
1398 REGB0 = TAG_Int(0);
1399 fra.me.REG[4] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
1400 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1401 /* ./../lib/standard//kernel.nit:332 */
1402 while(1) {
1403 /* ./../lib/standard//kernel.nit:212 */
1404 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1405 /* ./../lib/standard//kernel.nit:332 */
1406 if (UNTAG_Bool(REGB2)) {
1407 /* ./compiling//compiling_icode.nit:239 */
1408 REGB2 = REGB0;
1409 /* ./compiling//compiling_icode.nit:240 */
1410 REGB3 = TAG_Int(3);
1411 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB3);
1412 if (!once_value_1) {
1413 fra.me.REG[8] = BOX_NativeString("p");
1414 REGB3 = TAG_Int(1);
1415 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1416 once_value_1 = fra.me.REG[8];
1417 register_static_object(&once_value_1);
1418 } else fra.me.REG[8] = once_value_1;
1419 fra.me.REG[8] = fra.me.REG[8];
1420 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1421 fra.me.REG[8] = CALL_string___Object___to_s(REGB2)(REGB2);
1422 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1423 if (!once_value_2) {
1424 fra.me.REG[8] = BOX_NativeString("");
1425 REGB3 = TAG_Int(0);
1426 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1427 once_value_2 = fra.me.REG[8];
1428 register_static_object(&once_value_2);
1429 } else fra.me.REG[8] = once_value_2;
1430 fra.me.REG[8] = fra.me.REG[8];
1431 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1432 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1433 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1434 /* ./compiling//compiling_icode.nit:241 */
1435 REGB3 = TAG_Int(3);
1436 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB3);
1437 if (!once_value_3) {
1438 fra.me.REG[8] = BOX_NativeString("val_t p");
1439 REGB3 = TAG_Int(7);
1440 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1441 once_value_3 = fra.me.REG[8];
1442 register_static_object(&once_value_3);
1443 } else fra.me.REG[8] = once_value_3;
1444 fra.me.REG[8] = fra.me.REG[8];
1445 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1446 fra.me.REG[8] = CALL_string___Object___to_s(REGB2)(REGB2);
1447 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1448 if (!once_value_4) {
1449 fra.me.REG[8] = BOX_NativeString("");
1450 REGB2 = TAG_Int(0);
1451 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB2);
1452 once_value_4 = fra.me.REG[8];
1453 register_static_object(&once_value_4);
1454 } else fra.me.REG[8] = once_value_4;
1455 fra.me.REG[8] = fra.me.REG[8];
1456 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1457 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1458 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1459 /* ./../lib/standard//kernel.nit:334 */
1460 REGB2 = TAG_Int(1);
1461 /* ./../lib/standard//kernel.nit:215 */
1462 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1463 /* ./../lib/standard//kernel.nit:334 */
1464 REGB0 = REGB2;
1465 } else {
1466 /* ./../lib/standard//kernel.nit:332 */
1467 goto label5;
1468 }
1469 }
1470 label5: while(0);
1471 /* ./compiling//compiling_icode.nit:243 */
1472 fra.me.REG[4] = CALL_icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1473 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1474 if (UNTAG_Bool(REGB0)) {
1475 } else {
1476 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1477 if (UNTAG_Bool(REGB1)) {
1478 REGB1 = TAG_Bool(false);
1479 REGB0 = REGB1;
1480 } else {
1481 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1482 REGB0 = REGB1;
1483 }
1484 }
1485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1486 if (UNTAG_Bool(REGB0)) {
1487 /* ./compiling//compiling_icode.nit:244 */
1488 if (!once_value_6) {
1489 fra.me.REG[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
1490 REGB0 = TAG_Int(35);
1491 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
1492 once_value_6 = fra.me.REG[4];
1493 register_static_object(&once_value_6);
1494 } else fra.me.REG[4] = once_value_6;
1495 fra.me.REG[4] = fra.me.REG[4];
1496 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1497 /* ./compiling//compiling_icode.nit:245 */
1498 REGB0 = TAG_Int(0);
1499 fra.me.REG[4] = CALL_icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1500 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1501 if (UNTAG_Bool(REGB1)) {
1502 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 245);
1503 }
1504 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1505 /* ./../lib/standard//kernel.nit:332 */
1506 while(1) {
1507 /* ./../lib/standard//kernel.nit:212 */
1508 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1509 /* ./../lib/standard//kernel.nit:332 */
1510 if (UNTAG_Bool(REGB2)) {
1511 /* ./compiling//compiling_icode.nit:245 */
1512 REGB2 = REGB0;
1513 /* ./compiling//compiling_icode.nit:246 */
1514 REGB3 = TAG_Int(5);
1515 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB3);
1516 if (!once_value_7) {
1517 fra.me.REG[8] = BOX_NativeString("CLOS_");
1518 REGB3 = TAG_Int(5);
1519 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1520 once_value_7 = fra.me.REG[8];
1521 register_static_object(&once_value_7);
1522 } else fra.me.REG[8] = once_value_7;
1523 fra.me.REG[8] = fra.me.REG[8];
1524 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1525 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1526 if (!once_value_8) {
1527 fra.me.REG[8] = BOX_NativeString("_");
1528 REGB3 = TAG_Int(1);
1529 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1530 once_value_8 = fra.me.REG[8];
1531 register_static_object(&once_value_8);
1532 } else fra.me.REG[8] = once_value_8;
1533 fra.me.REG[8] = fra.me.REG[8];
1534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1535 fra.me.REG[8] = CALL_string___Object___to_s(REGB2)(REGB2);
1536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1537 if (!once_value_9) {
1538 fra.me.REG[8] = BOX_NativeString("");
1539 REGB3 = TAG_Int(0);
1540 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1541 once_value_9 = fra.me.REG[8];
1542 register_static_object(&once_value_9);
1543 } else fra.me.REG[8] = once_value_9;
1544 fra.me.REG[8] = fra.me.REG[8];
1545 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1546 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1547 /* ./compiling//compiling_icode.nit:247 */
1548 fra.me.REG[8] = CALL_icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1549 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1550 if (UNTAG_Bool(REGB3)) {
1551 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 247);
1552 }
1553 fra.me.REG[8] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB2);
1554 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1555 if (UNTAG_Bool(REGB3)) {
1556 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 247);
1557 }
1558 fra.me.REG[8] = CALL_icode_base___IClosureDecl___closure(fra.me.REG[8])(fra.me.REG[8]);
1559 fra.me.REG[8] = CALL_static_type___MMClosure___signature(fra.me.REG[8])(fra.me.REG[8]);
1560 /* ./compiling//compiling_icode.nit:248 */
1561 fra.me.REG[9] = NEW_Array_array___Array___init();
1562 /* ./compiling//compiling_icode.nit:249 */
1563 if (!once_value_10) {
1564 fra.me.REG[10] = BOX_NativeString("struct stack_frame_t *");
1565 REGB3 = TAG_Int(22);
1566 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB3);
1567 once_value_10 = fra.me.REG[10];
1568 register_static_object(&once_value_10);
1569 } else fra.me.REG[10] = once_value_10;
1570 fra.me.REG[10] = fra.me.REG[10];
1571 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1572 /* ./compiling//compiling_icode.nit:250 */
1573 REGB3 = TAG_Int(0);
1574 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
1575 /* ./../lib/standard//kernel.nit:332 */
1576 while(1) {
1577 /* ./../lib/standard//kernel.nit:212 */
1578 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1579 /* ./../lib/standard//kernel.nit:332 */
1580 if (UNTAG_Bool(REGB5)) {
1581 /* ./compiling//compiling_icode.nit:251 */
1582 if (!once_value_11) {
1583 fra.me.REG[10] = BOX_NativeString("val_t");
1584 REGB5 = TAG_Int(5);
1585 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
1586 once_value_11 = fra.me.REG[10];
1587 register_static_object(&once_value_11);
1588 } else fra.me.REG[10] = once_value_11;
1589 fra.me.REG[10] = fra.me.REG[10];
1590 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1591 /* ./../lib/standard//kernel.nit:334 */
1592 REGB5 = TAG_Int(1);
1593 /* ./../lib/standard//kernel.nit:215 */
1594 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1595 /* ./../lib/standard//kernel.nit:334 */
1596 REGB3 = REGB5;
1597 } else {
1598 /* ./../lib/standard//kernel.nit:332 */
1599 goto label12;
1600 }
1601 }
1602 label12: while(0);
1603 /* ./compiling//compiling_icode.nit:253 */
1604 if (!once_value_13) {
1605 fra.me.REG[10] = BOX_NativeString("void");
1606 REGB3 = TAG_Int(4);
1607 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB3);
1608 once_value_13 = fra.me.REG[10];
1609 register_static_object(&once_value_13);
1610 } else fra.me.REG[10] = once_value_13;
1611 fra.me.REG[10] = fra.me.REG[10];
1612 /* ./compiling//compiling_icode.nit:254 */
1613 fra.me.REG[8] = CALL_static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
1614 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1615 if (UNTAG_Bool(REGB3)) {
1616 } else {
1617 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1618 if (UNTAG_Bool(REGB4)) {
1619 REGB4 = TAG_Bool(false);
1620 REGB3 = REGB4;
1621 } else {
1622 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
1623 REGB3 = REGB4;
1624 }
1625 }
1626 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
1627 if (UNTAG_Bool(REGB3)) {
1628 if (!once_value_14) {
1629 fra.me.REG[8] = BOX_NativeString("val_t");
1630 REGB3 = TAG_Int(5);
1631 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB3);
1632 once_value_14 = fra.me.REG[8];
1633 register_static_object(&once_value_14);
1634 } else fra.me.REG[8] = once_value_14;
1635 fra.me.REG[8] = fra.me.REG[8];
1636 fra.me.REG[10] = fra.me.REG[8];
1637 }
1638 /* ./compiling//compiling_icode.nit:255 */
1639 REGB3 = TAG_Int(7);
1640 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB3);
1641 if (!once_value_15) {
1642 fra.me.REG[11] = BOX_NativeString("typedef ");
1643 REGB3 = TAG_Int(8);
1644 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
1645 once_value_15 = fra.me.REG[11];
1646 register_static_object(&once_value_15);
1647 } else fra.me.REG[11] = once_value_15;
1648 fra.me.REG[11] = fra.me.REG[11];
1649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
1650 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1651 if (!once_value_16) {
1652 fra.me.REG[10] = BOX_NativeString(" (*");
1653 REGB3 = TAG_Int(3);
1654 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB3);
1655 once_value_16 = fra.me.REG[10];
1656 register_static_object(&once_value_16);
1657 } else fra.me.REG[10] = once_value_16;
1658 fra.me.REG[10] = fra.me.REG[10];
1659 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1660 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1661 if (!once_value_17) {
1662 fra.me.REG[4] = BOX_NativeString(")(");
1663 REGB3 = TAG_Int(2);
1664 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1665 once_value_17 = fra.me.REG[4];
1666 register_static_object(&once_value_17);
1667 } else fra.me.REG[4] = once_value_17;
1668 fra.me.REG[4] = fra.me.REG[4];
1669 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1670 if (!once_value_18) {
1671 fra.me.REG[4] = BOX_NativeString(", ");
1672 REGB3 = TAG_Int(2);
1673 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1674 once_value_18 = fra.me.REG[4];
1675 register_static_object(&once_value_18);
1676 } else fra.me.REG[4] = once_value_18;
1677 fra.me.REG[4] = fra.me.REG[4];
1678 fra.me.REG[4] = CALL_string___Collection___join(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[4]);
1679 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1680 if (!once_value_19) {
1681 fra.me.REG[4] = BOX_NativeString(");");
1682 REGB3 = TAG_Int(2);
1683 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1684 once_value_19 = fra.me.REG[4];
1685 register_static_object(&once_value_19);
1686 } else fra.me.REG[4] = once_value_19;
1687 fra.me.REG[4] = fra.me.REG[4];
1688 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1689 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1690 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1691 /* ./compiling//compiling_icode.nit:256 */
1692 REGB3 = TAG_Int(3);
1693 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB3);
1694 if (!once_value_20) {
1695 fra.me.REG[4] = BOX_NativeString("clos_fun");
1696 REGB3 = TAG_Int(8);
1697 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1698 once_value_20 = fra.me.REG[4];
1699 register_static_object(&once_value_20);
1700 } else fra.me.REG[4] = once_value_20;
1701 fra.me.REG[4] = fra.me.REG[4];
1702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1703 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
1704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1705 if (!once_value_21) {
1706 fra.me.REG[4] = BOX_NativeString("");
1707 REGB3 = TAG_Int(0);
1708 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1709 once_value_21 = fra.me.REG[4];
1710 register_static_object(&once_value_21);
1711 } else fra.me.REG[4] = once_value_21;
1712 fra.me.REG[4] = fra.me.REG[4];
1713 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1714 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1715 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1716 /* ./compiling//compiling_icode.nit:257 */
1717 REGB3 = TAG_Int(3);
1718 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB3);
1719 if (!once_value_22) {
1720 fra.me.REG[4] = BOX_NativeString("fun_t clos_fun");
1721 REGB3 = TAG_Int(14);
1722 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
1723 once_value_22 = fra.me.REG[4];
1724 register_static_object(&once_value_22);
1725 } else fra.me.REG[4] = once_value_22;
1726 fra.me.REG[4] = fra.me.REG[4];
1727 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1728 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
1729 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1730 if (!once_value_23) {
1731 fra.me.REG[4] = BOX_NativeString("");
1732 REGB2 = TAG_Int(0);
1733 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
1734 once_value_23 = fra.me.REG[4];
1735 register_static_object(&once_value_23);
1736 } else fra.me.REG[4] = once_value_23;
1737 fra.me.REG[4] = fra.me.REG[4];
1738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1739 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1740 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1741 /* ./../lib/standard//kernel.nit:334 */
1742 REGB2 = TAG_Int(1);
1743 /* ./../lib/standard//kernel.nit:215 */
1744 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1745 /* ./../lib/standard//kernel.nit:334 */
1746 REGB0 = REGB2;
1747 } else {
1748 /* ./../lib/standard//kernel.nit:332 */
1749 goto label24;
1750 }
1751 }
1752 label24: while(0);
1753 }
1754 /* ./compiling//compiling_icode.nit:260 */
1755 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1756 if (UNTAG_Bool(REGB0)) {
1757 } else {
1758 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1759 if (UNTAG_Bool(REGB1)) {
1760 REGB1 = TAG_Bool(false);
1761 REGB0 = REGB1;
1762 } else {
1763 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
1764 REGB0 = REGB1;
1765 }
1766 }
1767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1768 if (UNTAG_Bool(REGB0)) {
1769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
1770 }
1771 /* ./compiling//compiling_icode.nit:261 */
1772 if (!once_value_25) {
1773 fra.me.REG[5] = BOX_NativeString("void");
1774 REGB0 = TAG_Int(4);
1775 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1776 once_value_25 = fra.me.REG[5];
1777 register_static_object(&once_value_25);
1778 } else fra.me.REG[5] = once_value_25;
1779 fra.me.REG[5] = fra.me.REG[5];
1780 /* ./compiling//compiling_icode.nit:262 */
1781 fra.me.REG[0] = CALL_icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
1782 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1783 if (UNTAG_Bool(REGB0)) {
1784 } else {
1785 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1786 if (UNTAG_Bool(REGB1)) {
1787 REGB1 = TAG_Bool(false);
1788 REGB0 = REGB1;
1789 } else {
1790 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1791 REGB0 = REGB1;
1792 }
1793 }
1794 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1795 if (UNTAG_Bool(REGB0)) {
1796 if (!once_value_26) {
1797 fra.me.REG[0] = BOX_NativeString("val_t");
1798 REGB0 = TAG_Int(5);
1799 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1800 once_value_26 = fra.me.REG[0];
1801 register_static_object(&once_value_26);
1802 } else fra.me.REG[0] = once_value_26;
1803 fra.me.REG[0] = fra.me.REG[0];
1804 fra.me.REG[5] = fra.me.REG[0];
1805 }
1806 /* ./compiling//compiling_icode.nit:264 */
1807 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
1808 if (UNTAG_Bool(REGB0)) {
1809 /* ./compiling//compiling_icode.nit:265 */
1810 if (!once_value_27) {
1811 fra.me.REG[0] = BOX_NativeString("void");
1812 REGB0 = TAG_Int(4);
1813 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1814 once_value_27 = fra.me.REG[0];
1815 register_static_object(&once_value_27);
1816 } else fra.me.REG[0] = once_value_27;
1817 fra.me.REG[0] = fra.me.REG[0];
1818 } else {
1819 /* ./compiling//compiling_icode.nit:267 */
1820 if (!once_value_28) {
1821 fra.me.REG[8] = BOX_NativeString(", ");
1822 REGB0 = TAG_Int(2);
1823 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
1824 once_value_28 = fra.me.REG[8];
1825 register_static_object(&once_value_28);
1826 } else fra.me.REG[8] = once_value_28;
1827 fra.me.REG[8] = fra.me.REG[8];
1828 fra.me.REG[8] = CALL_string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1829 fra.me.REG[0] = fra.me.REG[8];
1830 }
1831 /* ./compiling//compiling_icode.nit:269 */
1832 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1833 if (UNTAG_Bool(REGB0)) {
1834 } else {
1835 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1836 if (UNTAG_Bool(REGB1)) {
1837 REGB1 = TAG_Bool(false);
1838 REGB0 = REGB1;
1839 } else {
1840 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1841 REGB0 = REGB1;
1842 }
1843 }
1844 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1845 if (UNTAG_Bool(REGB0)) {
1846 REGB0 = TAG_Int(5);
1847 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
1848 if (!once_value_29) {
1849 fra.me.REG[7] = BOX_NativeString("static const char * const LOCATE_");
1850 REGB0 = TAG_Int(33);
1851 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
1852 once_value_29 = fra.me.REG[7];
1853 register_static_object(&once_value_29);
1854 } else fra.me.REG[7] = once_value_29;
1855 fra.me.REG[7] = fra.me.REG[7];
1856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1857 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1858 if (!once_value_30) {
1859 fra.me.REG[7] = BOX_NativeString(" = \"");
1860 REGB0 = TAG_Int(4);
1861 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
1862 once_value_30 = fra.me.REG[7];
1863 register_static_object(&once_value_30);
1864 } else fra.me.REG[7] = once_value_30;
1865 fra.me.REG[7] = fra.me.REG[7];
1866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1867 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1868 if (!once_value_31) {
1869 fra.me.REG[3] = BOX_NativeString("\";");
1870 REGB0 = TAG_Int(2);
1871 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1872 once_value_31 = fra.me.REG[3];
1873 register_static_object(&once_value_31);
1874 } else fra.me.REG[3] = once_value_31;
1875 fra.me.REG[3] = fra.me.REG[3];
1876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1877 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1878 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1879 }
1880 /* ./compiling//compiling_icode.nit:270 */
1881 REGB0 = TAG_Int(7);
1882 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
1883 if (!once_value_32) {
1884 fra.me.REG[3] = BOX_NativeString("");
1885 REGB0 = TAG_Int(0);
1886 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1887 once_value_32 = fra.me.REG[3];
1888 register_static_object(&once_value_32);
1889 } else fra.me.REG[3] = once_value_32;
1890 fra.me.REG[3] = fra.me.REG[3];
1891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1892 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1893 if (!once_value_33) {
1894 fra.me.REG[3] = BOX_NativeString(" ");
1895 REGB0 = TAG_Int(1);
1896 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1897 once_value_33 = fra.me.REG[3];
1898 register_static_object(&once_value_33);
1899 } else fra.me.REG[3] = once_value_33;
1900 fra.me.REG[3] = fra.me.REG[3];
1901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1902 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1903 if (!once_value_34) {
1904 fra.me.REG[3] = BOX_NativeString("(");
1905 REGB0 = TAG_Int(1);
1906 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1907 once_value_34 = fra.me.REG[3];
1908 register_static_object(&once_value_34);
1909 } else fra.me.REG[3] = once_value_34;
1910 fra.me.REG[3] = fra.me.REG[3];
1911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1912 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
1913 if (!once_value_35) {
1914 fra.me.REG[3] = BOX_NativeString(");");
1915 REGB0 = TAG_Int(2);
1916 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1917 once_value_35 = fra.me.REG[3];
1918 register_static_object(&once_value_35);
1919 } else fra.me.REG[3] = once_value_35;
1920 fra.me.REG[3] = fra.me.REG[3];
1921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1922 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1923 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1924 /* ./compiling//compiling_icode.nit:271 */
1925 REGB0 = TAG_Int(7);
1926 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
1927 if (!once_value_36) {
1928 fra.me.REG[3] = BOX_NativeString("typedef ");
1929 REGB0 = TAG_Int(8);
1930 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1931 once_value_36 = fra.me.REG[3];
1932 register_static_object(&once_value_36);
1933 } else fra.me.REG[3] = once_value_36;
1934 fra.me.REG[3] = fra.me.REG[3];
1935 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1937 if (!once_value_37) {
1938 fra.me.REG[3] = BOX_NativeString(" (*");
1939 REGB0 = TAG_Int(3);
1940 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1941 once_value_37 = fra.me.REG[3];
1942 register_static_object(&once_value_37);
1943 } else fra.me.REG[3] = once_value_37;
1944 fra.me.REG[3] = fra.me.REG[3];
1945 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1946 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1947 if (!once_value_38) {
1948 fra.me.REG[3] = BOX_NativeString("_t)(");
1949 REGB0 = TAG_Int(4);
1950 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1951 once_value_38 = fra.me.REG[3];
1952 register_static_object(&once_value_38);
1953 } else fra.me.REG[3] = once_value_38;
1954 fra.me.REG[3] = fra.me.REG[3];
1955 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
1957 if (!once_value_39) {
1958 fra.me.REG[3] = BOX_NativeString(");");
1959 REGB0 = TAG_Int(2);
1960 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1961 once_value_39 = fra.me.REG[3];
1962 register_static_object(&once_value_39);
1963 } else fra.me.REG[3] = once_value_39;
1964 fra.me.REG[3] = fra.me.REG[3];
1965 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1966 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1967 CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1968 /* ./compiling//compiling_icode.nit:272 */
1969 REGB0 = TAG_Int(7);
1970 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
1971 if (!once_value_40) {
1972 fra.me.REG[3] = BOX_NativeString("");
1973 REGB0 = TAG_Int(0);
1974 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1975 once_value_40 = fra.me.REG[3];
1976 register_static_object(&once_value_40);
1977 } else fra.me.REG[3] = once_value_40;
1978 fra.me.REG[3] = fra.me.REG[3];
1979 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1980 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1981 if (!once_value_41) {
1982 fra.me.REG[5] = BOX_NativeString(" ");
1983 REGB0 = TAG_Int(1);
1984 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1985 once_value_41 = fra.me.REG[5];
1986 register_static_object(&once_value_41);
1987 } else fra.me.REG[5] = once_value_41;
1988 fra.me.REG[5] = fra.me.REG[5];
1989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1990 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1991 if (!once_value_42) {
1992 fra.me.REG[2] = BOX_NativeString("(");
1993 REGB0 = TAG_Int(1);
1994 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1995 once_value_42 = fra.me.REG[2];
1996 register_static_object(&once_value_42);
1997 } else fra.me.REG[2] = once_value_42;
1998 fra.me.REG[2] = fra.me.REG[2];
1999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2000 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2001 if (!once_value_43) {
2002 fra.me.REG[0] = BOX_NativeString("){");
2003 REGB0 = TAG_Int(2);
2004 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2005 once_value_43 = fra.me.REG[0];
2006 register_static_object(&once_value_43);
2007 } else fra.me.REG[0] = once_value_43;
2008 fra.me.REG[0] = fra.me.REG[0];
2009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2010 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2011 CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2012 /* ./compiling//compiling_icode.nit:273 */
2013 CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
2014 /* ./compiling//compiling_icode.nit:274 */
2015 goto label44;
2016 label44: while(0);
2017 stack_frame_head = fra.me.prev;
2018 return fra.me.REG[6];
2019 }
2020 val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t p2){
2021 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2022 val_t REGB0;
2023 val_t REGB1;
2024 val_t REGB2;
2025 val_t REGB3;
2026 val_t REGB4;
2027 val_t REGB5;
2028 val_t tmp;
2029 static val_t once_value_1; /* Once value */
2030 static val_t once_value_2; /* Once value */
2031 static val_t once_value_3; /* Once value */
2032 static val_t once_value_4; /* Once value */
2033 static val_t once_value_5; /* Once value */
2034 static val_t once_value_6; /* Once value */
2035 static val_t once_value_7; /* Once value */
2036 static val_t once_value_8; /* Once value */
2037 static val_t once_value_9; /* Once value */
2038 static val_t once_value_10; /* Once value */
2039 static val_t once_value_11; /* Once value */
2040 static val_t once_value_12; /* Once value */
2041 static val_t once_value_13; /* Once value */
2042 static val_t once_value_14; /* Once value */
2043 static val_t once_value_15; /* Once value */
2044 static val_t once_value_17; /* Once value */
2045 static val_t once_value_18; /* Once value */
2046 static val_t once_value_20; /* Once value */
2047 static val_t once_value_21; /* Once value */
2048 static val_t once_value_22; /* Once value */
2049 static val_t once_value_23; /* Once value */
2050 static val_t once_value_26; /* Once value */
2051 static val_t once_value_27; /* Once value */
2052 static val_t once_value_29; /* Once value */
2053 static val_t once_value_30; /* Once value */
2054 static val_t once_value_31; /* Once value */
2055 static val_t once_value_33; /* Once value */
2056 static val_t once_value_34; /* Once value */
2057 static val_t once_value_35; /* Once value */
2058 static val_t once_value_36; /* Once value */
2059 static val_t once_value_37; /* Once value */
2060 static val_t once_value_38; /* Once value */
2061 static val_t once_value_40; /* Once value */
2062 static val_t once_value_41; /* Once value */
2063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2064 fra.me.file = LOCATE_compiling_icode;
2065 fra.me.line = 277;
2066 fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_inside_to_c;
2067 fra.me.has_broke = 0;
2068 fra.me.REG_size = 10;
2069 fra.me.REG[0] = NIT_NULL;
2070 fra.me.REG[1] = NIT_NULL;
2071 fra.me.REG[2] = NIT_NULL;
2072 fra.me.REG[3] = NIT_NULL;
2073 fra.me.REG[4] = NIT_NULL;
2074 fra.me.REG[5] = NIT_NULL;
2075 fra.me.REG[6] = NIT_NULL;
2076 fra.me.REG[7] = NIT_NULL;
2077 fra.me.REG[8] = NIT_NULL;
2078 fra.me.REG[9] = NIT_NULL;
2079 fra.me.REG[0] = p0;
2080 fra.me.REG[1] = p1;
2081 fra.me.REG[2] = p2;
2082 /* ./compiling//compiling_icode.nit:281 */
2083 REGB0 = TAG_Int(0);
2084 /* ./compiling//compiling_icode.nit:282 */
2085 fra.me.REG[3] = CALL_icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2086 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2087 if (UNTAG_Bool(REGB1)) {
2088 } else {
2089 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2090 if (UNTAG_Bool(REGB2)) {
2091 REGB2 = TAG_Bool(false);
2092 REGB1 = REGB2;
2093 } else {
2094 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2095 REGB1 = REGB2;
2096 }
2097 }
2098 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2099 if (UNTAG_Bool(REGB1)) {
2100 /* ./compiling//compiling_icode.nit:283 */
2101 fra.me.REG[3] = CALL_icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2102 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2103 if (UNTAG_Bool(REGB1)) {
2104 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 283);
2105 }
2106 REGB1 = CALL_location___Location___line_start(fra.me.REG[3])(fra.me.REG[3]);
2107 REGB0 = REGB1;
2108 }
2109 /* ./compiling//compiling_icode.nit:286 */
2110 REGB1 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2111 REGB2 = TAG_Int(1);
2112 /* ./../lib/standard//kernel.nit:214 */
2113 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2114 /* ./compiling//compiling_icode.nit:286 */
2115 if (UNTAG_Bool(REGB2)) {
2116 /* ./compiling//compiling_icode.nit:287 */
2117 REGB2 = TAG_Int(3);
2118 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2);
2119 if (!once_value_1) {
2120 fra.me.REG[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG[");
2121 REGB2 = TAG_Int(48);
2122 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
2123 once_value_1 = fra.me.REG[4];
2124 register_static_object(&once_value_1);
2125 } else fra.me.REG[4] = once_value_1;
2126 fra.me.REG[4] = fra.me.REG[4];
2127 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2128 REGB2 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2129 REGB1 = TAG_Int(1);
2130 /* ./../lib/standard//kernel.nit:217 */
2131 REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
2132 /* ./compiling//compiling_icode.nit:287 */
2133 fra.me.REG[4] = CALL_string___Object___to_s(REGB1)(REGB1);
2134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2135 if (!once_value_2) {
2136 fra.me.REG[4] = BOX_NativeString("];} fra;");
2137 REGB1 = TAG_Int(8);
2138 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2139 once_value_2 = fra.me.REG[4];
2140 register_static_object(&once_value_2);
2141 } else fra.me.REG[4] = once_value_2;
2142 fra.me.REG[4] = fra.me.REG[4];
2143 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2144 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2145 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2146 } else {
2147 /* ./compiling//compiling_icode.nit:289 */
2148 if (!once_value_3) {
2149 fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
2150 REGB1 = TAG_Int(38);
2151 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
2152 once_value_3 = fra.me.REG[3];
2153 register_static_object(&once_value_3);
2154 } else fra.me.REG[3] = once_value_3;
2155 fra.me.REG[3] = fra.me.REG[3];
2156 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2157 }
2158 /* ./compiling//compiling_icode.nit:291 */
2159 if (!once_value_4) {
2160 fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
2161 REGB1 = TAG_Int(59);
2162 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
2163 once_value_4 = fra.me.REG[3];
2164 register_static_object(&once_value_4);
2165 } else fra.me.REG[3] = once_value_4;
2166 fra.me.REG[3] = fra.me.REG[3];
2167 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2168 /* ./compiling//compiling_icode.nit:292 */
2169 REGB1 = TAG_Int(3);
2170 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
2171 if (!once_value_5) {
2172 fra.me.REG[4] = BOX_NativeString("fra.me.file = LOCATE_");
2173 REGB1 = TAG_Int(21);
2174 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2175 once_value_5 = fra.me.REG[4];
2176 register_static_object(&once_value_5);
2177 } else fra.me.REG[4] = once_value_5;
2178 fra.me.REG[4] = fra.me.REG[4];
2179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2180 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
2181 fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
2182 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2183 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2185 if (!once_value_6) {
2186 fra.me.REG[4] = BOX_NativeString(";");
2187 REGB1 = TAG_Int(1);
2188 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2189 once_value_6 = fra.me.REG[4];
2190 register_static_object(&once_value_6);
2191 } else fra.me.REG[4] = once_value_6;
2192 fra.me.REG[4] = fra.me.REG[4];
2193 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2194 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2195 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2196 /* ./compiling//compiling_icode.nit:293 */
2197 REGB1 = TAG_Int(3);
2198 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
2199 if (!once_value_7) {
2200 fra.me.REG[4] = BOX_NativeString("fra.me.line = ");
2201 REGB1 = TAG_Int(14);
2202 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
2203 once_value_7 = fra.me.REG[4];
2204 register_static_object(&once_value_7);
2205 } else fra.me.REG[4] = once_value_7;
2206 fra.me.REG[4] = fra.me.REG[4];
2207 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2208 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
2209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2210 if (!once_value_8) {
2211 fra.me.REG[4] = BOX_NativeString(";");
2212 REGB0 = TAG_Int(1);
2213 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2214 once_value_8 = fra.me.REG[4];
2215 register_static_object(&once_value_8);
2216 } else fra.me.REG[4] = once_value_8;
2217 fra.me.REG[4] = fra.me.REG[4];
2218 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2219 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2220 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2221 /* ./compiling//compiling_icode.nit:294 */
2222 REGB0 = TAG_Int(3);
2223 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2224 if (!once_value_9) {
2225 fra.me.REG[4] = BOX_NativeString("fra.me.meth = LOCATE_");
2226 REGB0 = TAG_Int(21);
2227 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2228 once_value_9 = fra.me.REG[4];
2229 register_static_object(&once_value_9);
2230 } else fra.me.REG[4] = once_value_9;
2231 fra.me.REG[4] = fra.me.REG[4];
2232 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2233 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
2234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2235 if (!once_value_10) {
2236 fra.me.REG[4] = BOX_NativeString(";");
2237 REGB0 = TAG_Int(1);
2238 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2239 once_value_10 = fra.me.REG[4];
2240 register_static_object(&once_value_10);
2241 } else fra.me.REG[4] = once_value_10;
2242 fra.me.REG[4] = fra.me.REG[4];
2243 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2244 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2245 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2246 /* ./compiling//compiling_icode.nit:295 */
2247 if (!once_value_11) {
2248 fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;");
2249 REGB0 = TAG_Int(21);
2250 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2251 once_value_11 = fra.me.REG[3];
2252 register_static_object(&once_value_11);
2253 } else fra.me.REG[3] = once_value_11;
2254 fra.me.REG[3] = fra.me.REG[3];
2255 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2256 /* ./compiling//compiling_icode.nit:296 */
2257 REGB0 = TAG_Int(3);
2258 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2259 if (!once_value_12) {
2260 fra.me.REG[4] = BOX_NativeString("fra.me.REG_size = ");
2261 REGB0 = TAG_Int(18);
2262 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2263 once_value_12 = fra.me.REG[4];
2264 register_static_object(&once_value_12);
2265 } else fra.me.REG[4] = once_value_12;
2266 fra.me.REG[4] = fra.me.REG[4];
2267 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2268 REGB0 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2269 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
2270 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2271 if (!once_value_13) {
2272 fra.me.REG[4] = BOX_NativeString(";");
2273 REGB0 = TAG_Int(1);
2274 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2275 once_value_13 = fra.me.REG[4];
2276 register_static_object(&once_value_13);
2277 } else fra.me.REG[4] = once_value_13;
2278 fra.me.REG[4] = fra.me.REG[4];
2279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2280 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2281 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2282 /* ./compiling//compiling_icode.nit:299 */
2283 REGB0 = TAG_Int(0);
2284 REGB1 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2285 /* ./../lib/standard//kernel.nit:332 */
2286 while(1) {
2287 /* ./../lib/standard//kernel.nit:212 */
2288 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2289 /* ./../lib/standard//kernel.nit:332 */
2290 if (UNTAG_Bool(REGB2)) {
2291 /* ./compiling//compiling_icode.nit:299 */
2292 REGB2 = REGB0;
2293 /* ./compiling//compiling_icode.nit:300 */
2294 REGB3 = TAG_Int(3);
2295 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB3);
2296 if (!once_value_14) {
2297 fra.me.REG[4] = BOX_NativeString("fra.me.REG[");
2298 REGB3 = TAG_Int(11);
2299 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
2300 once_value_14 = fra.me.REG[4];
2301 register_static_object(&once_value_14);
2302 } else fra.me.REG[4] = once_value_14;
2303 fra.me.REG[4] = fra.me.REG[4];
2304 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2305 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
2306 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2307 if (!once_value_15) {
2308 fra.me.REG[4] = BOX_NativeString("] = NIT_NULL;");
2309 REGB2 = TAG_Int(13);
2310 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
2311 once_value_15 = fra.me.REG[4];
2312 register_static_object(&once_value_15);
2313 } else fra.me.REG[4] = once_value_15;
2314 fra.me.REG[4] = fra.me.REG[4];
2315 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2316 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2317 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2318 /* ./../lib/standard//kernel.nit:334 */
2319 REGB2 = TAG_Int(1);
2320 /* ./../lib/standard//kernel.nit:215 */
2321 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2322 /* ./../lib/standard//kernel.nit:334 */
2323 REGB0 = REGB2;
2324 } else {
2325 /* ./../lib/standard//kernel.nit:332 */
2326 goto label16;
2327 }
2328 }
2329 label16: while(0);
2330 /* ./compiling//compiling_icode.nit:302 */
2331 REGB0 = TAG_Int(0);
2332 REGB1 = CALL_allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2333 /* ./../lib/standard//kernel.nit:332 */
2334 while(1) {
2335 /* ./../lib/standard//kernel.nit:212 */
2336 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2337 /* ./../lib/standard//kernel.nit:332 */
2338 if (UNTAG_Bool(REGB2)) {
2339 /* ./compiling//compiling_icode.nit:302 */
2340 REGB2 = REGB0;
2341 /* ./compiling//compiling_icode.nit:303 */
2342 REGB3 = TAG_Int(3);
2343 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB3);
2344 if (!once_value_17) {
2345 fra.me.REG[4] = BOX_NativeString("val_t REGB");
2346 REGB3 = TAG_Int(10);
2347 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
2348 once_value_17 = fra.me.REG[4];
2349 register_static_object(&once_value_17);
2350 } else fra.me.REG[4] = once_value_17;
2351 fra.me.REG[4] = fra.me.REG[4];
2352 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2353 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
2354 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2355 if (!once_value_18) {
2356 fra.me.REG[4] = BOX_NativeString(";");
2357 REGB2 = TAG_Int(1);
2358 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
2359 once_value_18 = fra.me.REG[4];
2360 register_static_object(&once_value_18);
2361 } else fra.me.REG[4] = once_value_18;
2362 fra.me.REG[4] = fra.me.REG[4];
2363 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2364 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2365 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2366 /* ./../lib/standard//kernel.nit:334 */
2367 REGB2 = TAG_Int(1);
2368 /* ./../lib/standard//kernel.nit:215 */
2369 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2370 /* ./../lib/standard//kernel.nit:334 */
2371 REGB0 = REGB2;
2372 } else {
2373 /* ./../lib/standard//kernel.nit:332 */
2374 goto label19;
2375 }
2376 }
2377 label19: while(0);
2378 /* ./compiling//compiling_icode.nit:305 */
2379 fra.me.REG[3] = CALL_icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
2380 /* ./compiling//compiling_icode.nit:306 */
2381 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2382 if (UNTAG_Bool(REGB0)) {
2383 } else {
2384 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2385 if (UNTAG_Bool(REGB1)) {
2386 REGB1 = TAG_Bool(false);
2387 REGB0 = REGB1;
2388 } else {
2389 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2390 REGB0 = REGB1;
2391 }
2392 }
2393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2394 if (UNTAG_Bool(REGB0)) {
2395 /* ./compiling//compiling_icode.nit:307 */
2396 REGB0 = TAG_Int(3);
2397 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2398 if (!once_value_20) {
2399 fra.me.REG[5] = BOX_NativeString("fun_t CREG[");
2400 REGB0 = TAG_Int(11);
2401 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2402 once_value_20 = fra.me.REG[5];
2403 register_static_object(&once_value_20);
2404 } else fra.me.REG[5] = once_value_20;
2405 fra.me.REG[5] = fra.me.REG[5];
2406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2407 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2408 if (UNTAG_Bool(REGB0)) {
2409 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 307);
2410 }
2411 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2412 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
2413 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2414 if (!once_value_21) {
2415 fra.me.REG[5] = BOX_NativeString("];");
2416 REGB0 = TAG_Int(2);
2417 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2418 once_value_21 = fra.me.REG[5];
2419 register_static_object(&once_value_21);
2420 } else fra.me.REG[5] = once_value_21;
2421 fra.me.REG[5] = fra.me.REG[5];
2422 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2423 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2424 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2425 /* ./compiling//compiling_icode.nit:308 */
2426 if (!once_value_22) {
2427 fra.me.REG[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
2428 REGB0 = TAG_Int(35);
2429 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2430 once_value_22 = fra.me.REG[4];
2431 register_static_object(&once_value_22);
2432 } else fra.me.REG[4] = once_value_22;
2433 fra.me.REG[4] = fra.me.REG[4];
2434 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2435 /* ./compiling//compiling_icode.nit:309 */
2436 if (!once_value_23) {
2437 fra.me.REG[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
2438 REGB0 = TAG_Int(27);
2439 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2440 once_value_23 = fra.me.REG[4];
2441 register_static_object(&once_value_23);
2442 } else fra.me.REG[4] = once_value_23;
2443 fra.me.REG[4] = fra.me.REG[4];
2444 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2445 }
2446 /* ./compiling//compiling_icode.nit:311 */
2447 REGB0 = TAG_Int(0);
2448 fra.me.REG[4] = REGB0;
2449 /* ./compiling//compiling_icode.nit:312 */
2450 fra.me.REG[5] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2451 CALL_abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling_icode___IRoutine___compile_inside_to_c_24));
2452 /* ./compiling//compiling_icode.nit:316 */
2453 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2454 if (UNTAG_Bool(REGB0)) {
2455 } else {
2456 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2457 if (UNTAG_Bool(REGB1)) {
2458 REGB1 = TAG_Bool(false);
2459 REGB0 = REGB1;
2460 } else {
2461 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2462 REGB0 = REGB1;
2463 }
2464 }
2465 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2466 if (UNTAG_Bool(REGB0)) {
2467 /* ./compiling//compiling_icode.nit:317 */
2468 REGB0 = TAG_Int(0);
2469 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2470 if (UNTAG_Bool(REGB1)) {
2471 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 317);
2472 }
2473 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2474 /* ./../lib/standard//kernel.nit:332 */
2475 while(1) {
2476 /* ./../lib/standard//kernel.nit:212 */
2477 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2478 /* ./../lib/standard//kernel.nit:332 */
2479 if (UNTAG_Bool(REGB2)) {
2480 /* ./compiling//compiling_icode.nit:317 */
2481 REGB2 = REGB0;
2482 /* ./compiling//compiling_icode.nit:318 */
2483 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2484 if (UNTAG_Bool(REGB3)) {
2485 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 318);
2486 }
2487 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2488 /* ./compiling//compiling_icode.nit:319 */
2489 REGB3 = TAG_Int(5);
2490 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB3);
2491 if (!once_value_26) {
2492 fra.me.REG[6] = BOX_NativeString("CREG[");
2493 REGB3 = TAG_Int(5);
2494 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
2495 once_value_26 = fra.me.REG[6];
2496 register_static_object(&once_value_26);
2497 } else fra.me.REG[6] = once_value_26;
2498 fra.me.REG[6] = fra.me.REG[6];
2499 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2500 fra.me.REG[6] = CALL_string___Object___to_s(REGB2)(REGB2);
2501 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2502 if (!once_value_27) {
2503 fra.me.REG[6] = BOX_NativeString("] = ");
2504 REGB3 = TAG_Int(4);
2505 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
2506 once_value_27 = fra.me.REG[6];
2507 register_static_object(&once_value_27);
2508 } else fra.me.REG[6] = once_value_27;
2509 fra.me.REG[6] = fra.me.REG[6];
2510 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2511 fra.me.REG[6] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2512 REGB3 = CALL_abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
2513 /* ./../lib/standard//kernel.nit:215 */
2514 REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
2515 /* ./../lib/standard//collection//array.nit:243 */
2516 fra.me.REG[6] = fra.me.REG[2];
2517 /* ./../lib/standard//collection//array.nit:245 */
2518 REGB4 = TAG_Int(0);
2519 /* ./../lib/standard//kernel.nit:213 */
2520 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2521 /* ./../lib/standard//collection//array.nit:245 */
2522 if (UNTAG_Bool(REGB4)) {
2523 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
2524 if (UNTAG_Bool(REGB4)) {
2525 } else {
2526 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2527 }
2528 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
2529 /* ./../lib/standard//kernel.nit:212 */
2530 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2531 } else {
2532 /* ./../lib/standard//collection//array.nit:245 */
2533 REGB5 = TAG_Bool(false);
2534 REGB4 = REGB5;
2535 }
2536 if (UNTAG_Bool(REGB4)) {
2537 } else {
2538 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2539 }
2540 /* ./../lib/standard//collection//array.nit:246 */
2541 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
2542 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2543 if (UNTAG_Bool(REGB4)) {
2544 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2545 }
2546 /* ./../lib/standard//collection//array.nit:654 */
2547 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
2548 /* ./../lib/standard//collection//array.nit:246 */
2549 goto label28;
2550 label28: while(0);
2551 /* ./compiling//compiling_icode.nit:319 */
2552 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2553 if (!once_value_29) {
2554 fra.me.REG[6] = BOX_NativeString(";");
2555 REGB3 = TAG_Int(1);
2556 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
2557 once_value_29 = fra.me.REG[6];
2558 register_static_object(&once_value_29);
2559 } else fra.me.REG[6] = once_value_29;
2560 fra.me.REG[6] = fra.me.REG[6];
2561 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2562 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2563 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
2564 /* ./compiling//compiling_icode.nit:320 */
2565 fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
2566 fra.me.REG[6] = CALL_string___Object___to_s(REGB2)(REGB2);
2567 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
2568 /* ./compiling//compiling_icode.nit:321 */
2569 fra.me.REG[6] = CALL_icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]);
2570 fra.me.REG[6] = CALL_static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
2571 /* ./compiling//compiling_icode.nit:322 */
2572 fra.me.REG[5] = NEW_Array_array___Array___init();
2573 /* ./compiling//compiling_icode.nit:323 */
2574 if (!once_value_30) {
2575 fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *");
2576 REGB2 = TAG_Int(22);
2577 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
2578 once_value_30 = fra.me.REG[7];
2579 register_static_object(&once_value_30);
2580 } else fra.me.REG[7] = once_value_30;
2581 fra.me.REG[7] = fra.me.REG[7];
2582 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2583 /* ./compiling//compiling_icode.nit:324 */
2584 REGB2 = TAG_Int(0);
2585 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
2586 /* ./../lib/standard//kernel.nit:332 */
2587 while(1) {
2588 /* ./../lib/standard//kernel.nit:212 */
2589 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2590 /* ./../lib/standard//kernel.nit:332 */
2591 if (UNTAG_Bool(REGB4)) {
2592 /* ./compiling//compiling_icode.nit:325 */
2593 if (!once_value_31) {
2594 fra.me.REG[7] = BOX_NativeString("val_t");
2595 REGB4 = TAG_Int(5);
2596 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
2597 once_value_31 = fra.me.REG[7];
2598 register_static_object(&once_value_31);
2599 } else fra.me.REG[7] = once_value_31;
2600 fra.me.REG[7] = fra.me.REG[7];
2601 /* ./compiling//compiling_icode.nit:326 */
2602 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2603 /* ./../lib/standard//kernel.nit:334 */
2604 REGB4 = TAG_Int(1);
2605 /* ./../lib/standard//kernel.nit:215 */
2606 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
2607 /* ./../lib/standard//kernel.nit:334 */
2608 REGB2 = REGB4;
2609 } else {
2610 /* ./../lib/standard//kernel.nit:332 */
2611 goto label32;
2612 }
2613 }
2614 label32: while(0);
2615 /* ./compiling//compiling_icode.nit:328 */
2616 if (!once_value_33) {
2617 fra.me.REG[7] = BOX_NativeString("void");
2618 REGB2 = TAG_Int(4);
2619 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
2620 once_value_33 = fra.me.REG[7];
2621 register_static_object(&once_value_33);
2622 } else fra.me.REG[7] = once_value_33;
2623 fra.me.REG[7] = fra.me.REG[7];
2624 /* ./compiling//compiling_icode.nit:329 */
2625 fra.me.REG[6] = CALL_static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
2626 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2627 if (UNTAG_Bool(REGB2)) {
2628 } else {
2629 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2630 if (UNTAG_Bool(REGB3)) {
2631 REGB3 = TAG_Bool(false);
2632 REGB2 = REGB3;
2633 } else {
2634 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2635 REGB2 = REGB3;
2636 }
2637 }
2638 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2639 if (UNTAG_Bool(REGB2)) {
2640 if (!once_value_34) {
2641 fra.me.REG[6] = BOX_NativeString("val_t");
2642 REGB2 = TAG_Int(5);
2643 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
2644 once_value_34 = fra.me.REG[6];
2645 register_static_object(&once_value_34);
2646 } else fra.me.REG[6] = once_value_34;
2647 fra.me.REG[6] = fra.me.REG[6];
2648 fra.me.REG[7] = fra.me.REG[6];
2649 }
2650 /* ./compiling//compiling_icode.nit:330 */
2651 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
2652 REGB2 = TAG_Int(5);
2653 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB2);
2654 if (!once_value_35) {
2655 fra.me.REG[9] = BOX_NativeString("");
2656 REGB2 = TAG_Int(0);
2657 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
2658 once_value_35 = fra.me.REG[9];
2659 register_static_object(&once_value_35);
2660 } else fra.me.REG[9] = once_value_35;
2661 fra.me.REG[9] = fra.me.REG[9];
2662 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
2663 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2664 if (!once_value_36) {
2665 fra.me.REG[7] = BOX_NativeString(" (*)(");
2666 REGB2 = TAG_Int(5);
2667 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
2668 once_value_36 = fra.me.REG[7];
2669 register_static_object(&once_value_36);
2670 } else fra.me.REG[7] = once_value_36;
2671 fra.me.REG[7] = fra.me.REG[7];
2672 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2673 if (!once_value_37) {
2674 fra.me.REG[7] = BOX_NativeString(", ");
2675 REGB2 = TAG_Int(2);
2676 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
2677 once_value_37 = fra.me.REG[7];
2678 register_static_object(&once_value_37);
2679 } else fra.me.REG[7] = once_value_37;
2680 fra.me.REG[7] = fra.me.REG[7];
2681 fra.me.REG[7] = CALL_string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2682 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2683 if (!once_value_38) {
2684 fra.me.REG[7] = BOX_NativeString(")");
2685 REGB2 = TAG_Int(1);
2686 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
2687 once_value_38 = fra.me.REG[7];
2688 register_static_object(&once_value_38);
2689 } else fra.me.REG[7] = once_value_38;
2690 fra.me.REG[7] = fra.me.REG[7];
2691 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2692 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2693 CALL_abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8]);
2694 /* ./../lib/standard//kernel.nit:334 */
2695 REGB2 = TAG_Int(1);
2696 /* ./../lib/standard//kernel.nit:215 */
2697 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2698 /* ./../lib/standard//kernel.nit:334 */
2699 REGB0 = REGB2;
2700 } else {
2701 /* ./../lib/standard//kernel.nit:332 */
2702 goto label39;
2703 }
2704 }
2705 label39: while(0);
2706 }
2707 /* ./compiling//compiling_icode.nit:333 */
2708 if (!once_value_40) {
2709 fra.me.REG[2] = BOX_NativeString("val_t tmp;");
2710 REGB0 = TAG_Int(10);
2711 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2712 once_value_40 = fra.me.REG[2];
2713 register_static_object(&once_value_40);
2714 } else fra.me.REG[2] = once_value_40;
2715 fra.me.REG[2] = fra.me.REG[2];
2716 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2717 /* ./compiling//compiling_icode.nit:336 */
2718 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
2719 /* ./compiling//compiling_icode.nit:337 */
2720 fra.me.REG[3] = CALL_icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2721 CALL_compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2722 /* ./compiling//compiling_icode.nit:340 */
2723 fra.me.REG[3] = CALL_icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2724 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2725 /* ./compiling//compiling_icode.nit:342 */
2726 if (!once_value_41) {
2727 fra.me.REG[3] = BOX_NativeString("stack_frame_head = fra.me.prev;");
2728 REGB0 = TAG_Int(31);
2729 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
2730 once_value_41 = fra.me.REG[3];
2731 register_static_object(&once_value_41);
2732 } else fra.me.REG[3] = once_value_41;
2733 fra.me.REG[3] = fra.me.REG[3];
2734 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2735 /* ./compiling//compiling_icode.nit:343 */
2736 CALL_compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2737 /* ./compiling//compiling_icode.nit:344 */
2738 fra.me.REG[0] = CALL_icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
2739 /* ./compiling//compiling_icode.nit:345 */
2740 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2741 if (UNTAG_Bool(REGB0)) {
2742 } else {
2743 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2744 if (UNTAG_Bool(REGB1)) {
2745 REGB1 = TAG_Bool(false);
2746 REGB0 = REGB1;
2747 } else {
2748 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2749 REGB0 = REGB1;
2750 }
2751 }
2752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2753 if (UNTAG_Bool(REGB0)) {
2754 /* ./compiling//compiling_icode.nit:346 */
2755 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2756 goto label42;
2757 } else {
2758 /* ./compiling//compiling_icode.nit:348 */
2759 fra.me.REG[0] = NIT_NULL;
2760 goto label42;
2761 }
2762 label42: while(0);
2763 stack_frame_head = fra.me.prev;
2764 return fra.me.REG[0];
2765 }
2766 void OC_compiling_icode___IRoutine___compile_inside_to_c_24(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2767 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2768 val_t REGB0;
2769 val_t REGB1;
2770 val_t REGB2;
2771 fun_t CREG[1];
2772 val_t tmp;
2773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2774 fra.me.file = LOCATE_compiling_icode;
2775 fra.me.line = 0;
2776 fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_inside_to_c;
2777 fra.me.has_broke = 0;
2778 fra.me.REG_size = 2;
2779 fra.me.REG[0] = NIT_NULL;
2780 fra.me.REG[1] = NIT_NULL;
2781 fra.me.closure_ctx = closctx_param;
2782 fra.me.closure_funs = CREG;
2783 fra.me.REG[0] = p0;
2784 CREG[0] = clos_fun0;
2785 /* ./compiling//compiling_icode.nit:313 */
2786 fra.me.REG[1] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
2787 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2788 if (UNTAG_Bool(REGB0)) {
2789 } else {
2790 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2791 if (UNTAG_Bool(REGB1)) {
2792 REGB1 = TAG_Bool(false);
2793 REGB0 = REGB1;
2794 } else {
2795 /* ./../lib/standard//kernel.nit:207 */
2796 REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
2797 /* ./compiling//compiling_icode.nit:313 */
2798 REGB0 = REGB1;
2799 }
2800 }
2801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2802 if (UNTAG_Bool(REGB0)) {
2803 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
2804 /* ./../lib/standard//collection//array.nit:243 */
2805 fra.me.REG[1] = closctx->REG[2];
2806 REGB0 = closctx->REG[4];
2807 /* ./../lib/standard//collection//array.nit:245 */
2808 REGB1 = TAG_Int(0);
2809 /* ./../lib/standard//kernel.nit:213 */
2810 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2811 /* ./../lib/standard//collection//array.nit:245 */
2812 if (UNTAG_Bool(REGB1)) {
2813 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2814 if (UNTAG_Bool(REGB1)) {
2815 } else {
2816 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
2817 }
2818 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
2819 /* ./../lib/standard//kernel.nit:212 */
2820 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2821 } else {
2822 /* ./../lib/standard//collection//array.nit:245 */
2823 REGB2 = TAG_Bool(false);
2824 REGB1 = REGB2;
2825 }
2826 if (UNTAG_Bool(REGB1)) {
2827 } else {
2828 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
2829 }
2830 /* ./../lib/standard//collection//array.nit:246 */
2831 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
2832 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2833 if (UNTAG_Bool(REGB1)) {
2834 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
2835 }
2836 /* ./../lib/standard//collection//array.nit:654 */
2837 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
2838 /* ./../lib/standard//collection//array.nit:246 */
2839 goto label25;
2840 label25: while(0);
2841 /* ./compiling//compiling_icode.nit:313 */
2842 CALL_compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]);
2843 }
2844 /* ./compiling//compiling_icode.nit:314 */
2845 REGB0 = TAG_Int(1);
2846 /* ./../lib/standard//kernel.nit:215 */
2847 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0));
2848 /* ./compiling//compiling_icode.nit:314 */
2849 closctx->REG[4] = REGB0;
2850 stack_frame_head = fra.me.prev;
2851 return;
2852 }
2853 val_t compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1, val_t p2, val_t p3){
2854 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2855 val_t tmp;
2856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2857 fra.me.file = LOCATE_compiling_icode;
2858 fra.me.line = 352;
2859 fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_to_c;
2860 fra.me.has_broke = 0;
2861 fra.me.REG_size = 4;
2862 fra.me.REG[0] = NIT_NULL;
2863 fra.me.REG[1] = NIT_NULL;
2864 fra.me.REG[2] = NIT_NULL;
2865 fra.me.REG[3] = NIT_NULL;
2866 fra.me.REG[0] = p0;
2867 fra.me.REG[1] = p1;
2868 fra.me.REG[2] = p2;
2869 fra.me.REG[3] = p3;
2870 /* ./compiling//compiling_icode.nit:356 */
2871 fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
2872 /* ./compiling//compiling_icode.nit:357 */
2873 fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2874 goto label1;
2875 label1: while(0);
2876 stack_frame_head = fra.me.prev;
2877 return fra.me.REG[3];
2878 }
2879 void compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){
2880 struct {struct stack_frame_t me;} fra;
2881 val_t tmp;
2882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2883 fra.me.file = LOCATE_compiling_icode;
2884 fra.me.line = 362;
2885 fra.me.meth = LOCATE_compiling_icode___ICode___compile_to_c;
2886 fra.me.has_broke = 0;
2887 fra.me.REG_size = 0;
2888 /* ./compiling//compiling_icode.nit:362 */
2889 nit_abort("Deferred method called", NULL, LOCATE_compiling_icode, 362);
2890 stack_frame_head = fra.me.prev;
2891 return;
2892 }
2893 val_t compiling_icode___ICode___need_result(val_t p0){
2894 struct {struct stack_frame_t me;} fra;
2895 val_t REGB0;
2896 val_t REGB1;
2897 val_t tmp;
2898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2899 fra.me.file = LOCATE_compiling_icode;
2900 fra.me.line = 365;
2901 fra.me.meth = LOCATE_compiling_icode___ICode___need_result;
2902 fra.me.has_broke = 0;
2903 fra.me.REG_size = 1;
2904 fra.me.REG[0] = NIT_NULL;
2905 fra.me.REG[0] = p0;
2906 /* ./compiling//compiling_icode.nit:368 */
2907 fra.me.REG[0] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
2908 /* ./compiling//compiling_icode.nit:369 */
2909 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2910 if (UNTAG_Bool(REGB0)) {
2911 } else {
2912 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2913 if (UNTAG_Bool(REGB1)) {
2914 REGB1 = TAG_Bool(false);
2915 REGB0 = REGB1;
2916 } else {
2917 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2918 REGB0 = REGB1;
2919 }
2920 }
2921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2922 if (UNTAG_Bool(REGB0)) {
2923 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2924 if (UNTAG_Bool(REGB0)) {
2925 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 369);
2926 }
2927 fra.me.REG[0] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
2928 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2929 if (UNTAG_Bool(REGB0)) {
2930 } else {
2931 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2932 if (UNTAG_Bool(REGB1)) {
2933 REGB1 = TAG_Bool(false);
2934 REGB0 = REGB1;
2935 } else {
2936 /* ./../lib/standard//kernel.nit:207 */
2937 REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL));
2938 /* ./compiling//compiling_icode.nit:369 */
2939 REGB0 = REGB1;
2940 }
2941 }
2942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2943 } else {
2944 REGB1 = TAG_Bool(false);
2945 REGB0 = REGB1;
2946 }
2947 goto label1;
2948 label1: while(0);
2949 stack_frame_head = fra.me.prev;
2950 return REGB0;
2951 }
2952 void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){
2953 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2954 val_t REGB0;
2955 val_t REGB1;
2956 val_t tmp;
2957 static val_t once_value_1; /* Once value */
2958 static val_t once_value_2; /* Once value */
2959 static val_t once_value_3; /* Once value */
2960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2961 fra.me.file = LOCATE_compiling_icode;
2962 fra.me.line = 372;
2963 fra.me.meth = LOCATE_compiling_icode___ICode___store_result;
2964 fra.me.has_broke = 0;
2965 fra.me.REG_size = 5;
2966 fra.me.REG[0] = NIT_NULL;
2967 fra.me.REG[1] = NIT_NULL;
2968 fra.me.REG[2] = NIT_NULL;
2969 fra.me.REG[3] = NIT_NULL;
2970 fra.me.REG[4] = NIT_NULL;
2971 fra.me.REG[0] = p0;
2972 fra.me.REG[1] = p1;
2973 fra.me.REG[2] = p2;
2974 /* ./compiling//compiling_icode.nit:375 */
2975 fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
2976 /* ./compiling//compiling_icode.nit:376 */
2977 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2978 if (UNTAG_Bool(REGB0)) {
2979 } else {
2980 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2981 if (UNTAG_Bool(REGB1)) {
2982 REGB1 = TAG_Bool(false);
2983 REGB0 = REGB1;
2984 } else {
2985 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2986 REGB0 = REGB1;
2987 }
2988 }
2989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2990 if (UNTAG_Bool(REGB0)) {
2991 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2992 if (UNTAG_Bool(REGB0)) {
2993 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 376);
2994 }
2995 fra.me.REG[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[3])(fra.me.REG[3]);
2996 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2997 if (UNTAG_Bool(REGB0)) {
2998 } else {
2999 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3000 if (UNTAG_Bool(REGB1)) {
3001 REGB1 = TAG_Bool(false);
3002 REGB0 = REGB1;
3003 } else {
3004 /* ./../lib/standard//kernel.nit:207 */
3005 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
3006 /* ./compiling//compiling_icode.nit:376 */
3007 REGB0 = REGB1;
3008 }
3009 }
3010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3011 } else {
3012 REGB1 = TAG_Bool(false);
3013 REGB0 = REGB1;
3014 }
3015 if (UNTAG_Bool(REGB0)) {
3016 /* ./compiling//compiling_icode.nit:377 */
3017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3018 if (UNTAG_Bool(REGB0)) {
3019 } else {
3020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3021 if (UNTAG_Bool(REGB1)) {
3022 REGB1 = TAG_Bool(false);
3023 REGB0 = REGB1;
3024 } else {
3025 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3026 REGB0 = REGB1;
3027 }
3028 }
3029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3030 if (UNTAG_Bool(REGB0)) {
3031 } else {
3032 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 377);
3033 }
3034 /* ./compiling//compiling_icode.nit:378 */
3035 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3036 /* ./compiling//compiling_icode.nit:379 */
3037 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3038 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3039 /* ./compiling//compiling_icode.nit:380 */
3040 if (!once_value_1) {
3041 fra.me.REG[3] = BOX_NativeString(" = ");
3042 REGB0 = TAG_Int(3);
3043 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3044 once_value_1 = fra.me.REG[3];
3045 register_static_object(&once_value_1);
3046 } else fra.me.REG[3] = once_value_1;
3047 fra.me.REG[3] = fra.me.REG[3];
3048 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3049 /* ./compiling//compiling_icode.nit:381 */
3050 CALL_compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3051 /* ./compiling//compiling_icode.nit:382 */
3052 if (!once_value_2) {
3053 fra.me.REG[3] = BOX_NativeString(";\n");
3054 REGB0 = TAG_Int(2);
3055 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3056 once_value_2 = fra.me.REG[3];
3057 register_static_object(&once_value_2);
3058 } else fra.me.REG[3] = once_value_2;
3059 fra.me.REG[3] = fra.me.REG[3];
3060 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3061 } else {
3062 /* ./compiling//compiling_icode.nit:383 */
3063 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3064 if (UNTAG_Bool(REGB0)) {
3065 } else {
3066 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3067 if (UNTAG_Bool(REGB1)) {
3068 REGB1 = TAG_Bool(false);
3069 REGB0 = REGB1;
3070 } else {
3071 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3072 REGB0 = REGB1;
3073 }
3074 }
3075 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3076 if (UNTAG_Bool(REGB0)) {
3077 REGB0 = CALL_icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3078 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3079 } else {
3080 REGB1 = TAG_Bool(false);
3081 REGB0 = REGB1;
3082 }
3083 if (UNTAG_Bool(REGB0)) {
3084 /* ./compiling//compiling_icode.nit:386 */
3085 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3086 /* ./compiling//compiling_icode.nit:387 */
3087 CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3088 /* ./compiling//compiling_icode.nit:388 */
3089 if (!once_value_3) {
3090 fra.me.REG[2] = BOX_NativeString(";\n");
3091 REGB0 = TAG_Int(2);
3092 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3093 once_value_3 = fra.me.REG[2];
3094 register_static_object(&once_value_3);
3095 } else fra.me.REG[2] = once_value_3;
3096 fra.me.REG[2] = fra.me.REG[2];
3097 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3098 }
3099 }
3100 stack_frame_head = fra.me.prev;
3101 return;
3102 }
3103 val_t compiling_icode___ICode___new_result(val_t p0, val_t p1){
3104 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3105 val_t REGB0;
3106 val_t REGB1;
3107 val_t tmp;
3108 static val_t once_value_1; /* Once value */
3109 static val_t once_value_2; /* Once value */
3110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3111 fra.me.file = LOCATE_compiling_icode;
3112 fra.me.line = 392;
3113 fra.me.meth = LOCATE_compiling_icode___ICode___new_result;
3114 fra.me.has_broke = 0;
3115 fra.me.REG_size = 4;
3116 fra.me.REG[0] = NIT_NULL;
3117 fra.me.REG[1] = NIT_NULL;
3118 fra.me.REG[2] = NIT_NULL;
3119 fra.me.REG[3] = NIT_NULL;
3120 fra.me.REG[0] = p0;
3121 fra.me.REG[1] = p1;
3122 /* ./compiling//compiling_icode.nit:396 */
3123 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
3124 if (UNTAG_Bool(REGB0)) {
3125 REGB0 = TAG_Bool(true);
3126 } else {
3127 REGB1 = CALL_icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3128 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3129 REGB0 = REGB1;
3130 }
3131 if (UNTAG_Bool(REGB0)) {
3132 } else {
3133 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 396);
3134 }
3135 /* ./compiling//compiling_icode.nit:397 */
3136 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3137 /* ./compiling//compiling_icode.nit:398 */
3138 fra.me.REG[0] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3139 /* ./compiling//compiling_icode.nit:399 */
3140 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3141 if (UNTAG_Bool(REGB0)) {
3142 } else {
3143 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3144 if (UNTAG_Bool(REGB1)) {
3145 REGB1 = TAG_Bool(false);
3146 REGB0 = REGB1;
3147 } else {
3148 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3149 REGB0 = REGB1;
3150 }
3151 }
3152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3153 if (UNTAG_Bool(REGB0)) {
3154 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3155 if (UNTAG_Bool(REGB0)) {
3156 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 399);
3157 }
3158 fra.me.REG[3] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3159 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3160 if (UNTAG_Bool(REGB0)) {
3161 } else {
3162 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3163 if (UNTAG_Bool(REGB1)) {
3164 REGB1 = TAG_Bool(false);
3165 REGB0 = REGB1;
3166 } else {
3167 /* ./../lib/standard//kernel.nit:207 */
3168 REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
3169 /* ./compiling//compiling_icode.nit:399 */
3170 REGB0 = REGB1;
3171 }
3172 }
3173 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3174 } else {
3175 REGB1 = TAG_Bool(false);
3176 REGB0 = REGB1;
3177 }
3178 if (UNTAG_Bool(REGB0)) {
3179 /* ./compiling//compiling_icode.nit:400 */
3180 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3181 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3182 /* ./compiling//compiling_icode.nit:401 */
3183 if (!once_value_1) {
3184 fra.me.REG[0] = BOX_NativeString(" = ");
3185 REGB0 = TAG_Int(3);
3186 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3187 once_value_1 = fra.me.REG[0];
3188 register_static_object(&once_value_1);
3189 } else fra.me.REG[0] = once_value_1;
3190 fra.me.REG[0] = fra.me.REG[0];
3191 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3192 }
3193 /* ./compiling//compiling_icode.nit:403 */
3194 fra.me.REG[0] = CALL_compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
3195 /* ./compiling//compiling_icode.nit:404 */
3196 if (!once_value_2) {
3197 fra.me.REG[1] = BOX_NativeString(";\n");
3198 REGB0 = TAG_Int(2);
3199 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
3200 once_value_2 = fra.me.REG[1];
3201 register_static_object(&once_value_2);
3202 } else fra.me.REG[1] = once_value_2;
3203 fra.me.REG[1] = fra.me.REG[1];
3204 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3205 /* ./compiling//compiling_icode.nit:405 */
3206 goto label3;
3207 label3: while(0);
3208 stack_frame_head = fra.me.prev;
3209 return fra.me.REG[0];
3210 }
3211 void compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
3212 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3213 val_t REGB0;
3214 val_t REGB1;
3215 val_t tmp;
3216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3217 fra.me.file = LOCATE_compiling_icode;
3218 fra.me.line = 410;
3219 fra.me.meth = LOCATE_compiling_icode___ISeq___compile_to_c;
3220 fra.me.has_broke = 0;
3221 fra.me.REG_size = 4;
3222 fra.me.REG[0] = NIT_NULL;
3223 fra.me.REG[1] = NIT_NULL;
3224 fra.me.REG[2] = NIT_NULL;
3225 fra.me.REG[3] = NIT_NULL;
3226 fra.me.REG[0] = p0;
3227 fra.me.REG[1] = p1;
3228 /* ./compiling//compiling_icode.nit:412 */
3229 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3230 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3231 /* ./compiling//compiling_icode.nit:413 */
3232 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3233 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3234 /* ./compiling//compiling_icode.nit:414 */
3235 fra.me.REG[2] = CALL_icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3236 /* ./compiling//compiling_icode.nit:415 */
3237 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3238 if (UNTAG_Bool(REGB0)) {
3239 } else {
3240 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3241 if (UNTAG_Bool(REGB1)) {
3242 REGB1 = TAG_Bool(false);
3243 REGB0 = REGB1;
3244 } else {
3245 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3246 REGB0 = REGB1;
3247 }
3248 }
3249 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3250 if (UNTAG_Bool(REGB0)) {
3251 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3252 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3253 }
3254 /* ./compiling//compiling_icode.nit:416 */
3255 fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3256 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_icode___ISeq___compile_to_c_1));
3257 /* ./compiling//compiling_icode.nit:419 */
3258 CALL_compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3259 stack_frame_head = fra.me.prev;
3260 return;
3261 }
3262 void OC_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){
3263 struct {struct stack_frame_t me;} fra;
3264 fun_t CREG[1];
3265 val_t tmp;
3266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3267 fra.me.file = LOCATE_compiling_icode;
3268 fra.me.line = 0;
3269 fra.me.meth = LOCATE_compiling_icode___ISeq___compile_to_c;
3270 fra.me.has_broke = 0;
3271 fra.me.REG_size = 1;
3272 fra.me.REG[0] = NIT_NULL;
3273 fra.me.closure_ctx = closctx_param;
3274 fra.me.closure_funs = CREG;
3275 fra.me.REG[0] = p0;
3276 CREG[0] = clos_fun0;
3277 /* ./compiling//compiling_icode.nit:417 */
3278 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3279 stack_frame_head = fra.me.prev;
3280 return;
3281 }
3282 void compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
3283 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3284 val_t REGB0;
3285 val_t tmp;
3286 static val_t once_value_1; /* Once value */
3287 static val_t once_value_2; /* Once value */
3288 static val_t once_value_3; /* Once value */
3289 static val_t once_value_4; /* Once value */
3290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3291 fra.me.file = LOCATE_compiling_icode;
3292 fra.me.line = 424;
3293 fra.me.meth = LOCATE_compiling_icode___IIf___compile_to_c;
3294 fra.me.has_broke = 0;
3295 fra.me.REG_size = 4;
3296 fra.me.REG[0] = NIT_NULL;
3297 fra.me.REG[1] = NIT_NULL;
3298 fra.me.REG[2] = NIT_NULL;
3299 fra.me.REG[3] = NIT_NULL;
3300 fra.me.REG[0] = p0;
3301 fra.me.REG[1] = p1;
3302 /* ./compiling//compiling_icode.nit:426 */
3303 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3304 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3305 /* ./compiling//compiling_icode.nit:427 */
3306 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3307 /* ./compiling//compiling_icode.nit:428 */
3308 if (!once_value_1) {
3309 fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool(");
3310 REGB0 = TAG_Int(15);
3311 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3312 once_value_1 = fra.me.REG[3];
3313 register_static_object(&once_value_1);
3314 } else fra.me.REG[3] = once_value_1;
3315 fra.me.REG[3] = fra.me.REG[3];
3316 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3317 /* ./compiling//compiling_icode.nit:429 */
3318 fra.me.REG[3] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
3319 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3320 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3321 /* ./compiling//compiling_icode.nit:430 */
3322 if (!once_value_2) {
3323 fra.me.REG[3] = BOX_NativeString(")) {\n");
3324 REGB0 = TAG_Int(5);
3325 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3326 once_value_2 = fra.me.REG[3];
3327 register_static_object(&once_value_2);
3328 } else fra.me.REG[3] = once_value_2;
3329 fra.me.REG[3] = fra.me.REG[3];
3330 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3331 /* ./compiling//compiling_icode.nit:431 */
3332 fra.me.REG[3] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3333 fra.me.REG[3] = CALL_icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3334 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3335 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3336 if (UNTAG_Bool(REGB0)) {
3337 /* ./compiling//compiling_icode.nit:432 */
3338 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3339 /* ./compiling//compiling_icode.nit:433 */
3340 fra.me.REG[3] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3341 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3342 /* ./compiling//compiling_icode.nit:434 */
3343 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3344 }
3345 /* ./compiling//compiling_icode.nit:436 */
3346 fra.me.REG[3] = CALL_icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3347 fra.me.REG[3] = CALL_icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3348 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3349 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3350 if (UNTAG_Bool(REGB0)) {
3351 /* ./compiling//compiling_icode.nit:437 */
3352 if (!once_value_3) {
3353 fra.me.REG[3] = BOX_NativeString("} else {");
3354 REGB0 = TAG_Int(8);
3355 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3356 once_value_3 = fra.me.REG[3];
3357 register_static_object(&once_value_3);
3358 } else fra.me.REG[3] = once_value_3;
3359 fra.me.REG[3] = fra.me.REG[3];
3360 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3361 /* ./compiling//compiling_icode.nit:438 */
3362 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3363 /* ./compiling//compiling_icode.nit:439 */
3364 fra.me.REG[0] = CALL_icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3365 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3366 /* ./compiling//compiling_icode.nit:440 */
3367 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3368 }
3369 /* ./compiling//compiling_icode.nit:442 */
3370 if (!once_value_4) {
3371 fra.me.REG[0] = BOX_NativeString("}");
3372 REGB0 = TAG_Int(1);
3373 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3374 once_value_4 = fra.me.REG[0];
3375 register_static_object(&once_value_4);
3376 } else fra.me.REG[0] = once_value_4;
3377 fra.me.REG[0] = fra.me.REG[0];
3378 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3379 stack_frame_head = fra.me.prev;
3380 return;
3381 }
3382 void compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
3383 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3384 val_t REGB0;
3385 val_t REGB1;
3386 val_t tmp;
3387 static val_t once_value_1; /* Once value */
3388 static val_t once_value_3; /* Once value */
3389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3390 fra.me.file = LOCATE_compiling_icode;
3391 fra.me.line = 447;
3392 fra.me.meth = LOCATE_compiling_icode___ILoop___compile_to_c;
3393 fra.me.has_broke = 0;
3394 fra.me.REG_size = 4;
3395 fra.me.REG[0] = NIT_NULL;
3396 fra.me.REG[1] = NIT_NULL;
3397 fra.me.REG[2] = NIT_NULL;
3398 fra.me.REG[3] = NIT_NULL;
3399 fra.me.REG[0] = p0;
3400 fra.me.REG[1] = p1;
3401 /* ./compiling//compiling_icode.nit:449 */
3402 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3403 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3404 /* ./compiling//compiling_icode.nit:450 */
3405 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3407 /* ./compiling//compiling_icode.nit:451 */
3408 fra.me.REG[2] = CALL_icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3409 /* ./compiling//compiling_icode.nit:452 */
3410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3411 if (UNTAG_Bool(REGB0)) {
3412 } else {
3413 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3414 if (UNTAG_Bool(REGB1)) {
3415 REGB1 = TAG_Bool(false);
3416 REGB0 = REGB1;
3417 } else {
3418 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3419 REGB0 = REGB1;
3420 }
3421 }
3422 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3423 if (UNTAG_Bool(REGB0)) {
3424 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3425 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3426 }
3427 /* ./compiling//compiling_icode.nit:453 */
3428 if (!once_value_1) {
3429 fra.me.REG[2] = BOX_NativeString("while(1) {");
3430 REGB0 = TAG_Int(10);
3431 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3432 once_value_1 = fra.me.REG[2];
3433 register_static_object(&once_value_1);
3434 } else fra.me.REG[2] = once_value_1;
3435 fra.me.REG[2] = fra.me.REG[2];
3436 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3437 /* ./compiling//compiling_icode.nit:454 */
3438 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3439 /* ./compiling//compiling_icode.nit:455 */
3440 fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3441 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_icode___ILoop___compile_to_c_2));
3442 /* ./compiling//compiling_icode.nit:458 */
3443 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3444 /* ./compiling//compiling_icode.nit:459 */
3445 if (!once_value_3) {
3446 fra.me.REG[2] = BOX_NativeString("}");
3447 REGB0 = TAG_Int(1);
3448 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3449 once_value_3 = fra.me.REG[2];
3450 register_static_object(&once_value_3);
3451 } else fra.me.REG[2] = once_value_3;
3452 fra.me.REG[2] = fra.me.REG[2];
3453 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3454 /* ./compiling//compiling_icode.nit:460 */
3455 CALL_compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3456 stack_frame_head = fra.me.prev;
3457 return;
3458 }
3459 void OC_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){
3460 struct {struct stack_frame_t me;} fra;
3461 fun_t CREG[1];
3462 val_t tmp;
3463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3464 fra.me.file = LOCATE_compiling_icode;
3465 fra.me.line = 0;
3466 fra.me.meth = LOCATE_compiling_icode___ILoop___compile_to_c;
3467 fra.me.has_broke = 0;
3468 fra.me.REG_size = 1;
3469 fra.me.REG[0] = NIT_NULL;
3470 fra.me.closure_ctx = closctx_param;
3471 fra.me.closure_funs = CREG;
3472 fra.me.REG[0] = p0;
3473 CREG[0] = clos_fun0;
3474 /* ./compiling//compiling_icode.nit:456 */
3475 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3476 stack_frame_head = fra.me.prev;
3477 return;
3478 }
3479 void compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){
3480 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3481 val_t tmp;
3482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3483 fra.me.file = LOCATE_compiling_icode;
3484 fra.me.line = 465;
3485 fra.me.meth = LOCATE_compiling_icode___IEscape___compile_to_c;
3486 fra.me.has_broke = 0;
3487 fra.me.REG_size = 3;
3488 fra.me.REG[0] = NIT_NULL;
3489 fra.me.REG[1] = NIT_NULL;
3490 fra.me.REG[2] = NIT_NULL;
3491 fra.me.REG[0] = p0;
3492 fra.me.REG[1] = p1;
3493 /* ./compiling//compiling_icode.nit:467 */
3494 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3495 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3496 /* ./compiling//compiling_icode.nit:468 */
3497 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3498 fra.me.REG[0] = CALL_icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3499 fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3500 CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3501 stack_frame_head = fra.me.prev;
3502 return;
3503 }
3504 void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
3505 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3506 val_t REGB0;
3507 val_t REGB1;
3508 val_t tmp;
3509 static val_t once_value_1; /* Once value */
3510 static val_t once_value_2; /* Once value */
3511 static val_t once_value_5; /* Once value */
3512 static val_t once_value_6; /* Once value */
3513 static val_t once_value_7; /* Once value */
3514 static val_t once_value_8; /* Once value */
3515 static val_t once_value_9; /* Once value */
3516 static val_t once_value_10; /* Once value */
3517 static val_t once_value_11; /* Once value */
3518 static val_t once_value_12; /* Once value */
3519 static val_t once_value_13; /* Once value */
3520 static val_t once_value_14; /* Once value */
3521 static val_t once_value_15; /* Once value */
3522 static val_t once_value_16; /* Once value */
3523 static val_t once_value_18; /* Once value */
3524 static val_t once_value_19; /* Once value */
3525 static val_t once_value_20; /* Once value */
3526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3527 fra.me.file = LOCATE_compiling_icode;
3528 fra.me.line = 473;
3529 fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_to_c;
3530 fra.me.has_broke = 0;
3531 fra.me.REG_size = 9;
3532 fra.me.REG[0] = NIT_NULL;
3533 fra.me.REG[1] = NIT_NULL;
3534 fra.me.REG[2] = NIT_NULL;
3535 fra.me.REG[3] = NIT_NULL;
3536 fra.me.REG[4] = NIT_NULL;
3537 fra.me.REG[5] = NIT_NULL;
3538 fra.me.REG[6] = NIT_NULL;
3539 fra.me.REG[7] = NIT_NULL;
3540 fra.me.REG[8] = NIT_NULL;
3541 fra.me.REG[0] = p0;
3542 fra.me.REG[1] = p1;
3543 /* ./compiling//compiling_icode.nit:475 */
3544 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3545 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3546 /* ./compiling//compiling_icode.nit:476 */
3547 fra.me.REG[2] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
3548 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3549 /* ./compiling//compiling_icode.nit:479 */
3550 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3551 /* ./compiling//compiling_icode.nit:480 */
3552 fra.me.REG[4] = CALL_icode_base___ICodeN___closure_defs(fra.me.REG[0])(fra.me.REG[0]);
3553 /* ./compiling//compiling_icode.nit:481 */
3554 fra.me.REG[5] = NIT_NULL;
3555 /* ./compiling//compiling_icode.nit:482 */
3556 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3557 if (UNTAG_Bool(REGB0)) {
3558 } else {
3559 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3560 if (UNTAG_Bool(REGB1)) {
3561 REGB1 = TAG_Bool(false);
3562 REGB0 = REGB1;
3563 } else {
3564 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3565 REGB0 = REGB1;
3566 }
3567 }
3568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3569 if (UNTAG_Bool(REGB0)) {
3570 /* ./compiling//compiling_icode.nit:484 */
3571 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3572 if (UNTAG_Bool(REGB0)) {
3573 /* ./compiling//compiling_icode.nit:485 */
3574 if (!once_value_1) {
3575 fra.me.REG[6] = BOX_NativeString("closctx");
3576 REGB0 = TAG_Int(7);
3577 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3578 once_value_1 = fra.me.REG[6];
3579 register_static_object(&once_value_1);
3580 } else fra.me.REG[6] = once_value_1;
3581 fra.me.REG[6] = fra.me.REG[6];
3582 fra.me.REG[5] = fra.me.REG[6];
3583 } else {
3584 /* ./compiling//compiling_icode.nit:487 */
3585 if (!once_value_2) {
3586 fra.me.REG[6] = BOX_NativeString("(&(fra.me))");
3587 REGB0 = TAG_Int(11);
3588 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3589 once_value_2 = fra.me.REG[6];
3590 register_static_object(&once_value_2);
3591 } else fra.me.REG[6] = once_value_2;
3592 fra.me.REG[6] = fra.me.REG[6];
3593 fra.me.REG[5] = fra.me.REG[6];
3594 }
3595 /* ./compiling//compiling_icode.nit:491 */
3596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
3597 /* ./compiling//compiling_icode.nit:494 */
3598 fra.me.REG[6] = NEW_HashMap_hash_collection___HashMap___init();
3599 CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3600 /* ./compiling//compiling_icode.nit:497 */
3601 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3602 if (UNTAG_Bool(REGB0)) {
3603 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 497);
3604 }
3605 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling_icode___IAbsCall___compile_to_c_3));
3606 }
3607 /* ./compiling//compiling_icode.nit:508 */
3608 fra.me.REG[2] = CALL_compiling_icode___IAbsCall___compile_call_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
3609 /* ./compiling//compiling_icode.nit:509 */
3610 fra.me.REG[4] = fra.me.REG[2];
3611 /* ./compiling//compiling_icode.nit:512 */
3612 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3613 if (UNTAG_Bool(REGB0)) {
3614 } else {
3615 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3616 if (UNTAG_Bool(REGB1)) {
3617 REGB1 = TAG_Bool(false);
3618 REGB0 = REGB1;
3619 } else {
3620 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3621 REGB0 = REGB1;
3622 }
3623 }
3624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3625 if (UNTAG_Bool(REGB0)) {
3626 /* ./compiling//compiling_icode.nit:513 */
3627 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3628 /* ./compiling//compiling_icode.nit:514 */
3629 CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3630 /* ./compiling//compiling_icode.nit:516 */
3631 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]);
3632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3633 if (UNTAG_Bool(REGB0)) {
3634 /* ./compiling//compiling_icode.nit:518 */
3635 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3636 /* ./compiling//compiling_icode.nit:519 */
3637 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
3638 if (UNTAG_Bool(REGB0)) {
3639 /* ./compiling//compiling_icode.nit:520 */
3640 if (!once_value_5) {
3641 fra.me.REG[7] = BOX_NativeString("tmp");
3642 REGB0 = TAG_Int(3);
3643 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3644 once_value_5 = fra.me.REG[7];
3645 register_static_object(&once_value_5);
3646 } else fra.me.REG[7] = once_value_5;
3647 fra.me.REG[7] = fra.me.REG[7];
3648 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
3649 /* ./compiling//compiling_icode.nit:521 */
3650 if (!once_value_6) {
3651 fra.me.REG[7] = BOX_NativeString(" = ");
3652 REGB0 = TAG_Int(3);
3653 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3654 once_value_6 = fra.me.REG[7];
3655 register_static_object(&once_value_6);
3656 } else fra.me.REG[7] = once_value_6;
3657 fra.me.REG[7] = fra.me.REG[7];
3658 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
3659 /* ./compiling//compiling_icode.nit:522 */
3660 CALL_compiling_writer___Writer___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3661 /* ./compiling//compiling_icode.nit:523 */
3662 if (!once_value_7) {
3663 fra.me.REG[7] = BOX_NativeString(";\n");
3664 REGB0 = TAG_Int(2);
3665 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3666 once_value_7 = fra.me.REG[7];
3667 register_static_object(&once_value_7);
3668 } else fra.me.REG[7] = once_value_7;
3669 fra.me.REG[7] = fra.me.REG[7];
3670 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
3671 /* ./compiling//compiling_icode.nit:524 */
3672 fra.me.REG[7] = NEW_Writer_compiling_writer___Writer___init();
3673 fra.me.REG[4] = fra.me.REG[7];
3674 /* ./compiling//compiling_icode.nit:525 */
3675 if (!once_value_8) {
3676 fra.me.REG[7] = BOX_NativeString("tmp");
3677 REGB0 = TAG_Int(3);
3678 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3679 once_value_8 = fra.me.REG[7];
3680 register_static_object(&once_value_8);
3681 } else fra.me.REG[7] = once_value_8;
3682 fra.me.REG[7] = fra.me.REG[7];
3683 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3684 if (UNTAG_Bool(REGB0)) {
3685 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 525);
3686 }
3687 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3688 } else {
3689 /* ./compiling//compiling_icode.nit:527 */
3690 fra.me.REG[4] = NIT_NULL;
3691 /* ./compiling//compiling_icode.nit:528 */
3692 CALL_compiling_writer___Writer___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3693 /* ./compiling//compiling_icode.nit:529 */
3694 if (!once_value_9) {
3695 fra.me.REG[2] = BOX_NativeString(";\n");
3696 REGB0 = TAG_Int(2);
3697 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3698 once_value_9 = fra.me.REG[2];
3699 register_static_object(&once_value_9);
3700 } else fra.me.REG[2] = once_value_9;
3701 fra.me.REG[2] = fra.me.REG[2];
3702 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3703 }
3704 /* ./compiling//compiling_icode.nit:532 */
3705 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3706 if (!once_value_10) {
3707 fra.me.REG[3] = BOX_NativeString("switch (");
3708 REGB0 = TAG_Int(8);
3709 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3710 once_value_10 = fra.me.REG[3];
3711 register_static_object(&once_value_10);
3712 } else fra.me.REG[3] = once_value_10;
3713 fra.me.REG[3] = fra.me.REG[3];
3714 fra.me.REG[3] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3715 fra.me.REG[3] = CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
3716 if (!once_value_11) {
3717 fra.me.REG[2] = BOX_NativeString("->has_broke) {\n");
3718 REGB0 = TAG_Int(15);
3719 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3720 once_value_11 = fra.me.REG[2];
3721 register_static_object(&once_value_11);
3722 } else fra.me.REG[2] = once_value_11;
3723 fra.me.REG[2] = fra.me.REG[2];
3724 CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3725 /* ./compiling//compiling_icode.nit:533 */
3726 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3727 /* ./compiling//compiling_icode.nit:535 */
3728 if (!once_value_12) {
3729 fra.me.REG[2] = BOX_NativeString("case 0: break;");
3730 REGB0 = TAG_Int(14);
3731 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3732 once_value_12 = fra.me.REG[2];
3733 register_static_object(&once_value_12);
3734 } else fra.me.REG[2] = once_value_12;
3735 fra.me.REG[2] = fra.me.REG[2];
3736 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3737 /* ./compiling//compiling_icode.nit:536 */
3738 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3739 /* ./compiling//compiling_icode.nit:537 */
3740 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
3741 /* ./compiling//compiling_icode.nit:538 */
3742 REGB0 = TAG_Bool(false);
3743 /* ./compiling//compiling_icode.nit:539 */
3744 while(1) {
3745 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
3746 if (UNTAG_Bool(REGB1)) {
3747 /* ./compiling//compiling_icode.nit:540 */
3748 fra.me.REG[3] = CALL_abstract_collection___MapIterator___key(fra.me.REG[6])(fra.me.REG[6]);
3749 /* ./compiling//compiling_icode.nit:541 */
3750 REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3751 if (UNTAG_Bool(REGB1)) {
3752 /* ./compiling//compiling_icode.nit:544 */
3753 fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3754 if (!once_value_13) {
3755 fra.me.REG[8] = BOX_NativeString("case ");
3756 REGB1 = TAG_Int(5);
3757 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3758 once_value_13 = fra.me.REG[8];
3759 register_static_object(&once_value_13);
3760 } else fra.me.REG[8] = once_value_13;
3761 fra.me.REG[8] = fra.me.REG[8];
3762 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3763 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
3764 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3765 if (UNTAG_Bool(REGB1)) {
3766 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 544);
3767 }
3768 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3769 fra.me.REG[7] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
3770 if (!once_value_14) {
3771 fra.me.REG[8] = BOX_NativeString(": ");
3772 REGB1 = TAG_Int(2);
3773 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3774 once_value_14 = fra.me.REG[8];
3775 register_static_object(&once_value_14);
3776 } else fra.me.REG[8] = once_value_14;
3777 fra.me.REG[8] = fra.me.REG[8];
3778 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3779 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
3780 if (!once_value_15) {
3781 fra.me.REG[7] = BOX_NativeString("->has_broke = 0; goto ");
3782 REGB1 = TAG_Int(22);
3783 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3784 once_value_15 = fra.me.REG[7];
3785 register_static_object(&once_value_15);
3786 } else fra.me.REG[7] = once_value_15;
3787 fra.me.REG[7] = fra.me.REG[7];
3788 fra.me.REG[7] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
3789 fra.me.REG[8] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3790 fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3791 if (!once_value_16) {
3792 fra.me.REG[7] = BOX_NativeString(";\n");
3793 REGB1 = TAG_Int(2);
3794 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3795 once_value_16 = fra.me.REG[7];
3796 register_static_object(&once_value_16);
3797 } else fra.me.REG[7] = once_value_16;
3798 fra.me.REG[7] = fra.me.REG[7];
3799 CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
3800 } else {
3801 /* ./compiling//compiling_icode.nit:547 */
3802 REGB1 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3803 if (UNTAG_Bool(REGB1)) {
3804 } else {
3805 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 547);
3806 }
3807 /* ./compiling//compiling_icode.nit:548 */
3808 CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3809 /* ./compiling//compiling_icode.nit:549 */
3810 REGB1 = TAG_Bool(true);
3811 REGB0 = REGB1;
3812 }
3813 /* ./compiling//compiling_icode.nit:551 */
3814 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
3815 } else {
3816 /* ./compiling//compiling_icode.nit:539 */
3817 goto label17;
3818 }
3819 }
3820 label17: while(0);
3821 /* ./compiling//compiling_icode.nit:554 */
3822 if (UNTAG_Bool(REGB0)) {
3823 /* ./compiling//compiling_icode.nit:557 */
3824 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3825 if (!once_value_18) {
3826 fra.me.REG[5] = BOX_NativeString("default: goto ");
3827 REGB0 = TAG_Int(14);
3828 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3829 once_value_18 = fra.me.REG[5];
3830 register_static_object(&once_value_18);
3831 } else fra.me.REG[5] = once_value_18;
3832 fra.me.REG[5] = fra.me.REG[5];
3833 fra.me.REG[5] = CALL_compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3834 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
3835 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
3836 if (UNTAG_Bool(REGB0)) {
3837 } else {
3838 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 557);
3839 }
3840 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3841 fra.me.REG[6] = CALL_compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3842 if (!once_value_19) {
3843 fra.me.REG[5] = BOX_NativeString(";\n");
3844 REGB0 = TAG_Int(2);
3845 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3846 once_value_19 = fra.me.REG[5];
3847 register_static_object(&once_value_19);
3848 } else fra.me.REG[5] = once_value_19;
3849 fra.me.REG[5] = fra.me.REG[5];
3850 CALL_compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3851 }
3852 /* ./compiling//compiling_icode.nit:559 */
3853 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3854 /* ./compiling//compiling_icode.nit:560 */
3855 if (!once_value_20) {
3856 fra.me.REG[5] = BOX_NativeString("}");
3857 REGB0 = TAG_Int(1);
3858 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3859 once_value_20 = fra.me.REG[5];
3860 register_static_object(&once_value_20);
3861 } else fra.me.REG[5] = once_value_20;
3862 fra.me.REG[5] = fra.me.REG[5];
3863 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
3864 }
3865 }
3866 /* ./compiling//compiling_icode.nit:564 */
3867 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3868 if (UNTAG_Bool(REGB0)) {
3869 } else {
3870 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3871 if (UNTAG_Bool(REGB1)) {
3872 REGB1 = TAG_Bool(false);
3873 REGB0 = REGB1;
3874 } else {
3875 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3876 REGB0 = REGB1;
3877 }
3878 }
3879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3880 if (UNTAG_Bool(REGB0)) {
3881 /* ./compiling//compiling_icode.nit:565 */
3882 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3883 /* ./compiling//compiling_icode.nit:566 */
3884 CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3885 }
3886 stack_frame_head = fra.me.prev;
3887 return;
3888 }
3889 void OC_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){
3890 struct {struct stack_frame_t me;} fra;
3891 val_t REGB0;
3892 val_t REGB1;
3893 fun_t CREG[1];
3894 val_t tmp;
3895 static val_t once_value_4; /* Once value */
3896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3897 fra.me.file = LOCATE_compiling_icode;
3898 fra.me.line = 0;
3899 fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_to_c;
3900 fra.me.has_broke = 0;
3901 fra.me.REG_size = 1;
3902 fra.me.REG[0] = NIT_NULL;
3903 fra.me.closure_ctx = closctx_param;
3904 fra.me.closure_funs = CREG;
3905 fra.me.REG[0] = p0;
3906 CREG[0] = clos_fun0;
3907 /* ./compiling//compiling_icode.nit:498 */
3908 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3909 if (UNTAG_Bool(REGB0)) {
3910 } else {
3911 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3912 if (UNTAG_Bool(REGB1)) {
3913 REGB1 = TAG_Bool(false);
3914 REGB0 = REGB1;
3915 } else {
3916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3917 REGB0 = REGB1;
3918 }
3919 }
3920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3921 if (UNTAG_Bool(REGB0)) {
3922 /* ./compiling//compiling_icode.nit:499 */
3923 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3924 if (UNTAG_Bool(REGB0)) {
3925 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 499);
3926 }
3927 fra.me.REG[0] = CALL_compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3928 /* ./compiling//compiling_icode.nit:500 */
3929 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
3930 } else {
3931 /* ./compiling//compiling_icode.nit:502 */
3932 if (!once_value_4) {
3933 fra.me.REG[0] = BOX_NativeString("NULL");
3934 REGB0 = TAG_Int(4);
3935 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3936 once_value_4 = fra.me.REG[0];
3937 register_static_object(&once_value_4);
3938 } else fra.me.REG[0] = once_value_4;
3939 fra.me.REG[0] = fra.me.REG[0];
3940 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
3941 }
3942 stack_frame_head = fra.me.prev;
3943 return;
3944 }
3945 val_t compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
3946 struct {struct stack_frame_t me;} fra;
3947 val_t tmp;
3948 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3949 fra.me.file = LOCATE_compiling_icode;
3950 fra.me.line = 570;
3951 fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_call_to_c;
3952 fra.me.has_broke = 0;
3953 fra.me.REG_size = 0;
3954 /* ./compiling//compiling_icode.nit:570 */
3955 nit_abort("Deferred method called", NULL, LOCATE_compiling_icode, 570);
3956 stack_frame_head = fra.me.prev;
3957 return NIT_NULL;
3958 }
3959 val_t compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
3960 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3961 val_t REGB0;
3962 val_t tmp;
3963 static val_t once_value_1; /* Once value */
3964 static val_t once_value_2; /* Once value */
3965 static val_t once_value_3; /* Once value */
3966 static val_t once_value_4; /* Once value */
3967 static val_t once_value_5; /* Once value */
3968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3969 fra.me.file = LOCATE_compiling_icode;
3970 fra.me.line = 575;
3971 fra.me.meth = LOCATE_compiling_icode___ICall___compile_call_to_c;
3972 fra.me.has_broke = 0;
3973 fra.me.REG_size = 4;
3974 fra.me.REG[0] = NIT_NULL;
3975 fra.me.REG[1] = NIT_NULL;
3976 fra.me.REG[2] = NIT_NULL;
3977 fra.me.REG[3] = NIT_NULL;
3978 fra.me.REG[0] = p0;
3979 fra.me.REG[1] = p1;
3980 fra.me.REG[2] = p2;
3981 /* ./compiling//compiling_icode.nit:577 */
3982 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
3983 /* ./compiling//compiling_icode.nit:578 */
3984 fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
3985 /* ./compiling//compiling_icode.nit:579 */
3986 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
3987 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
3988 if (UNTAG_Bool(REGB0)) {
3989 if (!once_value_1) {
3990 fra.me.REG[3] = BOX_NativeString("init_table");
3991 REGB0 = TAG_Int(10);
3992 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3993 once_value_1 = fra.me.REG[3];
3994 register_static_object(&once_value_1);
3995 } else fra.me.REG[3] = once_value_1;
3996 fra.me.REG[3] = fra.me.REG[3];
3997 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3998 }
3999 /* ./compiling//compiling_icode.nit:580 */
4000 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4001 fra.me.REG[0] = CALL_compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
4002 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4003 /* ./compiling//compiling_icode.nit:581 */
4004 if (!once_value_2) {
4005 fra.me.REG[0] = BOX_NativeString("(");
4006 REGB0 = TAG_Int(1);
4007 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4008 once_value_2 = fra.me.REG[0];
4009 register_static_object(&once_value_2);
4010 } else fra.me.REG[0] = once_value_2;
4011 fra.me.REG[0] = fra.me.REG[0];
4012 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4013 /* ./compiling//compiling_icode.nit:582 */
4014 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4015 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4016 /* ./compiling//compiling_icode.nit:583 */
4017 if (!once_value_3) {
4018 fra.me.REG[0] = BOX_NativeString(")(");
4019 REGB0 = TAG_Int(2);
4020 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4021 once_value_3 = fra.me.REG[0];
4022 register_static_object(&once_value_3);
4023 } else fra.me.REG[0] = once_value_3;
4024 fra.me.REG[0] = fra.me.REG[0];
4025 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4026 /* ./compiling//compiling_icode.nit:584 */
4027 if (!once_value_4) {
4028 fra.me.REG[0] = BOX_NativeString(", ");
4029 REGB0 = TAG_Int(2);
4030 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4031 once_value_4 = fra.me.REG[0];
4032 register_static_object(&once_value_4);
4033 } else fra.me.REG[0] = once_value_4;
4034 fra.me.REG[0] = fra.me.REG[0];
4035 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4036 /* ./compiling//compiling_icode.nit:585 */
4037 if (!once_value_5) {
4038 fra.me.REG[0] = BOX_NativeString(")");
4039 REGB0 = TAG_Int(1);
4040 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4041 once_value_5 = fra.me.REG[0];
4042 register_static_object(&once_value_5);
4043 } else fra.me.REG[0] = once_value_5;
4044 fra.me.REG[0] = fra.me.REG[0];
4045 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4046 /* ./compiling//compiling_icode.nit:586 */
4047 goto label6;
4048 label6: while(0);
4049 stack_frame_head = fra.me.prev;
4050 return fra.me.REG[1];
4051 }
4052 val_t compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4053 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4054 val_t REGB0;
4055 val_t tmp;
4056 static val_t once_value_1; /* Once value */
4057 static val_t once_value_2; /* Once value */
4058 static val_t once_value_3; /* Once value */
4059 static val_t once_value_4; /* Once value */
4060 static val_t once_value_5; /* Once value */
4061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4062 fra.me.file = LOCATE_compiling_icode;
4063 fra.me.line = 591;
4064 fra.me.meth = LOCATE_compiling_icode___ISuper___compile_call_to_c;
4065 fra.me.has_broke = 0;
4066 fra.me.REG_size = 3;
4067 fra.me.REG[0] = NIT_NULL;
4068 fra.me.REG[1] = NIT_NULL;
4069 fra.me.REG[2] = NIT_NULL;
4070 fra.me.REG[0] = p0;
4071 fra.me.REG[1] = p1;
4072 fra.me.REG[2] = p2;
4073 /* ./compiling//compiling_icode.nit:593 */
4074 fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4075 /* ./compiling//compiling_icode.nit:594 */
4076 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4077 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
4078 if (UNTAG_Bool(REGB0)) {
4079 if (!once_value_1) {
4080 fra.me.REG[1] = BOX_NativeString("init_table");
4081 REGB0 = TAG_Int(10);
4082 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4083 once_value_1 = fra.me.REG[1];
4084 register_static_object(&once_value_1);
4085 } else fra.me.REG[1] = once_value_1;
4086 fra.me.REG[1] = fra.me.REG[1];
4087 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4088 }
4089 /* ./compiling//compiling_icode.nit:595 */
4090 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4091 /* ./compiling//compiling_icode.nit:596 */
4092 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
4093 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4094 /* ./compiling//compiling_icode.nit:597 */
4095 if (!once_value_2) {
4096 fra.me.REG[0] = BOX_NativeString("(");
4097 REGB0 = TAG_Int(1);
4098 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4099 once_value_2 = fra.me.REG[0];
4100 register_static_object(&once_value_2);
4101 } else fra.me.REG[0] = once_value_2;
4102 fra.me.REG[0] = fra.me.REG[0];
4103 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4104 /* ./compiling//compiling_icode.nit:598 */
4105 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4106 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4107 /* ./compiling//compiling_icode.nit:599 */
4108 if (!once_value_3) {
4109 fra.me.REG[0] = BOX_NativeString(")(");
4110 REGB0 = TAG_Int(2);
4111 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4112 once_value_3 = fra.me.REG[0];
4113 register_static_object(&once_value_3);
4114 } else fra.me.REG[0] = once_value_3;
4115 fra.me.REG[0] = fra.me.REG[0];
4116 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4117 /* ./compiling//compiling_icode.nit:600 */
4118 if (!once_value_4) {
4119 fra.me.REG[0] = BOX_NativeString(", ");
4120 REGB0 = TAG_Int(2);
4121 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4122 once_value_4 = fra.me.REG[0];
4123 register_static_object(&once_value_4);
4124 } else fra.me.REG[0] = once_value_4;
4125 fra.me.REG[0] = fra.me.REG[0];
4126 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4127 /* ./compiling//compiling_icode.nit:601 */
4128 if (!once_value_5) {
4129 fra.me.REG[0] = BOX_NativeString(")");
4130 REGB0 = TAG_Int(1);
4131 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4132 once_value_5 = fra.me.REG[0];
4133 register_static_object(&once_value_5);
4134 } else fra.me.REG[0] = once_value_5;
4135 fra.me.REG[0] = fra.me.REG[0];
4136 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4137 /* ./compiling//compiling_icode.nit:602 */
4138 goto label6;
4139 label6: while(0);
4140 stack_frame_head = fra.me.prev;
4141 return fra.me.REG[1];
4142 }
4143 val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4144 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4145 val_t REGB0;
4146 val_t tmp;
4147 static val_t once_value_1; /* Once value */
4148 static val_t once_value_2; /* Once value */
4149 static val_t once_value_3; /* Once value */
4150 static val_t once_value_4; /* Once value */
4151 static val_t once_value_5; /* Once value */
4152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4153 fra.me.file = LOCATE_compiling_icode;
4154 fra.me.line = 607;
4155 fra.me.meth = LOCATE_compiling_icode___INew___compile_call_to_c;
4156 fra.me.has_broke = 0;
4157 fra.me.REG_size = 4;
4158 fra.me.REG[0] = NIT_NULL;
4159 fra.me.REG[1] = NIT_NULL;
4160 fra.me.REG[2] = NIT_NULL;
4161 fra.me.REG[3] = NIT_NULL;
4162 fra.me.REG[0] = p0;
4163 fra.me.REG[1] = p1;
4164 fra.me.REG[2] = p2;
4165 /* ./compiling//compiling_icode.nit:609 */
4166 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4167 /* ./compiling//compiling_icode.nit:610 */
4168 if (!once_value_1) {
4169 fra.me.REG[3] = BOX_NativeString("NEW_");
4170 REGB0 = TAG_Int(4);
4171 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4172 once_value_1 = fra.me.REG[3];
4173 register_static_object(&once_value_1);
4174 } else fra.me.REG[3] = once_value_1;
4175 fra.me.REG[3] = fra.me.REG[3];
4176 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4177 /* ./compiling//compiling_icode.nit:611 */
4178 fra.me.REG[3] = CALL_icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
4179 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4180 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4181 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4182 /* ./compiling//compiling_icode.nit:612 */
4183 if (!once_value_2) {
4184 fra.me.REG[3] = BOX_NativeString("_");
4185 REGB0 = TAG_Int(1);
4186 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4187 once_value_2 = fra.me.REG[3];
4188 register_static_object(&once_value_2);
4189 } else fra.me.REG[3] = once_value_2;
4190 fra.me.REG[3] = fra.me.REG[3];
4191 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4192 /* ./compiling//compiling_icode.nit:613 */
4193 fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4194 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4195 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
4196 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4197 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4198 /* ./compiling//compiling_icode.nit:614 */
4199 if (!once_value_3) {
4200 fra.me.REG[0] = BOX_NativeString("(");
4201 REGB0 = TAG_Int(1);
4202 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4203 once_value_3 = fra.me.REG[0];
4204 register_static_object(&once_value_3);
4205 } else fra.me.REG[0] = once_value_3;
4206 fra.me.REG[0] = fra.me.REG[0];
4207 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4208 /* ./compiling//compiling_icode.nit:615 */
4209 if (!once_value_4) {
4210 fra.me.REG[0] = BOX_NativeString(", ");
4211 REGB0 = TAG_Int(2);
4212 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4213 once_value_4 = fra.me.REG[0];
4214 register_static_object(&once_value_4);
4215 } else fra.me.REG[0] = once_value_4;
4216 fra.me.REG[0] = fra.me.REG[0];
4217 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4218 /* ./compiling//compiling_icode.nit:616 */
4219 if (!once_value_5) {
4220 fra.me.REG[0] = BOX_NativeString(")");
4221 REGB0 = TAG_Int(1);
4222 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4223 once_value_5 = fra.me.REG[0];
4224 register_static_object(&once_value_5);
4225 } else fra.me.REG[0] = once_value_5;
4226 fra.me.REG[0] = fra.me.REG[0];
4227 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4228 /* ./compiling//compiling_icode.nit:617 */
4229 goto label6;
4230 label6: while(0);
4231 stack_frame_head = fra.me.prev;
4232 return fra.me.REG[1];
4233 }
4234 void compiling_icode___IAllocateInstance___compile_to_c(val_t p0, val_t p1){
4235 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4236 val_t REGB0;
4237 val_t tmp;
4238 static val_t once_value_1; /* Once value */
4239 static val_t once_value_2; /* Once value */
4240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4241 fra.me.file = LOCATE_compiling_icode;
4242 fra.me.line = 622;
4243 fra.me.meth = LOCATE_compiling_icode___IAllocateInstance___compile_to_c;
4244 fra.me.has_broke = 0;
4245 fra.me.REG_size = 3;
4246 fra.me.REG[0] = NIT_NULL;
4247 fra.me.REG[1] = NIT_NULL;
4248 fra.me.REG[2] = NIT_NULL;
4249 fra.me.REG[0] = p0;
4250 fra.me.REG[1] = p1;
4251 /* ./compiling//compiling_icode.nit:624 */
4252 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4253 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4254 /* ./compiling//compiling_icode.nit:625 */
4255 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4256 /* ./compiling//compiling_icode.nit:626 */
4257 if (!once_value_1) {
4258 fra.me.REG[2] = BOX_NativeString("NEW_");
4259 REGB0 = TAG_Int(4);
4260 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
4261 once_value_1 = fra.me.REG[2];
4262 register_static_object(&once_value_1);
4263 } else fra.me.REG[2] = once_value_1;
4264 fra.me.REG[2] = fra.me.REG[2];
4265 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4266 /* ./compiling//compiling_icode.nit:627 */
4267 fra.me.REG[0] = CALL_icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4268 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
4269 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
4270 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4271 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4272 /* ./compiling//compiling_icode.nit:628 */
4273 if (!once_value_2) {
4274 fra.me.REG[0] = BOX_NativeString("()");
4275 REGB0 = TAG_Int(2);
4276 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4277 once_value_2 = fra.me.REG[0];
4278 register_static_object(&once_value_2);
4279 } else fra.me.REG[0] = once_value_2;
4280 fra.me.REG[0] = fra.me.REG[0];
4281 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4282 stack_frame_head = fra.me.prev;
4283 return;
4284 }
4285 void compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t p1){
4286 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4287 val_t REGB0;
4288 val_t tmp;
4289 static val_t once_value_1; /* Once value */
4290 static val_t once_value_2; /* Once value */
4291 static val_t once_value_3; /* Once value */
4292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4293 fra.me.file = LOCATE_compiling_icode;
4294 fra.me.line = 633;
4295 fra.me.meth = LOCATE_compiling_icode___ICheckInstance___compile_to_c;
4296 fra.me.has_broke = 0;
4297 fra.me.REG_size = 4;
4298 fra.me.REG[0] = NIT_NULL;
4299 fra.me.REG[1] = NIT_NULL;
4300 fra.me.REG[2] = NIT_NULL;
4301 fra.me.REG[3] = NIT_NULL;
4302 fra.me.REG[0] = p0;
4303 fra.me.REG[1] = p1;
4304 /* ./compiling//compiling_icode.nit:635 */
4305 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4306 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4307 /* ./compiling//compiling_icode.nit:636 */
4308 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4309 /* ./compiling//compiling_icode.nit:637 */
4310 if (!once_value_1) {
4311 fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
4312 REGB0 = TAG_Int(9);
4313 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4314 once_value_1 = fra.me.REG[3];
4315 register_static_object(&once_value_1);
4316 } else fra.me.REG[3] = once_value_1;
4317 fra.me.REG[3] = fra.me.REG[3];
4318 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4319 /* ./compiling//compiling_icode.nit:638 */
4320 fra.me.REG[3] = CALL_icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4321 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4322 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
4323 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4324 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4325 /* ./compiling//compiling_icode.nit:639 */
4326 if (!once_value_2) {
4327 fra.me.REG[3] = BOX_NativeString("(");
4328 REGB0 = TAG_Int(1);
4329 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4330 once_value_2 = fra.me.REG[3];
4331 register_static_object(&once_value_2);
4332 } else fra.me.REG[3] = once_value_2;
4333 fra.me.REG[3] = fra.me.REG[3];
4334 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4335 /* ./compiling//compiling_icode.nit:640 */
4336 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4337 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4338 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4339 /* ./compiling//compiling_icode.nit:641 */
4340 if (!once_value_3) {
4341 fra.me.REG[0] = BOX_NativeString(")");
4342 REGB0 = TAG_Int(1);
4343 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4344 once_value_3 = fra.me.REG[0];
4345 register_static_object(&once_value_3);
4346 } else fra.me.REG[0] = once_value_3;
4347 fra.me.REG[0] = fra.me.REG[0];
4348 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4349 stack_frame_head = fra.me.prev;
4350 return;
4351 }
4352 void compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_t p1){
4353 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4354 val_t REGB0;
4355 val_t tmp;
4356 static val_t once_value_1; /* Once value */
4357 static val_t once_value_2; /* Once value */
4358 static val_t once_value_3; /* Once value */
4359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4360 fra.me.file = LOCATE_compiling_icode;
4361 fra.me.line = 646;
4362 fra.me.meth = LOCATE_compiling_icode___IInitAttributes___compile_to_c;
4363 fra.me.has_broke = 0;
4364 fra.me.REG_size = 4;
4365 fra.me.REG[0] = NIT_NULL;
4366 fra.me.REG[1] = NIT_NULL;
4367 fra.me.REG[2] = NIT_NULL;
4368 fra.me.REG[3] = NIT_NULL;
4369 fra.me.REG[0] = p0;
4370 fra.me.REG[1] = p1;
4371 /* ./compiling//compiling_icode.nit:648 */
4372 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4373 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4374 /* ./compiling//compiling_icode.nit:649 */
4375 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
4376 /* ./compiling//compiling_icode.nit:650 */
4377 if (!once_value_1) {
4378 fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__");
4379 REGB0 = TAG_Int(17);
4380 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4381 once_value_1 = fra.me.REG[3];
4382 register_static_object(&once_value_1);
4383 } else fra.me.REG[3] = once_value_1;
4384 fra.me.REG[3] = fra.me.REG[3];
4385 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4386 /* ./compiling//compiling_icode.nit:651 */
4387 fra.me.REG[3] = CALL_icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
4388 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4389 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
4390 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4391 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4392 /* ./compiling//compiling_icode.nit:652 */
4393 if (!once_value_2) {
4394 fra.me.REG[3] = BOX_NativeString("(");
4395 REGB0 = TAG_Int(1);
4396 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4397 once_value_2 = fra.me.REG[3];
4398 register_static_object(&once_value_2);
4399 } else fra.me.REG[3] = once_value_2;
4400 fra.me.REG[3] = fra.me.REG[3];
4401 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4402 /* ./compiling//compiling_icode.nit:653 */
4403 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4404 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4405 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4406 /* ./compiling//compiling_icode.nit:654 */
4407 if (!once_value_3) {
4408 fra.me.REG[0] = BOX_NativeString(");\n");
4409 REGB0 = TAG_Int(3);
4410 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4411 once_value_3 = fra.me.REG[0];
4412 register_static_object(&once_value_3);
4413 } else fra.me.REG[0] = once_value_3;
4414 fra.me.REG[0] = fra.me.REG[0];
4415 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4416 stack_frame_head = fra.me.prev;
4417 return;
4418 }
4419 val_t compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4420 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4421 val_t REGB0;
4422 val_t tmp;
4423 static val_t once_value_1; /* Once value */
4424 static val_t once_value_2; /* Once value */
4425 static val_t once_value_3; /* Once value */
4426 static val_t once_value_4; /* Once value */
4427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4428 fra.me.file = LOCATE_compiling_icode;
4429 fra.me.line = 659;
4430 fra.me.meth = LOCATE_compiling_icode___IStaticCall___compile_call_to_c;
4431 fra.me.has_broke = 0;
4432 fra.me.REG_size = 3;
4433 fra.me.REG[0] = NIT_NULL;
4434 fra.me.REG[1] = NIT_NULL;
4435 fra.me.REG[2] = NIT_NULL;
4436 fra.me.REG[0] = p0;
4437 fra.me.REG[1] = p1;
4438 fra.me.REG[2] = p2;
4439 /* ./compiling//compiling_icode.nit:661 */
4440 fra.me.REG[1] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4441 /* ./compiling//compiling_icode.nit:662 */
4442 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
4443 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
4444 if (UNTAG_Bool(REGB0)) {
4445 if (!once_value_1) {
4446 fra.me.REG[1] = BOX_NativeString("init_table");
4447 REGB0 = TAG_Int(10);
4448 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4449 once_value_1 = fra.me.REG[1];
4450 register_static_object(&once_value_1);
4451 } else fra.me.REG[1] = once_value_1;
4452 fra.me.REG[1] = fra.me.REG[1];
4453 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4454 }
4455 /* ./compiling//compiling_icode.nit:663 */
4456 fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
4457 /* ./compiling//compiling_icode.nit:664 */
4458 fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4459 fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4460 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4461 /* ./compiling//compiling_icode.nit:665 */
4462 if (!once_value_2) {
4463 fra.me.REG[0] = BOX_NativeString("(");
4464 REGB0 = TAG_Int(1);
4465 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4466 once_value_2 = fra.me.REG[0];
4467 register_static_object(&once_value_2);
4468 } else fra.me.REG[0] = once_value_2;
4469 fra.me.REG[0] = fra.me.REG[0];
4470 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4471 /* ./compiling//compiling_icode.nit:666 */
4472 if (!once_value_3) {
4473 fra.me.REG[0] = BOX_NativeString(", ");
4474 REGB0 = TAG_Int(2);
4475 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4476 once_value_3 = fra.me.REG[0];
4477 register_static_object(&once_value_3);
4478 } else fra.me.REG[0] = once_value_3;
4479 fra.me.REG[0] = fra.me.REG[0];
4480 CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4481 /* ./compiling//compiling_icode.nit:667 */
4482 if (!once_value_4) {
4483 fra.me.REG[0] = BOX_NativeString(")");
4484 REGB0 = TAG_Int(1);
4485 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4486 once_value_4 = fra.me.REG[0];
4487 register_static_object(&once_value_4);
4488 } else fra.me.REG[0] = once_value_4;
4489 fra.me.REG[0] = fra.me.REG[0];
4490 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4491 /* ./compiling//compiling_icode.nit:668 */
4492 goto label5;
4493 label5: while(0);
4494 stack_frame_head = fra.me.prev;
4495 return fra.me.REG[1];
4496 }
4497 void compiling_icode___INative___compile_to_c(val_t p0, val_t p1){
4498 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4499 val_t REGB0;
4500 val_t tmp;
4501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4502 fra.me.file = LOCATE_compiling_icode;
4503 fra.me.line = 673;
4504 fra.me.meth = LOCATE_compiling_icode___INative___compile_to_c;
4505 fra.me.has_broke = 0;
4506 fra.me.REG_size = 3;
4507 fra.me.REG[0] = NIT_NULL;
4508 fra.me.REG[1] = NIT_NULL;
4509 fra.me.REG[2] = NIT_NULL;
4510 fra.me.REG[0] = p0;
4511 fra.me.REG[1] = p1;
4512 /* ./compiling//compiling_icode.nit:675 */
4513 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4514 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4515 /* ./compiling//compiling_icode.nit:676 */
4516 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4517 REGB0 = CALL_abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]);
4518 if (UNTAG_Bool(REGB0)) {
4519 /* ./compiling//compiling_icode.nit:677 */
4520 CALL_compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4521 } else {
4522 /* ./compiling//compiling_icode.nit:679 */
4523 CALL_compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4524 }
4525 stack_frame_head = fra.me.prev;
4526 return;
4527 }
4528 void compiling_icode___INative___compile_extern_method_to_c(val_t p0, val_t p1){
4529 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4530 val_t REGB0;
4531 val_t REGB1;
4532 val_t REGB2;
4533 val_t REGB3;
4534 val_t REGB4;
4535 val_t tmp;
4536 static val_t once_value_4; /* Once value */
4537 static val_t once_value_5; /* Once value */
4538 static val_t once_value_6; /* Once value */
4539 static val_t once_value_7; /* Once value */
4540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4541 fra.me.file = LOCATE_compiling_icode;
4542 fra.me.line = 683;
4543 fra.me.meth = LOCATE_compiling_icode___INative___compile_extern_method_to_c;
4544 fra.me.has_broke = 0;
4545 fra.me.REG_size = 8;
4546 fra.me.REG[0] = NIT_NULL;
4547 fra.me.REG[1] = NIT_NULL;
4548 fra.me.REG[2] = NIT_NULL;
4549 fra.me.REG[3] = NIT_NULL;
4550 fra.me.REG[4] = NIT_NULL;
4551 fra.me.REG[5] = NIT_NULL;
4552 fra.me.REG[6] = NIT_NULL;
4553 fra.me.REG[7] = NIT_NULL;
4554 fra.me.REG[0] = p0;
4555 fra.me.REG[1] = p1;
4556 /* ./compiling//compiling_icode.nit:685 */
4557 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4558 fra.me.REG[2] = CALL_abstractmetamodel___MMMethod___extern_name(fra.me.REG[2])(fra.me.REG[2]);
4559 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_String, ID_String)) /*cast String*/;
4560 if (UNTAG_Bool(REGB0)) {
4561 } else {
4562 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 685);
4563 }
4564 /* ./compiling//compiling_icode.nit:686 */
4565 fra.me.REG[3] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4566 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
4567 /* ./compiling//compiling_icode.nit:687 */
4568 fra.me.REG[4] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4569 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
4570 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4571 if (UNTAG_Bool(REGB1)) {
4572 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 687);
4573 }
4574 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
4575 REGB2 = TAG_Int(1);
4576 /* ./../lib/standard//kernel.nit:215 */
4577 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4578 /* ./compiling//compiling_icode.nit:687 */
4579 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4580 if (UNTAG_Bool(REGB1)) {
4581 } else {
4582 /* ./../lib/standard//kernel.nit:207 */
4583 REGB2 = TAG_Bool((REGB0)==(REGB2));
4584 /* ./compiling//compiling_icode.nit:687 */
4585 REGB1 = REGB2;
4586 }
4587 if (UNTAG_Bool(REGB1)) {
4588 } else {
4589 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 687);
4590 }
4591 /* ./compiling//compiling_icode.nit:689 */
4592 fra.me.REG[4] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4593 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4594 /* ./compiling//compiling_icode.nit:691 */
4595 fra.me.REG[5] = NEW_Array_array___Array___init();
4596 /* ./compiling//compiling_icode.nit:692 */
4597 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4598 if (UNTAG_Bool(REGB1)) {
4599 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 692);
4600 }
4601 fra.me.REG[6] = CALL_static_type___MMSignature___recv(fra.me.REG[3])(fra.me.REG[3]);
4602 REGB1 = TAG_Int(0);
4603 /* ./../lib/standard//collection//array.nit:243 */
4604 fra.me.REG[7] = fra.me.REG[4];
4605 /* ./../lib/standard//collection//array.nit:245 */
4606 REGB2 = TAG_Int(0);
4607 /* ./../lib/standard//kernel.nit:213 */
4608 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4609 /* ./../lib/standard//collection//array.nit:245 */
4610 if (UNTAG_Bool(REGB2)) {
4611 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
4612 if (UNTAG_Bool(REGB2)) {
4613 } else {
4614 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4615 }
4616 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
4617 /* ./../lib/standard//kernel.nit:212 */
4618 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4619 } else {
4620 /* ./../lib/standard//collection//array.nit:245 */
4621 REGB0 = TAG_Bool(false);
4622 REGB2 = REGB0;
4623 }
4624 if (UNTAG_Bool(REGB2)) {
4625 } else {
4626 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4627 }
4628 /* ./../lib/standard//collection//array.nit:246 */
4629 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
4630 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4631 if (UNTAG_Bool(REGB2)) {
4632 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4633 }
4634 /* ./../lib/standard//collection//array.nit:654 */
4635 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
4636 /* ./../lib/standard//collection//array.nit:246 */
4637 goto label1;
4638 label1: while(0);
4639 /* ./compiling//compiling_icode.nit:692 */
4640 fra.me.REG[7] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4642 /* ./compiling//compiling_icode.nit:693 */
4643 REGB1 = TAG_Int(0);
4644 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4645 if (UNTAG_Bool(REGB2)) {
4646 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 693);
4647 }
4648 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
4649 /* ./../lib/standard//kernel.nit:332 */
4650 while(1) {
4651 /* ./../lib/standard//kernel.nit:212 */
4652 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4653 /* ./../lib/standard//kernel.nit:332 */
4654 if (UNTAG_Bool(REGB0)) {
4655 /* ./compiling//compiling_icode.nit:693 */
4656 REGB0 = REGB1;
4657 /* ./compiling//compiling_icode.nit:694 */
4658 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4659 if (UNTAG_Bool(REGB3)) {
4660 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 694);
4661 }
4662 fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB0);
4663 REGB3 = TAG_Int(1);
4664 /* ./../lib/standard//kernel.nit:215 */
4665 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4666 /* ./../lib/standard//collection//array.nit:243 */
4667 fra.me.REG[6] = fra.me.REG[4];
4668 /* ./../lib/standard//collection//array.nit:245 */
4669 REGB0 = TAG_Int(0);
4670 /* ./../lib/standard//kernel.nit:213 */
4671 REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
4672 /* ./../lib/standard//collection//array.nit:245 */
4673 if (UNTAG_Bool(REGB0)) {
4674 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4675 if (UNTAG_Bool(REGB0)) {
4676 } else {
4677 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4678 }
4679 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
4680 /* ./../lib/standard//kernel.nit:212 */
4681 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
4682 } else {
4683 /* ./../lib/standard//collection//array.nit:245 */
4684 REGB4 = TAG_Bool(false);
4685 REGB0 = REGB4;
4686 }
4687 if (UNTAG_Bool(REGB0)) {
4688 } else {
4689 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4690 }
4691 /* ./../lib/standard//collection//array.nit:246 */
4692 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
4693 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4694 if (UNTAG_Bool(REGB0)) {
4695 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4696 }
4697 /* ./../lib/standard//collection//array.nit:654 */
4698 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
4699 /* ./../lib/standard//collection//array.nit:246 */
4700 goto label2;
4701 label2: while(0);
4702 /* ./compiling//compiling_icode.nit:694 */
4703 fra.me.REG[6] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
4704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4705 /* ./../lib/standard//kernel.nit:334 */
4706 REGB3 = TAG_Int(1);
4707 /* ./../lib/standard//kernel.nit:215 */
4708 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
4709 /* ./../lib/standard//kernel.nit:334 */
4710 REGB1 = REGB3;
4711 } else {
4712 /* ./../lib/standard//kernel.nit:332 */
4713 goto label3;
4714 }
4715 }
4716 label3: while(0);
4717 /* ./compiling//compiling_icode.nit:696 */
4718 REGB1 = TAG_Int(5);
4719 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
4720 if (!once_value_4) {
4721 fra.me.REG[6] = BOX_NativeString("");
4722 REGB1 = TAG_Int(0);
4723 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
4724 once_value_4 = fra.me.REG[6];
4725 register_static_object(&once_value_4);
4726 } else fra.me.REG[6] = once_value_4;
4727 fra.me.REG[6] = fra.me.REG[6];
4728 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
4729 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
4730 if (!once_value_5) {
4731 fra.me.REG[2] = BOX_NativeString("(");
4732 REGB1 = TAG_Int(1);
4733 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4734 once_value_5 = fra.me.REG[2];
4735 register_static_object(&once_value_5);
4736 } else fra.me.REG[2] = once_value_5;
4737 fra.me.REG[2] = fra.me.REG[2];
4738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
4739 if (!once_value_6) {
4740 fra.me.REG[2] = BOX_NativeString(", ");
4741 REGB1 = TAG_Int(2);
4742 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4743 once_value_6 = fra.me.REG[2];
4744 register_static_object(&once_value_6);
4745 } else fra.me.REG[2] = once_value_6;
4746 fra.me.REG[2] = fra.me.REG[2];
4747 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
4748 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
4749 if (!once_value_7) {
4750 fra.me.REG[2] = BOX_NativeString(")");
4751 REGB1 = TAG_Int(1);
4752 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4753 once_value_7 = fra.me.REG[2];
4754 register_static_object(&once_value_7);
4755 } else fra.me.REG[2] = once_value_7;
4756 fra.me.REG[2] = fra.me.REG[2];
4757 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
4758 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4759 /* ./compiling//compiling_icode.nit:698 */
4760 REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
4761 if (UNTAG_Bool(REGB1)) {
4762 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4763 if (UNTAG_Bool(REGB1)) {
4764 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 698);
4765 }
4766 fra.me.REG[3] = CALL_static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
4767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4768 if (UNTAG_Bool(REGB1)) {
4769 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 698);
4770 }
4771 fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4772 fra.me.REG[4] = fra.me.REG[3];
4773 }
4774 /* ./compiling//compiling_icode.nit:699 */
4775 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4776 /* ./compiling//compiling_icode.nit:700 */
4777 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4778 stack_frame_head = fra.me.prev;
4779 return;
4780 }
4781 void compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){
4782 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4783 val_t REGB0;
4784 val_t REGB1;
4785 val_t REGB2;
4786 val_t tmp;
4787 static val_t once_value_1; /* Once value */
4788 static val_t once_value_2; /* Once value */
4789 static val_t once_value_3; /* Once value */
4790 static val_t once_value_4; /* Once value */
4791 static val_t once_value_6; /* Once value */
4792 static val_t once_value_7; /* Once value */
4793 static val_t once_value_8; /* Once value */
4794 static val_t once_value_10; /* Once value */
4795 static val_t once_value_11; /* Once value */
4796 static val_t once_value_12; /* Once value */
4797 static val_t once_value_13; /* Once value */
4798 static val_t once_value_15; /* Once value */
4799 static val_t once_value_16; /* Once value */
4800 static val_t once_value_17; /* Once value */
4801 static val_t once_value_18; /* Once value */
4802 static val_t once_value_20; /* Once value */
4803 static val_t once_value_21; /* Once value */
4804 static val_t once_value_22; /* Once value */
4805 static val_t once_value_23; /* Once value */
4806 static val_t once_value_25; /* Once value */
4807 static val_t once_value_26; /* Once value */
4808 static val_t once_value_27; /* Once value */
4809 static val_t once_value_28; /* Once value */
4810 static val_t once_value_30; /* Once value */
4811 static val_t once_value_31; /* Once value */
4812 static val_t once_value_32; /* Once value */
4813 static val_t once_value_33; /* Once value */
4814 static val_t once_value_35; /* Once value */
4815 static val_t once_value_36; /* Once value */
4816 static val_t once_value_37; /* Once value */
4817 static val_t once_value_38; /* Once value */
4818 static val_t once_value_40; /* Once value */
4819 static val_t once_value_42; /* Once value */
4820 static val_t once_value_43; /* Once value */
4821 static val_t once_value_44; /* Once value */
4822 static val_t once_value_45; /* Once value */
4823 static val_t once_value_47; /* Once value */
4824 static val_t once_value_49; /* Once value */
4825 static val_t once_value_50; /* Once value */
4826 static val_t once_value_51; /* Once value */
4827 static val_t once_value_52; /* Once value */
4828 static val_t once_value_54; /* Once value */
4829 static val_t once_value_56; /* Once value */
4830 static val_t once_value_57; /* Once value */
4831 static val_t once_value_58; /* Once value */
4832 static val_t once_value_59; /* Once value */
4833 static val_t once_value_61; /* Once value */
4834 static val_t once_value_63; /* Once value */
4835 static val_t once_value_64; /* Once value */
4836 static val_t once_value_65; /* Once value */
4837 static val_t once_value_66; /* Once value */
4838 static val_t once_value_68; /* Once value */
4839 static val_t once_value_70; /* Once value */
4840 static val_t once_value_71; /* Once value */
4841 static val_t once_value_72; /* Once value */
4842 static val_t once_value_73; /* Once value */
4843 static val_t once_value_75; /* Once value */
4844 static val_t once_value_77; /* Once value */
4845 static val_t once_value_78; /* Once value */
4846 static val_t once_value_79; /* Once value */
4847 static val_t once_value_80; /* Once value */
4848 static val_t once_value_82; /* Once value */
4849 static val_t once_value_84; /* Once value */
4850 static val_t once_value_85; /* Once value */
4851 static val_t once_value_86; /* Once value */
4852 static val_t once_value_87; /* Once value */
4853 static val_t once_value_89; /* Once value */
4854 static val_t once_value_91; /* Once value */
4855 static val_t once_value_92; /* Once value */
4856 static val_t once_value_93; /* Once value */
4857 static val_t once_value_94; /* Once value */
4858 static val_t once_value_96; /* Once value */
4859 static val_t once_value_98; /* Once value */
4860 static val_t once_value_99; /* Once value */
4861 static val_t once_value_100; /* Once value */
4862 static val_t once_value_101; /* Once value */
4863 static val_t once_value_103; /* Once value */
4864 static val_t once_value_105; /* Once value */
4865 static val_t once_value_106; /* Once value */
4866 static val_t once_value_107; /* Once value */
4867 static val_t once_value_108; /* Once value */
4868 static val_t once_value_110; /* Once value */
4869 static val_t once_value_112; /* Once value */
4870 static val_t once_value_113; /* Once value */
4871 static val_t once_value_114; /* Once value */
4872 static val_t once_value_115; /* Once value */
4873 static val_t once_value_117; /* Once value */
4874 static val_t once_value_119; /* Once value */
4875 static val_t once_value_120; /* Once value */
4876 static val_t once_value_121; /* Once value */
4877 static val_t once_value_122; /* Once value */
4878 static val_t once_value_124; /* Once value */
4879 static val_t once_value_126; /* Once value */
4880 static val_t once_value_127; /* Once value */
4881 static val_t once_value_128; /* Once value */
4882 static val_t once_value_129; /* Once value */
4883 static val_t once_value_130; /* Once value */
4884 static val_t once_value_131; /* Once value */
4885 static val_t once_value_133; /* Once value */
4886 static val_t once_value_134; /* Once value */
4887 static val_t once_value_135; /* Once value */
4888 static val_t once_value_136; /* Once value */
4889 static val_t once_value_138; /* Once value */
4890 static val_t once_value_139; /* Once value */
4891 static val_t once_value_140; /* Once value */
4892 static val_t once_value_141; /* Once value */
4893 static val_t once_value_143; /* Once value */
4894 static val_t once_value_144; /* Once value */
4895 static val_t once_value_145; /* Once value */
4896 static val_t once_value_146; /* Once value */
4897 static val_t once_value_148; /* Once value */
4898 static val_t once_value_149; /* Once value */
4899 static val_t once_value_150; /* Once value */
4900 static val_t once_value_151; /* Once value */
4901 static val_t once_value_153; /* Once value */
4902 static val_t once_value_155; /* Once value */
4903 static val_t once_value_156; /* Once value */
4904 static val_t once_value_157; /* Once value */
4905 static val_t once_value_158; /* Once value */
4906 static val_t once_value_160; /* Once value */
4907 static val_t once_value_162; /* Once value */
4908 static val_t once_value_163; /* Once value */
4909 static val_t once_value_164; /* Once value */
4910 static val_t once_value_165; /* Once value */
4911 static val_t once_value_167; /* Once value */
4912 static val_t once_value_169; /* Once value */
4913 static val_t once_value_170; /* Once value */
4914 static val_t once_value_171; /* Once value */
4915 static val_t once_value_172; /* Once value */
4916 static val_t once_value_174; /* Once value */
4917 static val_t once_value_176; /* Once value */
4918 static val_t once_value_177; /* Once value */
4919 static val_t once_value_178; /* Once value */
4920 static val_t once_value_179; /* Once value */
4921 static val_t once_value_181; /* Once value */
4922 static val_t once_value_183; /* Once value */
4923 static val_t once_value_184; /* Once value */
4924 static val_t once_value_185; /* Once value */
4925 static val_t once_value_186; /* Once value */
4926 static val_t once_value_188; /* Once value */
4927 static val_t once_value_190; /* Once value */
4928 static val_t once_value_191; /* Once value */
4929 static val_t once_value_192; /* Once value */
4930 static val_t once_value_193; /* Once value */
4931 static val_t once_value_195; /* Once value */
4932 static val_t once_value_197; /* Once value */
4933 static val_t once_value_198; /* Once value */
4934 static val_t once_value_199; /* Once value */
4935 static val_t once_value_200; /* Once value */
4936 static val_t once_value_202; /* Once value */
4937 static val_t once_value_204; /* Once value */
4938 static val_t once_value_205; /* Once value */
4939 static val_t once_value_206; /* Once value */
4940 static val_t once_value_207; /* Once value */
4941 static val_t once_value_208; /* Once value */
4942 static val_t once_value_209; /* Once value */
4943 static val_t once_value_211; /* Once value */
4944 static val_t once_value_212; /* Once value */
4945 static val_t once_value_213; /* Once value */
4946 static val_t once_value_214; /* Once value */
4947 static val_t once_value_216; /* Once value */
4948 static val_t once_value_217; /* Once value */
4949 static val_t once_value_218; /* Once value */
4950 static val_t once_value_219; /* Once value */
4951 static val_t once_value_221; /* Once value */
4952 static val_t once_value_222; /* Once value */
4953 static val_t once_value_223; /* Once value */
4954 static val_t once_value_224; /* Once value */
4955 static val_t once_value_226; /* Once value */
4956 static val_t once_value_227; /* Once value */
4957 static val_t once_value_228; /* Once value */
4958 static val_t once_value_229; /* Once value */
4959 static val_t once_value_231; /* Once value */
4960 static val_t once_value_232; /* Once value */
4961 static val_t once_value_233; /* Once value */
4962 static val_t once_value_234; /* Once value */
4963 static val_t once_value_236; /* Once value */
4964 static val_t once_value_237; /* Once value */
4965 static val_t once_value_238; /* Once value */
4966 static val_t once_value_239; /* Once value */
4967 static val_t once_value_241; /* Once value */
4968 static val_t once_value_242; /* Once value */
4969 static val_t once_value_243; /* Once value */
4970 static val_t once_value_244; /* Once value */
4971 static val_t once_value_246; /* Once value */
4972 static val_t once_value_248; /* Once value */
4973 static val_t once_value_249; /* Once value */
4974 static val_t once_value_250; /* Once value */
4975 static val_t once_value_251; /* Once value */
4976 static val_t once_value_253; /* Once value */
4977 static val_t once_value_255; /* Once value */
4978 static val_t once_value_256; /* Once value */
4979 static val_t once_value_257; /* Once value */
4980 static val_t once_value_258; /* Once value */
4981 static val_t once_value_260; /* Once value */
4982 static val_t once_value_262; /* Once value */
4983 static val_t once_value_263; /* Once value */
4984 static val_t once_value_264; /* Once value */
4985 static val_t once_value_265; /* Once value */
4986 static val_t once_value_267; /* Once value */
4987 static val_t once_value_269; /* Once value */
4988 static val_t once_value_270; /* Once value */
4989 static val_t once_value_271; /* Once value */
4990 static val_t once_value_272; /* Once value */
4991 static val_t once_value_274; /* Once value */
4992 static val_t once_value_276; /* Once value */
4993 static val_t once_value_277; /* Once value */
4994 static val_t once_value_278; /* Once value */
4995 static val_t once_value_279; /* Once value */
4996 static val_t once_value_281; /* Once value */
4997 static val_t once_value_283; /* Once value */
4998 static val_t once_value_284; /* Once value */
4999 static val_t once_value_285; /* Once value */
5000 static val_t once_value_286; /* Once value */
5001 static val_t once_value_288; /* Once value */
5002 static val_t once_value_290; /* Once value */
5003 static val_t once_value_291; /* Once value */
5004 static val_t once_value_292; /* Once value */
5005 static val_t once_value_293; /* Once value */
5006 static val_t once_value_295; /* Once value */
5007 static val_t once_value_297; /* Once value */
5008 static val_t once_value_298; /* Once value */
5009 static val_t once_value_299; /* Once value */
5010 static val_t once_value_300; /* Once value */
5011 static val_t once_value_302; /* Once value */
5012 static val_t once_value_304; /* Once value */
5013 static val_t once_value_305; /* Once value */
5014 static val_t once_value_306; /* Once value */
5015 static val_t once_value_307; /* Once value */
5016 static val_t once_value_309; /* Once value */
5017 static val_t once_value_311; /* Once value */
5018 static val_t once_value_312; /* Once value */
5019 static val_t once_value_313; /* Once value */
5020 static val_t once_value_314; /* Once value */
5021 static val_t once_value_316; /* Once value */
5022 static val_t once_value_318; /* Once value */
5023 static val_t once_value_319; /* Once value */
5024 static val_t once_value_320; /* Once value */
5025 static val_t once_value_321; /* Once value */
5026 static val_t once_value_322; /* Once value */
5027 static val_t once_value_323; /* Once value */
5028 static val_t once_value_325; /* Once value */
5029 static val_t once_value_326; /* Once value */
5030 static val_t once_value_327; /* Once value */
5031 static val_t once_value_328; /* Once value */
5032 static val_t once_value_330; /* Once value */
5033 static val_t once_value_331; /* Once value */
5034 static val_t once_value_332; /* Once value */
5035 static val_t once_value_333; /* Once value */
5036 static val_t once_value_335; /* Once value */
5037 static val_t once_value_336; /* Once value */
5038 static val_t once_value_337; /* Once value */
5039 static val_t once_value_338; /* Once value */
5040 static val_t once_value_340; /* Once value */
5041 static val_t once_value_341; /* Once value */
5042 static val_t once_value_342; /* Once value */
5043 static val_t once_value_343; /* Once value */
5044 static val_t once_value_345; /* Once value */
5045 static val_t once_value_346; /* Once value */
5046 static val_t once_value_347; /* Once value */
5047 static val_t once_value_348; /* Once value */
5048 static val_t once_value_350; /* Once value */
5049 static val_t once_value_352; /* Once value */
5050 static val_t once_value_353; /* Once value */
5051 static val_t once_value_354; /* Once value */
5052 static val_t once_value_355; /* Once value */
5053 static val_t once_value_357; /* Once value */
5054 static val_t once_value_359; /* Once value */
5055 static val_t once_value_360; /* Once value */
5056 static val_t once_value_361; /* Once value */
5057 static val_t once_value_362; /* Once value */
5058 static val_t once_value_363; /* Once value */
5059 static val_t once_value_364; /* Once value */
5060 static val_t once_value_366; /* Once value */
5061 static val_t once_value_367; /* Once value */
5062 static val_t once_value_368; /* Once value */
5063 static val_t once_value_369; /* Once value */
5064 static val_t once_value_371; /* Once value */
5065 static val_t once_value_373; /* Once value */
5066 static val_t once_value_374; /* Once value */
5067 static val_t once_value_375; /* Once value */
5068 static val_t once_value_376; /* Once value */
5069 static val_t once_value_378; /* Once value */
5070 static val_t once_value_380; /* Once value */
5071 static val_t once_value_382; /* Once value */
5072 static val_t once_value_383; /* Once value */
5073 static val_t once_value_384; /* Once value */
5074 static val_t once_value_385; /* Once value */
5075 static val_t once_value_387; /* Once value */
5076 static val_t once_value_389; /* Once value */
5077 static val_t once_value_391; /* Once value */
5078 static val_t once_value_392; /* Once value */
5079 static val_t once_value_393; /* Once value */
5080 static val_t once_value_394; /* Once value */
5081 static val_t once_value_395; /* Once value */
5082 static val_t once_value_396; /* Once value */
5083 static val_t once_value_398; /* Once value */
5084 static val_t once_value_399; /* Once value */
5085 static val_t once_value_400; /* Once value */
5086 static val_t once_value_401; /* Once value */
5087 static val_t once_value_403; /* Once value */
5088 static val_t once_value_404; /* Once value */
5089 static val_t once_value_405; /* Once value */
5090 static val_t once_value_406; /* Once value */
5091 static val_t once_value_408; /* Once value */
5092 static val_t once_value_410; /* Once value */
5093 static val_t once_value_411; /* Once value */
5094 static val_t once_value_412; /* Once value */
5095 static val_t once_value_413; /* Once value */
5096 static val_t once_value_415; /* Once value */
5097 static val_t once_value_417; /* Once value */
5098 static val_t once_value_419; /* Once value */
5099 static val_t once_value_420; /* Once value */
5100 static val_t once_value_421; /* Once value */
5101 static val_t once_value_422; /* Once value */
5102 static val_t once_value_424; /* Once value */
5103 static val_t once_value_426; /* Once value */
5104 static val_t once_value_428; /* Once value */
5105 static val_t once_value_430; /* Once value */
5106 static val_t once_value_432; /* Once value */
5107 static val_t once_value_433; /* Once value */
5108 static val_t once_value_434; /* Once value */
5109 static val_t once_value_435; /* Once value */
5110 static val_t once_value_437; /* Once value */
5111 static val_t once_value_438; /* Once value */
5112 static val_t once_value_439; /* Once value */
5113 static val_t once_value_440; /* Once value */
5114 static val_t once_value_441; /* Once value */
5115 static val_t once_value_442; /* Once value */
5116 static val_t once_value_443; /* Once value */
5117 static val_t once_value_445; /* Once value */
5118 static val_t once_value_447; /* Once value */
5119 static val_t once_value_448; /* Once value */
5120 static val_t once_value_449; /* Once value */
5121 static val_t once_value_450; /* Once value */
5122 static val_t once_value_452; /* Once value */
5123 static val_t once_value_453; /* Once value */
5124 static val_t once_value_454; /* Once value */
5125 static val_t once_value_455; /* Once value */
5126 static val_t once_value_457; /* Once value */
5127 static val_t once_value_458; /* Once value */
5128 static val_t once_value_459; /* Once value */
5129 static val_t once_value_460; /* Once value */
5130 static val_t once_value_462; /* Once value */
5131 static val_t once_value_463; /* Once value */
5132 static val_t once_value_464; /* Once value */
5133 static val_t once_value_465; /* Once value */
5134 static val_t once_value_466; /* Once value */
5135 static val_t once_value_467; /* Once value */
5136 static val_t once_value_468; /* Once value */
5137 static val_t once_value_469; /* Once value */
5138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5139 fra.me.file = LOCATE_compiling_icode;
5140 fra.me.line = 703;
5141 fra.me.meth = LOCATE_compiling_icode___INative___compile_intern_method_to_c;
5142 fra.me.has_broke = 0;
5143 fra.me.REG_size = 8;
5144 fra.me.REG[0] = NIT_NULL;
5145 fra.me.REG[1] = NIT_NULL;
5146 fra.me.REG[2] = NIT_NULL;
5147 fra.me.REG[3] = NIT_NULL;
5148 fra.me.REG[4] = NIT_NULL;
5149 fra.me.REG[5] = NIT_NULL;
5150 fra.me.REG[6] = NIT_NULL;
5151 fra.me.REG[7] = NIT_NULL;
5152 fra.me.REG[0] = p0;
5153 fra.me.REG[1] = p1;
5154 /* ./compiling//compiling_icode.nit:705 */
5155 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5156 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5157 /* ./compiling//compiling_icode.nit:706 */
5158 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5159 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5160 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5161 if (UNTAG_Bool(REGB1)) {
5162 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 706);
5163 }
5164 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5165 REGB2 = TAG_Int(1);
5166 /* ./../lib/standard//kernel.nit:215 */
5167 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5168 /* ./compiling//compiling_icode.nit:706 */
5169 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5170 if (UNTAG_Bool(REGB1)) {
5171 } else {
5172 /* ./../lib/standard//kernel.nit:207 */
5173 REGB2 = TAG_Bool((REGB0)==(REGB2));
5174 /* ./compiling//compiling_icode.nit:706 */
5175 REGB1 = REGB2;
5176 }
5177 if (UNTAG_Bool(REGB1)) {
5178 } else {
5179 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 706);
5180 }
5181 /* ./compiling//compiling_icode.nit:707 */
5182 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5183 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5184 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5185 /* ./compiling//compiling_icode.nit:708 */
5186 fra.me.REG[3] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5187 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5188 /* ./compiling//compiling_icode.nit:709 */
5189 fra.me.REG[4] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5190 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5191 /* ./compiling//compiling_icode.nit:710 */
5192 fra.me.REG[5] = NIT_NULL;
5193 /* ./compiling//compiling_icode.nit:711 */
5194 if (!once_value_1) {
5195 if (!once_value_2) {
5196 fra.me.REG[6] = BOX_NativeString("Int");
5197 REGB1 = TAG_Int(3);
5198 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5199 once_value_2 = fra.me.REG[6];
5200 register_static_object(&once_value_2);
5201 } else fra.me.REG[6] = once_value_2;
5202 fra.me.REG[6] = fra.me.REG[6];
5203 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5204 once_value_1 = fra.me.REG[6];
5205 register_static_object(&once_value_1);
5206 } else fra.me.REG[6] = once_value_1;
5207 fra.me.REG[6] = fra.me.REG[6];
5208 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5209 if (UNTAG_Bool(REGB1)) {
5210 } else {
5211 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5212 REGB1 = REGB2;
5213 }
5214 if (UNTAG_Bool(REGB1)) {
5215 /* ./compiling//compiling_icode.nit:712 */
5216 if (!once_value_3) {
5217 if (!once_value_4) {
5218 fra.me.REG[6] = BOX_NativeString("object_id");
5219 REGB1 = TAG_Int(9);
5220 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5221 once_value_4 = fra.me.REG[6];
5222 register_static_object(&once_value_4);
5223 } else fra.me.REG[6] = once_value_4;
5224 fra.me.REG[6] = fra.me.REG[6];
5225 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5226 once_value_3 = fra.me.REG[6];
5227 register_static_object(&once_value_3);
5228 } else fra.me.REG[6] = once_value_3;
5229 fra.me.REG[6] = fra.me.REG[6];
5230 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5231 if (UNTAG_Bool(REGB1)) {
5232 } else {
5233 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5234 REGB1 = REGB2;
5235 }
5236 if (UNTAG_Bool(REGB1)) {
5237 /* ./compiling//compiling_icode.nit:713 */
5238 REGB1 = TAG_Int(0);
5239 /* ./../lib/standard//collection//array.nit:243 */
5240 fra.me.REG[6] = fra.me.REG[4];
5241 /* ./../lib/standard//collection//array.nit:245 */
5242 REGB2 = TAG_Int(0);
5243 /* ./../lib/standard//kernel.nit:213 */
5244 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5245 /* ./../lib/standard//collection//array.nit:245 */
5246 if (UNTAG_Bool(REGB2)) {
5247 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5248 if (UNTAG_Bool(REGB2)) {
5249 } else {
5250 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5251 }
5252 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
5253 /* ./../lib/standard//kernel.nit:212 */
5254 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5255 } else {
5256 /* ./../lib/standard//collection//array.nit:245 */
5257 REGB0 = TAG_Bool(false);
5258 REGB2 = REGB0;
5259 }
5260 if (UNTAG_Bool(REGB2)) {
5261 } else {
5262 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5263 }
5264 /* ./../lib/standard//collection//array.nit:246 */
5265 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
5266 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5267 if (UNTAG_Bool(REGB2)) {
5268 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5269 }
5270 /* ./../lib/standard//collection//array.nit:654 */
5271 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5272 /* ./../lib/standard//collection//array.nit:246 */
5273 goto label5;
5274 label5: while(0);
5275 /* ./compiling//compiling_icode.nit:713 */
5276 fra.me.REG[5] = fra.me.REG[6];
5277 } else {
5278 /* ./compiling//compiling_icode.nit:714 */
5279 if (!once_value_6) {
5280 if (!once_value_7) {
5281 fra.me.REG[6] = BOX_NativeString("unary -");
5282 REGB1 = TAG_Int(7);
5283 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5284 once_value_7 = fra.me.REG[6];
5285 register_static_object(&once_value_7);
5286 } else fra.me.REG[6] = once_value_7;
5287 fra.me.REG[6] = fra.me.REG[6];
5288 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5289 once_value_6 = fra.me.REG[6];
5290 register_static_object(&once_value_6);
5291 } else fra.me.REG[6] = once_value_6;
5292 fra.me.REG[6] = fra.me.REG[6];
5293 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5294 if (UNTAG_Bool(REGB1)) {
5295 } else {
5296 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5297 REGB1 = REGB2;
5298 }
5299 if (UNTAG_Bool(REGB1)) {
5300 /* ./compiling//compiling_icode.nit:715 */
5301 REGB1 = TAG_Int(3);
5302 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5303 if (!once_value_8) {
5304 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5305 REGB1 = TAG_Int(19);
5306 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5307 once_value_8 = fra.me.REG[7];
5308 register_static_object(&once_value_8);
5309 } else fra.me.REG[7] = once_value_8;
5310 fra.me.REG[7] = fra.me.REG[7];
5311 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5312 REGB1 = TAG_Int(0);
5313 /* ./../lib/standard//collection//array.nit:243 */
5314 fra.me.REG[7] = fra.me.REG[4];
5315 /* ./../lib/standard//collection//array.nit:245 */
5316 REGB2 = TAG_Int(0);
5317 /* ./../lib/standard//kernel.nit:213 */
5318 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5319 /* ./../lib/standard//collection//array.nit:245 */
5320 if (UNTAG_Bool(REGB2)) {
5321 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5322 if (UNTAG_Bool(REGB2)) {
5323 } else {
5324 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5325 }
5326 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5327 /* ./../lib/standard//kernel.nit:212 */
5328 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5329 } else {
5330 /* ./../lib/standard//collection//array.nit:245 */
5331 REGB0 = TAG_Bool(false);
5332 REGB2 = REGB0;
5333 }
5334 if (UNTAG_Bool(REGB2)) {
5335 } else {
5336 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5337 }
5338 /* ./../lib/standard//collection//array.nit:246 */
5339 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5340 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5341 if (UNTAG_Bool(REGB2)) {
5342 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5343 }
5344 /* ./../lib/standard//collection//array.nit:654 */
5345 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5346 /* ./../lib/standard//collection//array.nit:246 */
5347 goto label9;
5348 label9: while(0);
5349 /* ./compiling//compiling_icode.nit:715 */
5350 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5351 if (!once_value_10) {
5352 fra.me.REG[7] = BOX_NativeString("))");
5353 REGB1 = TAG_Int(2);
5354 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5355 once_value_10 = fra.me.REG[7];
5356 register_static_object(&once_value_10);
5357 } else fra.me.REG[7] = once_value_10;
5358 fra.me.REG[7] = fra.me.REG[7];
5359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5360 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5361 fra.me.REG[5] = fra.me.REG[6];
5362 } else {
5363 /* ./compiling//compiling_icode.nit:716 */
5364 if (!once_value_11) {
5365 if (!once_value_12) {
5366 fra.me.REG[6] = BOX_NativeString("output");
5367 REGB1 = TAG_Int(6);
5368 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5369 once_value_12 = fra.me.REG[6];
5370 register_static_object(&once_value_12);
5371 } else fra.me.REG[6] = once_value_12;
5372 fra.me.REG[6] = fra.me.REG[6];
5373 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5374 once_value_11 = fra.me.REG[6];
5375 register_static_object(&once_value_11);
5376 } else fra.me.REG[6] = once_value_11;
5377 fra.me.REG[6] = fra.me.REG[6];
5378 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5379 if (UNTAG_Bool(REGB1)) {
5380 } else {
5381 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5382 REGB1 = REGB2;
5383 }
5384 if (UNTAG_Bool(REGB1)) {
5385 /* ./compiling//compiling_icode.nit:717 */
5386 REGB1 = TAG_Int(3);
5387 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5388 if (!once_value_13) {
5389 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5390 REGB1 = TAG_Int(26);
5391 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5392 once_value_13 = fra.me.REG[7];
5393 register_static_object(&once_value_13);
5394 } else fra.me.REG[7] = once_value_13;
5395 fra.me.REG[7] = fra.me.REG[7];
5396 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5397 REGB1 = TAG_Int(0);
5398 /* ./../lib/standard//collection//array.nit:243 */
5399 fra.me.REG[7] = fra.me.REG[4];
5400 /* ./../lib/standard//collection//array.nit:245 */
5401 REGB2 = TAG_Int(0);
5402 /* ./../lib/standard//kernel.nit:213 */
5403 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5404 /* ./../lib/standard//collection//array.nit:245 */
5405 if (UNTAG_Bool(REGB2)) {
5406 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5407 if (UNTAG_Bool(REGB2)) {
5408 } else {
5409 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5410 }
5411 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5412 /* ./../lib/standard//kernel.nit:212 */
5413 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5414 } else {
5415 /* ./../lib/standard//collection//array.nit:245 */
5416 REGB0 = TAG_Bool(false);
5417 REGB2 = REGB0;
5418 }
5419 if (UNTAG_Bool(REGB2)) {
5420 } else {
5421 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5422 }
5423 /* ./../lib/standard//collection//array.nit:246 */
5424 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5425 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5426 if (UNTAG_Bool(REGB2)) {
5427 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5428 }
5429 /* ./../lib/standard//collection//array.nit:654 */
5430 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5431 /* ./../lib/standard//collection//array.nit:246 */
5432 goto label14;
5433 label14: while(0);
5434 /* ./compiling//compiling_icode.nit:717 */
5435 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5436 if (!once_value_15) {
5437 fra.me.REG[7] = BOX_NativeString("));");
5438 REGB1 = TAG_Int(3);
5439 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5440 once_value_15 = fra.me.REG[7];
5441 register_static_object(&once_value_15);
5442 } else fra.me.REG[7] = once_value_15;
5443 fra.me.REG[7] = fra.me.REG[7];
5444 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5445 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5446 fra.me.REG[5] = fra.me.REG[6];
5447 } else {
5448 /* ./compiling//compiling_icode.nit:718 */
5449 if (!once_value_16) {
5450 if (!once_value_17) {
5451 fra.me.REG[6] = BOX_NativeString("ascii");
5452 REGB1 = TAG_Int(5);
5453 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5454 once_value_17 = fra.me.REG[6];
5455 register_static_object(&once_value_17);
5456 } else fra.me.REG[6] = once_value_17;
5457 fra.me.REG[6] = fra.me.REG[6];
5458 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5459 once_value_16 = fra.me.REG[6];
5460 register_static_object(&once_value_16);
5461 } else fra.me.REG[6] = once_value_16;
5462 fra.me.REG[6] = fra.me.REG[6];
5463 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5464 if (UNTAG_Bool(REGB1)) {
5465 } else {
5466 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5467 REGB1 = REGB2;
5468 }
5469 if (UNTAG_Bool(REGB1)) {
5470 /* ./compiling//compiling_icode.nit:719 */
5471 REGB1 = TAG_Int(3);
5472 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5473 if (!once_value_18) {
5474 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5475 REGB1 = TAG_Int(19);
5476 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5477 once_value_18 = fra.me.REG[7];
5478 register_static_object(&once_value_18);
5479 } else fra.me.REG[7] = once_value_18;
5480 fra.me.REG[7] = fra.me.REG[7];
5481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5482 REGB1 = TAG_Int(0);
5483 /* ./../lib/standard//collection//array.nit:243 */
5484 fra.me.REG[7] = fra.me.REG[4];
5485 /* ./../lib/standard//collection//array.nit:245 */
5486 REGB2 = TAG_Int(0);
5487 /* ./../lib/standard//kernel.nit:213 */
5488 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5489 /* ./../lib/standard//collection//array.nit:245 */
5490 if (UNTAG_Bool(REGB2)) {
5491 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5492 if (UNTAG_Bool(REGB2)) {
5493 } else {
5494 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5495 }
5496 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5497 /* ./../lib/standard//kernel.nit:212 */
5498 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5499 } else {
5500 /* ./../lib/standard//collection//array.nit:245 */
5501 REGB0 = TAG_Bool(false);
5502 REGB2 = REGB0;
5503 }
5504 if (UNTAG_Bool(REGB2)) {
5505 } else {
5506 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5507 }
5508 /* ./../lib/standard//collection//array.nit:246 */
5509 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5510 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5511 if (UNTAG_Bool(REGB2)) {
5512 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5513 }
5514 /* ./../lib/standard//collection//array.nit:654 */
5515 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5516 /* ./../lib/standard//collection//array.nit:246 */
5517 goto label19;
5518 label19: while(0);
5519 /* ./compiling//compiling_icode.nit:719 */
5520 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5521 if (!once_value_20) {
5522 fra.me.REG[7] = BOX_NativeString("))");
5523 REGB1 = TAG_Int(2);
5524 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5525 once_value_20 = fra.me.REG[7];
5526 register_static_object(&once_value_20);
5527 } else fra.me.REG[7] = once_value_20;
5528 fra.me.REG[7] = fra.me.REG[7];
5529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5530 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5531 fra.me.REG[5] = fra.me.REG[6];
5532 } else {
5533 /* ./compiling//compiling_icode.nit:720 */
5534 if (!once_value_21) {
5535 if (!once_value_22) {
5536 fra.me.REG[6] = BOX_NativeString("succ");
5537 REGB1 = TAG_Int(4);
5538 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5539 once_value_22 = fra.me.REG[6];
5540 register_static_object(&once_value_22);
5541 } else fra.me.REG[6] = once_value_22;
5542 fra.me.REG[6] = fra.me.REG[6];
5543 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5544 once_value_21 = fra.me.REG[6];
5545 register_static_object(&once_value_21);
5546 } else fra.me.REG[6] = once_value_21;
5547 fra.me.REG[6] = fra.me.REG[6];
5548 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5549 if (UNTAG_Bool(REGB1)) {
5550 } else {
5551 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5552 REGB1 = REGB2;
5553 }
5554 if (UNTAG_Bool(REGB1)) {
5555 /* ./compiling//compiling_icode.nit:721 */
5556 REGB1 = TAG_Int(3);
5557 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5558 if (!once_value_23) {
5559 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5560 REGB1 = TAG_Int(18);
5561 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5562 once_value_23 = fra.me.REG[7];
5563 register_static_object(&once_value_23);
5564 } else fra.me.REG[7] = once_value_23;
5565 fra.me.REG[7] = fra.me.REG[7];
5566 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5567 REGB1 = TAG_Int(0);
5568 /* ./../lib/standard//collection//array.nit:243 */
5569 fra.me.REG[7] = fra.me.REG[4];
5570 /* ./../lib/standard//collection//array.nit:245 */
5571 REGB2 = TAG_Int(0);
5572 /* ./../lib/standard//kernel.nit:213 */
5573 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5574 /* ./../lib/standard//collection//array.nit:245 */
5575 if (UNTAG_Bool(REGB2)) {
5576 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5577 if (UNTAG_Bool(REGB2)) {
5578 } else {
5579 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5580 }
5581 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5582 /* ./../lib/standard//kernel.nit:212 */
5583 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5584 } else {
5585 /* ./../lib/standard//collection//array.nit:245 */
5586 REGB0 = TAG_Bool(false);
5587 REGB2 = REGB0;
5588 }
5589 if (UNTAG_Bool(REGB2)) {
5590 } else {
5591 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5592 }
5593 /* ./../lib/standard//collection//array.nit:246 */
5594 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5595 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5596 if (UNTAG_Bool(REGB2)) {
5597 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5598 }
5599 /* ./../lib/standard//collection//array.nit:654 */
5600 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5601 /* ./../lib/standard//collection//array.nit:246 */
5602 goto label24;
5603 label24: while(0);
5604 /* ./compiling//compiling_icode.nit:721 */
5605 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5606 if (!once_value_25) {
5607 fra.me.REG[7] = BOX_NativeString(")+1)");
5608 REGB1 = TAG_Int(4);
5609 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5610 once_value_25 = fra.me.REG[7];
5611 register_static_object(&once_value_25);
5612 } else fra.me.REG[7] = once_value_25;
5613 fra.me.REG[7] = fra.me.REG[7];
5614 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5615 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5616 fra.me.REG[5] = fra.me.REG[6];
5617 } else {
5618 /* ./compiling//compiling_icode.nit:722 */
5619 if (!once_value_26) {
5620 if (!once_value_27) {
5621 fra.me.REG[6] = BOX_NativeString("prec");
5622 REGB1 = TAG_Int(4);
5623 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5624 once_value_27 = fra.me.REG[6];
5625 register_static_object(&once_value_27);
5626 } else fra.me.REG[6] = once_value_27;
5627 fra.me.REG[6] = fra.me.REG[6];
5628 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5629 once_value_26 = fra.me.REG[6];
5630 register_static_object(&once_value_26);
5631 } else fra.me.REG[6] = once_value_26;
5632 fra.me.REG[6] = fra.me.REG[6];
5633 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5634 if (UNTAG_Bool(REGB1)) {
5635 } else {
5636 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5637 REGB1 = REGB2;
5638 }
5639 if (UNTAG_Bool(REGB1)) {
5640 /* ./compiling//compiling_icode.nit:723 */
5641 REGB1 = TAG_Int(3);
5642 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5643 if (!once_value_28) {
5644 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5645 REGB1 = TAG_Int(18);
5646 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5647 once_value_28 = fra.me.REG[7];
5648 register_static_object(&once_value_28);
5649 } else fra.me.REG[7] = once_value_28;
5650 fra.me.REG[7] = fra.me.REG[7];
5651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5652 REGB1 = TAG_Int(0);
5653 /* ./../lib/standard//collection//array.nit:243 */
5654 fra.me.REG[7] = fra.me.REG[4];
5655 /* ./../lib/standard//collection//array.nit:245 */
5656 REGB2 = TAG_Int(0);
5657 /* ./../lib/standard//kernel.nit:213 */
5658 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5659 /* ./../lib/standard//collection//array.nit:245 */
5660 if (UNTAG_Bool(REGB2)) {
5661 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5662 if (UNTAG_Bool(REGB2)) {
5663 } else {
5664 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5665 }
5666 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5667 /* ./../lib/standard//kernel.nit:212 */
5668 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5669 } else {
5670 /* ./../lib/standard//collection//array.nit:245 */
5671 REGB0 = TAG_Bool(false);
5672 REGB2 = REGB0;
5673 }
5674 if (UNTAG_Bool(REGB2)) {
5675 } else {
5676 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5677 }
5678 /* ./../lib/standard//collection//array.nit:246 */
5679 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5680 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5681 if (UNTAG_Bool(REGB2)) {
5682 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5683 }
5684 /* ./../lib/standard//collection//array.nit:654 */
5685 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5686 /* ./../lib/standard//collection//array.nit:246 */
5687 goto label29;
5688 label29: while(0);
5689 /* ./compiling//compiling_icode.nit:723 */
5690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5691 if (!once_value_30) {
5692 fra.me.REG[7] = BOX_NativeString(")-1)");
5693 REGB1 = TAG_Int(4);
5694 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5695 once_value_30 = fra.me.REG[7];
5696 register_static_object(&once_value_30);
5697 } else fra.me.REG[7] = once_value_30;
5698 fra.me.REG[7] = fra.me.REG[7];
5699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5700 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5701 fra.me.REG[5] = fra.me.REG[6];
5702 } else {
5703 /* ./compiling//compiling_icode.nit:724 */
5704 if (!once_value_31) {
5705 if (!once_value_32) {
5706 fra.me.REG[6] = BOX_NativeString("to_f");
5707 REGB1 = TAG_Int(4);
5708 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5709 once_value_32 = fra.me.REG[6];
5710 register_static_object(&once_value_32);
5711 } else fra.me.REG[6] = once_value_32;
5712 fra.me.REG[6] = fra.me.REG[6];
5713 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5714 once_value_31 = fra.me.REG[6];
5715 register_static_object(&once_value_31);
5716 } else fra.me.REG[6] = once_value_31;
5717 fra.me.REG[6] = fra.me.REG[6];
5718 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5719 if (UNTAG_Bool(REGB1)) {
5720 } else {
5721 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5722 REGB1 = REGB2;
5723 }
5724 if (UNTAG_Bool(REGB1)) {
5725 /* ./compiling//compiling_icode.nit:725 */
5726 REGB1 = TAG_Int(3);
5727 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5728 if (!once_value_33) {
5729 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
5730 REGB1 = TAG_Int(27);
5731 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5732 once_value_33 = fra.me.REG[7];
5733 register_static_object(&once_value_33);
5734 } else fra.me.REG[7] = once_value_33;
5735 fra.me.REG[7] = fra.me.REG[7];
5736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5737 REGB1 = TAG_Int(0);
5738 /* ./../lib/standard//collection//array.nit:243 */
5739 fra.me.REG[7] = fra.me.REG[4];
5740 /* ./../lib/standard//collection//array.nit:245 */
5741 REGB2 = TAG_Int(0);
5742 /* ./../lib/standard//kernel.nit:213 */
5743 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5744 /* ./../lib/standard//collection//array.nit:245 */
5745 if (UNTAG_Bool(REGB2)) {
5746 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5747 if (UNTAG_Bool(REGB2)) {
5748 } else {
5749 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5750 }
5751 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5752 /* ./../lib/standard//kernel.nit:212 */
5753 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5754 } else {
5755 /* ./../lib/standard//collection//array.nit:245 */
5756 REGB0 = TAG_Bool(false);
5757 REGB2 = REGB0;
5758 }
5759 if (UNTAG_Bool(REGB2)) {
5760 } else {
5761 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5762 }
5763 /* ./../lib/standard//collection//array.nit:246 */
5764 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5765 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5766 if (UNTAG_Bool(REGB2)) {
5767 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5768 }
5769 /* ./../lib/standard//collection//array.nit:654 */
5770 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5771 /* ./../lib/standard//collection//array.nit:246 */
5772 goto label34;
5773 label34: while(0);
5774 /* ./compiling//compiling_icode.nit:725 */
5775 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5776 if (!once_value_35) {
5777 fra.me.REG[7] = BOX_NativeString("))");
5778 REGB1 = TAG_Int(2);
5779 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5780 once_value_35 = fra.me.REG[7];
5781 register_static_object(&once_value_35);
5782 } else fra.me.REG[7] = once_value_35;
5783 fra.me.REG[7] = fra.me.REG[7];
5784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5785 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5786 fra.me.REG[5] = fra.me.REG[6];
5787 } else {
5788 /* ./compiling//compiling_icode.nit:726 */
5789 if (!once_value_36) {
5790 if (!once_value_37) {
5791 fra.me.REG[6] = BOX_NativeString("+");
5792 REGB1 = TAG_Int(1);
5793 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5794 once_value_37 = fra.me.REG[6];
5795 register_static_object(&once_value_37);
5796 } else fra.me.REG[6] = once_value_37;
5797 fra.me.REG[6] = fra.me.REG[6];
5798 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5799 once_value_36 = fra.me.REG[6];
5800 register_static_object(&once_value_36);
5801 } else fra.me.REG[6] = once_value_36;
5802 fra.me.REG[6] = fra.me.REG[6];
5803 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5804 if (UNTAG_Bool(REGB1)) {
5805 } else {
5806 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5807 REGB1 = REGB2;
5808 }
5809 if (UNTAG_Bool(REGB1)) {
5810 /* ./compiling//compiling_icode.nit:727 */
5811 REGB1 = TAG_Int(5);
5812 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5813 if (!once_value_38) {
5814 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5815 REGB1 = TAG_Int(18);
5816 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5817 once_value_38 = fra.me.REG[7];
5818 register_static_object(&once_value_38);
5819 } else fra.me.REG[7] = once_value_38;
5820 fra.me.REG[7] = fra.me.REG[7];
5821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5822 REGB1 = TAG_Int(0);
5823 /* ./../lib/standard//collection//array.nit:243 */
5824 fra.me.REG[7] = fra.me.REG[4];
5825 /* ./../lib/standard//collection//array.nit:245 */
5826 REGB2 = TAG_Int(0);
5827 /* ./../lib/standard//kernel.nit:213 */
5828 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5829 /* ./../lib/standard//collection//array.nit:245 */
5830 if (UNTAG_Bool(REGB2)) {
5831 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5832 if (UNTAG_Bool(REGB2)) {
5833 } else {
5834 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5835 }
5836 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5837 /* ./../lib/standard//kernel.nit:212 */
5838 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5839 } else {
5840 /* ./../lib/standard//collection//array.nit:245 */
5841 REGB0 = TAG_Bool(false);
5842 REGB2 = REGB0;
5843 }
5844 if (UNTAG_Bool(REGB2)) {
5845 } else {
5846 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5847 }
5848 /* ./../lib/standard//collection//array.nit:246 */
5849 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5850 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5851 if (UNTAG_Bool(REGB2)) {
5852 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5853 }
5854 /* ./../lib/standard//collection//array.nit:654 */
5855 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5856 /* ./../lib/standard//collection//array.nit:246 */
5857 goto label39;
5858 label39: while(0);
5859 /* ./compiling//compiling_icode.nit:727 */
5860 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5861 if (!once_value_40) {
5862 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
5863 REGB1 = TAG_Int(12);
5864 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5865 once_value_40 = fra.me.REG[7];
5866 register_static_object(&once_value_40);
5867 } else fra.me.REG[7] = once_value_40;
5868 fra.me.REG[7] = fra.me.REG[7];
5869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5870 REGB1 = TAG_Int(1);
5871 /* ./../lib/standard//collection//array.nit:243 */
5872 fra.me.REG[7] = fra.me.REG[4];
5873 /* ./../lib/standard//collection//array.nit:245 */
5874 REGB2 = TAG_Int(0);
5875 /* ./../lib/standard//kernel.nit:213 */
5876 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5877 /* ./../lib/standard//collection//array.nit:245 */
5878 if (UNTAG_Bool(REGB2)) {
5879 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5880 if (UNTAG_Bool(REGB2)) {
5881 } else {
5882 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5883 }
5884 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5885 /* ./../lib/standard//kernel.nit:212 */
5886 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5887 } else {
5888 /* ./../lib/standard//collection//array.nit:245 */
5889 REGB0 = TAG_Bool(false);
5890 REGB2 = REGB0;
5891 }
5892 if (UNTAG_Bool(REGB2)) {
5893 } else {
5894 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5895 }
5896 /* ./../lib/standard//collection//array.nit:246 */
5897 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5898 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5899 if (UNTAG_Bool(REGB2)) {
5900 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5901 }
5902 /* ./../lib/standard//collection//array.nit:654 */
5903 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5904 /* ./../lib/standard//collection//array.nit:246 */
5905 goto label41;
5906 label41: while(0);
5907 /* ./compiling//compiling_icode.nit:727 */
5908 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5909 if (!once_value_42) {
5910 fra.me.REG[7] = BOX_NativeString("))");
5911 REGB1 = TAG_Int(2);
5912 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5913 once_value_42 = fra.me.REG[7];
5914 register_static_object(&once_value_42);
5915 } else fra.me.REG[7] = once_value_42;
5916 fra.me.REG[7] = fra.me.REG[7];
5917 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5918 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5919 fra.me.REG[5] = fra.me.REG[6];
5920 } else {
5921 /* ./compiling//compiling_icode.nit:728 */
5922 if (!once_value_43) {
5923 if (!once_value_44) {
5924 fra.me.REG[6] = BOX_NativeString("-");
5925 REGB1 = TAG_Int(1);
5926 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5927 once_value_44 = fra.me.REG[6];
5928 register_static_object(&once_value_44);
5929 } else fra.me.REG[6] = once_value_44;
5930 fra.me.REG[6] = fra.me.REG[6];
5931 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5932 once_value_43 = fra.me.REG[6];
5933 register_static_object(&once_value_43);
5934 } else fra.me.REG[6] = once_value_43;
5935 fra.me.REG[6] = fra.me.REG[6];
5936 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5937 if (UNTAG_Bool(REGB1)) {
5938 } else {
5939 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5940 REGB1 = REGB2;
5941 }
5942 if (UNTAG_Bool(REGB1)) {
5943 /* ./compiling//compiling_icode.nit:729 */
5944 REGB1 = TAG_Int(5);
5945 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5946 if (!once_value_45) {
5947 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5948 REGB1 = TAG_Int(18);
5949 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5950 once_value_45 = fra.me.REG[7];
5951 register_static_object(&once_value_45);
5952 } else fra.me.REG[7] = once_value_45;
5953 fra.me.REG[7] = fra.me.REG[7];
5954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5955 REGB1 = TAG_Int(0);
5956 /* ./../lib/standard//collection//array.nit:243 */
5957 fra.me.REG[7] = fra.me.REG[4];
5958 /* ./../lib/standard//collection//array.nit:245 */
5959 REGB2 = TAG_Int(0);
5960 /* ./../lib/standard//kernel.nit:213 */
5961 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5962 /* ./../lib/standard//collection//array.nit:245 */
5963 if (UNTAG_Bool(REGB2)) {
5964 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5965 if (UNTAG_Bool(REGB2)) {
5966 } else {
5967 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5968 }
5969 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5970 /* ./../lib/standard//kernel.nit:212 */
5971 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5972 } else {
5973 /* ./../lib/standard//collection//array.nit:245 */
5974 REGB0 = TAG_Bool(false);
5975 REGB2 = REGB0;
5976 }
5977 if (UNTAG_Bool(REGB2)) {
5978 } else {
5979 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5980 }
5981 /* ./../lib/standard//collection//array.nit:246 */
5982 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5983 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5984 if (UNTAG_Bool(REGB2)) {
5985 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5986 }
5987 /* ./../lib/standard//collection//array.nit:654 */
5988 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5989 /* ./../lib/standard//collection//array.nit:246 */
5990 goto label46;
5991 label46: while(0);
5992 /* ./compiling//compiling_icode.nit:729 */
5993 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5994 if (!once_value_47) {
5995 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
5996 REGB1 = TAG_Int(12);
5997 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5998 once_value_47 = fra.me.REG[7];
5999 register_static_object(&once_value_47);
6000 } else fra.me.REG[7] = once_value_47;
6001 fra.me.REG[7] = fra.me.REG[7];
6002 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6003 REGB1 = TAG_Int(1);
6004 /* ./../lib/standard//collection//array.nit:243 */
6005 fra.me.REG[7] = fra.me.REG[4];
6006 /* ./../lib/standard//collection//array.nit:245 */
6007 REGB2 = TAG_Int(0);
6008 /* ./../lib/standard//kernel.nit:213 */
6009 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6010 /* ./../lib/standard//collection//array.nit:245 */
6011 if (UNTAG_Bool(REGB2)) {
6012 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6013 if (UNTAG_Bool(REGB2)) {
6014 } else {
6015 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6016 }
6017 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6018 /* ./../lib/standard//kernel.nit:212 */
6019 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6020 } else {
6021 /* ./../lib/standard//collection//array.nit:245 */
6022 REGB0 = TAG_Bool(false);
6023 REGB2 = REGB0;
6024 }
6025 if (UNTAG_Bool(REGB2)) {
6026 } else {
6027 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6028 }
6029 /* ./../lib/standard//collection//array.nit:246 */
6030 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6031 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6032 if (UNTAG_Bool(REGB2)) {
6033 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6034 }
6035 /* ./../lib/standard//collection//array.nit:654 */
6036 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6037 /* ./../lib/standard//collection//array.nit:246 */
6038 goto label48;
6039 label48: while(0);
6040 /* ./compiling//compiling_icode.nit:729 */
6041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6042 if (!once_value_49) {
6043 fra.me.REG[7] = BOX_NativeString("))");
6044 REGB1 = TAG_Int(2);
6045 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6046 once_value_49 = fra.me.REG[7];
6047 register_static_object(&once_value_49);
6048 } else fra.me.REG[7] = once_value_49;
6049 fra.me.REG[7] = fra.me.REG[7];
6050 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6051 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6052 fra.me.REG[5] = fra.me.REG[6];
6053 } else {
6054 /* ./compiling//compiling_icode.nit:730 */
6055 if (!once_value_50) {
6056 if (!once_value_51) {
6057 fra.me.REG[6] = BOX_NativeString("*");
6058 REGB1 = TAG_Int(1);
6059 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6060 once_value_51 = fra.me.REG[6];
6061 register_static_object(&once_value_51);
6062 } else fra.me.REG[6] = once_value_51;
6063 fra.me.REG[6] = fra.me.REG[6];
6064 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6065 once_value_50 = fra.me.REG[6];
6066 register_static_object(&once_value_50);
6067 } else fra.me.REG[6] = once_value_50;
6068 fra.me.REG[6] = fra.me.REG[6];
6069 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6070 if (UNTAG_Bool(REGB1)) {
6071 } else {
6072 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6073 REGB1 = REGB2;
6074 }
6075 if (UNTAG_Bool(REGB1)) {
6076 /* ./compiling//compiling_icode.nit:731 */
6077 REGB1 = TAG_Int(5);
6078 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6079 if (!once_value_52) {
6080 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6081 REGB1 = TAG_Int(18);
6082 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6083 once_value_52 = fra.me.REG[7];
6084 register_static_object(&once_value_52);
6085 } else fra.me.REG[7] = once_value_52;
6086 fra.me.REG[7] = fra.me.REG[7];
6087 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6088 REGB1 = TAG_Int(0);
6089 /* ./../lib/standard//collection//array.nit:243 */
6090 fra.me.REG[7] = fra.me.REG[4];
6091 /* ./../lib/standard//collection//array.nit:245 */
6092 REGB2 = TAG_Int(0);
6093 /* ./../lib/standard//kernel.nit:213 */
6094 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6095 /* ./../lib/standard//collection//array.nit:245 */
6096 if (UNTAG_Bool(REGB2)) {
6097 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6098 if (UNTAG_Bool(REGB2)) {
6099 } else {
6100 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6101 }
6102 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6103 /* ./../lib/standard//kernel.nit:212 */
6104 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6105 } else {
6106 /* ./../lib/standard//collection//array.nit:245 */
6107 REGB0 = TAG_Bool(false);
6108 REGB2 = REGB0;
6109 }
6110 if (UNTAG_Bool(REGB2)) {
6111 } else {
6112 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6113 }
6114 /* ./../lib/standard//collection//array.nit:246 */
6115 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6116 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6117 if (UNTAG_Bool(REGB2)) {
6118 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6119 }
6120 /* ./../lib/standard//collection//array.nit:654 */
6121 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6122 /* ./../lib/standard//collection//array.nit:246 */
6123 goto label53;
6124 label53: while(0);
6125 /* ./compiling//compiling_icode.nit:731 */
6126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6127 if (!once_value_54) {
6128 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6129 REGB1 = TAG_Int(12);
6130 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6131 once_value_54 = fra.me.REG[7];
6132 register_static_object(&once_value_54);
6133 } else fra.me.REG[7] = once_value_54;
6134 fra.me.REG[7] = fra.me.REG[7];
6135 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6136 REGB1 = TAG_Int(1);
6137 /* ./../lib/standard//collection//array.nit:243 */
6138 fra.me.REG[7] = fra.me.REG[4];
6139 /* ./../lib/standard//collection//array.nit:245 */
6140 REGB2 = TAG_Int(0);
6141 /* ./../lib/standard//kernel.nit:213 */
6142 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6143 /* ./../lib/standard//collection//array.nit:245 */
6144 if (UNTAG_Bool(REGB2)) {
6145 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6146 if (UNTAG_Bool(REGB2)) {
6147 } else {
6148 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6149 }
6150 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6151 /* ./../lib/standard//kernel.nit:212 */
6152 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6153 } else {
6154 /* ./../lib/standard//collection//array.nit:245 */
6155 REGB0 = TAG_Bool(false);
6156 REGB2 = REGB0;
6157 }
6158 if (UNTAG_Bool(REGB2)) {
6159 } else {
6160 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6161 }
6162 /* ./../lib/standard//collection//array.nit:246 */
6163 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6164 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6165 if (UNTAG_Bool(REGB2)) {
6166 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6167 }
6168 /* ./../lib/standard//collection//array.nit:654 */
6169 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6170 /* ./../lib/standard//collection//array.nit:246 */
6171 goto label55;
6172 label55: while(0);
6173 /* ./compiling//compiling_icode.nit:731 */
6174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6175 if (!once_value_56) {
6176 fra.me.REG[7] = BOX_NativeString("))");
6177 REGB1 = TAG_Int(2);
6178 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6179 once_value_56 = fra.me.REG[7];
6180 register_static_object(&once_value_56);
6181 } else fra.me.REG[7] = once_value_56;
6182 fra.me.REG[7] = fra.me.REG[7];
6183 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6184 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6185 fra.me.REG[5] = fra.me.REG[6];
6186 } else {
6187 /* ./compiling//compiling_icode.nit:732 */
6188 if (!once_value_57) {
6189 if (!once_value_58) {
6190 fra.me.REG[6] = BOX_NativeString("/");
6191 REGB1 = TAG_Int(1);
6192 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6193 once_value_58 = fra.me.REG[6];
6194 register_static_object(&once_value_58);
6195 } else fra.me.REG[6] = once_value_58;
6196 fra.me.REG[6] = fra.me.REG[6];
6197 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6198 once_value_57 = fra.me.REG[6];
6199 register_static_object(&once_value_57);
6200 } else fra.me.REG[6] = once_value_57;
6201 fra.me.REG[6] = fra.me.REG[6];
6202 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6203 if (UNTAG_Bool(REGB1)) {
6204 } else {
6205 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6206 REGB1 = REGB2;
6207 }
6208 if (UNTAG_Bool(REGB1)) {
6209 /* ./compiling//compiling_icode.nit:733 */
6210 REGB1 = TAG_Int(5);
6211 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6212 if (!once_value_59) {
6213 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6214 REGB1 = TAG_Int(18);
6215 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6216 once_value_59 = fra.me.REG[7];
6217 register_static_object(&once_value_59);
6218 } else fra.me.REG[7] = once_value_59;
6219 fra.me.REG[7] = fra.me.REG[7];
6220 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6221 REGB1 = TAG_Int(0);
6222 /* ./../lib/standard//collection//array.nit:243 */
6223 fra.me.REG[7] = fra.me.REG[4];
6224 /* ./../lib/standard//collection//array.nit:245 */
6225 REGB2 = TAG_Int(0);
6226 /* ./../lib/standard//kernel.nit:213 */
6227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6228 /* ./../lib/standard//collection//array.nit:245 */
6229 if (UNTAG_Bool(REGB2)) {
6230 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6231 if (UNTAG_Bool(REGB2)) {
6232 } else {
6233 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6234 }
6235 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6236 /* ./../lib/standard//kernel.nit:212 */
6237 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6238 } else {
6239 /* ./../lib/standard//collection//array.nit:245 */
6240 REGB0 = TAG_Bool(false);
6241 REGB2 = REGB0;
6242 }
6243 if (UNTAG_Bool(REGB2)) {
6244 } else {
6245 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6246 }
6247 /* ./../lib/standard//collection//array.nit:246 */
6248 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6249 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6250 if (UNTAG_Bool(REGB2)) {
6251 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6252 }
6253 /* ./../lib/standard//collection//array.nit:654 */
6254 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6255 /* ./../lib/standard//collection//array.nit:246 */
6256 goto label60;
6257 label60: while(0);
6258 /* ./compiling//compiling_icode.nit:733 */
6259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6260 if (!once_value_61) {
6261 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6262 REGB1 = TAG_Int(12);
6263 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6264 once_value_61 = fra.me.REG[7];
6265 register_static_object(&once_value_61);
6266 } else fra.me.REG[7] = once_value_61;
6267 fra.me.REG[7] = fra.me.REG[7];
6268 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6269 REGB1 = TAG_Int(1);
6270 /* ./../lib/standard//collection//array.nit:243 */
6271 fra.me.REG[7] = fra.me.REG[4];
6272 /* ./../lib/standard//collection//array.nit:245 */
6273 REGB2 = TAG_Int(0);
6274 /* ./../lib/standard//kernel.nit:213 */
6275 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6276 /* ./../lib/standard//collection//array.nit:245 */
6277 if (UNTAG_Bool(REGB2)) {
6278 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6279 if (UNTAG_Bool(REGB2)) {
6280 } else {
6281 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6282 }
6283 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6284 /* ./../lib/standard//kernel.nit:212 */
6285 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6286 } else {
6287 /* ./../lib/standard//collection//array.nit:245 */
6288 REGB0 = TAG_Bool(false);
6289 REGB2 = REGB0;
6290 }
6291 if (UNTAG_Bool(REGB2)) {
6292 } else {
6293 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6294 }
6295 /* ./../lib/standard//collection//array.nit:246 */
6296 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6297 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6298 if (UNTAG_Bool(REGB2)) {
6299 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6300 }
6301 /* ./../lib/standard//collection//array.nit:654 */
6302 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6303 /* ./../lib/standard//collection//array.nit:246 */
6304 goto label62;
6305 label62: while(0);
6306 /* ./compiling//compiling_icode.nit:733 */
6307 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6308 if (!once_value_63) {
6309 fra.me.REG[7] = BOX_NativeString("))");
6310 REGB1 = TAG_Int(2);
6311 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6312 once_value_63 = fra.me.REG[7];
6313 register_static_object(&once_value_63);
6314 } else fra.me.REG[7] = once_value_63;
6315 fra.me.REG[7] = fra.me.REG[7];
6316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6317 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6318 fra.me.REG[5] = fra.me.REG[6];
6319 } else {
6320 /* ./compiling//compiling_icode.nit:734 */
6321 if (!once_value_64) {
6322 if (!once_value_65) {
6323 fra.me.REG[6] = BOX_NativeString("%");
6324 REGB1 = TAG_Int(1);
6325 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6326 once_value_65 = fra.me.REG[6];
6327 register_static_object(&once_value_65);
6328 } else fra.me.REG[6] = once_value_65;
6329 fra.me.REG[6] = fra.me.REG[6];
6330 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6331 once_value_64 = fra.me.REG[6];
6332 register_static_object(&once_value_64);
6333 } else fra.me.REG[6] = once_value_64;
6334 fra.me.REG[6] = fra.me.REG[6];
6335 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6336 if (UNTAG_Bool(REGB1)) {
6337 } else {
6338 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6339 REGB1 = REGB2;
6340 }
6341 if (UNTAG_Bool(REGB1)) {
6342 /* ./compiling//compiling_icode.nit:735 */
6343 REGB1 = TAG_Int(5);
6344 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6345 if (!once_value_66) {
6346 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6347 REGB1 = TAG_Int(18);
6348 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6349 once_value_66 = fra.me.REG[7];
6350 register_static_object(&once_value_66);
6351 } else fra.me.REG[7] = once_value_66;
6352 fra.me.REG[7] = fra.me.REG[7];
6353 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6354 REGB1 = TAG_Int(0);
6355 /* ./../lib/standard//collection//array.nit:243 */
6356 fra.me.REG[7] = fra.me.REG[4];
6357 /* ./../lib/standard//collection//array.nit:245 */
6358 REGB2 = TAG_Int(0);
6359 /* ./../lib/standard//kernel.nit:213 */
6360 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6361 /* ./../lib/standard//collection//array.nit:245 */
6362 if (UNTAG_Bool(REGB2)) {
6363 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6364 if (UNTAG_Bool(REGB2)) {
6365 } else {
6366 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6367 }
6368 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6369 /* ./../lib/standard//kernel.nit:212 */
6370 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6371 } else {
6372 /* ./../lib/standard//collection//array.nit:245 */
6373 REGB0 = TAG_Bool(false);
6374 REGB2 = REGB0;
6375 }
6376 if (UNTAG_Bool(REGB2)) {
6377 } else {
6378 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6379 }
6380 /* ./../lib/standard//collection//array.nit:246 */
6381 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6382 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6383 if (UNTAG_Bool(REGB2)) {
6384 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6385 }
6386 /* ./../lib/standard//collection//array.nit:654 */
6387 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6388 /* ./../lib/standard//collection//array.nit:246 */
6389 goto label67;
6390 label67: while(0);
6391 /* ./compiling//compiling_icode.nit:735 */
6392 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6393 if (!once_value_68) {
6394 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6395 REGB1 = TAG_Int(12);
6396 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6397 once_value_68 = fra.me.REG[7];
6398 register_static_object(&once_value_68);
6399 } else fra.me.REG[7] = once_value_68;
6400 fra.me.REG[7] = fra.me.REG[7];
6401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6402 REGB1 = TAG_Int(1);
6403 /* ./../lib/standard//collection//array.nit:243 */
6404 fra.me.REG[7] = fra.me.REG[4];
6405 /* ./../lib/standard//collection//array.nit:245 */
6406 REGB2 = TAG_Int(0);
6407 /* ./../lib/standard//kernel.nit:213 */
6408 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6409 /* ./../lib/standard//collection//array.nit:245 */
6410 if (UNTAG_Bool(REGB2)) {
6411 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6412 if (UNTAG_Bool(REGB2)) {
6413 } else {
6414 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6415 }
6416 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6417 /* ./../lib/standard//kernel.nit:212 */
6418 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6419 } else {
6420 /* ./../lib/standard//collection//array.nit:245 */
6421 REGB0 = TAG_Bool(false);
6422 REGB2 = REGB0;
6423 }
6424 if (UNTAG_Bool(REGB2)) {
6425 } else {
6426 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6427 }
6428 /* ./../lib/standard//collection//array.nit:246 */
6429 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6430 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6431 if (UNTAG_Bool(REGB2)) {
6432 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6433 }
6434 /* ./../lib/standard//collection//array.nit:654 */
6435 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6436 /* ./../lib/standard//collection//array.nit:246 */
6437 goto label69;
6438 label69: while(0);
6439 /* ./compiling//compiling_icode.nit:735 */
6440 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6441 if (!once_value_70) {
6442 fra.me.REG[7] = BOX_NativeString("))");
6443 REGB1 = TAG_Int(2);
6444 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6445 once_value_70 = fra.me.REG[7];
6446 register_static_object(&once_value_70);
6447 } else fra.me.REG[7] = once_value_70;
6448 fra.me.REG[7] = fra.me.REG[7];
6449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6450 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6451 fra.me.REG[5] = fra.me.REG[6];
6452 } else {
6453 /* ./compiling//compiling_icode.nit:736 */
6454 if (!once_value_71) {
6455 if (!once_value_72) {
6456 fra.me.REG[6] = BOX_NativeString("<");
6457 REGB1 = TAG_Int(1);
6458 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6459 once_value_72 = fra.me.REG[6];
6460 register_static_object(&once_value_72);
6461 } else fra.me.REG[6] = once_value_72;
6462 fra.me.REG[6] = fra.me.REG[6];
6463 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6464 once_value_71 = fra.me.REG[6];
6465 register_static_object(&once_value_71);
6466 } else fra.me.REG[6] = once_value_71;
6467 fra.me.REG[6] = fra.me.REG[6];
6468 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6469 if (UNTAG_Bool(REGB1)) {
6470 } else {
6471 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6472 REGB1 = REGB2;
6473 }
6474 if (UNTAG_Bool(REGB1)) {
6475 /* ./compiling//compiling_icode.nit:737 */
6476 REGB1 = TAG_Int(5);
6477 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6478 if (!once_value_73) {
6479 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6480 REGB1 = TAG_Int(19);
6481 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6482 once_value_73 = fra.me.REG[7];
6483 register_static_object(&once_value_73);
6484 } else fra.me.REG[7] = once_value_73;
6485 fra.me.REG[7] = fra.me.REG[7];
6486 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6487 REGB1 = TAG_Int(0);
6488 /* ./../lib/standard//collection//array.nit:243 */
6489 fra.me.REG[7] = fra.me.REG[4];
6490 /* ./../lib/standard//collection//array.nit:245 */
6491 REGB2 = TAG_Int(0);
6492 /* ./../lib/standard//kernel.nit:213 */
6493 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6494 /* ./../lib/standard//collection//array.nit:245 */
6495 if (UNTAG_Bool(REGB2)) {
6496 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6497 if (UNTAG_Bool(REGB2)) {
6498 } else {
6499 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6500 }
6501 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6502 /* ./../lib/standard//kernel.nit:212 */
6503 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6504 } else {
6505 /* ./../lib/standard//collection//array.nit:245 */
6506 REGB0 = TAG_Bool(false);
6507 REGB2 = REGB0;
6508 }
6509 if (UNTAG_Bool(REGB2)) {
6510 } else {
6511 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6512 }
6513 /* ./../lib/standard//collection//array.nit:246 */
6514 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6515 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6516 if (UNTAG_Bool(REGB2)) {
6517 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6518 }
6519 /* ./../lib/standard//collection//array.nit:654 */
6520 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6521 /* ./../lib/standard//collection//array.nit:246 */
6522 goto label74;
6523 label74: while(0);
6524 /* ./compiling//compiling_icode.nit:737 */
6525 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6526 if (!once_value_75) {
6527 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6528 REGB1 = TAG_Int(12);
6529 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6530 once_value_75 = fra.me.REG[7];
6531 register_static_object(&once_value_75);
6532 } else fra.me.REG[7] = once_value_75;
6533 fra.me.REG[7] = fra.me.REG[7];
6534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6535 REGB1 = TAG_Int(1);
6536 /* ./../lib/standard//collection//array.nit:243 */
6537 fra.me.REG[7] = fra.me.REG[4];
6538 /* ./../lib/standard//collection//array.nit:245 */
6539 REGB2 = TAG_Int(0);
6540 /* ./../lib/standard//kernel.nit:213 */
6541 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6542 /* ./../lib/standard//collection//array.nit:245 */
6543 if (UNTAG_Bool(REGB2)) {
6544 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6545 if (UNTAG_Bool(REGB2)) {
6546 } else {
6547 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6548 }
6549 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6550 /* ./../lib/standard//kernel.nit:212 */
6551 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6552 } else {
6553 /* ./../lib/standard//collection//array.nit:245 */
6554 REGB0 = TAG_Bool(false);
6555 REGB2 = REGB0;
6556 }
6557 if (UNTAG_Bool(REGB2)) {
6558 } else {
6559 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6560 }
6561 /* ./../lib/standard//collection//array.nit:246 */
6562 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6563 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6564 if (UNTAG_Bool(REGB2)) {
6565 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6566 }
6567 /* ./../lib/standard//collection//array.nit:654 */
6568 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6569 /* ./../lib/standard//collection//array.nit:246 */
6570 goto label76;
6571 label76: while(0);
6572 /* ./compiling//compiling_icode.nit:737 */
6573 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6574 if (!once_value_77) {
6575 fra.me.REG[7] = BOX_NativeString("))");
6576 REGB1 = TAG_Int(2);
6577 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6578 once_value_77 = fra.me.REG[7];
6579 register_static_object(&once_value_77);
6580 } else fra.me.REG[7] = once_value_77;
6581 fra.me.REG[7] = fra.me.REG[7];
6582 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6583 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6584 fra.me.REG[5] = fra.me.REG[6];
6585 } else {
6586 /* ./compiling//compiling_icode.nit:738 */
6587 if (!once_value_78) {
6588 if (!once_value_79) {
6589 fra.me.REG[6] = BOX_NativeString(">");
6590 REGB1 = TAG_Int(1);
6591 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6592 once_value_79 = fra.me.REG[6];
6593 register_static_object(&once_value_79);
6594 } else fra.me.REG[6] = once_value_79;
6595 fra.me.REG[6] = fra.me.REG[6];
6596 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6597 once_value_78 = fra.me.REG[6];
6598 register_static_object(&once_value_78);
6599 } else fra.me.REG[6] = once_value_78;
6600 fra.me.REG[6] = fra.me.REG[6];
6601 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6602 if (UNTAG_Bool(REGB1)) {
6603 } else {
6604 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6605 REGB1 = REGB2;
6606 }
6607 if (UNTAG_Bool(REGB1)) {
6608 /* ./compiling//compiling_icode.nit:739 */
6609 REGB1 = TAG_Int(5);
6610 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6611 if (!once_value_80) {
6612 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6613 REGB1 = TAG_Int(19);
6614 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6615 once_value_80 = fra.me.REG[7];
6616 register_static_object(&once_value_80);
6617 } else fra.me.REG[7] = once_value_80;
6618 fra.me.REG[7] = fra.me.REG[7];
6619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6620 REGB1 = TAG_Int(0);
6621 /* ./../lib/standard//collection//array.nit:243 */
6622 fra.me.REG[7] = fra.me.REG[4];
6623 /* ./../lib/standard//collection//array.nit:245 */
6624 REGB2 = TAG_Int(0);
6625 /* ./../lib/standard//kernel.nit:213 */
6626 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6627 /* ./../lib/standard//collection//array.nit:245 */
6628 if (UNTAG_Bool(REGB2)) {
6629 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6630 if (UNTAG_Bool(REGB2)) {
6631 } else {
6632 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6633 }
6634 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6635 /* ./../lib/standard//kernel.nit:212 */
6636 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6637 } else {
6638 /* ./../lib/standard//collection//array.nit:245 */
6639 REGB0 = TAG_Bool(false);
6640 REGB2 = REGB0;
6641 }
6642 if (UNTAG_Bool(REGB2)) {
6643 } else {
6644 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6645 }
6646 /* ./../lib/standard//collection//array.nit:246 */
6647 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6648 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6649 if (UNTAG_Bool(REGB2)) {
6650 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6651 }
6652 /* ./../lib/standard//collection//array.nit:654 */
6653 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6654 /* ./../lib/standard//collection//array.nit:246 */
6655 goto label81;
6656 label81: while(0);
6657 /* ./compiling//compiling_icode.nit:739 */
6658 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6659 if (!once_value_82) {
6660 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
6661 REGB1 = TAG_Int(12);
6662 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6663 once_value_82 = fra.me.REG[7];
6664 register_static_object(&once_value_82);
6665 } else fra.me.REG[7] = once_value_82;
6666 fra.me.REG[7] = fra.me.REG[7];
6667 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6668 REGB1 = TAG_Int(1);
6669 /* ./../lib/standard//collection//array.nit:243 */
6670 fra.me.REG[7] = fra.me.REG[4];
6671 /* ./../lib/standard//collection//array.nit:245 */
6672 REGB2 = TAG_Int(0);
6673 /* ./../lib/standard//kernel.nit:213 */
6674 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6675 /* ./../lib/standard//collection//array.nit:245 */
6676 if (UNTAG_Bool(REGB2)) {
6677 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6678 if (UNTAG_Bool(REGB2)) {
6679 } else {
6680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6681 }
6682 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6683 /* ./../lib/standard//kernel.nit:212 */
6684 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6685 } else {
6686 /* ./../lib/standard//collection//array.nit:245 */
6687 REGB0 = TAG_Bool(false);
6688 REGB2 = REGB0;
6689 }
6690 if (UNTAG_Bool(REGB2)) {
6691 } else {
6692 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6693 }
6694 /* ./../lib/standard//collection//array.nit:246 */
6695 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6696 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6697 if (UNTAG_Bool(REGB2)) {
6698 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6699 }
6700 /* ./../lib/standard//collection//array.nit:654 */
6701 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6702 /* ./../lib/standard//collection//array.nit:246 */
6703 goto label83;
6704 label83: while(0);
6705 /* ./compiling//compiling_icode.nit:739 */
6706 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6707 if (!once_value_84) {
6708 fra.me.REG[7] = BOX_NativeString("))");
6709 REGB1 = TAG_Int(2);
6710 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6711 once_value_84 = fra.me.REG[7];
6712 register_static_object(&once_value_84);
6713 } else fra.me.REG[7] = once_value_84;
6714 fra.me.REG[7] = fra.me.REG[7];
6715 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6716 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6717 fra.me.REG[5] = fra.me.REG[6];
6718 } else {
6719 /* ./compiling//compiling_icode.nit:740 */
6720 if (!once_value_85) {
6721 if (!once_value_86) {
6722 fra.me.REG[6] = BOX_NativeString("<=");
6723 REGB1 = TAG_Int(2);
6724 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6725 once_value_86 = fra.me.REG[6];
6726 register_static_object(&once_value_86);
6727 } else fra.me.REG[6] = once_value_86;
6728 fra.me.REG[6] = fra.me.REG[6];
6729 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6730 once_value_85 = fra.me.REG[6];
6731 register_static_object(&once_value_85);
6732 } else fra.me.REG[6] = once_value_85;
6733 fra.me.REG[6] = fra.me.REG[6];
6734 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6735 if (UNTAG_Bool(REGB1)) {
6736 } else {
6737 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6738 REGB1 = REGB2;
6739 }
6740 if (UNTAG_Bool(REGB1)) {
6741 /* ./compiling//compiling_icode.nit:741 */
6742 REGB1 = TAG_Int(5);
6743 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6744 if (!once_value_87) {
6745 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6746 REGB1 = TAG_Int(19);
6747 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6748 once_value_87 = fra.me.REG[7];
6749 register_static_object(&once_value_87);
6750 } else fra.me.REG[7] = once_value_87;
6751 fra.me.REG[7] = fra.me.REG[7];
6752 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6753 REGB1 = TAG_Int(0);
6754 /* ./../lib/standard//collection//array.nit:243 */
6755 fra.me.REG[7] = fra.me.REG[4];
6756 /* ./../lib/standard//collection//array.nit:245 */
6757 REGB2 = TAG_Int(0);
6758 /* ./../lib/standard//kernel.nit:213 */
6759 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6760 /* ./../lib/standard//collection//array.nit:245 */
6761 if (UNTAG_Bool(REGB2)) {
6762 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6763 if (UNTAG_Bool(REGB2)) {
6764 } else {
6765 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6766 }
6767 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6768 /* ./../lib/standard//kernel.nit:212 */
6769 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6770 } else {
6771 /* ./../lib/standard//collection//array.nit:245 */
6772 REGB0 = TAG_Bool(false);
6773 REGB2 = REGB0;
6774 }
6775 if (UNTAG_Bool(REGB2)) {
6776 } else {
6777 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6778 }
6779 /* ./../lib/standard//collection//array.nit:246 */
6780 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6781 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6782 if (UNTAG_Bool(REGB2)) {
6783 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6784 }
6785 /* ./../lib/standard//collection//array.nit:654 */
6786 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6787 /* ./../lib/standard//collection//array.nit:246 */
6788 goto label88;
6789 label88: while(0);
6790 /* ./compiling//compiling_icode.nit:741 */
6791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6792 if (!once_value_89) {
6793 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
6794 REGB1 = TAG_Int(13);
6795 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6796 once_value_89 = fra.me.REG[7];
6797 register_static_object(&once_value_89);
6798 } else fra.me.REG[7] = once_value_89;
6799 fra.me.REG[7] = fra.me.REG[7];
6800 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6801 REGB1 = TAG_Int(1);
6802 /* ./../lib/standard//collection//array.nit:243 */
6803 fra.me.REG[7] = fra.me.REG[4];
6804 /* ./../lib/standard//collection//array.nit:245 */
6805 REGB2 = TAG_Int(0);
6806 /* ./../lib/standard//kernel.nit:213 */
6807 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6808 /* ./../lib/standard//collection//array.nit:245 */
6809 if (UNTAG_Bool(REGB2)) {
6810 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6811 if (UNTAG_Bool(REGB2)) {
6812 } else {
6813 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6814 }
6815 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6816 /* ./../lib/standard//kernel.nit:212 */
6817 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6818 } else {
6819 /* ./../lib/standard//collection//array.nit:245 */
6820 REGB0 = TAG_Bool(false);
6821 REGB2 = REGB0;
6822 }
6823 if (UNTAG_Bool(REGB2)) {
6824 } else {
6825 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6826 }
6827 /* ./../lib/standard//collection//array.nit:246 */
6828 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6829 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6830 if (UNTAG_Bool(REGB2)) {
6831 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6832 }
6833 /* ./../lib/standard//collection//array.nit:654 */
6834 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6835 /* ./../lib/standard//collection//array.nit:246 */
6836 goto label90;
6837 label90: while(0);
6838 /* ./compiling//compiling_icode.nit:741 */
6839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6840 if (!once_value_91) {
6841 fra.me.REG[7] = BOX_NativeString("))");
6842 REGB1 = TAG_Int(2);
6843 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6844 once_value_91 = fra.me.REG[7];
6845 register_static_object(&once_value_91);
6846 } else fra.me.REG[7] = once_value_91;
6847 fra.me.REG[7] = fra.me.REG[7];
6848 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6849 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6850 fra.me.REG[5] = fra.me.REG[6];
6851 } else {
6852 /* ./compiling//compiling_icode.nit:742 */
6853 if (!once_value_92) {
6854 if (!once_value_93) {
6855 fra.me.REG[6] = BOX_NativeString(">=");
6856 REGB1 = TAG_Int(2);
6857 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6858 once_value_93 = fra.me.REG[6];
6859 register_static_object(&once_value_93);
6860 } else fra.me.REG[6] = once_value_93;
6861 fra.me.REG[6] = fra.me.REG[6];
6862 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6863 once_value_92 = fra.me.REG[6];
6864 register_static_object(&once_value_92);
6865 } else fra.me.REG[6] = once_value_92;
6866 fra.me.REG[6] = fra.me.REG[6];
6867 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6868 if (UNTAG_Bool(REGB1)) {
6869 } else {
6870 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6871 REGB1 = REGB2;
6872 }
6873 if (UNTAG_Bool(REGB1)) {
6874 /* ./compiling//compiling_icode.nit:743 */
6875 REGB1 = TAG_Int(5);
6876 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6877 if (!once_value_94) {
6878 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6879 REGB1 = TAG_Int(19);
6880 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6881 once_value_94 = fra.me.REG[7];
6882 register_static_object(&once_value_94);
6883 } else fra.me.REG[7] = once_value_94;
6884 fra.me.REG[7] = fra.me.REG[7];
6885 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6886 REGB1 = TAG_Int(0);
6887 /* ./../lib/standard//collection//array.nit:243 */
6888 fra.me.REG[7] = fra.me.REG[4];
6889 /* ./../lib/standard//collection//array.nit:245 */
6890 REGB2 = TAG_Int(0);
6891 /* ./../lib/standard//kernel.nit:213 */
6892 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6893 /* ./../lib/standard//collection//array.nit:245 */
6894 if (UNTAG_Bool(REGB2)) {
6895 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6896 if (UNTAG_Bool(REGB2)) {
6897 } else {
6898 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6899 }
6900 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6901 /* ./../lib/standard//kernel.nit:212 */
6902 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6903 } else {
6904 /* ./../lib/standard//collection//array.nit:245 */
6905 REGB0 = TAG_Bool(false);
6906 REGB2 = REGB0;
6907 }
6908 if (UNTAG_Bool(REGB2)) {
6909 } else {
6910 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6911 }
6912 /* ./../lib/standard//collection//array.nit:246 */
6913 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6914 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6915 if (UNTAG_Bool(REGB2)) {
6916 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6917 }
6918 /* ./../lib/standard//collection//array.nit:654 */
6919 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6920 /* ./../lib/standard//collection//array.nit:246 */
6921 goto label95;
6922 label95: while(0);
6923 /* ./compiling//compiling_icode.nit:743 */
6924 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6925 if (!once_value_96) {
6926 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
6927 REGB1 = TAG_Int(13);
6928 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6929 once_value_96 = fra.me.REG[7];
6930 register_static_object(&once_value_96);
6931 } else fra.me.REG[7] = once_value_96;
6932 fra.me.REG[7] = fra.me.REG[7];
6933 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6934 REGB1 = TAG_Int(1);
6935 /* ./../lib/standard//collection//array.nit:243 */
6936 fra.me.REG[7] = fra.me.REG[4];
6937 /* ./../lib/standard//collection//array.nit:245 */
6938 REGB2 = TAG_Int(0);
6939 /* ./../lib/standard//kernel.nit:213 */
6940 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6941 /* ./../lib/standard//collection//array.nit:245 */
6942 if (UNTAG_Bool(REGB2)) {
6943 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6944 if (UNTAG_Bool(REGB2)) {
6945 } else {
6946 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6947 }
6948 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6949 /* ./../lib/standard//kernel.nit:212 */
6950 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6951 } else {
6952 /* ./../lib/standard//collection//array.nit:245 */
6953 REGB0 = TAG_Bool(false);
6954 REGB2 = REGB0;
6955 }
6956 if (UNTAG_Bool(REGB2)) {
6957 } else {
6958 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6959 }
6960 /* ./../lib/standard//collection//array.nit:246 */
6961 fra.me.REG[7] = ATTR_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_array, 246);
6965 }
6966 /* ./../lib/standard//collection//array.nit:654 */
6967 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6968 /* ./../lib/standard//collection//array.nit:246 */
6969 goto label97;
6970 label97: while(0);
6971 /* ./compiling//compiling_icode.nit:743 */
6972 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6973 if (!once_value_98) {
6974 fra.me.REG[7] = BOX_NativeString("))");
6975 REGB1 = TAG_Int(2);
6976 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6977 once_value_98 = fra.me.REG[7];
6978 register_static_object(&once_value_98);
6979 } else fra.me.REG[7] = once_value_98;
6980 fra.me.REG[7] = fra.me.REG[7];
6981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6982 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6983 fra.me.REG[5] = fra.me.REG[6];
6984 } else {
6985 /* ./compiling//compiling_icode.nit:744 */
6986 if (!once_value_99) {
6987 if (!once_value_100) {
6988 fra.me.REG[6] = BOX_NativeString("lshift");
6989 REGB1 = TAG_Int(6);
6990 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6991 once_value_100 = fra.me.REG[6];
6992 register_static_object(&once_value_100);
6993 } else fra.me.REG[6] = once_value_100;
6994 fra.me.REG[6] = fra.me.REG[6];
6995 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6996 once_value_99 = fra.me.REG[6];
6997 register_static_object(&once_value_99);
6998 } else fra.me.REG[6] = once_value_99;
6999 fra.me.REG[6] = fra.me.REG[6];
7000 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7001 if (UNTAG_Bool(REGB1)) {
7002 } else {
7003 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7004 REGB1 = REGB2;
7005 }
7006 if (UNTAG_Bool(REGB1)) {
7007 /* ./compiling//compiling_icode.nit:745 */
7008 REGB1 = TAG_Int(5);
7009 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7010 if (!once_value_101) {
7011 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7012 REGB1 = TAG_Int(18);
7013 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7014 once_value_101 = fra.me.REG[7];
7015 register_static_object(&once_value_101);
7016 } else fra.me.REG[7] = once_value_101;
7017 fra.me.REG[7] = fra.me.REG[7];
7018 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7019 REGB1 = TAG_Int(0);
7020 /* ./../lib/standard//collection//array.nit:243 */
7021 fra.me.REG[7] = fra.me.REG[4];
7022 /* ./../lib/standard//collection//array.nit:245 */
7023 REGB2 = TAG_Int(0);
7024 /* ./../lib/standard//kernel.nit:213 */
7025 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7026 /* ./../lib/standard//collection//array.nit:245 */
7027 if (UNTAG_Bool(REGB2)) {
7028 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7029 if (UNTAG_Bool(REGB2)) {
7030 } else {
7031 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7032 }
7033 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7034 /* ./../lib/standard//kernel.nit:212 */
7035 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7036 } else {
7037 /* ./../lib/standard//collection//array.nit:245 */
7038 REGB0 = TAG_Bool(false);
7039 REGB2 = REGB0;
7040 }
7041 if (UNTAG_Bool(REGB2)) {
7042 } else {
7043 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7044 }
7045 /* ./../lib/standard//collection//array.nit:246 */
7046 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7047 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7048 if (UNTAG_Bool(REGB2)) {
7049 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7050 }
7051 /* ./../lib/standard//collection//array.nit:654 */
7052 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7053 /* ./../lib/standard//collection//array.nit:246 */
7054 goto label102;
7055 label102: while(0);
7056 /* ./compiling//compiling_icode.nit:745 */
7057 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7058 if (!once_value_103) {
7059 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7060 REGB1 = TAG_Int(13);
7061 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7062 once_value_103 = fra.me.REG[7];
7063 register_static_object(&once_value_103);
7064 } else fra.me.REG[7] = once_value_103;
7065 fra.me.REG[7] = fra.me.REG[7];
7066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7067 REGB1 = TAG_Int(1);
7068 /* ./../lib/standard//collection//array.nit:243 */
7069 fra.me.REG[7] = fra.me.REG[4];
7070 /* ./../lib/standard//collection//array.nit:245 */
7071 REGB2 = TAG_Int(0);
7072 /* ./../lib/standard//kernel.nit:213 */
7073 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7074 /* ./../lib/standard//collection//array.nit:245 */
7075 if (UNTAG_Bool(REGB2)) {
7076 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7077 if (UNTAG_Bool(REGB2)) {
7078 } else {
7079 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7080 }
7081 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7082 /* ./../lib/standard//kernel.nit:212 */
7083 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7084 } else {
7085 /* ./../lib/standard//collection//array.nit:245 */
7086 REGB0 = TAG_Bool(false);
7087 REGB2 = REGB0;
7088 }
7089 if (UNTAG_Bool(REGB2)) {
7090 } else {
7091 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7092 }
7093 /* ./../lib/standard//collection//array.nit:246 */
7094 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7095 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7096 if (UNTAG_Bool(REGB2)) {
7097 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7098 }
7099 /* ./../lib/standard//collection//array.nit:654 */
7100 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7101 /* ./../lib/standard//collection//array.nit:246 */
7102 goto label104;
7103 label104: while(0);
7104 /* ./compiling//compiling_icode.nit:745 */
7105 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7106 if (!once_value_105) {
7107 fra.me.REG[7] = BOX_NativeString("))");
7108 REGB1 = TAG_Int(2);
7109 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7110 once_value_105 = fra.me.REG[7];
7111 register_static_object(&once_value_105);
7112 } else fra.me.REG[7] = once_value_105;
7113 fra.me.REG[7] = fra.me.REG[7];
7114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7115 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7116 fra.me.REG[5] = fra.me.REG[6];
7117 } else {
7118 /* ./compiling//compiling_icode.nit:746 */
7119 if (!once_value_106) {
7120 if (!once_value_107) {
7121 fra.me.REG[6] = BOX_NativeString("rshift");
7122 REGB1 = TAG_Int(6);
7123 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7124 once_value_107 = fra.me.REG[6];
7125 register_static_object(&once_value_107);
7126 } else fra.me.REG[6] = once_value_107;
7127 fra.me.REG[6] = fra.me.REG[6];
7128 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7129 once_value_106 = fra.me.REG[6];
7130 register_static_object(&once_value_106);
7131 } else fra.me.REG[6] = once_value_106;
7132 fra.me.REG[6] = fra.me.REG[6];
7133 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7134 if (UNTAG_Bool(REGB1)) {
7135 } else {
7136 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7137 REGB1 = REGB2;
7138 }
7139 if (UNTAG_Bool(REGB1)) {
7140 /* ./compiling//compiling_icode.nit:747 */
7141 REGB1 = TAG_Int(5);
7142 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7143 if (!once_value_108) {
7144 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7145 REGB1 = TAG_Int(18);
7146 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7147 once_value_108 = fra.me.REG[7];
7148 register_static_object(&once_value_108);
7149 } else fra.me.REG[7] = once_value_108;
7150 fra.me.REG[7] = fra.me.REG[7];
7151 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7152 REGB1 = TAG_Int(0);
7153 /* ./../lib/standard//collection//array.nit:243 */
7154 fra.me.REG[7] = fra.me.REG[4];
7155 /* ./../lib/standard//collection//array.nit:245 */
7156 REGB2 = TAG_Int(0);
7157 /* ./../lib/standard//kernel.nit:213 */
7158 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7159 /* ./../lib/standard//collection//array.nit:245 */
7160 if (UNTAG_Bool(REGB2)) {
7161 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7162 if (UNTAG_Bool(REGB2)) {
7163 } else {
7164 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7165 }
7166 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7167 /* ./../lib/standard//kernel.nit:212 */
7168 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7169 } else {
7170 /* ./../lib/standard//collection//array.nit:245 */
7171 REGB0 = TAG_Bool(false);
7172 REGB2 = REGB0;
7173 }
7174 if (UNTAG_Bool(REGB2)) {
7175 } else {
7176 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7177 }
7178 /* ./../lib/standard//collection//array.nit:246 */
7179 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7180 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7181 if (UNTAG_Bool(REGB2)) {
7182 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7183 }
7184 /* ./../lib/standard//collection//array.nit:654 */
7185 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7186 /* ./../lib/standard//collection//array.nit:246 */
7187 goto label109;
7188 label109: while(0);
7189 /* ./compiling//compiling_icode.nit:747 */
7190 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7191 if (!once_value_110) {
7192 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7193 REGB1 = TAG_Int(13);
7194 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7195 once_value_110 = fra.me.REG[7];
7196 register_static_object(&once_value_110);
7197 } else fra.me.REG[7] = once_value_110;
7198 fra.me.REG[7] = fra.me.REG[7];
7199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7200 REGB1 = TAG_Int(1);
7201 /* ./../lib/standard//collection//array.nit:243 */
7202 fra.me.REG[7] = fra.me.REG[4];
7203 /* ./../lib/standard//collection//array.nit:245 */
7204 REGB2 = TAG_Int(0);
7205 /* ./../lib/standard//kernel.nit:213 */
7206 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7207 /* ./../lib/standard//collection//array.nit:245 */
7208 if (UNTAG_Bool(REGB2)) {
7209 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7210 if (UNTAG_Bool(REGB2)) {
7211 } else {
7212 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7213 }
7214 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7215 /* ./../lib/standard//kernel.nit:212 */
7216 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7217 } else {
7218 /* ./../lib/standard//collection//array.nit:245 */
7219 REGB0 = TAG_Bool(false);
7220 REGB2 = REGB0;
7221 }
7222 if (UNTAG_Bool(REGB2)) {
7223 } else {
7224 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7225 }
7226 /* ./../lib/standard//collection//array.nit:246 */
7227 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7228 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7229 if (UNTAG_Bool(REGB2)) {
7230 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7231 }
7232 /* ./../lib/standard//collection//array.nit:654 */
7233 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7234 /* ./../lib/standard//collection//array.nit:246 */
7235 goto label111;
7236 label111: while(0);
7237 /* ./compiling//compiling_icode.nit:747 */
7238 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7239 if (!once_value_112) {
7240 fra.me.REG[7] = BOX_NativeString("))");
7241 REGB1 = TAG_Int(2);
7242 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7243 once_value_112 = fra.me.REG[7];
7244 register_static_object(&once_value_112);
7245 } else fra.me.REG[7] = once_value_112;
7246 fra.me.REG[7] = fra.me.REG[7];
7247 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7248 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7249 fra.me.REG[5] = fra.me.REG[6];
7250 } else {
7251 /* ./compiling//compiling_icode.nit:748 */
7252 if (!once_value_113) {
7253 if (!once_value_114) {
7254 fra.me.REG[6] = BOX_NativeString("==");
7255 REGB1 = TAG_Int(2);
7256 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7257 once_value_114 = fra.me.REG[6];
7258 register_static_object(&once_value_114);
7259 } else fra.me.REG[6] = once_value_114;
7260 fra.me.REG[6] = fra.me.REG[6];
7261 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7262 once_value_113 = fra.me.REG[6];
7263 register_static_object(&once_value_113);
7264 } else fra.me.REG[6] = once_value_113;
7265 fra.me.REG[6] = fra.me.REG[6];
7266 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7267 if (UNTAG_Bool(REGB1)) {
7268 } else {
7269 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7270 REGB1 = REGB2;
7271 }
7272 if (UNTAG_Bool(REGB1)) {
7273 /* ./compiling//compiling_icode.nit:749 */
7274 REGB1 = TAG_Int(5);
7275 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7276 if (!once_value_115) {
7277 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7278 REGB1 = TAG_Int(10);
7279 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7280 once_value_115 = fra.me.REG[7];
7281 register_static_object(&once_value_115);
7282 } else fra.me.REG[7] = once_value_115;
7283 fra.me.REG[7] = fra.me.REG[7];
7284 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7285 REGB1 = TAG_Int(0);
7286 /* ./../lib/standard//collection//array.nit:243 */
7287 fra.me.REG[7] = fra.me.REG[4];
7288 /* ./../lib/standard//collection//array.nit:245 */
7289 REGB2 = TAG_Int(0);
7290 /* ./../lib/standard//kernel.nit:213 */
7291 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7292 /* ./../lib/standard//collection//array.nit:245 */
7293 if (UNTAG_Bool(REGB2)) {
7294 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7295 if (UNTAG_Bool(REGB2)) {
7296 } else {
7297 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7298 }
7299 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7300 /* ./../lib/standard//kernel.nit:212 */
7301 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7302 } else {
7303 /* ./../lib/standard//collection//array.nit:245 */
7304 REGB0 = TAG_Bool(false);
7305 REGB2 = REGB0;
7306 }
7307 if (UNTAG_Bool(REGB2)) {
7308 } else {
7309 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7310 }
7311 /* ./../lib/standard//collection//array.nit:246 */
7312 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7313 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7314 if (UNTAG_Bool(REGB2)) {
7315 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7316 }
7317 /* ./../lib/standard//collection//array.nit:654 */
7318 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7319 /* ./../lib/standard//collection//array.nit:246 */
7320 goto label116;
7321 label116: while(0);
7322 /* ./compiling//compiling_icode.nit:749 */
7323 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7324 if (!once_value_117) {
7325 fra.me.REG[7] = BOX_NativeString(")==(");
7326 REGB1 = TAG_Int(4);
7327 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7328 once_value_117 = fra.me.REG[7];
7329 register_static_object(&once_value_117);
7330 } else fra.me.REG[7] = once_value_117;
7331 fra.me.REG[7] = fra.me.REG[7];
7332 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7333 REGB1 = TAG_Int(1);
7334 /* ./../lib/standard//collection//array.nit:243 */
7335 fra.me.REG[7] = fra.me.REG[4];
7336 /* ./../lib/standard//collection//array.nit:245 */
7337 REGB2 = TAG_Int(0);
7338 /* ./../lib/standard//kernel.nit:213 */
7339 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7340 /* ./../lib/standard//collection//array.nit:245 */
7341 if (UNTAG_Bool(REGB2)) {
7342 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7343 if (UNTAG_Bool(REGB2)) {
7344 } else {
7345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7346 }
7347 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7348 /* ./../lib/standard//kernel.nit:212 */
7349 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7350 } else {
7351 /* ./../lib/standard//collection//array.nit:245 */
7352 REGB0 = TAG_Bool(false);
7353 REGB2 = REGB0;
7354 }
7355 if (UNTAG_Bool(REGB2)) {
7356 } else {
7357 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7358 }
7359 /* ./../lib/standard//collection//array.nit:246 */
7360 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7361 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7362 if (UNTAG_Bool(REGB2)) {
7363 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7364 }
7365 /* ./../lib/standard//collection//array.nit:654 */
7366 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7367 /* ./../lib/standard//collection//array.nit:246 */
7368 goto label118;
7369 label118: while(0);
7370 /* ./compiling//compiling_icode.nit:749 */
7371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7372 if (!once_value_119) {
7373 fra.me.REG[7] = BOX_NativeString("))");
7374 REGB1 = TAG_Int(2);
7375 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7376 once_value_119 = fra.me.REG[7];
7377 register_static_object(&once_value_119);
7378 } else fra.me.REG[7] = once_value_119;
7379 fra.me.REG[7] = fra.me.REG[7];
7380 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7381 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7382 fra.me.REG[5] = fra.me.REG[6];
7383 } else {
7384 /* ./compiling//compiling_icode.nit:750 */
7385 if (!once_value_120) {
7386 if (!once_value_121) {
7387 fra.me.REG[6] = BOX_NativeString("!=");
7388 REGB1 = TAG_Int(2);
7389 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7390 once_value_121 = fra.me.REG[6];
7391 register_static_object(&once_value_121);
7392 } else fra.me.REG[6] = once_value_121;
7393 fra.me.REG[6] = fra.me.REG[6];
7394 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7395 once_value_120 = fra.me.REG[6];
7396 register_static_object(&once_value_120);
7397 } else fra.me.REG[6] = once_value_120;
7398 fra.me.REG[6] = fra.me.REG[6];
7399 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7400 if (UNTAG_Bool(REGB1)) {
7401 } else {
7402 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7403 REGB1 = REGB2;
7404 }
7405 if (UNTAG_Bool(REGB1)) {
7406 /* ./compiling//compiling_icode.nit:751 */
7407 REGB1 = TAG_Int(5);
7408 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7409 if (!once_value_122) {
7410 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7411 REGB1 = TAG_Int(10);
7412 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7413 once_value_122 = fra.me.REG[7];
7414 register_static_object(&once_value_122);
7415 } else fra.me.REG[7] = once_value_122;
7416 fra.me.REG[7] = fra.me.REG[7];
7417 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7418 REGB1 = TAG_Int(0);
7419 /* ./../lib/standard//collection//array.nit:243 */
7420 fra.me.REG[7] = fra.me.REG[4];
7421 /* ./../lib/standard//collection//array.nit:245 */
7422 REGB2 = TAG_Int(0);
7423 /* ./../lib/standard//kernel.nit:213 */
7424 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7425 /* ./../lib/standard//collection//array.nit:245 */
7426 if (UNTAG_Bool(REGB2)) {
7427 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7428 if (UNTAG_Bool(REGB2)) {
7429 } else {
7430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7431 }
7432 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7433 /* ./../lib/standard//kernel.nit:212 */
7434 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7435 } else {
7436 /* ./../lib/standard//collection//array.nit:245 */
7437 REGB0 = TAG_Bool(false);
7438 REGB2 = REGB0;
7439 }
7440 if (UNTAG_Bool(REGB2)) {
7441 } else {
7442 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7443 }
7444 /* ./../lib/standard//collection//array.nit:246 */
7445 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7446 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7447 if (UNTAG_Bool(REGB2)) {
7448 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7449 }
7450 /* ./../lib/standard//collection//array.nit:654 */
7451 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7452 /* ./../lib/standard//collection//array.nit:246 */
7453 goto label123;
7454 label123: while(0);
7455 /* ./compiling//compiling_icode.nit:751 */
7456 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7457 if (!once_value_124) {
7458 fra.me.REG[7] = BOX_NativeString(")!=(");
7459 REGB1 = TAG_Int(4);
7460 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7461 once_value_124 = fra.me.REG[7];
7462 register_static_object(&once_value_124);
7463 } else fra.me.REG[7] = once_value_124;
7464 fra.me.REG[7] = fra.me.REG[7];
7465 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7466 REGB1 = TAG_Int(1);
7467 /* ./../lib/standard//collection//array.nit:243 */
7468 fra.me.REG[7] = fra.me.REG[4];
7469 /* ./../lib/standard//collection//array.nit:245 */
7470 REGB2 = TAG_Int(0);
7471 /* ./../lib/standard//kernel.nit:213 */
7472 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7473 /* ./../lib/standard//collection//array.nit:245 */
7474 if (UNTAG_Bool(REGB2)) {
7475 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7476 if (UNTAG_Bool(REGB2)) {
7477 } else {
7478 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7479 }
7480 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7481 /* ./../lib/standard//kernel.nit:212 */
7482 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7483 } else {
7484 /* ./../lib/standard//collection//array.nit:245 */
7485 REGB0 = TAG_Bool(false);
7486 REGB2 = REGB0;
7487 }
7488 if (UNTAG_Bool(REGB2)) {
7489 } else {
7490 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7491 }
7492 /* ./../lib/standard//collection//array.nit:246 */
7493 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7494 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7495 if (UNTAG_Bool(REGB2)) {
7496 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7497 }
7498 /* ./../lib/standard//collection//array.nit:654 */
7499 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7500 /* ./../lib/standard//collection//array.nit:246 */
7501 goto label125;
7502 label125: while(0);
7503 /* ./compiling//compiling_icode.nit:751 */
7504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7505 if (!once_value_126) {
7506 fra.me.REG[7] = BOX_NativeString("))");
7507 REGB1 = TAG_Int(2);
7508 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7509 once_value_126 = fra.me.REG[7];
7510 register_static_object(&once_value_126);
7511 } else fra.me.REG[7] = once_value_126;
7512 fra.me.REG[7] = fra.me.REG[7];
7513 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7514 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7515 fra.me.REG[5] = fra.me.REG[6];
7516 }
7517 }
7518 }
7519 }
7520 }
7521 }
7522 }
7523 }
7524 }
7525 }
7526 }
7527 }
7528 }
7529 }
7530 }
7531 }
7532 }
7533 }
7534 }
7535 }
7536 } else {
7537 /* ./compiling//compiling_icode.nit:753 */
7538 if (!once_value_127) {
7539 if (!once_value_128) {
7540 fra.me.REG[6] = BOX_NativeString("Float");
7541 REGB1 = TAG_Int(5);
7542 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7543 once_value_128 = fra.me.REG[6];
7544 register_static_object(&once_value_128);
7545 } else fra.me.REG[6] = once_value_128;
7546 fra.me.REG[6] = fra.me.REG[6];
7547 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7548 once_value_127 = fra.me.REG[6];
7549 register_static_object(&once_value_127);
7550 } else fra.me.REG[6] = once_value_127;
7551 fra.me.REG[6] = fra.me.REG[6];
7552 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
7553 if (UNTAG_Bool(REGB1)) {
7554 } else {
7555 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
7556 REGB1 = REGB2;
7557 }
7558 if (UNTAG_Bool(REGB1)) {
7559 /* ./compiling//compiling_icode.nit:754 */
7560 if (!once_value_129) {
7561 if (!once_value_130) {
7562 fra.me.REG[6] = BOX_NativeString("object_id");
7563 REGB1 = TAG_Int(9);
7564 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7565 once_value_130 = fra.me.REG[6];
7566 register_static_object(&once_value_130);
7567 } else fra.me.REG[6] = once_value_130;
7568 fra.me.REG[6] = fra.me.REG[6];
7569 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7570 once_value_129 = fra.me.REG[6];
7571 register_static_object(&once_value_129);
7572 } else fra.me.REG[6] = once_value_129;
7573 fra.me.REG[6] = fra.me.REG[6];
7574 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7575 if (UNTAG_Bool(REGB1)) {
7576 } else {
7577 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7578 REGB1 = REGB2;
7579 }
7580 if (UNTAG_Bool(REGB1)) {
7581 /* ./compiling//compiling_icode.nit:755 */
7582 REGB1 = TAG_Int(3);
7583 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7584 if (!once_value_131) {
7585 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
7586 REGB1 = TAG_Int(28);
7587 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7588 once_value_131 = fra.me.REG[7];
7589 register_static_object(&once_value_131);
7590 } else fra.me.REG[7] = once_value_131;
7591 fra.me.REG[7] = fra.me.REG[7];
7592 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7593 REGB1 = TAG_Int(0);
7594 /* ./../lib/standard//collection//array.nit:243 */
7595 fra.me.REG[7] = fra.me.REG[4];
7596 /* ./../lib/standard//collection//array.nit:245 */
7597 REGB2 = TAG_Int(0);
7598 /* ./../lib/standard//kernel.nit:213 */
7599 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7600 /* ./../lib/standard//collection//array.nit:245 */
7601 if (UNTAG_Bool(REGB2)) {
7602 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7603 if (UNTAG_Bool(REGB2)) {
7604 } else {
7605 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7606 }
7607 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7608 /* ./../lib/standard//kernel.nit:212 */
7609 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7610 } else {
7611 /* ./../lib/standard//collection//array.nit:245 */
7612 REGB0 = TAG_Bool(false);
7613 REGB2 = REGB0;
7614 }
7615 if (UNTAG_Bool(REGB2)) {
7616 } else {
7617 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7618 }
7619 /* ./../lib/standard//collection//array.nit:246 */
7620 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7621 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7622 if (UNTAG_Bool(REGB2)) {
7623 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7624 }
7625 /* ./../lib/standard//collection//array.nit:654 */
7626 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7627 /* ./../lib/standard//collection//array.nit:246 */
7628 goto label132;
7629 label132: while(0);
7630 /* ./compiling//compiling_icode.nit:755 */
7631 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7632 if (!once_value_133) {
7633 fra.me.REG[7] = BOX_NativeString("))");
7634 REGB1 = TAG_Int(2);
7635 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7636 once_value_133 = fra.me.REG[7];
7637 register_static_object(&once_value_133);
7638 } else fra.me.REG[7] = once_value_133;
7639 fra.me.REG[7] = fra.me.REG[7];
7640 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7641 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7642 fra.me.REG[5] = fra.me.REG[6];
7643 } else {
7644 /* ./compiling//compiling_icode.nit:756 */
7645 if (!once_value_134) {
7646 if (!once_value_135) {
7647 fra.me.REG[6] = BOX_NativeString("unary -");
7648 REGB1 = TAG_Int(7);
7649 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7650 once_value_135 = fra.me.REG[6];
7651 register_static_object(&once_value_135);
7652 } else fra.me.REG[6] = once_value_135;
7653 fra.me.REG[6] = fra.me.REG[6];
7654 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7655 once_value_134 = fra.me.REG[6];
7656 register_static_object(&once_value_134);
7657 } else fra.me.REG[6] = once_value_134;
7658 fra.me.REG[6] = fra.me.REG[6];
7659 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7660 if (UNTAG_Bool(REGB1)) {
7661 } else {
7662 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7663 REGB1 = REGB2;
7664 }
7665 if (UNTAG_Bool(REGB1)) {
7666 /* ./compiling//compiling_icode.nit:757 */
7667 REGB1 = TAG_Int(3);
7668 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7669 if (!once_value_136) {
7670 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
7671 REGB1 = TAG_Int(23);
7672 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7673 once_value_136 = fra.me.REG[7];
7674 register_static_object(&once_value_136);
7675 } else fra.me.REG[7] = once_value_136;
7676 fra.me.REG[7] = fra.me.REG[7];
7677 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7678 REGB1 = TAG_Int(0);
7679 /* ./../lib/standard//collection//array.nit:243 */
7680 fra.me.REG[7] = fra.me.REG[4];
7681 /* ./../lib/standard//collection//array.nit:245 */
7682 REGB2 = TAG_Int(0);
7683 /* ./../lib/standard//kernel.nit:213 */
7684 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7685 /* ./../lib/standard//collection//array.nit:245 */
7686 if (UNTAG_Bool(REGB2)) {
7687 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7688 if (UNTAG_Bool(REGB2)) {
7689 } else {
7690 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7691 }
7692 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7693 /* ./../lib/standard//kernel.nit:212 */
7694 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7695 } else {
7696 /* ./../lib/standard//collection//array.nit:245 */
7697 REGB0 = TAG_Bool(false);
7698 REGB2 = REGB0;
7699 }
7700 if (UNTAG_Bool(REGB2)) {
7701 } else {
7702 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7703 }
7704 /* ./../lib/standard//collection//array.nit:246 */
7705 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7706 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7707 if (UNTAG_Bool(REGB2)) {
7708 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7709 }
7710 /* ./../lib/standard//collection//array.nit:654 */
7711 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7712 /* ./../lib/standard//collection//array.nit:246 */
7713 goto label137;
7714 label137: while(0);
7715 /* ./compiling//compiling_icode.nit:757 */
7716 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7717 if (!once_value_138) {
7718 fra.me.REG[7] = BOX_NativeString("))");
7719 REGB1 = TAG_Int(2);
7720 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7721 once_value_138 = fra.me.REG[7];
7722 register_static_object(&once_value_138);
7723 } else fra.me.REG[7] = once_value_138;
7724 fra.me.REG[7] = fra.me.REG[7];
7725 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7726 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7727 fra.me.REG[5] = fra.me.REG[6];
7728 } else {
7729 /* ./compiling//compiling_icode.nit:758 */
7730 if (!once_value_139) {
7731 if (!once_value_140) {
7732 fra.me.REG[6] = BOX_NativeString("output");
7733 REGB1 = TAG_Int(6);
7734 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7735 once_value_140 = fra.me.REG[6];
7736 register_static_object(&once_value_140);
7737 } else fra.me.REG[6] = once_value_140;
7738 fra.me.REG[6] = fra.me.REG[6];
7739 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7740 once_value_139 = fra.me.REG[6];
7741 register_static_object(&once_value_139);
7742 } else fra.me.REG[6] = once_value_139;
7743 fra.me.REG[6] = fra.me.REG[6];
7744 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7745 if (UNTAG_Bool(REGB1)) {
7746 } else {
7747 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7748 REGB1 = REGB2;
7749 }
7750 if (UNTAG_Bool(REGB1)) {
7751 /* ./compiling//compiling_icode.nit:759 */
7752 REGB1 = TAG_Int(3);
7753 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7754 if (!once_value_141) {
7755 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
7756 REGB1 = TAG_Int(27);
7757 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7758 once_value_141 = fra.me.REG[7];
7759 register_static_object(&once_value_141);
7760 } else fra.me.REG[7] = once_value_141;
7761 fra.me.REG[7] = fra.me.REG[7];
7762 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7763 REGB1 = TAG_Int(0);
7764 /* ./../lib/standard//collection//array.nit:243 */
7765 fra.me.REG[7] = fra.me.REG[4];
7766 /* ./../lib/standard//collection//array.nit:245 */
7767 REGB2 = TAG_Int(0);
7768 /* ./../lib/standard//kernel.nit:213 */
7769 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7770 /* ./../lib/standard//collection//array.nit:245 */
7771 if (UNTAG_Bool(REGB2)) {
7772 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7773 if (UNTAG_Bool(REGB2)) {
7774 } else {
7775 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7776 }
7777 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7778 /* ./../lib/standard//kernel.nit:212 */
7779 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7780 } else {
7781 /* ./../lib/standard//collection//array.nit:245 */
7782 REGB0 = TAG_Bool(false);
7783 REGB2 = REGB0;
7784 }
7785 if (UNTAG_Bool(REGB2)) {
7786 } else {
7787 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7788 }
7789 /* ./../lib/standard//collection//array.nit:246 */
7790 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7791 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7792 if (UNTAG_Bool(REGB2)) {
7793 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7794 }
7795 /* ./../lib/standard//collection//array.nit:654 */
7796 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7797 /* ./../lib/standard//collection//array.nit:246 */
7798 goto label142;
7799 label142: while(0);
7800 /* ./compiling//compiling_icode.nit:759 */
7801 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7802 if (!once_value_143) {
7803 fra.me.REG[7] = BOX_NativeString("));");
7804 REGB1 = TAG_Int(3);
7805 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7806 once_value_143 = fra.me.REG[7];
7807 register_static_object(&once_value_143);
7808 } else fra.me.REG[7] = once_value_143;
7809 fra.me.REG[7] = fra.me.REG[7];
7810 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7811 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7812 fra.me.REG[5] = fra.me.REG[6];
7813 } else {
7814 /* ./compiling//compiling_icode.nit:760 */
7815 if (!once_value_144) {
7816 if (!once_value_145) {
7817 fra.me.REG[6] = BOX_NativeString("to_i");
7818 REGB1 = TAG_Int(4);
7819 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7820 once_value_145 = fra.me.REG[6];
7821 register_static_object(&once_value_145);
7822 } else fra.me.REG[6] = once_value_145;
7823 fra.me.REG[6] = fra.me.REG[6];
7824 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7825 once_value_144 = fra.me.REG[6];
7826 register_static_object(&once_value_144);
7827 } else fra.me.REG[6] = once_value_144;
7828 fra.me.REG[6] = fra.me.REG[6];
7829 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7830 if (UNTAG_Bool(REGB1)) {
7831 } else {
7832 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7833 REGB1 = REGB2;
7834 }
7835 if (UNTAG_Bool(REGB1)) {
7836 /* ./compiling//compiling_icode.nit:761 */
7837 REGB1 = TAG_Int(3);
7838 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7839 if (!once_value_146) {
7840 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
7841 REGB1 = TAG_Int(28);
7842 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7843 once_value_146 = fra.me.REG[7];
7844 register_static_object(&once_value_146);
7845 } else fra.me.REG[7] = once_value_146;
7846 fra.me.REG[7] = fra.me.REG[7];
7847 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7848 REGB1 = TAG_Int(0);
7849 /* ./../lib/standard//collection//array.nit:243 */
7850 fra.me.REG[7] = fra.me.REG[4];
7851 /* ./../lib/standard//collection//array.nit:245 */
7852 REGB2 = TAG_Int(0);
7853 /* ./../lib/standard//kernel.nit:213 */
7854 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7855 /* ./../lib/standard//collection//array.nit:245 */
7856 if (UNTAG_Bool(REGB2)) {
7857 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7858 if (UNTAG_Bool(REGB2)) {
7859 } else {
7860 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7861 }
7862 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7863 /* ./../lib/standard//kernel.nit:212 */
7864 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7865 } else {
7866 /* ./../lib/standard//collection//array.nit:245 */
7867 REGB0 = TAG_Bool(false);
7868 REGB2 = REGB0;
7869 }
7870 if (UNTAG_Bool(REGB2)) {
7871 } else {
7872 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7873 }
7874 /* ./../lib/standard//collection//array.nit:246 */
7875 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7876 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7877 if (UNTAG_Bool(REGB2)) {
7878 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7879 }
7880 /* ./../lib/standard//collection//array.nit:654 */
7881 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7882 /* ./../lib/standard//collection//array.nit:246 */
7883 goto label147;
7884 label147: while(0);
7885 /* ./compiling//compiling_icode.nit:761 */
7886 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7887 if (!once_value_148) {
7888 fra.me.REG[7] = BOX_NativeString("))");
7889 REGB1 = TAG_Int(2);
7890 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7891 once_value_148 = fra.me.REG[7];
7892 register_static_object(&once_value_148);
7893 } else fra.me.REG[7] = once_value_148;
7894 fra.me.REG[7] = fra.me.REG[7];
7895 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7896 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7897 fra.me.REG[5] = fra.me.REG[6];
7898 } else {
7899 /* ./compiling//compiling_icode.nit:762 */
7900 if (!once_value_149) {
7901 if (!once_value_150) {
7902 fra.me.REG[6] = BOX_NativeString("+");
7903 REGB1 = TAG_Int(1);
7904 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7905 once_value_150 = fra.me.REG[6];
7906 register_static_object(&once_value_150);
7907 } else fra.me.REG[6] = once_value_150;
7908 fra.me.REG[6] = fra.me.REG[6];
7909 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7910 once_value_149 = fra.me.REG[6];
7911 register_static_object(&once_value_149);
7912 } else fra.me.REG[6] = once_value_149;
7913 fra.me.REG[6] = fra.me.REG[6];
7914 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7915 if (UNTAG_Bool(REGB1)) {
7916 } else {
7917 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7918 REGB1 = REGB2;
7919 }
7920 if (UNTAG_Bool(REGB1)) {
7921 /* ./compiling//compiling_icode.nit:763 */
7922 REGB1 = TAG_Int(5);
7923 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7924 if (!once_value_151) {
7925 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
7926 REGB1 = TAG_Int(22);
7927 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7928 once_value_151 = fra.me.REG[7];
7929 register_static_object(&once_value_151);
7930 } else fra.me.REG[7] = once_value_151;
7931 fra.me.REG[7] = fra.me.REG[7];
7932 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7933 REGB1 = TAG_Int(0);
7934 /* ./../lib/standard//collection//array.nit:243 */
7935 fra.me.REG[7] = fra.me.REG[4];
7936 /* ./../lib/standard//collection//array.nit:245 */
7937 REGB2 = TAG_Int(0);
7938 /* ./../lib/standard//kernel.nit:213 */
7939 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7940 /* ./../lib/standard//collection//array.nit:245 */
7941 if (UNTAG_Bool(REGB2)) {
7942 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7943 if (UNTAG_Bool(REGB2)) {
7944 } else {
7945 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7946 }
7947 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7948 /* ./../lib/standard//kernel.nit:212 */
7949 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7950 } else {
7951 /* ./../lib/standard//collection//array.nit:245 */
7952 REGB0 = TAG_Bool(false);
7953 REGB2 = REGB0;
7954 }
7955 if (UNTAG_Bool(REGB2)) {
7956 } else {
7957 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7958 }
7959 /* ./../lib/standard//collection//array.nit:246 */
7960 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7961 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7962 if (UNTAG_Bool(REGB2)) {
7963 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7964 }
7965 /* ./../lib/standard//collection//array.nit:654 */
7966 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7967 /* ./../lib/standard//collection//array.nit:246 */
7968 goto label152;
7969 label152: while(0);
7970 /* ./compiling//compiling_icode.nit:763 */
7971 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7972 if (!once_value_153) {
7973 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
7974 REGB1 = TAG_Int(14);
7975 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7976 once_value_153 = fra.me.REG[7];
7977 register_static_object(&once_value_153);
7978 } else fra.me.REG[7] = once_value_153;
7979 fra.me.REG[7] = fra.me.REG[7];
7980 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7981 REGB1 = TAG_Int(1);
7982 /* ./../lib/standard//collection//array.nit:243 */
7983 fra.me.REG[7] = fra.me.REG[4];
7984 /* ./../lib/standard//collection//array.nit:245 */
7985 REGB2 = TAG_Int(0);
7986 /* ./../lib/standard//kernel.nit:213 */
7987 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7988 /* ./../lib/standard//collection//array.nit:245 */
7989 if (UNTAG_Bool(REGB2)) {
7990 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7991 if (UNTAG_Bool(REGB2)) {
7992 } else {
7993 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7994 }
7995 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7996 /* ./../lib/standard//kernel.nit:212 */
7997 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7998 } else {
7999 /* ./../lib/standard//collection//array.nit:245 */
8000 REGB0 = TAG_Bool(false);
8001 REGB2 = REGB0;
8002 }
8003 if (UNTAG_Bool(REGB2)) {
8004 } else {
8005 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8006 }
8007 /* ./../lib/standard//collection//array.nit:246 */
8008 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8009 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8010 if (UNTAG_Bool(REGB2)) {
8011 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8012 }
8013 /* ./../lib/standard//collection//array.nit:654 */
8014 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8015 /* ./../lib/standard//collection//array.nit:246 */
8016 goto label154;
8017 label154: while(0);
8018 /* ./compiling//compiling_icode.nit:763 */
8019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8020 if (!once_value_155) {
8021 fra.me.REG[7] = BOX_NativeString("))");
8022 REGB1 = TAG_Int(2);
8023 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8024 once_value_155 = fra.me.REG[7];
8025 register_static_object(&once_value_155);
8026 } else fra.me.REG[7] = once_value_155;
8027 fra.me.REG[7] = fra.me.REG[7];
8028 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8029 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8030 fra.me.REG[5] = fra.me.REG[6];
8031 } else {
8032 /* ./compiling//compiling_icode.nit:764 */
8033 if (!once_value_156) {
8034 if (!once_value_157) {
8035 fra.me.REG[6] = BOX_NativeString("-");
8036 REGB1 = TAG_Int(1);
8037 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8038 once_value_157 = fra.me.REG[6];
8039 register_static_object(&once_value_157);
8040 } else fra.me.REG[6] = once_value_157;
8041 fra.me.REG[6] = fra.me.REG[6];
8042 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8043 once_value_156 = fra.me.REG[6];
8044 register_static_object(&once_value_156);
8045 } else fra.me.REG[6] = once_value_156;
8046 fra.me.REG[6] = fra.me.REG[6];
8047 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8048 if (UNTAG_Bool(REGB1)) {
8049 } else {
8050 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8051 REGB1 = REGB2;
8052 }
8053 if (UNTAG_Bool(REGB1)) {
8054 /* ./compiling//compiling_icode.nit:765 */
8055 REGB1 = TAG_Int(5);
8056 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8057 if (!once_value_158) {
8058 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8059 REGB1 = TAG_Int(22);
8060 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8061 once_value_158 = fra.me.REG[7];
8062 register_static_object(&once_value_158);
8063 } else fra.me.REG[7] = once_value_158;
8064 fra.me.REG[7] = fra.me.REG[7];
8065 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8066 REGB1 = TAG_Int(0);
8067 /* ./../lib/standard//collection//array.nit:243 */
8068 fra.me.REG[7] = fra.me.REG[4];
8069 /* ./../lib/standard//collection//array.nit:245 */
8070 REGB2 = TAG_Int(0);
8071 /* ./../lib/standard//kernel.nit:213 */
8072 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8073 /* ./../lib/standard//collection//array.nit:245 */
8074 if (UNTAG_Bool(REGB2)) {
8075 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8076 if (UNTAG_Bool(REGB2)) {
8077 } else {
8078 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8079 }
8080 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8081 /* ./../lib/standard//kernel.nit:212 */
8082 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8083 } else {
8084 /* ./../lib/standard//collection//array.nit:245 */
8085 REGB0 = TAG_Bool(false);
8086 REGB2 = REGB0;
8087 }
8088 if (UNTAG_Bool(REGB2)) {
8089 } else {
8090 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8091 }
8092 /* ./../lib/standard//collection//array.nit:246 */
8093 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8094 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8095 if (UNTAG_Bool(REGB2)) {
8096 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8097 }
8098 /* ./../lib/standard//collection//array.nit:654 */
8099 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8100 /* ./../lib/standard//collection//array.nit:246 */
8101 goto label159;
8102 label159: while(0);
8103 /* ./compiling//compiling_icode.nit:765 */
8104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8105 if (!once_value_160) {
8106 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8107 REGB1 = TAG_Int(14);
8108 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8109 once_value_160 = fra.me.REG[7];
8110 register_static_object(&once_value_160);
8111 } else fra.me.REG[7] = once_value_160;
8112 fra.me.REG[7] = fra.me.REG[7];
8113 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8114 REGB1 = TAG_Int(1);
8115 /* ./../lib/standard//collection//array.nit:243 */
8116 fra.me.REG[7] = fra.me.REG[4];
8117 /* ./../lib/standard//collection//array.nit:245 */
8118 REGB2 = TAG_Int(0);
8119 /* ./../lib/standard//kernel.nit:213 */
8120 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8121 /* ./../lib/standard//collection//array.nit:245 */
8122 if (UNTAG_Bool(REGB2)) {
8123 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8124 if (UNTAG_Bool(REGB2)) {
8125 } else {
8126 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8127 }
8128 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8129 /* ./../lib/standard//kernel.nit:212 */
8130 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8131 } else {
8132 /* ./../lib/standard//collection//array.nit:245 */
8133 REGB0 = TAG_Bool(false);
8134 REGB2 = REGB0;
8135 }
8136 if (UNTAG_Bool(REGB2)) {
8137 } else {
8138 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8139 }
8140 /* ./../lib/standard//collection//array.nit:246 */
8141 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8142 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8143 if (UNTAG_Bool(REGB2)) {
8144 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8145 }
8146 /* ./../lib/standard//collection//array.nit:654 */
8147 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8148 /* ./../lib/standard//collection//array.nit:246 */
8149 goto label161;
8150 label161: while(0);
8151 /* ./compiling//compiling_icode.nit:765 */
8152 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8153 if (!once_value_162) {
8154 fra.me.REG[7] = BOX_NativeString("))");
8155 REGB1 = TAG_Int(2);
8156 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8157 once_value_162 = fra.me.REG[7];
8158 register_static_object(&once_value_162);
8159 } else fra.me.REG[7] = once_value_162;
8160 fra.me.REG[7] = fra.me.REG[7];
8161 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8162 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8163 fra.me.REG[5] = fra.me.REG[6];
8164 } else {
8165 /* ./compiling//compiling_icode.nit:766 */
8166 if (!once_value_163) {
8167 if (!once_value_164) {
8168 fra.me.REG[6] = BOX_NativeString("*");
8169 REGB1 = TAG_Int(1);
8170 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8171 once_value_164 = fra.me.REG[6];
8172 register_static_object(&once_value_164);
8173 } else fra.me.REG[6] = once_value_164;
8174 fra.me.REG[6] = fra.me.REG[6];
8175 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8176 once_value_163 = fra.me.REG[6];
8177 register_static_object(&once_value_163);
8178 } else fra.me.REG[6] = once_value_163;
8179 fra.me.REG[6] = fra.me.REG[6];
8180 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8181 if (UNTAG_Bool(REGB1)) {
8182 } else {
8183 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8184 REGB1 = REGB2;
8185 }
8186 if (UNTAG_Bool(REGB1)) {
8187 /* ./compiling//compiling_icode.nit:767 */
8188 REGB1 = TAG_Int(5);
8189 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8190 if (!once_value_165) {
8191 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8192 REGB1 = TAG_Int(22);
8193 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8194 once_value_165 = fra.me.REG[7];
8195 register_static_object(&once_value_165);
8196 } else fra.me.REG[7] = once_value_165;
8197 fra.me.REG[7] = fra.me.REG[7];
8198 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8199 REGB1 = TAG_Int(0);
8200 /* ./../lib/standard//collection//array.nit:243 */
8201 fra.me.REG[7] = fra.me.REG[4];
8202 /* ./../lib/standard//collection//array.nit:245 */
8203 REGB2 = TAG_Int(0);
8204 /* ./../lib/standard//kernel.nit:213 */
8205 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8206 /* ./../lib/standard//collection//array.nit:245 */
8207 if (UNTAG_Bool(REGB2)) {
8208 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8209 if (UNTAG_Bool(REGB2)) {
8210 } else {
8211 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8212 }
8213 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8214 /* ./../lib/standard//kernel.nit:212 */
8215 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8216 } else {
8217 /* ./../lib/standard//collection//array.nit:245 */
8218 REGB0 = TAG_Bool(false);
8219 REGB2 = REGB0;
8220 }
8221 if (UNTAG_Bool(REGB2)) {
8222 } else {
8223 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8224 }
8225 /* ./../lib/standard//collection//array.nit:246 */
8226 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8227 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8228 if (UNTAG_Bool(REGB2)) {
8229 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8230 }
8231 /* ./../lib/standard//collection//array.nit:654 */
8232 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8233 /* ./../lib/standard//collection//array.nit:246 */
8234 goto label166;
8235 label166: while(0);
8236 /* ./compiling//compiling_icode.nit:767 */
8237 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8238 if (!once_value_167) {
8239 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8240 REGB1 = TAG_Int(14);
8241 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8242 once_value_167 = fra.me.REG[7];
8243 register_static_object(&once_value_167);
8244 } else fra.me.REG[7] = once_value_167;
8245 fra.me.REG[7] = fra.me.REG[7];
8246 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8247 REGB1 = TAG_Int(1);
8248 /* ./../lib/standard//collection//array.nit:243 */
8249 fra.me.REG[7] = fra.me.REG[4];
8250 /* ./../lib/standard//collection//array.nit:245 */
8251 REGB2 = TAG_Int(0);
8252 /* ./../lib/standard//kernel.nit:213 */
8253 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8254 /* ./../lib/standard//collection//array.nit:245 */
8255 if (UNTAG_Bool(REGB2)) {
8256 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8257 if (UNTAG_Bool(REGB2)) {
8258 } else {
8259 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8260 }
8261 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8262 /* ./../lib/standard//kernel.nit:212 */
8263 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8264 } else {
8265 /* ./../lib/standard//collection//array.nit:245 */
8266 REGB0 = TAG_Bool(false);
8267 REGB2 = REGB0;
8268 }
8269 if (UNTAG_Bool(REGB2)) {
8270 } else {
8271 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8272 }
8273 /* ./../lib/standard//collection//array.nit:246 */
8274 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8275 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8276 if (UNTAG_Bool(REGB2)) {
8277 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8278 }
8279 /* ./../lib/standard//collection//array.nit:654 */
8280 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8281 /* ./../lib/standard//collection//array.nit:246 */
8282 goto label168;
8283 label168: while(0);
8284 /* ./compiling//compiling_icode.nit:767 */
8285 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8286 if (!once_value_169) {
8287 fra.me.REG[7] = BOX_NativeString("))");
8288 REGB1 = TAG_Int(2);
8289 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8290 once_value_169 = fra.me.REG[7];
8291 register_static_object(&once_value_169);
8292 } else fra.me.REG[7] = once_value_169;
8293 fra.me.REG[7] = fra.me.REG[7];
8294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8295 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8296 fra.me.REG[5] = fra.me.REG[6];
8297 } else {
8298 /* ./compiling//compiling_icode.nit:768 */
8299 if (!once_value_170) {
8300 if (!once_value_171) {
8301 fra.me.REG[6] = BOX_NativeString("/");
8302 REGB1 = TAG_Int(1);
8303 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8304 once_value_171 = fra.me.REG[6];
8305 register_static_object(&once_value_171);
8306 } else fra.me.REG[6] = once_value_171;
8307 fra.me.REG[6] = fra.me.REG[6];
8308 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8309 once_value_170 = fra.me.REG[6];
8310 register_static_object(&once_value_170);
8311 } else fra.me.REG[6] = once_value_170;
8312 fra.me.REG[6] = fra.me.REG[6];
8313 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8314 if (UNTAG_Bool(REGB1)) {
8315 } else {
8316 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8317 REGB1 = REGB2;
8318 }
8319 if (UNTAG_Bool(REGB1)) {
8320 /* ./compiling//compiling_icode.nit:769 */
8321 REGB1 = TAG_Int(5);
8322 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8323 if (!once_value_172) {
8324 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8325 REGB1 = TAG_Int(22);
8326 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8327 once_value_172 = fra.me.REG[7];
8328 register_static_object(&once_value_172);
8329 } else fra.me.REG[7] = once_value_172;
8330 fra.me.REG[7] = fra.me.REG[7];
8331 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8332 REGB1 = TAG_Int(0);
8333 /* ./../lib/standard//collection//array.nit:243 */
8334 fra.me.REG[7] = fra.me.REG[4];
8335 /* ./../lib/standard//collection//array.nit:245 */
8336 REGB2 = TAG_Int(0);
8337 /* ./../lib/standard//kernel.nit:213 */
8338 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8339 /* ./../lib/standard//collection//array.nit:245 */
8340 if (UNTAG_Bool(REGB2)) {
8341 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8342 if (UNTAG_Bool(REGB2)) {
8343 } else {
8344 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8345 }
8346 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8347 /* ./../lib/standard//kernel.nit:212 */
8348 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8349 } else {
8350 /* ./../lib/standard//collection//array.nit:245 */
8351 REGB0 = TAG_Bool(false);
8352 REGB2 = REGB0;
8353 }
8354 if (UNTAG_Bool(REGB2)) {
8355 } else {
8356 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8357 }
8358 /* ./../lib/standard//collection//array.nit:246 */
8359 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8360 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8361 if (UNTAG_Bool(REGB2)) {
8362 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8363 }
8364 /* ./../lib/standard//collection//array.nit:654 */
8365 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8366 /* ./../lib/standard//collection//array.nit:246 */
8367 goto label173;
8368 label173: while(0);
8369 /* ./compiling//compiling_icode.nit:769 */
8370 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8371 if (!once_value_174) {
8372 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
8373 REGB1 = TAG_Int(14);
8374 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8375 once_value_174 = fra.me.REG[7];
8376 register_static_object(&once_value_174);
8377 } else fra.me.REG[7] = once_value_174;
8378 fra.me.REG[7] = fra.me.REG[7];
8379 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8380 REGB1 = TAG_Int(1);
8381 /* ./../lib/standard//collection//array.nit:243 */
8382 fra.me.REG[7] = fra.me.REG[4];
8383 /* ./../lib/standard//collection//array.nit:245 */
8384 REGB2 = TAG_Int(0);
8385 /* ./../lib/standard//kernel.nit:213 */
8386 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8387 /* ./../lib/standard//collection//array.nit:245 */
8388 if (UNTAG_Bool(REGB2)) {
8389 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8390 if (UNTAG_Bool(REGB2)) {
8391 } else {
8392 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8393 }
8394 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8395 /* ./../lib/standard//kernel.nit:212 */
8396 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8397 } else {
8398 /* ./../lib/standard//collection//array.nit:245 */
8399 REGB0 = TAG_Bool(false);
8400 REGB2 = REGB0;
8401 }
8402 if (UNTAG_Bool(REGB2)) {
8403 } else {
8404 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8405 }
8406 /* ./../lib/standard//collection//array.nit:246 */
8407 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8408 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8409 if (UNTAG_Bool(REGB2)) {
8410 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8411 }
8412 /* ./../lib/standard//collection//array.nit:654 */
8413 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8414 /* ./../lib/standard//collection//array.nit:246 */
8415 goto label175;
8416 label175: while(0);
8417 /* ./compiling//compiling_icode.nit:769 */
8418 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8419 if (!once_value_176) {
8420 fra.me.REG[7] = BOX_NativeString("))");
8421 REGB1 = TAG_Int(2);
8422 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8423 once_value_176 = fra.me.REG[7];
8424 register_static_object(&once_value_176);
8425 } else fra.me.REG[7] = once_value_176;
8426 fra.me.REG[7] = fra.me.REG[7];
8427 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8428 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8429 fra.me.REG[5] = fra.me.REG[6];
8430 } else {
8431 /* ./compiling//compiling_icode.nit:770 */
8432 if (!once_value_177) {
8433 if (!once_value_178) {
8434 fra.me.REG[6] = BOX_NativeString("<");
8435 REGB1 = TAG_Int(1);
8436 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8437 once_value_178 = fra.me.REG[6];
8438 register_static_object(&once_value_178);
8439 } else fra.me.REG[6] = once_value_178;
8440 fra.me.REG[6] = fra.me.REG[6];
8441 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8442 once_value_177 = fra.me.REG[6];
8443 register_static_object(&once_value_177);
8444 } else fra.me.REG[6] = once_value_177;
8445 fra.me.REG[6] = fra.me.REG[6];
8446 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8447 if (UNTAG_Bool(REGB1)) {
8448 } else {
8449 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8450 REGB1 = REGB2;
8451 }
8452 if (UNTAG_Bool(REGB1)) {
8453 /* ./compiling//compiling_icode.nit:771 */
8454 REGB1 = TAG_Int(5);
8455 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8456 if (!once_value_179) {
8457 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8458 REGB1 = TAG_Int(21);
8459 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8460 once_value_179 = fra.me.REG[7];
8461 register_static_object(&once_value_179);
8462 } else fra.me.REG[7] = once_value_179;
8463 fra.me.REG[7] = fra.me.REG[7];
8464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8465 REGB1 = TAG_Int(0);
8466 /* ./../lib/standard//collection//array.nit:243 */
8467 fra.me.REG[7] = fra.me.REG[4];
8468 /* ./../lib/standard//collection//array.nit:245 */
8469 REGB2 = TAG_Int(0);
8470 /* ./../lib/standard//kernel.nit:213 */
8471 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8472 /* ./../lib/standard//collection//array.nit:245 */
8473 if (UNTAG_Bool(REGB2)) {
8474 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8475 if (UNTAG_Bool(REGB2)) {
8476 } else {
8477 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8478 }
8479 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8480 /* ./../lib/standard//kernel.nit:212 */
8481 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8482 } else {
8483 /* ./../lib/standard//collection//array.nit:245 */
8484 REGB0 = TAG_Bool(false);
8485 REGB2 = REGB0;
8486 }
8487 if (UNTAG_Bool(REGB2)) {
8488 } else {
8489 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8490 }
8491 /* ./../lib/standard//collection//array.nit:246 */
8492 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8493 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8494 if (UNTAG_Bool(REGB2)) {
8495 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8496 }
8497 /* ./../lib/standard//collection//array.nit:654 */
8498 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8499 /* ./../lib/standard//collection//array.nit:246 */
8500 goto label180;
8501 label180: while(0);
8502 /* ./compiling//compiling_icode.nit:771 */
8503 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8504 if (!once_value_181) {
8505 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
8506 REGB1 = TAG_Int(14);
8507 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8508 once_value_181 = fra.me.REG[7];
8509 register_static_object(&once_value_181);
8510 } else fra.me.REG[7] = once_value_181;
8511 fra.me.REG[7] = fra.me.REG[7];
8512 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8513 REGB1 = TAG_Int(1);
8514 /* ./../lib/standard//collection//array.nit:243 */
8515 fra.me.REG[7] = fra.me.REG[4];
8516 /* ./../lib/standard//collection//array.nit:245 */
8517 REGB2 = TAG_Int(0);
8518 /* ./../lib/standard//kernel.nit:213 */
8519 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8520 /* ./../lib/standard//collection//array.nit:245 */
8521 if (UNTAG_Bool(REGB2)) {
8522 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8523 if (UNTAG_Bool(REGB2)) {
8524 } else {
8525 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8526 }
8527 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8528 /* ./../lib/standard//kernel.nit:212 */
8529 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8530 } else {
8531 /* ./../lib/standard//collection//array.nit:245 */
8532 REGB0 = TAG_Bool(false);
8533 REGB2 = REGB0;
8534 }
8535 if (UNTAG_Bool(REGB2)) {
8536 } else {
8537 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8538 }
8539 /* ./../lib/standard//collection//array.nit:246 */
8540 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8541 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8542 if (UNTAG_Bool(REGB2)) {
8543 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8544 }
8545 /* ./../lib/standard//collection//array.nit:654 */
8546 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8547 /* ./../lib/standard//collection//array.nit:246 */
8548 goto label182;
8549 label182: while(0);
8550 /* ./compiling//compiling_icode.nit:771 */
8551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8552 if (!once_value_183) {
8553 fra.me.REG[7] = BOX_NativeString("))");
8554 REGB1 = TAG_Int(2);
8555 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8556 once_value_183 = fra.me.REG[7];
8557 register_static_object(&once_value_183);
8558 } else fra.me.REG[7] = once_value_183;
8559 fra.me.REG[7] = fra.me.REG[7];
8560 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8561 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8562 fra.me.REG[5] = fra.me.REG[6];
8563 } else {
8564 /* ./compiling//compiling_icode.nit:772 */
8565 if (!once_value_184) {
8566 if (!once_value_185) {
8567 fra.me.REG[6] = BOX_NativeString(">");
8568 REGB1 = TAG_Int(1);
8569 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8570 once_value_185 = fra.me.REG[6];
8571 register_static_object(&once_value_185);
8572 } else fra.me.REG[6] = once_value_185;
8573 fra.me.REG[6] = fra.me.REG[6];
8574 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8575 once_value_184 = fra.me.REG[6];
8576 register_static_object(&once_value_184);
8577 } else fra.me.REG[6] = once_value_184;
8578 fra.me.REG[6] = fra.me.REG[6];
8579 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8580 if (UNTAG_Bool(REGB1)) {
8581 } else {
8582 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8583 REGB1 = REGB2;
8584 }
8585 if (UNTAG_Bool(REGB1)) {
8586 /* ./compiling//compiling_icode.nit:773 */
8587 REGB1 = TAG_Int(5);
8588 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8589 if (!once_value_186) {
8590 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8591 REGB1 = TAG_Int(21);
8592 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8593 once_value_186 = fra.me.REG[7];
8594 register_static_object(&once_value_186);
8595 } else fra.me.REG[7] = once_value_186;
8596 fra.me.REG[7] = fra.me.REG[7];
8597 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8598 REGB1 = TAG_Int(0);
8599 /* ./../lib/standard//collection//array.nit:243 */
8600 fra.me.REG[7] = fra.me.REG[4];
8601 /* ./../lib/standard//collection//array.nit:245 */
8602 REGB2 = TAG_Int(0);
8603 /* ./../lib/standard//kernel.nit:213 */
8604 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8605 /* ./../lib/standard//collection//array.nit:245 */
8606 if (UNTAG_Bool(REGB2)) {
8607 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8608 if (UNTAG_Bool(REGB2)) {
8609 } else {
8610 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8611 }
8612 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8613 /* ./../lib/standard//kernel.nit:212 */
8614 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8615 } else {
8616 /* ./../lib/standard//collection//array.nit:245 */
8617 REGB0 = TAG_Bool(false);
8618 REGB2 = REGB0;
8619 }
8620 if (UNTAG_Bool(REGB2)) {
8621 } else {
8622 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8623 }
8624 /* ./../lib/standard//collection//array.nit:246 */
8625 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8626 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8627 if (UNTAG_Bool(REGB2)) {
8628 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8629 }
8630 /* ./../lib/standard//collection//array.nit:654 */
8631 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8632 /* ./../lib/standard//collection//array.nit:246 */
8633 goto label187;
8634 label187: while(0);
8635 /* ./compiling//compiling_icode.nit:773 */
8636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8637 if (!once_value_188) {
8638 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
8639 REGB1 = TAG_Int(14);
8640 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8641 once_value_188 = fra.me.REG[7];
8642 register_static_object(&once_value_188);
8643 } else fra.me.REG[7] = once_value_188;
8644 fra.me.REG[7] = fra.me.REG[7];
8645 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8646 REGB1 = TAG_Int(1);
8647 /* ./../lib/standard//collection//array.nit:243 */
8648 fra.me.REG[7] = fra.me.REG[4];
8649 /* ./../lib/standard//collection//array.nit:245 */
8650 REGB2 = TAG_Int(0);
8651 /* ./../lib/standard//kernel.nit:213 */
8652 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8653 /* ./../lib/standard//collection//array.nit:245 */
8654 if (UNTAG_Bool(REGB2)) {
8655 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8656 if (UNTAG_Bool(REGB2)) {
8657 } else {
8658 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8659 }
8660 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8661 /* ./../lib/standard//kernel.nit:212 */
8662 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8663 } else {
8664 /* ./../lib/standard//collection//array.nit:245 */
8665 REGB0 = TAG_Bool(false);
8666 REGB2 = REGB0;
8667 }
8668 if (UNTAG_Bool(REGB2)) {
8669 } else {
8670 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8671 }
8672 /* ./../lib/standard//collection//array.nit:246 */
8673 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8674 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8675 if (UNTAG_Bool(REGB2)) {
8676 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8677 }
8678 /* ./../lib/standard//collection//array.nit:654 */
8679 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8680 /* ./../lib/standard//collection//array.nit:246 */
8681 goto label189;
8682 label189: while(0);
8683 /* ./compiling//compiling_icode.nit:773 */
8684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8685 if (!once_value_190) {
8686 fra.me.REG[7] = BOX_NativeString("))");
8687 REGB1 = TAG_Int(2);
8688 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8689 once_value_190 = fra.me.REG[7];
8690 register_static_object(&once_value_190);
8691 } else fra.me.REG[7] = once_value_190;
8692 fra.me.REG[7] = fra.me.REG[7];
8693 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8694 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8695 fra.me.REG[5] = fra.me.REG[6];
8696 } else {
8697 /* ./compiling//compiling_icode.nit:774 */
8698 if (!once_value_191) {
8699 if (!once_value_192) {
8700 fra.me.REG[6] = BOX_NativeString("<=");
8701 REGB1 = TAG_Int(2);
8702 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8703 once_value_192 = fra.me.REG[6];
8704 register_static_object(&once_value_192);
8705 } else fra.me.REG[6] = once_value_192;
8706 fra.me.REG[6] = fra.me.REG[6];
8707 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8708 once_value_191 = fra.me.REG[6];
8709 register_static_object(&once_value_191);
8710 } else fra.me.REG[6] = once_value_191;
8711 fra.me.REG[6] = fra.me.REG[6];
8712 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8713 if (UNTAG_Bool(REGB1)) {
8714 } else {
8715 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8716 REGB1 = REGB2;
8717 }
8718 if (UNTAG_Bool(REGB1)) {
8719 /* ./compiling//compiling_icode.nit:775 */
8720 REGB1 = TAG_Int(5);
8721 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8722 if (!once_value_193) {
8723 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8724 REGB1 = TAG_Int(21);
8725 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8726 once_value_193 = fra.me.REG[7];
8727 register_static_object(&once_value_193);
8728 } else fra.me.REG[7] = once_value_193;
8729 fra.me.REG[7] = fra.me.REG[7];
8730 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8731 REGB1 = TAG_Int(0);
8732 /* ./../lib/standard//collection//array.nit:243 */
8733 fra.me.REG[7] = fra.me.REG[4];
8734 /* ./../lib/standard//collection//array.nit:245 */
8735 REGB2 = TAG_Int(0);
8736 /* ./../lib/standard//kernel.nit:213 */
8737 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8738 /* ./../lib/standard//collection//array.nit:245 */
8739 if (UNTAG_Bool(REGB2)) {
8740 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8741 if (UNTAG_Bool(REGB2)) {
8742 } else {
8743 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8744 }
8745 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8746 /* ./../lib/standard//kernel.nit:212 */
8747 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8748 } else {
8749 /* ./../lib/standard//collection//array.nit:245 */
8750 REGB0 = TAG_Bool(false);
8751 REGB2 = REGB0;
8752 }
8753 if (UNTAG_Bool(REGB2)) {
8754 } else {
8755 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8756 }
8757 /* ./../lib/standard//collection//array.nit:246 */
8758 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8759 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8760 if (UNTAG_Bool(REGB2)) {
8761 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8762 }
8763 /* ./../lib/standard//collection//array.nit:654 */
8764 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8765 /* ./../lib/standard//collection//array.nit:246 */
8766 goto label194;
8767 label194: while(0);
8768 /* ./compiling//compiling_icode.nit:775 */
8769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8770 if (!once_value_195) {
8771 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
8772 REGB1 = TAG_Int(15);
8773 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8774 once_value_195 = fra.me.REG[7];
8775 register_static_object(&once_value_195);
8776 } else fra.me.REG[7] = once_value_195;
8777 fra.me.REG[7] = fra.me.REG[7];
8778 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8779 REGB1 = TAG_Int(1);
8780 /* ./../lib/standard//collection//array.nit:243 */
8781 fra.me.REG[7] = fra.me.REG[4];
8782 /* ./../lib/standard//collection//array.nit:245 */
8783 REGB2 = TAG_Int(0);
8784 /* ./../lib/standard//kernel.nit:213 */
8785 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8786 /* ./../lib/standard//collection//array.nit:245 */
8787 if (UNTAG_Bool(REGB2)) {
8788 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8789 if (UNTAG_Bool(REGB2)) {
8790 } else {
8791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8792 }
8793 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8794 /* ./../lib/standard//kernel.nit:212 */
8795 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8796 } else {
8797 /* ./../lib/standard//collection//array.nit:245 */
8798 REGB0 = TAG_Bool(false);
8799 REGB2 = REGB0;
8800 }
8801 if (UNTAG_Bool(REGB2)) {
8802 } else {
8803 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8804 }
8805 /* ./../lib/standard//collection//array.nit:246 */
8806 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8807 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8808 if (UNTAG_Bool(REGB2)) {
8809 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8810 }
8811 /* ./../lib/standard//collection//array.nit:654 */
8812 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8813 /* ./../lib/standard//collection//array.nit:246 */
8814 goto label196;
8815 label196: while(0);
8816 /* ./compiling//compiling_icode.nit:775 */
8817 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8818 if (!once_value_197) {
8819 fra.me.REG[7] = BOX_NativeString("))");
8820 REGB1 = TAG_Int(2);
8821 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8822 once_value_197 = fra.me.REG[7];
8823 register_static_object(&once_value_197);
8824 } else fra.me.REG[7] = once_value_197;
8825 fra.me.REG[7] = fra.me.REG[7];
8826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8827 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8828 fra.me.REG[5] = fra.me.REG[6];
8829 } else {
8830 /* ./compiling//compiling_icode.nit:776 */
8831 if (!once_value_198) {
8832 if (!once_value_199) {
8833 fra.me.REG[6] = BOX_NativeString(">=");
8834 REGB1 = TAG_Int(2);
8835 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8836 once_value_199 = fra.me.REG[6];
8837 register_static_object(&once_value_199);
8838 } else fra.me.REG[6] = once_value_199;
8839 fra.me.REG[6] = fra.me.REG[6];
8840 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8841 once_value_198 = fra.me.REG[6];
8842 register_static_object(&once_value_198);
8843 } else fra.me.REG[6] = once_value_198;
8844 fra.me.REG[6] = fra.me.REG[6];
8845 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8846 if (UNTAG_Bool(REGB1)) {
8847 } else {
8848 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8849 REGB1 = REGB2;
8850 }
8851 if (UNTAG_Bool(REGB1)) {
8852 /* ./compiling//compiling_icode.nit:777 */
8853 REGB1 = TAG_Int(5);
8854 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8855 if (!once_value_200) {
8856 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8857 REGB1 = TAG_Int(21);
8858 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8859 once_value_200 = fra.me.REG[7];
8860 register_static_object(&once_value_200);
8861 } else fra.me.REG[7] = once_value_200;
8862 fra.me.REG[7] = fra.me.REG[7];
8863 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8864 REGB1 = TAG_Int(0);
8865 /* ./../lib/standard//collection//array.nit:243 */
8866 fra.me.REG[7] = fra.me.REG[4];
8867 /* ./../lib/standard//collection//array.nit:245 */
8868 REGB2 = TAG_Int(0);
8869 /* ./../lib/standard//kernel.nit:213 */
8870 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8871 /* ./../lib/standard//collection//array.nit:245 */
8872 if (UNTAG_Bool(REGB2)) {
8873 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8874 if (UNTAG_Bool(REGB2)) {
8875 } else {
8876 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8877 }
8878 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8879 /* ./../lib/standard//kernel.nit:212 */
8880 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8881 } else {
8882 /* ./../lib/standard//collection//array.nit:245 */
8883 REGB0 = TAG_Bool(false);
8884 REGB2 = REGB0;
8885 }
8886 if (UNTAG_Bool(REGB2)) {
8887 } else {
8888 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8889 }
8890 /* ./../lib/standard//collection//array.nit:246 */
8891 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8892 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8893 if (UNTAG_Bool(REGB2)) {
8894 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8895 }
8896 /* ./../lib/standard//collection//array.nit:654 */
8897 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8898 /* ./../lib/standard//collection//array.nit:246 */
8899 goto label201;
8900 label201: while(0);
8901 /* ./compiling//compiling_icode.nit:777 */
8902 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8903 if (!once_value_202) {
8904 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
8905 REGB1 = TAG_Int(15);
8906 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8907 once_value_202 = fra.me.REG[7];
8908 register_static_object(&once_value_202);
8909 } else fra.me.REG[7] = once_value_202;
8910 fra.me.REG[7] = fra.me.REG[7];
8911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8912 REGB1 = TAG_Int(1);
8913 /* ./../lib/standard//collection//array.nit:243 */
8914 fra.me.REG[7] = fra.me.REG[4];
8915 /* ./../lib/standard//collection//array.nit:245 */
8916 REGB2 = TAG_Int(0);
8917 /* ./../lib/standard//kernel.nit:213 */
8918 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8919 /* ./../lib/standard//collection//array.nit:245 */
8920 if (UNTAG_Bool(REGB2)) {
8921 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8922 if (UNTAG_Bool(REGB2)) {
8923 } else {
8924 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8925 }
8926 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8927 /* ./../lib/standard//kernel.nit:212 */
8928 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8929 } else {
8930 /* ./../lib/standard//collection//array.nit:245 */
8931 REGB0 = TAG_Bool(false);
8932 REGB2 = REGB0;
8933 }
8934 if (UNTAG_Bool(REGB2)) {
8935 } else {
8936 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8937 }
8938 /* ./../lib/standard//collection//array.nit:246 */
8939 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8940 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8941 if (UNTAG_Bool(REGB2)) {
8942 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8943 }
8944 /* ./../lib/standard//collection//array.nit:654 */
8945 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8946 /* ./../lib/standard//collection//array.nit:246 */
8947 goto label203;
8948 label203: while(0);
8949 /* ./compiling//compiling_icode.nit:777 */
8950 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8951 if (!once_value_204) {
8952 fra.me.REG[7] = BOX_NativeString("))");
8953 REGB1 = TAG_Int(2);
8954 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8955 once_value_204 = fra.me.REG[7];
8956 register_static_object(&once_value_204);
8957 } else fra.me.REG[7] = once_value_204;
8958 fra.me.REG[7] = fra.me.REG[7];
8959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8960 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8961 fra.me.REG[5] = fra.me.REG[6];
8962 }
8963 }
8964 }
8965 }
8966 }
8967 }
8968 }
8969 }
8970 }
8971 }
8972 }
8973 }
8974 } else {
8975 /* ./compiling//compiling_icode.nit:779 */
8976 if (!once_value_205) {
8977 if (!once_value_206) {
8978 fra.me.REG[6] = BOX_NativeString("Char");
8979 REGB1 = TAG_Int(4);
8980 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8981 once_value_206 = fra.me.REG[6];
8982 register_static_object(&once_value_206);
8983 } else fra.me.REG[6] = once_value_206;
8984 fra.me.REG[6] = fra.me.REG[6];
8985 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8986 once_value_205 = fra.me.REG[6];
8987 register_static_object(&once_value_205);
8988 } else fra.me.REG[6] = once_value_205;
8989 fra.me.REG[6] = fra.me.REG[6];
8990 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8991 if (UNTAG_Bool(REGB1)) {
8992 } else {
8993 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8994 REGB1 = REGB2;
8995 }
8996 if (UNTAG_Bool(REGB1)) {
8997 /* ./compiling//compiling_icode.nit:780 */
8998 if (!once_value_207) {
8999 if (!once_value_208) {
9000 fra.me.REG[6] = BOX_NativeString("object_id");
9001 REGB1 = TAG_Int(9);
9002 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9003 once_value_208 = fra.me.REG[6];
9004 register_static_object(&once_value_208);
9005 } else fra.me.REG[6] = once_value_208;
9006 fra.me.REG[6] = fra.me.REG[6];
9007 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9008 once_value_207 = fra.me.REG[6];
9009 register_static_object(&once_value_207);
9010 } else fra.me.REG[6] = once_value_207;
9011 fra.me.REG[6] = fra.me.REG[6];
9012 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9013 if (UNTAG_Bool(REGB1)) {
9014 } else {
9015 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9016 REGB1 = REGB2;
9017 }
9018 if (UNTAG_Bool(REGB1)) {
9019 /* ./compiling//compiling_icode.nit:781 */
9020 REGB1 = TAG_Int(3);
9021 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9022 if (!once_value_209) {
9023 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9024 REGB1 = TAG_Int(19);
9025 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9026 once_value_209 = fra.me.REG[7];
9027 register_static_object(&once_value_209);
9028 } else fra.me.REG[7] = once_value_209;
9029 fra.me.REG[7] = fra.me.REG[7];
9030 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9031 REGB1 = TAG_Int(0);
9032 /* ./../lib/standard//collection//array.nit:243 */
9033 fra.me.REG[7] = fra.me.REG[4];
9034 /* ./../lib/standard//collection//array.nit:245 */
9035 REGB2 = TAG_Int(0);
9036 /* ./../lib/standard//kernel.nit:213 */
9037 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9038 /* ./../lib/standard//collection//array.nit:245 */
9039 if (UNTAG_Bool(REGB2)) {
9040 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9041 if (UNTAG_Bool(REGB2)) {
9042 } else {
9043 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9044 }
9045 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9046 /* ./../lib/standard//kernel.nit:212 */
9047 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9048 } else {
9049 /* ./../lib/standard//collection//array.nit:245 */
9050 REGB0 = TAG_Bool(false);
9051 REGB2 = REGB0;
9052 }
9053 if (UNTAG_Bool(REGB2)) {
9054 } else {
9055 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9056 }
9057 /* ./../lib/standard//collection//array.nit:246 */
9058 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9059 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9060 if (UNTAG_Bool(REGB2)) {
9061 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9062 }
9063 /* ./../lib/standard//collection//array.nit:654 */
9064 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9065 /* ./../lib/standard//collection//array.nit:246 */
9066 goto label210;
9067 label210: while(0);
9068 /* ./compiling//compiling_icode.nit:781 */
9069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9070 if (!once_value_211) {
9071 fra.me.REG[7] = BOX_NativeString("))");
9072 REGB1 = TAG_Int(2);
9073 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9074 once_value_211 = fra.me.REG[7];
9075 register_static_object(&once_value_211);
9076 } else fra.me.REG[7] = once_value_211;
9077 fra.me.REG[7] = fra.me.REG[7];
9078 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9079 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9080 fra.me.REG[5] = fra.me.REG[6];
9081 } else {
9082 /* ./compiling//compiling_icode.nit:782 */
9083 if (!once_value_212) {
9084 if (!once_value_213) {
9085 fra.me.REG[6] = BOX_NativeString("unary -");
9086 REGB1 = TAG_Int(7);
9087 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9088 once_value_213 = fra.me.REG[6];
9089 register_static_object(&once_value_213);
9090 } else fra.me.REG[6] = once_value_213;
9091 fra.me.REG[6] = fra.me.REG[6];
9092 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9093 once_value_212 = fra.me.REG[6];
9094 register_static_object(&once_value_212);
9095 } else fra.me.REG[6] = once_value_212;
9096 fra.me.REG[6] = fra.me.REG[6];
9097 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9098 if (UNTAG_Bool(REGB1)) {
9099 } else {
9100 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9101 REGB1 = REGB2;
9102 }
9103 if (UNTAG_Bool(REGB1)) {
9104 /* ./compiling//compiling_icode.nit:783 */
9105 REGB1 = TAG_Int(3);
9106 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9107 if (!once_value_214) {
9108 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9109 REGB1 = TAG_Int(21);
9110 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9111 once_value_214 = fra.me.REG[7];
9112 register_static_object(&once_value_214);
9113 } else fra.me.REG[7] = once_value_214;
9114 fra.me.REG[7] = fra.me.REG[7];
9115 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9116 REGB1 = TAG_Int(0);
9117 /* ./../lib/standard//collection//array.nit:243 */
9118 fra.me.REG[7] = fra.me.REG[4];
9119 /* ./../lib/standard//collection//array.nit:245 */
9120 REGB2 = TAG_Int(0);
9121 /* ./../lib/standard//kernel.nit:213 */
9122 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9123 /* ./../lib/standard//collection//array.nit:245 */
9124 if (UNTAG_Bool(REGB2)) {
9125 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9126 if (UNTAG_Bool(REGB2)) {
9127 } else {
9128 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9129 }
9130 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9131 /* ./../lib/standard//kernel.nit:212 */
9132 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9133 } else {
9134 /* ./../lib/standard//collection//array.nit:245 */
9135 REGB0 = TAG_Bool(false);
9136 REGB2 = REGB0;
9137 }
9138 if (UNTAG_Bool(REGB2)) {
9139 } else {
9140 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9141 }
9142 /* ./../lib/standard//collection//array.nit:246 */
9143 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9144 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9145 if (UNTAG_Bool(REGB2)) {
9146 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9147 }
9148 /* ./../lib/standard//collection//array.nit:654 */
9149 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9150 /* ./../lib/standard//collection//array.nit:246 */
9151 goto label215;
9152 label215: while(0);
9153 /* ./compiling//compiling_icode.nit:783 */
9154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9155 if (!once_value_216) {
9156 fra.me.REG[7] = BOX_NativeString("))");
9157 REGB1 = TAG_Int(2);
9158 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9159 once_value_216 = fra.me.REG[7];
9160 register_static_object(&once_value_216);
9161 } else fra.me.REG[7] = once_value_216;
9162 fra.me.REG[7] = fra.me.REG[7];
9163 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9164 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9165 fra.me.REG[5] = fra.me.REG[6];
9166 } else {
9167 /* ./compiling//compiling_icode.nit:784 */
9168 if (!once_value_217) {
9169 if (!once_value_218) {
9170 fra.me.REG[6] = BOX_NativeString("output");
9171 REGB1 = TAG_Int(6);
9172 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9173 once_value_218 = fra.me.REG[6];
9174 register_static_object(&once_value_218);
9175 } else fra.me.REG[6] = once_value_218;
9176 fra.me.REG[6] = fra.me.REG[6];
9177 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9178 once_value_217 = fra.me.REG[6];
9179 register_static_object(&once_value_217);
9180 } else fra.me.REG[6] = once_value_217;
9181 fra.me.REG[6] = fra.me.REG[6];
9182 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9183 if (UNTAG_Bool(REGB1)) {
9184 } else {
9185 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9186 REGB1 = REGB2;
9187 }
9188 if (UNTAG_Bool(REGB1)) {
9189 /* ./compiling//compiling_icode.nit:785 */
9190 REGB1 = TAG_Int(3);
9191 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9192 if (!once_value_219) {
9193 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
9194 REGB1 = TAG_Int(39);
9195 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9196 once_value_219 = fra.me.REG[7];
9197 register_static_object(&once_value_219);
9198 } else fra.me.REG[7] = once_value_219;
9199 fra.me.REG[7] = fra.me.REG[7];
9200 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9201 REGB1 = TAG_Int(0);
9202 /* ./../lib/standard//collection//array.nit:243 */
9203 fra.me.REG[7] = fra.me.REG[4];
9204 /* ./../lib/standard//collection//array.nit:245 */
9205 REGB2 = TAG_Int(0);
9206 /* ./../lib/standard//kernel.nit:213 */
9207 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9208 /* ./../lib/standard//collection//array.nit:245 */
9209 if (UNTAG_Bool(REGB2)) {
9210 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9211 if (UNTAG_Bool(REGB2)) {
9212 } else {
9213 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9214 }
9215 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9216 /* ./../lib/standard//kernel.nit:212 */
9217 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9218 } else {
9219 /* ./../lib/standard//collection//array.nit:245 */
9220 REGB0 = TAG_Bool(false);
9221 REGB2 = REGB0;
9222 }
9223 if (UNTAG_Bool(REGB2)) {
9224 } else {
9225 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9226 }
9227 /* ./../lib/standard//collection//array.nit:246 */
9228 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9229 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9230 if (UNTAG_Bool(REGB2)) {
9231 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9232 }
9233 /* ./../lib/standard//collection//array.nit:654 */
9234 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9235 /* ./../lib/standard//collection//array.nit:246 */
9236 goto label220;
9237 label220: while(0);
9238 /* ./compiling//compiling_icode.nit:785 */
9239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9240 if (!once_value_221) {
9241 fra.me.REG[7] = BOX_NativeString("));");
9242 REGB1 = TAG_Int(3);
9243 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9244 once_value_221 = fra.me.REG[7];
9245 register_static_object(&once_value_221);
9246 } else fra.me.REG[7] = once_value_221;
9247 fra.me.REG[7] = fra.me.REG[7];
9248 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9249 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9250 fra.me.REG[5] = fra.me.REG[6];
9251 } else {
9252 /* ./compiling//compiling_icode.nit:786 */
9253 if (!once_value_222) {
9254 if (!once_value_223) {
9255 fra.me.REG[6] = BOX_NativeString("ascii");
9256 REGB1 = TAG_Int(5);
9257 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9258 once_value_223 = fra.me.REG[6];
9259 register_static_object(&once_value_223);
9260 } else fra.me.REG[6] = once_value_223;
9261 fra.me.REG[6] = fra.me.REG[6];
9262 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9263 once_value_222 = fra.me.REG[6];
9264 register_static_object(&once_value_222);
9265 } else fra.me.REG[6] = once_value_222;
9266 fra.me.REG[6] = fra.me.REG[6];
9267 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9268 if (UNTAG_Bool(REGB1)) {
9269 } else {
9270 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9271 REGB1 = REGB2;
9272 }
9273 if (UNTAG_Bool(REGB1)) {
9274 /* ./compiling//compiling_icode.nit:787 */
9275 REGB1 = TAG_Int(3);
9276 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9277 if (!once_value_224) {
9278 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
9279 REGB1 = TAG_Int(34);
9280 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9281 once_value_224 = fra.me.REG[7];
9282 register_static_object(&once_value_224);
9283 } else fra.me.REG[7] = once_value_224;
9284 fra.me.REG[7] = fra.me.REG[7];
9285 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9286 REGB1 = TAG_Int(0);
9287 /* ./../lib/standard//collection//array.nit:243 */
9288 fra.me.REG[7] = fra.me.REG[4];
9289 /* ./../lib/standard//collection//array.nit:245 */
9290 REGB2 = TAG_Int(0);
9291 /* ./../lib/standard//kernel.nit:213 */
9292 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9293 /* ./../lib/standard//collection//array.nit:245 */
9294 if (UNTAG_Bool(REGB2)) {
9295 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9296 if (UNTAG_Bool(REGB2)) {
9297 } else {
9298 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9299 }
9300 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9301 /* ./../lib/standard//kernel.nit:212 */
9302 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9303 } else {
9304 /* ./../lib/standard//collection//array.nit:245 */
9305 REGB0 = TAG_Bool(false);
9306 REGB2 = REGB0;
9307 }
9308 if (UNTAG_Bool(REGB2)) {
9309 } else {
9310 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9311 }
9312 /* ./../lib/standard//collection//array.nit:246 */
9313 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9314 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9315 if (UNTAG_Bool(REGB2)) {
9316 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9317 }
9318 /* ./../lib/standard//collection//array.nit:654 */
9319 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9320 /* ./../lib/standard//collection//array.nit:246 */
9321 goto label225;
9322 label225: while(0);
9323 /* ./compiling//compiling_icode.nit:787 */
9324 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9325 if (!once_value_226) {
9326 fra.me.REG[7] = BOX_NativeString("))");
9327 REGB1 = TAG_Int(2);
9328 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9329 once_value_226 = fra.me.REG[7];
9330 register_static_object(&once_value_226);
9331 } else fra.me.REG[7] = once_value_226;
9332 fra.me.REG[7] = fra.me.REG[7];
9333 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9334 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9335 fra.me.REG[5] = fra.me.REG[6];
9336 } else {
9337 /* ./compiling//compiling_icode.nit:788 */
9338 if (!once_value_227) {
9339 if (!once_value_228) {
9340 fra.me.REG[6] = BOX_NativeString("succ");
9341 REGB1 = TAG_Int(4);
9342 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9343 once_value_228 = fra.me.REG[6];
9344 register_static_object(&once_value_228);
9345 } else fra.me.REG[6] = once_value_228;
9346 fra.me.REG[6] = fra.me.REG[6];
9347 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9348 once_value_227 = fra.me.REG[6];
9349 register_static_object(&once_value_227);
9350 } else fra.me.REG[6] = once_value_227;
9351 fra.me.REG[6] = fra.me.REG[6];
9352 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9353 if (UNTAG_Bool(REGB1)) {
9354 } else {
9355 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9356 REGB1 = REGB2;
9357 }
9358 if (UNTAG_Bool(REGB1)) {
9359 /* ./compiling//compiling_icode.nit:789 */
9360 REGB1 = TAG_Int(3);
9361 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9362 if (!once_value_229) {
9363 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9364 REGB1 = TAG_Int(20);
9365 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9366 once_value_229 = fra.me.REG[7];
9367 register_static_object(&once_value_229);
9368 } else fra.me.REG[7] = once_value_229;
9369 fra.me.REG[7] = fra.me.REG[7];
9370 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9371 REGB1 = TAG_Int(0);
9372 /* ./../lib/standard//collection//array.nit:243 */
9373 fra.me.REG[7] = fra.me.REG[4];
9374 /* ./../lib/standard//collection//array.nit:245 */
9375 REGB2 = TAG_Int(0);
9376 /* ./../lib/standard//kernel.nit:213 */
9377 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9378 /* ./../lib/standard//collection//array.nit:245 */
9379 if (UNTAG_Bool(REGB2)) {
9380 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9381 if (UNTAG_Bool(REGB2)) {
9382 } else {
9383 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9384 }
9385 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9386 /* ./../lib/standard//kernel.nit:212 */
9387 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9388 } else {
9389 /* ./../lib/standard//collection//array.nit:245 */
9390 REGB0 = TAG_Bool(false);
9391 REGB2 = REGB0;
9392 }
9393 if (UNTAG_Bool(REGB2)) {
9394 } else {
9395 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9396 }
9397 /* ./../lib/standard//collection//array.nit:246 */
9398 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9399 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9400 if (UNTAG_Bool(REGB2)) {
9401 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9402 }
9403 /* ./../lib/standard//collection//array.nit:654 */
9404 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9405 /* ./../lib/standard//collection//array.nit:246 */
9406 goto label230;
9407 label230: while(0);
9408 /* ./compiling//compiling_icode.nit:789 */
9409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9410 if (!once_value_231) {
9411 fra.me.REG[7] = BOX_NativeString(")+1)");
9412 REGB1 = TAG_Int(4);
9413 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9414 once_value_231 = fra.me.REG[7];
9415 register_static_object(&once_value_231);
9416 } else fra.me.REG[7] = once_value_231;
9417 fra.me.REG[7] = fra.me.REG[7];
9418 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9419 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9420 fra.me.REG[5] = fra.me.REG[6];
9421 } else {
9422 /* ./compiling//compiling_icode.nit:790 */
9423 if (!once_value_232) {
9424 if (!once_value_233) {
9425 fra.me.REG[6] = BOX_NativeString("prec");
9426 REGB1 = TAG_Int(4);
9427 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9428 once_value_233 = fra.me.REG[6];
9429 register_static_object(&once_value_233);
9430 } else fra.me.REG[6] = once_value_233;
9431 fra.me.REG[6] = fra.me.REG[6];
9432 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9433 once_value_232 = fra.me.REG[6];
9434 register_static_object(&once_value_232);
9435 } else fra.me.REG[6] = once_value_232;
9436 fra.me.REG[6] = fra.me.REG[6];
9437 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9438 if (UNTAG_Bool(REGB1)) {
9439 } else {
9440 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9441 REGB1 = REGB2;
9442 }
9443 if (UNTAG_Bool(REGB1)) {
9444 /* ./compiling//compiling_icode.nit:791 */
9445 REGB1 = TAG_Int(3);
9446 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9447 if (!once_value_234) {
9448 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9449 REGB1 = TAG_Int(20);
9450 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9451 once_value_234 = fra.me.REG[7];
9452 register_static_object(&once_value_234);
9453 } else fra.me.REG[7] = once_value_234;
9454 fra.me.REG[7] = fra.me.REG[7];
9455 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9456 REGB1 = TAG_Int(0);
9457 /* ./../lib/standard//collection//array.nit:243 */
9458 fra.me.REG[7] = fra.me.REG[4];
9459 /* ./../lib/standard//collection//array.nit:245 */
9460 REGB2 = TAG_Int(0);
9461 /* ./../lib/standard//kernel.nit:213 */
9462 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9463 /* ./../lib/standard//collection//array.nit:245 */
9464 if (UNTAG_Bool(REGB2)) {
9465 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9466 if (UNTAG_Bool(REGB2)) {
9467 } else {
9468 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9469 }
9470 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9471 /* ./../lib/standard//kernel.nit:212 */
9472 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9473 } else {
9474 /* ./../lib/standard//collection//array.nit:245 */
9475 REGB0 = TAG_Bool(false);
9476 REGB2 = REGB0;
9477 }
9478 if (UNTAG_Bool(REGB2)) {
9479 } else {
9480 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9481 }
9482 /* ./../lib/standard//collection//array.nit:246 */
9483 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9484 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9485 if (UNTAG_Bool(REGB2)) {
9486 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9487 }
9488 /* ./../lib/standard//collection//array.nit:654 */
9489 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9490 /* ./../lib/standard//collection//array.nit:246 */
9491 goto label235;
9492 label235: while(0);
9493 /* ./compiling//compiling_icode.nit:791 */
9494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9495 if (!once_value_236) {
9496 fra.me.REG[7] = BOX_NativeString(")-1)");
9497 REGB1 = TAG_Int(4);
9498 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9499 once_value_236 = fra.me.REG[7];
9500 register_static_object(&once_value_236);
9501 } else fra.me.REG[7] = once_value_236;
9502 fra.me.REG[7] = fra.me.REG[7];
9503 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9504 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9505 fra.me.REG[5] = fra.me.REG[6];
9506 } else {
9507 /* ./compiling//compiling_icode.nit:792 */
9508 if (!once_value_237) {
9509 if (!once_value_238) {
9510 fra.me.REG[6] = BOX_NativeString("to_i");
9511 REGB1 = TAG_Int(4);
9512 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9513 once_value_238 = fra.me.REG[6];
9514 register_static_object(&once_value_238);
9515 } else fra.me.REG[6] = once_value_238;
9516 fra.me.REG[6] = fra.me.REG[6];
9517 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9518 once_value_237 = fra.me.REG[6];
9519 register_static_object(&once_value_237);
9520 } else fra.me.REG[6] = once_value_237;
9521 fra.me.REG[6] = fra.me.REG[6];
9522 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9523 if (UNTAG_Bool(REGB1)) {
9524 } else {
9525 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9526 REGB1 = REGB2;
9527 }
9528 if (UNTAG_Bool(REGB1)) {
9529 /* ./compiling//compiling_icode.nit:793 */
9530 REGB1 = TAG_Int(3);
9531 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9532 if (!once_value_239) {
9533 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9534 REGB1 = TAG_Int(19);
9535 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9536 once_value_239 = fra.me.REG[7];
9537 register_static_object(&once_value_239);
9538 } else fra.me.REG[7] = once_value_239;
9539 fra.me.REG[7] = fra.me.REG[7];
9540 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9541 REGB1 = TAG_Int(0);
9542 /* ./../lib/standard//collection//array.nit:243 */
9543 fra.me.REG[7] = fra.me.REG[4];
9544 /* ./../lib/standard//collection//array.nit:245 */
9545 REGB2 = TAG_Int(0);
9546 /* ./../lib/standard//kernel.nit:213 */
9547 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9548 /* ./../lib/standard//collection//array.nit:245 */
9549 if (UNTAG_Bool(REGB2)) {
9550 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9551 if (UNTAG_Bool(REGB2)) {
9552 } else {
9553 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9554 }
9555 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9556 /* ./../lib/standard//kernel.nit:212 */
9557 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9558 } else {
9559 /* ./../lib/standard//collection//array.nit:245 */
9560 REGB0 = TAG_Bool(false);
9561 REGB2 = REGB0;
9562 }
9563 if (UNTAG_Bool(REGB2)) {
9564 } else {
9565 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9566 }
9567 /* ./../lib/standard//collection//array.nit:246 */
9568 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9569 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9570 if (UNTAG_Bool(REGB2)) {
9571 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9572 }
9573 /* ./../lib/standard//collection//array.nit:654 */
9574 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9575 /* ./../lib/standard//collection//array.nit:246 */
9576 goto label240;
9577 label240: while(0);
9578 /* ./compiling//compiling_icode.nit:793 */
9579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9580 if (!once_value_241) {
9581 fra.me.REG[7] = BOX_NativeString(")-'0')");
9582 REGB1 = TAG_Int(6);
9583 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9584 once_value_241 = fra.me.REG[7];
9585 register_static_object(&once_value_241);
9586 } else fra.me.REG[7] = once_value_241;
9587 fra.me.REG[7] = fra.me.REG[7];
9588 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9589 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9590 fra.me.REG[5] = fra.me.REG[6];
9591 } else {
9592 /* ./compiling//compiling_icode.nit:794 */
9593 if (!once_value_242) {
9594 if (!once_value_243) {
9595 fra.me.REG[6] = BOX_NativeString("+");
9596 REGB1 = TAG_Int(1);
9597 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9598 once_value_243 = fra.me.REG[6];
9599 register_static_object(&once_value_243);
9600 } else fra.me.REG[6] = once_value_243;
9601 fra.me.REG[6] = fra.me.REG[6];
9602 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9603 once_value_242 = fra.me.REG[6];
9604 register_static_object(&once_value_242);
9605 } else fra.me.REG[6] = once_value_242;
9606 fra.me.REG[6] = fra.me.REG[6];
9607 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9608 if (UNTAG_Bool(REGB1)) {
9609 } else {
9610 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9611 REGB1 = REGB2;
9612 }
9613 if (UNTAG_Bool(REGB1)) {
9614 /* ./compiling//compiling_icode.nit:795 */
9615 REGB1 = TAG_Int(5);
9616 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9617 if (!once_value_244) {
9618 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9619 REGB1 = TAG_Int(20);
9620 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9621 once_value_244 = fra.me.REG[7];
9622 register_static_object(&once_value_244);
9623 } else fra.me.REG[7] = once_value_244;
9624 fra.me.REG[7] = fra.me.REG[7];
9625 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9626 REGB1 = TAG_Int(0);
9627 /* ./../lib/standard//collection//array.nit:243 */
9628 fra.me.REG[7] = fra.me.REG[4];
9629 /* ./../lib/standard//collection//array.nit:245 */
9630 REGB2 = TAG_Int(0);
9631 /* ./../lib/standard//kernel.nit:213 */
9632 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9633 /* ./../lib/standard//collection//array.nit:245 */
9634 if (UNTAG_Bool(REGB2)) {
9635 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9636 if (UNTAG_Bool(REGB2)) {
9637 } else {
9638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9639 }
9640 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9641 /* ./../lib/standard//kernel.nit:212 */
9642 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9643 } else {
9644 /* ./../lib/standard//collection//array.nit:245 */
9645 REGB0 = TAG_Bool(false);
9646 REGB2 = REGB0;
9647 }
9648 if (UNTAG_Bool(REGB2)) {
9649 } else {
9650 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9651 }
9652 /* ./../lib/standard//collection//array.nit:246 */
9653 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9654 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9655 if (UNTAG_Bool(REGB2)) {
9656 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9657 }
9658 /* ./../lib/standard//collection//array.nit:654 */
9659 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9660 /* ./../lib/standard//collection//array.nit:246 */
9661 goto label245;
9662 label245: while(0);
9663 /* ./compiling//compiling_icode.nit:795 */
9664 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9665 if (!once_value_246) {
9666 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
9667 REGB1 = TAG_Int(13);
9668 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9669 once_value_246 = fra.me.REG[7];
9670 register_static_object(&once_value_246);
9671 } else fra.me.REG[7] = once_value_246;
9672 fra.me.REG[7] = fra.me.REG[7];
9673 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9674 REGB1 = TAG_Int(1);
9675 /* ./../lib/standard//collection//array.nit:243 */
9676 fra.me.REG[7] = fra.me.REG[4];
9677 /* ./../lib/standard//collection//array.nit:245 */
9678 REGB2 = TAG_Int(0);
9679 /* ./../lib/standard//kernel.nit:213 */
9680 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9681 /* ./../lib/standard//collection//array.nit:245 */
9682 if (UNTAG_Bool(REGB2)) {
9683 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9684 if (UNTAG_Bool(REGB2)) {
9685 } else {
9686 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9687 }
9688 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9689 /* ./../lib/standard//kernel.nit:212 */
9690 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9691 } else {
9692 /* ./../lib/standard//collection//array.nit:245 */
9693 REGB0 = TAG_Bool(false);
9694 REGB2 = REGB0;
9695 }
9696 if (UNTAG_Bool(REGB2)) {
9697 } else {
9698 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9699 }
9700 /* ./../lib/standard//collection//array.nit:246 */
9701 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9702 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9703 if (UNTAG_Bool(REGB2)) {
9704 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9705 }
9706 /* ./../lib/standard//collection//array.nit:654 */
9707 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9708 /* ./../lib/standard//collection//array.nit:246 */
9709 goto label247;
9710 label247: while(0);
9711 /* ./compiling//compiling_icode.nit:795 */
9712 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9713 if (!once_value_248) {
9714 fra.me.REG[7] = BOX_NativeString("))");
9715 REGB1 = TAG_Int(2);
9716 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9717 once_value_248 = fra.me.REG[7];
9718 register_static_object(&once_value_248);
9719 } else fra.me.REG[7] = once_value_248;
9720 fra.me.REG[7] = fra.me.REG[7];
9721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9722 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9723 fra.me.REG[5] = fra.me.REG[6];
9724 } else {
9725 /* ./compiling//compiling_icode.nit:796 */
9726 if (!once_value_249) {
9727 if (!once_value_250) {
9728 fra.me.REG[6] = BOX_NativeString("-");
9729 REGB1 = TAG_Int(1);
9730 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9731 once_value_250 = fra.me.REG[6];
9732 register_static_object(&once_value_250);
9733 } else fra.me.REG[6] = once_value_250;
9734 fra.me.REG[6] = fra.me.REG[6];
9735 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9736 once_value_249 = fra.me.REG[6];
9737 register_static_object(&once_value_249);
9738 } else fra.me.REG[6] = once_value_249;
9739 fra.me.REG[6] = fra.me.REG[6];
9740 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9741 if (UNTAG_Bool(REGB1)) {
9742 } else {
9743 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9744 REGB1 = REGB2;
9745 }
9746 if (UNTAG_Bool(REGB1)) {
9747 /* ./compiling//compiling_icode.nit:797 */
9748 REGB1 = TAG_Int(5);
9749 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9750 if (!once_value_251) {
9751 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9752 REGB1 = TAG_Int(20);
9753 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9754 once_value_251 = fra.me.REG[7];
9755 register_static_object(&once_value_251);
9756 } else fra.me.REG[7] = once_value_251;
9757 fra.me.REG[7] = fra.me.REG[7];
9758 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9759 REGB1 = TAG_Int(0);
9760 /* ./../lib/standard//collection//array.nit:243 */
9761 fra.me.REG[7] = fra.me.REG[4];
9762 /* ./../lib/standard//collection//array.nit:245 */
9763 REGB2 = TAG_Int(0);
9764 /* ./../lib/standard//kernel.nit:213 */
9765 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9766 /* ./../lib/standard//collection//array.nit:245 */
9767 if (UNTAG_Bool(REGB2)) {
9768 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9769 if (UNTAG_Bool(REGB2)) {
9770 } else {
9771 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9772 }
9773 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9774 /* ./../lib/standard//kernel.nit:212 */
9775 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9776 } else {
9777 /* ./../lib/standard//collection//array.nit:245 */
9778 REGB0 = TAG_Bool(false);
9779 REGB2 = REGB0;
9780 }
9781 if (UNTAG_Bool(REGB2)) {
9782 } else {
9783 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9784 }
9785 /* ./../lib/standard//collection//array.nit:246 */
9786 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9787 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9788 if (UNTAG_Bool(REGB2)) {
9789 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9790 }
9791 /* ./../lib/standard//collection//array.nit:654 */
9792 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9793 /* ./../lib/standard//collection//array.nit:246 */
9794 goto label252;
9795 label252: while(0);
9796 /* ./compiling//compiling_icode.nit:797 */
9797 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9798 if (!once_value_253) {
9799 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
9800 REGB1 = TAG_Int(13);
9801 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9802 once_value_253 = fra.me.REG[7];
9803 register_static_object(&once_value_253);
9804 } else fra.me.REG[7] = once_value_253;
9805 fra.me.REG[7] = fra.me.REG[7];
9806 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9807 REGB1 = TAG_Int(1);
9808 /* ./../lib/standard//collection//array.nit:243 */
9809 fra.me.REG[7] = fra.me.REG[4];
9810 /* ./../lib/standard//collection//array.nit:245 */
9811 REGB2 = TAG_Int(0);
9812 /* ./../lib/standard//kernel.nit:213 */
9813 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9814 /* ./../lib/standard//collection//array.nit:245 */
9815 if (UNTAG_Bool(REGB2)) {
9816 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9817 if (UNTAG_Bool(REGB2)) {
9818 } else {
9819 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9820 }
9821 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9822 /* ./../lib/standard//kernel.nit:212 */
9823 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9824 } else {
9825 /* ./../lib/standard//collection//array.nit:245 */
9826 REGB0 = TAG_Bool(false);
9827 REGB2 = REGB0;
9828 }
9829 if (UNTAG_Bool(REGB2)) {
9830 } else {
9831 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9832 }
9833 /* ./../lib/standard//collection//array.nit:246 */
9834 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9835 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9836 if (UNTAG_Bool(REGB2)) {
9837 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9838 }
9839 /* ./../lib/standard//collection//array.nit:654 */
9840 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9841 /* ./../lib/standard//collection//array.nit:246 */
9842 goto label254;
9843 label254: while(0);
9844 /* ./compiling//compiling_icode.nit:797 */
9845 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9846 if (!once_value_255) {
9847 fra.me.REG[7] = BOX_NativeString("))");
9848 REGB1 = TAG_Int(2);
9849 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9850 once_value_255 = fra.me.REG[7];
9851 register_static_object(&once_value_255);
9852 } else fra.me.REG[7] = once_value_255;
9853 fra.me.REG[7] = fra.me.REG[7];
9854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9855 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9856 fra.me.REG[5] = fra.me.REG[6];
9857 } else {
9858 /* ./compiling//compiling_icode.nit:798 */
9859 if (!once_value_256) {
9860 if (!once_value_257) {
9861 fra.me.REG[6] = BOX_NativeString("*");
9862 REGB1 = TAG_Int(1);
9863 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9864 once_value_257 = fra.me.REG[6];
9865 register_static_object(&once_value_257);
9866 } else fra.me.REG[6] = once_value_257;
9867 fra.me.REG[6] = fra.me.REG[6];
9868 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9869 once_value_256 = fra.me.REG[6];
9870 register_static_object(&once_value_256);
9871 } else fra.me.REG[6] = once_value_256;
9872 fra.me.REG[6] = fra.me.REG[6];
9873 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9874 if (UNTAG_Bool(REGB1)) {
9875 } else {
9876 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9877 REGB1 = REGB2;
9878 }
9879 if (UNTAG_Bool(REGB1)) {
9880 /* ./compiling//compiling_icode.nit:799 */
9881 REGB1 = TAG_Int(5);
9882 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9883 if (!once_value_258) {
9884 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9885 REGB1 = TAG_Int(20);
9886 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9887 once_value_258 = fra.me.REG[7];
9888 register_static_object(&once_value_258);
9889 } else fra.me.REG[7] = once_value_258;
9890 fra.me.REG[7] = fra.me.REG[7];
9891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9892 REGB1 = TAG_Int(0);
9893 /* ./../lib/standard//collection//array.nit:243 */
9894 fra.me.REG[7] = fra.me.REG[4];
9895 /* ./../lib/standard//collection//array.nit:245 */
9896 REGB2 = TAG_Int(0);
9897 /* ./../lib/standard//kernel.nit:213 */
9898 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9899 /* ./../lib/standard//collection//array.nit:245 */
9900 if (UNTAG_Bool(REGB2)) {
9901 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9902 if (UNTAG_Bool(REGB2)) {
9903 } else {
9904 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9905 }
9906 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9907 /* ./../lib/standard//kernel.nit:212 */
9908 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9909 } else {
9910 /* ./../lib/standard//collection//array.nit:245 */
9911 REGB0 = TAG_Bool(false);
9912 REGB2 = REGB0;
9913 }
9914 if (UNTAG_Bool(REGB2)) {
9915 } else {
9916 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9917 }
9918 /* ./../lib/standard//collection//array.nit:246 */
9919 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9920 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9921 if (UNTAG_Bool(REGB2)) {
9922 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9923 }
9924 /* ./../lib/standard//collection//array.nit:654 */
9925 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9926 /* ./../lib/standard//collection//array.nit:246 */
9927 goto label259;
9928 label259: while(0);
9929 /* ./compiling//compiling_icode.nit:799 */
9930 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9931 if (!once_value_260) {
9932 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
9933 REGB1 = TAG_Int(13);
9934 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9935 once_value_260 = fra.me.REG[7];
9936 register_static_object(&once_value_260);
9937 } else fra.me.REG[7] = once_value_260;
9938 fra.me.REG[7] = fra.me.REG[7];
9939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9940 REGB1 = TAG_Int(1);
9941 /* ./../lib/standard//collection//array.nit:243 */
9942 fra.me.REG[7] = fra.me.REG[4];
9943 /* ./../lib/standard//collection//array.nit:245 */
9944 REGB2 = TAG_Int(0);
9945 /* ./../lib/standard//kernel.nit:213 */
9946 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9947 /* ./../lib/standard//collection//array.nit:245 */
9948 if (UNTAG_Bool(REGB2)) {
9949 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9950 if (UNTAG_Bool(REGB2)) {
9951 } else {
9952 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9953 }
9954 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9955 /* ./../lib/standard//kernel.nit:212 */
9956 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9957 } else {
9958 /* ./../lib/standard//collection//array.nit:245 */
9959 REGB0 = TAG_Bool(false);
9960 REGB2 = REGB0;
9961 }
9962 if (UNTAG_Bool(REGB2)) {
9963 } else {
9964 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9965 }
9966 /* ./../lib/standard//collection//array.nit:246 */
9967 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9968 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9969 if (UNTAG_Bool(REGB2)) {
9970 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9971 }
9972 /* ./../lib/standard//collection//array.nit:654 */
9973 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9974 /* ./../lib/standard//collection//array.nit:246 */
9975 goto label261;
9976 label261: while(0);
9977 /* ./compiling//compiling_icode.nit:799 */
9978 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9979 if (!once_value_262) {
9980 fra.me.REG[7] = BOX_NativeString("))");
9981 REGB1 = TAG_Int(2);
9982 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9983 once_value_262 = fra.me.REG[7];
9984 register_static_object(&once_value_262);
9985 } else fra.me.REG[7] = once_value_262;
9986 fra.me.REG[7] = fra.me.REG[7];
9987 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9988 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9989 fra.me.REG[5] = fra.me.REG[6];
9990 } else {
9991 /* ./compiling//compiling_icode.nit:800 */
9992 if (!once_value_263) {
9993 if (!once_value_264) {
9994 fra.me.REG[6] = BOX_NativeString("/");
9995 REGB1 = TAG_Int(1);
9996 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9997 once_value_264 = fra.me.REG[6];
9998 register_static_object(&once_value_264);
9999 } else fra.me.REG[6] = once_value_264;
10000 fra.me.REG[6] = fra.me.REG[6];
10001 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10002 once_value_263 = fra.me.REG[6];
10003 register_static_object(&once_value_263);
10004 } else fra.me.REG[6] = once_value_263;
10005 fra.me.REG[6] = fra.me.REG[6];
10006 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10007 if (UNTAG_Bool(REGB1)) {
10008 } else {
10009 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10010 REGB1 = REGB2;
10011 }
10012 if (UNTAG_Bool(REGB1)) {
10013 /* ./compiling//compiling_icode.nit:801 */
10014 REGB1 = TAG_Int(5);
10015 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10016 if (!once_value_265) {
10017 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10018 REGB1 = TAG_Int(20);
10019 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10020 once_value_265 = fra.me.REG[7];
10021 register_static_object(&once_value_265);
10022 } else fra.me.REG[7] = once_value_265;
10023 fra.me.REG[7] = fra.me.REG[7];
10024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10025 REGB1 = TAG_Int(0);
10026 /* ./../lib/standard//collection//array.nit:243 */
10027 fra.me.REG[7] = fra.me.REG[4];
10028 /* ./../lib/standard//collection//array.nit:245 */
10029 REGB2 = TAG_Int(0);
10030 /* ./../lib/standard//kernel.nit:213 */
10031 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10032 /* ./../lib/standard//collection//array.nit:245 */
10033 if (UNTAG_Bool(REGB2)) {
10034 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10035 if (UNTAG_Bool(REGB2)) {
10036 } else {
10037 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10038 }
10039 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10040 /* ./../lib/standard//kernel.nit:212 */
10041 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10042 } else {
10043 /* ./../lib/standard//collection//array.nit:245 */
10044 REGB0 = TAG_Bool(false);
10045 REGB2 = REGB0;
10046 }
10047 if (UNTAG_Bool(REGB2)) {
10048 } else {
10049 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10050 }
10051 /* ./../lib/standard//collection//array.nit:246 */
10052 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10053 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10054 if (UNTAG_Bool(REGB2)) {
10055 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10056 }
10057 /* ./../lib/standard//collection//array.nit:654 */
10058 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10059 /* ./../lib/standard//collection//array.nit:246 */
10060 goto label266;
10061 label266: while(0);
10062 /* ./compiling//compiling_icode.nit:801 */
10063 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10064 if (!once_value_267) {
10065 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
10066 REGB1 = TAG_Int(13);
10067 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10068 once_value_267 = fra.me.REG[7];
10069 register_static_object(&once_value_267);
10070 } else fra.me.REG[7] = once_value_267;
10071 fra.me.REG[7] = fra.me.REG[7];
10072 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10073 REGB1 = TAG_Int(1);
10074 /* ./../lib/standard//collection//array.nit:243 */
10075 fra.me.REG[7] = fra.me.REG[4];
10076 /* ./../lib/standard//collection//array.nit:245 */
10077 REGB2 = TAG_Int(0);
10078 /* ./../lib/standard//kernel.nit:213 */
10079 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10080 /* ./../lib/standard//collection//array.nit:245 */
10081 if (UNTAG_Bool(REGB2)) {
10082 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10083 if (UNTAG_Bool(REGB2)) {
10084 } else {
10085 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10086 }
10087 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10088 /* ./../lib/standard//kernel.nit:212 */
10089 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10090 } else {
10091 /* ./../lib/standard//collection//array.nit:245 */
10092 REGB0 = TAG_Bool(false);
10093 REGB2 = REGB0;
10094 }
10095 if (UNTAG_Bool(REGB2)) {
10096 } else {
10097 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10098 }
10099 /* ./../lib/standard//collection//array.nit:246 */
10100 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10101 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10102 if (UNTAG_Bool(REGB2)) {
10103 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10104 }
10105 /* ./../lib/standard//collection//array.nit:654 */
10106 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10107 /* ./../lib/standard//collection//array.nit:246 */
10108 goto label268;
10109 label268: while(0);
10110 /* ./compiling//compiling_icode.nit:801 */
10111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10112 if (!once_value_269) {
10113 fra.me.REG[7] = BOX_NativeString("))");
10114 REGB1 = TAG_Int(2);
10115 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10116 once_value_269 = fra.me.REG[7];
10117 register_static_object(&once_value_269);
10118 } else fra.me.REG[7] = once_value_269;
10119 fra.me.REG[7] = fra.me.REG[7];
10120 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10121 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10122 fra.me.REG[5] = fra.me.REG[6];
10123 } else {
10124 /* ./compiling//compiling_icode.nit:802 */
10125 if (!once_value_270) {
10126 if (!once_value_271) {
10127 fra.me.REG[6] = BOX_NativeString("%");
10128 REGB1 = TAG_Int(1);
10129 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10130 once_value_271 = fra.me.REG[6];
10131 register_static_object(&once_value_271);
10132 } else fra.me.REG[6] = once_value_271;
10133 fra.me.REG[6] = fra.me.REG[6];
10134 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10135 once_value_270 = fra.me.REG[6];
10136 register_static_object(&once_value_270);
10137 } else fra.me.REG[6] = once_value_270;
10138 fra.me.REG[6] = fra.me.REG[6];
10139 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10140 if (UNTAG_Bool(REGB1)) {
10141 } else {
10142 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10143 REGB1 = REGB2;
10144 }
10145 if (UNTAG_Bool(REGB1)) {
10146 /* ./compiling//compiling_icode.nit:803 */
10147 REGB1 = TAG_Int(5);
10148 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10149 if (!once_value_272) {
10150 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10151 REGB1 = TAG_Int(20);
10152 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10153 once_value_272 = fra.me.REG[7];
10154 register_static_object(&once_value_272);
10155 } else fra.me.REG[7] = once_value_272;
10156 fra.me.REG[7] = fra.me.REG[7];
10157 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10158 REGB1 = TAG_Int(0);
10159 /* ./../lib/standard//collection//array.nit:243 */
10160 fra.me.REG[7] = fra.me.REG[4];
10161 /* ./../lib/standard//collection//array.nit:245 */
10162 REGB2 = TAG_Int(0);
10163 /* ./../lib/standard//kernel.nit:213 */
10164 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10165 /* ./../lib/standard//collection//array.nit:245 */
10166 if (UNTAG_Bool(REGB2)) {
10167 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10168 if (UNTAG_Bool(REGB2)) {
10169 } else {
10170 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10171 }
10172 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10173 /* ./../lib/standard//kernel.nit:212 */
10174 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10175 } else {
10176 /* ./../lib/standard//collection//array.nit:245 */
10177 REGB0 = TAG_Bool(false);
10178 REGB2 = REGB0;
10179 }
10180 if (UNTAG_Bool(REGB2)) {
10181 } else {
10182 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10183 }
10184 /* ./../lib/standard//collection//array.nit:246 */
10185 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10186 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10187 if (UNTAG_Bool(REGB2)) {
10188 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10189 }
10190 /* ./../lib/standard//collection//array.nit:654 */
10191 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10192 /* ./../lib/standard//collection//array.nit:246 */
10193 goto label273;
10194 label273: while(0);
10195 /* ./compiling//compiling_icode.nit:803 */
10196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10197 if (!once_value_274) {
10198 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
10199 REGB1 = TAG_Int(13);
10200 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10201 once_value_274 = fra.me.REG[7];
10202 register_static_object(&once_value_274);
10203 } else fra.me.REG[7] = once_value_274;
10204 fra.me.REG[7] = fra.me.REG[7];
10205 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10206 REGB1 = TAG_Int(1);
10207 /* ./../lib/standard//collection//array.nit:243 */
10208 fra.me.REG[7] = fra.me.REG[4];
10209 /* ./../lib/standard//collection//array.nit:245 */
10210 REGB2 = TAG_Int(0);
10211 /* ./../lib/standard//kernel.nit:213 */
10212 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10213 /* ./../lib/standard//collection//array.nit:245 */
10214 if (UNTAG_Bool(REGB2)) {
10215 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10216 if (UNTAG_Bool(REGB2)) {
10217 } else {
10218 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10219 }
10220 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10221 /* ./../lib/standard//kernel.nit:212 */
10222 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10223 } else {
10224 /* ./../lib/standard//collection//array.nit:245 */
10225 REGB0 = TAG_Bool(false);
10226 REGB2 = REGB0;
10227 }
10228 if (UNTAG_Bool(REGB2)) {
10229 } else {
10230 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10231 }
10232 /* ./../lib/standard//collection//array.nit:246 */
10233 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10234 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10235 if (UNTAG_Bool(REGB2)) {
10236 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10237 }
10238 /* ./../lib/standard//collection//array.nit:654 */
10239 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10240 /* ./../lib/standard//collection//array.nit:246 */
10241 goto label275;
10242 label275: while(0);
10243 /* ./compiling//compiling_icode.nit:803 */
10244 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10245 if (!once_value_276) {
10246 fra.me.REG[7] = BOX_NativeString("))");
10247 REGB1 = TAG_Int(2);
10248 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10249 once_value_276 = fra.me.REG[7];
10250 register_static_object(&once_value_276);
10251 } else fra.me.REG[7] = once_value_276;
10252 fra.me.REG[7] = fra.me.REG[7];
10253 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10254 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10255 fra.me.REG[5] = fra.me.REG[6];
10256 } else {
10257 /* ./compiling//compiling_icode.nit:804 */
10258 if (!once_value_277) {
10259 if (!once_value_278) {
10260 fra.me.REG[6] = BOX_NativeString("<");
10261 REGB1 = TAG_Int(1);
10262 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10263 once_value_278 = fra.me.REG[6];
10264 register_static_object(&once_value_278);
10265 } else fra.me.REG[6] = once_value_278;
10266 fra.me.REG[6] = fra.me.REG[6];
10267 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10268 once_value_277 = fra.me.REG[6];
10269 register_static_object(&once_value_277);
10270 } else fra.me.REG[6] = once_value_277;
10271 fra.me.REG[6] = fra.me.REG[6];
10272 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10273 if (UNTAG_Bool(REGB1)) {
10274 } else {
10275 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10276 REGB1 = REGB2;
10277 }
10278 if (UNTAG_Bool(REGB1)) {
10279 /* ./compiling//compiling_icode.nit:805 */
10280 REGB1 = TAG_Int(5);
10281 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10282 if (!once_value_279) {
10283 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10284 REGB1 = TAG_Int(20);
10285 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10286 once_value_279 = fra.me.REG[7];
10287 register_static_object(&once_value_279);
10288 } else fra.me.REG[7] = once_value_279;
10289 fra.me.REG[7] = fra.me.REG[7];
10290 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10291 REGB1 = TAG_Int(0);
10292 /* ./../lib/standard//collection//array.nit:243 */
10293 fra.me.REG[7] = fra.me.REG[4];
10294 /* ./../lib/standard//collection//array.nit:245 */
10295 REGB2 = TAG_Int(0);
10296 /* ./../lib/standard//kernel.nit:213 */
10297 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10298 /* ./../lib/standard//collection//array.nit:245 */
10299 if (UNTAG_Bool(REGB2)) {
10300 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10301 if (UNTAG_Bool(REGB2)) {
10302 } else {
10303 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10304 }
10305 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10306 /* ./../lib/standard//kernel.nit:212 */
10307 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10308 } else {
10309 /* ./../lib/standard//collection//array.nit:245 */
10310 REGB0 = TAG_Bool(false);
10311 REGB2 = REGB0;
10312 }
10313 if (UNTAG_Bool(REGB2)) {
10314 } else {
10315 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10316 }
10317 /* ./../lib/standard//collection//array.nit:246 */
10318 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10319 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10320 if (UNTAG_Bool(REGB2)) {
10321 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10322 }
10323 /* ./../lib/standard//collection//array.nit:654 */
10324 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10325 /* ./../lib/standard//collection//array.nit:246 */
10326 goto label280;
10327 label280: while(0);
10328 /* ./compiling//compiling_icode.nit:805 */
10329 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10330 if (!once_value_281) {
10331 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
10332 REGB1 = TAG_Int(13);
10333 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10334 once_value_281 = fra.me.REG[7];
10335 register_static_object(&once_value_281);
10336 } else fra.me.REG[7] = once_value_281;
10337 fra.me.REG[7] = fra.me.REG[7];
10338 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10339 REGB1 = TAG_Int(1);
10340 /* ./../lib/standard//collection//array.nit:243 */
10341 fra.me.REG[7] = fra.me.REG[4];
10342 /* ./../lib/standard//collection//array.nit:245 */
10343 REGB2 = TAG_Int(0);
10344 /* ./../lib/standard//kernel.nit:213 */
10345 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10346 /* ./../lib/standard//collection//array.nit:245 */
10347 if (UNTAG_Bool(REGB2)) {
10348 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10349 if (UNTAG_Bool(REGB2)) {
10350 } else {
10351 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10352 }
10353 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10354 /* ./../lib/standard//kernel.nit:212 */
10355 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10356 } else {
10357 /* ./../lib/standard//collection//array.nit:245 */
10358 REGB0 = TAG_Bool(false);
10359 REGB2 = REGB0;
10360 }
10361 if (UNTAG_Bool(REGB2)) {
10362 } else {
10363 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10364 }
10365 /* ./../lib/standard//collection//array.nit:246 */
10366 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10367 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10368 if (UNTAG_Bool(REGB2)) {
10369 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10370 }
10371 /* ./../lib/standard//collection//array.nit:654 */
10372 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10373 /* ./../lib/standard//collection//array.nit:246 */
10374 goto label282;
10375 label282: while(0);
10376 /* ./compiling//compiling_icode.nit:805 */
10377 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10378 if (!once_value_283) {
10379 fra.me.REG[7] = BOX_NativeString("))");
10380 REGB1 = TAG_Int(2);
10381 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10382 once_value_283 = fra.me.REG[7];
10383 register_static_object(&once_value_283);
10384 } else fra.me.REG[7] = once_value_283;
10385 fra.me.REG[7] = fra.me.REG[7];
10386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10387 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10388 fra.me.REG[5] = fra.me.REG[6];
10389 } else {
10390 /* ./compiling//compiling_icode.nit:806 */
10391 if (!once_value_284) {
10392 if (!once_value_285) {
10393 fra.me.REG[6] = BOX_NativeString(">");
10394 REGB1 = TAG_Int(1);
10395 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10396 once_value_285 = fra.me.REG[6];
10397 register_static_object(&once_value_285);
10398 } else fra.me.REG[6] = once_value_285;
10399 fra.me.REG[6] = fra.me.REG[6];
10400 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10401 once_value_284 = fra.me.REG[6];
10402 register_static_object(&once_value_284);
10403 } else fra.me.REG[6] = once_value_284;
10404 fra.me.REG[6] = fra.me.REG[6];
10405 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10406 if (UNTAG_Bool(REGB1)) {
10407 } else {
10408 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10409 REGB1 = REGB2;
10410 }
10411 if (UNTAG_Bool(REGB1)) {
10412 /* ./compiling//compiling_icode.nit:807 */
10413 REGB1 = TAG_Int(5);
10414 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10415 if (!once_value_286) {
10416 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10417 REGB1 = TAG_Int(20);
10418 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10419 once_value_286 = fra.me.REG[7];
10420 register_static_object(&once_value_286);
10421 } else fra.me.REG[7] = once_value_286;
10422 fra.me.REG[7] = fra.me.REG[7];
10423 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10424 REGB1 = TAG_Int(0);
10425 /* ./../lib/standard//collection//array.nit:243 */
10426 fra.me.REG[7] = fra.me.REG[4];
10427 /* ./../lib/standard//collection//array.nit:245 */
10428 REGB2 = TAG_Int(0);
10429 /* ./../lib/standard//kernel.nit:213 */
10430 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10431 /* ./../lib/standard//collection//array.nit:245 */
10432 if (UNTAG_Bool(REGB2)) {
10433 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10434 if (UNTAG_Bool(REGB2)) {
10435 } else {
10436 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10437 }
10438 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10439 /* ./../lib/standard//kernel.nit:212 */
10440 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10441 } else {
10442 /* ./../lib/standard//collection//array.nit:245 */
10443 REGB0 = TAG_Bool(false);
10444 REGB2 = REGB0;
10445 }
10446 if (UNTAG_Bool(REGB2)) {
10447 } else {
10448 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10449 }
10450 /* ./../lib/standard//collection//array.nit:246 */
10451 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10452 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10453 if (UNTAG_Bool(REGB2)) {
10454 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10455 }
10456 /* ./../lib/standard//collection//array.nit:654 */
10457 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10458 /* ./../lib/standard//collection//array.nit:246 */
10459 goto label287;
10460 label287: while(0);
10461 /* ./compiling//compiling_icode.nit:807 */
10462 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10463 if (!once_value_288) {
10464 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
10465 REGB1 = TAG_Int(13);
10466 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10467 once_value_288 = fra.me.REG[7];
10468 register_static_object(&once_value_288);
10469 } else fra.me.REG[7] = once_value_288;
10470 fra.me.REG[7] = fra.me.REG[7];
10471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10472 REGB1 = TAG_Int(1);
10473 /* ./../lib/standard//collection//array.nit:243 */
10474 fra.me.REG[7] = fra.me.REG[4];
10475 /* ./../lib/standard//collection//array.nit:245 */
10476 REGB2 = TAG_Int(0);
10477 /* ./../lib/standard//kernel.nit:213 */
10478 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10479 /* ./../lib/standard//collection//array.nit:245 */
10480 if (UNTAG_Bool(REGB2)) {
10481 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10482 if (UNTAG_Bool(REGB2)) {
10483 } else {
10484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10485 }
10486 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10487 /* ./../lib/standard//kernel.nit:212 */
10488 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10489 } else {
10490 /* ./../lib/standard//collection//array.nit:245 */
10491 REGB0 = TAG_Bool(false);
10492 REGB2 = REGB0;
10493 }
10494 if (UNTAG_Bool(REGB2)) {
10495 } else {
10496 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10497 }
10498 /* ./../lib/standard//collection//array.nit:246 */
10499 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10500 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10501 if (UNTAG_Bool(REGB2)) {
10502 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10503 }
10504 /* ./../lib/standard//collection//array.nit:654 */
10505 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10506 /* ./../lib/standard//collection//array.nit:246 */
10507 goto label289;
10508 label289: while(0);
10509 /* ./compiling//compiling_icode.nit:807 */
10510 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10511 if (!once_value_290) {
10512 fra.me.REG[7] = BOX_NativeString("))");
10513 REGB1 = TAG_Int(2);
10514 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10515 once_value_290 = fra.me.REG[7];
10516 register_static_object(&once_value_290);
10517 } else fra.me.REG[7] = once_value_290;
10518 fra.me.REG[7] = fra.me.REG[7];
10519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10520 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10521 fra.me.REG[5] = fra.me.REG[6];
10522 } else {
10523 /* ./compiling//compiling_icode.nit:808 */
10524 if (!once_value_291) {
10525 if (!once_value_292) {
10526 fra.me.REG[6] = BOX_NativeString("<=");
10527 REGB1 = TAG_Int(2);
10528 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10529 once_value_292 = fra.me.REG[6];
10530 register_static_object(&once_value_292);
10531 } else fra.me.REG[6] = once_value_292;
10532 fra.me.REG[6] = fra.me.REG[6];
10533 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10534 once_value_291 = fra.me.REG[6];
10535 register_static_object(&once_value_291);
10536 } else fra.me.REG[6] = once_value_291;
10537 fra.me.REG[6] = fra.me.REG[6];
10538 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10539 if (UNTAG_Bool(REGB1)) {
10540 } else {
10541 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10542 REGB1 = REGB2;
10543 }
10544 if (UNTAG_Bool(REGB1)) {
10545 /* ./compiling//compiling_icode.nit:809 */
10546 REGB1 = TAG_Int(5);
10547 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10548 if (!once_value_293) {
10549 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10550 REGB1 = TAG_Int(20);
10551 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10552 once_value_293 = fra.me.REG[7];
10553 register_static_object(&once_value_293);
10554 } else fra.me.REG[7] = once_value_293;
10555 fra.me.REG[7] = fra.me.REG[7];
10556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10557 REGB1 = TAG_Int(0);
10558 /* ./../lib/standard//collection//array.nit:243 */
10559 fra.me.REG[7] = fra.me.REG[4];
10560 /* ./../lib/standard//collection//array.nit:245 */
10561 REGB2 = TAG_Int(0);
10562 /* ./../lib/standard//kernel.nit:213 */
10563 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10564 /* ./../lib/standard//collection//array.nit:245 */
10565 if (UNTAG_Bool(REGB2)) {
10566 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10567 if (UNTAG_Bool(REGB2)) {
10568 } else {
10569 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10570 }
10571 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10572 /* ./../lib/standard//kernel.nit:212 */
10573 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10574 } else {
10575 /* ./../lib/standard//collection//array.nit:245 */
10576 REGB0 = TAG_Bool(false);
10577 REGB2 = REGB0;
10578 }
10579 if (UNTAG_Bool(REGB2)) {
10580 } else {
10581 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10582 }
10583 /* ./../lib/standard//collection//array.nit:246 */
10584 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10585 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10586 if (UNTAG_Bool(REGB2)) {
10587 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10588 }
10589 /* ./../lib/standard//collection//array.nit:654 */
10590 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10591 /* ./../lib/standard//collection//array.nit:246 */
10592 goto label294;
10593 label294: while(0);
10594 /* ./compiling//compiling_icode.nit:809 */
10595 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10596 if (!once_value_295) {
10597 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
10598 REGB1 = TAG_Int(14);
10599 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10600 once_value_295 = fra.me.REG[7];
10601 register_static_object(&once_value_295);
10602 } else fra.me.REG[7] = once_value_295;
10603 fra.me.REG[7] = fra.me.REG[7];
10604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10605 REGB1 = TAG_Int(1);
10606 /* ./../lib/standard//collection//array.nit:243 */
10607 fra.me.REG[7] = fra.me.REG[4];
10608 /* ./../lib/standard//collection//array.nit:245 */
10609 REGB2 = TAG_Int(0);
10610 /* ./../lib/standard//kernel.nit:213 */
10611 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10612 /* ./../lib/standard//collection//array.nit:245 */
10613 if (UNTAG_Bool(REGB2)) {
10614 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10615 if (UNTAG_Bool(REGB2)) {
10616 } else {
10617 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10618 }
10619 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10620 /* ./../lib/standard//kernel.nit:212 */
10621 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10622 } else {
10623 /* ./../lib/standard//collection//array.nit:245 */
10624 REGB0 = TAG_Bool(false);
10625 REGB2 = REGB0;
10626 }
10627 if (UNTAG_Bool(REGB2)) {
10628 } else {
10629 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10630 }
10631 /* ./../lib/standard//collection//array.nit:246 */
10632 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10633 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10634 if (UNTAG_Bool(REGB2)) {
10635 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10636 }
10637 /* ./../lib/standard//collection//array.nit:654 */
10638 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10639 /* ./../lib/standard//collection//array.nit:246 */
10640 goto label296;
10641 label296: while(0);
10642 /* ./compiling//compiling_icode.nit:809 */
10643 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10644 if (!once_value_297) {
10645 fra.me.REG[7] = BOX_NativeString("))");
10646 REGB1 = TAG_Int(2);
10647 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10648 once_value_297 = fra.me.REG[7];
10649 register_static_object(&once_value_297);
10650 } else fra.me.REG[7] = once_value_297;
10651 fra.me.REG[7] = fra.me.REG[7];
10652 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10653 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10654 fra.me.REG[5] = fra.me.REG[6];
10655 } else {
10656 /* ./compiling//compiling_icode.nit:810 */
10657 if (!once_value_298) {
10658 if (!once_value_299) {
10659 fra.me.REG[6] = BOX_NativeString(">=");
10660 REGB1 = TAG_Int(2);
10661 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10662 once_value_299 = fra.me.REG[6];
10663 register_static_object(&once_value_299);
10664 } else fra.me.REG[6] = once_value_299;
10665 fra.me.REG[6] = fra.me.REG[6];
10666 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10667 once_value_298 = fra.me.REG[6];
10668 register_static_object(&once_value_298);
10669 } else fra.me.REG[6] = once_value_298;
10670 fra.me.REG[6] = fra.me.REG[6];
10671 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10672 if (UNTAG_Bool(REGB1)) {
10673 } else {
10674 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10675 REGB1 = REGB2;
10676 }
10677 if (UNTAG_Bool(REGB1)) {
10678 /* ./compiling//compiling_icode.nit:811 */
10679 REGB1 = TAG_Int(5);
10680 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10681 if (!once_value_300) {
10682 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10683 REGB1 = TAG_Int(20);
10684 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10685 once_value_300 = fra.me.REG[7];
10686 register_static_object(&once_value_300);
10687 } else fra.me.REG[7] = once_value_300;
10688 fra.me.REG[7] = fra.me.REG[7];
10689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10690 REGB1 = TAG_Int(0);
10691 /* ./../lib/standard//collection//array.nit:243 */
10692 fra.me.REG[7] = fra.me.REG[4];
10693 /* ./../lib/standard//collection//array.nit:245 */
10694 REGB2 = TAG_Int(0);
10695 /* ./../lib/standard//kernel.nit:213 */
10696 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10697 /* ./../lib/standard//collection//array.nit:245 */
10698 if (UNTAG_Bool(REGB2)) {
10699 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10700 if (UNTAG_Bool(REGB2)) {
10701 } else {
10702 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10703 }
10704 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10705 /* ./../lib/standard//kernel.nit:212 */
10706 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10707 } else {
10708 /* ./../lib/standard//collection//array.nit:245 */
10709 REGB0 = TAG_Bool(false);
10710 REGB2 = REGB0;
10711 }
10712 if (UNTAG_Bool(REGB2)) {
10713 } else {
10714 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10715 }
10716 /* ./../lib/standard//collection//array.nit:246 */
10717 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10718 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10719 if (UNTAG_Bool(REGB2)) {
10720 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10721 }
10722 /* ./../lib/standard//collection//array.nit:654 */
10723 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10724 /* ./../lib/standard//collection//array.nit:246 */
10725 goto label301;
10726 label301: while(0);
10727 /* ./compiling//compiling_icode.nit:811 */
10728 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10729 if (!once_value_302) {
10730 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
10731 REGB1 = TAG_Int(14);
10732 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10733 once_value_302 = fra.me.REG[7];
10734 register_static_object(&once_value_302);
10735 } else fra.me.REG[7] = once_value_302;
10736 fra.me.REG[7] = fra.me.REG[7];
10737 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10738 REGB1 = TAG_Int(1);
10739 /* ./../lib/standard//collection//array.nit:243 */
10740 fra.me.REG[7] = fra.me.REG[4];
10741 /* ./../lib/standard//collection//array.nit:245 */
10742 REGB2 = TAG_Int(0);
10743 /* ./../lib/standard//kernel.nit:213 */
10744 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10745 /* ./../lib/standard//collection//array.nit:245 */
10746 if (UNTAG_Bool(REGB2)) {
10747 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10748 if (UNTAG_Bool(REGB2)) {
10749 } else {
10750 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10751 }
10752 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10753 /* ./../lib/standard//kernel.nit:212 */
10754 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10755 } else {
10756 /* ./../lib/standard//collection//array.nit:245 */
10757 REGB0 = TAG_Bool(false);
10758 REGB2 = REGB0;
10759 }
10760 if (UNTAG_Bool(REGB2)) {
10761 } else {
10762 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10763 }
10764 /* ./../lib/standard//collection//array.nit:246 */
10765 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10766 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10767 if (UNTAG_Bool(REGB2)) {
10768 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10769 }
10770 /* ./../lib/standard//collection//array.nit:654 */
10771 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10772 /* ./../lib/standard//collection//array.nit:246 */
10773 goto label303;
10774 label303: while(0);
10775 /* ./compiling//compiling_icode.nit:811 */
10776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10777 if (!once_value_304) {
10778 fra.me.REG[7] = BOX_NativeString("))");
10779 REGB1 = TAG_Int(2);
10780 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10781 once_value_304 = fra.me.REG[7];
10782 register_static_object(&once_value_304);
10783 } else fra.me.REG[7] = once_value_304;
10784 fra.me.REG[7] = fra.me.REG[7];
10785 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10786 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10787 fra.me.REG[5] = fra.me.REG[6];
10788 } else {
10789 /* ./compiling//compiling_icode.nit:812 */
10790 if (!once_value_305) {
10791 if (!once_value_306) {
10792 fra.me.REG[6] = BOX_NativeString("==");
10793 REGB1 = TAG_Int(2);
10794 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10795 once_value_306 = fra.me.REG[6];
10796 register_static_object(&once_value_306);
10797 } else fra.me.REG[6] = once_value_306;
10798 fra.me.REG[6] = fra.me.REG[6];
10799 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10800 once_value_305 = fra.me.REG[6];
10801 register_static_object(&once_value_305);
10802 } else fra.me.REG[6] = once_value_305;
10803 fra.me.REG[6] = fra.me.REG[6];
10804 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10805 if (UNTAG_Bool(REGB1)) {
10806 } else {
10807 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10808 REGB1 = REGB2;
10809 }
10810 if (UNTAG_Bool(REGB1)) {
10811 /* ./compiling//compiling_icode.nit:813 */
10812 REGB1 = TAG_Int(5);
10813 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10814 if (!once_value_307) {
10815 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
10816 REGB1 = TAG_Int(10);
10817 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10818 once_value_307 = fra.me.REG[7];
10819 register_static_object(&once_value_307);
10820 } else fra.me.REG[7] = once_value_307;
10821 fra.me.REG[7] = fra.me.REG[7];
10822 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10823 REGB1 = TAG_Int(0);
10824 /* ./../lib/standard//collection//array.nit:243 */
10825 fra.me.REG[7] = fra.me.REG[4];
10826 /* ./../lib/standard//collection//array.nit:245 */
10827 REGB2 = TAG_Int(0);
10828 /* ./../lib/standard//kernel.nit:213 */
10829 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10830 /* ./../lib/standard//collection//array.nit:245 */
10831 if (UNTAG_Bool(REGB2)) {
10832 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10833 if (UNTAG_Bool(REGB2)) {
10834 } else {
10835 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10836 }
10837 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10838 /* ./../lib/standard//kernel.nit:212 */
10839 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10840 } else {
10841 /* ./../lib/standard//collection//array.nit:245 */
10842 REGB0 = TAG_Bool(false);
10843 REGB2 = REGB0;
10844 }
10845 if (UNTAG_Bool(REGB2)) {
10846 } else {
10847 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10848 }
10849 /* ./../lib/standard//collection//array.nit:246 */
10850 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10851 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10852 if (UNTAG_Bool(REGB2)) {
10853 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10854 }
10855 /* ./../lib/standard//collection//array.nit:654 */
10856 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10857 /* ./../lib/standard//collection//array.nit:246 */
10858 goto label308;
10859 label308: while(0);
10860 /* ./compiling//compiling_icode.nit:813 */
10861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10862 if (!once_value_309) {
10863 fra.me.REG[7] = BOX_NativeString(")==(");
10864 REGB1 = TAG_Int(4);
10865 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10866 once_value_309 = fra.me.REG[7];
10867 register_static_object(&once_value_309);
10868 } else fra.me.REG[7] = once_value_309;
10869 fra.me.REG[7] = fra.me.REG[7];
10870 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10871 REGB1 = TAG_Int(1);
10872 /* ./../lib/standard//collection//array.nit:243 */
10873 fra.me.REG[7] = fra.me.REG[4];
10874 /* ./../lib/standard//collection//array.nit:245 */
10875 REGB2 = TAG_Int(0);
10876 /* ./../lib/standard//kernel.nit:213 */
10877 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10878 /* ./../lib/standard//collection//array.nit:245 */
10879 if (UNTAG_Bool(REGB2)) {
10880 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10881 if (UNTAG_Bool(REGB2)) {
10882 } else {
10883 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10884 }
10885 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10886 /* ./../lib/standard//kernel.nit:212 */
10887 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10888 } else {
10889 /* ./../lib/standard//collection//array.nit:245 */
10890 REGB0 = TAG_Bool(false);
10891 REGB2 = REGB0;
10892 }
10893 if (UNTAG_Bool(REGB2)) {
10894 } else {
10895 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10896 }
10897 /* ./../lib/standard//collection//array.nit:246 */
10898 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10899 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10900 if (UNTAG_Bool(REGB2)) {
10901 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10902 }
10903 /* ./../lib/standard//collection//array.nit:654 */
10904 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10905 /* ./../lib/standard//collection//array.nit:246 */
10906 goto label310;
10907 label310: while(0);
10908 /* ./compiling//compiling_icode.nit:813 */
10909 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10910 if (!once_value_311) {
10911 fra.me.REG[7] = BOX_NativeString("))");
10912 REGB1 = TAG_Int(2);
10913 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10914 once_value_311 = fra.me.REG[7];
10915 register_static_object(&once_value_311);
10916 } else fra.me.REG[7] = once_value_311;
10917 fra.me.REG[7] = fra.me.REG[7];
10918 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10919 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10920 fra.me.REG[5] = fra.me.REG[6];
10921 } else {
10922 /* ./compiling//compiling_icode.nit:814 */
10923 if (!once_value_312) {
10924 if (!once_value_313) {
10925 fra.me.REG[6] = BOX_NativeString("!=");
10926 REGB1 = TAG_Int(2);
10927 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10928 once_value_313 = fra.me.REG[6];
10929 register_static_object(&once_value_313);
10930 } else fra.me.REG[6] = once_value_313;
10931 fra.me.REG[6] = fra.me.REG[6];
10932 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10933 once_value_312 = fra.me.REG[6];
10934 register_static_object(&once_value_312);
10935 } else fra.me.REG[6] = once_value_312;
10936 fra.me.REG[6] = fra.me.REG[6];
10937 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10938 if (UNTAG_Bool(REGB1)) {
10939 } else {
10940 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10941 REGB1 = REGB2;
10942 }
10943 if (UNTAG_Bool(REGB1)) {
10944 /* ./compiling//compiling_icode.nit:815 */
10945 REGB1 = TAG_Int(5);
10946 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10947 if (!once_value_314) {
10948 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
10949 REGB1 = TAG_Int(10);
10950 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10951 once_value_314 = fra.me.REG[7];
10952 register_static_object(&once_value_314);
10953 } else fra.me.REG[7] = once_value_314;
10954 fra.me.REG[7] = fra.me.REG[7];
10955 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10956 REGB1 = TAG_Int(0);
10957 /* ./../lib/standard//collection//array.nit:243 */
10958 fra.me.REG[7] = fra.me.REG[4];
10959 /* ./../lib/standard//collection//array.nit:245 */
10960 REGB2 = TAG_Int(0);
10961 /* ./../lib/standard//kernel.nit:213 */
10962 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10963 /* ./../lib/standard//collection//array.nit:245 */
10964 if (UNTAG_Bool(REGB2)) {
10965 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10966 if (UNTAG_Bool(REGB2)) {
10967 } else {
10968 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10969 }
10970 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10971 /* ./../lib/standard//kernel.nit:212 */
10972 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10973 } else {
10974 /* ./../lib/standard//collection//array.nit:245 */
10975 REGB0 = TAG_Bool(false);
10976 REGB2 = REGB0;
10977 }
10978 if (UNTAG_Bool(REGB2)) {
10979 } else {
10980 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10981 }
10982 /* ./../lib/standard//collection//array.nit:246 */
10983 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10984 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10985 if (UNTAG_Bool(REGB2)) {
10986 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10987 }
10988 /* ./../lib/standard//collection//array.nit:654 */
10989 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10990 /* ./../lib/standard//collection//array.nit:246 */
10991 goto label315;
10992 label315: while(0);
10993 /* ./compiling//compiling_icode.nit:815 */
10994 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10995 if (!once_value_316) {
10996 fra.me.REG[7] = BOX_NativeString(")!=(");
10997 REGB1 = TAG_Int(4);
10998 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10999 once_value_316 = fra.me.REG[7];
11000 register_static_object(&once_value_316);
11001 } else fra.me.REG[7] = once_value_316;
11002 fra.me.REG[7] = fra.me.REG[7];
11003 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11004 REGB1 = TAG_Int(1);
11005 /* ./../lib/standard//collection//array.nit:243 */
11006 fra.me.REG[7] = fra.me.REG[4];
11007 /* ./../lib/standard//collection//array.nit:245 */
11008 REGB2 = TAG_Int(0);
11009 /* ./../lib/standard//kernel.nit:213 */
11010 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11011 /* ./../lib/standard//collection//array.nit:245 */
11012 if (UNTAG_Bool(REGB2)) {
11013 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11014 if (UNTAG_Bool(REGB2)) {
11015 } else {
11016 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11017 }
11018 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11019 /* ./../lib/standard//kernel.nit:212 */
11020 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11021 } else {
11022 /* ./../lib/standard//collection//array.nit:245 */
11023 REGB0 = TAG_Bool(false);
11024 REGB2 = REGB0;
11025 }
11026 if (UNTAG_Bool(REGB2)) {
11027 } else {
11028 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11029 }
11030 /* ./../lib/standard//collection//array.nit:246 */
11031 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11032 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11033 if (UNTAG_Bool(REGB2)) {
11034 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11035 }
11036 /* ./../lib/standard//collection//array.nit:654 */
11037 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11038 /* ./../lib/standard//collection//array.nit:246 */
11039 goto label317;
11040 label317: while(0);
11041 /* ./compiling//compiling_icode.nit:815 */
11042 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11043 if (!once_value_318) {
11044 fra.me.REG[7] = BOX_NativeString("))");
11045 REGB1 = TAG_Int(2);
11046 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11047 once_value_318 = fra.me.REG[7];
11048 register_static_object(&once_value_318);
11049 } else fra.me.REG[7] = once_value_318;
11050 fra.me.REG[7] = fra.me.REG[7];
11051 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11052 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11053 fra.me.REG[5] = fra.me.REG[6];
11054 }
11055 }
11056 }
11057 }
11058 }
11059 }
11060 }
11061 }
11062 }
11063 }
11064 }
11065 }
11066 }
11067 }
11068 }
11069 }
11070 }
11071 }
11072 } else {
11073 /* ./compiling//compiling_icode.nit:817 */
11074 if (!once_value_319) {
11075 if (!once_value_320) {
11076 fra.me.REG[6] = BOX_NativeString("Bool");
11077 REGB1 = TAG_Int(4);
11078 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11079 once_value_320 = fra.me.REG[6];
11080 register_static_object(&once_value_320);
11081 } else fra.me.REG[6] = once_value_320;
11082 fra.me.REG[6] = fra.me.REG[6];
11083 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11084 once_value_319 = fra.me.REG[6];
11085 register_static_object(&once_value_319);
11086 } else fra.me.REG[6] = once_value_319;
11087 fra.me.REG[6] = fra.me.REG[6];
11088 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
11089 if (UNTAG_Bool(REGB1)) {
11090 } else {
11091 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
11092 REGB1 = REGB2;
11093 }
11094 if (UNTAG_Bool(REGB1)) {
11095 /* ./compiling//compiling_icode.nit:818 */
11096 if (!once_value_321) {
11097 if (!once_value_322) {
11098 fra.me.REG[6] = BOX_NativeString("object_id");
11099 REGB1 = TAG_Int(9);
11100 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11101 once_value_322 = fra.me.REG[6];
11102 register_static_object(&once_value_322);
11103 } else fra.me.REG[6] = once_value_322;
11104 fra.me.REG[6] = fra.me.REG[6];
11105 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11106 once_value_321 = fra.me.REG[6];
11107 register_static_object(&once_value_321);
11108 } else fra.me.REG[6] = once_value_321;
11109 fra.me.REG[6] = fra.me.REG[6];
11110 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11111 if (UNTAG_Bool(REGB1)) {
11112 } else {
11113 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11114 REGB1 = REGB2;
11115 }
11116 if (UNTAG_Bool(REGB1)) {
11117 /* ./compiling//compiling_icode.nit:819 */
11118 REGB1 = TAG_Int(3);
11119 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11120 if (!once_value_323) {
11121 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
11122 REGB1 = TAG_Int(19);
11123 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11124 once_value_323 = fra.me.REG[7];
11125 register_static_object(&once_value_323);
11126 } else fra.me.REG[7] = once_value_323;
11127 fra.me.REG[7] = fra.me.REG[7];
11128 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11129 REGB1 = TAG_Int(0);
11130 /* ./../lib/standard//collection//array.nit:243 */
11131 fra.me.REG[7] = fra.me.REG[4];
11132 /* ./../lib/standard//collection//array.nit:245 */
11133 REGB2 = TAG_Int(0);
11134 /* ./../lib/standard//kernel.nit:213 */
11135 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11136 /* ./../lib/standard//collection//array.nit:245 */
11137 if (UNTAG_Bool(REGB2)) {
11138 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11139 if (UNTAG_Bool(REGB2)) {
11140 } else {
11141 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11142 }
11143 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11144 /* ./../lib/standard//kernel.nit:212 */
11145 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11146 } else {
11147 /* ./../lib/standard//collection//array.nit:245 */
11148 REGB0 = TAG_Bool(false);
11149 REGB2 = REGB0;
11150 }
11151 if (UNTAG_Bool(REGB2)) {
11152 } else {
11153 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11154 }
11155 /* ./../lib/standard//collection//array.nit:246 */
11156 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11157 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11158 if (UNTAG_Bool(REGB2)) {
11159 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11160 }
11161 /* ./../lib/standard//collection//array.nit:654 */
11162 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11163 /* ./../lib/standard//collection//array.nit:246 */
11164 goto label324;
11165 label324: while(0);
11166 /* ./compiling//compiling_icode.nit:819 */
11167 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11168 if (!once_value_325) {
11169 fra.me.REG[7] = BOX_NativeString("))");
11170 REGB1 = TAG_Int(2);
11171 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11172 once_value_325 = fra.me.REG[7];
11173 register_static_object(&once_value_325);
11174 } else fra.me.REG[7] = once_value_325;
11175 fra.me.REG[7] = fra.me.REG[7];
11176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11177 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11178 fra.me.REG[5] = fra.me.REG[6];
11179 } else {
11180 /* ./compiling//compiling_icode.nit:820 */
11181 if (!once_value_326) {
11182 if (!once_value_327) {
11183 fra.me.REG[6] = BOX_NativeString("unary -");
11184 REGB1 = TAG_Int(7);
11185 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11186 once_value_327 = fra.me.REG[6];
11187 register_static_object(&once_value_327);
11188 } else fra.me.REG[6] = once_value_327;
11189 fra.me.REG[6] = fra.me.REG[6];
11190 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11191 once_value_326 = fra.me.REG[6];
11192 register_static_object(&once_value_326);
11193 } else fra.me.REG[6] = once_value_326;
11194 fra.me.REG[6] = fra.me.REG[6];
11195 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11196 if (UNTAG_Bool(REGB1)) {
11197 } else {
11198 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11199 REGB1 = REGB2;
11200 }
11201 if (UNTAG_Bool(REGB1)) {
11202 /* ./compiling//compiling_icode.nit:821 */
11203 REGB1 = TAG_Int(3);
11204 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11205 if (!once_value_328) {
11206 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
11207 REGB1 = TAG_Int(21);
11208 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11209 once_value_328 = fra.me.REG[7];
11210 register_static_object(&once_value_328);
11211 } else fra.me.REG[7] = once_value_328;
11212 fra.me.REG[7] = fra.me.REG[7];
11213 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11214 REGB1 = TAG_Int(0);
11215 /* ./../lib/standard//collection//array.nit:243 */
11216 fra.me.REG[7] = fra.me.REG[4];
11217 /* ./../lib/standard//collection//array.nit:245 */
11218 REGB2 = TAG_Int(0);
11219 /* ./../lib/standard//kernel.nit:213 */
11220 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11221 /* ./../lib/standard//collection//array.nit:245 */
11222 if (UNTAG_Bool(REGB2)) {
11223 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11224 if (UNTAG_Bool(REGB2)) {
11225 } else {
11226 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11227 }
11228 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11229 /* ./../lib/standard//kernel.nit:212 */
11230 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11231 } else {
11232 /* ./../lib/standard//collection//array.nit:245 */
11233 REGB0 = TAG_Bool(false);
11234 REGB2 = REGB0;
11235 }
11236 if (UNTAG_Bool(REGB2)) {
11237 } else {
11238 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11239 }
11240 /* ./../lib/standard//collection//array.nit:246 */
11241 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11242 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11243 if (UNTAG_Bool(REGB2)) {
11244 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11245 }
11246 /* ./../lib/standard//collection//array.nit:654 */
11247 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11248 /* ./../lib/standard//collection//array.nit:246 */
11249 goto label329;
11250 label329: while(0);
11251 /* ./compiling//compiling_icode.nit:821 */
11252 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11253 if (!once_value_330) {
11254 fra.me.REG[7] = BOX_NativeString("))");
11255 REGB1 = TAG_Int(2);
11256 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11257 once_value_330 = fra.me.REG[7];
11258 register_static_object(&once_value_330);
11259 } else fra.me.REG[7] = once_value_330;
11260 fra.me.REG[7] = fra.me.REG[7];
11261 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11262 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11263 fra.me.REG[5] = fra.me.REG[6];
11264 } else {
11265 /* ./compiling//compiling_icode.nit:822 */
11266 if (!once_value_331) {
11267 if (!once_value_332) {
11268 fra.me.REG[6] = BOX_NativeString("output");
11269 REGB1 = TAG_Int(6);
11270 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11271 once_value_332 = fra.me.REG[6];
11272 register_static_object(&once_value_332);
11273 } else fra.me.REG[6] = once_value_332;
11274 fra.me.REG[6] = fra.me.REG[6];
11275 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11276 once_value_331 = fra.me.REG[6];
11277 register_static_object(&once_value_331);
11278 } else fra.me.REG[6] = once_value_331;
11279 fra.me.REG[6] = fra.me.REG[6];
11280 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11281 if (UNTAG_Bool(REGB1)) {
11282 } else {
11283 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11284 REGB1 = REGB2;
11285 }
11286 if (UNTAG_Bool(REGB1)) {
11287 /* ./compiling//compiling_icode.nit:823 */
11288 REGB1 = TAG_Int(3);
11289 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11290 if (!once_value_333) {
11291 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
11292 REGB1 = TAG_Int(24);
11293 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11294 once_value_333 = fra.me.REG[7];
11295 register_static_object(&once_value_333);
11296 } else fra.me.REG[7] = once_value_333;
11297 fra.me.REG[7] = fra.me.REG[7];
11298 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11299 REGB1 = TAG_Int(0);
11300 /* ./../lib/standard//collection//array.nit:243 */
11301 fra.me.REG[7] = fra.me.REG[4];
11302 /* ./../lib/standard//collection//array.nit:245 */
11303 REGB2 = TAG_Int(0);
11304 /* ./../lib/standard//kernel.nit:213 */
11305 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11306 /* ./../lib/standard//collection//array.nit:245 */
11307 if (UNTAG_Bool(REGB2)) {
11308 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11309 if (UNTAG_Bool(REGB2)) {
11310 } else {
11311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11312 }
11313 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11314 /* ./../lib/standard//kernel.nit:212 */
11315 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11316 } else {
11317 /* ./../lib/standard//collection//array.nit:245 */
11318 REGB0 = TAG_Bool(false);
11319 REGB2 = REGB0;
11320 }
11321 if (UNTAG_Bool(REGB2)) {
11322 } else {
11323 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11324 }
11325 /* ./../lib/standard//collection//array.nit:246 */
11326 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11327 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11328 if (UNTAG_Bool(REGB2)) {
11329 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11330 }
11331 /* ./../lib/standard//collection//array.nit:654 */
11332 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11333 /* ./../lib/standard//collection//array.nit:246 */
11334 goto label334;
11335 label334: while(0);
11336 /* ./compiling//compiling_icode.nit:823 */
11337 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11338 if (!once_value_335) {
11339 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
11340 REGB1 = TAG_Int(22);
11341 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11342 once_value_335 = fra.me.REG[7];
11343 register_static_object(&once_value_335);
11344 } else fra.me.REG[7] = once_value_335;
11345 fra.me.REG[7] = fra.me.REG[7];
11346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11347 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11348 fra.me.REG[5] = fra.me.REG[6];
11349 } else {
11350 /* ./compiling//compiling_icode.nit:824 */
11351 if (!once_value_336) {
11352 if (!once_value_337) {
11353 fra.me.REG[6] = BOX_NativeString("ascii");
11354 REGB1 = TAG_Int(5);
11355 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11356 once_value_337 = fra.me.REG[6];
11357 register_static_object(&once_value_337);
11358 } else fra.me.REG[6] = once_value_337;
11359 fra.me.REG[6] = fra.me.REG[6];
11360 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11361 once_value_336 = fra.me.REG[6];
11362 register_static_object(&once_value_336);
11363 } else fra.me.REG[6] = once_value_336;
11364 fra.me.REG[6] = fra.me.REG[6];
11365 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11366 if (UNTAG_Bool(REGB1)) {
11367 } else {
11368 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11369 REGB1 = REGB2;
11370 }
11371 if (UNTAG_Bool(REGB1)) {
11372 /* ./compiling//compiling_icode.nit:825 */
11373 REGB1 = TAG_Int(3);
11374 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11375 if (!once_value_338) {
11376 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
11377 REGB1 = TAG_Int(20);
11378 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11379 once_value_338 = fra.me.REG[7];
11380 register_static_object(&once_value_338);
11381 } else fra.me.REG[7] = once_value_338;
11382 fra.me.REG[7] = fra.me.REG[7];
11383 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11384 REGB1 = TAG_Int(0);
11385 /* ./../lib/standard//collection//array.nit:243 */
11386 fra.me.REG[7] = fra.me.REG[4];
11387 /* ./../lib/standard//collection//array.nit:245 */
11388 REGB2 = TAG_Int(0);
11389 /* ./../lib/standard//kernel.nit:213 */
11390 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11391 /* ./../lib/standard//collection//array.nit:245 */
11392 if (UNTAG_Bool(REGB2)) {
11393 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11394 if (UNTAG_Bool(REGB2)) {
11395 } else {
11396 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11397 }
11398 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11399 /* ./../lib/standard//kernel.nit:212 */
11400 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11401 } else {
11402 /* ./../lib/standard//collection//array.nit:245 */
11403 REGB0 = TAG_Bool(false);
11404 REGB2 = REGB0;
11405 }
11406 if (UNTAG_Bool(REGB2)) {
11407 } else {
11408 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11409 }
11410 /* ./../lib/standard//collection//array.nit:246 */
11411 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11412 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11413 if (UNTAG_Bool(REGB2)) {
11414 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11415 }
11416 /* ./../lib/standard//collection//array.nit:654 */
11417 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11418 /* ./../lib/standard//collection//array.nit:246 */
11419 goto label339;
11420 label339: while(0);
11421 /* ./compiling//compiling_icode.nit:825 */
11422 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11423 if (!once_value_340) {
11424 fra.me.REG[7] = BOX_NativeString("))");
11425 REGB1 = TAG_Int(2);
11426 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11427 once_value_340 = fra.me.REG[7];
11428 register_static_object(&once_value_340);
11429 } else fra.me.REG[7] = once_value_340;
11430 fra.me.REG[7] = fra.me.REG[7];
11431 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11432 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11433 fra.me.REG[5] = fra.me.REG[6];
11434 } else {
11435 /* ./compiling//compiling_icode.nit:826 */
11436 if (!once_value_341) {
11437 if (!once_value_342) {
11438 fra.me.REG[6] = BOX_NativeString("to_i");
11439 REGB1 = TAG_Int(4);
11440 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11441 once_value_342 = fra.me.REG[6];
11442 register_static_object(&once_value_342);
11443 } else fra.me.REG[6] = once_value_342;
11444 fra.me.REG[6] = fra.me.REG[6];
11445 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11446 once_value_341 = fra.me.REG[6];
11447 register_static_object(&once_value_341);
11448 } else fra.me.REG[6] = once_value_341;
11449 fra.me.REG[6] = fra.me.REG[6];
11450 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11451 if (UNTAG_Bool(REGB1)) {
11452 } else {
11453 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11454 REGB1 = REGB2;
11455 }
11456 if (UNTAG_Bool(REGB1)) {
11457 /* ./compiling//compiling_icode.nit:827 */
11458 REGB1 = TAG_Int(3);
11459 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11460 if (!once_value_343) {
11461 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
11462 REGB1 = TAG_Int(19);
11463 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11464 once_value_343 = fra.me.REG[7];
11465 register_static_object(&once_value_343);
11466 } else fra.me.REG[7] = once_value_343;
11467 fra.me.REG[7] = fra.me.REG[7];
11468 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11469 REGB1 = TAG_Int(0);
11470 /* ./../lib/standard//collection//array.nit:243 */
11471 fra.me.REG[7] = fra.me.REG[4];
11472 /* ./../lib/standard//collection//array.nit:245 */
11473 REGB2 = TAG_Int(0);
11474 /* ./../lib/standard//kernel.nit:213 */
11475 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11476 /* ./../lib/standard//collection//array.nit:245 */
11477 if (UNTAG_Bool(REGB2)) {
11478 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11479 if (UNTAG_Bool(REGB2)) {
11480 } else {
11481 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11482 }
11483 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11484 /* ./../lib/standard//kernel.nit:212 */
11485 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11486 } else {
11487 /* ./../lib/standard//collection//array.nit:245 */
11488 REGB0 = TAG_Bool(false);
11489 REGB2 = REGB0;
11490 }
11491 if (UNTAG_Bool(REGB2)) {
11492 } else {
11493 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11494 }
11495 /* ./../lib/standard//collection//array.nit:246 */
11496 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11497 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11498 if (UNTAG_Bool(REGB2)) {
11499 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11500 }
11501 /* ./../lib/standard//collection//array.nit:654 */
11502 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11503 /* ./../lib/standard//collection//array.nit:246 */
11504 goto label344;
11505 label344: while(0);
11506 /* ./compiling//compiling_icode.nit:827 */
11507 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11508 if (!once_value_345) {
11509 fra.me.REG[7] = BOX_NativeString("))");
11510 REGB1 = TAG_Int(2);
11511 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11512 once_value_345 = fra.me.REG[7];
11513 register_static_object(&once_value_345);
11514 } else fra.me.REG[7] = once_value_345;
11515 fra.me.REG[7] = fra.me.REG[7];
11516 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11517 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11518 fra.me.REG[5] = fra.me.REG[6];
11519 } else {
11520 /* ./compiling//compiling_icode.nit:828 */
11521 if (!once_value_346) {
11522 if (!once_value_347) {
11523 fra.me.REG[6] = BOX_NativeString("==");
11524 REGB1 = TAG_Int(2);
11525 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11526 once_value_347 = fra.me.REG[6];
11527 register_static_object(&once_value_347);
11528 } else fra.me.REG[6] = once_value_347;
11529 fra.me.REG[6] = fra.me.REG[6];
11530 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11531 once_value_346 = fra.me.REG[6];
11532 register_static_object(&once_value_346);
11533 } else fra.me.REG[6] = once_value_346;
11534 fra.me.REG[6] = fra.me.REG[6];
11535 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11536 if (UNTAG_Bool(REGB1)) {
11537 } else {
11538 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11539 REGB1 = REGB2;
11540 }
11541 if (UNTAG_Bool(REGB1)) {
11542 /* ./compiling//compiling_icode.nit:829 */
11543 REGB1 = TAG_Int(5);
11544 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11545 if (!once_value_348) {
11546 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11547 REGB1 = TAG_Int(10);
11548 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11549 once_value_348 = fra.me.REG[7];
11550 register_static_object(&once_value_348);
11551 } else fra.me.REG[7] = once_value_348;
11552 fra.me.REG[7] = fra.me.REG[7];
11553 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11554 REGB1 = TAG_Int(0);
11555 /* ./../lib/standard//collection//array.nit:243 */
11556 fra.me.REG[7] = fra.me.REG[4];
11557 /* ./../lib/standard//collection//array.nit:245 */
11558 REGB2 = TAG_Int(0);
11559 /* ./../lib/standard//kernel.nit:213 */
11560 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11561 /* ./../lib/standard//collection//array.nit:245 */
11562 if (UNTAG_Bool(REGB2)) {
11563 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11564 if (UNTAG_Bool(REGB2)) {
11565 } else {
11566 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11567 }
11568 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11569 /* ./../lib/standard//kernel.nit:212 */
11570 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11571 } else {
11572 /* ./../lib/standard//collection//array.nit:245 */
11573 REGB0 = TAG_Bool(false);
11574 REGB2 = REGB0;
11575 }
11576 if (UNTAG_Bool(REGB2)) {
11577 } else {
11578 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11579 }
11580 /* ./../lib/standard//collection//array.nit:246 */
11581 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11582 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11583 if (UNTAG_Bool(REGB2)) {
11584 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11585 }
11586 /* ./../lib/standard//collection//array.nit:654 */
11587 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11588 /* ./../lib/standard//collection//array.nit:246 */
11589 goto label349;
11590 label349: while(0);
11591 /* ./compiling//compiling_icode.nit:829 */
11592 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11593 if (!once_value_350) {
11594 fra.me.REG[7] = BOX_NativeString(")==(");
11595 REGB1 = TAG_Int(4);
11596 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11597 once_value_350 = fra.me.REG[7];
11598 register_static_object(&once_value_350);
11599 } else fra.me.REG[7] = once_value_350;
11600 fra.me.REG[7] = fra.me.REG[7];
11601 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11602 REGB1 = TAG_Int(1);
11603 /* ./../lib/standard//collection//array.nit:243 */
11604 fra.me.REG[7] = fra.me.REG[4];
11605 /* ./../lib/standard//collection//array.nit:245 */
11606 REGB2 = TAG_Int(0);
11607 /* ./../lib/standard//kernel.nit:213 */
11608 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11609 /* ./../lib/standard//collection//array.nit:245 */
11610 if (UNTAG_Bool(REGB2)) {
11611 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11612 if (UNTAG_Bool(REGB2)) {
11613 } else {
11614 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11615 }
11616 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11617 /* ./../lib/standard//kernel.nit:212 */
11618 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11619 } else {
11620 /* ./../lib/standard//collection//array.nit:245 */
11621 REGB0 = TAG_Bool(false);
11622 REGB2 = REGB0;
11623 }
11624 if (UNTAG_Bool(REGB2)) {
11625 } else {
11626 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11627 }
11628 /* ./../lib/standard//collection//array.nit:246 */
11629 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11630 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11631 if (UNTAG_Bool(REGB2)) {
11632 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11633 }
11634 /* ./../lib/standard//collection//array.nit:654 */
11635 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11636 /* ./../lib/standard//collection//array.nit:246 */
11637 goto label351;
11638 label351: while(0);
11639 /* ./compiling//compiling_icode.nit:829 */
11640 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11641 if (!once_value_352) {
11642 fra.me.REG[7] = BOX_NativeString("))");
11643 REGB1 = TAG_Int(2);
11644 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11645 once_value_352 = fra.me.REG[7];
11646 register_static_object(&once_value_352);
11647 } else fra.me.REG[7] = once_value_352;
11648 fra.me.REG[7] = fra.me.REG[7];
11649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11650 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11651 fra.me.REG[5] = fra.me.REG[6];
11652 } else {
11653 /* ./compiling//compiling_icode.nit:830 */
11654 if (!once_value_353) {
11655 if (!once_value_354) {
11656 fra.me.REG[6] = BOX_NativeString("!=");
11657 REGB1 = TAG_Int(2);
11658 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11659 once_value_354 = fra.me.REG[6];
11660 register_static_object(&once_value_354);
11661 } else fra.me.REG[6] = once_value_354;
11662 fra.me.REG[6] = fra.me.REG[6];
11663 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11664 once_value_353 = fra.me.REG[6];
11665 register_static_object(&once_value_353);
11666 } else fra.me.REG[6] = once_value_353;
11667 fra.me.REG[6] = fra.me.REG[6];
11668 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11669 if (UNTAG_Bool(REGB1)) {
11670 } else {
11671 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11672 REGB1 = REGB2;
11673 }
11674 if (UNTAG_Bool(REGB1)) {
11675 /* ./compiling//compiling_icode.nit:831 */
11676 REGB1 = TAG_Int(5);
11677 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11678 if (!once_value_355) {
11679 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11680 REGB1 = TAG_Int(10);
11681 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11682 once_value_355 = fra.me.REG[7];
11683 register_static_object(&once_value_355);
11684 } else fra.me.REG[7] = once_value_355;
11685 fra.me.REG[7] = fra.me.REG[7];
11686 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11687 REGB1 = TAG_Int(0);
11688 /* ./../lib/standard//collection//array.nit:243 */
11689 fra.me.REG[7] = fra.me.REG[4];
11690 /* ./../lib/standard//collection//array.nit:245 */
11691 REGB2 = TAG_Int(0);
11692 /* ./../lib/standard//kernel.nit:213 */
11693 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11694 /* ./../lib/standard//collection//array.nit:245 */
11695 if (UNTAG_Bool(REGB2)) {
11696 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11697 if (UNTAG_Bool(REGB2)) {
11698 } else {
11699 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11700 }
11701 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11702 /* ./../lib/standard//kernel.nit:212 */
11703 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11704 } else {
11705 /* ./../lib/standard//collection//array.nit:245 */
11706 REGB0 = TAG_Bool(false);
11707 REGB2 = REGB0;
11708 }
11709 if (UNTAG_Bool(REGB2)) {
11710 } else {
11711 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11712 }
11713 /* ./../lib/standard//collection//array.nit:246 */
11714 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11715 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11716 if (UNTAG_Bool(REGB2)) {
11717 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11718 }
11719 /* ./../lib/standard//collection//array.nit:654 */
11720 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11721 /* ./../lib/standard//collection//array.nit:246 */
11722 goto label356;
11723 label356: while(0);
11724 /* ./compiling//compiling_icode.nit:831 */
11725 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11726 if (!once_value_357) {
11727 fra.me.REG[7] = BOX_NativeString(")!=(");
11728 REGB1 = TAG_Int(4);
11729 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11730 once_value_357 = fra.me.REG[7];
11731 register_static_object(&once_value_357);
11732 } else fra.me.REG[7] = once_value_357;
11733 fra.me.REG[7] = fra.me.REG[7];
11734 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11735 REGB1 = TAG_Int(1);
11736 /* ./../lib/standard//collection//array.nit:243 */
11737 fra.me.REG[7] = fra.me.REG[4];
11738 /* ./../lib/standard//collection//array.nit:245 */
11739 REGB2 = TAG_Int(0);
11740 /* ./../lib/standard//kernel.nit:213 */
11741 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11742 /* ./../lib/standard//collection//array.nit:245 */
11743 if (UNTAG_Bool(REGB2)) {
11744 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11745 if (UNTAG_Bool(REGB2)) {
11746 } else {
11747 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11748 }
11749 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11750 /* ./../lib/standard//kernel.nit:212 */
11751 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11752 } else {
11753 /* ./../lib/standard//collection//array.nit:245 */
11754 REGB0 = TAG_Bool(false);
11755 REGB2 = REGB0;
11756 }
11757 if (UNTAG_Bool(REGB2)) {
11758 } else {
11759 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11760 }
11761 /* ./../lib/standard//collection//array.nit:246 */
11762 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11763 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11764 if (UNTAG_Bool(REGB2)) {
11765 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11766 }
11767 /* ./../lib/standard//collection//array.nit:654 */
11768 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11769 /* ./../lib/standard//collection//array.nit:246 */
11770 goto label358;
11771 label358: while(0);
11772 /* ./compiling//compiling_icode.nit:831 */
11773 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11774 if (!once_value_359) {
11775 fra.me.REG[7] = BOX_NativeString("))");
11776 REGB1 = TAG_Int(2);
11777 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11778 once_value_359 = fra.me.REG[7];
11779 register_static_object(&once_value_359);
11780 } else fra.me.REG[7] = once_value_359;
11781 fra.me.REG[7] = fra.me.REG[7];
11782 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11783 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11784 fra.me.REG[5] = fra.me.REG[6];
11785 }
11786 }
11787 }
11788 }
11789 }
11790 }
11791 }
11792 } else {
11793 /* ./compiling//compiling_icode.nit:833 */
11794 if (!once_value_360) {
11795 if (!once_value_361) {
11796 fra.me.REG[6] = BOX_NativeString("NativeArray");
11797 REGB1 = TAG_Int(11);
11798 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11799 once_value_361 = fra.me.REG[6];
11800 register_static_object(&once_value_361);
11801 } else fra.me.REG[6] = once_value_361;
11802 fra.me.REG[6] = fra.me.REG[6];
11803 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11804 once_value_360 = fra.me.REG[6];
11805 register_static_object(&once_value_360);
11806 } else fra.me.REG[6] = once_value_360;
11807 fra.me.REG[6] = fra.me.REG[6];
11808 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
11809 if (UNTAG_Bool(REGB1)) {
11810 } else {
11811 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
11812 REGB1 = REGB2;
11813 }
11814 if (UNTAG_Bool(REGB1)) {
11815 /* ./compiling//compiling_icode.nit:834 */
11816 if (!once_value_362) {
11817 if (!once_value_363) {
11818 fra.me.REG[6] = BOX_NativeString("object_id");
11819 REGB1 = TAG_Int(9);
11820 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11821 once_value_363 = fra.me.REG[6];
11822 register_static_object(&once_value_363);
11823 } else fra.me.REG[6] = once_value_363;
11824 fra.me.REG[6] = fra.me.REG[6];
11825 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11826 once_value_362 = fra.me.REG[6];
11827 register_static_object(&once_value_362);
11828 } else fra.me.REG[6] = once_value_362;
11829 fra.me.REG[6] = fra.me.REG[6];
11830 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11831 if (UNTAG_Bool(REGB1)) {
11832 } else {
11833 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11834 REGB1 = REGB2;
11835 }
11836 if (UNTAG_Bool(REGB1)) {
11837 /* ./compiling//compiling_icode.nit:835 */
11838 REGB1 = TAG_Int(3);
11839 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11840 if (!once_value_364) {
11841 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
11842 REGB1 = TAG_Int(26);
11843 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11844 once_value_364 = fra.me.REG[7];
11845 register_static_object(&once_value_364);
11846 } else fra.me.REG[7] = once_value_364;
11847 fra.me.REG[7] = fra.me.REG[7];
11848 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11849 REGB1 = TAG_Int(0);
11850 /* ./../lib/standard//collection//array.nit:243 */
11851 fra.me.REG[7] = fra.me.REG[4];
11852 /* ./../lib/standard//collection//array.nit:245 */
11853 REGB2 = TAG_Int(0);
11854 /* ./../lib/standard//kernel.nit:213 */
11855 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11856 /* ./../lib/standard//collection//array.nit:245 */
11857 if (UNTAG_Bool(REGB2)) {
11858 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11859 if (UNTAG_Bool(REGB2)) {
11860 } else {
11861 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11862 }
11863 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11864 /* ./../lib/standard//kernel.nit:212 */
11865 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11866 } else {
11867 /* ./../lib/standard//collection//array.nit:245 */
11868 REGB0 = TAG_Bool(false);
11869 REGB2 = REGB0;
11870 }
11871 if (UNTAG_Bool(REGB2)) {
11872 } else {
11873 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11874 }
11875 /* ./../lib/standard//collection//array.nit:246 */
11876 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11877 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11878 if (UNTAG_Bool(REGB2)) {
11879 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11880 }
11881 /* ./../lib/standard//collection//array.nit:654 */
11882 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11883 /* ./../lib/standard//collection//array.nit:246 */
11884 goto label365;
11885 label365: while(0);
11886 /* ./compiling//compiling_icode.nit:835 */
11887 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11888 if (!once_value_366) {
11889 fra.me.REG[7] = BOX_NativeString(")->object_id)");
11890 REGB1 = TAG_Int(13);
11891 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11892 once_value_366 = fra.me.REG[7];
11893 register_static_object(&once_value_366);
11894 } else fra.me.REG[7] = once_value_366;
11895 fra.me.REG[7] = fra.me.REG[7];
11896 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11897 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11898 fra.me.REG[5] = fra.me.REG[6];
11899 } else {
11900 /* ./compiling//compiling_icode.nit:836 */
11901 if (!once_value_367) {
11902 if (!once_value_368) {
11903 fra.me.REG[6] = BOX_NativeString("[]");
11904 REGB1 = TAG_Int(2);
11905 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11906 once_value_368 = fra.me.REG[6];
11907 register_static_object(&once_value_368);
11908 } else fra.me.REG[6] = once_value_368;
11909 fra.me.REG[6] = fra.me.REG[6];
11910 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11911 once_value_367 = fra.me.REG[6];
11912 register_static_object(&once_value_367);
11913 } else fra.me.REG[6] = once_value_367;
11914 fra.me.REG[6] = fra.me.REG[6];
11915 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11916 if (UNTAG_Bool(REGB1)) {
11917 } else {
11918 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11919 REGB1 = REGB2;
11920 }
11921 if (UNTAG_Bool(REGB1)) {
11922 /* ./compiling//compiling_icode.nit:837 */
11923 REGB1 = TAG_Int(5);
11924 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11925 if (!once_value_369) {
11926 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
11927 REGB1 = TAG_Int(18);
11928 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11929 once_value_369 = fra.me.REG[7];
11930 register_static_object(&once_value_369);
11931 } else fra.me.REG[7] = once_value_369;
11932 fra.me.REG[7] = fra.me.REG[7];
11933 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11934 REGB1 = TAG_Int(0);
11935 /* ./../lib/standard//collection//array.nit:243 */
11936 fra.me.REG[7] = fra.me.REG[4];
11937 /* ./../lib/standard//collection//array.nit:245 */
11938 REGB2 = TAG_Int(0);
11939 /* ./../lib/standard//kernel.nit:213 */
11940 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11941 /* ./../lib/standard//collection//array.nit:245 */
11942 if (UNTAG_Bool(REGB2)) {
11943 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11944 if (UNTAG_Bool(REGB2)) {
11945 } else {
11946 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11947 }
11948 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11949 /* ./../lib/standard//kernel.nit:212 */
11950 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11951 } else {
11952 /* ./../lib/standard//collection//array.nit:245 */
11953 REGB0 = TAG_Bool(false);
11954 REGB2 = REGB0;
11955 }
11956 if (UNTAG_Bool(REGB2)) {
11957 } else {
11958 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11959 }
11960 /* ./../lib/standard//collection//array.nit:246 */
11961 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11962 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11963 if (UNTAG_Bool(REGB2)) {
11964 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11965 }
11966 /* ./../lib/standard//collection//array.nit:654 */
11967 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11968 /* ./../lib/standard//collection//array.nit:246 */
11969 goto label370;
11970 label370: while(0);
11971 /* ./compiling//compiling_icode.nit:837 */
11972 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11973 if (!once_value_371) {
11974 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
11975 REGB1 = TAG_Int(17);
11976 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11977 once_value_371 = fra.me.REG[7];
11978 register_static_object(&once_value_371);
11979 } else fra.me.REG[7] = once_value_371;
11980 fra.me.REG[7] = fra.me.REG[7];
11981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11982 REGB1 = TAG_Int(1);
11983 /* ./../lib/standard//collection//array.nit:243 */
11984 fra.me.REG[7] = fra.me.REG[4];
11985 /* ./../lib/standard//collection//array.nit:245 */
11986 REGB2 = TAG_Int(0);
11987 /* ./../lib/standard//kernel.nit:213 */
11988 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11989 /* ./../lib/standard//collection//array.nit:245 */
11990 if (UNTAG_Bool(REGB2)) {
11991 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11992 if (UNTAG_Bool(REGB2)) {
11993 } else {
11994 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11995 }
11996 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11997 /* ./../lib/standard//kernel.nit:212 */
11998 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11999 } else {
12000 /* ./../lib/standard//collection//array.nit:245 */
12001 REGB0 = TAG_Bool(false);
12002 REGB2 = REGB0;
12003 }
12004 if (UNTAG_Bool(REGB2)) {
12005 } else {
12006 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12007 }
12008 /* ./../lib/standard//collection//array.nit:246 */
12009 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12010 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12011 if (UNTAG_Bool(REGB2)) {
12012 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12013 }
12014 /* ./../lib/standard//collection//array.nit:654 */
12015 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12016 /* ./../lib/standard//collection//array.nit:246 */
12017 goto label372;
12018 label372: while(0);
12019 /* ./compiling//compiling_icode.nit:837 */
12020 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12021 if (!once_value_373) {
12022 fra.me.REG[7] = BOX_NativeString(")]");
12023 REGB1 = TAG_Int(2);
12024 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12025 once_value_373 = fra.me.REG[7];
12026 register_static_object(&once_value_373);
12027 } else fra.me.REG[7] = once_value_373;
12028 fra.me.REG[7] = fra.me.REG[7];
12029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12030 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12031 fra.me.REG[5] = fra.me.REG[6];
12032 } else {
12033 /* ./compiling//compiling_icode.nit:838 */
12034 if (!once_value_374) {
12035 if (!once_value_375) {
12036 fra.me.REG[6] = BOX_NativeString("[]=");
12037 REGB1 = TAG_Int(3);
12038 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12039 once_value_375 = fra.me.REG[6];
12040 register_static_object(&once_value_375);
12041 } else fra.me.REG[6] = once_value_375;
12042 fra.me.REG[6] = fra.me.REG[6];
12043 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12044 once_value_374 = fra.me.REG[6];
12045 register_static_object(&once_value_374);
12046 } else fra.me.REG[6] = once_value_374;
12047 fra.me.REG[6] = fra.me.REG[6];
12048 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12049 if (UNTAG_Bool(REGB1)) {
12050 } else {
12051 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12052 REGB1 = REGB2;
12053 }
12054 if (UNTAG_Bool(REGB1)) {
12055 /* ./compiling//compiling_icode.nit:839 */
12056 REGB1 = TAG_Int(7);
12057 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12058 if (!once_value_376) {
12059 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
12060 REGB1 = TAG_Int(18);
12061 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12062 once_value_376 = fra.me.REG[7];
12063 register_static_object(&once_value_376);
12064 } else fra.me.REG[7] = once_value_376;
12065 fra.me.REG[7] = fra.me.REG[7];
12066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12067 REGB1 = TAG_Int(0);
12068 /* ./../lib/standard//collection//array.nit:243 */
12069 fra.me.REG[7] = fra.me.REG[4];
12070 /* ./../lib/standard//collection//array.nit:245 */
12071 REGB2 = TAG_Int(0);
12072 /* ./../lib/standard//kernel.nit:213 */
12073 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12074 /* ./../lib/standard//collection//array.nit:245 */
12075 if (UNTAG_Bool(REGB2)) {
12076 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12077 if (UNTAG_Bool(REGB2)) {
12078 } else {
12079 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12080 }
12081 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12082 /* ./../lib/standard//kernel.nit:212 */
12083 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12084 } else {
12085 /* ./../lib/standard//collection//array.nit:245 */
12086 REGB0 = TAG_Bool(false);
12087 REGB2 = REGB0;
12088 }
12089 if (UNTAG_Bool(REGB2)) {
12090 } else {
12091 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12092 }
12093 /* ./../lib/standard//collection//array.nit:246 */
12094 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12095 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12096 if (UNTAG_Bool(REGB2)) {
12097 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12098 }
12099 /* ./../lib/standard//collection//array.nit:654 */
12100 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12101 /* ./../lib/standard//collection//array.nit:246 */
12102 goto label377;
12103 label377: while(0);
12104 /* ./compiling//compiling_icode.nit:839 */
12105 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12106 if (!once_value_378) {
12107 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
12108 REGB1 = TAG_Int(17);
12109 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12110 once_value_378 = fra.me.REG[7];
12111 register_static_object(&once_value_378);
12112 } else fra.me.REG[7] = once_value_378;
12113 fra.me.REG[7] = fra.me.REG[7];
12114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12115 REGB1 = TAG_Int(1);
12116 /* ./../lib/standard//collection//array.nit:243 */
12117 fra.me.REG[7] = fra.me.REG[4];
12118 /* ./../lib/standard//collection//array.nit:245 */
12119 REGB2 = TAG_Int(0);
12120 /* ./../lib/standard//kernel.nit:213 */
12121 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12122 /* ./../lib/standard//collection//array.nit:245 */
12123 if (UNTAG_Bool(REGB2)) {
12124 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12125 if (UNTAG_Bool(REGB2)) {
12126 } else {
12127 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12128 }
12129 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12130 /* ./../lib/standard//kernel.nit:212 */
12131 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12132 } else {
12133 /* ./../lib/standard//collection//array.nit:245 */
12134 REGB0 = TAG_Bool(false);
12135 REGB2 = REGB0;
12136 }
12137 if (UNTAG_Bool(REGB2)) {
12138 } else {
12139 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12140 }
12141 /* ./../lib/standard//collection//array.nit:246 */
12142 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12143 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12144 if (UNTAG_Bool(REGB2)) {
12145 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12146 }
12147 /* ./../lib/standard//collection//array.nit:654 */
12148 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12149 /* ./../lib/standard//collection//array.nit:246 */
12150 goto label379;
12151 label379: while(0);
12152 /* ./compiling//compiling_icode.nit:839 */
12153 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12154 if (!once_value_380) {
12155 fra.me.REG[7] = BOX_NativeString(")]=");
12156 REGB1 = TAG_Int(3);
12157 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12158 once_value_380 = fra.me.REG[7];
12159 register_static_object(&once_value_380);
12160 } else fra.me.REG[7] = once_value_380;
12161 fra.me.REG[7] = fra.me.REG[7];
12162 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12163 REGB1 = TAG_Int(2);
12164 /* ./../lib/standard//collection//array.nit:243 */
12165 fra.me.REG[7] = fra.me.REG[4];
12166 /* ./../lib/standard//collection//array.nit:245 */
12167 REGB2 = TAG_Int(0);
12168 /* ./../lib/standard//kernel.nit:213 */
12169 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12170 /* ./../lib/standard//collection//array.nit:245 */
12171 if (UNTAG_Bool(REGB2)) {
12172 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12173 if (UNTAG_Bool(REGB2)) {
12174 } else {
12175 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12176 }
12177 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12178 /* ./../lib/standard//kernel.nit:212 */
12179 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12180 } else {
12181 /* ./../lib/standard//collection//array.nit:245 */
12182 REGB0 = TAG_Bool(false);
12183 REGB2 = REGB0;
12184 }
12185 if (UNTAG_Bool(REGB2)) {
12186 } else {
12187 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12188 }
12189 /* ./../lib/standard//collection//array.nit:246 */
12190 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12191 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12192 if (UNTAG_Bool(REGB2)) {
12193 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12194 }
12195 /* ./../lib/standard//collection//array.nit:654 */
12196 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12197 /* ./../lib/standard//collection//array.nit:246 */
12198 goto label381;
12199 label381: while(0);
12200 /* ./compiling//compiling_icode.nit:839 */
12201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12202 if (!once_value_382) {
12203 fra.me.REG[7] = BOX_NativeString("");
12204 REGB1 = TAG_Int(0);
12205 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12206 once_value_382 = fra.me.REG[7];
12207 register_static_object(&once_value_382);
12208 } else fra.me.REG[7] = once_value_382;
12209 fra.me.REG[7] = fra.me.REG[7];
12210 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12211 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12212 fra.me.REG[5] = fra.me.REG[6];
12213 } else {
12214 /* ./compiling//compiling_icode.nit:840 */
12215 if (!once_value_383) {
12216 if (!once_value_384) {
12217 fra.me.REG[6] = BOX_NativeString("copy_to");
12218 REGB1 = TAG_Int(7);
12219 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12220 once_value_384 = fra.me.REG[6];
12221 register_static_object(&once_value_384);
12222 } else fra.me.REG[6] = once_value_384;
12223 fra.me.REG[6] = fra.me.REG[6];
12224 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12225 once_value_383 = fra.me.REG[6];
12226 register_static_object(&once_value_383);
12227 } else fra.me.REG[6] = once_value_383;
12228 fra.me.REG[6] = fra.me.REG[6];
12229 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12230 if (UNTAG_Bool(REGB1)) {
12231 } else {
12232 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12233 REGB1 = REGB2;
12234 }
12235 if (UNTAG_Bool(REGB1)) {
12236 /* ./compiling//compiling_icode.nit:841 */
12237 REGB1 = TAG_Int(7);
12238 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12239 if (!once_value_385) {
12240 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
12241 REGB1 = TAG_Int(32);
12242 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12243 once_value_385 = fra.me.REG[7];
12244 register_static_object(&once_value_385);
12245 } else fra.me.REG[7] = once_value_385;
12246 fra.me.REG[7] = fra.me.REG[7];
12247 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12248 REGB1 = TAG_Int(1);
12249 /* ./../lib/standard//collection//array.nit:243 */
12250 fra.me.REG[7] = fra.me.REG[4];
12251 /* ./../lib/standard//collection//array.nit:245 */
12252 REGB2 = TAG_Int(0);
12253 /* ./../lib/standard//kernel.nit:213 */
12254 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12255 /* ./../lib/standard//collection//array.nit:245 */
12256 if (UNTAG_Bool(REGB2)) {
12257 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12258 if (UNTAG_Bool(REGB2)) {
12259 } else {
12260 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12261 }
12262 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12263 /* ./../lib/standard//kernel.nit:212 */
12264 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12265 } else {
12266 /* ./../lib/standard//collection//array.nit:245 */
12267 REGB0 = TAG_Bool(false);
12268 REGB2 = REGB0;
12269 }
12270 if (UNTAG_Bool(REGB2)) {
12271 } else {
12272 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12273 }
12274 /* ./../lib/standard//collection//array.nit:246 */
12275 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12276 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12277 if (UNTAG_Bool(REGB2)) {
12278 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12279 }
12280 /* ./../lib/standard//collection//array.nit:654 */
12281 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12282 /* ./../lib/standard//collection//array.nit:246 */
12283 goto label386;
12284 label386: while(0);
12285 /* ./compiling//compiling_icode.nit:841 */
12286 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12287 if (!once_value_387) {
12288 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
12289 REGB1 = TAG_Int(26);
12290 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12291 once_value_387 = fra.me.REG[7];
12292 register_static_object(&once_value_387);
12293 } else fra.me.REG[7] = once_value_387;
12294 fra.me.REG[7] = fra.me.REG[7];
12295 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12296 REGB1 = TAG_Int(0);
12297 /* ./../lib/standard//collection//array.nit:243 */
12298 fra.me.REG[7] = fra.me.REG[4];
12299 /* ./../lib/standard//collection//array.nit:245 */
12300 REGB2 = TAG_Int(0);
12301 /* ./../lib/standard//kernel.nit:213 */
12302 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12303 /* ./../lib/standard//collection//array.nit:245 */
12304 if (UNTAG_Bool(REGB2)) {
12305 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12306 if (UNTAG_Bool(REGB2)) {
12307 } else {
12308 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12309 }
12310 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12311 /* ./../lib/standard//kernel.nit:212 */
12312 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12313 } else {
12314 /* ./../lib/standard//collection//array.nit:245 */
12315 REGB0 = TAG_Bool(false);
12316 REGB2 = REGB0;
12317 }
12318 if (UNTAG_Bool(REGB2)) {
12319 } else {
12320 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12321 }
12322 /* ./../lib/standard//collection//array.nit:246 */
12323 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12324 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12325 if (UNTAG_Bool(REGB2)) {
12326 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12327 }
12328 /* ./../lib/standard//collection//array.nit:654 */
12329 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12330 /* ./../lib/standard//collection//array.nit:246 */
12331 goto label388;
12332 label388: while(0);
12333 /* ./compiling//compiling_icode.nit:841 */
12334 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12335 if (!once_value_389) {
12336 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
12337 REGB1 = TAG_Int(18);
12338 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12339 once_value_389 = fra.me.REG[7];
12340 register_static_object(&once_value_389);
12341 } else fra.me.REG[7] = once_value_389;
12342 fra.me.REG[7] = fra.me.REG[7];
12343 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12344 REGB1 = TAG_Int(2);
12345 /* ./../lib/standard//collection//array.nit:243 */
12346 fra.me.REG[7] = fra.me.REG[4];
12347 /* ./../lib/standard//collection//array.nit:245 */
12348 REGB2 = TAG_Int(0);
12349 /* ./../lib/standard//kernel.nit:213 */
12350 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12351 /* ./../lib/standard//collection//array.nit:245 */
12352 if (UNTAG_Bool(REGB2)) {
12353 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12354 if (UNTAG_Bool(REGB2)) {
12355 } else {
12356 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12357 }
12358 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12359 /* ./../lib/standard//kernel.nit:212 */
12360 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12361 } else {
12362 /* ./../lib/standard//collection//array.nit:245 */
12363 REGB0 = TAG_Bool(false);
12364 REGB2 = REGB0;
12365 }
12366 if (UNTAG_Bool(REGB2)) {
12367 } else {
12368 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12369 }
12370 /* ./../lib/standard//collection//array.nit:246 */
12371 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12372 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12373 if (UNTAG_Bool(REGB2)) {
12374 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12375 }
12376 /* ./../lib/standard//collection//array.nit:654 */
12377 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12378 /* ./../lib/standard//collection//array.nit:246 */
12379 goto label390;
12380 label390: while(0);
12381 /* ./compiling//compiling_icode.nit:841 */
12382 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12383 if (!once_value_391) {
12384 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
12385 REGB1 = TAG_Int(16);
12386 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12387 once_value_391 = fra.me.REG[7];
12388 register_static_object(&once_value_391);
12389 } else fra.me.REG[7] = once_value_391;
12390 fra.me.REG[7] = fra.me.REG[7];
12391 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12392 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12393 fra.me.REG[5] = fra.me.REG[6];
12394 }
12395 }
12396 }
12397 }
12398 } else {
12399 /* ./compiling//compiling_icode.nit:843 */
12400 if (!once_value_392) {
12401 if (!once_value_393) {
12402 fra.me.REG[6] = BOX_NativeString("NativeString");
12403 REGB1 = TAG_Int(12);
12404 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12405 once_value_393 = fra.me.REG[6];
12406 register_static_object(&once_value_393);
12407 } else fra.me.REG[6] = once_value_393;
12408 fra.me.REG[6] = fra.me.REG[6];
12409 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12410 once_value_392 = fra.me.REG[6];
12411 register_static_object(&once_value_392);
12412 } else fra.me.REG[6] = once_value_392;
12413 fra.me.REG[6] = fra.me.REG[6];
12414 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12415 if (UNTAG_Bool(REGB1)) {
12416 } else {
12417 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12418 REGB1 = REGB2;
12419 }
12420 if (UNTAG_Bool(REGB1)) {
12421 /* ./compiling//compiling_icode.nit:844 */
12422 if (!once_value_394) {
12423 if (!once_value_395) {
12424 fra.me.REG[6] = BOX_NativeString("object_id");
12425 REGB1 = TAG_Int(9);
12426 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12427 once_value_395 = fra.me.REG[6];
12428 register_static_object(&once_value_395);
12429 } else fra.me.REG[6] = once_value_395;
12430 fra.me.REG[6] = fra.me.REG[6];
12431 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12432 once_value_394 = fra.me.REG[6];
12433 register_static_object(&once_value_394);
12434 } else fra.me.REG[6] = once_value_394;
12435 fra.me.REG[6] = fra.me.REG[6];
12436 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12437 if (UNTAG_Bool(REGB1)) {
12438 } else {
12439 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12440 REGB1 = REGB2;
12441 }
12442 if (UNTAG_Bool(REGB1)) {
12443 /* ./compiling//compiling_icode.nit:845 */
12444 REGB1 = TAG_Int(3);
12445 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12446 if (!once_value_396) {
12447 fra.me.REG[2] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
12448 REGB1 = TAG_Int(27);
12449 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12450 once_value_396 = fra.me.REG[2];
12451 register_static_object(&once_value_396);
12452 } else fra.me.REG[2] = once_value_396;
12453 fra.me.REG[2] = fra.me.REG[2];
12454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12455 REGB1 = TAG_Int(0);
12456 /* ./../lib/standard//collection//array.nit:243 */
12457 fra.me.REG[2] = fra.me.REG[4];
12458 /* ./../lib/standard//collection//array.nit:245 */
12459 REGB2 = TAG_Int(0);
12460 /* ./../lib/standard//kernel.nit:213 */
12461 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12462 /* ./../lib/standard//collection//array.nit:245 */
12463 if (UNTAG_Bool(REGB2)) {
12464 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12465 if (UNTAG_Bool(REGB2)) {
12466 } else {
12467 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12468 }
12469 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12470 /* ./../lib/standard//kernel.nit:212 */
12471 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12472 } else {
12473 /* ./../lib/standard//collection//array.nit:245 */
12474 REGB0 = TAG_Bool(false);
12475 REGB2 = REGB0;
12476 }
12477 if (UNTAG_Bool(REGB2)) {
12478 } else {
12479 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12480 }
12481 /* ./../lib/standard//collection//array.nit:246 */
12482 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12483 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12484 if (UNTAG_Bool(REGB2)) {
12485 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12486 }
12487 /* ./../lib/standard//collection//array.nit:654 */
12488 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12489 /* ./../lib/standard//collection//array.nit:246 */
12490 goto label397;
12491 label397: while(0);
12492 /* ./compiling//compiling_icode.nit:845 */
12493 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12494 if (!once_value_398) {
12495 fra.me.REG[2] = BOX_NativeString("))");
12496 REGB1 = TAG_Int(2);
12497 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12498 once_value_398 = fra.me.REG[2];
12499 register_static_object(&once_value_398);
12500 } else fra.me.REG[2] = once_value_398;
12501 fra.me.REG[2] = fra.me.REG[2];
12502 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12503 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12504 fra.me.REG[5] = fra.me.REG[6];
12505 } else {
12506 /* ./compiling//compiling_icode.nit:846 */
12507 if (!once_value_399) {
12508 if (!once_value_400) {
12509 fra.me.REG[6] = BOX_NativeString("atoi");
12510 REGB1 = TAG_Int(4);
12511 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12512 once_value_400 = fra.me.REG[6];
12513 register_static_object(&once_value_400);
12514 } else fra.me.REG[6] = once_value_400;
12515 fra.me.REG[6] = fra.me.REG[6];
12516 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12517 once_value_399 = fra.me.REG[6];
12518 register_static_object(&once_value_399);
12519 } else fra.me.REG[6] = once_value_399;
12520 fra.me.REG[6] = fra.me.REG[6];
12521 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12522 if (UNTAG_Bool(REGB1)) {
12523 } else {
12524 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12525 REGB1 = REGB2;
12526 }
12527 if (UNTAG_Bool(REGB1)) {
12528 /* ./compiling//compiling_icode.nit:847 */
12529 REGB1 = TAG_Int(3);
12530 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12531 if (!once_value_401) {
12532 fra.me.REG[2] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
12533 REGB1 = TAG_Int(32);
12534 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12535 once_value_401 = fra.me.REG[2];
12536 register_static_object(&once_value_401);
12537 } else fra.me.REG[2] = once_value_401;
12538 fra.me.REG[2] = fra.me.REG[2];
12539 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12540 REGB1 = TAG_Int(0);
12541 /* ./../lib/standard//collection//array.nit:243 */
12542 fra.me.REG[2] = fra.me.REG[4];
12543 /* ./../lib/standard//collection//array.nit:245 */
12544 REGB2 = TAG_Int(0);
12545 /* ./../lib/standard//kernel.nit:213 */
12546 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12547 /* ./../lib/standard//collection//array.nit:245 */
12548 if (UNTAG_Bool(REGB2)) {
12549 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12550 if (UNTAG_Bool(REGB2)) {
12551 } else {
12552 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12553 }
12554 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12555 /* ./../lib/standard//kernel.nit:212 */
12556 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12557 } else {
12558 /* ./../lib/standard//collection//array.nit:245 */
12559 REGB0 = TAG_Bool(false);
12560 REGB2 = REGB0;
12561 }
12562 if (UNTAG_Bool(REGB2)) {
12563 } else {
12564 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12565 }
12566 /* ./../lib/standard//collection//array.nit:246 */
12567 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12568 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12569 if (UNTAG_Bool(REGB2)) {
12570 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12571 }
12572 /* ./../lib/standard//collection//array.nit:654 */
12573 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12574 /* ./../lib/standard//collection//array.nit:246 */
12575 goto label402;
12576 label402: while(0);
12577 /* ./compiling//compiling_icode.nit:847 */
12578 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12579 if (!once_value_403) {
12580 fra.me.REG[2] = BOX_NativeString(")))");
12581 REGB1 = TAG_Int(3);
12582 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12583 once_value_403 = fra.me.REG[2];
12584 register_static_object(&once_value_403);
12585 } else fra.me.REG[2] = once_value_403;
12586 fra.me.REG[2] = fra.me.REG[2];
12587 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12588 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12589 fra.me.REG[5] = fra.me.REG[6];
12590 } else {
12591 /* ./compiling//compiling_icode.nit:848 */
12592 if (!once_value_404) {
12593 if (!once_value_405) {
12594 fra.me.REG[6] = BOX_NativeString("[]");
12595 REGB1 = TAG_Int(2);
12596 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12597 once_value_405 = fra.me.REG[6];
12598 register_static_object(&once_value_405);
12599 } else fra.me.REG[6] = once_value_405;
12600 fra.me.REG[6] = fra.me.REG[6];
12601 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12602 once_value_404 = fra.me.REG[6];
12603 register_static_object(&once_value_404);
12604 } else fra.me.REG[6] = once_value_404;
12605 fra.me.REG[6] = fra.me.REG[6];
12606 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12607 if (UNTAG_Bool(REGB1)) {
12608 } else {
12609 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12610 REGB1 = REGB2;
12611 }
12612 if (UNTAG_Bool(REGB1)) {
12613 /* ./compiling//compiling_icode.nit:849 */
12614 REGB1 = TAG_Int(5);
12615 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12616 if (!once_value_406) {
12617 fra.me.REG[2] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
12618 REGB1 = TAG_Int(28);
12619 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12620 once_value_406 = fra.me.REG[2];
12621 register_static_object(&once_value_406);
12622 } else fra.me.REG[2] = once_value_406;
12623 fra.me.REG[2] = fra.me.REG[2];
12624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12625 REGB1 = TAG_Int(0);
12626 /* ./../lib/standard//collection//array.nit:243 */
12627 fra.me.REG[2] = fra.me.REG[4];
12628 /* ./../lib/standard//collection//array.nit:245 */
12629 REGB2 = TAG_Int(0);
12630 /* ./../lib/standard//kernel.nit:213 */
12631 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12632 /* ./../lib/standard//collection//array.nit:245 */
12633 if (UNTAG_Bool(REGB2)) {
12634 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12635 if (UNTAG_Bool(REGB2)) {
12636 } else {
12637 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12638 }
12639 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12640 /* ./../lib/standard//kernel.nit:212 */
12641 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12642 } else {
12643 /* ./../lib/standard//collection//array.nit:245 */
12644 REGB0 = TAG_Bool(false);
12645 REGB2 = REGB0;
12646 }
12647 if (UNTAG_Bool(REGB2)) {
12648 } else {
12649 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12650 }
12651 /* ./../lib/standard//collection//array.nit:246 */
12652 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12653 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12654 if (UNTAG_Bool(REGB2)) {
12655 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12656 }
12657 /* ./../lib/standard//collection//array.nit:654 */
12658 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12659 /* ./../lib/standard//collection//array.nit:246 */
12660 goto label407;
12661 label407: while(0);
12662 /* ./compiling//compiling_icode.nit:849 */
12663 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12664 if (!once_value_408) {
12665 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
12666 REGB1 = TAG_Int(12);
12667 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12668 once_value_408 = fra.me.REG[2];
12669 register_static_object(&once_value_408);
12670 } else fra.me.REG[2] = once_value_408;
12671 fra.me.REG[2] = fra.me.REG[2];
12672 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12673 REGB1 = TAG_Int(1);
12674 /* ./../lib/standard//collection//array.nit:243 */
12675 fra.me.REG[2] = fra.me.REG[4];
12676 /* ./../lib/standard//collection//array.nit:245 */
12677 REGB2 = TAG_Int(0);
12678 /* ./../lib/standard//kernel.nit:213 */
12679 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12680 /* ./../lib/standard//collection//array.nit:245 */
12681 if (UNTAG_Bool(REGB2)) {
12682 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12683 if (UNTAG_Bool(REGB2)) {
12684 } else {
12685 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12686 }
12687 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12688 /* ./../lib/standard//kernel.nit:212 */
12689 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12690 } else {
12691 /* ./../lib/standard//collection//array.nit:245 */
12692 REGB0 = TAG_Bool(false);
12693 REGB2 = REGB0;
12694 }
12695 if (UNTAG_Bool(REGB2)) {
12696 } else {
12697 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12698 }
12699 /* ./../lib/standard//collection//array.nit:246 */
12700 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12701 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12702 if (UNTAG_Bool(REGB2)) {
12703 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12704 }
12705 /* ./../lib/standard//collection//array.nit:654 */
12706 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12707 /* ./../lib/standard//collection//array.nit:246 */
12708 goto label409;
12709 label409: while(0);
12710 /* ./compiling//compiling_icode.nit:849 */
12711 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12712 if (!once_value_410) {
12713 fra.me.REG[2] = BOX_NativeString(")])");
12714 REGB1 = TAG_Int(3);
12715 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12716 once_value_410 = fra.me.REG[2];
12717 register_static_object(&once_value_410);
12718 } else fra.me.REG[2] = once_value_410;
12719 fra.me.REG[2] = fra.me.REG[2];
12720 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12721 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12722 fra.me.REG[5] = fra.me.REG[6];
12723 } else {
12724 /* ./compiling//compiling_icode.nit:850 */
12725 if (!once_value_411) {
12726 if (!once_value_412) {
12727 fra.me.REG[6] = BOX_NativeString("[]=");
12728 REGB1 = TAG_Int(3);
12729 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12730 once_value_412 = fra.me.REG[6];
12731 register_static_object(&once_value_412);
12732 } else fra.me.REG[6] = once_value_412;
12733 fra.me.REG[6] = fra.me.REG[6];
12734 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12735 once_value_411 = fra.me.REG[6];
12736 register_static_object(&once_value_411);
12737 } else fra.me.REG[6] = once_value_411;
12738 fra.me.REG[6] = fra.me.REG[6];
12739 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12740 if (UNTAG_Bool(REGB1)) {
12741 } else {
12742 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12743 REGB1 = REGB2;
12744 }
12745 if (UNTAG_Bool(REGB1)) {
12746 /* ./compiling//compiling_icode.nit:851 */
12747 REGB1 = TAG_Int(7);
12748 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12749 if (!once_value_413) {
12750 fra.me.REG[2] = BOX_NativeString("UNBOX_NativeString(");
12751 REGB1 = TAG_Int(19);
12752 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12753 once_value_413 = fra.me.REG[2];
12754 register_static_object(&once_value_413);
12755 } else fra.me.REG[2] = once_value_413;
12756 fra.me.REG[2] = fra.me.REG[2];
12757 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12758 REGB1 = TAG_Int(0);
12759 /* ./../lib/standard//collection//array.nit:243 */
12760 fra.me.REG[2] = fra.me.REG[4];
12761 /* ./../lib/standard//collection//array.nit:245 */
12762 REGB2 = TAG_Int(0);
12763 /* ./../lib/standard//kernel.nit:213 */
12764 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12765 /* ./../lib/standard//collection//array.nit:245 */
12766 if (UNTAG_Bool(REGB2)) {
12767 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12768 if (UNTAG_Bool(REGB2)) {
12769 } else {
12770 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12771 }
12772 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12773 /* ./../lib/standard//kernel.nit:212 */
12774 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12775 } else {
12776 /* ./../lib/standard//collection//array.nit:245 */
12777 REGB0 = TAG_Bool(false);
12778 REGB2 = REGB0;
12779 }
12780 if (UNTAG_Bool(REGB2)) {
12781 } else {
12782 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12783 }
12784 /* ./../lib/standard//collection//array.nit:246 */
12785 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12786 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12787 if (UNTAG_Bool(REGB2)) {
12788 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12789 }
12790 /* ./../lib/standard//collection//array.nit:654 */
12791 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12792 /* ./../lib/standard//collection//array.nit:246 */
12793 goto label414;
12794 label414: while(0);
12795 /* ./compiling//compiling_icode.nit:851 */
12796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12797 if (!once_value_415) {
12798 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
12799 REGB1 = TAG_Int(12);
12800 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12801 once_value_415 = fra.me.REG[2];
12802 register_static_object(&once_value_415);
12803 } else fra.me.REG[2] = once_value_415;
12804 fra.me.REG[2] = fra.me.REG[2];
12805 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12806 REGB1 = TAG_Int(1);
12807 /* ./../lib/standard//collection//array.nit:243 */
12808 fra.me.REG[2] = fra.me.REG[4];
12809 /* ./../lib/standard//collection//array.nit:245 */
12810 REGB2 = TAG_Int(0);
12811 /* ./../lib/standard//kernel.nit:213 */
12812 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12813 /* ./../lib/standard//collection//array.nit:245 */
12814 if (UNTAG_Bool(REGB2)) {
12815 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12816 if (UNTAG_Bool(REGB2)) {
12817 } else {
12818 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12819 }
12820 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12821 /* ./../lib/standard//kernel.nit:212 */
12822 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12823 } else {
12824 /* ./../lib/standard//collection//array.nit:245 */
12825 REGB0 = TAG_Bool(false);
12826 REGB2 = REGB0;
12827 }
12828 if (UNTAG_Bool(REGB2)) {
12829 } else {
12830 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12831 }
12832 /* ./../lib/standard//collection//array.nit:246 */
12833 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12834 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12835 if (UNTAG_Bool(REGB2)) {
12836 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12837 }
12838 /* ./../lib/standard//collection//array.nit:654 */
12839 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12840 /* ./../lib/standard//collection//array.nit:246 */
12841 goto label416;
12842 label416: while(0);
12843 /* ./compiling//compiling_icode.nit:851 */
12844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12845 if (!once_value_417) {
12846 fra.me.REG[2] = BOX_NativeString(")]=UNTAG_Char(");
12847 REGB1 = TAG_Int(14);
12848 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12849 once_value_417 = fra.me.REG[2];
12850 register_static_object(&once_value_417);
12851 } else fra.me.REG[2] = once_value_417;
12852 fra.me.REG[2] = fra.me.REG[2];
12853 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12854 REGB1 = TAG_Int(2);
12855 /* ./../lib/standard//collection//array.nit:243 */
12856 fra.me.REG[2] = fra.me.REG[4];
12857 /* ./../lib/standard//collection//array.nit:245 */
12858 REGB2 = TAG_Int(0);
12859 /* ./../lib/standard//kernel.nit:213 */
12860 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12861 /* ./../lib/standard//collection//array.nit:245 */
12862 if (UNTAG_Bool(REGB2)) {
12863 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12864 if (UNTAG_Bool(REGB2)) {
12865 } else {
12866 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12867 }
12868 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12869 /* ./../lib/standard//kernel.nit:212 */
12870 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12871 } else {
12872 /* ./../lib/standard//collection//array.nit:245 */
12873 REGB0 = TAG_Bool(false);
12874 REGB2 = REGB0;
12875 }
12876 if (UNTAG_Bool(REGB2)) {
12877 } else {
12878 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12879 }
12880 /* ./../lib/standard//collection//array.nit:246 */
12881 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12882 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12883 if (UNTAG_Bool(REGB2)) {
12884 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12885 }
12886 /* ./../lib/standard//collection//array.nit:654 */
12887 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12888 /* ./../lib/standard//collection//array.nit:246 */
12889 goto label418;
12890 label418: while(0);
12891 /* ./compiling//compiling_icode.nit:851 */
12892 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12893 if (!once_value_419) {
12894 fra.me.REG[2] = BOX_NativeString(");");
12895 REGB1 = TAG_Int(2);
12896 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12897 once_value_419 = fra.me.REG[2];
12898 register_static_object(&once_value_419);
12899 } else fra.me.REG[2] = once_value_419;
12900 fra.me.REG[2] = fra.me.REG[2];
12901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12902 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12903 fra.me.REG[5] = fra.me.REG[6];
12904 } else {
12905 /* ./compiling//compiling_icode.nit:852 */
12906 if (!once_value_420) {
12907 if (!once_value_421) {
12908 fra.me.REG[6] = BOX_NativeString("copy_to");
12909 REGB1 = TAG_Int(7);
12910 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12911 once_value_421 = fra.me.REG[6];
12912 register_static_object(&once_value_421);
12913 } else fra.me.REG[6] = once_value_421;
12914 fra.me.REG[6] = fra.me.REG[6];
12915 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12916 once_value_420 = fra.me.REG[6];
12917 register_static_object(&once_value_420);
12918 } else fra.me.REG[6] = once_value_420;
12919 fra.me.REG[6] = fra.me.REG[6];
12920 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12921 if (UNTAG_Bool(REGB1)) {
12922 } else {
12923 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12924 REGB1 = REGB2;
12925 }
12926 if (UNTAG_Bool(REGB1)) {
12927 /* ./compiling//compiling_icode.nit:853 */
12928 REGB1 = TAG_Int(11);
12929 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12930 if (!once_value_422) {
12931 fra.me.REG[2] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
12932 REGB1 = TAG_Int(32);
12933 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12934 once_value_422 = fra.me.REG[2];
12935 register_static_object(&once_value_422);
12936 } else fra.me.REG[2] = once_value_422;
12937 fra.me.REG[2] = fra.me.REG[2];
12938 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12939 REGB1 = TAG_Int(1);
12940 /* ./../lib/standard//collection//array.nit:243 */
12941 fra.me.REG[2] = fra.me.REG[4];
12942 /* ./../lib/standard//collection//array.nit:245 */
12943 REGB2 = TAG_Int(0);
12944 /* ./../lib/standard//kernel.nit:213 */
12945 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12946 /* ./../lib/standard//collection//array.nit:245 */
12947 if (UNTAG_Bool(REGB2)) {
12948 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12949 if (UNTAG_Bool(REGB2)) {
12950 } else {
12951 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12952 }
12953 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12954 /* ./../lib/standard//kernel.nit:212 */
12955 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12956 } else {
12957 /* ./../lib/standard//collection//array.nit:245 */
12958 REGB0 = TAG_Bool(false);
12959 REGB2 = REGB0;
12960 }
12961 if (UNTAG_Bool(REGB2)) {
12962 } else {
12963 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12964 }
12965 /* ./../lib/standard//collection//array.nit:246 */
12966 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12967 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12968 if (UNTAG_Bool(REGB2)) {
12969 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12970 }
12971 /* ./../lib/standard//collection//array.nit:654 */
12972 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12973 /* ./../lib/standard//collection//array.nit:246 */
12974 goto label423;
12975 label423: while(0);
12976 /* ./compiling//compiling_icode.nit:853 */
12977 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12978 if (!once_value_424) {
12979 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
12980 REGB1 = TAG_Int(12);
12981 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12982 once_value_424 = fra.me.REG[2];
12983 register_static_object(&once_value_424);
12984 } else fra.me.REG[2] = once_value_424;
12985 fra.me.REG[2] = fra.me.REG[2];
12986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12987 REGB1 = TAG_Int(4);
12988 /* ./../lib/standard//collection//array.nit:243 */
12989 fra.me.REG[2] = fra.me.REG[4];
12990 /* ./../lib/standard//collection//array.nit:245 */
12991 REGB2 = TAG_Int(0);
12992 /* ./../lib/standard//kernel.nit:213 */
12993 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12994 /* ./../lib/standard//collection//array.nit:245 */
12995 if (UNTAG_Bool(REGB2)) {
12996 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12997 if (UNTAG_Bool(REGB2)) {
12998 } else {
12999 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13000 }
13001 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13002 /* ./../lib/standard//kernel.nit:212 */
13003 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13004 } else {
13005 /* ./../lib/standard//collection//array.nit:245 */
13006 REGB0 = TAG_Bool(false);
13007 REGB2 = REGB0;
13008 }
13009 if (UNTAG_Bool(REGB2)) {
13010 } else {
13011 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13012 }
13013 /* ./../lib/standard//collection//array.nit:246 */
13014 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13015 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13016 if (UNTAG_Bool(REGB2)) {
13017 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13018 }
13019 /* ./../lib/standard//collection//array.nit:654 */
13020 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13021 /* ./../lib/standard//collection//array.nit:246 */
13022 goto label425;
13023 label425: while(0);
13024 /* ./compiling//compiling_icode.nit:853 */
13025 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13026 if (!once_value_426) {
13027 fra.me.REG[2] = BOX_NativeString("), UNBOX_NativeString(");
13028 REGB1 = TAG_Int(22);
13029 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13030 once_value_426 = fra.me.REG[2];
13031 register_static_object(&once_value_426);
13032 } else fra.me.REG[2] = once_value_426;
13033 fra.me.REG[2] = fra.me.REG[2];
13034 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13035 REGB1 = TAG_Int(0);
13036 /* ./../lib/standard//collection//array.nit:243 */
13037 fra.me.REG[2] = fra.me.REG[4];
13038 /* ./../lib/standard//collection//array.nit:245 */
13039 REGB2 = TAG_Int(0);
13040 /* ./../lib/standard//kernel.nit:213 */
13041 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13042 /* ./../lib/standard//collection//array.nit:245 */
13043 if (UNTAG_Bool(REGB2)) {
13044 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13045 if (UNTAG_Bool(REGB2)) {
13046 } else {
13047 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13048 }
13049 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13050 /* ./../lib/standard//kernel.nit:212 */
13051 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13052 } else {
13053 /* ./../lib/standard//collection//array.nit:245 */
13054 REGB0 = TAG_Bool(false);
13055 REGB2 = REGB0;
13056 }
13057 if (UNTAG_Bool(REGB2)) {
13058 } else {
13059 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13060 }
13061 /* ./../lib/standard//collection//array.nit:246 */
13062 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13063 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13064 if (UNTAG_Bool(REGB2)) {
13065 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13066 }
13067 /* ./../lib/standard//collection//array.nit:654 */
13068 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13069 /* ./../lib/standard//collection//array.nit:246 */
13070 goto label427;
13071 label427: while(0);
13072 /* ./compiling//compiling_icode.nit:853 */
13073 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13074 if (!once_value_428) {
13075 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
13076 REGB1 = TAG_Int(12);
13077 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13078 once_value_428 = fra.me.REG[2];
13079 register_static_object(&once_value_428);
13080 } else fra.me.REG[2] = once_value_428;
13081 fra.me.REG[2] = fra.me.REG[2];
13082 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13083 REGB1 = TAG_Int(3);
13084 /* ./../lib/standard//collection//array.nit:243 */
13085 fra.me.REG[2] = fra.me.REG[4];
13086 /* ./../lib/standard//collection//array.nit:245 */
13087 REGB2 = TAG_Int(0);
13088 /* ./../lib/standard//kernel.nit:213 */
13089 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13090 /* ./../lib/standard//collection//array.nit:245 */
13091 if (UNTAG_Bool(REGB2)) {
13092 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13093 if (UNTAG_Bool(REGB2)) {
13094 } else {
13095 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13096 }
13097 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13098 /* ./../lib/standard//kernel.nit:212 */
13099 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13100 } else {
13101 /* ./../lib/standard//collection//array.nit:245 */
13102 REGB0 = TAG_Bool(false);
13103 REGB2 = REGB0;
13104 }
13105 if (UNTAG_Bool(REGB2)) {
13106 } else {
13107 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13108 }
13109 /* ./../lib/standard//collection//array.nit:246 */
13110 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13111 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13112 if (UNTAG_Bool(REGB2)) {
13113 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13114 }
13115 /* ./../lib/standard//collection//array.nit:654 */
13116 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13117 /* ./../lib/standard//collection//array.nit:246 */
13118 goto label429;
13119 label429: while(0);
13120 /* ./compiling//compiling_icode.nit:853 */
13121 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13122 if (!once_value_430) {
13123 fra.me.REG[2] = BOX_NativeString("), UNTAG_Int(");
13124 REGB1 = TAG_Int(13);
13125 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13126 once_value_430 = fra.me.REG[2];
13127 register_static_object(&once_value_430);
13128 } else fra.me.REG[2] = once_value_430;
13129 fra.me.REG[2] = fra.me.REG[2];
13130 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13131 REGB1 = TAG_Int(2);
13132 /* ./../lib/standard//collection//array.nit:243 */
13133 fra.me.REG[2] = fra.me.REG[4];
13134 /* ./../lib/standard//collection//array.nit:245 */
13135 REGB2 = TAG_Int(0);
13136 /* ./../lib/standard//kernel.nit:213 */
13137 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13138 /* ./../lib/standard//collection//array.nit:245 */
13139 if (UNTAG_Bool(REGB2)) {
13140 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13141 if (UNTAG_Bool(REGB2)) {
13142 } else {
13143 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13144 }
13145 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13146 /* ./../lib/standard//kernel.nit:212 */
13147 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13148 } else {
13149 /* ./../lib/standard//collection//array.nit:245 */
13150 REGB0 = TAG_Bool(false);
13151 REGB2 = REGB0;
13152 }
13153 if (UNTAG_Bool(REGB2)) {
13154 } else {
13155 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13156 }
13157 /* ./../lib/standard//collection//array.nit:246 */
13158 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13159 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13160 if (UNTAG_Bool(REGB2)) {
13161 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13162 }
13163 /* ./../lib/standard//collection//array.nit:654 */
13164 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13165 /* ./../lib/standard//collection//array.nit:246 */
13166 goto label431;
13167 label431: while(0);
13168 /* ./compiling//compiling_icode.nit:853 */
13169 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13170 if (!once_value_432) {
13171 fra.me.REG[2] = BOX_NativeString("));");
13172 REGB1 = TAG_Int(3);
13173 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13174 once_value_432 = fra.me.REG[2];
13175 register_static_object(&once_value_432);
13176 } else fra.me.REG[2] = once_value_432;
13177 fra.me.REG[2] = fra.me.REG[2];
13178 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13179 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13180 fra.me.REG[5] = fra.me.REG[6];
13181 }
13182 }
13183 }
13184 }
13185 }
13186 } else {
13187 /* ./compiling//compiling_icode.nit:855 */
13188 if (!once_value_433) {
13189 if (!once_value_434) {
13190 fra.me.REG[6] = BOX_NativeString("object_id");
13191 REGB1 = TAG_Int(9);
13192 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13193 once_value_434 = fra.me.REG[6];
13194 register_static_object(&once_value_434);
13195 } else fra.me.REG[6] = once_value_434;
13196 fra.me.REG[6] = fra.me.REG[6];
13197 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13198 once_value_433 = fra.me.REG[6];
13199 register_static_object(&once_value_433);
13200 } else fra.me.REG[6] = once_value_433;
13201 fra.me.REG[6] = fra.me.REG[6];
13202 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13203 if (UNTAG_Bool(REGB1)) {
13204 } else {
13205 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13206 REGB1 = REGB2;
13207 }
13208 if (UNTAG_Bool(REGB1)) {
13209 /* ./compiling//compiling_icode.nit:856 */
13210 REGB1 = TAG_Int(3);
13211 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13212 if (!once_value_435) {
13213 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
13214 REGB1 = TAG_Int(24);
13215 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13216 once_value_435 = fra.me.REG[2];
13217 register_static_object(&once_value_435);
13218 } else fra.me.REG[2] = once_value_435;
13219 fra.me.REG[2] = fra.me.REG[2];
13220 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13221 REGB1 = TAG_Int(0);
13222 /* ./../lib/standard//collection//array.nit:243 */
13223 fra.me.REG[2] = fra.me.REG[4];
13224 /* ./../lib/standard//collection//array.nit:245 */
13225 REGB2 = TAG_Int(0);
13226 /* ./../lib/standard//kernel.nit:213 */
13227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13228 /* ./../lib/standard//collection//array.nit:245 */
13229 if (UNTAG_Bool(REGB2)) {
13230 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13231 if (UNTAG_Bool(REGB2)) {
13232 } else {
13233 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13234 }
13235 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13236 /* ./../lib/standard//kernel.nit:212 */
13237 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13238 } else {
13239 /* ./../lib/standard//collection//array.nit:245 */
13240 REGB0 = TAG_Bool(false);
13241 REGB2 = REGB0;
13242 }
13243 if (UNTAG_Bool(REGB2)) {
13244 } else {
13245 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13246 }
13247 /* ./../lib/standard//collection//array.nit:246 */
13248 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13249 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13250 if (UNTAG_Bool(REGB2)) {
13251 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13252 }
13253 /* ./../lib/standard//collection//array.nit:654 */
13254 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13255 /* ./../lib/standard//collection//array.nit:246 */
13256 goto label436;
13257 label436: while(0);
13258 /* ./compiling//compiling_icode.nit:856 */
13259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13260 if (!once_value_437) {
13261 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
13262 REGB1 = TAG_Int(15);
13263 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13264 once_value_437 = fra.me.REG[2];
13265 register_static_object(&once_value_437);
13266 } else fra.me.REG[2] = once_value_437;
13267 fra.me.REG[2] = fra.me.REG[2];
13268 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13269 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13270 fra.me.REG[5] = fra.me.REG[6];
13271 } else {
13272 /* ./compiling//compiling_icode.nit:857 */
13273 if (!once_value_438) {
13274 if (!once_value_439) {
13275 fra.me.REG[6] = BOX_NativeString("sys");
13276 REGB1 = TAG_Int(3);
13277 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13278 once_value_439 = fra.me.REG[6];
13279 register_static_object(&once_value_439);
13280 } else fra.me.REG[6] = once_value_439;
13281 fra.me.REG[6] = fra.me.REG[6];
13282 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13283 once_value_438 = fra.me.REG[6];
13284 register_static_object(&once_value_438);
13285 } else fra.me.REG[6] = once_value_438;
13286 fra.me.REG[6] = fra.me.REG[6];
13287 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13288 if (UNTAG_Bool(REGB1)) {
13289 } else {
13290 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13291 REGB1 = REGB2;
13292 }
13293 if (UNTAG_Bool(REGB1)) {
13294 /* ./compiling//compiling_icode.nit:858 */
13295 if (!once_value_440) {
13296 fra.me.REG[6] = BOX_NativeString("(G_sys)");
13297 REGB1 = TAG_Int(7);
13298 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13299 once_value_440 = fra.me.REG[6];
13300 register_static_object(&once_value_440);
13301 } else fra.me.REG[6] = once_value_440;
13302 fra.me.REG[6] = fra.me.REG[6];
13303 fra.me.REG[5] = fra.me.REG[6];
13304 } else {
13305 /* ./compiling//compiling_icode.nit:859 */
13306 if (!once_value_441) {
13307 if (!once_value_442) {
13308 fra.me.REG[6] = BOX_NativeString("is_same_type");
13309 REGB1 = TAG_Int(12);
13310 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13311 once_value_442 = fra.me.REG[6];
13312 register_static_object(&once_value_442);
13313 } else fra.me.REG[6] = once_value_442;
13314 fra.me.REG[6] = fra.me.REG[6];
13315 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13316 once_value_441 = fra.me.REG[6];
13317 register_static_object(&once_value_441);
13318 } else fra.me.REG[6] = once_value_441;
13319 fra.me.REG[6] = fra.me.REG[6];
13320 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13321 if (UNTAG_Bool(REGB1)) {
13322 } else {
13323 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13324 REGB1 = REGB2;
13325 }
13326 if (UNTAG_Bool(REGB1)) {
13327 /* ./compiling//compiling_icode.nit:860 */
13328 REGB1 = TAG_Int(5);
13329 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13330 if (!once_value_443) {
13331 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
13332 REGB1 = TAG_Int(18);
13333 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13334 once_value_443 = fra.me.REG[2];
13335 register_static_object(&once_value_443);
13336 } else fra.me.REG[2] = once_value_443;
13337 fra.me.REG[2] = fra.me.REG[2];
13338 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13339 REGB1 = TAG_Int(0);
13340 /* ./../lib/standard//collection//array.nit:243 */
13341 fra.me.REG[2] = fra.me.REG[4];
13342 /* ./../lib/standard//collection//array.nit:245 */
13343 REGB2 = TAG_Int(0);
13344 /* ./../lib/standard//kernel.nit:213 */
13345 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13346 /* ./../lib/standard//collection//array.nit:245 */
13347 if (UNTAG_Bool(REGB2)) {
13348 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13349 if (UNTAG_Bool(REGB2)) {
13350 } else {
13351 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13352 }
13353 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13354 /* ./../lib/standard//kernel.nit:212 */
13355 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13356 } else {
13357 /* ./../lib/standard//collection//array.nit:245 */
13358 REGB0 = TAG_Bool(false);
13359 REGB2 = REGB0;
13360 }
13361 if (UNTAG_Bool(REGB2)) {
13362 } else {
13363 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13364 }
13365 /* ./../lib/standard//collection//array.nit:246 */
13366 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13367 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13368 if (UNTAG_Bool(REGB2)) {
13369 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13370 }
13371 /* ./../lib/standard//collection//array.nit:654 */
13372 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13373 /* ./../lib/standard//collection//array.nit:246 */
13374 goto label444;
13375 label444: while(0);
13376 /* ./compiling//compiling_icode.nit:860 */
13377 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13378 if (!once_value_445) {
13379 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
13380 REGB1 = TAG_Int(11);
13381 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13382 once_value_445 = fra.me.REG[2];
13383 register_static_object(&once_value_445);
13384 } else fra.me.REG[2] = once_value_445;
13385 fra.me.REG[2] = fra.me.REG[2];
13386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13387 REGB1 = TAG_Int(1);
13388 /* ./../lib/standard//collection//array.nit:243 */
13389 fra.me.REG[2] = fra.me.REG[4];
13390 /* ./../lib/standard//collection//array.nit:245 */
13391 REGB2 = TAG_Int(0);
13392 /* ./../lib/standard//kernel.nit:213 */
13393 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13394 /* ./../lib/standard//collection//array.nit:245 */
13395 if (UNTAG_Bool(REGB2)) {
13396 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13397 if (UNTAG_Bool(REGB2)) {
13398 } else {
13399 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13400 }
13401 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13402 /* ./../lib/standard//kernel.nit:212 */
13403 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13404 } else {
13405 /* ./../lib/standard//collection//array.nit:245 */
13406 REGB0 = TAG_Bool(false);
13407 REGB2 = REGB0;
13408 }
13409 if (UNTAG_Bool(REGB2)) {
13410 } else {
13411 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13412 }
13413 /* ./../lib/standard//collection//array.nit:246 */
13414 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13415 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13416 if (UNTAG_Bool(REGB2)) {
13417 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13418 }
13419 /* ./../lib/standard//collection//array.nit:654 */
13420 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13421 /* ./../lib/standard//collection//array.nit:246 */
13422 goto label446;
13423 label446: while(0);
13424 /* ./compiling//compiling_icode.nit:860 */
13425 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13426 if (!once_value_447) {
13427 fra.me.REG[2] = BOX_NativeString(")))");
13428 REGB1 = TAG_Int(3);
13429 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13430 once_value_447 = fra.me.REG[2];
13431 register_static_object(&once_value_447);
13432 } else fra.me.REG[2] = once_value_447;
13433 fra.me.REG[2] = fra.me.REG[2];
13434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13435 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13436 fra.me.REG[5] = fra.me.REG[6];
13437 } else {
13438 /* ./compiling//compiling_icode.nit:861 */
13439 if (!once_value_448) {
13440 if (!once_value_449) {
13441 fra.me.REG[6] = BOX_NativeString("exit");
13442 REGB1 = TAG_Int(4);
13443 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13444 once_value_449 = fra.me.REG[6];
13445 register_static_object(&once_value_449);
13446 } else fra.me.REG[6] = once_value_449;
13447 fra.me.REG[6] = fra.me.REG[6];
13448 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13449 once_value_448 = fra.me.REG[6];
13450 register_static_object(&once_value_448);
13451 } else fra.me.REG[6] = once_value_448;
13452 fra.me.REG[6] = fra.me.REG[6];
13453 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13454 if (UNTAG_Bool(REGB1)) {
13455 } else {
13456 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13457 REGB1 = REGB2;
13458 }
13459 if (UNTAG_Bool(REGB1)) {
13460 /* ./compiling//compiling_icode.nit:862 */
13461 REGB1 = TAG_Int(3);
13462 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13463 if (!once_value_450) {
13464 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
13465 REGB1 = TAG_Int(15);
13466 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13467 once_value_450 = fra.me.REG[2];
13468 register_static_object(&once_value_450);
13469 } else fra.me.REG[2] = once_value_450;
13470 fra.me.REG[2] = fra.me.REG[2];
13471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13472 REGB1 = TAG_Int(1);
13473 /* ./../lib/standard//collection//array.nit:243 */
13474 fra.me.REG[2] = fra.me.REG[4];
13475 /* ./../lib/standard//collection//array.nit:245 */
13476 REGB2 = TAG_Int(0);
13477 /* ./../lib/standard//kernel.nit:213 */
13478 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13479 /* ./../lib/standard//collection//array.nit:245 */
13480 if (UNTAG_Bool(REGB2)) {
13481 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13482 if (UNTAG_Bool(REGB2)) {
13483 } else {
13484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13485 }
13486 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13487 /* ./../lib/standard//kernel.nit:212 */
13488 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13489 } else {
13490 /* ./../lib/standard//collection//array.nit:245 */
13491 REGB0 = TAG_Bool(false);
13492 REGB2 = REGB0;
13493 }
13494 if (UNTAG_Bool(REGB2)) {
13495 } else {
13496 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13497 }
13498 /* ./../lib/standard//collection//array.nit:246 */
13499 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13500 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13501 if (UNTAG_Bool(REGB2)) {
13502 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13503 }
13504 /* ./../lib/standard//collection//array.nit:654 */
13505 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13506 /* ./../lib/standard//collection//array.nit:246 */
13507 goto label451;
13508 label451: while(0);
13509 /* ./compiling//compiling_icode.nit:862 */
13510 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13511 if (!once_value_452) {
13512 fra.me.REG[2] = BOX_NativeString("));");
13513 REGB1 = TAG_Int(3);
13514 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13515 once_value_452 = fra.me.REG[2];
13516 register_static_object(&once_value_452);
13517 } else fra.me.REG[2] = once_value_452;
13518 fra.me.REG[2] = fra.me.REG[2];
13519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13520 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13521 fra.me.REG[5] = fra.me.REG[6];
13522 } else {
13523 /* ./compiling//compiling_icode.nit:863 */
13524 if (!once_value_453) {
13525 if (!once_value_454) {
13526 fra.me.REG[6] = BOX_NativeString("calloc_array");
13527 REGB1 = TAG_Int(12);
13528 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13529 once_value_454 = fra.me.REG[6];
13530 register_static_object(&once_value_454);
13531 } else fra.me.REG[6] = once_value_454;
13532 fra.me.REG[6] = fra.me.REG[6];
13533 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13534 once_value_453 = fra.me.REG[6];
13535 register_static_object(&once_value_453);
13536 } else fra.me.REG[6] = once_value_453;
13537 fra.me.REG[6] = fra.me.REG[6];
13538 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13539 if (UNTAG_Bool(REGB1)) {
13540 } else {
13541 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13542 REGB1 = REGB2;
13543 }
13544 if (UNTAG_Bool(REGB1)) {
13545 /* ./compiling//compiling_icode.nit:864 */
13546 REGB1 = TAG_Int(3);
13547 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13548 if (!once_value_455) {
13549 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
13550 REGB1 = TAG_Int(26);
13551 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13552 once_value_455 = fra.me.REG[2];
13553 register_static_object(&once_value_455);
13554 } else fra.me.REG[2] = once_value_455;
13555 fra.me.REG[2] = fra.me.REG[2];
13556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13557 REGB1 = TAG_Int(1);
13558 /* ./../lib/standard//collection//array.nit:243 */
13559 fra.me.REG[2] = fra.me.REG[4];
13560 /* ./../lib/standard//collection//array.nit:245 */
13561 REGB2 = TAG_Int(0);
13562 /* ./../lib/standard//kernel.nit:213 */
13563 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13564 /* ./../lib/standard//collection//array.nit:245 */
13565 if (UNTAG_Bool(REGB2)) {
13566 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13567 if (UNTAG_Bool(REGB2)) {
13568 } else {
13569 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13570 }
13571 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13572 /* ./../lib/standard//kernel.nit:212 */
13573 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13574 } else {
13575 /* ./../lib/standard//collection//array.nit:245 */
13576 REGB0 = TAG_Bool(false);
13577 REGB2 = REGB0;
13578 }
13579 if (UNTAG_Bool(REGB2)) {
13580 } else {
13581 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13582 }
13583 /* ./../lib/standard//collection//array.nit:246 */
13584 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13585 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13586 if (UNTAG_Bool(REGB2)) {
13587 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13588 }
13589 /* ./../lib/standard//collection//array.nit:654 */
13590 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13591 /* ./../lib/standard//collection//array.nit:246 */
13592 goto label456;
13593 label456: while(0);
13594 /* ./compiling//compiling_icode.nit:864 */
13595 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13596 if (!once_value_457) {
13597 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
13598 REGB1 = TAG_Int(17);
13599 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13600 once_value_457 = fra.me.REG[2];
13601 register_static_object(&once_value_457);
13602 } else fra.me.REG[2] = once_value_457;
13603 fra.me.REG[2] = fra.me.REG[2];
13604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13605 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13606 fra.me.REG[5] = fra.me.REG[6];
13607 } else {
13608 /* ./compiling//compiling_icode.nit:865 */
13609 if (!once_value_458) {
13610 if (!once_value_459) {
13611 fra.me.REG[6] = BOX_NativeString("calloc_string");
13612 REGB1 = TAG_Int(13);
13613 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13614 once_value_459 = fra.me.REG[6];
13615 register_static_object(&once_value_459);
13616 } else fra.me.REG[6] = once_value_459;
13617 fra.me.REG[6] = fra.me.REG[6];
13618 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13619 once_value_458 = fra.me.REG[6];
13620 register_static_object(&once_value_458);
13621 } else fra.me.REG[6] = once_value_458;
13622 fra.me.REG[6] = fra.me.REG[6];
13623 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13624 if (UNTAG_Bool(REGB1)) {
13625 } else {
13626 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13627 REGB1 = REGB2;
13628 }
13629 if (UNTAG_Bool(REGB1)) {
13630 /* ./compiling//compiling_icode.nit:866 */
13631 REGB1 = TAG_Int(3);
13632 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13633 if (!once_value_460) {
13634 fra.me.REG[3] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
13635 REGB1 = TAG_Int(45);
13636 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
13637 once_value_460 = fra.me.REG[3];
13638 register_static_object(&once_value_460);
13639 } else fra.me.REG[3] = once_value_460;
13640 fra.me.REG[3] = fra.me.REG[3];
13641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
13642 REGB1 = TAG_Int(1);
13643 /* ./../lib/standard//collection//array.nit:245 */
13644 REGB2 = TAG_Int(0);
13645 /* ./../lib/standard//kernel.nit:213 */
13646 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13647 /* ./../lib/standard//collection//array.nit:245 */
13648 if (UNTAG_Bool(REGB2)) {
13649 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
13650 if (UNTAG_Bool(REGB2)) {
13651 } else {
13652 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13653 }
13654 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
13655 /* ./../lib/standard//kernel.nit:212 */
13656 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13657 } else {
13658 /* ./../lib/standard//collection//array.nit:245 */
13659 REGB0 = TAG_Bool(false);
13660 REGB2 = REGB0;
13661 }
13662 if (UNTAG_Bool(REGB2)) {
13663 } else {
13664 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13665 }
13666 /* ./../lib/standard//collection//array.nit:246 */
13667 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
13668 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13669 if (UNTAG_Bool(REGB2)) {
13670 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13671 }
13672 /* ./../lib/standard//collection//array.nit:654 */
13673 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
13674 /* ./../lib/standard//collection//array.nit:246 */
13675 goto label461;
13676 label461: while(0);
13677 /* ./compiling//compiling_icode.nit:866 */
13678 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
13679 if (!once_value_462) {
13680 fra.me.REG[4] = BOX_NativeString(") * sizeof(char))))");
13681 REGB1 = TAG_Int(19);
13682 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13683 once_value_462 = fra.me.REG[4];
13684 register_static_object(&once_value_462);
13685 } else fra.me.REG[4] = once_value_462;
13686 fra.me.REG[4] = fra.me.REG[4];
13687 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
13688 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13689 fra.me.REG[5] = fra.me.REG[6];
13690 }
13691 }
13692 }
13693 }
13694 }
13695 }
13696 }
13697 }
13698 }
13699 }
13700 }
13701 }
13702 /* ./compiling//compiling_icode.nit:868 */
13703 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
13704 if (UNTAG_Bool(REGB1)) {
13705 } else {
13706 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
13707 if (UNTAG_Bool(REGB2)) {
13708 REGB2 = TAG_Bool(false);
13709 REGB1 = REGB2;
13710 } else {
13711 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
13712 REGB1 = REGB2;
13713 }
13714 }
13715 if (UNTAG_Bool(REGB1)) {
13716 /* ./compiling//compiling_icode.nit:869 */
13717 fra.me.REG[6] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13718 /* ./compiling//compiling_icode.nit:870 */
13719 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13720 if (UNTAG_Bool(REGB1)) {
13721 } else {
13722 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13723 if (UNTAG_Bool(REGB2)) {
13724 REGB2 = TAG_Bool(false);
13725 REGB1 = REGB2;
13726 } else {
13727 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
13728 REGB1 = REGB2;
13729 }
13730 }
13731 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
13732 if (UNTAG_Bool(REGB1)) {
13733 REGB1 = TAG_Int(3);
13734 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
13735 if (!once_value_463) {
13736 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
13737 REGB1 = TAG_Int(17);
13738 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
13739 once_value_463 = fra.me.REG[3];
13740 register_static_object(&once_value_463);
13741 } else fra.me.REG[3] = once_value_463;
13742 fra.me.REG[3] = fra.me.REG[3];
13743 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
13744 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13745 if (UNTAG_Bool(REGB1)) {
13746 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 870);
13747 }
13748 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13749 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13750 if (!once_value_464) {
13751 fra.me.REG[6] = BOX_NativeString(": \");");
13752 REGB1 = TAG_Int(5);
13753 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13754 once_value_464 = fra.me.REG[6];
13755 register_static_object(&once_value_464);
13756 } else fra.me.REG[6] = once_value_464;
13757 fra.me.REG[6] = fra.me.REG[6];
13758 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13759 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
13760 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13761 }
13762 /* ./compiling//compiling_icode.nit:871 */
13763 REGB1 = TAG_Int(3);
13764 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
13765 if (!once_value_465) {
13766 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
13767 REGB1 = TAG_Int(52);
13768 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13769 once_value_465 = fra.me.REG[6];
13770 register_static_object(&once_value_465);
13771 } else fra.me.REG[6] = once_value_465;
13772 fra.me.REG[6] = fra.me.REG[6];
13773 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13774 fra.me.REG[6] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
13775 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
13776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13777 if (!once_value_466) {
13778 fra.me.REG[6] = BOX_NativeString(".\\n\");");
13779 REGB1 = TAG_Int(6);
13780 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13781 once_value_466 = fra.me.REG[6];
13782 register_static_object(&once_value_466);
13783 } else fra.me.REG[6] = once_value_466;
13784 fra.me.REG[6] = fra.me.REG[6];
13785 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13786 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
13787 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13788 /* ./compiling//compiling_icode.nit:872 */
13789 if (!once_value_467) {
13790 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
13791 REGB1 = TAG_Int(12);
13792 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13793 once_value_467 = fra.me.REG[4];
13794 register_static_object(&once_value_467);
13795 } else fra.me.REG[4] = once_value_467;
13796 fra.me.REG[4] = fra.me.REG[4];
13797 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13798 /* ./compiling//compiling_icode.nit:873 */
13799 if (!once_value_468) {
13800 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
13801 REGB1 = TAG_Int(8);
13802 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13803 once_value_468 = fra.me.REG[4];
13804 register_static_object(&once_value_468);
13805 } else fra.me.REG[4] = once_value_468;
13806 fra.me.REG[4] = fra.me.REG[4];
13807 fra.me.REG[5] = fra.me.REG[4];
13808 }
13809 /* ./compiling//compiling_icode.nit:875 */
13810 fra.me.REG[4] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
13811 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13812 if (UNTAG_Bool(REGB1)) {
13813 } else {
13814 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13815 if (UNTAG_Bool(REGB2)) {
13816 REGB2 = TAG_Bool(false);
13817 REGB1 = REGB2;
13818 } else {
13819 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
13820 REGB1 = REGB2;
13821 }
13822 }
13823 if (UNTAG_Bool(REGB1)) {
13824 /* ./compiling//compiling_icode.nit:876 */
13825 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
13826 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
13827 if (!once_value_469) {
13828 fra.me.REG[6] = BOX_NativeString(";\n");
13829 REGB1 = TAG_Int(2);
13830 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13831 once_value_469 = fra.me.REG[6];
13832 register_static_object(&once_value_469);
13833 } else fra.me.REG[6] = once_value_469;
13834 fra.me.REG[6] = fra.me.REG[6];
13835 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13836 } else {
13837 /* ./compiling//compiling_icode.nit:877 */
13838 REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
13839 if (UNTAG_Bool(REGB1)) {
13840 /* ./compiling//compiling_icode.nit:878 */
13841 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13842 /* ./compiling//compiling_icode.nit:879 */
13843 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
13844 }
13845 }
13846 stack_frame_head = fra.me.prev;
13847 return;
13848 }
13849 void compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
13850 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13851 val_t REGB0;
13852 val_t tmp;
13853 static val_t once_value_1; /* Once value */
13854 static val_t once_value_2; /* Once value */
13855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13856 fra.me.file = LOCATE_compiling_icode;
13857 fra.me.line = 885;
13858 fra.me.meth = LOCATE_compiling_icode___IIntValue___compile_to_c;
13859 fra.me.has_broke = 0;
13860 fra.me.REG_size = 3;
13861 fra.me.REG[0] = NIT_NULL;
13862 fra.me.REG[1] = NIT_NULL;
13863 fra.me.REG[2] = NIT_NULL;
13864 fra.me.REG[0] = p0;
13865 fra.me.REG[1] = p1;
13866 /* ./compiling//compiling_icode.nit:887 */
13867 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13868 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13869 /* ./compiling//compiling_icode.nit:888 */
13870 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13871 /* ./compiling//compiling_icode.nit:889 */
13872 if (!once_value_1) {
13873 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
13874 REGB0 = TAG_Int(8);
13875 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13876 once_value_1 = fra.me.REG[2];
13877 register_static_object(&once_value_1);
13878 } else fra.me.REG[2] = once_value_1;
13879 fra.me.REG[2] = fra.me.REG[2];
13880 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13881 fra.me.REG[0] = CALL_icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
13882 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
13883 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13884 if (!once_value_2) {
13885 fra.me.REG[2] = BOX_NativeString(")");
13886 REGB0 = TAG_Int(1);
13887 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13888 once_value_2 = fra.me.REG[2];
13889 register_static_object(&once_value_2);
13890 } else fra.me.REG[2] = once_value_2;
13891 fra.me.REG[2] = fra.me.REG[2];
13892 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
13893 stack_frame_head = fra.me.prev;
13894 return;
13895 }
13896 void compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
13897 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13898 val_t REGB0;
13899 val_t tmp;
13900 static val_t once_value_1; /* Once value */
13901 static val_t once_value_2; /* Once value */
13902 static val_t once_value_3; /* Once value */
13903 static val_t once_value_4; /* Once value */
13904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13905 fra.me.file = LOCATE_compiling_icode;
13906 fra.me.line = 894;
13907 fra.me.meth = LOCATE_compiling_icode___IBoolValue___compile_to_c;
13908 fra.me.has_broke = 0;
13909 fra.me.REG_size = 3;
13910 fra.me.REG[0] = NIT_NULL;
13911 fra.me.REG[1] = NIT_NULL;
13912 fra.me.REG[2] = NIT_NULL;
13913 fra.me.REG[0] = p0;
13914 fra.me.REG[1] = p1;
13915 /* ./compiling//compiling_icode.nit:896 */
13916 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13917 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13918 /* ./compiling//compiling_icode.nit:897 */
13919 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13920 /* ./compiling//compiling_icode.nit:898 */
13921 if (!once_value_1) {
13922 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
13923 REGB0 = TAG_Int(9);
13924 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13925 once_value_1 = fra.me.REG[2];
13926 register_static_object(&once_value_1);
13927 } else fra.me.REG[2] = once_value_1;
13928 fra.me.REG[2] = fra.me.REG[2];
13929 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13930 /* ./compiling//compiling_icode.nit:899 */
13931 REGB0 = CALL_icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
13932 if (UNTAG_Bool(REGB0)) {
13933 if (!once_value_2) {
13934 fra.me.REG[0] = BOX_NativeString("true");
13935 REGB0 = TAG_Int(4);
13936 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13937 once_value_2 = fra.me.REG[0];
13938 register_static_object(&once_value_2);
13939 } else fra.me.REG[0] = once_value_2;
13940 fra.me.REG[0] = fra.me.REG[0];
13941 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13942 } else {
13943 if (!once_value_3) {
13944 fra.me.REG[0] = BOX_NativeString("false");
13945 REGB0 = TAG_Int(5);
13946 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13947 once_value_3 = fra.me.REG[0];
13948 register_static_object(&once_value_3);
13949 } else fra.me.REG[0] = once_value_3;
13950 fra.me.REG[0] = fra.me.REG[0];
13951 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13952 }
13953 /* ./compiling//compiling_icode.nit:900 */
13954 if (!once_value_4) {
13955 fra.me.REG[0] = BOX_NativeString(")");
13956 REGB0 = TAG_Int(1);
13957 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13958 once_value_4 = fra.me.REG[0];
13959 register_static_object(&once_value_4);
13960 } else fra.me.REG[0] = once_value_4;
13961 fra.me.REG[0] = fra.me.REG[0];
13962 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13963 stack_frame_head = fra.me.prev;
13964 return;
13965 }
13966 void compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
13967 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13968 val_t REGB0;
13969 val_t tmp;
13970 static val_t once_value_1; /* Once value */
13971 static val_t once_value_2; /* Once value */
13972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13973 fra.me.file = LOCATE_compiling_icode;
13974 fra.me.line = 905;
13975 fra.me.meth = LOCATE_compiling_icode___ICharValue___compile_to_c;
13976 fra.me.has_broke = 0;
13977 fra.me.REG_size = 3;
13978 fra.me.REG[0] = NIT_NULL;
13979 fra.me.REG[1] = NIT_NULL;
13980 fra.me.REG[2] = NIT_NULL;
13981 fra.me.REG[0] = p0;
13982 fra.me.REG[1] = p1;
13983 /* ./compiling//compiling_icode.nit:907 */
13984 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13985 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13986 /* ./compiling//compiling_icode.nit:908 */
13987 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13988 /* ./compiling//compiling_icode.nit:909 */
13989 if (!once_value_1) {
13990 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
13991 REGB0 = TAG_Int(9);
13992 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13993 once_value_1 = fra.me.REG[2];
13994 register_static_object(&once_value_1);
13995 } else fra.me.REG[2] = once_value_1;
13996 fra.me.REG[2] = fra.me.REG[2];
13997 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13998 fra.me.REG[0] = CALL_icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
13999 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14000 if (!once_value_2) {
14001 fra.me.REG[2] = BOX_NativeString(")");
14002 REGB0 = TAG_Int(1);
14003 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14004 once_value_2 = fra.me.REG[2];
14005 register_static_object(&once_value_2);
14006 } else fra.me.REG[2] = once_value_2;
14007 fra.me.REG[2] = fra.me.REG[2];
14008 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14009 stack_frame_head = fra.me.prev;
14010 return;
14011 }
14012 void compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
14013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14014 val_t REGB0;
14015 val_t tmp;
14016 static val_t once_value_1; /* Once value */
14017 static val_t once_value_2; /* Once value */
14018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14019 fra.me.file = LOCATE_compiling_icode;
14020 fra.me.line = 914;
14021 fra.me.meth = LOCATE_compiling_icode___IFloatValue___compile_to_c;
14022 fra.me.has_broke = 0;
14023 fra.me.REG_size = 3;
14024 fra.me.REG[0] = NIT_NULL;
14025 fra.me.REG[1] = NIT_NULL;
14026 fra.me.REG[2] = NIT_NULL;
14027 fra.me.REG[0] = p0;
14028 fra.me.REG[1] = p1;
14029 /* ./compiling//compiling_icode.nit:916 */
14030 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14031 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14032 /* ./compiling//compiling_icode.nit:917 */
14033 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14034 /* ./compiling//compiling_icode.nit:918 */
14035 if (!once_value_1) {
14036 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
14037 REGB0 = TAG_Int(10);
14038 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14039 once_value_1 = fra.me.REG[2];
14040 register_static_object(&once_value_1);
14041 } else fra.me.REG[2] = once_value_1;
14042 fra.me.REG[2] = fra.me.REG[2];
14043 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14044 fra.me.REG[0] = CALL_icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
14045 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14046 if (!once_value_2) {
14047 fra.me.REG[2] = BOX_NativeString(")");
14048 REGB0 = TAG_Int(1);
14049 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14050 once_value_2 = fra.me.REG[2];
14051 register_static_object(&once_value_2);
14052 } else fra.me.REG[2] = once_value_2;
14053 fra.me.REG[2] = fra.me.REG[2];
14054 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14055 stack_frame_head = fra.me.prev;
14056 return;
14057 }
14058 void compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
14059 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14060 val_t REGB0;
14061 val_t tmp;
14062 static val_t once_value_1; /* Once value */
14063 static val_t once_value_2; /* Once value */
14064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14065 fra.me.file = LOCATE_compiling_icode;
14066 fra.me.line = 923;
14067 fra.me.meth = LOCATE_compiling_icode___IStringValue___compile_to_c;
14068 fra.me.has_broke = 0;
14069 fra.me.REG_size = 3;
14070 fra.me.REG[0] = NIT_NULL;
14071 fra.me.REG[1] = NIT_NULL;
14072 fra.me.REG[2] = NIT_NULL;
14073 fra.me.REG[0] = p0;
14074 fra.me.REG[1] = p1;
14075 /* ./compiling//compiling_icode.nit:925 */
14076 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14077 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14078 /* ./compiling//compiling_icode.nit:926 */
14079 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14080 /* ./compiling//compiling_icode.nit:927 */
14081 if (!once_value_1) {
14082 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
14083 REGB0 = TAG_Int(18);
14084 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14085 once_value_1 = fra.me.REG[2];
14086 register_static_object(&once_value_1);
14087 } else fra.me.REG[2] = once_value_1;
14088 fra.me.REG[2] = fra.me.REG[2];
14089 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14090 fra.me.REG[0] = CALL_icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
14091 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14092 if (!once_value_2) {
14093 fra.me.REG[2] = BOX_NativeString("\")");
14094 REGB0 = TAG_Int(2);
14095 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14096 once_value_2 = fra.me.REG[2];
14097 register_static_object(&once_value_2);
14098 } else fra.me.REG[2] = once_value_2;
14099 fra.me.REG[2] = fra.me.REG[2];
14100 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14101 stack_frame_head = fra.me.prev;
14102 return;
14103 }
14104 void compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
14105 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14106 val_t REGB0;
14107 val_t REGB1;
14108 val_t REGB2;
14109 val_t tmp;
14110 static val_t once_value_1; /* Once value */
14111 static val_t once_value_3; /* Once value */
14112 static val_t once_value_5; /* Once value */
14113 static val_t once_value_6; /* Once value */
14114 static val_t once_value_7; /* Once value */
14115 static val_t once_value_8; /* Once value */
14116 static val_t once_value_9; /* Once value */
14117 static val_t once_value_10; /* Once value */
14118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14119 fra.me.file = LOCATE_compiling_icode;
14120 fra.me.line = 932;
14121 fra.me.meth = LOCATE_compiling_icode___IAbort___compile_to_c;
14122 fra.me.has_broke = 0;
14123 fra.me.REG_size = 3;
14124 fra.me.REG[0] = NIT_NULL;
14125 fra.me.REG[1] = NIT_NULL;
14126 fra.me.REG[2] = NIT_NULL;
14127 fra.me.REG[0] = p0;
14128 fra.me.REG[1] = p1;
14129 /* ./compiling//compiling_icode.nit:934 */
14130 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14131 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14132 /* ./compiling//compiling_icode.nit:935 */
14133 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14134 /* ./compiling//compiling_icode.nit:936 */
14135 if (!once_value_1) {
14136 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
14137 REGB0 = TAG_Int(11);
14138 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14139 once_value_1 = fra.me.REG[2];
14140 register_static_object(&once_value_1);
14141 } else fra.me.REG[2] = once_value_1;
14142 fra.me.REG[2] = fra.me.REG[2];
14143 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14144 /* ./compiling//compiling_icode.nit:937 */
14145 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14146 REGB0 = TAG_Int(0);
14147 /* ./../lib/standard//collection//array.nit:245 */
14148 REGB1 = TAG_Int(0);
14149 /* ./../lib/standard//kernel.nit:213 */
14150 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
14151 /* ./../lib/standard//collection//array.nit:245 */
14152 if (UNTAG_Bool(REGB1)) {
14153 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14154 if (UNTAG_Bool(REGB1)) {
14155 } else {
14156 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
14157 }
14158 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14159 /* ./../lib/standard//kernel.nit:212 */
14160 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14161 } else {
14162 /* ./../lib/standard//collection//array.nit:245 */
14163 REGB2 = TAG_Bool(false);
14164 REGB1 = REGB2;
14165 }
14166 if (UNTAG_Bool(REGB1)) {
14167 } else {
14168 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
14169 }
14170 /* ./../lib/standard//collection//array.nit:246 */
14171 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
14172 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14173 if (UNTAG_Bool(REGB1)) {
14174 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
14175 }
14176 /* ./../lib/standard//collection//array.nit:654 */
14177 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
14178 /* ./../lib/standard//collection//array.nit:246 */
14179 goto label2;
14180 label2: while(0);
14181 /* ./compiling//compiling_icode.nit:937 */
14182 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14183 /* ./compiling//compiling_icode.nit:938 */
14184 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14185 /* ./../lib/standard//collection//array.nit:23 */
14186 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14187 if (UNTAG_Bool(REGB0)) {
14188 } else {
14189 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
14190 }
14191 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14192 /* ./compiling//compiling_icode.nit:938 */
14193 REGB1 = TAG_Int(1);
14194 /* ./../lib/standard//kernel.nit:214 */
14195 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
14196 /* ./compiling//compiling_icode.nit:938 */
14197 if (UNTAG_Bool(REGB1)) {
14198 /* ./compiling//compiling_icode.nit:939 */
14199 if (!once_value_3) {
14200 fra.me.REG[2] = BOX_NativeString("\", \"");
14201 REGB1 = TAG_Int(4);
14202 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14203 once_value_3 = fra.me.REG[2];
14204 register_static_object(&once_value_3);
14205 } else fra.me.REG[2] = once_value_3;
14206 fra.me.REG[2] = fra.me.REG[2];
14207 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14208 /* ./compiling//compiling_icode.nit:940 */
14209 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14210 REGB1 = TAG_Int(1);
14211 /* ./../lib/standard//collection//array.nit:245 */
14212 REGB0 = TAG_Int(0);
14213 /* ./../lib/standard//kernel.nit:213 */
14214 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
14215 /* ./../lib/standard//collection//array.nit:245 */
14216 if (UNTAG_Bool(REGB0)) {
14217 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14218 if (UNTAG_Bool(REGB0)) {
14219 } else {
14220 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
14221 }
14222 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14223 /* ./../lib/standard//kernel.nit:212 */
14224 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
14225 } else {
14226 /* ./../lib/standard//collection//array.nit:245 */
14227 REGB2 = TAG_Bool(false);
14228 REGB0 = REGB2;
14229 }
14230 if (UNTAG_Bool(REGB0)) {
14231 } else {
14232 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
14233 }
14234 /* ./../lib/standard//collection//array.nit:246 */
14235 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
14236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14237 if (UNTAG_Bool(REGB0)) {
14238 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
14239 }
14240 /* ./../lib/standard//collection//array.nit:654 */
14241 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14242 /* ./../lib/standard//collection//array.nit:246 */
14243 goto label4;
14244 label4: while(0);
14245 /* ./compiling//compiling_icode.nit:940 */
14246 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14247 /* ./compiling//compiling_icode.nit:941 */
14248 if (!once_value_5) {
14249 fra.me.REG[2] = BOX_NativeString("\"");
14250 REGB1 = TAG_Int(1);
14251 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14252 once_value_5 = fra.me.REG[2];
14253 register_static_object(&once_value_5);
14254 } else fra.me.REG[2] = once_value_5;
14255 fra.me.REG[2] = fra.me.REG[2];
14256 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14257 } else {
14258 /* ./compiling//compiling_icode.nit:943 */
14259 if (!once_value_6) {
14260 fra.me.REG[2] = BOX_NativeString("\", NULL");
14261 REGB1 = TAG_Int(7);
14262 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14263 once_value_6 = fra.me.REG[2];
14264 register_static_object(&once_value_6);
14265 } else fra.me.REG[2] = once_value_6;
14266 fra.me.REG[2] = fra.me.REG[2];
14267 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14268 }
14269 /* ./compiling//compiling_icode.nit:945 */
14270 if (!once_value_7) {
14271 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
14272 REGB1 = TAG_Int(9);
14273 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14274 once_value_7 = fra.me.REG[2];
14275 register_static_object(&once_value_7);
14276 } else fra.me.REG[2] = once_value_7;
14277 fra.me.REG[2] = fra.me.REG[2];
14278 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14279 /* ./compiling//compiling_icode.nit:946 */
14280 fra.me.REG[2] = CALL_icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
14281 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]);
14282 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
14283 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14284 /* ./compiling//compiling_icode.nit:947 */
14285 fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14286 /* ./compiling//compiling_icode.nit:948 */
14287 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14288 if (UNTAG_Bool(REGB1)) {
14289 } else {
14290 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14291 if (UNTAG_Bool(REGB0)) {
14292 REGB0 = TAG_Bool(false);
14293 REGB1 = REGB0;
14294 } else {
14295 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
14296 REGB1 = REGB0;
14297 }
14298 }
14299 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
14300 if (UNTAG_Bool(REGB1)) {
14301 /* ./compiling//compiling_icode.nit:949 */
14302 if (!once_value_8) {
14303 fra.me.REG[2] = BOX_NativeString(", ");
14304 REGB1 = TAG_Int(2);
14305 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14306 once_value_8 = fra.me.REG[2];
14307 register_static_object(&once_value_8);
14308 } else fra.me.REG[2] = once_value_8;
14309 fra.me.REG[2] = fra.me.REG[2];
14310 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14311 /* ./compiling//compiling_icode.nit:950 */
14312 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14313 if (UNTAG_Bool(REGB1)) {
14314 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 950);
14315 }
14316 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
14317 fra.me.REG[0] = CALL_string___Object___to_s(REGB1)(REGB1);
14318 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14319 } else {
14320 /* ./compiling//compiling_icode.nit:952 */
14321 if (!once_value_9) {
14322 fra.me.REG[0] = BOX_NativeString(", 0");
14323 REGB1 = TAG_Int(3);
14324 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
14325 once_value_9 = fra.me.REG[0];
14326 register_static_object(&once_value_9);
14327 } else fra.me.REG[0] = once_value_9;
14328 fra.me.REG[0] = fra.me.REG[0];
14329 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14330 }
14331 /* ./compiling//compiling_icode.nit:954 */
14332 if (!once_value_10) {
14333 fra.me.REG[0] = BOX_NativeString(");\n");
14334 REGB1 = TAG_Int(3);
14335 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
14336 once_value_10 = fra.me.REG[0];
14337 register_static_object(&once_value_10);
14338 } else fra.me.REG[0] = once_value_10;
14339 fra.me.REG[0] = fra.me.REG[0];
14340 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14341 stack_frame_head = fra.me.prev;
14342 return;
14343 }
14344 void compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
14345 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14346 val_t REGB0;
14347 val_t REGB1;
14348 val_t tmp;
14349 static val_t once_value_2; /* Once value */
14350 static val_t once_value_3; /* Once value */
14351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14352 fra.me.file = LOCATE_compiling_icode;
14353 fra.me.line = 959;
14354 fra.me.meth = LOCATE_compiling_icode___IMove___compile_to_c;
14355 fra.me.has_broke = 0;
14356 fra.me.REG_size = 4;
14357 fra.me.REG[0] = NIT_NULL;
14358 fra.me.REG[1] = NIT_NULL;
14359 fra.me.REG[2] = NIT_NULL;
14360 fra.me.REG[3] = NIT_NULL;
14361 fra.me.REG[0] = p0;
14362 fra.me.REG[1] = p1;
14363 /* ./compiling//compiling_icode.nit:961 */
14364 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14366 if (UNTAG_Bool(REGB0)) {
14367 goto label1;
14368 }
14369 /* ./compiling//compiling_icode.nit:962 */
14370 fra.me.REG[2] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14371 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14372 /* ./compiling//compiling_icode.nit:963 */
14373 fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
14374 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/;
14375 if (UNTAG_Bool(REGB0)) {
14376 } else {
14377 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 963);
14378 }
14379 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14380 /* ./compiling//compiling_icode.nit:964 */
14381 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
14382 if (UNTAG_Bool(REGB0)) {
14383 } else {
14384 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14385 REGB0 = REGB1;
14386 }
14387 if (UNTAG_Bool(REGB0)) {
14388 goto label1;
14389 }
14390 /* ./compiling//compiling_icode.nit:965 */
14391 fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14392 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14393 /* ./compiling//compiling_icode.nit:966 */
14394 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14395 /* ./compiling//compiling_icode.nit:967 */
14396 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14397 /* ./compiling//compiling_icode.nit:968 */
14398 if (!once_value_2) {
14399 fra.me.REG[3] = BOX_NativeString(" = ");
14400 REGB0 = TAG_Int(3);
14401 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14402 once_value_2 = fra.me.REG[3];
14403 register_static_object(&once_value_2);
14404 } else fra.me.REG[3] = once_value_2;
14405 fra.me.REG[3] = fra.me.REG[3];
14406 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14407 /* ./compiling//compiling_icode.nit:969 */
14408 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14409 /* ./compiling//compiling_icode.nit:970 */
14410 if (!once_value_3) {
14411 fra.me.REG[2] = BOX_NativeString(";\n");
14412 REGB0 = TAG_Int(2);
14413 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14414 once_value_3 = fra.me.REG[2];
14415 register_static_object(&once_value_3);
14416 } else fra.me.REG[2] = once_value_3;
14417 fra.me.REG[2] = fra.me.REG[2];
14418 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14419 label1: while(0);
14420 stack_frame_head = fra.me.prev;
14421 return;
14422 }
14423 void compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
14424 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14425 val_t REGB0;
14426 val_t tmp;
14427 static val_t once_value_2; /* Once value */
14428 static val_t once_value_3; /* Once value */
14429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14430 fra.me.file = LOCATE_compiling_icode;
14431 fra.me.line = 975;
14432 fra.me.meth = LOCATE_compiling_icode___IAttrRead___compile_to_c;
14433 fra.me.has_broke = 0;
14434 fra.me.REG_size = 4;
14435 fra.me.REG[0] = NIT_NULL;
14436 fra.me.REG[1] = NIT_NULL;
14437 fra.me.REG[2] = NIT_NULL;
14438 fra.me.REG[3] = NIT_NULL;
14439 fra.me.REG[0] = p0;
14440 fra.me.REG[1] = p1;
14441 /* ./compiling//compiling_icode.nit:977 */
14442 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14443 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14444 if (UNTAG_Bool(REGB0)) {
14445 goto label1;
14446 }
14447 /* ./compiling//compiling_icode.nit:978 */
14448 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14449 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14450 /* ./compiling//compiling_icode.nit:979 */
14451 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14452 /* ./compiling//compiling_icode.nit:980 */
14453 fra.me.REG[3] = CALL_icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
14454 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14455 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14456 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14457 /* ./compiling//compiling_icode.nit:981 */
14458 if (!once_value_2) {
14459 fra.me.REG[3] = BOX_NativeString("(");
14460 REGB0 = TAG_Int(1);
14461 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14462 once_value_2 = fra.me.REG[3];
14463 register_static_object(&once_value_2);
14464 } else fra.me.REG[3] = once_value_2;
14465 fra.me.REG[3] = fra.me.REG[3];
14466 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14467 /* ./compiling//compiling_icode.nit:982 */
14468 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14469 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14470 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14471 /* ./compiling//compiling_icode.nit:983 */
14472 if (!once_value_3) {
14473 fra.me.REG[0] = BOX_NativeString(")");
14474 REGB0 = TAG_Int(1);
14475 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14476 once_value_3 = fra.me.REG[0];
14477 register_static_object(&once_value_3);
14478 } else fra.me.REG[0] = once_value_3;
14479 fra.me.REG[0] = fra.me.REG[0];
14480 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14481 label1: while(0);
14482 stack_frame_head = fra.me.prev;
14483 return;
14484 }
14485 void compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
14486 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14487 val_t REGB0;
14488 val_t tmp;
14489 static val_t once_value_2; /* Once value */
14490 static val_t once_value_3; /* Once value */
14491 static val_t once_value_4; /* Once value */
14492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14493 fra.me.file = LOCATE_compiling_icode;
14494 fra.me.line = 988;
14495 fra.me.meth = LOCATE_compiling_icode___IAttrIsset___compile_to_c;
14496 fra.me.has_broke = 0;
14497 fra.me.REG_size = 4;
14498 fra.me.REG[0] = NIT_NULL;
14499 fra.me.REG[1] = NIT_NULL;
14500 fra.me.REG[2] = NIT_NULL;
14501 fra.me.REG[3] = NIT_NULL;
14502 fra.me.REG[0] = p0;
14503 fra.me.REG[1] = p1;
14504 /* ./compiling//compiling_icode.nit:990 */
14505 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14506 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14507 if (UNTAG_Bool(REGB0)) {
14508 goto label1;
14509 }
14510 /* ./compiling//compiling_icode.nit:991 */
14511 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14512 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14513 /* ./compiling//compiling_icode.nit:992 */
14514 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14515 /* ./compiling//compiling_icode.nit:993 */
14516 if (!once_value_2) {
14517 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
14518 REGB0 = TAG_Int(9);
14519 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14520 once_value_2 = fra.me.REG[3];
14521 register_static_object(&once_value_2);
14522 } else fra.me.REG[3] = once_value_2;
14523 fra.me.REG[3] = fra.me.REG[3];
14524 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14525 /* ./compiling//compiling_icode.nit:994 */
14526 fra.me.REG[3] = CALL_icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
14527 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14528 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14529 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14530 /* ./compiling//compiling_icode.nit:995 */
14531 if (!once_value_3) {
14532 fra.me.REG[3] = BOX_NativeString("(");
14533 REGB0 = TAG_Int(1);
14534 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14535 once_value_3 = fra.me.REG[3];
14536 register_static_object(&once_value_3);
14537 } else fra.me.REG[3] = once_value_3;
14538 fra.me.REG[3] = fra.me.REG[3];
14539 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14540 /* ./compiling//compiling_icode.nit:996 */
14541 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14542 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14543 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14544 /* ./compiling//compiling_icode.nit:997 */
14545 if (!once_value_4) {
14546 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
14547 REGB0 = TAG_Int(12);
14548 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14549 once_value_4 = fra.me.REG[0];
14550 register_static_object(&once_value_4);
14551 } else fra.me.REG[0] = once_value_4;
14552 fra.me.REG[0] = fra.me.REG[0];
14553 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14554 label1: while(0);
14555 stack_frame_head = fra.me.prev;
14556 return;
14557 }
14558 void compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
14559 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14560 val_t REGB0;
14561 val_t tmp;
14562 static val_t once_value_1; /* Once value */
14563 static val_t once_value_2; /* Once value */
14564 static val_t once_value_3; /* Once value */
14565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14566 fra.me.file = LOCATE_compiling_icode;
14567 fra.me.line = 1002;
14568 fra.me.meth = LOCATE_compiling_icode___IAttrWrite___compile_to_c;
14569 fra.me.has_broke = 0;
14570 fra.me.REG_size = 4;
14571 fra.me.REG[0] = NIT_NULL;
14572 fra.me.REG[1] = NIT_NULL;
14573 fra.me.REG[2] = NIT_NULL;
14574 fra.me.REG[3] = NIT_NULL;
14575 fra.me.REG[0] = p0;
14576 fra.me.REG[1] = p1;
14577 /* ./compiling//compiling_icode.nit:1004 */
14578 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14579 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14580 /* ./compiling//compiling_icode.nit:1005 */
14581 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14582 /* ./compiling//compiling_icode.nit:1006 */
14583 fra.me.REG[3] = CALL_icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
14584 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14585 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14586 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14587 /* ./compiling//compiling_icode.nit:1007 */
14588 if (!once_value_1) {
14589 fra.me.REG[3] = BOX_NativeString("(");
14590 REGB0 = TAG_Int(1);
14591 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14592 once_value_1 = fra.me.REG[3];
14593 register_static_object(&once_value_1);
14594 } else fra.me.REG[3] = once_value_1;
14595 fra.me.REG[3] = fra.me.REG[3];
14596 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14597 /* ./compiling//compiling_icode.nit:1008 */
14598 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14599 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14600 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14601 /* ./compiling//compiling_icode.nit:1009 */
14602 if (!once_value_2) {
14603 fra.me.REG[3] = BOX_NativeString(") = ");
14604 REGB0 = TAG_Int(4);
14605 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14606 once_value_2 = fra.me.REG[3];
14607 register_static_object(&once_value_2);
14608 } else fra.me.REG[3] = once_value_2;
14609 fra.me.REG[3] = fra.me.REG[3];
14610 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14611 /* ./compiling//compiling_icode.nit:1010 */
14612 fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14613 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14614 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14615 /* ./compiling//compiling_icode.nit:1011 */
14616 if (!once_value_3) {
14617 fra.me.REG[0] = BOX_NativeString(";\n");
14618 REGB0 = TAG_Int(2);
14619 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14620 once_value_3 = fra.me.REG[0];
14621 register_static_object(&once_value_3);
14622 } else fra.me.REG[0] = once_value_3;
14623 fra.me.REG[0] = fra.me.REG[0];
14624 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14625 stack_frame_head = fra.me.prev;
14626 return;
14627 }
14628 void compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
14629 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
14630 val_t REGB0;
14631 val_t REGB1;
14632 val_t tmp;
14633 static val_t once_value_2; /* Once value */
14634 static val_t once_value_3; /* Once value */
14635 static val_t once_value_4; /* Once value */
14636 static val_t once_value_5; /* Once value */
14637 static val_t once_value_6; /* Once value */
14638 static val_t once_value_7; /* Once value */
14639 static val_t once_value_8; /* Once value */
14640 static val_t once_value_9; /* Once value */
14641 static val_t once_value_10; /* Once value */
14642 static val_t once_value_11; /* Once value */
14643 static val_t once_value_12; /* Once value */
14644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14645 fra.me.file = LOCATE_compiling_icode;
14646 fra.me.line = 1016;
14647 fra.me.meth = LOCATE_compiling_icode___ITypeCheck___compile_to_c;
14648 fra.me.has_broke = 0;
14649 fra.me.REG_size = 6;
14650 fra.me.REG[0] = NIT_NULL;
14651 fra.me.REG[1] = NIT_NULL;
14652 fra.me.REG[2] = NIT_NULL;
14653 fra.me.REG[3] = NIT_NULL;
14654 fra.me.REG[4] = NIT_NULL;
14655 fra.me.REG[5] = NIT_NULL;
14656 fra.me.REG[0] = p0;
14657 fra.me.REG[1] = p1;
14658 /* ./compiling//compiling_icode.nit:1018 */
14659 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14661 if (UNTAG_Bool(REGB0)) {
14662 goto label1;
14663 }
14664 /* ./compiling//compiling_icode.nit:1020 */
14665 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14666 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14667 /* ./compiling//compiling_icode.nit:1021 */
14668 fra.me.REG[2] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14669 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
14670 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
14671 /* ./compiling//compiling_icode.nit:1022 */
14672 fra.me.REG[3] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14673 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14674 /* ./compiling//compiling_icode.nit:1023 */
14675 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14676 /* ./compiling//compiling_icode.nit:1024 */
14677 if (!once_value_2) {
14678 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
14679 REGB0 = TAG_Int(9);
14680 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14681 once_value_2 = fra.me.REG[4];
14682 register_static_object(&once_value_2);
14683 } else fra.me.REG[4] = once_value_2;
14684 fra.me.REG[4] = fra.me.REG[4];
14685 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14686 /* ./compiling//compiling_icode.nit:1025 */
14687 fra.me.REG[4] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14688 fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
14689 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14690 if (UNTAG_Bool(REGB0)) {
14691 /* ./compiling//compiling_icode.nit:1026 */
14692 fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14693 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14694 if (UNTAG_Bool(REGB0)) {
14695 /* ./compiling//compiling_icode.nit:1027 */
14696 if (!once_value_3) {
14697 fra.me.REG[4] = BOX_NativeString("(");
14698 REGB0 = TAG_Int(1);
14699 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14700 once_value_3 = fra.me.REG[4];
14701 register_static_object(&once_value_3);
14702 } else fra.me.REG[4] = once_value_3;
14703 fra.me.REG[4] = fra.me.REG[4];
14704 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14705 /* ./compiling//compiling_icode.nit:1028 */
14706 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14707 /* ./compiling//compiling_icode.nit:1029 */
14708 if (!once_value_4) {
14709 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
14710 REGB0 = TAG_Int(15);
14711 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14712 once_value_4 = fra.me.REG[4];
14713 register_static_object(&once_value_4);
14714 } else fra.me.REG[4] = once_value_4;
14715 fra.me.REG[4] = fra.me.REG[4];
14716 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14717 } else {
14718 /* ./compiling//compiling_icode.nit:1030 */
14719 fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14720 fra.me.REG[4] = CALL_static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
14721 fra.me.REG[5] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14722 fra.me.REG[5] = CALL_icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
14723 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
14724 if (UNTAG_Bool(REGB0)) {
14725 } else {
14726 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
14727 REGB0 = REGB1;
14728 }
14729 if (UNTAG_Bool(REGB0)) {
14730 /* ./compiling//compiling_icode.nit:1031 */
14731 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14732 /* ./compiling//compiling_icode.nit:1032 */
14733 if (!once_value_5) {
14734 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
14735 REGB0 = TAG_Int(11);
14736 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14737 once_value_5 = fra.me.REG[5];
14738 register_static_object(&once_value_5);
14739 } else fra.me.REG[5] = once_value_5;
14740 fra.me.REG[5] = fra.me.REG[5];
14741 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14742 /* ./compiling//compiling_icode.nit:1033 */
14743 goto label1;
14744 } else {
14745 /* ./compiling//compiling_icode.nit:1035 */
14746 if (!once_value_6) {
14747 fra.me.REG[5] = BOX_NativeString("(");
14748 REGB0 = TAG_Int(1);
14749 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14750 once_value_6 = fra.me.REG[5];
14751 register_static_object(&once_value_6);
14752 } else fra.me.REG[5] = once_value_6;
14753 fra.me.REG[5] = fra.me.REG[5];
14754 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14755 /* ./compiling//compiling_icode.nit:1036 */
14756 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14757 /* ./compiling//compiling_icode.nit:1037 */
14758 if (!once_value_7) {
14759 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
14760 REGB0 = TAG_Int(15);
14761 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14762 once_value_7 = fra.me.REG[5];
14763 register_static_object(&once_value_7);
14764 } else fra.me.REG[5] = once_value_7;
14765 fra.me.REG[5] = fra.me.REG[5];
14766 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14767 }
14768 }
14769 }
14770 /* ./compiling//compiling_icode.nit:1040 */
14771 if (!once_value_8) {
14772 fra.me.REG[5] = BOX_NativeString("VAL_ISA(");
14773 REGB0 = TAG_Int(8);
14774 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14775 once_value_8 = fra.me.REG[5];
14776 register_static_object(&once_value_8);
14777 } else fra.me.REG[5] = once_value_8;
14778 fra.me.REG[5] = fra.me.REG[5];
14779 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14780 /* ./compiling//compiling_icode.nit:1041 */
14781 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14782 /* ./compiling//compiling_icode.nit:1042 */
14783 if (!once_value_9) {
14784 fra.me.REG[3] = BOX_NativeString(", ");
14785 REGB0 = TAG_Int(2);
14786 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14787 once_value_9 = fra.me.REG[3];
14788 register_static_object(&once_value_9);
14789 } else fra.me.REG[3] = once_value_9;
14790 fra.me.REG[3] = fra.me.REG[3];
14791 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14792 /* ./compiling//compiling_icode.nit:1043 */
14793 fra.me.REG[3] = CALL_compiling_base___MMGlobalClass___color_id(fra.me.REG[2])(fra.me.REG[2]);
14794 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14795 /* ./compiling//compiling_icode.nit:1044 */
14796 if (!once_value_10) {
14797 fra.me.REG[3] = BOX_NativeString(", ");
14798 REGB0 = TAG_Int(2);
14799 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14800 once_value_10 = fra.me.REG[3];
14801 register_static_object(&once_value_10);
14802 } else fra.me.REG[3] = once_value_10;
14803 fra.me.REG[3] = fra.me.REG[3];
14804 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14805 /* ./compiling//compiling_icode.nit:1045 */
14806 fra.me.REG[2] = CALL_compiling_base___MMGlobalClass___id_id(fra.me.REG[2])(fra.me.REG[2]);
14807 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14808 /* ./compiling//compiling_icode.nit:1046 */
14809 if (!once_value_11) {
14810 fra.me.REG[2] = BOX_NativeString(")) /*cast ");
14811 REGB0 = TAG_Int(10);
14812 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14813 once_value_11 = fra.me.REG[2];
14814 register_static_object(&once_value_11);
14815 } else fra.me.REG[2] = once_value_11;
14816 fra.me.REG[2] = fra.me.REG[2];
14817 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14818 /* ./compiling//compiling_icode.nit:1047 */
14819 fra.me.REG[0] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14820 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
14821 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14822 /* ./compiling//compiling_icode.nit:1048 */
14823 if (!once_value_12) {
14824 fra.me.REG[0] = BOX_NativeString("*/");
14825 REGB0 = TAG_Int(2);
14826 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14827 once_value_12 = fra.me.REG[0];
14828 register_static_object(&once_value_12);
14829 } else fra.me.REG[0] = once_value_12;
14830 fra.me.REG[0] = fra.me.REG[0];
14831 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14832 label1: while(0);
14833 stack_frame_head = fra.me.prev;
14834 return;
14835 }
14836 void compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
14837 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
14838 val_t REGB0;
14839 val_t tmp;
14840 static val_t once_value_2; /* Once value */
14841 static val_t once_value_3; /* Once value */
14842 static val_t once_value_4; /* Once value */
14843 static val_t once_value_5; /* Once value */
14844 static val_t once_value_6; /* Once value */
14845 static val_t once_value_7; /* Once value */
14846 static val_t once_value_8; /* Once value */
14847 static val_t once_value_9; /* Once value */
14848 static val_t once_value_10; /* Once value */
14849 static val_t once_value_11; /* Once value */
14850 static val_t once_value_12; /* Once value */
14851 static val_t once_value_13; /* Once value */
14852 static val_t once_value_14; /* Once value */
14853 static val_t once_value_15; /* Once value */
14854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14855 fra.me.file = LOCATE_compiling_icode;
14856 fra.me.line = 1053;
14857 fra.me.meth = LOCATE_compiling_icode___IIs___compile_to_c;
14858 fra.me.has_broke = 0;
14859 fra.me.REG_size = 6;
14860 fra.me.REG[0] = NIT_NULL;
14861 fra.me.REG[1] = NIT_NULL;
14862 fra.me.REG[2] = NIT_NULL;
14863 fra.me.REG[3] = NIT_NULL;
14864 fra.me.REG[4] = NIT_NULL;
14865 fra.me.REG[5] = NIT_NULL;
14866 fra.me.REG[0] = p0;
14867 fra.me.REG[1] = p1;
14868 /* ./compiling//compiling_icode.nit:1055 */
14869 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14871 if (UNTAG_Bool(REGB0)) {
14872 goto label1;
14873 }
14874 /* ./compiling//compiling_icode.nit:1056 */
14875 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14876 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14877 /* ./compiling//compiling_icode.nit:1057 */
14878 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14879 /* ./compiling//compiling_icode.nit:1058 */
14880 if (!once_value_2) {
14881 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
14882 REGB0 = TAG_Int(9);
14883 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14884 once_value_2 = fra.me.REG[3];
14885 register_static_object(&once_value_2);
14886 } else fra.me.REG[3] = once_value_2;
14887 fra.me.REG[3] = fra.me.REG[3];
14888 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14889 /* ./compiling//compiling_icode.nit:1059 */
14890 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14891 fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
14892 /* ./compiling//compiling_icode.nit:1060 */
14893 fra.me.REG[4] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14894 fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
14895 /* ./compiling//compiling_icode.nit:1061 */
14896 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14897 if (UNTAG_Bool(REGB0)) {
14898 /* ./compiling//compiling_icode.nit:1062 */
14899 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14900 if (UNTAG_Bool(REGB0)) {
14901 /* ./compiling//compiling_icode.nit:1063 */
14902 if (!once_value_3) {
14903 fra.me.REG[5] = BOX_NativeString("1)");
14904 REGB0 = TAG_Int(2);
14905 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14906 once_value_3 = fra.me.REG[5];
14907 register_static_object(&once_value_3);
14908 } else fra.me.REG[5] = once_value_3;
14909 fra.me.REG[5] = fra.me.REG[5];
14910 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14911 /* ./compiling//compiling_icode.nit:1064 */
14912 goto label1;
14913 } else {
14914 /* ./compiling//compiling_icode.nit:1065 */
14915 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14916 if (UNTAG_Bool(REGB0)) {
14917 /* ./compiling//compiling_icode.nit:1066 */
14918 fra.me.REG[5] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14919 fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14920 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14921 /* ./compiling//compiling_icode.nit:1067 */
14922 if (!once_value_4) {
14923 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
14924 REGB0 = TAG_Int(11);
14925 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14926 once_value_4 = fra.me.REG[5];
14927 register_static_object(&once_value_4);
14928 } else fra.me.REG[5] = once_value_4;
14929 fra.me.REG[5] = fra.me.REG[5];
14930 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14931 /* ./compiling//compiling_icode.nit:1068 */
14932 goto label1;
14933 } else {
14934 /* ./compiling//compiling_icode.nit:1070 */
14935 if (!once_value_5) {
14936 fra.me.REG[5] = BOX_NativeString("0)");
14937 REGB0 = TAG_Int(2);
14938 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14939 once_value_5 = fra.me.REG[5];
14940 register_static_object(&once_value_5);
14941 } else fra.me.REG[5] = once_value_5;
14942 fra.me.REG[5] = fra.me.REG[5];
14943 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14944 /* ./compiling//compiling_icode.nit:1071 */
14945 goto label1;
14946 }
14947 }
14948 } else {
14949 /* ./compiling//compiling_icode.nit:1073 */
14950 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
14951 if (UNTAG_Bool(REGB0)) {
14952 /* ./compiling//compiling_icode.nit:1074 */
14953 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14954 if (UNTAG_Bool(REGB0)) {
14955 /* ./compiling//compiling_icode.nit:1075 */
14956 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14957 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14958 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14959 /* ./compiling//compiling_icode.nit:1076 */
14960 if (!once_value_6) {
14961 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
14962 REGB0 = TAG_Int(11);
14963 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14964 once_value_6 = fra.me.REG[3];
14965 register_static_object(&once_value_6);
14966 } else fra.me.REG[3] = once_value_6;
14967 fra.me.REG[3] = fra.me.REG[3];
14968 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14969 /* ./compiling//compiling_icode.nit:1077 */
14970 goto label1;
14971 } else {
14972 /* ./compiling//compiling_icode.nit:1078 */
14973 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14974 if (UNTAG_Bool(REGB0)) {
14975 /* ./compiling//compiling_icode.nit:1079 */
14976 if (!once_value_7) {
14977 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
14978 REGB0 = TAG_Int(12);
14979 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14980 once_value_7 = fra.me.REG[3];
14981 register_static_object(&once_value_7);
14982 } else fra.me.REG[3] = once_value_7;
14983 fra.me.REG[3] = fra.me.REG[3];
14984 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14985 } else {
14986 /* ./compiling//compiling_icode.nit:1081 */
14987 if (!once_value_8) {
14988 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
14989 REGB0 = TAG_Int(12);
14990 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14991 once_value_8 = fra.me.REG[3];
14992 register_static_object(&once_value_8);
14993 } else fra.me.REG[3] = once_value_8;
14994 fra.me.REG[3] = fra.me.REG[3];
14995 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14996 /* ./compiling//compiling_icode.nit:1082 */
14997 fra.me.REG[3] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14998 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14999 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15000 /* ./compiling//compiling_icode.nit:1083 */
15001 if (!once_value_9) {
15002 fra.me.REG[3] = BOX_NativeString(",");
15003 REGB0 = TAG_Int(1);
15004 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15005 once_value_9 = fra.me.REG[3];
15006 register_static_object(&once_value_9);
15007 } else fra.me.REG[3] = once_value_9;
15008 fra.me.REG[3] = fra.me.REG[3];
15009 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15010 /* ./compiling//compiling_icode.nit:1084 */
15011 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
15012 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15013 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15014 /* ./compiling//compiling_icode.nit:1085 */
15015 if (!once_value_10) {
15016 fra.me.REG[3] = BOX_NativeString("))");
15017 REGB0 = TAG_Int(2);
15018 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15019 once_value_10 = fra.me.REG[3];
15020 register_static_object(&once_value_10);
15021 } else fra.me.REG[3] = once_value_10;
15022 fra.me.REG[3] = fra.me.REG[3];
15023 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15024 /* ./compiling//compiling_icode.nit:1086 */
15025 goto label1;
15026 }
15027 }
15028 } else {
15029 /* ./compiling//compiling_icode.nit:1089 */
15030 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
15031 if (UNTAG_Bool(REGB0)) {
15032 /* ./compiling//compiling_icode.nit:1090 */
15033 if (!once_value_11) {
15034 fra.me.REG[3] = BOX_NativeString("0)");
15035 REGB0 = TAG_Int(2);
15036 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15037 once_value_11 = fra.me.REG[3];
15038 register_static_object(&once_value_11);
15039 } else fra.me.REG[3] = once_value_11;
15040 fra.me.REG[3] = fra.me.REG[3];
15041 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15042 /* ./compiling//compiling_icode.nit:1091 */
15043 goto label1;
15044 } else {
15045 /* ./compiling//compiling_icode.nit:1092 */
15046 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
15047 if (UNTAG_Bool(REGB0)) {
15048 /* ./compiling//compiling_icode.nit:1093 */
15049 if (!once_value_12) {
15050 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
15051 REGB0 = TAG_Int(12);
15052 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15053 once_value_12 = fra.me.REG[4];
15054 register_static_object(&once_value_12);
15055 } else fra.me.REG[4] = once_value_12;
15056 fra.me.REG[4] = fra.me.REG[4];
15057 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15058 } else {
15059 /* ./compiling//compiling_icode.nit:1095 */
15060 if (!once_value_13) {
15061 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
15062 REGB0 = TAG_Int(12);
15063 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15064 once_value_13 = fra.me.REG[4];
15065 register_static_object(&once_value_13);
15066 } else fra.me.REG[4] = once_value_13;
15067 fra.me.REG[4] = fra.me.REG[4];
15068 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15069 }
15070 }
15071 }
15072 }
15073 /* ./compiling//compiling_icode.nit:1098 */
15074 fra.me.REG[4] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
15075 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15076 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15077 /* ./compiling//compiling_icode.nit:1099 */
15078 if (!once_value_14) {
15079 fra.me.REG[4] = BOX_NativeString(",");
15080 REGB0 = TAG_Int(1);
15081 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15082 once_value_14 = fra.me.REG[4];
15083 register_static_object(&once_value_14);
15084 } else fra.me.REG[4] = once_value_14;
15085 fra.me.REG[4] = fra.me.REG[4];
15086 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15087 /* ./compiling//compiling_icode.nit:1100 */
15088 fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
15089 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15090 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15091 /* ./compiling//compiling_icode.nit:1101 */
15092 if (!once_value_15) {
15093 fra.me.REG[0] = BOX_NativeString("))");
15094 REGB0 = TAG_Int(2);
15095 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15096 once_value_15 = fra.me.REG[0];
15097 register_static_object(&once_value_15);
15098 } else fra.me.REG[0] = once_value_15;
15099 fra.me.REG[0] = fra.me.REG[0];
15100 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15101 label1: while(0);
15102 stack_frame_head = fra.me.prev;
15103 return;
15104 }
15105 void compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
15106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15107 val_t REGB0;
15108 val_t tmp;
15109 static val_t once_value_2; /* Once value */
15110 static val_t once_value_3; /* Once value */
15111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15112 fra.me.file = LOCATE_compiling_icode;
15113 fra.me.line = 1106;
15114 fra.me.meth = LOCATE_compiling_icode___INot___compile_to_c;
15115 fra.me.has_broke = 0;
15116 fra.me.REG_size = 4;
15117 fra.me.REG[0] = NIT_NULL;
15118 fra.me.REG[1] = NIT_NULL;
15119 fra.me.REG[2] = NIT_NULL;
15120 fra.me.REG[3] = NIT_NULL;
15121 fra.me.REG[0] = p0;
15122 fra.me.REG[1] = p1;
15123 /* ./compiling//compiling_icode.nit:1108 */
15124 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15125 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15126 if (UNTAG_Bool(REGB0)) {
15127 goto label1;
15128 }
15129 /* ./compiling//compiling_icode.nit:1109 */
15130 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15131 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15132 /* ./compiling//compiling_icode.nit:1110 */
15133 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15134 /* ./compiling//compiling_icode.nit:1111 */
15135 if (!once_value_2) {
15136 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
15137 REGB0 = TAG_Int(21);
15138 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15139 once_value_2 = fra.me.REG[3];
15140 register_static_object(&once_value_2);
15141 } else fra.me.REG[3] = once_value_2;
15142 fra.me.REG[3] = fra.me.REG[3];
15143 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15144 /* ./compiling//compiling_icode.nit:1112 */
15145 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
15146 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15147 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15148 /* ./compiling//compiling_icode.nit:1113 */
15149 if (!once_value_3) {
15150 fra.me.REG[0] = BOX_NativeString("))");
15151 REGB0 = TAG_Int(2);
15152 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15153 once_value_3 = fra.me.REG[0];
15154 register_static_object(&once_value_3);
15155 } else fra.me.REG[0] = once_value_3;
15156 fra.me.REG[0] = fra.me.REG[0];
15157 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15158 label1: while(0);
15159 stack_frame_head = fra.me.prev;
15160 return;
15161 }
15162 void compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
15163 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
15164 val_t REGB0;
15165 val_t REGB1;
15166 val_t tmp;
15167 static val_t once_value_1; /* Once value */
15168 static val_t once_value_2; /* Once value */
15169 static val_t once_value_3; /* Once value */
15170 static val_t once_value_4; /* Once value */
15171 static val_t once_value_5; /* Once value */
15172 static val_t once_value_6; /* Once value */
15173 static val_t once_value_7; /* Once value */
15174 static val_t once_value_8; /* Once value */
15175 static val_t once_value_9; /* Once value */
15176 static val_t once_value_10; /* Once value */
15177 static val_t once_value_11; /* Once value */
15178 static val_t once_value_12; /* Once value */
15179 static val_t once_value_13; /* Once value */
15180 static val_t once_value_14; /* Once value */
15181 static val_t once_value_15; /* Once value */
15182 static val_t once_value_16; /* Once value */
15183 static val_t once_value_17; /* Once value */
15184 static val_t once_value_18; /* Once value */
15185 static val_t once_value_19; /* Once value */
15186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15187 fra.me.file = LOCATE_compiling_icode;
15188 fra.me.line = 1118;
15189 fra.me.meth = LOCATE_compiling_icode___IOnce___compile_to_c;
15190 fra.me.has_broke = 0;
15191 fra.me.REG_size = 6;
15192 fra.me.REG[0] = NIT_NULL;
15193 fra.me.REG[1] = NIT_NULL;
15194 fra.me.REG[2] = NIT_NULL;
15195 fra.me.REG[3] = NIT_NULL;
15196 fra.me.REG[4] = NIT_NULL;
15197 fra.me.REG[5] = NIT_NULL;
15198 fra.me.REG[0] = p0;
15199 fra.me.REG[1] = p1;
15200 /* ./compiling//compiling_icode.nit:1120 */
15201 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15202 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15203 /* ./compiling//compiling_icode.nit:1121 */
15204 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
15205 /* ./compiling//compiling_icode.nit:1122 */
15206 fra.me.REG[2] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15207 REGB1 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/;
15208 if (UNTAG_Bool(REGB1)) {
15209 } else {
15210 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 1122);
15211 }
15212 /* ./compiling//compiling_icode.nit:1123 */
15213 fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]);
15214 REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
15215 if (UNTAG_Bool(REGB1)) {
15216 /* ./compiling//compiling_icode.nit:1124 */
15217 REGB1 = TAG_Int(5);
15218 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15219 if (!once_value_1) {
15220 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
15221 REGB1 = TAG_Int(24);
15222 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15223 once_value_1 = fra.me.REG[4];
15224 register_static_object(&once_value_1);
15225 } else fra.me.REG[4] = once_value_1;
15226 fra.me.REG[4] = fra.me.REG[4];
15227 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15228 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15229 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15230 if (!once_value_2) {
15231 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
15232 REGB1 = TAG_Int(23);
15233 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15234 once_value_2 = fra.me.REG[4];
15235 register_static_object(&once_value_2);
15236 } else fra.me.REG[4] = once_value_2;
15237 fra.me.REG[4] = fra.me.REG[4];
15238 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15239 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15240 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15241 if (!once_value_3) {
15242 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
15243 REGB1 = TAG_Int(18);
15244 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15245 once_value_3 = fra.me.REG[4];
15246 register_static_object(&once_value_3);
15247 } else fra.me.REG[4] = once_value_3;
15248 fra.me.REG[4] = fra.me.REG[4];
15249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15250 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15251 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15252 /* ./compiling//compiling_icode.nit:1125 */
15253 REGB1 = TAG_Int(3);
15254 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15255 if (!once_value_4) {
15256 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
15257 REGB1 = TAG_Int(15);
15258 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15259 once_value_4 = fra.me.REG[4];
15260 register_static_object(&once_value_4);
15261 } else fra.me.REG[4] = once_value_4;
15262 fra.me.REG[4] = fra.me.REG[4];
15263 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15264 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15265 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15266 if (!once_value_5) {
15267 fra.me.REG[4] = BOX_NativeString(") {");
15268 REGB1 = TAG_Int(3);
15269 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15270 once_value_5 = fra.me.REG[4];
15271 register_static_object(&once_value_5);
15272 } else fra.me.REG[4] = once_value_5;
15273 fra.me.REG[4] = fra.me.REG[4];
15274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15275 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15276 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15277 } else {
15278 /* ./compiling//compiling_icode.nit:1128 */
15279 REGB1 = TAG_Int(3);
15280 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15281 if (!once_value_6) {
15282 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
15283 REGB1 = TAG_Int(24);
15284 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15285 once_value_6 = fra.me.REG[4];
15286 register_static_object(&once_value_6);
15287 } else fra.me.REG[4] = once_value_6;
15288 fra.me.REG[4] = fra.me.REG[4];
15289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15290 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15292 if (!once_value_7) {
15293 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
15294 REGB1 = TAG_Int(18);
15295 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15296 once_value_7 = fra.me.REG[4];
15297 register_static_object(&once_value_7);
15298 } else fra.me.REG[4] = once_value_7;
15299 fra.me.REG[4] = fra.me.REG[4];
15300 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15301 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15302 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15303 /* ./compiling//compiling_icode.nit:1129 */
15304 REGB1 = TAG_Int(3);
15305 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15306 if (!once_value_8) {
15307 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
15308 REGB1 = TAG_Int(16);
15309 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15310 once_value_8 = fra.me.REG[4];
15311 register_static_object(&once_value_8);
15312 } else fra.me.REG[4] = once_value_8;
15313 fra.me.REG[4] = fra.me.REG[4];
15314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15315 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15317 if (!once_value_9) {
15318 fra.me.REG[4] = BOX_NativeString(") {");
15319 REGB1 = TAG_Int(3);
15320 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15321 once_value_9 = fra.me.REG[4];
15322 register_static_object(&once_value_9);
15323 } else fra.me.REG[4] = once_value_9;
15324 fra.me.REG[4] = fra.me.REG[4];
15325 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15326 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15327 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15328 }
15329 /* ./compiling//compiling_icode.nit:1131 */
15330 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
15331 /* ./compiling//compiling_icode.nit:1132 */
15332 fra.me.REG[3] = CALL_icode_base___IOnce___body(fra.me.REG[0])(fra.me.REG[0]);
15333 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15334 /* ./compiling//compiling_icode.nit:1133 */
15335 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15336 /* ./compiling//compiling_icode.nit:1134 */
15337 REGB1 = TAG_Int(5);
15338 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
15339 if (!once_value_10) {
15340 fra.me.REG[5] = BOX_NativeString("once_value_");
15341 REGB1 = TAG_Int(11);
15342 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15343 once_value_10 = fra.me.REG[5];
15344 register_static_object(&once_value_10);
15345 } else fra.me.REG[5] = once_value_10;
15346 fra.me.REG[5] = fra.me.REG[5];
15347 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15348 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
15349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15350 if (!once_value_11) {
15351 fra.me.REG[5] = BOX_NativeString(" = ");
15352 REGB1 = TAG_Int(3);
15353 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15354 once_value_11 = fra.me.REG[5];
15355 register_static_object(&once_value_11);
15356 } else fra.me.REG[5] = once_value_11;
15357 fra.me.REG[5] = fra.me.REG[5];
15358 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15360 if (!once_value_12) {
15361 fra.me.REG[5] = BOX_NativeString(";");
15362 REGB1 = TAG_Int(1);
15363 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15364 once_value_12 = fra.me.REG[5];
15365 register_static_object(&once_value_12);
15366 } else fra.me.REG[5] = once_value_12;
15367 fra.me.REG[5] = fra.me.REG[5];
15368 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15369 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15370 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15371 /* ./compiling//compiling_icode.nit:1135 */
15372 REGB1 = TAG_Int(3);
15373 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
15374 if (!once_value_13) {
15375 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
15376 REGB1 = TAG_Int(35);
15377 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15378 once_value_13 = fra.me.REG[5];
15379 register_static_object(&once_value_13);
15380 } else fra.me.REG[5] = once_value_13;
15381 fra.me.REG[5] = fra.me.REG[5];
15382 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15383 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
15384 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15385 if (!once_value_14) {
15386 fra.me.REG[5] = BOX_NativeString(");");
15387 REGB1 = TAG_Int(2);
15388 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15389 once_value_14 = fra.me.REG[5];
15390 register_static_object(&once_value_14);
15391 } else fra.me.REG[5] = once_value_14;
15392 fra.me.REG[5] = fra.me.REG[5];
15393 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15394 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15395 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15396 /* ./compiling//compiling_icode.nit:1136 */
15397 fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]);
15398 REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
15399 if (UNTAG_Bool(REGB1)) {
15400 REGB1 = TAG_Int(3);
15401 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
15402 if (!once_value_15) {
15403 fra.me.REG[4] = BOX_NativeString("once_bool_");
15404 REGB1 = TAG_Int(10);
15405 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15406 once_value_15 = fra.me.REG[4];
15407 register_static_object(&once_value_15);
15408 } else fra.me.REG[4] = once_value_15;
15409 fra.me.REG[4] = fra.me.REG[4];
15410 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15411 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15412 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15413 if (!once_value_16) {
15414 fra.me.REG[4] = BOX_NativeString(" = true;");
15415 REGB1 = TAG_Int(8);
15416 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15417 once_value_16 = fra.me.REG[4];
15418 register_static_object(&once_value_16);
15419 } else fra.me.REG[4] = once_value_16;
15420 fra.me.REG[4] = fra.me.REG[4];
15421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15422 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15423 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15424 }
15425 /* ./compiling//compiling_icode.nit:1137 */
15426 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
15427 /* ./compiling//compiling_icode.nit:1138 */
15428 REGB1 = TAG_Int(5);
15429 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
15430 if (!once_value_17) {
15431 fra.me.REG[4] = BOX_NativeString("} else ");
15432 REGB1 = TAG_Int(7);
15433 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15434 once_value_17 = fra.me.REG[4];
15435 register_static_object(&once_value_17);
15436 } else fra.me.REG[4] = once_value_17;
15437 fra.me.REG[4] = fra.me.REG[4];
15438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15439 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15440 if (!once_value_18) {
15441 fra.me.REG[4] = BOX_NativeString(" = once_value_");
15442 REGB1 = TAG_Int(14);
15443 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15444 once_value_18 = fra.me.REG[4];
15445 register_static_object(&once_value_18);
15446 } else fra.me.REG[4] = once_value_18;
15447 fra.me.REG[4] = fra.me.REG[4];
15448 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15449 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15450 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15451 if (!once_value_19) {
15452 fra.me.REG[4] = BOX_NativeString(";");
15453 REGB0 = TAG_Int(1);
15454 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15455 once_value_19 = fra.me.REG[4];
15456 register_static_object(&once_value_19);
15457 } else fra.me.REG[4] = once_value_19;
15458 fra.me.REG[4] = fra.me.REG[4];
15459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15460 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15461 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15462 /* ./compiling//compiling_icode.nit:1139 */
15463 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15464 /* ./compiling//compiling_icode.nit:1140 */
15465 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15466 stack_frame_head = fra.me.prev;
15467 return;
15468 }
15469 void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
15470 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
15471 val_t REGB0;
15472 val_t REGB1;
15473 val_t tmp;
15474 static val_t once_value_1; /* Once value */
15475 static val_t once_value_2; /* Once value */
15476 static val_t once_value_3; /* Once value */
15477 static val_t once_value_4; /* Once value */
15478 static val_t once_value_5; /* Once value */
15479 static val_t once_value_6; /* Once value */
15480 static val_t once_value_7; /* Once value */
15481 static val_t once_value_8; /* Once value */
15482 static val_t once_value_9; /* Once value */
15483 static val_t once_value_10; /* Once value */
15484 static val_t once_value_11; /* Once value */
15485 static val_t once_value_12; /* Once value */
15486 static val_t once_value_13; /* Once value */
15487 static val_t once_value_14; /* Once value */
15488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15489 fra.me.file = LOCATE_compiling_icode;
15490 fra.me.line = 1145;
15491 fra.me.meth = LOCATE_compiling_icode___IClosCall___compile_to_c;
15492 fra.me.has_broke = 0;
15493 fra.me.REG_size = 7;
15494 fra.me.REG[0] = NIT_NULL;
15495 fra.me.REG[1] = NIT_NULL;
15496 fra.me.REG[2] = NIT_NULL;
15497 fra.me.REG[3] = NIT_NULL;
15498 fra.me.REG[4] = NIT_NULL;
15499 fra.me.REG[5] = NIT_NULL;
15500 fra.me.REG[6] = NIT_NULL;
15501 fra.me.REG[0] = p0;
15502 fra.me.REG[1] = p1;
15503 /* ./compiling//compiling_icode.nit:1147 */
15504 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15505 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15506 /* ./compiling//compiling_icode.nit:1150 */
15507 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15508 if (UNTAG_Bool(REGB0)) {
15509 /* ./compiling//compiling_icode.nit:1151 */
15510 REGB0 = TAG_Int(3);
15511 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
15512 if (!once_value_1) {
15513 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
15514 REGB0 = TAG_Int(22);
15515 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15516 once_value_1 = fra.me.REG[3];
15517 register_static_object(&once_value_1);
15518 } else fra.me.REG[3] = once_value_1;
15519 fra.me.REG[3] = fra.me.REG[3];
15520 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15521 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15522 fra.me.REG[4] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15523 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15524 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15525 if (!once_value_2) {
15526 fra.me.REG[4] = BOX_NativeString("]");
15527 REGB0 = TAG_Int(1);
15528 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15529 once_value_2 = fra.me.REG[4];
15530 register_static_object(&once_value_2);
15531 } else fra.me.REG[4] = once_value_2;
15532 fra.me.REG[4] = fra.me.REG[4];
15533 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15534 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15535 /* ./compiling//compiling_icode.nit:1152 */
15536 REGB0 = TAG_Int(1);
15537 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
15538 if (!once_value_3) {
15539 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
15540 REGB0 = TAG_Int(20);
15541 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15542 once_value_3 = fra.me.REG[3];
15543 register_static_object(&once_value_3);
15544 } else fra.me.REG[3] = once_value_3;
15545 fra.me.REG[3] = fra.me.REG[3];
15546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15547 } else {
15548 /* ./compiling//compiling_icode.nit:1154 */
15549 REGB0 = TAG_Int(3);
15550 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15551 if (!once_value_4) {
15552 fra.me.REG[5] = BOX_NativeString("CREG[");
15553 REGB0 = TAG_Int(5);
15554 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
15555 once_value_4 = fra.me.REG[5];
15556 register_static_object(&once_value_4);
15557 } else fra.me.REG[5] = once_value_4;
15558 fra.me.REG[5] = fra.me.REG[5];
15559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15560 fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15561 fra.me.REG[6] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15562 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
15563 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15564 if (!once_value_5) {
15565 fra.me.REG[6] = BOX_NativeString("]");
15566 REGB0 = TAG_Int(1);
15567 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15568 once_value_5 = fra.me.REG[6];
15569 register_static_object(&once_value_5);
15570 } else fra.me.REG[6] = once_value_5;
15571 fra.me.REG[6] = fra.me.REG[6];
15572 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15573 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15574 fra.me.REG[2] = fra.me.REG[3];
15575 /* ./compiling//compiling_icode.nit:1155 */
15576 REGB0 = TAG_Int(1);
15577 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15578 if (!once_value_6) {
15579 fra.me.REG[6] = BOX_NativeString("closctx_param");
15580 REGB0 = TAG_Int(13);
15581 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15582 once_value_6 = fra.me.REG[6];
15583 register_static_object(&once_value_6);
15584 } else fra.me.REG[6] = once_value_6;
15585 fra.me.REG[6] = fra.me.REG[6];
15586 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15587 fra.me.REG[4] = fra.me.REG[3];
15588 }
15589 /* ./compiling//compiling_icode.nit:1157 */
15590 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
15591 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15592 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15593 /* ./compiling//compiling_icode.nit:1159 */
15594 REGB0 = TAG_Int(7);
15595 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15596 if (!once_value_7) {
15597 fra.me.REG[6] = BOX_NativeString("((");
15598 REGB0 = TAG_Int(2);
15599 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15600 once_value_7 = fra.me.REG[6];
15601 register_static_object(&once_value_7);
15602 } else fra.me.REG[6] = once_value_7;
15603 fra.me.REG[6] = fra.me.REG[6];
15604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15605 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
15606 fra.me.REG[5] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15607 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
15608 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15609 if (!once_value_8) {
15610 fra.me.REG[5] = BOX_NativeString(")(");
15611 REGB0 = TAG_Int(2);
15612 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
15613 once_value_8 = fra.me.REG[5];
15614 register_static_object(&once_value_8);
15615 } else fra.me.REG[5] = once_value_8;
15616 fra.me.REG[5] = fra.me.REG[5];
15617 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15618 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15619 if (!once_value_9) {
15620 fra.me.REG[2] = BOX_NativeString("))(");
15621 REGB0 = TAG_Int(3);
15622 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15623 once_value_9 = fra.me.REG[2];
15624 register_static_object(&once_value_9);
15625 } else fra.me.REG[2] = once_value_9;
15626 fra.me.REG[2] = fra.me.REG[2];
15627 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15628 if (!once_value_10) {
15629 fra.me.REG[2] = BOX_NativeString(", ");
15630 REGB0 = TAG_Int(2);
15631 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15632 once_value_10 = fra.me.REG[2];
15633 register_static_object(&once_value_10);
15634 } else fra.me.REG[2] = once_value_10;
15635 fra.me.REG[2] = fra.me.REG[2];
15636 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
15637 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15638 if (!once_value_11) {
15639 fra.me.REG[2] = BOX_NativeString(")");
15640 REGB0 = TAG_Int(1);
15641 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15642 once_value_11 = fra.me.REG[2];
15643 register_static_object(&once_value_11);
15644 } else fra.me.REG[2] = once_value_11;
15645 fra.me.REG[2] = fra.me.REG[2];
15646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15647 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15648 /* ./compiling//compiling_icode.nit:1160 */
15649 fra.me.REG[2] = NEW_Writer_compiling_writer___Writer___init();
15650 /* ./compiling//compiling_icode.nit:1161 */
15651 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15652 /* ./compiling//compiling_icode.nit:1162 */
15653 CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
15654 /* ./compiling//compiling_icode.nit:1165 */
15655 REGB0 = TAG_Int(3);
15656 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
15657 if (!once_value_12) {
15658 fra.me.REG[3] = BOX_NativeString("if (");
15659 REGB0 = TAG_Int(4);
15660 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15661 once_value_12 = fra.me.REG[3];
15662 register_static_object(&once_value_12);
15663 } else fra.me.REG[3] = once_value_12;
15664 fra.me.REG[3] = fra.me.REG[3];
15665 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15666 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
15667 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15668 if (!once_value_13) {
15669 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
15670 REGB0 = TAG_Int(14);
15671 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15672 once_value_13 = fra.me.REG[4];
15673 register_static_object(&once_value_13);
15674 } else fra.me.REG[4] = once_value_13;
15675 fra.me.REG[4] = fra.me.REG[4];
15676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15677 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15678 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15679 /* ./compiling//compiling_icode.nit:1166 */
15680 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
15681 /* ./compiling//compiling_icode.nit:1167 */
15682 fra.me.REG[0] = CALL_icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
15683 /* ./compiling//compiling_icode.nit:1168 */
15684 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15685 if (UNTAG_Bool(REGB0)) {
15686 } else {
15687 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15688 if (UNTAG_Bool(REGB1)) {
15689 REGB1 = TAG_Bool(false);
15690 REGB0 = REGB1;
15691 } else {
15692 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
15693 REGB0 = REGB1;
15694 }
15695 }
15696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15697 if (UNTAG_Bool(REGB0)) {
15698 /* ./compiling//compiling_icode.nit:1169 */
15699 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15700 if (UNTAG_Bool(REGB0)) {
15701 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 1169);
15702 }
15703 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15704 }
15705 /* ./compiling//compiling_icode.nit:1171 */
15706 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
15707 fra.me.REG[0] = CALL_icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
15708 CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15709 /* ./compiling//compiling_icode.nit:1172 */
15710 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
15711 /* ./compiling//compiling_icode.nit:1173 */
15712 if (!once_value_14) {
15713 fra.me.REG[0] = BOX_NativeString("}");
15714 REGB0 = TAG_Int(1);
15715 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15716 once_value_14 = fra.me.REG[0];
15717 register_static_object(&once_value_14);
15718 } else fra.me.REG[0] = once_value_14;
15719 fra.me.REG[0] = fra.me.REG[0];
15720 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15721 stack_frame_head = fra.me.prev;
15722 return;
15723 }
15724 void compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
15725 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15726 val_t REGB0;
15727 val_t tmp;
15728 static val_t once_value_2; /* Once value */
15729 static val_t once_value_3; /* Once value */
15730 static val_t once_value_4; /* Once value */
15731 static val_t once_value_5; /* Once value */
15732 static val_t once_value_6; /* Once value */
15733 static val_t once_value_7; /* Once value */
15734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15735 fra.me.file = LOCATE_compiling_icode;
15736 fra.me.line = 1178;
15737 fra.me.meth = LOCATE_compiling_icode___IHasClos___compile_to_c;
15738 fra.me.has_broke = 0;
15739 fra.me.REG_size = 5;
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[3] = NIT_NULL;
15744 fra.me.REG[4] = NIT_NULL;
15745 fra.me.REG[0] = p0;
15746 fra.me.REG[1] = p1;
15747 /* ./compiling//compiling_icode.nit:1180 */
15748 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15750 if (UNTAG_Bool(REGB0)) {
15751 goto label1;
15752 }
15753 /* ./compiling//compiling_icode.nit:1181 */
15754 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15755 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15756 /* ./compiling//compiling_icode.nit:1182 */
15757 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15758 /* ./compiling//compiling_icode.nit:1183 */
15759 if (!once_value_2) {
15760 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
15761 REGB0 = TAG_Int(9);
15762 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15763 once_value_2 = fra.me.REG[3];
15764 register_static_object(&once_value_2);
15765 } else fra.me.REG[3] = once_value_2;
15766 fra.me.REG[3] = fra.me.REG[3];
15767 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15768 /* ./compiling//compiling_icode.nit:1184 */
15769 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15770 if (UNTAG_Bool(REGB0)) {
15771 /* ./compiling//compiling_icode.nit:1185 */
15772 if (!once_value_3) {
15773 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
15774 REGB0 = TAG_Int(22);
15775 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15776 once_value_3 = fra.me.REG[3];
15777 register_static_object(&once_value_3);
15778 } else fra.me.REG[3] = once_value_3;
15779 fra.me.REG[3] = fra.me.REG[3];
15780 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15781 /* ./compiling//compiling_icode.nit:1186 */
15782 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15783 fra.me.REG[4] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15784 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15785 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15786 /* ./compiling//compiling_icode.nit:1187 */
15787 if (!once_value_4) {
15788 fra.me.REG[4] = BOX_NativeString("]");
15789 REGB0 = TAG_Int(1);
15790 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15791 once_value_4 = fra.me.REG[4];
15792 register_static_object(&once_value_4);
15793 } else fra.me.REG[4] = once_value_4;
15794 fra.me.REG[4] = fra.me.REG[4];
15795 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15796 } else {
15797 /* ./compiling//compiling_icode.nit:1189 */
15798 if (!once_value_5) {
15799 fra.me.REG[4] = BOX_NativeString("CREG[");
15800 REGB0 = TAG_Int(5);
15801 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15802 once_value_5 = fra.me.REG[4];
15803 register_static_object(&once_value_5);
15804 } else fra.me.REG[4] = once_value_5;
15805 fra.me.REG[4] = fra.me.REG[4];
15806 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15807 /* ./compiling//compiling_icode.nit:1190 */
15808 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15809 fra.me.REG[0] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15810 fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15811 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15812 /* ./compiling//compiling_icode.nit:1191 */
15813 if (!once_value_6) {
15814 fra.me.REG[0] = BOX_NativeString("]");
15815 REGB0 = TAG_Int(1);
15816 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15817 once_value_6 = fra.me.REG[0];
15818 register_static_object(&once_value_6);
15819 } else fra.me.REG[0] = once_value_6;
15820 fra.me.REG[0] = fra.me.REG[0];
15821 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15822 }
15823 /* ./compiling//compiling_icode.nit:1193 */
15824 if (!once_value_7) {
15825 fra.me.REG[0] = BOX_NativeString(" != NULL)");
15826 REGB0 = TAG_Int(9);
15827 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15828 once_value_7 = fra.me.REG[0];
15829 register_static_object(&once_value_7);
15830 } else fra.me.REG[0] = once_value_7;
15831 fra.me.REG[0] = fra.me.REG[0];
15832 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15833 label1: while(0);
15834 stack_frame_head = fra.me.prev;
15835 return;
15836 }
15837 val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
15838 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15839 val_t REGB0;
15840 val_t REGB1;
15841 val_t REGB2;
15842 val_t tmp;
15843 static val_t once_value_1; /* Once value */
15844 static val_t once_value_2; /* Once value */
15845 static val_t once_value_3; /* Once value */
15846 static val_t once_value_4; /* Once value */
15847 static val_t once_value_5; /* Once value */
15848 static val_t once_value_6; /* Once value */
15849 static val_t once_value_7; /* Once value */
15850 static val_t once_value_8; /* Once value */
15851 static val_t once_value_9; /* Once value */
15852 static val_t once_value_10; /* Once value */
15853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15854 fra.me.file = LOCATE_compiling_icode;
15855 fra.me.line = 1198;
15856 fra.me.meth = LOCATE_compiling_icode___IClosureDef___compile_closure;
15857 fra.me.has_broke = 0;
15858 fra.me.REG_size = 9;
15859 fra.me.REG[0] = NIT_NULL;
15860 fra.me.REG[1] = NIT_NULL;
15861 fra.me.REG[2] = NIT_NULL;
15862 fra.me.REG[3] = NIT_NULL;
15863 fra.me.REG[4] = NIT_NULL;
15864 fra.me.REG[5] = NIT_NULL;
15865 fra.me.REG[6] = NIT_NULL;
15866 fra.me.REG[7] = NIT_NULL;
15867 fra.me.REG[8] = NIT_NULL;
15868 fra.me.REG[0] = p0;
15869 fra.me.REG[1] = p1;
15870 /* ./compiling//compiling_icode.nit:1202 */
15871 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
15872 /* ./compiling//compiling_icode.nit:1205 */
15873 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15874 /* ./compiling//compiling_icode.nit:1206 */
15875 REGB1 = TAG_Bool(true);
15876 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
15877 /* ./compiling//compiling_icode.nit:1209 */
15878 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
15879 /* ./compiling//compiling_icode.nit:1210 */
15880 fra.me.REG[4] = NEW_HashSet_hash_collection___HashSet___init();
15881 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15882 /* ./compiling//compiling_icode.nit:1213 */
15883 fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
15884 /* ./compiling//compiling_icode.nit:1214 */
15885 fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
15886 /* ./compiling//compiling_icode.nit:1215 */
15887 fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
15888 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
15889 CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
15890 /* ./compiling//compiling_icode.nit:1216 */
15891 fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
15892 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
15893 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
15894 /* ./compiling//compiling_icode.nit:1219 */
15895 REGB1 = TAG_Int(5);
15896 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
15897 if (!once_value_1) {
15898 fra.me.REG[7] = BOX_NativeString("OC_");
15899 REGB1 = TAG_Int(3);
15900 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15901 once_value_1 = fra.me.REG[7];
15902 register_static_object(&once_value_1);
15903 } else fra.me.REG[7] = once_value_1;
15904 fra.me.REG[7] = fra.me.REG[7];
15905 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15906 fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
15907 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15908 if (!once_value_2) {
15909 fra.me.REG[7] = BOX_NativeString("_");
15910 REGB1 = TAG_Int(1);
15911 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15912 once_value_2 = fra.me.REG[7];
15913 register_static_object(&once_value_2);
15914 } else fra.me.REG[7] = once_value_2;
15915 fra.me.REG[7] = fra.me.REG[7];
15916 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15917 REGB1 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
15918 fra.me.REG[7] = CALL_string___Object___to_s(REGB1)(REGB1);
15919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15920 if (!once_value_3) {
15921 fra.me.REG[7] = BOX_NativeString("");
15922 REGB1 = TAG_Int(0);
15923 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15924 once_value_3 = fra.me.REG[7];
15925 register_static_object(&once_value_3);
15926 } else fra.me.REG[7] = once_value_3;
15927 fra.me.REG[7] = fra.me.REG[7];
15928 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15929 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15930 /* ./compiling//compiling_icode.nit:1220 */
15931 fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
15932 if (!once_value_4) {
15933 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
15934 REGB1 = TAG_Int(29);
15935 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
15936 once_value_4 = fra.me.REG[8];
15937 register_static_object(&once_value_4);
15938 } else fra.me.REG[8] = once_value_4;
15939 fra.me.REG[8] = fra.me.REG[8];
15940 fra.me.REG[8] = CALL_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);
15941 /* ./compiling//compiling_icode.nit:1221 */
15942 fra.me.REG[7] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
15943 fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
15944 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
15945 /* ./compiling//compiling_icode.nit:1223 */
15946 fra.me.REG[8] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[8]);
15947 /* ./compiling//compiling_icode.nit:1224 */
15948 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
15949 if (UNTAG_Bool(REGB1)) {
15950 } else {
15951 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
15952 if (UNTAG_Bool(REGB2)) {
15953 REGB2 = TAG_Bool(false);
15954 REGB1 = REGB2;
15955 } else {
15956 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
15957 REGB1 = REGB2;
15958 }
15959 }
15960 if (UNTAG_Bool(REGB1)) {
15961 /* ./compiling//compiling_icode.nit:1225 */
15962 if (!once_value_5) {
15963 fra.me.REG[0] = BOX_NativeString("return;");
15964 REGB1 = TAG_Int(7);
15965 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
15966 once_value_5 = fra.me.REG[0];
15967 register_static_object(&once_value_5);
15968 } else fra.me.REG[0] = once_value_5;
15969 fra.me.REG[0] = fra.me.REG[0];
15970 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15971 } else {
15972 /* ./compiling//compiling_icode.nit:1227 */
15973 REGB1 = TAG_Int(3);
15974 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB1);
15975 if (!once_value_6) {
15976 fra.me.REG[7] = BOX_NativeString("return ");
15977 REGB1 = TAG_Int(7);
15978 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15979 once_value_6 = fra.me.REG[7];
15980 register_static_object(&once_value_6);
15981 } else fra.me.REG[7] = once_value_6;
15982 fra.me.REG[7] = fra.me.REG[7];
15983 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
15984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
15985 if (!once_value_7) {
15986 fra.me.REG[8] = BOX_NativeString(";");
15987 REGB1 = TAG_Int(1);
15988 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
15989 once_value_7 = fra.me.REG[8];
15990 register_static_object(&once_value_7);
15991 } else fra.me.REG[8] = once_value_7;
15992 fra.me.REG[8] = fra.me.REG[8];
15993 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
15994 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15995 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15996 }
15997 /* ./compiling//compiling_icode.nit:1229 */
15998 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
15999 /* ./compiling//compiling_icode.nit:1230 */
16000 if (!once_value_8) {
16001 fra.me.REG[0] = BOX_NativeString("}");
16002 REGB1 = TAG_Int(1);
16003 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
16004 once_value_8 = fra.me.REG[0];
16005 register_static_object(&once_value_8);
16006 } else fra.me.REG[0] = once_value_8;
16007 fra.me.REG[0] = fra.me.REG[0];
16008 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16009 /* ./compiling//compiling_icode.nit:1233 */
16010 CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16011 /* ./compiling//compiling_icode.nit:1234 */
16012 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16013 /* ./compiling//compiling_icode.nit:1235 */
16014 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
16015 /* ./compiling//compiling_icode.nit:1236 */
16016 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16017 /* ./compiling//compiling_icode.nit:1237 */
16018 REGB0 = TAG_Int(3);
16019 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
16020 if (!once_value_9) {
16021 fra.me.REG[1] = BOX_NativeString("((fun_t)");
16022 REGB0 = TAG_Int(8);
16023 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
16024 once_value_9 = fra.me.REG[1];
16025 register_static_object(&once_value_9);
16026 } else fra.me.REG[1] = once_value_9;
16027 fra.me.REG[1] = fra.me.REG[1];
16028 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16030 if (!once_value_10) {
16031 fra.me.REG[6] = BOX_NativeString(")");
16032 REGB0 = TAG_Int(1);
16033 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
16034 once_value_10 = fra.me.REG[6];
16035 register_static_object(&once_value_10);
16036 } else fra.me.REG[6] = once_value_10;
16037 fra.me.REG[6] = fra.me.REG[6];
16038 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16039 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
16040 goto label11;
16041 label11: while(0);
16042 stack_frame_head = fra.me.prev;
16043 return fra.me.REG[3];
16044 }