mm: moves class type detection to class building analysis
[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:678 */
4523 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4524 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
4525 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4526 if (UNTAG_Bool(REGB0)) {
4527 /* ./compiling//compiling_icode.nit:679 */
4528 CALL_compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4529 }
4530 }
4531 stack_frame_head = fra.me.prev;
4532 return;
4533 }
4534 void compiling_icode___INative___compile_extern_method_to_c(val_t p0, val_t p1){
4535 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4536 val_t REGB0;
4537 val_t REGB1;
4538 val_t REGB2;
4539 val_t REGB3;
4540 val_t REGB4;
4541 val_t tmp;
4542 static val_t once_value_1; /* Once value */
4543 static val_t once_value_2; /* Once value */
4544 static val_t once_value_6; /* Once value */
4545 static val_t once_value_7; /* Once value */
4546 static val_t once_value_8; /* Once value */
4547 static val_t once_value_9; /* Once value */
4548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4549 fra.me.file = LOCATE_compiling_icode;
4550 fra.me.line = 683;
4551 fra.me.meth = LOCATE_compiling_icode___INative___compile_extern_method_to_c;
4552 fra.me.has_broke = 0;
4553 fra.me.REG_size = 7;
4554 fra.me.REG[0] = NIT_NULL;
4555 fra.me.REG[1] = NIT_NULL;
4556 fra.me.REG[2] = NIT_NULL;
4557 fra.me.REG[3] = NIT_NULL;
4558 fra.me.REG[4] = NIT_NULL;
4559 fra.me.REG[5] = NIT_NULL;
4560 fra.me.REG[6] = NIT_NULL;
4561 fra.me.REG[0] = p0;
4562 fra.me.REG[1] = p1;
4563 /* ./compiling//compiling_icode.nit:685 */
4564 REGB0 = TAG_Int(3);
4565 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
4566 if (!once_value_1) {
4567 fra.me.REG[3] = BOX_NativeString("");
4568 REGB0 = TAG_Int(0);
4569 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
4570 once_value_1 = fra.me.REG[3];
4571 register_static_object(&once_value_1);
4572 } else fra.me.REG[3] = once_value_1;
4573 fra.me.REG[3] = fra.me.REG[3];
4574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4575 fra.me.REG[3] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4576 fra.me.REG[4] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4577 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
4578 fra.me.REG[4] = CALL_mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4580 if (!once_value_2) {
4581 fra.me.REG[4] = BOX_NativeString("___out");
4582 REGB0 = TAG_Int(6);
4583 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
4584 once_value_2 = fra.me.REG[4];
4585 register_static_object(&once_value_2);
4586 } else fra.me.REG[4] = once_value_2;
4587 fra.me.REG[4] = fra.me.REG[4];
4588 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4589 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4590 /* ./compiling//compiling_icode.nit:687 */
4591 fra.me.REG[4] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4592 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
4593 /* ./compiling//compiling_icode.nit:688 */
4594 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4595 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4596 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4597 if (UNTAG_Bool(REGB1)) {
4598 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 688);
4599 }
4600 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4601 REGB2 = TAG_Int(1);
4602 /* ./../lib/standard//kernel.nit:215 */
4603 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4604 /* ./compiling//compiling_icode.nit:688 */
4605 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4606 if (UNTAG_Bool(REGB1)) {
4607 } else {
4608 /* ./../lib/standard//kernel.nit:207 */
4609 REGB2 = TAG_Bool((REGB0)==(REGB2));
4610 /* ./compiling//compiling_icode.nit:688 */
4611 REGB1 = REGB2;
4612 }
4613 if (UNTAG_Bool(REGB1)) {
4614 } else {
4615 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 688);
4616 }
4617 /* ./compiling//compiling_icode.nit:690 */
4618 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4619 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4620 /* ./compiling//compiling_icode.nit:692 */
4621 fra.me.REG[5] = NEW_Array_array___Array___init();
4622 /* ./compiling//compiling_icode.nit:693 */
4623 REGB1 = TAG_Int(0);
4624 /* ./../lib/standard//collection//array.nit:243 */
4625 fra.me.REG[6] = fra.me.REG[3];
4626 /* ./../lib/standard//collection//array.nit:245 */
4627 REGB2 = TAG_Int(0);
4628 /* ./../lib/standard//kernel.nit:213 */
4629 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4630 /* ./../lib/standard//collection//array.nit:245 */
4631 if (UNTAG_Bool(REGB2)) {
4632 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4633 if (UNTAG_Bool(REGB2)) {
4634 } else {
4635 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4636 }
4637 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
4638 /* ./../lib/standard//kernel.nit:212 */
4639 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4640 } else {
4641 /* ./../lib/standard//collection//array.nit:245 */
4642 REGB0 = TAG_Bool(false);
4643 REGB2 = REGB0;
4644 }
4645 if (UNTAG_Bool(REGB2)) {
4646 } else {
4647 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4648 }
4649 /* ./../lib/standard//collection//array.nit:246 */
4650 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
4651 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4652 if (UNTAG_Bool(REGB2)) {
4653 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4654 }
4655 /* ./../lib/standard//collection//array.nit:654 */
4656 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
4657 /* ./../lib/standard//collection//array.nit:246 */
4658 goto label3;
4659 label3: while(0);
4660 /* ./compiling//compiling_icode.nit:693 */
4661 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4662 /* ./compiling//compiling_icode.nit:694 */
4663 REGB1 = TAG_Int(0);
4664 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4665 if (UNTAG_Bool(REGB2)) {
4666 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 694);
4667 }
4668 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4669 /* ./../lib/standard//kernel.nit:332 */
4670 while(1) {
4671 /* ./../lib/standard//kernel.nit:212 */
4672 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4673 /* ./../lib/standard//kernel.nit:332 */
4674 if (UNTAG_Bool(REGB0)) {
4675 /* ./compiling//compiling_icode.nit:694 */
4676 REGB0 = REGB1;
4677 /* ./compiling//compiling_icode.nit:695 */
4678 REGB3 = TAG_Int(1);
4679 /* ./../lib/standard//kernel.nit:215 */
4680 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4681 /* ./../lib/standard//collection//array.nit:243 */
4682 fra.me.REG[4] = fra.me.REG[3];
4683 /* ./../lib/standard//collection//array.nit:245 */
4684 REGB0 = TAG_Int(0);
4685 /* ./../lib/standard//kernel.nit:213 */
4686 REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
4687 /* ./../lib/standard//collection//array.nit:245 */
4688 if (UNTAG_Bool(REGB0)) {
4689 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4690 if (UNTAG_Bool(REGB0)) {
4691 } else {
4692 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
4693 }
4694 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4695 /* ./../lib/standard//kernel.nit:212 */
4696 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
4697 } else {
4698 /* ./../lib/standard//collection//array.nit:245 */
4699 REGB4 = TAG_Bool(false);
4700 REGB0 = REGB4;
4701 }
4702 if (UNTAG_Bool(REGB0)) {
4703 } else {
4704 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
4705 }
4706 /* ./../lib/standard//collection//array.nit:246 */
4707 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
4708 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4709 if (UNTAG_Bool(REGB0)) {
4710 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
4711 }
4712 /* ./../lib/standard//collection//array.nit:654 */
4713 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
4714 /* ./../lib/standard//collection//array.nit:246 */
4715 goto label4;
4716 label4: while(0);
4717 /* ./compiling//compiling_icode.nit:695 */
4718 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
4719 /* ./../lib/standard//kernel.nit:334 */
4720 REGB3 = TAG_Int(1);
4721 /* ./../lib/standard//kernel.nit:215 */
4722 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
4723 /* ./../lib/standard//kernel.nit:334 */
4724 REGB1 = REGB3;
4725 } else {
4726 /* ./../lib/standard//kernel.nit:332 */
4727 goto label5;
4728 }
4729 }
4730 label5: while(0);
4731 /* ./compiling//compiling_icode.nit:697 */
4732 REGB1 = TAG_Int(5);
4733 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
4734 if (!once_value_6) {
4735 fra.me.REG[4] = BOX_NativeString("");
4736 REGB1 = TAG_Int(0);
4737 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
4738 once_value_6 = fra.me.REG[4];
4739 register_static_object(&once_value_6);
4740 } else fra.me.REG[4] = once_value_6;
4741 fra.me.REG[4] = fra.me.REG[4];
4742 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4743 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4744 if (!once_value_7) {
4745 fra.me.REG[2] = BOX_NativeString("(");
4746 REGB1 = TAG_Int(1);
4747 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4748 once_value_7 = fra.me.REG[2];
4749 register_static_object(&once_value_7);
4750 } else fra.me.REG[2] = once_value_7;
4751 fra.me.REG[2] = fra.me.REG[2];
4752 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4753 if (!once_value_8) {
4754 fra.me.REG[2] = BOX_NativeString(", ");
4755 REGB1 = TAG_Int(2);
4756 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4757 once_value_8 = fra.me.REG[2];
4758 register_static_object(&once_value_8);
4759 } else fra.me.REG[2] = once_value_8;
4760 fra.me.REG[2] = fra.me.REG[2];
4761 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
4762 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4763 if (!once_value_9) {
4764 fra.me.REG[2] = BOX_NativeString(")");
4765 REGB1 = TAG_Int(1);
4766 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
4767 once_value_9 = fra.me.REG[2];
4768 register_static_object(&once_value_9);
4769 } else fra.me.REG[2] = once_value_9;
4770 fra.me.REG[2] = fra.me.REG[2];
4771 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4772 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4773 /* ./compiling//compiling_icode.nit:699 */
4774 REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
4775 if (UNTAG_Bool(REGB1)) {
4776 }
4777 /* ./compiling//compiling_icode.nit:700 */
4778 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4779 /* ./compiling//compiling_icode.nit:701 */
4780 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4781 stack_frame_head = fra.me.prev;
4782 return;
4783 }
4784 void compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){
4785 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4786 val_t REGB0;
4787 val_t REGB1;
4788 val_t REGB2;
4789 val_t tmp;
4790 static val_t once_value_1; /* Once value */
4791 static val_t once_value_2; /* Once value */
4792 static val_t once_value_3; /* Once value */
4793 static val_t once_value_4; /* Once value */
4794 static val_t once_value_6; /* Once value */
4795 static val_t once_value_7; /* Once value */
4796 static val_t once_value_8; /* Once value */
4797 static val_t once_value_10; /* Once value */
4798 static val_t once_value_11; /* Once value */
4799 static val_t once_value_12; /* Once value */
4800 static val_t once_value_13; /* Once value */
4801 static val_t once_value_15; /* Once value */
4802 static val_t once_value_16; /* Once value */
4803 static val_t once_value_17; /* Once value */
4804 static val_t once_value_18; /* Once value */
4805 static val_t once_value_20; /* Once value */
4806 static val_t once_value_21; /* Once value */
4807 static val_t once_value_22; /* Once value */
4808 static val_t once_value_23; /* Once value */
4809 static val_t once_value_25; /* Once value */
4810 static val_t once_value_26; /* Once value */
4811 static val_t once_value_27; /* Once value */
4812 static val_t once_value_28; /* Once value */
4813 static val_t once_value_30; /* Once value */
4814 static val_t once_value_31; /* Once value */
4815 static val_t once_value_32; /* Once value */
4816 static val_t once_value_33; /* Once value */
4817 static val_t once_value_35; /* Once value */
4818 static val_t once_value_36; /* Once value */
4819 static val_t once_value_37; /* Once value */
4820 static val_t once_value_38; /* Once value */
4821 static val_t once_value_40; /* Once value */
4822 static val_t once_value_42; /* Once value */
4823 static val_t once_value_43; /* Once value */
4824 static val_t once_value_44; /* Once value */
4825 static val_t once_value_45; /* Once value */
4826 static val_t once_value_47; /* Once value */
4827 static val_t once_value_49; /* Once value */
4828 static val_t once_value_50; /* Once value */
4829 static val_t once_value_51; /* Once value */
4830 static val_t once_value_52; /* Once value */
4831 static val_t once_value_54; /* Once value */
4832 static val_t once_value_56; /* Once value */
4833 static val_t once_value_57; /* Once value */
4834 static val_t once_value_58; /* Once value */
4835 static val_t once_value_59; /* Once value */
4836 static val_t once_value_61; /* Once value */
4837 static val_t once_value_63; /* Once value */
4838 static val_t once_value_64; /* Once value */
4839 static val_t once_value_65; /* Once value */
4840 static val_t once_value_66; /* Once value */
4841 static val_t once_value_68; /* Once value */
4842 static val_t once_value_70; /* Once value */
4843 static val_t once_value_71; /* Once value */
4844 static val_t once_value_72; /* Once value */
4845 static val_t once_value_73; /* Once value */
4846 static val_t once_value_75; /* Once value */
4847 static val_t once_value_77; /* Once value */
4848 static val_t once_value_78; /* Once value */
4849 static val_t once_value_79; /* Once value */
4850 static val_t once_value_80; /* Once value */
4851 static val_t once_value_82; /* Once value */
4852 static val_t once_value_84; /* Once value */
4853 static val_t once_value_85; /* Once value */
4854 static val_t once_value_86; /* Once value */
4855 static val_t once_value_87; /* Once value */
4856 static val_t once_value_89; /* Once value */
4857 static val_t once_value_91; /* Once value */
4858 static val_t once_value_92; /* Once value */
4859 static val_t once_value_93; /* Once value */
4860 static val_t once_value_94; /* Once value */
4861 static val_t once_value_96; /* Once value */
4862 static val_t once_value_98; /* Once value */
4863 static val_t once_value_99; /* Once value */
4864 static val_t once_value_100; /* Once value */
4865 static val_t once_value_101; /* Once value */
4866 static val_t once_value_103; /* Once value */
4867 static val_t once_value_105; /* Once value */
4868 static val_t once_value_106; /* Once value */
4869 static val_t once_value_107; /* Once value */
4870 static val_t once_value_108; /* Once value */
4871 static val_t once_value_110; /* Once value */
4872 static val_t once_value_112; /* Once value */
4873 static val_t once_value_113; /* Once value */
4874 static val_t once_value_114; /* Once value */
4875 static val_t once_value_115; /* Once value */
4876 static val_t once_value_117; /* Once value */
4877 static val_t once_value_119; /* Once value */
4878 static val_t once_value_120; /* Once value */
4879 static val_t once_value_121; /* Once value */
4880 static val_t once_value_122; /* Once value */
4881 static val_t once_value_124; /* Once value */
4882 static val_t once_value_126; /* Once value */
4883 static val_t once_value_127; /* Once value */
4884 static val_t once_value_128; /* Once value */
4885 static val_t once_value_129; /* Once value */
4886 static val_t once_value_130; /* Once value */
4887 static val_t once_value_131; /* Once value */
4888 static val_t once_value_133; /* Once value */
4889 static val_t once_value_134; /* Once value */
4890 static val_t once_value_135; /* Once value */
4891 static val_t once_value_136; /* Once value */
4892 static val_t once_value_138; /* Once value */
4893 static val_t once_value_139; /* Once value */
4894 static val_t once_value_140; /* Once value */
4895 static val_t once_value_141; /* Once value */
4896 static val_t once_value_143; /* Once value */
4897 static val_t once_value_144; /* Once value */
4898 static val_t once_value_145; /* Once value */
4899 static val_t once_value_146; /* Once value */
4900 static val_t once_value_148; /* Once value */
4901 static val_t once_value_149; /* Once value */
4902 static val_t once_value_150; /* Once value */
4903 static val_t once_value_151; /* Once value */
4904 static val_t once_value_153; /* Once value */
4905 static val_t once_value_155; /* Once value */
4906 static val_t once_value_156; /* Once value */
4907 static val_t once_value_157; /* Once value */
4908 static val_t once_value_158; /* Once value */
4909 static val_t once_value_160; /* Once value */
4910 static val_t once_value_162; /* Once value */
4911 static val_t once_value_163; /* Once value */
4912 static val_t once_value_164; /* Once value */
4913 static val_t once_value_165; /* Once value */
4914 static val_t once_value_167; /* Once value */
4915 static val_t once_value_169; /* Once value */
4916 static val_t once_value_170; /* Once value */
4917 static val_t once_value_171; /* Once value */
4918 static val_t once_value_172; /* Once value */
4919 static val_t once_value_174; /* Once value */
4920 static val_t once_value_176; /* Once value */
4921 static val_t once_value_177; /* Once value */
4922 static val_t once_value_178; /* Once value */
4923 static val_t once_value_179; /* Once value */
4924 static val_t once_value_181; /* Once value */
4925 static val_t once_value_183; /* Once value */
4926 static val_t once_value_184; /* Once value */
4927 static val_t once_value_185; /* Once value */
4928 static val_t once_value_186; /* Once value */
4929 static val_t once_value_188; /* Once value */
4930 static val_t once_value_190; /* Once value */
4931 static val_t once_value_191; /* Once value */
4932 static val_t once_value_192; /* Once value */
4933 static val_t once_value_193; /* Once value */
4934 static val_t once_value_195; /* Once value */
4935 static val_t once_value_197; /* Once value */
4936 static val_t once_value_198; /* Once value */
4937 static val_t once_value_199; /* Once value */
4938 static val_t once_value_200; /* Once value */
4939 static val_t once_value_202; /* Once value */
4940 static val_t once_value_204; /* Once value */
4941 static val_t once_value_205; /* Once value */
4942 static val_t once_value_206; /* Once value */
4943 static val_t once_value_207; /* Once value */
4944 static val_t once_value_208; /* Once value */
4945 static val_t once_value_209; /* Once value */
4946 static val_t once_value_211; /* Once value */
4947 static val_t once_value_212; /* Once value */
4948 static val_t once_value_213; /* Once value */
4949 static val_t once_value_214; /* Once value */
4950 static val_t once_value_216; /* Once value */
4951 static val_t once_value_217; /* Once value */
4952 static val_t once_value_218; /* Once value */
4953 static val_t once_value_219; /* Once value */
4954 static val_t once_value_221; /* Once value */
4955 static val_t once_value_222; /* Once value */
4956 static val_t once_value_223; /* Once value */
4957 static val_t once_value_224; /* Once value */
4958 static val_t once_value_226; /* Once value */
4959 static val_t once_value_227; /* Once value */
4960 static val_t once_value_228; /* Once value */
4961 static val_t once_value_229; /* Once value */
4962 static val_t once_value_231; /* Once value */
4963 static val_t once_value_232; /* Once value */
4964 static val_t once_value_233; /* Once value */
4965 static val_t once_value_234; /* Once value */
4966 static val_t once_value_236; /* Once value */
4967 static val_t once_value_237; /* Once value */
4968 static val_t once_value_238; /* Once value */
4969 static val_t once_value_239; /* Once value */
4970 static val_t once_value_241; /* Once value */
4971 static val_t once_value_242; /* Once value */
4972 static val_t once_value_243; /* Once value */
4973 static val_t once_value_244; /* Once value */
4974 static val_t once_value_246; /* Once value */
4975 static val_t once_value_248; /* Once value */
4976 static val_t once_value_249; /* Once value */
4977 static val_t once_value_250; /* Once value */
4978 static val_t once_value_251; /* Once value */
4979 static val_t once_value_253; /* Once value */
4980 static val_t once_value_255; /* Once value */
4981 static val_t once_value_256; /* Once value */
4982 static val_t once_value_257; /* Once value */
4983 static val_t once_value_258; /* Once value */
4984 static val_t once_value_260; /* Once value */
4985 static val_t once_value_262; /* Once value */
4986 static val_t once_value_263; /* Once value */
4987 static val_t once_value_264; /* Once value */
4988 static val_t once_value_265; /* Once value */
4989 static val_t once_value_267; /* Once value */
4990 static val_t once_value_269; /* Once value */
4991 static val_t once_value_270; /* Once value */
4992 static val_t once_value_271; /* Once value */
4993 static val_t once_value_272; /* Once value */
4994 static val_t once_value_274; /* Once value */
4995 static val_t once_value_276; /* Once value */
4996 static val_t once_value_277; /* Once value */
4997 static val_t once_value_278; /* Once value */
4998 static val_t once_value_279; /* Once value */
4999 static val_t once_value_281; /* Once value */
5000 static val_t once_value_283; /* Once value */
5001 static val_t once_value_284; /* Once value */
5002 static val_t once_value_285; /* Once value */
5003 static val_t once_value_286; /* Once value */
5004 static val_t once_value_288; /* Once value */
5005 static val_t once_value_290; /* Once value */
5006 static val_t once_value_291; /* Once value */
5007 static val_t once_value_292; /* Once value */
5008 static val_t once_value_293; /* Once value */
5009 static val_t once_value_295; /* Once value */
5010 static val_t once_value_297; /* Once value */
5011 static val_t once_value_298; /* Once value */
5012 static val_t once_value_299; /* Once value */
5013 static val_t once_value_300; /* Once value */
5014 static val_t once_value_302; /* Once value */
5015 static val_t once_value_304; /* Once value */
5016 static val_t once_value_305; /* Once value */
5017 static val_t once_value_306; /* Once value */
5018 static val_t once_value_307; /* Once value */
5019 static val_t once_value_309; /* Once value */
5020 static val_t once_value_311; /* Once value */
5021 static val_t once_value_312; /* Once value */
5022 static val_t once_value_313; /* Once value */
5023 static val_t once_value_314; /* Once value */
5024 static val_t once_value_316; /* Once value */
5025 static val_t once_value_318; /* Once value */
5026 static val_t once_value_319; /* Once value */
5027 static val_t once_value_320; /* Once value */
5028 static val_t once_value_321; /* Once value */
5029 static val_t once_value_322; /* Once value */
5030 static val_t once_value_323; /* Once value */
5031 static val_t once_value_325; /* Once value */
5032 static val_t once_value_326; /* Once value */
5033 static val_t once_value_327; /* Once value */
5034 static val_t once_value_328; /* Once value */
5035 static val_t once_value_330; /* Once value */
5036 static val_t once_value_331; /* Once value */
5037 static val_t once_value_332; /* Once value */
5038 static val_t once_value_333; /* Once value */
5039 static val_t once_value_335; /* Once value */
5040 static val_t once_value_336; /* Once value */
5041 static val_t once_value_337; /* Once value */
5042 static val_t once_value_338; /* Once value */
5043 static val_t once_value_340; /* Once value */
5044 static val_t once_value_341; /* Once value */
5045 static val_t once_value_342; /* Once value */
5046 static val_t once_value_343; /* Once value */
5047 static val_t once_value_345; /* Once value */
5048 static val_t once_value_346; /* Once value */
5049 static val_t once_value_347; /* Once value */
5050 static val_t once_value_348; /* Once value */
5051 static val_t once_value_350; /* Once value */
5052 static val_t once_value_352; /* Once value */
5053 static val_t once_value_353; /* Once value */
5054 static val_t once_value_354; /* Once value */
5055 static val_t once_value_355; /* Once value */
5056 static val_t once_value_357; /* Once value */
5057 static val_t once_value_359; /* Once value */
5058 static val_t once_value_360; /* Once value */
5059 static val_t once_value_361; /* Once value */
5060 static val_t once_value_362; /* Once value */
5061 static val_t once_value_363; /* Once value */
5062 static val_t once_value_364; /* Once value */
5063 static val_t once_value_366; /* Once value */
5064 static val_t once_value_367; /* Once value */
5065 static val_t once_value_368; /* Once value */
5066 static val_t once_value_369; /* Once value */
5067 static val_t once_value_371; /* Once value */
5068 static val_t once_value_373; /* Once value */
5069 static val_t once_value_374; /* Once value */
5070 static val_t once_value_375; /* Once value */
5071 static val_t once_value_376; /* Once value */
5072 static val_t once_value_378; /* Once value */
5073 static val_t once_value_380; /* Once value */
5074 static val_t once_value_382; /* Once value */
5075 static val_t once_value_383; /* Once value */
5076 static val_t once_value_384; /* Once value */
5077 static val_t once_value_385; /* Once value */
5078 static val_t once_value_387; /* Once value */
5079 static val_t once_value_389; /* Once value */
5080 static val_t once_value_391; /* Once value */
5081 static val_t once_value_392; /* Once value */
5082 static val_t once_value_393; /* Once value */
5083 static val_t once_value_394; /* Once value */
5084 static val_t once_value_395; /* Once value */
5085 static val_t once_value_396; /* Once value */
5086 static val_t once_value_398; /* Once value */
5087 static val_t once_value_399; /* Once value */
5088 static val_t once_value_400; /* Once value */
5089 static val_t once_value_401; /* Once value */
5090 static val_t once_value_403; /* Once value */
5091 static val_t once_value_404; /* Once value */
5092 static val_t once_value_405; /* Once value */
5093 static val_t once_value_406; /* Once value */
5094 static val_t once_value_408; /* Once value */
5095 static val_t once_value_410; /* Once value */
5096 static val_t once_value_411; /* Once value */
5097 static val_t once_value_412; /* Once value */
5098 static val_t once_value_413; /* Once value */
5099 static val_t once_value_415; /* Once value */
5100 static val_t once_value_417; /* Once value */
5101 static val_t once_value_419; /* Once value */
5102 static val_t once_value_420; /* Once value */
5103 static val_t once_value_421; /* Once value */
5104 static val_t once_value_422; /* Once value */
5105 static val_t once_value_424; /* Once value */
5106 static val_t once_value_426; /* Once value */
5107 static val_t once_value_428; /* Once value */
5108 static val_t once_value_430; /* Once value */
5109 static val_t once_value_432; /* Once value */
5110 static val_t once_value_433; /* Once value */
5111 static val_t once_value_434; /* Once value */
5112 static val_t once_value_435; /* Once value */
5113 static val_t once_value_437; /* Once value */
5114 static val_t once_value_438; /* Once value */
5115 static val_t once_value_439; /* Once value */
5116 static val_t once_value_440; /* Once value */
5117 static val_t once_value_441; /* Once value */
5118 static val_t once_value_442; /* Once value */
5119 static val_t once_value_443; /* Once value */
5120 static val_t once_value_445; /* Once value */
5121 static val_t once_value_447; /* Once value */
5122 static val_t once_value_448; /* Once value */
5123 static val_t once_value_449; /* Once value */
5124 static val_t once_value_450; /* Once value */
5125 static val_t once_value_452; /* Once value */
5126 static val_t once_value_453; /* Once value */
5127 static val_t once_value_454; /* Once value */
5128 static val_t once_value_455; /* Once value */
5129 static val_t once_value_457; /* Once value */
5130 static val_t once_value_458; /* Once value */
5131 static val_t once_value_459; /* Once value */
5132 static val_t once_value_460; /* Once value */
5133 static val_t once_value_462; /* Once value */
5134 static val_t once_value_463; /* Once value */
5135 static val_t once_value_464; /* Once value */
5136 static val_t once_value_465; /* Once value */
5137 static val_t once_value_466; /* Once value */
5138 static val_t once_value_467; /* Once value */
5139 static val_t once_value_468; /* Once value */
5140 static val_t once_value_469; /* Once value */
5141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5142 fra.me.file = LOCATE_compiling_icode;
5143 fra.me.line = 704;
5144 fra.me.meth = LOCATE_compiling_icode___INative___compile_intern_method_to_c;
5145 fra.me.has_broke = 0;
5146 fra.me.REG_size = 8;
5147 fra.me.REG[0] = NIT_NULL;
5148 fra.me.REG[1] = NIT_NULL;
5149 fra.me.REG[2] = NIT_NULL;
5150 fra.me.REG[3] = NIT_NULL;
5151 fra.me.REG[4] = NIT_NULL;
5152 fra.me.REG[5] = NIT_NULL;
5153 fra.me.REG[6] = NIT_NULL;
5154 fra.me.REG[7] = NIT_NULL;
5155 fra.me.REG[0] = p0;
5156 fra.me.REG[1] = p1;
5157 /* ./compiling//compiling_icode.nit:706 */
5158 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5159 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5160 /* ./compiling//compiling_icode.nit:707 */
5161 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5162 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5163 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5164 if (UNTAG_Bool(REGB1)) {
5165 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 707);
5166 }
5167 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5168 REGB2 = TAG_Int(1);
5169 /* ./../lib/standard//kernel.nit:215 */
5170 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5171 /* ./compiling//compiling_icode.nit:707 */
5172 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5173 if (UNTAG_Bool(REGB1)) {
5174 } else {
5175 /* ./../lib/standard//kernel.nit:207 */
5176 REGB2 = TAG_Bool((REGB0)==(REGB2));
5177 /* ./compiling//compiling_icode.nit:707 */
5178 REGB1 = REGB2;
5179 }
5180 if (UNTAG_Bool(REGB1)) {
5181 } else {
5182 nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 707);
5183 }
5184 /* ./compiling//compiling_icode.nit:708 */
5185 fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5186 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5187 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5188 /* ./compiling//compiling_icode.nit:709 */
5189 fra.me.REG[3] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5190 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5191 /* ./compiling//compiling_icode.nit:710 */
5192 fra.me.REG[4] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5193 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5194 /* ./compiling//compiling_icode.nit:711 */
5195 fra.me.REG[5] = NIT_NULL;
5196 /* ./compiling//compiling_icode.nit:712 */
5197 if (!once_value_1) {
5198 if (!once_value_2) {
5199 fra.me.REG[6] = BOX_NativeString("Int");
5200 REGB1 = TAG_Int(3);
5201 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5202 once_value_2 = fra.me.REG[6];
5203 register_static_object(&once_value_2);
5204 } else fra.me.REG[6] = once_value_2;
5205 fra.me.REG[6] = fra.me.REG[6];
5206 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5207 once_value_1 = fra.me.REG[6];
5208 register_static_object(&once_value_1);
5209 } else fra.me.REG[6] = once_value_1;
5210 fra.me.REG[6] = fra.me.REG[6];
5211 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5212 if (UNTAG_Bool(REGB1)) {
5213 } else {
5214 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5215 REGB1 = REGB2;
5216 }
5217 if (UNTAG_Bool(REGB1)) {
5218 /* ./compiling//compiling_icode.nit:713 */
5219 if (!once_value_3) {
5220 if (!once_value_4) {
5221 fra.me.REG[6] = BOX_NativeString("object_id");
5222 REGB1 = TAG_Int(9);
5223 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5224 once_value_4 = fra.me.REG[6];
5225 register_static_object(&once_value_4);
5226 } else fra.me.REG[6] = once_value_4;
5227 fra.me.REG[6] = fra.me.REG[6];
5228 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5229 once_value_3 = fra.me.REG[6];
5230 register_static_object(&once_value_3);
5231 } else fra.me.REG[6] = once_value_3;
5232 fra.me.REG[6] = fra.me.REG[6];
5233 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5234 if (UNTAG_Bool(REGB1)) {
5235 } else {
5236 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5237 REGB1 = REGB2;
5238 }
5239 if (UNTAG_Bool(REGB1)) {
5240 /* ./compiling//compiling_icode.nit:714 */
5241 REGB1 = TAG_Int(0);
5242 /* ./../lib/standard//collection//array.nit:243 */
5243 fra.me.REG[6] = fra.me.REG[4];
5244 /* ./../lib/standard//collection//array.nit:245 */
5245 REGB2 = TAG_Int(0);
5246 /* ./../lib/standard//kernel.nit:213 */
5247 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5248 /* ./../lib/standard//collection//array.nit:245 */
5249 if (UNTAG_Bool(REGB2)) {
5250 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5251 if (UNTAG_Bool(REGB2)) {
5252 } else {
5253 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5254 }
5255 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
5256 /* ./../lib/standard//kernel.nit:212 */
5257 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5258 } else {
5259 /* ./../lib/standard//collection//array.nit:245 */
5260 REGB0 = TAG_Bool(false);
5261 REGB2 = REGB0;
5262 }
5263 if (UNTAG_Bool(REGB2)) {
5264 } else {
5265 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5266 }
5267 /* ./../lib/standard//collection//array.nit:246 */
5268 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[6]);
5269 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5270 if (UNTAG_Bool(REGB2)) {
5271 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5272 }
5273 /* ./../lib/standard//collection//array.nit:654 */
5274 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5275 /* ./../lib/standard//collection//array.nit:246 */
5276 goto label5;
5277 label5: while(0);
5278 /* ./compiling//compiling_icode.nit:714 */
5279 fra.me.REG[5] = fra.me.REG[6];
5280 } else {
5281 /* ./compiling//compiling_icode.nit:715 */
5282 if (!once_value_6) {
5283 if (!once_value_7) {
5284 fra.me.REG[6] = BOX_NativeString("unary -");
5285 REGB1 = TAG_Int(7);
5286 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5287 once_value_7 = fra.me.REG[6];
5288 register_static_object(&once_value_7);
5289 } else fra.me.REG[6] = once_value_7;
5290 fra.me.REG[6] = fra.me.REG[6];
5291 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5292 once_value_6 = fra.me.REG[6];
5293 register_static_object(&once_value_6);
5294 } else fra.me.REG[6] = once_value_6;
5295 fra.me.REG[6] = fra.me.REG[6];
5296 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5297 if (UNTAG_Bool(REGB1)) {
5298 } else {
5299 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5300 REGB1 = REGB2;
5301 }
5302 if (UNTAG_Bool(REGB1)) {
5303 /* ./compiling//compiling_icode.nit:716 */
5304 REGB1 = TAG_Int(3);
5305 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5306 if (!once_value_8) {
5307 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5308 REGB1 = TAG_Int(19);
5309 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5310 once_value_8 = fra.me.REG[7];
5311 register_static_object(&once_value_8);
5312 } else fra.me.REG[7] = once_value_8;
5313 fra.me.REG[7] = fra.me.REG[7];
5314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5315 REGB1 = TAG_Int(0);
5316 /* ./../lib/standard//collection//array.nit:243 */
5317 fra.me.REG[7] = fra.me.REG[4];
5318 /* ./../lib/standard//collection//array.nit:245 */
5319 REGB2 = TAG_Int(0);
5320 /* ./../lib/standard//kernel.nit:213 */
5321 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5322 /* ./../lib/standard//collection//array.nit:245 */
5323 if (UNTAG_Bool(REGB2)) {
5324 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5325 if (UNTAG_Bool(REGB2)) {
5326 } else {
5327 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5328 }
5329 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5330 /* ./../lib/standard//kernel.nit:212 */
5331 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5332 } else {
5333 /* ./../lib/standard//collection//array.nit:245 */
5334 REGB0 = TAG_Bool(false);
5335 REGB2 = REGB0;
5336 }
5337 if (UNTAG_Bool(REGB2)) {
5338 } else {
5339 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5340 }
5341 /* ./../lib/standard//collection//array.nit:246 */
5342 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5343 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5344 if (UNTAG_Bool(REGB2)) {
5345 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5346 }
5347 /* ./../lib/standard//collection//array.nit:654 */
5348 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5349 /* ./../lib/standard//collection//array.nit:246 */
5350 goto label9;
5351 label9: while(0);
5352 /* ./compiling//compiling_icode.nit:716 */
5353 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5354 if (!once_value_10) {
5355 fra.me.REG[7] = BOX_NativeString("))");
5356 REGB1 = TAG_Int(2);
5357 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5358 once_value_10 = fra.me.REG[7];
5359 register_static_object(&once_value_10);
5360 } else fra.me.REG[7] = once_value_10;
5361 fra.me.REG[7] = fra.me.REG[7];
5362 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5363 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5364 fra.me.REG[5] = fra.me.REG[6];
5365 } else {
5366 /* ./compiling//compiling_icode.nit:717 */
5367 if (!once_value_11) {
5368 if (!once_value_12) {
5369 fra.me.REG[6] = BOX_NativeString("output");
5370 REGB1 = TAG_Int(6);
5371 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5372 once_value_12 = fra.me.REG[6];
5373 register_static_object(&once_value_12);
5374 } else fra.me.REG[6] = once_value_12;
5375 fra.me.REG[6] = fra.me.REG[6];
5376 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5377 once_value_11 = fra.me.REG[6];
5378 register_static_object(&once_value_11);
5379 } else fra.me.REG[6] = once_value_11;
5380 fra.me.REG[6] = fra.me.REG[6];
5381 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5382 if (UNTAG_Bool(REGB1)) {
5383 } else {
5384 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5385 REGB1 = REGB2;
5386 }
5387 if (UNTAG_Bool(REGB1)) {
5388 /* ./compiling//compiling_icode.nit:718 */
5389 REGB1 = TAG_Int(3);
5390 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5391 if (!once_value_13) {
5392 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5393 REGB1 = TAG_Int(26);
5394 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5395 once_value_13 = fra.me.REG[7];
5396 register_static_object(&once_value_13);
5397 } else fra.me.REG[7] = once_value_13;
5398 fra.me.REG[7] = fra.me.REG[7];
5399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5400 REGB1 = TAG_Int(0);
5401 /* ./../lib/standard//collection//array.nit:243 */
5402 fra.me.REG[7] = fra.me.REG[4];
5403 /* ./../lib/standard//collection//array.nit:245 */
5404 REGB2 = TAG_Int(0);
5405 /* ./../lib/standard//kernel.nit:213 */
5406 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5407 /* ./../lib/standard//collection//array.nit:245 */
5408 if (UNTAG_Bool(REGB2)) {
5409 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5410 if (UNTAG_Bool(REGB2)) {
5411 } else {
5412 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5413 }
5414 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5415 /* ./../lib/standard//kernel.nit:212 */
5416 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5417 } else {
5418 /* ./../lib/standard//collection//array.nit:245 */
5419 REGB0 = TAG_Bool(false);
5420 REGB2 = REGB0;
5421 }
5422 if (UNTAG_Bool(REGB2)) {
5423 } else {
5424 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5425 }
5426 /* ./../lib/standard//collection//array.nit:246 */
5427 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5428 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5429 if (UNTAG_Bool(REGB2)) {
5430 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5431 }
5432 /* ./../lib/standard//collection//array.nit:654 */
5433 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5434 /* ./../lib/standard//collection//array.nit:246 */
5435 goto label14;
5436 label14: while(0);
5437 /* ./compiling//compiling_icode.nit:718 */
5438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5439 if (!once_value_15) {
5440 fra.me.REG[7] = BOX_NativeString("));");
5441 REGB1 = TAG_Int(3);
5442 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5443 once_value_15 = fra.me.REG[7];
5444 register_static_object(&once_value_15);
5445 } else fra.me.REG[7] = once_value_15;
5446 fra.me.REG[7] = fra.me.REG[7];
5447 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5448 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5449 fra.me.REG[5] = fra.me.REG[6];
5450 } else {
5451 /* ./compiling//compiling_icode.nit:719 */
5452 if (!once_value_16) {
5453 if (!once_value_17) {
5454 fra.me.REG[6] = BOX_NativeString("ascii");
5455 REGB1 = TAG_Int(5);
5456 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5457 once_value_17 = fra.me.REG[6];
5458 register_static_object(&once_value_17);
5459 } else fra.me.REG[6] = once_value_17;
5460 fra.me.REG[6] = fra.me.REG[6];
5461 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5462 once_value_16 = fra.me.REG[6];
5463 register_static_object(&once_value_16);
5464 } else fra.me.REG[6] = once_value_16;
5465 fra.me.REG[6] = fra.me.REG[6];
5466 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5467 if (UNTAG_Bool(REGB1)) {
5468 } else {
5469 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5470 REGB1 = REGB2;
5471 }
5472 if (UNTAG_Bool(REGB1)) {
5473 /* ./compiling//compiling_icode.nit:720 */
5474 REGB1 = TAG_Int(3);
5475 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5476 if (!once_value_18) {
5477 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5478 REGB1 = TAG_Int(19);
5479 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5480 once_value_18 = fra.me.REG[7];
5481 register_static_object(&once_value_18);
5482 } else fra.me.REG[7] = once_value_18;
5483 fra.me.REG[7] = fra.me.REG[7];
5484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5485 REGB1 = TAG_Int(0);
5486 /* ./../lib/standard//collection//array.nit:243 */
5487 fra.me.REG[7] = fra.me.REG[4];
5488 /* ./../lib/standard//collection//array.nit:245 */
5489 REGB2 = TAG_Int(0);
5490 /* ./../lib/standard//kernel.nit:213 */
5491 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5492 /* ./../lib/standard//collection//array.nit:245 */
5493 if (UNTAG_Bool(REGB2)) {
5494 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5495 if (UNTAG_Bool(REGB2)) {
5496 } else {
5497 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5498 }
5499 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5500 /* ./../lib/standard//kernel.nit:212 */
5501 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5502 } else {
5503 /* ./../lib/standard//collection//array.nit:245 */
5504 REGB0 = TAG_Bool(false);
5505 REGB2 = REGB0;
5506 }
5507 if (UNTAG_Bool(REGB2)) {
5508 } else {
5509 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5510 }
5511 /* ./../lib/standard//collection//array.nit:246 */
5512 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5513 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5514 if (UNTAG_Bool(REGB2)) {
5515 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5516 }
5517 /* ./../lib/standard//collection//array.nit:654 */
5518 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5519 /* ./../lib/standard//collection//array.nit:246 */
5520 goto label19;
5521 label19: while(0);
5522 /* ./compiling//compiling_icode.nit:720 */
5523 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5524 if (!once_value_20) {
5525 fra.me.REG[7] = BOX_NativeString("))");
5526 REGB1 = TAG_Int(2);
5527 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5528 once_value_20 = fra.me.REG[7];
5529 register_static_object(&once_value_20);
5530 } else fra.me.REG[7] = once_value_20;
5531 fra.me.REG[7] = fra.me.REG[7];
5532 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5533 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5534 fra.me.REG[5] = fra.me.REG[6];
5535 } else {
5536 /* ./compiling//compiling_icode.nit:721 */
5537 if (!once_value_21) {
5538 if (!once_value_22) {
5539 fra.me.REG[6] = BOX_NativeString("succ");
5540 REGB1 = TAG_Int(4);
5541 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5542 once_value_22 = fra.me.REG[6];
5543 register_static_object(&once_value_22);
5544 } else fra.me.REG[6] = once_value_22;
5545 fra.me.REG[6] = fra.me.REG[6];
5546 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5547 once_value_21 = fra.me.REG[6];
5548 register_static_object(&once_value_21);
5549 } else fra.me.REG[6] = once_value_21;
5550 fra.me.REG[6] = fra.me.REG[6];
5551 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5552 if (UNTAG_Bool(REGB1)) {
5553 } else {
5554 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5555 REGB1 = REGB2;
5556 }
5557 if (UNTAG_Bool(REGB1)) {
5558 /* ./compiling//compiling_icode.nit:722 */
5559 REGB1 = TAG_Int(3);
5560 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5561 if (!once_value_23) {
5562 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5563 REGB1 = TAG_Int(18);
5564 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5565 once_value_23 = fra.me.REG[7];
5566 register_static_object(&once_value_23);
5567 } else fra.me.REG[7] = once_value_23;
5568 fra.me.REG[7] = fra.me.REG[7];
5569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5570 REGB1 = TAG_Int(0);
5571 /* ./../lib/standard//collection//array.nit:243 */
5572 fra.me.REG[7] = fra.me.REG[4];
5573 /* ./../lib/standard//collection//array.nit:245 */
5574 REGB2 = TAG_Int(0);
5575 /* ./../lib/standard//kernel.nit:213 */
5576 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5577 /* ./../lib/standard//collection//array.nit:245 */
5578 if (UNTAG_Bool(REGB2)) {
5579 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5580 if (UNTAG_Bool(REGB2)) {
5581 } else {
5582 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5583 }
5584 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5585 /* ./../lib/standard//kernel.nit:212 */
5586 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5587 } else {
5588 /* ./../lib/standard//collection//array.nit:245 */
5589 REGB0 = TAG_Bool(false);
5590 REGB2 = REGB0;
5591 }
5592 if (UNTAG_Bool(REGB2)) {
5593 } else {
5594 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5595 }
5596 /* ./../lib/standard//collection//array.nit:246 */
5597 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5598 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5599 if (UNTAG_Bool(REGB2)) {
5600 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5601 }
5602 /* ./../lib/standard//collection//array.nit:654 */
5603 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5604 /* ./../lib/standard//collection//array.nit:246 */
5605 goto label24;
5606 label24: while(0);
5607 /* ./compiling//compiling_icode.nit:722 */
5608 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5609 if (!once_value_25) {
5610 fra.me.REG[7] = BOX_NativeString(")+1)");
5611 REGB1 = TAG_Int(4);
5612 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5613 once_value_25 = fra.me.REG[7];
5614 register_static_object(&once_value_25);
5615 } else fra.me.REG[7] = once_value_25;
5616 fra.me.REG[7] = fra.me.REG[7];
5617 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5618 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5619 fra.me.REG[5] = fra.me.REG[6];
5620 } else {
5621 /* ./compiling//compiling_icode.nit:723 */
5622 if (!once_value_26) {
5623 if (!once_value_27) {
5624 fra.me.REG[6] = BOX_NativeString("prec");
5625 REGB1 = TAG_Int(4);
5626 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5627 once_value_27 = fra.me.REG[6];
5628 register_static_object(&once_value_27);
5629 } else fra.me.REG[6] = once_value_27;
5630 fra.me.REG[6] = fra.me.REG[6];
5631 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5632 once_value_26 = fra.me.REG[6];
5633 register_static_object(&once_value_26);
5634 } else fra.me.REG[6] = once_value_26;
5635 fra.me.REG[6] = fra.me.REG[6];
5636 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5637 if (UNTAG_Bool(REGB1)) {
5638 } else {
5639 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5640 REGB1 = REGB2;
5641 }
5642 if (UNTAG_Bool(REGB1)) {
5643 /* ./compiling//compiling_icode.nit:724 */
5644 REGB1 = TAG_Int(3);
5645 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5646 if (!once_value_28) {
5647 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5648 REGB1 = TAG_Int(18);
5649 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5650 once_value_28 = fra.me.REG[7];
5651 register_static_object(&once_value_28);
5652 } else fra.me.REG[7] = once_value_28;
5653 fra.me.REG[7] = fra.me.REG[7];
5654 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5655 REGB1 = TAG_Int(0);
5656 /* ./../lib/standard//collection//array.nit:243 */
5657 fra.me.REG[7] = fra.me.REG[4];
5658 /* ./../lib/standard//collection//array.nit:245 */
5659 REGB2 = TAG_Int(0);
5660 /* ./../lib/standard//kernel.nit:213 */
5661 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5662 /* ./../lib/standard//collection//array.nit:245 */
5663 if (UNTAG_Bool(REGB2)) {
5664 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5665 if (UNTAG_Bool(REGB2)) {
5666 } else {
5667 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5668 }
5669 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5670 /* ./../lib/standard//kernel.nit:212 */
5671 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5672 } else {
5673 /* ./../lib/standard//collection//array.nit:245 */
5674 REGB0 = TAG_Bool(false);
5675 REGB2 = REGB0;
5676 }
5677 if (UNTAG_Bool(REGB2)) {
5678 } else {
5679 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5680 }
5681 /* ./../lib/standard//collection//array.nit:246 */
5682 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5683 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5684 if (UNTAG_Bool(REGB2)) {
5685 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5686 }
5687 /* ./../lib/standard//collection//array.nit:654 */
5688 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5689 /* ./../lib/standard//collection//array.nit:246 */
5690 goto label29;
5691 label29: while(0);
5692 /* ./compiling//compiling_icode.nit:724 */
5693 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5694 if (!once_value_30) {
5695 fra.me.REG[7] = BOX_NativeString(")-1)");
5696 REGB1 = TAG_Int(4);
5697 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5698 once_value_30 = fra.me.REG[7];
5699 register_static_object(&once_value_30);
5700 } else fra.me.REG[7] = once_value_30;
5701 fra.me.REG[7] = fra.me.REG[7];
5702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5703 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5704 fra.me.REG[5] = fra.me.REG[6];
5705 } else {
5706 /* ./compiling//compiling_icode.nit:725 */
5707 if (!once_value_31) {
5708 if (!once_value_32) {
5709 fra.me.REG[6] = BOX_NativeString("to_f");
5710 REGB1 = TAG_Int(4);
5711 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5712 once_value_32 = fra.me.REG[6];
5713 register_static_object(&once_value_32);
5714 } else fra.me.REG[6] = once_value_32;
5715 fra.me.REG[6] = fra.me.REG[6];
5716 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5717 once_value_31 = fra.me.REG[6];
5718 register_static_object(&once_value_31);
5719 } else fra.me.REG[6] = once_value_31;
5720 fra.me.REG[6] = fra.me.REG[6];
5721 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5722 if (UNTAG_Bool(REGB1)) {
5723 } else {
5724 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5725 REGB1 = REGB2;
5726 }
5727 if (UNTAG_Bool(REGB1)) {
5728 /* ./compiling//compiling_icode.nit:726 */
5729 REGB1 = TAG_Int(3);
5730 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5731 if (!once_value_33) {
5732 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
5733 REGB1 = TAG_Int(27);
5734 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5735 once_value_33 = fra.me.REG[7];
5736 register_static_object(&once_value_33);
5737 } else fra.me.REG[7] = once_value_33;
5738 fra.me.REG[7] = fra.me.REG[7];
5739 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5740 REGB1 = TAG_Int(0);
5741 /* ./../lib/standard//collection//array.nit:243 */
5742 fra.me.REG[7] = fra.me.REG[4];
5743 /* ./../lib/standard//collection//array.nit:245 */
5744 REGB2 = TAG_Int(0);
5745 /* ./../lib/standard//kernel.nit:213 */
5746 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5747 /* ./../lib/standard//collection//array.nit:245 */
5748 if (UNTAG_Bool(REGB2)) {
5749 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5750 if (UNTAG_Bool(REGB2)) {
5751 } else {
5752 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5753 }
5754 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5755 /* ./../lib/standard//kernel.nit:212 */
5756 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5757 } else {
5758 /* ./../lib/standard//collection//array.nit:245 */
5759 REGB0 = TAG_Bool(false);
5760 REGB2 = REGB0;
5761 }
5762 if (UNTAG_Bool(REGB2)) {
5763 } else {
5764 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5765 }
5766 /* ./../lib/standard//collection//array.nit:246 */
5767 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5768 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5769 if (UNTAG_Bool(REGB2)) {
5770 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5771 }
5772 /* ./../lib/standard//collection//array.nit:654 */
5773 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5774 /* ./../lib/standard//collection//array.nit:246 */
5775 goto label34;
5776 label34: while(0);
5777 /* ./compiling//compiling_icode.nit:726 */
5778 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5779 if (!once_value_35) {
5780 fra.me.REG[7] = BOX_NativeString("))");
5781 REGB1 = TAG_Int(2);
5782 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5783 once_value_35 = fra.me.REG[7];
5784 register_static_object(&once_value_35);
5785 } else fra.me.REG[7] = once_value_35;
5786 fra.me.REG[7] = fra.me.REG[7];
5787 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5788 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5789 fra.me.REG[5] = fra.me.REG[6];
5790 } else {
5791 /* ./compiling//compiling_icode.nit:727 */
5792 if (!once_value_36) {
5793 if (!once_value_37) {
5794 fra.me.REG[6] = BOX_NativeString("+");
5795 REGB1 = TAG_Int(1);
5796 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5797 once_value_37 = fra.me.REG[6];
5798 register_static_object(&once_value_37);
5799 } else fra.me.REG[6] = once_value_37;
5800 fra.me.REG[6] = fra.me.REG[6];
5801 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5802 once_value_36 = fra.me.REG[6];
5803 register_static_object(&once_value_36);
5804 } else fra.me.REG[6] = once_value_36;
5805 fra.me.REG[6] = fra.me.REG[6];
5806 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5807 if (UNTAG_Bool(REGB1)) {
5808 } else {
5809 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5810 REGB1 = REGB2;
5811 }
5812 if (UNTAG_Bool(REGB1)) {
5813 /* ./compiling//compiling_icode.nit:728 */
5814 REGB1 = TAG_Int(5);
5815 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5816 if (!once_value_38) {
5817 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5818 REGB1 = TAG_Int(18);
5819 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5820 once_value_38 = fra.me.REG[7];
5821 register_static_object(&once_value_38);
5822 } else fra.me.REG[7] = once_value_38;
5823 fra.me.REG[7] = fra.me.REG[7];
5824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5825 REGB1 = TAG_Int(0);
5826 /* ./../lib/standard//collection//array.nit:243 */
5827 fra.me.REG[7] = fra.me.REG[4];
5828 /* ./../lib/standard//collection//array.nit:245 */
5829 REGB2 = TAG_Int(0);
5830 /* ./../lib/standard//kernel.nit:213 */
5831 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5832 /* ./../lib/standard//collection//array.nit:245 */
5833 if (UNTAG_Bool(REGB2)) {
5834 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5835 if (UNTAG_Bool(REGB2)) {
5836 } else {
5837 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5838 }
5839 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5840 /* ./../lib/standard//kernel.nit:212 */
5841 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5842 } else {
5843 /* ./../lib/standard//collection//array.nit:245 */
5844 REGB0 = TAG_Bool(false);
5845 REGB2 = REGB0;
5846 }
5847 if (UNTAG_Bool(REGB2)) {
5848 } else {
5849 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5850 }
5851 /* ./../lib/standard//collection//array.nit:246 */
5852 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5853 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5854 if (UNTAG_Bool(REGB2)) {
5855 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5856 }
5857 /* ./../lib/standard//collection//array.nit:654 */
5858 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5859 /* ./../lib/standard//collection//array.nit:246 */
5860 goto label39;
5861 label39: while(0);
5862 /* ./compiling//compiling_icode.nit:728 */
5863 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5864 if (!once_value_40) {
5865 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
5866 REGB1 = TAG_Int(12);
5867 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5868 once_value_40 = fra.me.REG[7];
5869 register_static_object(&once_value_40);
5870 } else fra.me.REG[7] = once_value_40;
5871 fra.me.REG[7] = fra.me.REG[7];
5872 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5873 REGB1 = TAG_Int(1);
5874 /* ./../lib/standard//collection//array.nit:243 */
5875 fra.me.REG[7] = fra.me.REG[4];
5876 /* ./../lib/standard//collection//array.nit:245 */
5877 REGB2 = TAG_Int(0);
5878 /* ./../lib/standard//kernel.nit:213 */
5879 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5880 /* ./../lib/standard//collection//array.nit:245 */
5881 if (UNTAG_Bool(REGB2)) {
5882 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5883 if (UNTAG_Bool(REGB2)) {
5884 } else {
5885 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5886 }
5887 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5888 /* ./../lib/standard//kernel.nit:212 */
5889 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5890 } else {
5891 /* ./../lib/standard//collection//array.nit:245 */
5892 REGB0 = TAG_Bool(false);
5893 REGB2 = REGB0;
5894 }
5895 if (UNTAG_Bool(REGB2)) {
5896 } else {
5897 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5898 }
5899 /* ./../lib/standard//collection//array.nit:246 */
5900 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5901 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5902 if (UNTAG_Bool(REGB2)) {
5903 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5904 }
5905 /* ./../lib/standard//collection//array.nit:654 */
5906 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5907 /* ./../lib/standard//collection//array.nit:246 */
5908 goto label41;
5909 label41: while(0);
5910 /* ./compiling//compiling_icode.nit:728 */
5911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5912 if (!once_value_42) {
5913 fra.me.REG[7] = BOX_NativeString("))");
5914 REGB1 = TAG_Int(2);
5915 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5916 once_value_42 = fra.me.REG[7];
5917 register_static_object(&once_value_42);
5918 } else fra.me.REG[7] = once_value_42;
5919 fra.me.REG[7] = fra.me.REG[7];
5920 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5921 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5922 fra.me.REG[5] = fra.me.REG[6];
5923 } else {
5924 /* ./compiling//compiling_icode.nit:729 */
5925 if (!once_value_43) {
5926 if (!once_value_44) {
5927 fra.me.REG[6] = BOX_NativeString("-");
5928 REGB1 = TAG_Int(1);
5929 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
5930 once_value_44 = fra.me.REG[6];
5931 register_static_object(&once_value_44);
5932 } else fra.me.REG[6] = once_value_44;
5933 fra.me.REG[6] = fra.me.REG[6];
5934 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5935 once_value_43 = fra.me.REG[6];
5936 register_static_object(&once_value_43);
5937 } else fra.me.REG[6] = once_value_43;
5938 fra.me.REG[6] = fra.me.REG[6];
5939 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5940 if (UNTAG_Bool(REGB1)) {
5941 } else {
5942 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5943 REGB1 = REGB2;
5944 }
5945 if (UNTAG_Bool(REGB1)) {
5946 /* ./compiling//compiling_icode.nit:730 */
5947 REGB1 = TAG_Int(5);
5948 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
5949 if (!once_value_45) {
5950 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5951 REGB1 = TAG_Int(18);
5952 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
5953 once_value_45 = fra.me.REG[7];
5954 register_static_object(&once_value_45);
5955 } else fra.me.REG[7] = once_value_45;
5956 fra.me.REG[7] = fra.me.REG[7];
5957 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5958 REGB1 = TAG_Int(0);
5959 /* ./../lib/standard//collection//array.nit:243 */
5960 fra.me.REG[7] = fra.me.REG[4];
5961 /* ./../lib/standard//collection//array.nit:245 */
5962 REGB2 = TAG_Int(0);
5963 /* ./../lib/standard//kernel.nit:213 */
5964 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5965 /* ./../lib/standard//collection//array.nit:245 */
5966 if (UNTAG_Bool(REGB2)) {
5967 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5968 if (UNTAG_Bool(REGB2)) {
5969 } else {
5970 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
5971 }
5972 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5973 /* ./../lib/standard//kernel.nit:212 */
5974 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5975 } else {
5976 /* ./../lib/standard//collection//array.nit:245 */
5977 REGB0 = TAG_Bool(false);
5978 REGB2 = REGB0;
5979 }
5980 if (UNTAG_Bool(REGB2)) {
5981 } else {
5982 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
5983 }
5984 /* ./../lib/standard//collection//array.nit:246 */
5985 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
5986 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5987 if (UNTAG_Bool(REGB2)) {
5988 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
5989 }
5990 /* ./../lib/standard//collection//array.nit:654 */
5991 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5992 /* ./../lib/standard//collection//array.nit:246 */
5993 goto label46;
5994 label46: while(0);
5995 /* ./compiling//compiling_icode.nit:730 */
5996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5997 if (!once_value_47) {
5998 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
5999 REGB1 = TAG_Int(12);
6000 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6001 once_value_47 = fra.me.REG[7];
6002 register_static_object(&once_value_47);
6003 } else fra.me.REG[7] = once_value_47;
6004 fra.me.REG[7] = fra.me.REG[7];
6005 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6006 REGB1 = TAG_Int(1);
6007 /* ./../lib/standard//collection//array.nit:243 */
6008 fra.me.REG[7] = fra.me.REG[4];
6009 /* ./../lib/standard//collection//array.nit:245 */
6010 REGB2 = TAG_Int(0);
6011 /* ./../lib/standard//kernel.nit:213 */
6012 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6013 /* ./../lib/standard//collection//array.nit:245 */
6014 if (UNTAG_Bool(REGB2)) {
6015 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6016 if (UNTAG_Bool(REGB2)) {
6017 } else {
6018 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6019 }
6020 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6021 /* ./../lib/standard//kernel.nit:212 */
6022 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6023 } else {
6024 /* ./../lib/standard//collection//array.nit:245 */
6025 REGB0 = TAG_Bool(false);
6026 REGB2 = REGB0;
6027 }
6028 if (UNTAG_Bool(REGB2)) {
6029 } else {
6030 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6031 }
6032 /* ./../lib/standard//collection//array.nit:246 */
6033 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6034 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6035 if (UNTAG_Bool(REGB2)) {
6036 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6037 }
6038 /* ./../lib/standard//collection//array.nit:654 */
6039 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6040 /* ./../lib/standard//collection//array.nit:246 */
6041 goto label48;
6042 label48: while(0);
6043 /* ./compiling//compiling_icode.nit:730 */
6044 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6045 if (!once_value_49) {
6046 fra.me.REG[7] = BOX_NativeString("))");
6047 REGB1 = TAG_Int(2);
6048 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6049 once_value_49 = fra.me.REG[7];
6050 register_static_object(&once_value_49);
6051 } else fra.me.REG[7] = once_value_49;
6052 fra.me.REG[7] = fra.me.REG[7];
6053 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6054 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6055 fra.me.REG[5] = fra.me.REG[6];
6056 } else {
6057 /* ./compiling//compiling_icode.nit:731 */
6058 if (!once_value_50) {
6059 if (!once_value_51) {
6060 fra.me.REG[6] = BOX_NativeString("*");
6061 REGB1 = TAG_Int(1);
6062 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6063 once_value_51 = fra.me.REG[6];
6064 register_static_object(&once_value_51);
6065 } else fra.me.REG[6] = once_value_51;
6066 fra.me.REG[6] = fra.me.REG[6];
6067 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6068 once_value_50 = fra.me.REG[6];
6069 register_static_object(&once_value_50);
6070 } else fra.me.REG[6] = once_value_50;
6071 fra.me.REG[6] = fra.me.REG[6];
6072 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6073 if (UNTAG_Bool(REGB1)) {
6074 } else {
6075 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6076 REGB1 = REGB2;
6077 }
6078 if (UNTAG_Bool(REGB1)) {
6079 /* ./compiling//compiling_icode.nit:732 */
6080 REGB1 = TAG_Int(5);
6081 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6082 if (!once_value_52) {
6083 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6084 REGB1 = TAG_Int(18);
6085 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6086 once_value_52 = fra.me.REG[7];
6087 register_static_object(&once_value_52);
6088 } else fra.me.REG[7] = once_value_52;
6089 fra.me.REG[7] = fra.me.REG[7];
6090 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6091 REGB1 = TAG_Int(0);
6092 /* ./../lib/standard//collection//array.nit:243 */
6093 fra.me.REG[7] = fra.me.REG[4];
6094 /* ./../lib/standard//collection//array.nit:245 */
6095 REGB2 = TAG_Int(0);
6096 /* ./../lib/standard//kernel.nit:213 */
6097 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6098 /* ./../lib/standard//collection//array.nit:245 */
6099 if (UNTAG_Bool(REGB2)) {
6100 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6101 if (UNTAG_Bool(REGB2)) {
6102 } else {
6103 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6104 }
6105 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6106 /* ./../lib/standard//kernel.nit:212 */
6107 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6108 } else {
6109 /* ./../lib/standard//collection//array.nit:245 */
6110 REGB0 = TAG_Bool(false);
6111 REGB2 = REGB0;
6112 }
6113 if (UNTAG_Bool(REGB2)) {
6114 } else {
6115 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6116 }
6117 /* ./../lib/standard//collection//array.nit:246 */
6118 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6119 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6120 if (UNTAG_Bool(REGB2)) {
6121 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6122 }
6123 /* ./../lib/standard//collection//array.nit:654 */
6124 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6125 /* ./../lib/standard//collection//array.nit:246 */
6126 goto label53;
6127 label53: while(0);
6128 /* ./compiling//compiling_icode.nit:732 */
6129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6130 if (!once_value_54) {
6131 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6132 REGB1 = TAG_Int(12);
6133 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6134 once_value_54 = fra.me.REG[7];
6135 register_static_object(&once_value_54);
6136 } else fra.me.REG[7] = once_value_54;
6137 fra.me.REG[7] = fra.me.REG[7];
6138 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6139 REGB1 = TAG_Int(1);
6140 /* ./../lib/standard//collection//array.nit:243 */
6141 fra.me.REG[7] = fra.me.REG[4];
6142 /* ./../lib/standard//collection//array.nit:245 */
6143 REGB2 = TAG_Int(0);
6144 /* ./../lib/standard//kernel.nit:213 */
6145 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6146 /* ./../lib/standard//collection//array.nit:245 */
6147 if (UNTAG_Bool(REGB2)) {
6148 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6149 if (UNTAG_Bool(REGB2)) {
6150 } else {
6151 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6152 }
6153 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6154 /* ./../lib/standard//kernel.nit:212 */
6155 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6156 } else {
6157 /* ./../lib/standard//collection//array.nit:245 */
6158 REGB0 = TAG_Bool(false);
6159 REGB2 = REGB0;
6160 }
6161 if (UNTAG_Bool(REGB2)) {
6162 } else {
6163 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6164 }
6165 /* ./../lib/standard//collection//array.nit:246 */
6166 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6167 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6168 if (UNTAG_Bool(REGB2)) {
6169 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6170 }
6171 /* ./../lib/standard//collection//array.nit:654 */
6172 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6173 /* ./../lib/standard//collection//array.nit:246 */
6174 goto label55;
6175 label55: while(0);
6176 /* ./compiling//compiling_icode.nit:732 */
6177 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6178 if (!once_value_56) {
6179 fra.me.REG[7] = BOX_NativeString("))");
6180 REGB1 = TAG_Int(2);
6181 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6182 once_value_56 = fra.me.REG[7];
6183 register_static_object(&once_value_56);
6184 } else fra.me.REG[7] = once_value_56;
6185 fra.me.REG[7] = fra.me.REG[7];
6186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6187 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6188 fra.me.REG[5] = fra.me.REG[6];
6189 } else {
6190 /* ./compiling//compiling_icode.nit:733 */
6191 if (!once_value_57) {
6192 if (!once_value_58) {
6193 fra.me.REG[6] = BOX_NativeString("/");
6194 REGB1 = TAG_Int(1);
6195 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6196 once_value_58 = fra.me.REG[6];
6197 register_static_object(&once_value_58);
6198 } else fra.me.REG[6] = once_value_58;
6199 fra.me.REG[6] = fra.me.REG[6];
6200 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6201 once_value_57 = fra.me.REG[6];
6202 register_static_object(&once_value_57);
6203 } else fra.me.REG[6] = once_value_57;
6204 fra.me.REG[6] = fra.me.REG[6];
6205 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6206 if (UNTAG_Bool(REGB1)) {
6207 } else {
6208 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6209 REGB1 = REGB2;
6210 }
6211 if (UNTAG_Bool(REGB1)) {
6212 /* ./compiling//compiling_icode.nit:734 */
6213 REGB1 = TAG_Int(5);
6214 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6215 if (!once_value_59) {
6216 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6217 REGB1 = TAG_Int(18);
6218 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6219 once_value_59 = fra.me.REG[7];
6220 register_static_object(&once_value_59);
6221 } else fra.me.REG[7] = once_value_59;
6222 fra.me.REG[7] = fra.me.REG[7];
6223 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6224 REGB1 = TAG_Int(0);
6225 /* ./../lib/standard//collection//array.nit:243 */
6226 fra.me.REG[7] = fra.me.REG[4];
6227 /* ./../lib/standard//collection//array.nit:245 */
6228 REGB2 = TAG_Int(0);
6229 /* ./../lib/standard//kernel.nit:213 */
6230 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6231 /* ./../lib/standard//collection//array.nit:245 */
6232 if (UNTAG_Bool(REGB2)) {
6233 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6234 if (UNTAG_Bool(REGB2)) {
6235 } else {
6236 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6237 }
6238 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6239 /* ./../lib/standard//kernel.nit:212 */
6240 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6241 } else {
6242 /* ./../lib/standard//collection//array.nit:245 */
6243 REGB0 = TAG_Bool(false);
6244 REGB2 = REGB0;
6245 }
6246 if (UNTAG_Bool(REGB2)) {
6247 } else {
6248 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6249 }
6250 /* ./../lib/standard//collection//array.nit:246 */
6251 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6252 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6253 if (UNTAG_Bool(REGB2)) {
6254 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6255 }
6256 /* ./../lib/standard//collection//array.nit:654 */
6257 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6258 /* ./../lib/standard//collection//array.nit:246 */
6259 goto label60;
6260 label60: while(0);
6261 /* ./compiling//compiling_icode.nit:734 */
6262 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6263 if (!once_value_61) {
6264 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6265 REGB1 = TAG_Int(12);
6266 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6267 once_value_61 = fra.me.REG[7];
6268 register_static_object(&once_value_61);
6269 } else fra.me.REG[7] = once_value_61;
6270 fra.me.REG[7] = fra.me.REG[7];
6271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6272 REGB1 = TAG_Int(1);
6273 /* ./../lib/standard//collection//array.nit:243 */
6274 fra.me.REG[7] = fra.me.REG[4];
6275 /* ./../lib/standard//collection//array.nit:245 */
6276 REGB2 = TAG_Int(0);
6277 /* ./../lib/standard//kernel.nit:213 */
6278 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6279 /* ./../lib/standard//collection//array.nit:245 */
6280 if (UNTAG_Bool(REGB2)) {
6281 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6282 if (UNTAG_Bool(REGB2)) {
6283 } else {
6284 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6285 }
6286 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6287 /* ./../lib/standard//kernel.nit:212 */
6288 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6289 } else {
6290 /* ./../lib/standard//collection//array.nit:245 */
6291 REGB0 = TAG_Bool(false);
6292 REGB2 = REGB0;
6293 }
6294 if (UNTAG_Bool(REGB2)) {
6295 } else {
6296 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6297 }
6298 /* ./../lib/standard//collection//array.nit:246 */
6299 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6300 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6301 if (UNTAG_Bool(REGB2)) {
6302 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6303 }
6304 /* ./../lib/standard//collection//array.nit:654 */
6305 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6306 /* ./../lib/standard//collection//array.nit:246 */
6307 goto label62;
6308 label62: while(0);
6309 /* ./compiling//compiling_icode.nit:734 */
6310 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6311 if (!once_value_63) {
6312 fra.me.REG[7] = BOX_NativeString("))");
6313 REGB1 = TAG_Int(2);
6314 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6315 once_value_63 = fra.me.REG[7];
6316 register_static_object(&once_value_63);
6317 } else fra.me.REG[7] = once_value_63;
6318 fra.me.REG[7] = fra.me.REG[7];
6319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6320 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6321 fra.me.REG[5] = fra.me.REG[6];
6322 } else {
6323 /* ./compiling//compiling_icode.nit:735 */
6324 if (!once_value_64) {
6325 if (!once_value_65) {
6326 fra.me.REG[6] = BOX_NativeString("%");
6327 REGB1 = TAG_Int(1);
6328 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6329 once_value_65 = fra.me.REG[6];
6330 register_static_object(&once_value_65);
6331 } else fra.me.REG[6] = once_value_65;
6332 fra.me.REG[6] = fra.me.REG[6];
6333 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6334 once_value_64 = fra.me.REG[6];
6335 register_static_object(&once_value_64);
6336 } else fra.me.REG[6] = once_value_64;
6337 fra.me.REG[6] = fra.me.REG[6];
6338 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6339 if (UNTAG_Bool(REGB1)) {
6340 } else {
6341 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6342 REGB1 = REGB2;
6343 }
6344 if (UNTAG_Bool(REGB1)) {
6345 /* ./compiling//compiling_icode.nit:736 */
6346 REGB1 = TAG_Int(5);
6347 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6348 if (!once_value_66) {
6349 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6350 REGB1 = TAG_Int(18);
6351 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6352 once_value_66 = fra.me.REG[7];
6353 register_static_object(&once_value_66);
6354 } else fra.me.REG[7] = once_value_66;
6355 fra.me.REG[7] = fra.me.REG[7];
6356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6357 REGB1 = TAG_Int(0);
6358 /* ./../lib/standard//collection//array.nit:243 */
6359 fra.me.REG[7] = fra.me.REG[4];
6360 /* ./../lib/standard//collection//array.nit:245 */
6361 REGB2 = TAG_Int(0);
6362 /* ./../lib/standard//kernel.nit:213 */
6363 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6364 /* ./../lib/standard//collection//array.nit:245 */
6365 if (UNTAG_Bool(REGB2)) {
6366 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6367 if (UNTAG_Bool(REGB2)) {
6368 } else {
6369 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6370 }
6371 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6372 /* ./../lib/standard//kernel.nit:212 */
6373 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6374 } else {
6375 /* ./../lib/standard//collection//array.nit:245 */
6376 REGB0 = TAG_Bool(false);
6377 REGB2 = REGB0;
6378 }
6379 if (UNTAG_Bool(REGB2)) {
6380 } else {
6381 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6382 }
6383 /* ./../lib/standard//collection//array.nit:246 */
6384 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6385 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6386 if (UNTAG_Bool(REGB2)) {
6387 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6388 }
6389 /* ./../lib/standard//collection//array.nit:654 */
6390 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6391 /* ./../lib/standard//collection//array.nit:246 */
6392 goto label67;
6393 label67: while(0);
6394 /* ./compiling//compiling_icode.nit:736 */
6395 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6396 if (!once_value_68) {
6397 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6398 REGB1 = TAG_Int(12);
6399 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6400 once_value_68 = fra.me.REG[7];
6401 register_static_object(&once_value_68);
6402 } else fra.me.REG[7] = once_value_68;
6403 fra.me.REG[7] = fra.me.REG[7];
6404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6405 REGB1 = TAG_Int(1);
6406 /* ./../lib/standard//collection//array.nit:243 */
6407 fra.me.REG[7] = fra.me.REG[4];
6408 /* ./../lib/standard//collection//array.nit:245 */
6409 REGB2 = TAG_Int(0);
6410 /* ./../lib/standard//kernel.nit:213 */
6411 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6412 /* ./../lib/standard//collection//array.nit:245 */
6413 if (UNTAG_Bool(REGB2)) {
6414 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6415 if (UNTAG_Bool(REGB2)) {
6416 } else {
6417 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6418 }
6419 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6420 /* ./../lib/standard//kernel.nit:212 */
6421 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6422 } else {
6423 /* ./../lib/standard//collection//array.nit:245 */
6424 REGB0 = TAG_Bool(false);
6425 REGB2 = REGB0;
6426 }
6427 if (UNTAG_Bool(REGB2)) {
6428 } else {
6429 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6430 }
6431 /* ./../lib/standard//collection//array.nit:246 */
6432 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6433 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6434 if (UNTAG_Bool(REGB2)) {
6435 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6436 }
6437 /* ./../lib/standard//collection//array.nit:654 */
6438 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6439 /* ./../lib/standard//collection//array.nit:246 */
6440 goto label69;
6441 label69: while(0);
6442 /* ./compiling//compiling_icode.nit:736 */
6443 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6444 if (!once_value_70) {
6445 fra.me.REG[7] = BOX_NativeString("))");
6446 REGB1 = TAG_Int(2);
6447 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6448 once_value_70 = fra.me.REG[7];
6449 register_static_object(&once_value_70);
6450 } else fra.me.REG[7] = once_value_70;
6451 fra.me.REG[7] = fra.me.REG[7];
6452 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6453 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6454 fra.me.REG[5] = fra.me.REG[6];
6455 } else {
6456 /* ./compiling//compiling_icode.nit:737 */
6457 if (!once_value_71) {
6458 if (!once_value_72) {
6459 fra.me.REG[6] = BOX_NativeString("<");
6460 REGB1 = TAG_Int(1);
6461 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6462 once_value_72 = fra.me.REG[6];
6463 register_static_object(&once_value_72);
6464 } else fra.me.REG[6] = once_value_72;
6465 fra.me.REG[6] = fra.me.REG[6];
6466 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6467 once_value_71 = fra.me.REG[6];
6468 register_static_object(&once_value_71);
6469 } else fra.me.REG[6] = once_value_71;
6470 fra.me.REG[6] = fra.me.REG[6];
6471 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6472 if (UNTAG_Bool(REGB1)) {
6473 } else {
6474 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6475 REGB1 = REGB2;
6476 }
6477 if (UNTAG_Bool(REGB1)) {
6478 /* ./compiling//compiling_icode.nit:738 */
6479 REGB1 = TAG_Int(5);
6480 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6481 if (!once_value_73) {
6482 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6483 REGB1 = TAG_Int(19);
6484 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6485 once_value_73 = fra.me.REG[7];
6486 register_static_object(&once_value_73);
6487 } else fra.me.REG[7] = once_value_73;
6488 fra.me.REG[7] = fra.me.REG[7];
6489 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6490 REGB1 = TAG_Int(0);
6491 /* ./../lib/standard//collection//array.nit:243 */
6492 fra.me.REG[7] = fra.me.REG[4];
6493 /* ./../lib/standard//collection//array.nit:245 */
6494 REGB2 = TAG_Int(0);
6495 /* ./../lib/standard//kernel.nit:213 */
6496 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6497 /* ./../lib/standard//collection//array.nit:245 */
6498 if (UNTAG_Bool(REGB2)) {
6499 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6500 if (UNTAG_Bool(REGB2)) {
6501 } else {
6502 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6503 }
6504 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6505 /* ./../lib/standard//kernel.nit:212 */
6506 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6507 } else {
6508 /* ./../lib/standard//collection//array.nit:245 */
6509 REGB0 = TAG_Bool(false);
6510 REGB2 = REGB0;
6511 }
6512 if (UNTAG_Bool(REGB2)) {
6513 } else {
6514 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6515 }
6516 /* ./../lib/standard//collection//array.nit:246 */
6517 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6518 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6519 if (UNTAG_Bool(REGB2)) {
6520 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6521 }
6522 /* ./../lib/standard//collection//array.nit:654 */
6523 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6524 /* ./../lib/standard//collection//array.nit:246 */
6525 goto label74;
6526 label74: while(0);
6527 /* ./compiling//compiling_icode.nit:738 */
6528 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6529 if (!once_value_75) {
6530 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6531 REGB1 = TAG_Int(12);
6532 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6533 once_value_75 = fra.me.REG[7];
6534 register_static_object(&once_value_75);
6535 } else fra.me.REG[7] = once_value_75;
6536 fra.me.REG[7] = fra.me.REG[7];
6537 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6538 REGB1 = TAG_Int(1);
6539 /* ./../lib/standard//collection//array.nit:243 */
6540 fra.me.REG[7] = fra.me.REG[4];
6541 /* ./../lib/standard//collection//array.nit:245 */
6542 REGB2 = TAG_Int(0);
6543 /* ./../lib/standard//kernel.nit:213 */
6544 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6545 /* ./../lib/standard//collection//array.nit:245 */
6546 if (UNTAG_Bool(REGB2)) {
6547 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6548 if (UNTAG_Bool(REGB2)) {
6549 } else {
6550 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6551 }
6552 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6553 /* ./../lib/standard//kernel.nit:212 */
6554 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6555 } else {
6556 /* ./../lib/standard//collection//array.nit:245 */
6557 REGB0 = TAG_Bool(false);
6558 REGB2 = REGB0;
6559 }
6560 if (UNTAG_Bool(REGB2)) {
6561 } else {
6562 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6563 }
6564 /* ./../lib/standard//collection//array.nit:246 */
6565 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6566 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6567 if (UNTAG_Bool(REGB2)) {
6568 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6569 }
6570 /* ./../lib/standard//collection//array.nit:654 */
6571 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6572 /* ./../lib/standard//collection//array.nit:246 */
6573 goto label76;
6574 label76: while(0);
6575 /* ./compiling//compiling_icode.nit:738 */
6576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6577 if (!once_value_77) {
6578 fra.me.REG[7] = BOX_NativeString("))");
6579 REGB1 = TAG_Int(2);
6580 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6581 once_value_77 = fra.me.REG[7];
6582 register_static_object(&once_value_77);
6583 } else fra.me.REG[7] = once_value_77;
6584 fra.me.REG[7] = fra.me.REG[7];
6585 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6586 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6587 fra.me.REG[5] = fra.me.REG[6];
6588 } else {
6589 /* ./compiling//compiling_icode.nit:739 */
6590 if (!once_value_78) {
6591 if (!once_value_79) {
6592 fra.me.REG[6] = BOX_NativeString(">");
6593 REGB1 = TAG_Int(1);
6594 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6595 once_value_79 = fra.me.REG[6];
6596 register_static_object(&once_value_79);
6597 } else fra.me.REG[6] = once_value_79;
6598 fra.me.REG[6] = fra.me.REG[6];
6599 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6600 once_value_78 = fra.me.REG[6];
6601 register_static_object(&once_value_78);
6602 } else fra.me.REG[6] = once_value_78;
6603 fra.me.REG[6] = fra.me.REG[6];
6604 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6605 if (UNTAG_Bool(REGB1)) {
6606 } else {
6607 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6608 REGB1 = REGB2;
6609 }
6610 if (UNTAG_Bool(REGB1)) {
6611 /* ./compiling//compiling_icode.nit:740 */
6612 REGB1 = TAG_Int(5);
6613 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6614 if (!once_value_80) {
6615 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6616 REGB1 = TAG_Int(19);
6617 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6618 once_value_80 = fra.me.REG[7];
6619 register_static_object(&once_value_80);
6620 } else fra.me.REG[7] = once_value_80;
6621 fra.me.REG[7] = fra.me.REG[7];
6622 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6623 REGB1 = TAG_Int(0);
6624 /* ./../lib/standard//collection//array.nit:243 */
6625 fra.me.REG[7] = fra.me.REG[4];
6626 /* ./../lib/standard//collection//array.nit:245 */
6627 REGB2 = TAG_Int(0);
6628 /* ./../lib/standard//kernel.nit:213 */
6629 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6630 /* ./../lib/standard//collection//array.nit:245 */
6631 if (UNTAG_Bool(REGB2)) {
6632 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6633 if (UNTAG_Bool(REGB2)) {
6634 } else {
6635 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6636 }
6637 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6638 /* ./../lib/standard//kernel.nit:212 */
6639 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6640 } else {
6641 /* ./../lib/standard//collection//array.nit:245 */
6642 REGB0 = TAG_Bool(false);
6643 REGB2 = REGB0;
6644 }
6645 if (UNTAG_Bool(REGB2)) {
6646 } else {
6647 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6648 }
6649 /* ./../lib/standard//collection//array.nit:246 */
6650 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6651 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6652 if (UNTAG_Bool(REGB2)) {
6653 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6654 }
6655 /* ./../lib/standard//collection//array.nit:654 */
6656 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6657 /* ./../lib/standard//collection//array.nit:246 */
6658 goto label81;
6659 label81: while(0);
6660 /* ./compiling//compiling_icode.nit:740 */
6661 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6662 if (!once_value_82) {
6663 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
6664 REGB1 = TAG_Int(12);
6665 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6666 once_value_82 = fra.me.REG[7];
6667 register_static_object(&once_value_82);
6668 } else fra.me.REG[7] = once_value_82;
6669 fra.me.REG[7] = fra.me.REG[7];
6670 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6671 REGB1 = TAG_Int(1);
6672 /* ./../lib/standard//collection//array.nit:243 */
6673 fra.me.REG[7] = fra.me.REG[4];
6674 /* ./../lib/standard//collection//array.nit:245 */
6675 REGB2 = TAG_Int(0);
6676 /* ./../lib/standard//kernel.nit:213 */
6677 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6678 /* ./../lib/standard//collection//array.nit:245 */
6679 if (UNTAG_Bool(REGB2)) {
6680 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6681 if (UNTAG_Bool(REGB2)) {
6682 } else {
6683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6684 }
6685 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6686 /* ./../lib/standard//kernel.nit:212 */
6687 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6688 } else {
6689 /* ./../lib/standard//collection//array.nit:245 */
6690 REGB0 = TAG_Bool(false);
6691 REGB2 = REGB0;
6692 }
6693 if (UNTAG_Bool(REGB2)) {
6694 } else {
6695 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6696 }
6697 /* ./../lib/standard//collection//array.nit:246 */
6698 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6699 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6700 if (UNTAG_Bool(REGB2)) {
6701 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6702 }
6703 /* ./../lib/standard//collection//array.nit:654 */
6704 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6705 /* ./../lib/standard//collection//array.nit:246 */
6706 goto label83;
6707 label83: while(0);
6708 /* ./compiling//compiling_icode.nit:740 */
6709 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6710 if (!once_value_84) {
6711 fra.me.REG[7] = BOX_NativeString("))");
6712 REGB1 = TAG_Int(2);
6713 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6714 once_value_84 = fra.me.REG[7];
6715 register_static_object(&once_value_84);
6716 } else fra.me.REG[7] = once_value_84;
6717 fra.me.REG[7] = fra.me.REG[7];
6718 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6719 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6720 fra.me.REG[5] = fra.me.REG[6];
6721 } else {
6722 /* ./compiling//compiling_icode.nit:741 */
6723 if (!once_value_85) {
6724 if (!once_value_86) {
6725 fra.me.REG[6] = BOX_NativeString("<=");
6726 REGB1 = TAG_Int(2);
6727 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6728 once_value_86 = fra.me.REG[6];
6729 register_static_object(&once_value_86);
6730 } else fra.me.REG[6] = once_value_86;
6731 fra.me.REG[6] = fra.me.REG[6];
6732 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6733 once_value_85 = fra.me.REG[6];
6734 register_static_object(&once_value_85);
6735 } else fra.me.REG[6] = once_value_85;
6736 fra.me.REG[6] = fra.me.REG[6];
6737 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6738 if (UNTAG_Bool(REGB1)) {
6739 } else {
6740 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6741 REGB1 = REGB2;
6742 }
6743 if (UNTAG_Bool(REGB1)) {
6744 /* ./compiling//compiling_icode.nit:742 */
6745 REGB1 = TAG_Int(5);
6746 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6747 if (!once_value_87) {
6748 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6749 REGB1 = TAG_Int(19);
6750 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6751 once_value_87 = fra.me.REG[7];
6752 register_static_object(&once_value_87);
6753 } else fra.me.REG[7] = once_value_87;
6754 fra.me.REG[7] = fra.me.REG[7];
6755 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6756 REGB1 = TAG_Int(0);
6757 /* ./../lib/standard//collection//array.nit:243 */
6758 fra.me.REG[7] = fra.me.REG[4];
6759 /* ./../lib/standard//collection//array.nit:245 */
6760 REGB2 = TAG_Int(0);
6761 /* ./../lib/standard//kernel.nit:213 */
6762 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6763 /* ./../lib/standard//collection//array.nit:245 */
6764 if (UNTAG_Bool(REGB2)) {
6765 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6766 if (UNTAG_Bool(REGB2)) {
6767 } else {
6768 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6769 }
6770 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6771 /* ./../lib/standard//kernel.nit:212 */
6772 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6773 } else {
6774 /* ./../lib/standard//collection//array.nit:245 */
6775 REGB0 = TAG_Bool(false);
6776 REGB2 = REGB0;
6777 }
6778 if (UNTAG_Bool(REGB2)) {
6779 } else {
6780 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6781 }
6782 /* ./../lib/standard//collection//array.nit:246 */
6783 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6784 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6785 if (UNTAG_Bool(REGB2)) {
6786 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6787 }
6788 /* ./../lib/standard//collection//array.nit:654 */
6789 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6790 /* ./../lib/standard//collection//array.nit:246 */
6791 goto label88;
6792 label88: while(0);
6793 /* ./compiling//compiling_icode.nit:742 */
6794 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6795 if (!once_value_89) {
6796 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
6797 REGB1 = TAG_Int(13);
6798 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6799 once_value_89 = fra.me.REG[7];
6800 register_static_object(&once_value_89);
6801 } else fra.me.REG[7] = once_value_89;
6802 fra.me.REG[7] = fra.me.REG[7];
6803 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6804 REGB1 = TAG_Int(1);
6805 /* ./../lib/standard//collection//array.nit:243 */
6806 fra.me.REG[7] = fra.me.REG[4];
6807 /* ./../lib/standard//collection//array.nit:245 */
6808 REGB2 = TAG_Int(0);
6809 /* ./../lib/standard//kernel.nit:213 */
6810 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6811 /* ./../lib/standard//collection//array.nit:245 */
6812 if (UNTAG_Bool(REGB2)) {
6813 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6814 if (UNTAG_Bool(REGB2)) {
6815 } else {
6816 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6817 }
6818 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6819 /* ./../lib/standard//kernel.nit:212 */
6820 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6821 } else {
6822 /* ./../lib/standard//collection//array.nit:245 */
6823 REGB0 = TAG_Bool(false);
6824 REGB2 = REGB0;
6825 }
6826 if (UNTAG_Bool(REGB2)) {
6827 } else {
6828 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6829 }
6830 /* ./../lib/standard//collection//array.nit:246 */
6831 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6832 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6833 if (UNTAG_Bool(REGB2)) {
6834 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6835 }
6836 /* ./../lib/standard//collection//array.nit:654 */
6837 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6838 /* ./../lib/standard//collection//array.nit:246 */
6839 goto label90;
6840 label90: while(0);
6841 /* ./compiling//compiling_icode.nit:742 */
6842 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6843 if (!once_value_91) {
6844 fra.me.REG[7] = BOX_NativeString("))");
6845 REGB1 = TAG_Int(2);
6846 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6847 once_value_91 = fra.me.REG[7];
6848 register_static_object(&once_value_91);
6849 } else fra.me.REG[7] = once_value_91;
6850 fra.me.REG[7] = fra.me.REG[7];
6851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6852 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6853 fra.me.REG[5] = fra.me.REG[6];
6854 } else {
6855 /* ./compiling//compiling_icode.nit:743 */
6856 if (!once_value_92) {
6857 if (!once_value_93) {
6858 fra.me.REG[6] = BOX_NativeString(">=");
6859 REGB1 = TAG_Int(2);
6860 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6861 once_value_93 = fra.me.REG[6];
6862 register_static_object(&once_value_93);
6863 } else fra.me.REG[6] = once_value_93;
6864 fra.me.REG[6] = fra.me.REG[6];
6865 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6866 once_value_92 = fra.me.REG[6];
6867 register_static_object(&once_value_92);
6868 } else fra.me.REG[6] = once_value_92;
6869 fra.me.REG[6] = fra.me.REG[6];
6870 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6871 if (UNTAG_Bool(REGB1)) {
6872 } else {
6873 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6874 REGB1 = REGB2;
6875 }
6876 if (UNTAG_Bool(REGB1)) {
6877 /* ./compiling//compiling_icode.nit:744 */
6878 REGB1 = TAG_Int(5);
6879 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
6880 if (!once_value_94) {
6881 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6882 REGB1 = TAG_Int(19);
6883 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6884 once_value_94 = fra.me.REG[7];
6885 register_static_object(&once_value_94);
6886 } else fra.me.REG[7] = once_value_94;
6887 fra.me.REG[7] = fra.me.REG[7];
6888 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6889 REGB1 = TAG_Int(0);
6890 /* ./../lib/standard//collection//array.nit:243 */
6891 fra.me.REG[7] = fra.me.REG[4];
6892 /* ./../lib/standard//collection//array.nit:245 */
6893 REGB2 = TAG_Int(0);
6894 /* ./../lib/standard//kernel.nit:213 */
6895 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6896 /* ./../lib/standard//collection//array.nit:245 */
6897 if (UNTAG_Bool(REGB2)) {
6898 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6899 if (UNTAG_Bool(REGB2)) {
6900 } else {
6901 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6902 }
6903 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6904 /* ./../lib/standard//kernel.nit:212 */
6905 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6906 } else {
6907 /* ./../lib/standard//collection//array.nit:245 */
6908 REGB0 = TAG_Bool(false);
6909 REGB2 = REGB0;
6910 }
6911 if (UNTAG_Bool(REGB2)) {
6912 } else {
6913 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6914 }
6915 /* ./../lib/standard//collection//array.nit:246 */
6916 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6917 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6918 if (UNTAG_Bool(REGB2)) {
6919 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6920 }
6921 /* ./../lib/standard//collection//array.nit:654 */
6922 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6923 /* ./../lib/standard//collection//array.nit:246 */
6924 goto label95;
6925 label95: while(0);
6926 /* ./compiling//compiling_icode.nit:744 */
6927 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6928 if (!once_value_96) {
6929 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
6930 REGB1 = TAG_Int(13);
6931 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6932 once_value_96 = fra.me.REG[7];
6933 register_static_object(&once_value_96);
6934 } else fra.me.REG[7] = once_value_96;
6935 fra.me.REG[7] = fra.me.REG[7];
6936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6937 REGB1 = TAG_Int(1);
6938 /* ./../lib/standard//collection//array.nit:243 */
6939 fra.me.REG[7] = fra.me.REG[4];
6940 /* ./../lib/standard//collection//array.nit:245 */
6941 REGB2 = TAG_Int(0);
6942 /* ./../lib/standard//kernel.nit:213 */
6943 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6944 /* ./../lib/standard//collection//array.nit:245 */
6945 if (UNTAG_Bool(REGB2)) {
6946 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6947 if (UNTAG_Bool(REGB2)) {
6948 } else {
6949 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
6950 }
6951 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
6952 /* ./../lib/standard//kernel.nit:212 */
6953 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6954 } else {
6955 /* ./../lib/standard//collection//array.nit:245 */
6956 REGB0 = TAG_Bool(false);
6957 REGB2 = REGB0;
6958 }
6959 if (UNTAG_Bool(REGB2)) {
6960 } else {
6961 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
6962 }
6963 /* ./../lib/standard//collection//array.nit:246 */
6964 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
6965 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6966 if (UNTAG_Bool(REGB2)) {
6967 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
6968 }
6969 /* ./../lib/standard//collection//array.nit:654 */
6970 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6971 /* ./../lib/standard//collection//array.nit:246 */
6972 goto label97;
6973 label97: while(0);
6974 /* ./compiling//compiling_icode.nit:744 */
6975 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6976 if (!once_value_98) {
6977 fra.me.REG[7] = BOX_NativeString("))");
6978 REGB1 = TAG_Int(2);
6979 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
6980 once_value_98 = fra.me.REG[7];
6981 register_static_object(&once_value_98);
6982 } else fra.me.REG[7] = once_value_98;
6983 fra.me.REG[7] = fra.me.REG[7];
6984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6985 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6986 fra.me.REG[5] = fra.me.REG[6];
6987 } else {
6988 /* ./compiling//compiling_icode.nit:745 */
6989 if (!once_value_99) {
6990 if (!once_value_100) {
6991 fra.me.REG[6] = BOX_NativeString("lshift");
6992 REGB1 = TAG_Int(6);
6993 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
6994 once_value_100 = fra.me.REG[6];
6995 register_static_object(&once_value_100);
6996 } else fra.me.REG[6] = once_value_100;
6997 fra.me.REG[6] = fra.me.REG[6];
6998 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6999 once_value_99 = fra.me.REG[6];
7000 register_static_object(&once_value_99);
7001 } else fra.me.REG[6] = once_value_99;
7002 fra.me.REG[6] = fra.me.REG[6];
7003 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7004 if (UNTAG_Bool(REGB1)) {
7005 } else {
7006 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7007 REGB1 = REGB2;
7008 }
7009 if (UNTAG_Bool(REGB1)) {
7010 /* ./compiling//compiling_icode.nit:746 */
7011 REGB1 = TAG_Int(5);
7012 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7013 if (!once_value_101) {
7014 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7015 REGB1 = TAG_Int(18);
7016 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7017 once_value_101 = fra.me.REG[7];
7018 register_static_object(&once_value_101);
7019 } else fra.me.REG[7] = once_value_101;
7020 fra.me.REG[7] = fra.me.REG[7];
7021 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7022 REGB1 = TAG_Int(0);
7023 /* ./../lib/standard//collection//array.nit:243 */
7024 fra.me.REG[7] = fra.me.REG[4];
7025 /* ./../lib/standard//collection//array.nit:245 */
7026 REGB2 = TAG_Int(0);
7027 /* ./../lib/standard//kernel.nit:213 */
7028 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7029 /* ./../lib/standard//collection//array.nit:245 */
7030 if (UNTAG_Bool(REGB2)) {
7031 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7032 if (UNTAG_Bool(REGB2)) {
7033 } else {
7034 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7035 }
7036 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7037 /* ./../lib/standard//kernel.nit:212 */
7038 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7039 } else {
7040 /* ./../lib/standard//collection//array.nit:245 */
7041 REGB0 = TAG_Bool(false);
7042 REGB2 = REGB0;
7043 }
7044 if (UNTAG_Bool(REGB2)) {
7045 } else {
7046 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7047 }
7048 /* ./../lib/standard//collection//array.nit:246 */
7049 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7050 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7051 if (UNTAG_Bool(REGB2)) {
7052 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7053 }
7054 /* ./../lib/standard//collection//array.nit:654 */
7055 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7056 /* ./../lib/standard//collection//array.nit:246 */
7057 goto label102;
7058 label102: while(0);
7059 /* ./compiling//compiling_icode.nit:746 */
7060 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7061 if (!once_value_103) {
7062 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7063 REGB1 = TAG_Int(13);
7064 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7065 once_value_103 = fra.me.REG[7];
7066 register_static_object(&once_value_103);
7067 } else fra.me.REG[7] = once_value_103;
7068 fra.me.REG[7] = fra.me.REG[7];
7069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7070 REGB1 = TAG_Int(1);
7071 /* ./../lib/standard//collection//array.nit:243 */
7072 fra.me.REG[7] = fra.me.REG[4];
7073 /* ./../lib/standard//collection//array.nit:245 */
7074 REGB2 = TAG_Int(0);
7075 /* ./../lib/standard//kernel.nit:213 */
7076 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7077 /* ./../lib/standard//collection//array.nit:245 */
7078 if (UNTAG_Bool(REGB2)) {
7079 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7080 if (UNTAG_Bool(REGB2)) {
7081 } else {
7082 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7083 }
7084 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7085 /* ./../lib/standard//kernel.nit:212 */
7086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7087 } else {
7088 /* ./../lib/standard//collection//array.nit:245 */
7089 REGB0 = TAG_Bool(false);
7090 REGB2 = REGB0;
7091 }
7092 if (UNTAG_Bool(REGB2)) {
7093 } else {
7094 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7095 }
7096 /* ./../lib/standard//collection//array.nit:246 */
7097 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7098 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7099 if (UNTAG_Bool(REGB2)) {
7100 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7101 }
7102 /* ./../lib/standard//collection//array.nit:654 */
7103 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7104 /* ./../lib/standard//collection//array.nit:246 */
7105 goto label104;
7106 label104: while(0);
7107 /* ./compiling//compiling_icode.nit:746 */
7108 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7109 if (!once_value_105) {
7110 fra.me.REG[7] = BOX_NativeString("))");
7111 REGB1 = TAG_Int(2);
7112 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7113 once_value_105 = fra.me.REG[7];
7114 register_static_object(&once_value_105);
7115 } else fra.me.REG[7] = once_value_105;
7116 fra.me.REG[7] = fra.me.REG[7];
7117 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7118 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7119 fra.me.REG[5] = fra.me.REG[6];
7120 } else {
7121 /* ./compiling//compiling_icode.nit:747 */
7122 if (!once_value_106) {
7123 if (!once_value_107) {
7124 fra.me.REG[6] = BOX_NativeString("rshift");
7125 REGB1 = TAG_Int(6);
7126 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7127 once_value_107 = fra.me.REG[6];
7128 register_static_object(&once_value_107);
7129 } else fra.me.REG[6] = once_value_107;
7130 fra.me.REG[6] = fra.me.REG[6];
7131 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7132 once_value_106 = fra.me.REG[6];
7133 register_static_object(&once_value_106);
7134 } else fra.me.REG[6] = once_value_106;
7135 fra.me.REG[6] = fra.me.REG[6];
7136 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7137 if (UNTAG_Bool(REGB1)) {
7138 } else {
7139 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7140 REGB1 = REGB2;
7141 }
7142 if (UNTAG_Bool(REGB1)) {
7143 /* ./compiling//compiling_icode.nit:748 */
7144 REGB1 = TAG_Int(5);
7145 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7146 if (!once_value_108) {
7147 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7148 REGB1 = TAG_Int(18);
7149 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7150 once_value_108 = fra.me.REG[7];
7151 register_static_object(&once_value_108);
7152 } else fra.me.REG[7] = once_value_108;
7153 fra.me.REG[7] = fra.me.REG[7];
7154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7155 REGB1 = TAG_Int(0);
7156 /* ./../lib/standard//collection//array.nit:243 */
7157 fra.me.REG[7] = fra.me.REG[4];
7158 /* ./../lib/standard//collection//array.nit:245 */
7159 REGB2 = TAG_Int(0);
7160 /* ./../lib/standard//kernel.nit:213 */
7161 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7162 /* ./../lib/standard//collection//array.nit:245 */
7163 if (UNTAG_Bool(REGB2)) {
7164 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7165 if (UNTAG_Bool(REGB2)) {
7166 } else {
7167 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7168 }
7169 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7170 /* ./../lib/standard//kernel.nit:212 */
7171 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7172 } else {
7173 /* ./../lib/standard//collection//array.nit:245 */
7174 REGB0 = TAG_Bool(false);
7175 REGB2 = REGB0;
7176 }
7177 if (UNTAG_Bool(REGB2)) {
7178 } else {
7179 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7180 }
7181 /* ./../lib/standard//collection//array.nit:246 */
7182 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7183 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7184 if (UNTAG_Bool(REGB2)) {
7185 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7186 }
7187 /* ./../lib/standard//collection//array.nit:654 */
7188 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7189 /* ./../lib/standard//collection//array.nit:246 */
7190 goto label109;
7191 label109: while(0);
7192 /* ./compiling//compiling_icode.nit:748 */
7193 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7194 if (!once_value_110) {
7195 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7196 REGB1 = TAG_Int(13);
7197 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7198 once_value_110 = fra.me.REG[7];
7199 register_static_object(&once_value_110);
7200 } else fra.me.REG[7] = once_value_110;
7201 fra.me.REG[7] = fra.me.REG[7];
7202 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7203 REGB1 = TAG_Int(1);
7204 /* ./../lib/standard//collection//array.nit:243 */
7205 fra.me.REG[7] = fra.me.REG[4];
7206 /* ./../lib/standard//collection//array.nit:245 */
7207 REGB2 = TAG_Int(0);
7208 /* ./../lib/standard//kernel.nit:213 */
7209 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7210 /* ./../lib/standard//collection//array.nit:245 */
7211 if (UNTAG_Bool(REGB2)) {
7212 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7213 if (UNTAG_Bool(REGB2)) {
7214 } else {
7215 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7216 }
7217 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7218 /* ./../lib/standard//kernel.nit:212 */
7219 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7220 } else {
7221 /* ./../lib/standard//collection//array.nit:245 */
7222 REGB0 = TAG_Bool(false);
7223 REGB2 = REGB0;
7224 }
7225 if (UNTAG_Bool(REGB2)) {
7226 } else {
7227 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7228 }
7229 /* ./../lib/standard//collection//array.nit:246 */
7230 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7231 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7232 if (UNTAG_Bool(REGB2)) {
7233 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7234 }
7235 /* ./../lib/standard//collection//array.nit:654 */
7236 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7237 /* ./../lib/standard//collection//array.nit:246 */
7238 goto label111;
7239 label111: while(0);
7240 /* ./compiling//compiling_icode.nit:748 */
7241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7242 if (!once_value_112) {
7243 fra.me.REG[7] = BOX_NativeString("))");
7244 REGB1 = TAG_Int(2);
7245 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7246 once_value_112 = fra.me.REG[7];
7247 register_static_object(&once_value_112);
7248 } else fra.me.REG[7] = once_value_112;
7249 fra.me.REG[7] = fra.me.REG[7];
7250 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7251 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7252 fra.me.REG[5] = fra.me.REG[6];
7253 } else {
7254 /* ./compiling//compiling_icode.nit:749 */
7255 if (!once_value_113) {
7256 if (!once_value_114) {
7257 fra.me.REG[6] = BOX_NativeString("==");
7258 REGB1 = TAG_Int(2);
7259 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7260 once_value_114 = fra.me.REG[6];
7261 register_static_object(&once_value_114);
7262 } else fra.me.REG[6] = once_value_114;
7263 fra.me.REG[6] = fra.me.REG[6];
7264 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7265 once_value_113 = fra.me.REG[6];
7266 register_static_object(&once_value_113);
7267 } else fra.me.REG[6] = once_value_113;
7268 fra.me.REG[6] = fra.me.REG[6];
7269 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7270 if (UNTAG_Bool(REGB1)) {
7271 } else {
7272 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7273 REGB1 = REGB2;
7274 }
7275 if (UNTAG_Bool(REGB1)) {
7276 /* ./compiling//compiling_icode.nit:750 */
7277 REGB1 = TAG_Int(5);
7278 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7279 if (!once_value_115) {
7280 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7281 REGB1 = TAG_Int(10);
7282 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7283 once_value_115 = fra.me.REG[7];
7284 register_static_object(&once_value_115);
7285 } else fra.me.REG[7] = once_value_115;
7286 fra.me.REG[7] = fra.me.REG[7];
7287 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7288 REGB1 = TAG_Int(0);
7289 /* ./../lib/standard//collection//array.nit:243 */
7290 fra.me.REG[7] = fra.me.REG[4];
7291 /* ./../lib/standard//collection//array.nit:245 */
7292 REGB2 = TAG_Int(0);
7293 /* ./../lib/standard//kernel.nit:213 */
7294 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7295 /* ./../lib/standard//collection//array.nit:245 */
7296 if (UNTAG_Bool(REGB2)) {
7297 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7298 if (UNTAG_Bool(REGB2)) {
7299 } else {
7300 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7301 }
7302 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7303 /* ./../lib/standard//kernel.nit:212 */
7304 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7305 } else {
7306 /* ./../lib/standard//collection//array.nit:245 */
7307 REGB0 = TAG_Bool(false);
7308 REGB2 = REGB0;
7309 }
7310 if (UNTAG_Bool(REGB2)) {
7311 } else {
7312 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7313 }
7314 /* ./../lib/standard//collection//array.nit:246 */
7315 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7316 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7317 if (UNTAG_Bool(REGB2)) {
7318 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7319 }
7320 /* ./../lib/standard//collection//array.nit:654 */
7321 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7322 /* ./../lib/standard//collection//array.nit:246 */
7323 goto label116;
7324 label116: while(0);
7325 /* ./compiling//compiling_icode.nit:750 */
7326 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7327 if (!once_value_117) {
7328 fra.me.REG[7] = BOX_NativeString(")==(");
7329 REGB1 = TAG_Int(4);
7330 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7331 once_value_117 = fra.me.REG[7];
7332 register_static_object(&once_value_117);
7333 } else fra.me.REG[7] = once_value_117;
7334 fra.me.REG[7] = fra.me.REG[7];
7335 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7336 REGB1 = TAG_Int(1);
7337 /* ./../lib/standard//collection//array.nit:243 */
7338 fra.me.REG[7] = fra.me.REG[4];
7339 /* ./../lib/standard//collection//array.nit:245 */
7340 REGB2 = TAG_Int(0);
7341 /* ./../lib/standard//kernel.nit:213 */
7342 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7343 /* ./../lib/standard//collection//array.nit:245 */
7344 if (UNTAG_Bool(REGB2)) {
7345 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7346 if (UNTAG_Bool(REGB2)) {
7347 } else {
7348 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7349 }
7350 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7351 /* ./../lib/standard//kernel.nit:212 */
7352 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7353 } else {
7354 /* ./../lib/standard//collection//array.nit:245 */
7355 REGB0 = TAG_Bool(false);
7356 REGB2 = REGB0;
7357 }
7358 if (UNTAG_Bool(REGB2)) {
7359 } else {
7360 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7361 }
7362 /* ./../lib/standard//collection//array.nit:246 */
7363 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7364 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7365 if (UNTAG_Bool(REGB2)) {
7366 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7367 }
7368 /* ./../lib/standard//collection//array.nit:654 */
7369 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7370 /* ./../lib/standard//collection//array.nit:246 */
7371 goto label118;
7372 label118: while(0);
7373 /* ./compiling//compiling_icode.nit:750 */
7374 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7375 if (!once_value_119) {
7376 fra.me.REG[7] = BOX_NativeString("))");
7377 REGB1 = TAG_Int(2);
7378 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7379 once_value_119 = fra.me.REG[7];
7380 register_static_object(&once_value_119);
7381 } else fra.me.REG[7] = once_value_119;
7382 fra.me.REG[7] = fra.me.REG[7];
7383 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7384 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7385 fra.me.REG[5] = fra.me.REG[6];
7386 } else {
7387 /* ./compiling//compiling_icode.nit:751 */
7388 if (!once_value_120) {
7389 if (!once_value_121) {
7390 fra.me.REG[6] = BOX_NativeString("!=");
7391 REGB1 = TAG_Int(2);
7392 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7393 once_value_121 = fra.me.REG[6];
7394 register_static_object(&once_value_121);
7395 } else fra.me.REG[6] = once_value_121;
7396 fra.me.REG[6] = fra.me.REG[6];
7397 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7398 once_value_120 = fra.me.REG[6];
7399 register_static_object(&once_value_120);
7400 } else fra.me.REG[6] = once_value_120;
7401 fra.me.REG[6] = fra.me.REG[6];
7402 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7403 if (UNTAG_Bool(REGB1)) {
7404 } else {
7405 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7406 REGB1 = REGB2;
7407 }
7408 if (UNTAG_Bool(REGB1)) {
7409 /* ./compiling//compiling_icode.nit:752 */
7410 REGB1 = TAG_Int(5);
7411 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7412 if (!once_value_122) {
7413 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7414 REGB1 = TAG_Int(10);
7415 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7416 once_value_122 = fra.me.REG[7];
7417 register_static_object(&once_value_122);
7418 } else fra.me.REG[7] = once_value_122;
7419 fra.me.REG[7] = fra.me.REG[7];
7420 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7421 REGB1 = TAG_Int(0);
7422 /* ./../lib/standard//collection//array.nit:243 */
7423 fra.me.REG[7] = fra.me.REG[4];
7424 /* ./../lib/standard//collection//array.nit:245 */
7425 REGB2 = TAG_Int(0);
7426 /* ./../lib/standard//kernel.nit:213 */
7427 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7428 /* ./../lib/standard//collection//array.nit:245 */
7429 if (UNTAG_Bool(REGB2)) {
7430 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7431 if (UNTAG_Bool(REGB2)) {
7432 } else {
7433 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7434 }
7435 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7436 /* ./../lib/standard//kernel.nit:212 */
7437 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7438 } else {
7439 /* ./../lib/standard//collection//array.nit:245 */
7440 REGB0 = TAG_Bool(false);
7441 REGB2 = REGB0;
7442 }
7443 if (UNTAG_Bool(REGB2)) {
7444 } else {
7445 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7446 }
7447 /* ./../lib/standard//collection//array.nit:246 */
7448 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7449 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7450 if (UNTAG_Bool(REGB2)) {
7451 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7452 }
7453 /* ./../lib/standard//collection//array.nit:654 */
7454 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7455 /* ./../lib/standard//collection//array.nit:246 */
7456 goto label123;
7457 label123: while(0);
7458 /* ./compiling//compiling_icode.nit:752 */
7459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7460 if (!once_value_124) {
7461 fra.me.REG[7] = BOX_NativeString(")!=(");
7462 REGB1 = TAG_Int(4);
7463 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7464 once_value_124 = fra.me.REG[7];
7465 register_static_object(&once_value_124);
7466 } else fra.me.REG[7] = once_value_124;
7467 fra.me.REG[7] = fra.me.REG[7];
7468 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7469 REGB1 = TAG_Int(1);
7470 /* ./../lib/standard//collection//array.nit:243 */
7471 fra.me.REG[7] = fra.me.REG[4];
7472 /* ./../lib/standard//collection//array.nit:245 */
7473 REGB2 = TAG_Int(0);
7474 /* ./../lib/standard//kernel.nit:213 */
7475 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7476 /* ./../lib/standard//collection//array.nit:245 */
7477 if (UNTAG_Bool(REGB2)) {
7478 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7479 if (UNTAG_Bool(REGB2)) {
7480 } else {
7481 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7482 }
7483 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7484 /* ./../lib/standard//kernel.nit:212 */
7485 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7486 } else {
7487 /* ./../lib/standard//collection//array.nit:245 */
7488 REGB0 = TAG_Bool(false);
7489 REGB2 = REGB0;
7490 }
7491 if (UNTAG_Bool(REGB2)) {
7492 } else {
7493 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7494 }
7495 /* ./../lib/standard//collection//array.nit:246 */
7496 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7497 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7498 if (UNTAG_Bool(REGB2)) {
7499 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7500 }
7501 /* ./../lib/standard//collection//array.nit:654 */
7502 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7503 /* ./../lib/standard//collection//array.nit:246 */
7504 goto label125;
7505 label125: while(0);
7506 /* ./compiling//compiling_icode.nit:752 */
7507 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7508 if (!once_value_126) {
7509 fra.me.REG[7] = BOX_NativeString("))");
7510 REGB1 = TAG_Int(2);
7511 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7512 once_value_126 = fra.me.REG[7];
7513 register_static_object(&once_value_126);
7514 } else fra.me.REG[7] = once_value_126;
7515 fra.me.REG[7] = fra.me.REG[7];
7516 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7517 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7518 fra.me.REG[5] = fra.me.REG[6];
7519 }
7520 }
7521 }
7522 }
7523 }
7524 }
7525 }
7526 }
7527 }
7528 }
7529 }
7530 }
7531 }
7532 }
7533 }
7534 }
7535 }
7536 }
7537 }
7538 }
7539 } else {
7540 /* ./compiling//compiling_icode.nit:754 */
7541 if (!once_value_127) {
7542 if (!once_value_128) {
7543 fra.me.REG[6] = BOX_NativeString("Float");
7544 REGB1 = TAG_Int(5);
7545 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7546 once_value_128 = fra.me.REG[6];
7547 register_static_object(&once_value_128);
7548 } else fra.me.REG[6] = once_value_128;
7549 fra.me.REG[6] = fra.me.REG[6];
7550 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7551 once_value_127 = fra.me.REG[6];
7552 register_static_object(&once_value_127);
7553 } else fra.me.REG[6] = once_value_127;
7554 fra.me.REG[6] = fra.me.REG[6];
7555 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
7556 if (UNTAG_Bool(REGB1)) {
7557 } else {
7558 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
7559 REGB1 = REGB2;
7560 }
7561 if (UNTAG_Bool(REGB1)) {
7562 /* ./compiling//compiling_icode.nit:755 */
7563 if (!once_value_129) {
7564 if (!once_value_130) {
7565 fra.me.REG[6] = BOX_NativeString("object_id");
7566 REGB1 = TAG_Int(9);
7567 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7568 once_value_130 = fra.me.REG[6];
7569 register_static_object(&once_value_130);
7570 } else fra.me.REG[6] = once_value_130;
7571 fra.me.REG[6] = fra.me.REG[6];
7572 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7573 once_value_129 = fra.me.REG[6];
7574 register_static_object(&once_value_129);
7575 } else fra.me.REG[6] = once_value_129;
7576 fra.me.REG[6] = fra.me.REG[6];
7577 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7578 if (UNTAG_Bool(REGB1)) {
7579 } else {
7580 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7581 REGB1 = REGB2;
7582 }
7583 if (UNTAG_Bool(REGB1)) {
7584 /* ./compiling//compiling_icode.nit:756 */
7585 REGB1 = TAG_Int(3);
7586 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7587 if (!once_value_131) {
7588 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
7589 REGB1 = TAG_Int(28);
7590 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7591 once_value_131 = fra.me.REG[7];
7592 register_static_object(&once_value_131);
7593 } else fra.me.REG[7] = once_value_131;
7594 fra.me.REG[7] = fra.me.REG[7];
7595 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7596 REGB1 = TAG_Int(0);
7597 /* ./../lib/standard//collection//array.nit:243 */
7598 fra.me.REG[7] = fra.me.REG[4];
7599 /* ./../lib/standard//collection//array.nit:245 */
7600 REGB2 = TAG_Int(0);
7601 /* ./../lib/standard//kernel.nit:213 */
7602 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7603 /* ./../lib/standard//collection//array.nit:245 */
7604 if (UNTAG_Bool(REGB2)) {
7605 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7606 if (UNTAG_Bool(REGB2)) {
7607 } else {
7608 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7609 }
7610 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7611 /* ./../lib/standard//kernel.nit:212 */
7612 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7613 } else {
7614 /* ./../lib/standard//collection//array.nit:245 */
7615 REGB0 = TAG_Bool(false);
7616 REGB2 = REGB0;
7617 }
7618 if (UNTAG_Bool(REGB2)) {
7619 } else {
7620 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7621 }
7622 /* ./../lib/standard//collection//array.nit:246 */
7623 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7624 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7625 if (UNTAG_Bool(REGB2)) {
7626 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7627 }
7628 /* ./../lib/standard//collection//array.nit:654 */
7629 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7630 /* ./../lib/standard//collection//array.nit:246 */
7631 goto label132;
7632 label132: while(0);
7633 /* ./compiling//compiling_icode.nit:756 */
7634 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7635 if (!once_value_133) {
7636 fra.me.REG[7] = BOX_NativeString("))");
7637 REGB1 = TAG_Int(2);
7638 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7639 once_value_133 = fra.me.REG[7];
7640 register_static_object(&once_value_133);
7641 } else fra.me.REG[7] = once_value_133;
7642 fra.me.REG[7] = fra.me.REG[7];
7643 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7644 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7645 fra.me.REG[5] = fra.me.REG[6];
7646 } else {
7647 /* ./compiling//compiling_icode.nit:757 */
7648 if (!once_value_134) {
7649 if (!once_value_135) {
7650 fra.me.REG[6] = BOX_NativeString("unary -");
7651 REGB1 = TAG_Int(7);
7652 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7653 once_value_135 = fra.me.REG[6];
7654 register_static_object(&once_value_135);
7655 } else fra.me.REG[6] = once_value_135;
7656 fra.me.REG[6] = fra.me.REG[6];
7657 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7658 once_value_134 = fra.me.REG[6];
7659 register_static_object(&once_value_134);
7660 } else fra.me.REG[6] = once_value_134;
7661 fra.me.REG[6] = fra.me.REG[6];
7662 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7663 if (UNTAG_Bool(REGB1)) {
7664 } else {
7665 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7666 REGB1 = REGB2;
7667 }
7668 if (UNTAG_Bool(REGB1)) {
7669 /* ./compiling//compiling_icode.nit:758 */
7670 REGB1 = TAG_Int(3);
7671 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7672 if (!once_value_136) {
7673 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
7674 REGB1 = TAG_Int(23);
7675 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7676 once_value_136 = fra.me.REG[7];
7677 register_static_object(&once_value_136);
7678 } else fra.me.REG[7] = once_value_136;
7679 fra.me.REG[7] = fra.me.REG[7];
7680 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7681 REGB1 = TAG_Int(0);
7682 /* ./../lib/standard//collection//array.nit:243 */
7683 fra.me.REG[7] = fra.me.REG[4];
7684 /* ./../lib/standard//collection//array.nit:245 */
7685 REGB2 = TAG_Int(0);
7686 /* ./../lib/standard//kernel.nit:213 */
7687 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7688 /* ./../lib/standard//collection//array.nit:245 */
7689 if (UNTAG_Bool(REGB2)) {
7690 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7691 if (UNTAG_Bool(REGB2)) {
7692 } else {
7693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7694 }
7695 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7696 /* ./../lib/standard//kernel.nit:212 */
7697 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7698 } else {
7699 /* ./../lib/standard//collection//array.nit:245 */
7700 REGB0 = TAG_Bool(false);
7701 REGB2 = REGB0;
7702 }
7703 if (UNTAG_Bool(REGB2)) {
7704 } else {
7705 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7706 }
7707 /* ./../lib/standard//collection//array.nit:246 */
7708 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7709 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7710 if (UNTAG_Bool(REGB2)) {
7711 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7712 }
7713 /* ./../lib/standard//collection//array.nit:654 */
7714 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7715 /* ./../lib/standard//collection//array.nit:246 */
7716 goto label137;
7717 label137: while(0);
7718 /* ./compiling//compiling_icode.nit:758 */
7719 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7720 if (!once_value_138) {
7721 fra.me.REG[7] = BOX_NativeString("))");
7722 REGB1 = TAG_Int(2);
7723 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7724 once_value_138 = fra.me.REG[7];
7725 register_static_object(&once_value_138);
7726 } else fra.me.REG[7] = once_value_138;
7727 fra.me.REG[7] = fra.me.REG[7];
7728 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7729 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7730 fra.me.REG[5] = fra.me.REG[6];
7731 } else {
7732 /* ./compiling//compiling_icode.nit:759 */
7733 if (!once_value_139) {
7734 if (!once_value_140) {
7735 fra.me.REG[6] = BOX_NativeString("output");
7736 REGB1 = TAG_Int(6);
7737 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7738 once_value_140 = fra.me.REG[6];
7739 register_static_object(&once_value_140);
7740 } else fra.me.REG[6] = once_value_140;
7741 fra.me.REG[6] = fra.me.REG[6];
7742 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7743 once_value_139 = fra.me.REG[6];
7744 register_static_object(&once_value_139);
7745 } else fra.me.REG[6] = once_value_139;
7746 fra.me.REG[6] = fra.me.REG[6];
7747 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7748 if (UNTAG_Bool(REGB1)) {
7749 } else {
7750 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7751 REGB1 = REGB2;
7752 }
7753 if (UNTAG_Bool(REGB1)) {
7754 /* ./compiling//compiling_icode.nit:760 */
7755 REGB1 = TAG_Int(3);
7756 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7757 if (!once_value_141) {
7758 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
7759 REGB1 = TAG_Int(27);
7760 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7761 once_value_141 = fra.me.REG[7];
7762 register_static_object(&once_value_141);
7763 } else fra.me.REG[7] = once_value_141;
7764 fra.me.REG[7] = fra.me.REG[7];
7765 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7766 REGB1 = TAG_Int(0);
7767 /* ./../lib/standard//collection//array.nit:243 */
7768 fra.me.REG[7] = fra.me.REG[4];
7769 /* ./../lib/standard//collection//array.nit:245 */
7770 REGB2 = TAG_Int(0);
7771 /* ./../lib/standard//kernel.nit:213 */
7772 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7773 /* ./../lib/standard//collection//array.nit:245 */
7774 if (UNTAG_Bool(REGB2)) {
7775 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7776 if (UNTAG_Bool(REGB2)) {
7777 } else {
7778 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7779 }
7780 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7781 /* ./../lib/standard//kernel.nit:212 */
7782 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7783 } else {
7784 /* ./../lib/standard//collection//array.nit:245 */
7785 REGB0 = TAG_Bool(false);
7786 REGB2 = REGB0;
7787 }
7788 if (UNTAG_Bool(REGB2)) {
7789 } else {
7790 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7791 }
7792 /* ./../lib/standard//collection//array.nit:246 */
7793 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7794 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7795 if (UNTAG_Bool(REGB2)) {
7796 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7797 }
7798 /* ./../lib/standard//collection//array.nit:654 */
7799 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7800 /* ./../lib/standard//collection//array.nit:246 */
7801 goto label142;
7802 label142: while(0);
7803 /* ./compiling//compiling_icode.nit:760 */
7804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7805 if (!once_value_143) {
7806 fra.me.REG[7] = BOX_NativeString("));");
7807 REGB1 = TAG_Int(3);
7808 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7809 once_value_143 = fra.me.REG[7];
7810 register_static_object(&once_value_143);
7811 } else fra.me.REG[7] = once_value_143;
7812 fra.me.REG[7] = fra.me.REG[7];
7813 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7814 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7815 fra.me.REG[5] = fra.me.REG[6];
7816 } else {
7817 /* ./compiling//compiling_icode.nit:761 */
7818 if (!once_value_144) {
7819 if (!once_value_145) {
7820 fra.me.REG[6] = BOX_NativeString("to_i");
7821 REGB1 = TAG_Int(4);
7822 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7823 once_value_145 = fra.me.REG[6];
7824 register_static_object(&once_value_145);
7825 } else fra.me.REG[6] = once_value_145;
7826 fra.me.REG[6] = fra.me.REG[6];
7827 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7828 once_value_144 = fra.me.REG[6];
7829 register_static_object(&once_value_144);
7830 } else fra.me.REG[6] = once_value_144;
7831 fra.me.REG[6] = fra.me.REG[6];
7832 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7833 if (UNTAG_Bool(REGB1)) {
7834 } else {
7835 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7836 REGB1 = REGB2;
7837 }
7838 if (UNTAG_Bool(REGB1)) {
7839 /* ./compiling//compiling_icode.nit:762 */
7840 REGB1 = TAG_Int(3);
7841 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7842 if (!once_value_146) {
7843 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
7844 REGB1 = TAG_Int(28);
7845 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7846 once_value_146 = fra.me.REG[7];
7847 register_static_object(&once_value_146);
7848 } else fra.me.REG[7] = once_value_146;
7849 fra.me.REG[7] = fra.me.REG[7];
7850 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7851 REGB1 = TAG_Int(0);
7852 /* ./../lib/standard//collection//array.nit:243 */
7853 fra.me.REG[7] = fra.me.REG[4];
7854 /* ./../lib/standard//collection//array.nit:245 */
7855 REGB2 = TAG_Int(0);
7856 /* ./../lib/standard//kernel.nit:213 */
7857 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7858 /* ./../lib/standard//collection//array.nit:245 */
7859 if (UNTAG_Bool(REGB2)) {
7860 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7861 if (UNTAG_Bool(REGB2)) {
7862 } else {
7863 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7864 }
7865 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7866 /* ./../lib/standard//kernel.nit:212 */
7867 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7868 } else {
7869 /* ./../lib/standard//collection//array.nit:245 */
7870 REGB0 = TAG_Bool(false);
7871 REGB2 = REGB0;
7872 }
7873 if (UNTAG_Bool(REGB2)) {
7874 } else {
7875 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7876 }
7877 /* ./../lib/standard//collection//array.nit:246 */
7878 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7879 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7880 if (UNTAG_Bool(REGB2)) {
7881 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7882 }
7883 /* ./../lib/standard//collection//array.nit:654 */
7884 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7885 /* ./../lib/standard//collection//array.nit:246 */
7886 goto label147;
7887 label147: while(0);
7888 /* ./compiling//compiling_icode.nit:762 */
7889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7890 if (!once_value_148) {
7891 fra.me.REG[7] = BOX_NativeString("))");
7892 REGB1 = TAG_Int(2);
7893 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7894 once_value_148 = fra.me.REG[7];
7895 register_static_object(&once_value_148);
7896 } else fra.me.REG[7] = once_value_148;
7897 fra.me.REG[7] = fra.me.REG[7];
7898 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7899 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7900 fra.me.REG[5] = fra.me.REG[6];
7901 } else {
7902 /* ./compiling//compiling_icode.nit:763 */
7903 if (!once_value_149) {
7904 if (!once_value_150) {
7905 fra.me.REG[6] = BOX_NativeString("+");
7906 REGB1 = TAG_Int(1);
7907 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
7908 once_value_150 = fra.me.REG[6];
7909 register_static_object(&once_value_150);
7910 } else fra.me.REG[6] = once_value_150;
7911 fra.me.REG[6] = fra.me.REG[6];
7912 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7913 once_value_149 = fra.me.REG[6];
7914 register_static_object(&once_value_149);
7915 } else fra.me.REG[6] = once_value_149;
7916 fra.me.REG[6] = fra.me.REG[6];
7917 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7918 if (UNTAG_Bool(REGB1)) {
7919 } else {
7920 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7921 REGB1 = REGB2;
7922 }
7923 if (UNTAG_Bool(REGB1)) {
7924 /* ./compiling//compiling_icode.nit:764 */
7925 REGB1 = TAG_Int(5);
7926 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
7927 if (!once_value_151) {
7928 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
7929 REGB1 = TAG_Int(22);
7930 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7931 once_value_151 = fra.me.REG[7];
7932 register_static_object(&once_value_151);
7933 } else fra.me.REG[7] = once_value_151;
7934 fra.me.REG[7] = fra.me.REG[7];
7935 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7936 REGB1 = TAG_Int(0);
7937 /* ./../lib/standard//collection//array.nit:243 */
7938 fra.me.REG[7] = fra.me.REG[4];
7939 /* ./../lib/standard//collection//array.nit:245 */
7940 REGB2 = TAG_Int(0);
7941 /* ./../lib/standard//kernel.nit:213 */
7942 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7943 /* ./../lib/standard//collection//array.nit:245 */
7944 if (UNTAG_Bool(REGB2)) {
7945 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7946 if (UNTAG_Bool(REGB2)) {
7947 } else {
7948 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7949 }
7950 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7951 /* ./../lib/standard//kernel.nit:212 */
7952 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7953 } else {
7954 /* ./../lib/standard//collection//array.nit:245 */
7955 REGB0 = TAG_Bool(false);
7956 REGB2 = REGB0;
7957 }
7958 if (UNTAG_Bool(REGB2)) {
7959 } else {
7960 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
7961 }
7962 /* ./../lib/standard//collection//array.nit:246 */
7963 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
7964 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7965 if (UNTAG_Bool(REGB2)) {
7966 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
7967 }
7968 /* ./../lib/standard//collection//array.nit:654 */
7969 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7970 /* ./../lib/standard//collection//array.nit:246 */
7971 goto label152;
7972 label152: while(0);
7973 /* ./compiling//compiling_icode.nit:764 */
7974 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7975 if (!once_value_153) {
7976 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
7977 REGB1 = TAG_Int(14);
7978 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
7979 once_value_153 = fra.me.REG[7];
7980 register_static_object(&once_value_153);
7981 } else fra.me.REG[7] = once_value_153;
7982 fra.me.REG[7] = fra.me.REG[7];
7983 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7984 REGB1 = TAG_Int(1);
7985 /* ./../lib/standard//collection//array.nit:243 */
7986 fra.me.REG[7] = fra.me.REG[4];
7987 /* ./../lib/standard//collection//array.nit:245 */
7988 REGB2 = TAG_Int(0);
7989 /* ./../lib/standard//kernel.nit:213 */
7990 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7991 /* ./../lib/standard//collection//array.nit:245 */
7992 if (UNTAG_Bool(REGB2)) {
7993 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7994 if (UNTAG_Bool(REGB2)) {
7995 } else {
7996 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
7997 }
7998 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
7999 /* ./../lib/standard//kernel.nit:212 */
8000 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8001 } else {
8002 /* ./../lib/standard//collection//array.nit:245 */
8003 REGB0 = TAG_Bool(false);
8004 REGB2 = REGB0;
8005 }
8006 if (UNTAG_Bool(REGB2)) {
8007 } else {
8008 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8009 }
8010 /* ./../lib/standard//collection//array.nit:246 */
8011 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8012 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8013 if (UNTAG_Bool(REGB2)) {
8014 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8015 }
8016 /* ./../lib/standard//collection//array.nit:654 */
8017 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8018 /* ./../lib/standard//collection//array.nit:246 */
8019 goto label154;
8020 label154: while(0);
8021 /* ./compiling//compiling_icode.nit:764 */
8022 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8023 if (!once_value_155) {
8024 fra.me.REG[7] = BOX_NativeString("))");
8025 REGB1 = TAG_Int(2);
8026 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8027 once_value_155 = fra.me.REG[7];
8028 register_static_object(&once_value_155);
8029 } else fra.me.REG[7] = once_value_155;
8030 fra.me.REG[7] = fra.me.REG[7];
8031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8032 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8033 fra.me.REG[5] = fra.me.REG[6];
8034 } else {
8035 /* ./compiling//compiling_icode.nit:765 */
8036 if (!once_value_156) {
8037 if (!once_value_157) {
8038 fra.me.REG[6] = BOX_NativeString("-");
8039 REGB1 = TAG_Int(1);
8040 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8041 once_value_157 = fra.me.REG[6];
8042 register_static_object(&once_value_157);
8043 } else fra.me.REG[6] = once_value_157;
8044 fra.me.REG[6] = fra.me.REG[6];
8045 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8046 once_value_156 = fra.me.REG[6];
8047 register_static_object(&once_value_156);
8048 } else fra.me.REG[6] = once_value_156;
8049 fra.me.REG[6] = fra.me.REG[6];
8050 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8051 if (UNTAG_Bool(REGB1)) {
8052 } else {
8053 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8054 REGB1 = REGB2;
8055 }
8056 if (UNTAG_Bool(REGB1)) {
8057 /* ./compiling//compiling_icode.nit:766 */
8058 REGB1 = TAG_Int(5);
8059 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8060 if (!once_value_158) {
8061 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8062 REGB1 = TAG_Int(22);
8063 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8064 once_value_158 = fra.me.REG[7];
8065 register_static_object(&once_value_158);
8066 } else fra.me.REG[7] = once_value_158;
8067 fra.me.REG[7] = fra.me.REG[7];
8068 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8069 REGB1 = TAG_Int(0);
8070 /* ./../lib/standard//collection//array.nit:243 */
8071 fra.me.REG[7] = fra.me.REG[4];
8072 /* ./../lib/standard//collection//array.nit:245 */
8073 REGB2 = TAG_Int(0);
8074 /* ./../lib/standard//kernel.nit:213 */
8075 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8076 /* ./../lib/standard//collection//array.nit:245 */
8077 if (UNTAG_Bool(REGB2)) {
8078 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8079 if (UNTAG_Bool(REGB2)) {
8080 } else {
8081 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8082 }
8083 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8084 /* ./../lib/standard//kernel.nit:212 */
8085 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8086 } else {
8087 /* ./../lib/standard//collection//array.nit:245 */
8088 REGB0 = TAG_Bool(false);
8089 REGB2 = REGB0;
8090 }
8091 if (UNTAG_Bool(REGB2)) {
8092 } else {
8093 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8094 }
8095 /* ./../lib/standard//collection//array.nit:246 */
8096 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8097 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8098 if (UNTAG_Bool(REGB2)) {
8099 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8100 }
8101 /* ./../lib/standard//collection//array.nit:654 */
8102 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8103 /* ./../lib/standard//collection//array.nit:246 */
8104 goto label159;
8105 label159: while(0);
8106 /* ./compiling//compiling_icode.nit:766 */
8107 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8108 if (!once_value_160) {
8109 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8110 REGB1 = TAG_Int(14);
8111 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8112 once_value_160 = fra.me.REG[7];
8113 register_static_object(&once_value_160);
8114 } else fra.me.REG[7] = once_value_160;
8115 fra.me.REG[7] = fra.me.REG[7];
8116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8117 REGB1 = TAG_Int(1);
8118 /* ./../lib/standard//collection//array.nit:243 */
8119 fra.me.REG[7] = fra.me.REG[4];
8120 /* ./../lib/standard//collection//array.nit:245 */
8121 REGB2 = TAG_Int(0);
8122 /* ./../lib/standard//kernel.nit:213 */
8123 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8124 /* ./../lib/standard//collection//array.nit:245 */
8125 if (UNTAG_Bool(REGB2)) {
8126 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8127 if (UNTAG_Bool(REGB2)) {
8128 } else {
8129 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8130 }
8131 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8132 /* ./../lib/standard//kernel.nit:212 */
8133 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8134 } else {
8135 /* ./../lib/standard//collection//array.nit:245 */
8136 REGB0 = TAG_Bool(false);
8137 REGB2 = REGB0;
8138 }
8139 if (UNTAG_Bool(REGB2)) {
8140 } else {
8141 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8142 }
8143 /* ./../lib/standard//collection//array.nit:246 */
8144 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8145 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8146 if (UNTAG_Bool(REGB2)) {
8147 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8148 }
8149 /* ./../lib/standard//collection//array.nit:654 */
8150 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8151 /* ./../lib/standard//collection//array.nit:246 */
8152 goto label161;
8153 label161: while(0);
8154 /* ./compiling//compiling_icode.nit:766 */
8155 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8156 if (!once_value_162) {
8157 fra.me.REG[7] = BOX_NativeString("))");
8158 REGB1 = TAG_Int(2);
8159 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8160 once_value_162 = fra.me.REG[7];
8161 register_static_object(&once_value_162);
8162 } else fra.me.REG[7] = once_value_162;
8163 fra.me.REG[7] = fra.me.REG[7];
8164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8165 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8166 fra.me.REG[5] = fra.me.REG[6];
8167 } else {
8168 /* ./compiling//compiling_icode.nit:767 */
8169 if (!once_value_163) {
8170 if (!once_value_164) {
8171 fra.me.REG[6] = BOX_NativeString("*");
8172 REGB1 = TAG_Int(1);
8173 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8174 once_value_164 = fra.me.REG[6];
8175 register_static_object(&once_value_164);
8176 } else fra.me.REG[6] = once_value_164;
8177 fra.me.REG[6] = fra.me.REG[6];
8178 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8179 once_value_163 = fra.me.REG[6];
8180 register_static_object(&once_value_163);
8181 } else fra.me.REG[6] = once_value_163;
8182 fra.me.REG[6] = fra.me.REG[6];
8183 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8184 if (UNTAG_Bool(REGB1)) {
8185 } else {
8186 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8187 REGB1 = REGB2;
8188 }
8189 if (UNTAG_Bool(REGB1)) {
8190 /* ./compiling//compiling_icode.nit:768 */
8191 REGB1 = TAG_Int(5);
8192 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8193 if (!once_value_165) {
8194 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8195 REGB1 = TAG_Int(22);
8196 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8197 once_value_165 = fra.me.REG[7];
8198 register_static_object(&once_value_165);
8199 } else fra.me.REG[7] = once_value_165;
8200 fra.me.REG[7] = fra.me.REG[7];
8201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8202 REGB1 = TAG_Int(0);
8203 /* ./../lib/standard//collection//array.nit:243 */
8204 fra.me.REG[7] = fra.me.REG[4];
8205 /* ./../lib/standard//collection//array.nit:245 */
8206 REGB2 = TAG_Int(0);
8207 /* ./../lib/standard//kernel.nit:213 */
8208 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8209 /* ./../lib/standard//collection//array.nit:245 */
8210 if (UNTAG_Bool(REGB2)) {
8211 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8212 if (UNTAG_Bool(REGB2)) {
8213 } else {
8214 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8215 }
8216 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8217 /* ./../lib/standard//kernel.nit:212 */
8218 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8219 } else {
8220 /* ./../lib/standard//collection//array.nit:245 */
8221 REGB0 = TAG_Bool(false);
8222 REGB2 = REGB0;
8223 }
8224 if (UNTAG_Bool(REGB2)) {
8225 } else {
8226 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8227 }
8228 /* ./../lib/standard//collection//array.nit:246 */
8229 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8230 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8231 if (UNTAG_Bool(REGB2)) {
8232 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8233 }
8234 /* ./../lib/standard//collection//array.nit:654 */
8235 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8236 /* ./../lib/standard//collection//array.nit:246 */
8237 goto label166;
8238 label166: while(0);
8239 /* ./compiling//compiling_icode.nit:768 */
8240 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8241 if (!once_value_167) {
8242 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8243 REGB1 = TAG_Int(14);
8244 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8245 once_value_167 = fra.me.REG[7];
8246 register_static_object(&once_value_167);
8247 } else fra.me.REG[7] = once_value_167;
8248 fra.me.REG[7] = fra.me.REG[7];
8249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8250 REGB1 = TAG_Int(1);
8251 /* ./../lib/standard//collection//array.nit:243 */
8252 fra.me.REG[7] = fra.me.REG[4];
8253 /* ./../lib/standard//collection//array.nit:245 */
8254 REGB2 = TAG_Int(0);
8255 /* ./../lib/standard//kernel.nit:213 */
8256 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8257 /* ./../lib/standard//collection//array.nit:245 */
8258 if (UNTAG_Bool(REGB2)) {
8259 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8260 if (UNTAG_Bool(REGB2)) {
8261 } else {
8262 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8263 }
8264 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8265 /* ./../lib/standard//kernel.nit:212 */
8266 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8267 } else {
8268 /* ./../lib/standard//collection//array.nit:245 */
8269 REGB0 = TAG_Bool(false);
8270 REGB2 = REGB0;
8271 }
8272 if (UNTAG_Bool(REGB2)) {
8273 } else {
8274 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8275 }
8276 /* ./../lib/standard//collection//array.nit:246 */
8277 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8278 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8279 if (UNTAG_Bool(REGB2)) {
8280 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8281 }
8282 /* ./../lib/standard//collection//array.nit:654 */
8283 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8284 /* ./../lib/standard//collection//array.nit:246 */
8285 goto label168;
8286 label168: while(0);
8287 /* ./compiling//compiling_icode.nit:768 */
8288 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8289 if (!once_value_169) {
8290 fra.me.REG[7] = BOX_NativeString("))");
8291 REGB1 = TAG_Int(2);
8292 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8293 once_value_169 = fra.me.REG[7];
8294 register_static_object(&once_value_169);
8295 } else fra.me.REG[7] = once_value_169;
8296 fra.me.REG[7] = fra.me.REG[7];
8297 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8298 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8299 fra.me.REG[5] = fra.me.REG[6];
8300 } else {
8301 /* ./compiling//compiling_icode.nit:769 */
8302 if (!once_value_170) {
8303 if (!once_value_171) {
8304 fra.me.REG[6] = BOX_NativeString("/");
8305 REGB1 = TAG_Int(1);
8306 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8307 once_value_171 = fra.me.REG[6];
8308 register_static_object(&once_value_171);
8309 } else fra.me.REG[6] = once_value_171;
8310 fra.me.REG[6] = fra.me.REG[6];
8311 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8312 once_value_170 = fra.me.REG[6];
8313 register_static_object(&once_value_170);
8314 } else fra.me.REG[6] = once_value_170;
8315 fra.me.REG[6] = fra.me.REG[6];
8316 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8317 if (UNTAG_Bool(REGB1)) {
8318 } else {
8319 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8320 REGB1 = REGB2;
8321 }
8322 if (UNTAG_Bool(REGB1)) {
8323 /* ./compiling//compiling_icode.nit:770 */
8324 REGB1 = TAG_Int(5);
8325 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8326 if (!once_value_172) {
8327 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8328 REGB1 = TAG_Int(22);
8329 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8330 once_value_172 = fra.me.REG[7];
8331 register_static_object(&once_value_172);
8332 } else fra.me.REG[7] = once_value_172;
8333 fra.me.REG[7] = fra.me.REG[7];
8334 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8335 REGB1 = TAG_Int(0);
8336 /* ./../lib/standard//collection//array.nit:243 */
8337 fra.me.REG[7] = fra.me.REG[4];
8338 /* ./../lib/standard//collection//array.nit:245 */
8339 REGB2 = TAG_Int(0);
8340 /* ./../lib/standard//kernel.nit:213 */
8341 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8342 /* ./../lib/standard//collection//array.nit:245 */
8343 if (UNTAG_Bool(REGB2)) {
8344 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8345 if (UNTAG_Bool(REGB2)) {
8346 } else {
8347 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8348 }
8349 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8350 /* ./../lib/standard//kernel.nit:212 */
8351 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8352 } else {
8353 /* ./../lib/standard//collection//array.nit:245 */
8354 REGB0 = TAG_Bool(false);
8355 REGB2 = REGB0;
8356 }
8357 if (UNTAG_Bool(REGB2)) {
8358 } else {
8359 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8360 }
8361 /* ./../lib/standard//collection//array.nit:246 */
8362 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8363 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8364 if (UNTAG_Bool(REGB2)) {
8365 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8366 }
8367 /* ./../lib/standard//collection//array.nit:654 */
8368 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8369 /* ./../lib/standard//collection//array.nit:246 */
8370 goto label173;
8371 label173: while(0);
8372 /* ./compiling//compiling_icode.nit:770 */
8373 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8374 if (!once_value_174) {
8375 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
8376 REGB1 = TAG_Int(14);
8377 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8378 once_value_174 = fra.me.REG[7];
8379 register_static_object(&once_value_174);
8380 } else fra.me.REG[7] = once_value_174;
8381 fra.me.REG[7] = fra.me.REG[7];
8382 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8383 REGB1 = TAG_Int(1);
8384 /* ./../lib/standard//collection//array.nit:243 */
8385 fra.me.REG[7] = fra.me.REG[4];
8386 /* ./../lib/standard//collection//array.nit:245 */
8387 REGB2 = TAG_Int(0);
8388 /* ./../lib/standard//kernel.nit:213 */
8389 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8390 /* ./../lib/standard//collection//array.nit:245 */
8391 if (UNTAG_Bool(REGB2)) {
8392 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8393 if (UNTAG_Bool(REGB2)) {
8394 } else {
8395 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8396 }
8397 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8398 /* ./../lib/standard//kernel.nit:212 */
8399 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8400 } else {
8401 /* ./../lib/standard//collection//array.nit:245 */
8402 REGB0 = TAG_Bool(false);
8403 REGB2 = REGB0;
8404 }
8405 if (UNTAG_Bool(REGB2)) {
8406 } else {
8407 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8408 }
8409 /* ./../lib/standard//collection//array.nit:246 */
8410 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8411 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8412 if (UNTAG_Bool(REGB2)) {
8413 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8414 }
8415 /* ./../lib/standard//collection//array.nit:654 */
8416 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8417 /* ./../lib/standard//collection//array.nit:246 */
8418 goto label175;
8419 label175: while(0);
8420 /* ./compiling//compiling_icode.nit:770 */
8421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8422 if (!once_value_176) {
8423 fra.me.REG[7] = BOX_NativeString("))");
8424 REGB1 = TAG_Int(2);
8425 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8426 once_value_176 = fra.me.REG[7];
8427 register_static_object(&once_value_176);
8428 } else fra.me.REG[7] = once_value_176;
8429 fra.me.REG[7] = fra.me.REG[7];
8430 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8431 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8432 fra.me.REG[5] = fra.me.REG[6];
8433 } else {
8434 /* ./compiling//compiling_icode.nit:771 */
8435 if (!once_value_177) {
8436 if (!once_value_178) {
8437 fra.me.REG[6] = BOX_NativeString("<");
8438 REGB1 = TAG_Int(1);
8439 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8440 once_value_178 = fra.me.REG[6];
8441 register_static_object(&once_value_178);
8442 } else fra.me.REG[6] = once_value_178;
8443 fra.me.REG[6] = fra.me.REG[6];
8444 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8445 once_value_177 = fra.me.REG[6];
8446 register_static_object(&once_value_177);
8447 } else fra.me.REG[6] = once_value_177;
8448 fra.me.REG[6] = fra.me.REG[6];
8449 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8450 if (UNTAG_Bool(REGB1)) {
8451 } else {
8452 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8453 REGB1 = REGB2;
8454 }
8455 if (UNTAG_Bool(REGB1)) {
8456 /* ./compiling//compiling_icode.nit:772 */
8457 REGB1 = TAG_Int(5);
8458 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8459 if (!once_value_179) {
8460 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8461 REGB1 = TAG_Int(21);
8462 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8463 once_value_179 = fra.me.REG[7];
8464 register_static_object(&once_value_179);
8465 } else fra.me.REG[7] = once_value_179;
8466 fra.me.REG[7] = fra.me.REG[7];
8467 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8468 REGB1 = TAG_Int(0);
8469 /* ./../lib/standard//collection//array.nit:243 */
8470 fra.me.REG[7] = fra.me.REG[4];
8471 /* ./../lib/standard//collection//array.nit:245 */
8472 REGB2 = TAG_Int(0);
8473 /* ./../lib/standard//kernel.nit:213 */
8474 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8475 /* ./../lib/standard//collection//array.nit:245 */
8476 if (UNTAG_Bool(REGB2)) {
8477 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8478 if (UNTAG_Bool(REGB2)) {
8479 } else {
8480 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8481 }
8482 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8483 /* ./../lib/standard//kernel.nit:212 */
8484 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8485 } else {
8486 /* ./../lib/standard//collection//array.nit:245 */
8487 REGB0 = TAG_Bool(false);
8488 REGB2 = REGB0;
8489 }
8490 if (UNTAG_Bool(REGB2)) {
8491 } else {
8492 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8493 }
8494 /* ./../lib/standard//collection//array.nit:246 */
8495 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8496 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8497 if (UNTAG_Bool(REGB2)) {
8498 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8499 }
8500 /* ./../lib/standard//collection//array.nit:654 */
8501 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8502 /* ./../lib/standard//collection//array.nit:246 */
8503 goto label180;
8504 label180: while(0);
8505 /* ./compiling//compiling_icode.nit:772 */
8506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8507 if (!once_value_181) {
8508 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
8509 REGB1 = TAG_Int(14);
8510 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8511 once_value_181 = fra.me.REG[7];
8512 register_static_object(&once_value_181);
8513 } else fra.me.REG[7] = once_value_181;
8514 fra.me.REG[7] = fra.me.REG[7];
8515 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8516 REGB1 = TAG_Int(1);
8517 /* ./../lib/standard//collection//array.nit:243 */
8518 fra.me.REG[7] = fra.me.REG[4];
8519 /* ./../lib/standard//collection//array.nit:245 */
8520 REGB2 = TAG_Int(0);
8521 /* ./../lib/standard//kernel.nit:213 */
8522 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8523 /* ./../lib/standard//collection//array.nit:245 */
8524 if (UNTAG_Bool(REGB2)) {
8525 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8526 if (UNTAG_Bool(REGB2)) {
8527 } else {
8528 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8529 }
8530 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8531 /* ./../lib/standard//kernel.nit:212 */
8532 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8533 } else {
8534 /* ./../lib/standard//collection//array.nit:245 */
8535 REGB0 = TAG_Bool(false);
8536 REGB2 = REGB0;
8537 }
8538 if (UNTAG_Bool(REGB2)) {
8539 } else {
8540 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8541 }
8542 /* ./../lib/standard//collection//array.nit:246 */
8543 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8544 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8545 if (UNTAG_Bool(REGB2)) {
8546 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8547 }
8548 /* ./../lib/standard//collection//array.nit:654 */
8549 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8550 /* ./../lib/standard//collection//array.nit:246 */
8551 goto label182;
8552 label182: while(0);
8553 /* ./compiling//compiling_icode.nit:772 */
8554 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8555 if (!once_value_183) {
8556 fra.me.REG[7] = BOX_NativeString("))");
8557 REGB1 = TAG_Int(2);
8558 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8559 once_value_183 = fra.me.REG[7];
8560 register_static_object(&once_value_183);
8561 } else fra.me.REG[7] = once_value_183;
8562 fra.me.REG[7] = fra.me.REG[7];
8563 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8564 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8565 fra.me.REG[5] = fra.me.REG[6];
8566 } else {
8567 /* ./compiling//compiling_icode.nit:773 */
8568 if (!once_value_184) {
8569 if (!once_value_185) {
8570 fra.me.REG[6] = BOX_NativeString(">");
8571 REGB1 = TAG_Int(1);
8572 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8573 once_value_185 = fra.me.REG[6];
8574 register_static_object(&once_value_185);
8575 } else fra.me.REG[6] = once_value_185;
8576 fra.me.REG[6] = fra.me.REG[6];
8577 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8578 once_value_184 = fra.me.REG[6];
8579 register_static_object(&once_value_184);
8580 } else fra.me.REG[6] = once_value_184;
8581 fra.me.REG[6] = fra.me.REG[6];
8582 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8583 if (UNTAG_Bool(REGB1)) {
8584 } else {
8585 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8586 REGB1 = REGB2;
8587 }
8588 if (UNTAG_Bool(REGB1)) {
8589 /* ./compiling//compiling_icode.nit:774 */
8590 REGB1 = TAG_Int(5);
8591 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8592 if (!once_value_186) {
8593 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8594 REGB1 = TAG_Int(21);
8595 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8596 once_value_186 = fra.me.REG[7];
8597 register_static_object(&once_value_186);
8598 } else fra.me.REG[7] = once_value_186;
8599 fra.me.REG[7] = fra.me.REG[7];
8600 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8601 REGB1 = TAG_Int(0);
8602 /* ./../lib/standard//collection//array.nit:243 */
8603 fra.me.REG[7] = fra.me.REG[4];
8604 /* ./../lib/standard//collection//array.nit:245 */
8605 REGB2 = TAG_Int(0);
8606 /* ./../lib/standard//kernel.nit:213 */
8607 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8608 /* ./../lib/standard//collection//array.nit:245 */
8609 if (UNTAG_Bool(REGB2)) {
8610 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8611 if (UNTAG_Bool(REGB2)) {
8612 } else {
8613 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8614 }
8615 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8616 /* ./../lib/standard//kernel.nit:212 */
8617 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8618 } else {
8619 /* ./../lib/standard//collection//array.nit:245 */
8620 REGB0 = TAG_Bool(false);
8621 REGB2 = REGB0;
8622 }
8623 if (UNTAG_Bool(REGB2)) {
8624 } else {
8625 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8626 }
8627 /* ./../lib/standard//collection//array.nit:246 */
8628 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8629 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8630 if (UNTAG_Bool(REGB2)) {
8631 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8632 }
8633 /* ./../lib/standard//collection//array.nit:654 */
8634 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8635 /* ./../lib/standard//collection//array.nit:246 */
8636 goto label187;
8637 label187: while(0);
8638 /* ./compiling//compiling_icode.nit:774 */
8639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8640 if (!once_value_188) {
8641 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
8642 REGB1 = TAG_Int(14);
8643 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8644 once_value_188 = fra.me.REG[7];
8645 register_static_object(&once_value_188);
8646 } else fra.me.REG[7] = once_value_188;
8647 fra.me.REG[7] = fra.me.REG[7];
8648 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8649 REGB1 = TAG_Int(1);
8650 /* ./../lib/standard//collection//array.nit:243 */
8651 fra.me.REG[7] = fra.me.REG[4];
8652 /* ./../lib/standard//collection//array.nit:245 */
8653 REGB2 = TAG_Int(0);
8654 /* ./../lib/standard//kernel.nit:213 */
8655 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8656 /* ./../lib/standard//collection//array.nit:245 */
8657 if (UNTAG_Bool(REGB2)) {
8658 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8659 if (UNTAG_Bool(REGB2)) {
8660 } else {
8661 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8662 }
8663 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8664 /* ./../lib/standard//kernel.nit:212 */
8665 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8666 } else {
8667 /* ./../lib/standard//collection//array.nit:245 */
8668 REGB0 = TAG_Bool(false);
8669 REGB2 = REGB0;
8670 }
8671 if (UNTAG_Bool(REGB2)) {
8672 } else {
8673 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8674 }
8675 /* ./../lib/standard//collection//array.nit:246 */
8676 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8677 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8678 if (UNTAG_Bool(REGB2)) {
8679 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8680 }
8681 /* ./../lib/standard//collection//array.nit:654 */
8682 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8683 /* ./../lib/standard//collection//array.nit:246 */
8684 goto label189;
8685 label189: while(0);
8686 /* ./compiling//compiling_icode.nit:774 */
8687 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8688 if (!once_value_190) {
8689 fra.me.REG[7] = BOX_NativeString("))");
8690 REGB1 = TAG_Int(2);
8691 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8692 once_value_190 = fra.me.REG[7];
8693 register_static_object(&once_value_190);
8694 } else fra.me.REG[7] = once_value_190;
8695 fra.me.REG[7] = fra.me.REG[7];
8696 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8697 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8698 fra.me.REG[5] = fra.me.REG[6];
8699 } else {
8700 /* ./compiling//compiling_icode.nit:775 */
8701 if (!once_value_191) {
8702 if (!once_value_192) {
8703 fra.me.REG[6] = BOX_NativeString("<=");
8704 REGB1 = TAG_Int(2);
8705 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8706 once_value_192 = fra.me.REG[6];
8707 register_static_object(&once_value_192);
8708 } else fra.me.REG[6] = once_value_192;
8709 fra.me.REG[6] = fra.me.REG[6];
8710 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8711 once_value_191 = fra.me.REG[6];
8712 register_static_object(&once_value_191);
8713 } else fra.me.REG[6] = once_value_191;
8714 fra.me.REG[6] = fra.me.REG[6];
8715 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8716 if (UNTAG_Bool(REGB1)) {
8717 } else {
8718 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8719 REGB1 = REGB2;
8720 }
8721 if (UNTAG_Bool(REGB1)) {
8722 /* ./compiling//compiling_icode.nit:776 */
8723 REGB1 = TAG_Int(5);
8724 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8725 if (!once_value_193) {
8726 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8727 REGB1 = TAG_Int(21);
8728 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8729 once_value_193 = fra.me.REG[7];
8730 register_static_object(&once_value_193);
8731 } else fra.me.REG[7] = once_value_193;
8732 fra.me.REG[7] = fra.me.REG[7];
8733 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8734 REGB1 = TAG_Int(0);
8735 /* ./../lib/standard//collection//array.nit:243 */
8736 fra.me.REG[7] = fra.me.REG[4];
8737 /* ./../lib/standard//collection//array.nit:245 */
8738 REGB2 = TAG_Int(0);
8739 /* ./../lib/standard//kernel.nit:213 */
8740 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8741 /* ./../lib/standard//collection//array.nit:245 */
8742 if (UNTAG_Bool(REGB2)) {
8743 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8744 if (UNTAG_Bool(REGB2)) {
8745 } else {
8746 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8747 }
8748 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8749 /* ./../lib/standard//kernel.nit:212 */
8750 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8751 } else {
8752 /* ./../lib/standard//collection//array.nit:245 */
8753 REGB0 = TAG_Bool(false);
8754 REGB2 = REGB0;
8755 }
8756 if (UNTAG_Bool(REGB2)) {
8757 } else {
8758 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8759 }
8760 /* ./../lib/standard//collection//array.nit:246 */
8761 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8762 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8763 if (UNTAG_Bool(REGB2)) {
8764 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8765 }
8766 /* ./../lib/standard//collection//array.nit:654 */
8767 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8768 /* ./../lib/standard//collection//array.nit:246 */
8769 goto label194;
8770 label194: while(0);
8771 /* ./compiling//compiling_icode.nit:776 */
8772 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8773 if (!once_value_195) {
8774 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
8775 REGB1 = TAG_Int(15);
8776 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8777 once_value_195 = fra.me.REG[7];
8778 register_static_object(&once_value_195);
8779 } else fra.me.REG[7] = once_value_195;
8780 fra.me.REG[7] = fra.me.REG[7];
8781 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8782 REGB1 = TAG_Int(1);
8783 /* ./../lib/standard//collection//array.nit:243 */
8784 fra.me.REG[7] = fra.me.REG[4];
8785 /* ./../lib/standard//collection//array.nit:245 */
8786 REGB2 = TAG_Int(0);
8787 /* ./../lib/standard//kernel.nit:213 */
8788 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8789 /* ./../lib/standard//collection//array.nit:245 */
8790 if (UNTAG_Bool(REGB2)) {
8791 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8792 if (UNTAG_Bool(REGB2)) {
8793 } else {
8794 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8795 }
8796 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8797 /* ./../lib/standard//kernel.nit:212 */
8798 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8799 } else {
8800 /* ./../lib/standard//collection//array.nit:245 */
8801 REGB0 = TAG_Bool(false);
8802 REGB2 = REGB0;
8803 }
8804 if (UNTAG_Bool(REGB2)) {
8805 } else {
8806 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8807 }
8808 /* ./../lib/standard//collection//array.nit:246 */
8809 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8810 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8811 if (UNTAG_Bool(REGB2)) {
8812 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8813 }
8814 /* ./../lib/standard//collection//array.nit:654 */
8815 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8816 /* ./../lib/standard//collection//array.nit:246 */
8817 goto label196;
8818 label196: while(0);
8819 /* ./compiling//compiling_icode.nit:776 */
8820 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8821 if (!once_value_197) {
8822 fra.me.REG[7] = BOX_NativeString("))");
8823 REGB1 = TAG_Int(2);
8824 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8825 once_value_197 = fra.me.REG[7];
8826 register_static_object(&once_value_197);
8827 } else fra.me.REG[7] = once_value_197;
8828 fra.me.REG[7] = fra.me.REG[7];
8829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8830 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8831 fra.me.REG[5] = fra.me.REG[6];
8832 } else {
8833 /* ./compiling//compiling_icode.nit:777 */
8834 if (!once_value_198) {
8835 if (!once_value_199) {
8836 fra.me.REG[6] = BOX_NativeString(">=");
8837 REGB1 = TAG_Int(2);
8838 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8839 once_value_199 = fra.me.REG[6];
8840 register_static_object(&once_value_199);
8841 } else fra.me.REG[6] = once_value_199;
8842 fra.me.REG[6] = fra.me.REG[6];
8843 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8844 once_value_198 = fra.me.REG[6];
8845 register_static_object(&once_value_198);
8846 } else fra.me.REG[6] = once_value_198;
8847 fra.me.REG[6] = fra.me.REG[6];
8848 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8849 if (UNTAG_Bool(REGB1)) {
8850 } else {
8851 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8852 REGB1 = REGB2;
8853 }
8854 if (UNTAG_Bool(REGB1)) {
8855 /* ./compiling//compiling_icode.nit:778 */
8856 REGB1 = TAG_Int(5);
8857 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
8858 if (!once_value_200) {
8859 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
8860 REGB1 = TAG_Int(21);
8861 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8862 once_value_200 = fra.me.REG[7];
8863 register_static_object(&once_value_200);
8864 } else fra.me.REG[7] = once_value_200;
8865 fra.me.REG[7] = fra.me.REG[7];
8866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8867 REGB1 = TAG_Int(0);
8868 /* ./../lib/standard//collection//array.nit:243 */
8869 fra.me.REG[7] = fra.me.REG[4];
8870 /* ./../lib/standard//collection//array.nit:245 */
8871 REGB2 = TAG_Int(0);
8872 /* ./../lib/standard//kernel.nit:213 */
8873 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8874 /* ./../lib/standard//collection//array.nit:245 */
8875 if (UNTAG_Bool(REGB2)) {
8876 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8877 if (UNTAG_Bool(REGB2)) {
8878 } else {
8879 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8880 }
8881 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8882 /* ./../lib/standard//kernel.nit:212 */
8883 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8884 } else {
8885 /* ./../lib/standard//collection//array.nit:245 */
8886 REGB0 = TAG_Bool(false);
8887 REGB2 = REGB0;
8888 }
8889 if (UNTAG_Bool(REGB2)) {
8890 } else {
8891 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8892 }
8893 /* ./../lib/standard//collection//array.nit:246 */
8894 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8895 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8896 if (UNTAG_Bool(REGB2)) {
8897 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8898 }
8899 /* ./../lib/standard//collection//array.nit:654 */
8900 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8901 /* ./../lib/standard//collection//array.nit:246 */
8902 goto label201;
8903 label201: while(0);
8904 /* ./compiling//compiling_icode.nit:778 */
8905 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8906 if (!once_value_202) {
8907 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
8908 REGB1 = TAG_Int(15);
8909 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8910 once_value_202 = fra.me.REG[7];
8911 register_static_object(&once_value_202);
8912 } else fra.me.REG[7] = once_value_202;
8913 fra.me.REG[7] = fra.me.REG[7];
8914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8915 REGB1 = TAG_Int(1);
8916 /* ./../lib/standard//collection//array.nit:243 */
8917 fra.me.REG[7] = fra.me.REG[4];
8918 /* ./../lib/standard//collection//array.nit:245 */
8919 REGB2 = TAG_Int(0);
8920 /* ./../lib/standard//kernel.nit:213 */
8921 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8922 /* ./../lib/standard//collection//array.nit:245 */
8923 if (UNTAG_Bool(REGB2)) {
8924 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8925 if (UNTAG_Bool(REGB2)) {
8926 } else {
8927 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
8928 }
8929 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
8930 /* ./../lib/standard//kernel.nit:212 */
8931 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8932 } else {
8933 /* ./../lib/standard//collection//array.nit:245 */
8934 REGB0 = TAG_Bool(false);
8935 REGB2 = REGB0;
8936 }
8937 if (UNTAG_Bool(REGB2)) {
8938 } else {
8939 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
8940 }
8941 /* ./../lib/standard//collection//array.nit:246 */
8942 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
8943 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8944 if (UNTAG_Bool(REGB2)) {
8945 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
8946 }
8947 /* ./../lib/standard//collection//array.nit:654 */
8948 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8949 /* ./../lib/standard//collection//array.nit:246 */
8950 goto label203;
8951 label203: while(0);
8952 /* ./compiling//compiling_icode.nit:778 */
8953 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8954 if (!once_value_204) {
8955 fra.me.REG[7] = BOX_NativeString("))");
8956 REGB1 = TAG_Int(2);
8957 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
8958 once_value_204 = fra.me.REG[7];
8959 register_static_object(&once_value_204);
8960 } else fra.me.REG[7] = once_value_204;
8961 fra.me.REG[7] = fra.me.REG[7];
8962 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8963 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8964 fra.me.REG[5] = fra.me.REG[6];
8965 }
8966 }
8967 }
8968 }
8969 }
8970 }
8971 }
8972 }
8973 }
8974 }
8975 }
8976 }
8977 } else {
8978 /* ./compiling//compiling_icode.nit:780 */
8979 if (!once_value_205) {
8980 if (!once_value_206) {
8981 fra.me.REG[6] = BOX_NativeString("Char");
8982 REGB1 = TAG_Int(4);
8983 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
8984 once_value_206 = fra.me.REG[6];
8985 register_static_object(&once_value_206);
8986 } else fra.me.REG[6] = once_value_206;
8987 fra.me.REG[6] = fra.me.REG[6];
8988 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8989 once_value_205 = fra.me.REG[6];
8990 register_static_object(&once_value_205);
8991 } else fra.me.REG[6] = once_value_205;
8992 fra.me.REG[6] = fra.me.REG[6];
8993 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8994 if (UNTAG_Bool(REGB1)) {
8995 } else {
8996 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8997 REGB1 = REGB2;
8998 }
8999 if (UNTAG_Bool(REGB1)) {
9000 /* ./compiling//compiling_icode.nit:781 */
9001 if (!once_value_207) {
9002 if (!once_value_208) {
9003 fra.me.REG[6] = BOX_NativeString("object_id");
9004 REGB1 = TAG_Int(9);
9005 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9006 once_value_208 = fra.me.REG[6];
9007 register_static_object(&once_value_208);
9008 } else fra.me.REG[6] = once_value_208;
9009 fra.me.REG[6] = fra.me.REG[6];
9010 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9011 once_value_207 = fra.me.REG[6];
9012 register_static_object(&once_value_207);
9013 } else fra.me.REG[6] = once_value_207;
9014 fra.me.REG[6] = fra.me.REG[6];
9015 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9016 if (UNTAG_Bool(REGB1)) {
9017 } else {
9018 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9019 REGB1 = REGB2;
9020 }
9021 if (UNTAG_Bool(REGB1)) {
9022 /* ./compiling//compiling_icode.nit:782 */
9023 REGB1 = TAG_Int(3);
9024 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9025 if (!once_value_209) {
9026 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9027 REGB1 = TAG_Int(19);
9028 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9029 once_value_209 = fra.me.REG[7];
9030 register_static_object(&once_value_209);
9031 } else fra.me.REG[7] = once_value_209;
9032 fra.me.REG[7] = fra.me.REG[7];
9033 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9034 REGB1 = TAG_Int(0);
9035 /* ./../lib/standard//collection//array.nit:243 */
9036 fra.me.REG[7] = fra.me.REG[4];
9037 /* ./../lib/standard//collection//array.nit:245 */
9038 REGB2 = TAG_Int(0);
9039 /* ./../lib/standard//kernel.nit:213 */
9040 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9041 /* ./../lib/standard//collection//array.nit:245 */
9042 if (UNTAG_Bool(REGB2)) {
9043 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9044 if (UNTAG_Bool(REGB2)) {
9045 } else {
9046 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9047 }
9048 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9049 /* ./../lib/standard//kernel.nit:212 */
9050 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9051 } else {
9052 /* ./../lib/standard//collection//array.nit:245 */
9053 REGB0 = TAG_Bool(false);
9054 REGB2 = REGB0;
9055 }
9056 if (UNTAG_Bool(REGB2)) {
9057 } else {
9058 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9059 }
9060 /* ./../lib/standard//collection//array.nit:246 */
9061 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9062 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9063 if (UNTAG_Bool(REGB2)) {
9064 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9065 }
9066 /* ./../lib/standard//collection//array.nit:654 */
9067 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9068 /* ./../lib/standard//collection//array.nit:246 */
9069 goto label210;
9070 label210: while(0);
9071 /* ./compiling//compiling_icode.nit:782 */
9072 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9073 if (!once_value_211) {
9074 fra.me.REG[7] = BOX_NativeString("))");
9075 REGB1 = TAG_Int(2);
9076 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9077 once_value_211 = fra.me.REG[7];
9078 register_static_object(&once_value_211);
9079 } else fra.me.REG[7] = once_value_211;
9080 fra.me.REG[7] = fra.me.REG[7];
9081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9082 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9083 fra.me.REG[5] = fra.me.REG[6];
9084 } else {
9085 /* ./compiling//compiling_icode.nit:783 */
9086 if (!once_value_212) {
9087 if (!once_value_213) {
9088 fra.me.REG[6] = BOX_NativeString("unary -");
9089 REGB1 = TAG_Int(7);
9090 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9091 once_value_213 = fra.me.REG[6];
9092 register_static_object(&once_value_213);
9093 } else fra.me.REG[6] = once_value_213;
9094 fra.me.REG[6] = fra.me.REG[6];
9095 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9096 once_value_212 = fra.me.REG[6];
9097 register_static_object(&once_value_212);
9098 } else fra.me.REG[6] = once_value_212;
9099 fra.me.REG[6] = fra.me.REG[6];
9100 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9101 if (UNTAG_Bool(REGB1)) {
9102 } else {
9103 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9104 REGB1 = REGB2;
9105 }
9106 if (UNTAG_Bool(REGB1)) {
9107 /* ./compiling//compiling_icode.nit:784 */
9108 REGB1 = TAG_Int(3);
9109 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9110 if (!once_value_214) {
9111 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9112 REGB1 = TAG_Int(21);
9113 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9114 once_value_214 = fra.me.REG[7];
9115 register_static_object(&once_value_214);
9116 } else fra.me.REG[7] = once_value_214;
9117 fra.me.REG[7] = fra.me.REG[7];
9118 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9119 REGB1 = TAG_Int(0);
9120 /* ./../lib/standard//collection//array.nit:243 */
9121 fra.me.REG[7] = fra.me.REG[4];
9122 /* ./../lib/standard//collection//array.nit:245 */
9123 REGB2 = TAG_Int(0);
9124 /* ./../lib/standard//kernel.nit:213 */
9125 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9126 /* ./../lib/standard//collection//array.nit:245 */
9127 if (UNTAG_Bool(REGB2)) {
9128 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9129 if (UNTAG_Bool(REGB2)) {
9130 } else {
9131 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9132 }
9133 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9134 /* ./../lib/standard//kernel.nit:212 */
9135 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9136 } else {
9137 /* ./../lib/standard//collection//array.nit:245 */
9138 REGB0 = TAG_Bool(false);
9139 REGB2 = REGB0;
9140 }
9141 if (UNTAG_Bool(REGB2)) {
9142 } else {
9143 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9144 }
9145 /* ./../lib/standard//collection//array.nit:246 */
9146 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9147 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9148 if (UNTAG_Bool(REGB2)) {
9149 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9150 }
9151 /* ./../lib/standard//collection//array.nit:654 */
9152 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9153 /* ./../lib/standard//collection//array.nit:246 */
9154 goto label215;
9155 label215: while(0);
9156 /* ./compiling//compiling_icode.nit:784 */
9157 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9158 if (!once_value_216) {
9159 fra.me.REG[7] = BOX_NativeString("))");
9160 REGB1 = TAG_Int(2);
9161 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9162 once_value_216 = fra.me.REG[7];
9163 register_static_object(&once_value_216);
9164 } else fra.me.REG[7] = once_value_216;
9165 fra.me.REG[7] = fra.me.REG[7];
9166 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9167 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9168 fra.me.REG[5] = fra.me.REG[6];
9169 } else {
9170 /* ./compiling//compiling_icode.nit:785 */
9171 if (!once_value_217) {
9172 if (!once_value_218) {
9173 fra.me.REG[6] = BOX_NativeString("output");
9174 REGB1 = TAG_Int(6);
9175 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9176 once_value_218 = fra.me.REG[6];
9177 register_static_object(&once_value_218);
9178 } else fra.me.REG[6] = once_value_218;
9179 fra.me.REG[6] = fra.me.REG[6];
9180 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9181 once_value_217 = fra.me.REG[6];
9182 register_static_object(&once_value_217);
9183 } else fra.me.REG[6] = once_value_217;
9184 fra.me.REG[6] = fra.me.REG[6];
9185 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9186 if (UNTAG_Bool(REGB1)) {
9187 } else {
9188 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9189 REGB1 = REGB2;
9190 }
9191 if (UNTAG_Bool(REGB1)) {
9192 /* ./compiling//compiling_icode.nit:786 */
9193 REGB1 = TAG_Int(3);
9194 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9195 if (!once_value_219) {
9196 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
9197 REGB1 = TAG_Int(39);
9198 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9199 once_value_219 = fra.me.REG[7];
9200 register_static_object(&once_value_219);
9201 } else fra.me.REG[7] = once_value_219;
9202 fra.me.REG[7] = fra.me.REG[7];
9203 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9204 REGB1 = TAG_Int(0);
9205 /* ./../lib/standard//collection//array.nit:243 */
9206 fra.me.REG[7] = fra.me.REG[4];
9207 /* ./../lib/standard//collection//array.nit:245 */
9208 REGB2 = TAG_Int(0);
9209 /* ./../lib/standard//kernel.nit:213 */
9210 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9211 /* ./../lib/standard//collection//array.nit:245 */
9212 if (UNTAG_Bool(REGB2)) {
9213 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9214 if (UNTAG_Bool(REGB2)) {
9215 } else {
9216 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9217 }
9218 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9219 /* ./../lib/standard//kernel.nit:212 */
9220 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9221 } else {
9222 /* ./../lib/standard//collection//array.nit:245 */
9223 REGB0 = TAG_Bool(false);
9224 REGB2 = REGB0;
9225 }
9226 if (UNTAG_Bool(REGB2)) {
9227 } else {
9228 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9229 }
9230 /* ./../lib/standard//collection//array.nit:246 */
9231 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9232 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9233 if (UNTAG_Bool(REGB2)) {
9234 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9235 }
9236 /* ./../lib/standard//collection//array.nit:654 */
9237 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9238 /* ./../lib/standard//collection//array.nit:246 */
9239 goto label220;
9240 label220: while(0);
9241 /* ./compiling//compiling_icode.nit:786 */
9242 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9243 if (!once_value_221) {
9244 fra.me.REG[7] = BOX_NativeString("));");
9245 REGB1 = TAG_Int(3);
9246 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9247 once_value_221 = fra.me.REG[7];
9248 register_static_object(&once_value_221);
9249 } else fra.me.REG[7] = once_value_221;
9250 fra.me.REG[7] = fra.me.REG[7];
9251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9252 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9253 fra.me.REG[5] = fra.me.REG[6];
9254 } else {
9255 /* ./compiling//compiling_icode.nit:787 */
9256 if (!once_value_222) {
9257 if (!once_value_223) {
9258 fra.me.REG[6] = BOX_NativeString("ascii");
9259 REGB1 = TAG_Int(5);
9260 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9261 once_value_223 = fra.me.REG[6];
9262 register_static_object(&once_value_223);
9263 } else fra.me.REG[6] = once_value_223;
9264 fra.me.REG[6] = fra.me.REG[6];
9265 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9266 once_value_222 = fra.me.REG[6];
9267 register_static_object(&once_value_222);
9268 } else fra.me.REG[6] = once_value_222;
9269 fra.me.REG[6] = fra.me.REG[6];
9270 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9271 if (UNTAG_Bool(REGB1)) {
9272 } else {
9273 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9274 REGB1 = REGB2;
9275 }
9276 if (UNTAG_Bool(REGB1)) {
9277 /* ./compiling//compiling_icode.nit:788 */
9278 REGB1 = TAG_Int(3);
9279 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9280 if (!once_value_224) {
9281 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
9282 REGB1 = TAG_Int(34);
9283 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9284 once_value_224 = fra.me.REG[7];
9285 register_static_object(&once_value_224);
9286 } else fra.me.REG[7] = once_value_224;
9287 fra.me.REG[7] = fra.me.REG[7];
9288 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9289 REGB1 = TAG_Int(0);
9290 /* ./../lib/standard//collection//array.nit:243 */
9291 fra.me.REG[7] = fra.me.REG[4];
9292 /* ./../lib/standard//collection//array.nit:245 */
9293 REGB2 = TAG_Int(0);
9294 /* ./../lib/standard//kernel.nit:213 */
9295 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9296 /* ./../lib/standard//collection//array.nit:245 */
9297 if (UNTAG_Bool(REGB2)) {
9298 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9299 if (UNTAG_Bool(REGB2)) {
9300 } else {
9301 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9302 }
9303 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9304 /* ./../lib/standard//kernel.nit:212 */
9305 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9306 } else {
9307 /* ./../lib/standard//collection//array.nit:245 */
9308 REGB0 = TAG_Bool(false);
9309 REGB2 = REGB0;
9310 }
9311 if (UNTAG_Bool(REGB2)) {
9312 } else {
9313 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9314 }
9315 /* ./../lib/standard//collection//array.nit:246 */
9316 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9317 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9318 if (UNTAG_Bool(REGB2)) {
9319 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9320 }
9321 /* ./../lib/standard//collection//array.nit:654 */
9322 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9323 /* ./../lib/standard//collection//array.nit:246 */
9324 goto label225;
9325 label225: while(0);
9326 /* ./compiling//compiling_icode.nit:788 */
9327 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9328 if (!once_value_226) {
9329 fra.me.REG[7] = BOX_NativeString("))");
9330 REGB1 = TAG_Int(2);
9331 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9332 once_value_226 = fra.me.REG[7];
9333 register_static_object(&once_value_226);
9334 } else fra.me.REG[7] = once_value_226;
9335 fra.me.REG[7] = fra.me.REG[7];
9336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9337 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9338 fra.me.REG[5] = fra.me.REG[6];
9339 } else {
9340 /* ./compiling//compiling_icode.nit:789 */
9341 if (!once_value_227) {
9342 if (!once_value_228) {
9343 fra.me.REG[6] = BOX_NativeString("succ");
9344 REGB1 = TAG_Int(4);
9345 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9346 once_value_228 = fra.me.REG[6];
9347 register_static_object(&once_value_228);
9348 } else fra.me.REG[6] = once_value_228;
9349 fra.me.REG[6] = fra.me.REG[6];
9350 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9351 once_value_227 = fra.me.REG[6];
9352 register_static_object(&once_value_227);
9353 } else fra.me.REG[6] = once_value_227;
9354 fra.me.REG[6] = fra.me.REG[6];
9355 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9356 if (UNTAG_Bool(REGB1)) {
9357 } else {
9358 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9359 REGB1 = REGB2;
9360 }
9361 if (UNTAG_Bool(REGB1)) {
9362 /* ./compiling//compiling_icode.nit:790 */
9363 REGB1 = TAG_Int(3);
9364 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9365 if (!once_value_229) {
9366 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9367 REGB1 = TAG_Int(20);
9368 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9369 once_value_229 = fra.me.REG[7];
9370 register_static_object(&once_value_229);
9371 } else fra.me.REG[7] = once_value_229;
9372 fra.me.REG[7] = fra.me.REG[7];
9373 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9374 REGB1 = TAG_Int(0);
9375 /* ./../lib/standard//collection//array.nit:243 */
9376 fra.me.REG[7] = fra.me.REG[4];
9377 /* ./../lib/standard//collection//array.nit:245 */
9378 REGB2 = TAG_Int(0);
9379 /* ./../lib/standard//kernel.nit:213 */
9380 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9381 /* ./../lib/standard//collection//array.nit:245 */
9382 if (UNTAG_Bool(REGB2)) {
9383 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9384 if (UNTAG_Bool(REGB2)) {
9385 } else {
9386 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9387 }
9388 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9389 /* ./../lib/standard//kernel.nit:212 */
9390 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9391 } else {
9392 /* ./../lib/standard//collection//array.nit:245 */
9393 REGB0 = TAG_Bool(false);
9394 REGB2 = REGB0;
9395 }
9396 if (UNTAG_Bool(REGB2)) {
9397 } else {
9398 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9399 }
9400 /* ./../lib/standard//collection//array.nit:246 */
9401 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9402 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9403 if (UNTAG_Bool(REGB2)) {
9404 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9405 }
9406 /* ./../lib/standard//collection//array.nit:654 */
9407 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9408 /* ./../lib/standard//collection//array.nit:246 */
9409 goto label230;
9410 label230: while(0);
9411 /* ./compiling//compiling_icode.nit:790 */
9412 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9413 if (!once_value_231) {
9414 fra.me.REG[7] = BOX_NativeString(")+1)");
9415 REGB1 = TAG_Int(4);
9416 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9417 once_value_231 = fra.me.REG[7];
9418 register_static_object(&once_value_231);
9419 } else fra.me.REG[7] = once_value_231;
9420 fra.me.REG[7] = fra.me.REG[7];
9421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9422 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9423 fra.me.REG[5] = fra.me.REG[6];
9424 } else {
9425 /* ./compiling//compiling_icode.nit:791 */
9426 if (!once_value_232) {
9427 if (!once_value_233) {
9428 fra.me.REG[6] = BOX_NativeString("prec");
9429 REGB1 = TAG_Int(4);
9430 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9431 once_value_233 = fra.me.REG[6];
9432 register_static_object(&once_value_233);
9433 } else fra.me.REG[6] = once_value_233;
9434 fra.me.REG[6] = fra.me.REG[6];
9435 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9436 once_value_232 = fra.me.REG[6];
9437 register_static_object(&once_value_232);
9438 } else fra.me.REG[6] = once_value_232;
9439 fra.me.REG[6] = fra.me.REG[6];
9440 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9441 if (UNTAG_Bool(REGB1)) {
9442 } else {
9443 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9444 REGB1 = REGB2;
9445 }
9446 if (UNTAG_Bool(REGB1)) {
9447 /* ./compiling//compiling_icode.nit:792 */
9448 REGB1 = TAG_Int(3);
9449 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9450 if (!once_value_234) {
9451 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9452 REGB1 = TAG_Int(20);
9453 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9454 once_value_234 = fra.me.REG[7];
9455 register_static_object(&once_value_234);
9456 } else fra.me.REG[7] = once_value_234;
9457 fra.me.REG[7] = fra.me.REG[7];
9458 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9459 REGB1 = TAG_Int(0);
9460 /* ./../lib/standard//collection//array.nit:243 */
9461 fra.me.REG[7] = fra.me.REG[4];
9462 /* ./../lib/standard//collection//array.nit:245 */
9463 REGB2 = TAG_Int(0);
9464 /* ./../lib/standard//kernel.nit:213 */
9465 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9466 /* ./../lib/standard//collection//array.nit:245 */
9467 if (UNTAG_Bool(REGB2)) {
9468 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9469 if (UNTAG_Bool(REGB2)) {
9470 } else {
9471 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9472 }
9473 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9474 /* ./../lib/standard//kernel.nit:212 */
9475 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9476 } else {
9477 /* ./../lib/standard//collection//array.nit:245 */
9478 REGB0 = TAG_Bool(false);
9479 REGB2 = REGB0;
9480 }
9481 if (UNTAG_Bool(REGB2)) {
9482 } else {
9483 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9484 }
9485 /* ./../lib/standard//collection//array.nit:246 */
9486 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9487 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9488 if (UNTAG_Bool(REGB2)) {
9489 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9490 }
9491 /* ./../lib/standard//collection//array.nit:654 */
9492 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9493 /* ./../lib/standard//collection//array.nit:246 */
9494 goto label235;
9495 label235: while(0);
9496 /* ./compiling//compiling_icode.nit:792 */
9497 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9498 if (!once_value_236) {
9499 fra.me.REG[7] = BOX_NativeString(")-1)");
9500 REGB1 = TAG_Int(4);
9501 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9502 once_value_236 = fra.me.REG[7];
9503 register_static_object(&once_value_236);
9504 } else fra.me.REG[7] = once_value_236;
9505 fra.me.REG[7] = fra.me.REG[7];
9506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9507 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9508 fra.me.REG[5] = fra.me.REG[6];
9509 } else {
9510 /* ./compiling//compiling_icode.nit:793 */
9511 if (!once_value_237) {
9512 if (!once_value_238) {
9513 fra.me.REG[6] = BOX_NativeString("to_i");
9514 REGB1 = TAG_Int(4);
9515 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9516 once_value_238 = fra.me.REG[6];
9517 register_static_object(&once_value_238);
9518 } else fra.me.REG[6] = once_value_238;
9519 fra.me.REG[6] = fra.me.REG[6];
9520 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9521 once_value_237 = fra.me.REG[6];
9522 register_static_object(&once_value_237);
9523 } else fra.me.REG[6] = once_value_237;
9524 fra.me.REG[6] = fra.me.REG[6];
9525 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9526 if (UNTAG_Bool(REGB1)) {
9527 } else {
9528 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9529 REGB1 = REGB2;
9530 }
9531 if (UNTAG_Bool(REGB1)) {
9532 /* ./compiling//compiling_icode.nit:794 */
9533 REGB1 = TAG_Int(3);
9534 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9535 if (!once_value_239) {
9536 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9537 REGB1 = TAG_Int(19);
9538 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9539 once_value_239 = fra.me.REG[7];
9540 register_static_object(&once_value_239);
9541 } else fra.me.REG[7] = once_value_239;
9542 fra.me.REG[7] = fra.me.REG[7];
9543 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9544 REGB1 = TAG_Int(0);
9545 /* ./../lib/standard//collection//array.nit:243 */
9546 fra.me.REG[7] = fra.me.REG[4];
9547 /* ./../lib/standard//collection//array.nit:245 */
9548 REGB2 = TAG_Int(0);
9549 /* ./../lib/standard//kernel.nit:213 */
9550 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9551 /* ./../lib/standard//collection//array.nit:245 */
9552 if (UNTAG_Bool(REGB2)) {
9553 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9554 if (UNTAG_Bool(REGB2)) {
9555 } else {
9556 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9557 }
9558 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9559 /* ./../lib/standard//kernel.nit:212 */
9560 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9561 } else {
9562 /* ./../lib/standard//collection//array.nit:245 */
9563 REGB0 = TAG_Bool(false);
9564 REGB2 = REGB0;
9565 }
9566 if (UNTAG_Bool(REGB2)) {
9567 } else {
9568 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9569 }
9570 /* ./../lib/standard//collection//array.nit:246 */
9571 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9572 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9573 if (UNTAG_Bool(REGB2)) {
9574 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9575 }
9576 /* ./../lib/standard//collection//array.nit:654 */
9577 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9578 /* ./../lib/standard//collection//array.nit:246 */
9579 goto label240;
9580 label240: while(0);
9581 /* ./compiling//compiling_icode.nit:794 */
9582 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9583 if (!once_value_241) {
9584 fra.me.REG[7] = BOX_NativeString(")-'0')");
9585 REGB1 = TAG_Int(6);
9586 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9587 once_value_241 = fra.me.REG[7];
9588 register_static_object(&once_value_241);
9589 } else fra.me.REG[7] = once_value_241;
9590 fra.me.REG[7] = fra.me.REG[7];
9591 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9592 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9593 fra.me.REG[5] = fra.me.REG[6];
9594 } else {
9595 /* ./compiling//compiling_icode.nit:795 */
9596 if (!once_value_242) {
9597 if (!once_value_243) {
9598 fra.me.REG[6] = BOX_NativeString("+");
9599 REGB1 = TAG_Int(1);
9600 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9601 once_value_243 = fra.me.REG[6];
9602 register_static_object(&once_value_243);
9603 } else fra.me.REG[6] = once_value_243;
9604 fra.me.REG[6] = fra.me.REG[6];
9605 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9606 once_value_242 = fra.me.REG[6];
9607 register_static_object(&once_value_242);
9608 } else fra.me.REG[6] = once_value_242;
9609 fra.me.REG[6] = fra.me.REG[6];
9610 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9611 if (UNTAG_Bool(REGB1)) {
9612 } else {
9613 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9614 REGB1 = REGB2;
9615 }
9616 if (UNTAG_Bool(REGB1)) {
9617 /* ./compiling//compiling_icode.nit:796 */
9618 REGB1 = TAG_Int(5);
9619 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9620 if (!once_value_244) {
9621 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9622 REGB1 = TAG_Int(20);
9623 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9624 once_value_244 = fra.me.REG[7];
9625 register_static_object(&once_value_244);
9626 } else fra.me.REG[7] = once_value_244;
9627 fra.me.REG[7] = fra.me.REG[7];
9628 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9629 REGB1 = TAG_Int(0);
9630 /* ./../lib/standard//collection//array.nit:243 */
9631 fra.me.REG[7] = fra.me.REG[4];
9632 /* ./../lib/standard//collection//array.nit:245 */
9633 REGB2 = TAG_Int(0);
9634 /* ./../lib/standard//kernel.nit:213 */
9635 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9636 /* ./../lib/standard//collection//array.nit:245 */
9637 if (UNTAG_Bool(REGB2)) {
9638 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9639 if (UNTAG_Bool(REGB2)) {
9640 } else {
9641 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9642 }
9643 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9644 /* ./../lib/standard//kernel.nit:212 */
9645 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9646 } else {
9647 /* ./../lib/standard//collection//array.nit:245 */
9648 REGB0 = TAG_Bool(false);
9649 REGB2 = REGB0;
9650 }
9651 if (UNTAG_Bool(REGB2)) {
9652 } else {
9653 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9654 }
9655 /* ./../lib/standard//collection//array.nit:246 */
9656 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9657 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9658 if (UNTAG_Bool(REGB2)) {
9659 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9660 }
9661 /* ./../lib/standard//collection//array.nit:654 */
9662 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9663 /* ./../lib/standard//collection//array.nit:246 */
9664 goto label245;
9665 label245: while(0);
9666 /* ./compiling//compiling_icode.nit:796 */
9667 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9668 if (!once_value_246) {
9669 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
9670 REGB1 = TAG_Int(13);
9671 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9672 once_value_246 = fra.me.REG[7];
9673 register_static_object(&once_value_246);
9674 } else fra.me.REG[7] = once_value_246;
9675 fra.me.REG[7] = fra.me.REG[7];
9676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9677 REGB1 = TAG_Int(1);
9678 /* ./../lib/standard//collection//array.nit:243 */
9679 fra.me.REG[7] = fra.me.REG[4];
9680 /* ./../lib/standard//collection//array.nit:245 */
9681 REGB2 = TAG_Int(0);
9682 /* ./../lib/standard//kernel.nit:213 */
9683 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9684 /* ./../lib/standard//collection//array.nit:245 */
9685 if (UNTAG_Bool(REGB2)) {
9686 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9687 if (UNTAG_Bool(REGB2)) {
9688 } else {
9689 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9690 }
9691 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9692 /* ./../lib/standard//kernel.nit:212 */
9693 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9694 } else {
9695 /* ./../lib/standard//collection//array.nit:245 */
9696 REGB0 = TAG_Bool(false);
9697 REGB2 = REGB0;
9698 }
9699 if (UNTAG_Bool(REGB2)) {
9700 } else {
9701 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9702 }
9703 /* ./../lib/standard//collection//array.nit:246 */
9704 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9705 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9706 if (UNTAG_Bool(REGB2)) {
9707 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9708 }
9709 /* ./../lib/standard//collection//array.nit:654 */
9710 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9711 /* ./../lib/standard//collection//array.nit:246 */
9712 goto label247;
9713 label247: while(0);
9714 /* ./compiling//compiling_icode.nit:796 */
9715 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9716 if (!once_value_248) {
9717 fra.me.REG[7] = BOX_NativeString("))");
9718 REGB1 = TAG_Int(2);
9719 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9720 once_value_248 = fra.me.REG[7];
9721 register_static_object(&once_value_248);
9722 } else fra.me.REG[7] = once_value_248;
9723 fra.me.REG[7] = fra.me.REG[7];
9724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9725 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9726 fra.me.REG[5] = fra.me.REG[6];
9727 } else {
9728 /* ./compiling//compiling_icode.nit:797 */
9729 if (!once_value_249) {
9730 if (!once_value_250) {
9731 fra.me.REG[6] = BOX_NativeString("-");
9732 REGB1 = TAG_Int(1);
9733 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9734 once_value_250 = fra.me.REG[6];
9735 register_static_object(&once_value_250);
9736 } else fra.me.REG[6] = once_value_250;
9737 fra.me.REG[6] = fra.me.REG[6];
9738 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9739 once_value_249 = fra.me.REG[6];
9740 register_static_object(&once_value_249);
9741 } else fra.me.REG[6] = once_value_249;
9742 fra.me.REG[6] = fra.me.REG[6];
9743 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9744 if (UNTAG_Bool(REGB1)) {
9745 } else {
9746 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9747 REGB1 = REGB2;
9748 }
9749 if (UNTAG_Bool(REGB1)) {
9750 /* ./compiling//compiling_icode.nit:798 */
9751 REGB1 = TAG_Int(5);
9752 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9753 if (!once_value_251) {
9754 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9755 REGB1 = TAG_Int(20);
9756 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9757 once_value_251 = fra.me.REG[7];
9758 register_static_object(&once_value_251);
9759 } else fra.me.REG[7] = once_value_251;
9760 fra.me.REG[7] = fra.me.REG[7];
9761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9762 REGB1 = TAG_Int(0);
9763 /* ./../lib/standard//collection//array.nit:243 */
9764 fra.me.REG[7] = fra.me.REG[4];
9765 /* ./../lib/standard//collection//array.nit:245 */
9766 REGB2 = TAG_Int(0);
9767 /* ./../lib/standard//kernel.nit:213 */
9768 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9769 /* ./../lib/standard//collection//array.nit:245 */
9770 if (UNTAG_Bool(REGB2)) {
9771 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9772 if (UNTAG_Bool(REGB2)) {
9773 } else {
9774 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9775 }
9776 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9777 /* ./../lib/standard//kernel.nit:212 */
9778 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9779 } else {
9780 /* ./../lib/standard//collection//array.nit:245 */
9781 REGB0 = TAG_Bool(false);
9782 REGB2 = REGB0;
9783 }
9784 if (UNTAG_Bool(REGB2)) {
9785 } else {
9786 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9787 }
9788 /* ./../lib/standard//collection//array.nit:246 */
9789 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9790 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9791 if (UNTAG_Bool(REGB2)) {
9792 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9793 }
9794 /* ./../lib/standard//collection//array.nit:654 */
9795 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9796 /* ./../lib/standard//collection//array.nit:246 */
9797 goto label252;
9798 label252: while(0);
9799 /* ./compiling//compiling_icode.nit:798 */
9800 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9801 if (!once_value_253) {
9802 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
9803 REGB1 = TAG_Int(13);
9804 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9805 once_value_253 = fra.me.REG[7];
9806 register_static_object(&once_value_253);
9807 } else fra.me.REG[7] = once_value_253;
9808 fra.me.REG[7] = fra.me.REG[7];
9809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9810 REGB1 = TAG_Int(1);
9811 /* ./../lib/standard//collection//array.nit:243 */
9812 fra.me.REG[7] = fra.me.REG[4];
9813 /* ./../lib/standard//collection//array.nit:245 */
9814 REGB2 = TAG_Int(0);
9815 /* ./../lib/standard//kernel.nit:213 */
9816 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9817 /* ./../lib/standard//collection//array.nit:245 */
9818 if (UNTAG_Bool(REGB2)) {
9819 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9820 if (UNTAG_Bool(REGB2)) {
9821 } else {
9822 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9823 }
9824 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9825 /* ./../lib/standard//kernel.nit:212 */
9826 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9827 } else {
9828 /* ./../lib/standard//collection//array.nit:245 */
9829 REGB0 = TAG_Bool(false);
9830 REGB2 = REGB0;
9831 }
9832 if (UNTAG_Bool(REGB2)) {
9833 } else {
9834 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9835 }
9836 /* ./../lib/standard//collection//array.nit:246 */
9837 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9838 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9839 if (UNTAG_Bool(REGB2)) {
9840 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9841 }
9842 /* ./../lib/standard//collection//array.nit:654 */
9843 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9844 /* ./../lib/standard//collection//array.nit:246 */
9845 goto label254;
9846 label254: while(0);
9847 /* ./compiling//compiling_icode.nit:798 */
9848 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9849 if (!once_value_255) {
9850 fra.me.REG[7] = BOX_NativeString("))");
9851 REGB1 = TAG_Int(2);
9852 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9853 once_value_255 = fra.me.REG[7];
9854 register_static_object(&once_value_255);
9855 } else fra.me.REG[7] = once_value_255;
9856 fra.me.REG[7] = fra.me.REG[7];
9857 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9858 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9859 fra.me.REG[5] = fra.me.REG[6];
9860 } else {
9861 /* ./compiling//compiling_icode.nit:799 */
9862 if (!once_value_256) {
9863 if (!once_value_257) {
9864 fra.me.REG[6] = BOX_NativeString("*");
9865 REGB1 = TAG_Int(1);
9866 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
9867 once_value_257 = fra.me.REG[6];
9868 register_static_object(&once_value_257);
9869 } else fra.me.REG[6] = once_value_257;
9870 fra.me.REG[6] = fra.me.REG[6];
9871 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9872 once_value_256 = fra.me.REG[6];
9873 register_static_object(&once_value_256);
9874 } else fra.me.REG[6] = once_value_256;
9875 fra.me.REG[6] = fra.me.REG[6];
9876 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9877 if (UNTAG_Bool(REGB1)) {
9878 } else {
9879 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9880 REGB1 = REGB2;
9881 }
9882 if (UNTAG_Bool(REGB1)) {
9883 /* ./compiling//compiling_icode.nit:800 */
9884 REGB1 = TAG_Int(5);
9885 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
9886 if (!once_value_258) {
9887 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
9888 REGB1 = TAG_Int(20);
9889 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9890 once_value_258 = fra.me.REG[7];
9891 register_static_object(&once_value_258);
9892 } else fra.me.REG[7] = once_value_258;
9893 fra.me.REG[7] = fra.me.REG[7];
9894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9895 REGB1 = TAG_Int(0);
9896 /* ./../lib/standard//collection//array.nit:243 */
9897 fra.me.REG[7] = fra.me.REG[4];
9898 /* ./../lib/standard//collection//array.nit:245 */
9899 REGB2 = TAG_Int(0);
9900 /* ./../lib/standard//kernel.nit:213 */
9901 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9902 /* ./../lib/standard//collection//array.nit:245 */
9903 if (UNTAG_Bool(REGB2)) {
9904 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9905 if (UNTAG_Bool(REGB2)) {
9906 } else {
9907 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9908 }
9909 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9910 /* ./../lib/standard//kernel.nit:212 */
9911 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9912 } else {
9913 /* ./../lib/standard//collection//array.nit:245 */
9914 REGB0 = TAG_Bool(false);
9915 REGB2 = REGB0;
9916 }
9917 if (UNTAG_Bool(REGB2)) {
9918 } else {
9919 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9920 }
9921 /* ./../lib/standard//collection//array.nit:246 */
9922 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9923 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9924 if (UNTAG_Bool(REGB2)) {
9925 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9926 }
9927 /* ./../lib/standard//collection//array.nit:654 */
9928 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9929 /* ./../lib/standard//collection//array.nit:246 */
9930 goto label259;
9931 label259: while(0);
9932 /* ./compiling//compiling_icode.nit:800 */
9933 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9934 if (!once_value_260) {
9935 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
9936 REGB1 = TAG_Int(13);
9937 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9938 once_value_260 = fra.me.REG[7];
9939 register_static_object(&once_value_260);
9940 } else fra.me.REG[7] = once_value_260;
9941 fra.me.REG[7] = fra.me.REG[7];
9942 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9943 REGB1 = TAG_Int(1);
9944 /* ./../lib/standard//collection//array.nit:243 */
9945 fra.me.REG[7] = fra.me.REG[4];
9946 /* ./../lib/standard//collection//array.nit:245 */
9947 REGB2 = TAG_Int(0);
9948 /* ./../lib/standard//kernel.nit:213 */
9949 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9950 /* ./../lib/standard//collection//array.nit:245 */
9951 if (UNTAG_Bool(REGB2)) {
9952 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9953 if (UNTAG_Bool(REGB2)) {
9954 } else {
9955 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
9956 }
9957 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
9958 /* ./../lib/standard//kernel.nit:212 */
9959 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9960 } else {
9961 /* ./../lib/standard//collection//array.nit:245 */
9962 REGB0 = TAG_Bool(false);
9963 REGB2 = REGB0;
9964 }
9965 if (UNTAG_Bool(REGB2)) {
9966 } else {
9967 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
9968 }
9969 /* ./../lib/standard//collection//array.nit:246 */
9970 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
9971 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9972 if (UNTAG_Bool(REGB2)) {
9973 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
9974 }
9975 /* ./../lib/standard//collection//array.nit:654 */
9976 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9977 /* ./../lib/standard//collection//array.nit:246 */
9978 goto label261;
9979 label261: while(0);
9980 /* ./compiling//compiling_icode.nit:800 */
9981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9982 if (!once_value_262) {
9983 fra.me.REG[7] = BOX_NativeString("))");
9984 REGB1 = TAG_Int(2);
9985 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
9986 once_value_262 = fra.me.REG[7];
9987 register_static_object(&once_value_262);
9988 } else fra.me.REG[7] = once_value_262;
9989 fra.me.REG[7] = fra.me.REG[7];
9990 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9991 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9992 fra.me.REG[5] = fra.me.REG[6];
9993 } else {
9994 /* ./compiling//compiling_icode.nit:801 */
9995 if (!once_value_263) {
9996 if (!once_value_264) {
9997 fra.me.REG[6] = BOX_NativeString("/");
9998 REGB1 = TAG_Int(1);
9999 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10000 once_value_264 = fra.me.REG[6];
10001 register_static_object(&once_value_264);
10002 } else fra.me.REG[6] = once_value_264;
10003 fra.me.REG[6] = fra.me.REG[6];
10004 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10005 once_value_263 = fra.me.REG[6];
10006 register_static_object(&once_value_263);
10007 } else fra.me.REG[6] = once_value_263;
10008 fra.me.REG[6] = fra.me.REG[6];
10009 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10010 if (UNTAG_Bool(REGB1)) {
10011 } else {
10012 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10013 REGB1 = REGB2;
10014 }
10015 if (UNTAG_Bool(REGB1)) {
10016 /* ./compiling//compiling_icode.nit:802 */
10017 REGB1 = TAG_Int(5);
10018 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10019 if (!once_value_265) {
10020 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10021 REGB1 = TAG_Int(20);
10022 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10023 once_value_265 = fra.me.REG[7];
10024 register_static_object(&once_value_265);
10025 } else fra.me.REG[7] = once_value_265;
10026 fra.me.REG[7] = fra.me.REG[7];
10027 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10028 REGB1 = TAG_Int(0);
10029 /* ./../lib/standard//collection//array.nit:243 */
10030 fra.me.REG[7] = fra.me.REG[4];
10031 /* ./../lib/standard//collection//array.nit:245 */
10032 REGB2 = TAG_Int(0);
10033 /* ./../lib/standard//kernel.nit:213 */
10034 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10035 /* ./../lib/standard//collection//array.nit:245 */
10036 if (UNTAG_Bool(REGB2)) {
10037 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10038 if (UNTAG_Bool(REGB2)) {
10039 } else {
10040 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10041 }
10042 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10043 /* ./../lib/standard//kernel.nit:212 */
10044 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10045 } else {
10046 /* ./../lib/standard//collection//array.nit:245 */
10047 REGB0 = TAG_Bool(false);
10048 REGB2 = REGB0;
10049 }
10050 if (UNTAG_Bool(REGB2)) {
10051 } else {
10052 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10053 }
10054 /* ./../lib/standard//collection//array.nit:246 */
10055 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10056 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10057 if (UNTAG_Bool(REGB2)) {
10058 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10059 }
10060 /* ./../lib/standard//collection//array.nit:654 */
10061 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10062 /* ./../lib/standard//collection//array.nit:246 */
10063 goto label266;
10064 label266: while(0);
10065 /* ./compiling//compiling_icode.nit:802 */
10066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10067 if (!once_value_267) {
10068 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
10069 REGB1 = TAG_Int(13);
10070 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10071 once_value_267 = fra.me.REG[7];
10072 register_static_object(&once_value_267);
10073 } else fra.me.REG[7] = once_value_267;
10074 fra.me.REG[7] = fra.me.REG[7];
10075 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10076 REGB1 = TAG_Int(1);
10077 /* ./../lib/standard//collection//array.nit:243 */
10078 fra.me.REG[7] = fra.me.REG[4];
10079 /* ./../lib/standard//collection//array.nit:245 */
10080 REGB2 = TAG_Int(0);
10081 /* ./../lib/standard//kernel.nit:213 */
10082 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10083 /* ./../lib/standard//collection//array.nit:245 */
10084 if (UNTAG_Bool(REGB2)) {
10085 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10086 if (UNTAG_Bool(REGB2)) {
10087 } else {
10088 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10089 }
10090 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10091 /* ./../lib/standard//kernel.nit:212 */
10092 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10093 } else {
10094 /* ./../lib/standard//collection//array.nit:245 */
10095 REGB0 = TAG_Bool(false);
10096 REGB2 = REGB0;
10097 }
10098 if (UNTAG_Bool(REGB2)) {
10099 } else {
10100 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10101 }
10102 /* ./../lib/standard//collection//array.nit:246 */
10103 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10104 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10105 if (UNTAG_Bool(REGB2)) {
10106 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10107 }
10108 /* ./../lib/standard//collection//array.nit:654 */
10109 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10110 /* ./../lib/standard//collection//array.nit:246 */
10111 goto label268;
10112 label268: while(0);
10113 /* ./compiling//compiling_icode.nit:802 */
10114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10115 if (!once_value_269) {
10116 fra.me.REG[7] = BOX_NativeString("))");
10117 REGB1 = TAG_Int(2);
10118 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10119 once_value_269 = fra.me.REG[7];
10120 register_static_object(&once_value_269);
10121 } else fra.me.REG[7] = once_value_269;
10122 fra.me.REG[7] = fra.me.REG[7];
10123 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10124 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10125 fra.me.REG[5] = fra.me.REG[6];
10126 } else {
10127 /* ./compiling//compiling_icode.nit:803 */
10128 if (!once_value_270) {
10129 if (!once_value_271) {
10130 fra.me.REG[6] = BOX_NativeString("%");
10131 REGB1 = TAG_Int(1);
10132 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10133 once_value_271 = fra.me.REG[6];
10134 register_static_object(&once_value_271);
10135 } else fra.me.REG[6] = once_value_271;
10136 fra.me.REG[6] = fra.me.REG[6];
10137 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10138 once_value_270 = fra.me.REG[6];
10139 register_static_object(&once_value_270);
10140 } else fra.me.REG[6] = once_value_270;
10141 fra.me.REG[6] = fra.me.REG[6];
10142 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10143 if (UNTAG_Bool(REGB1)) {
10144 } else {
10145 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10146 REGB1 = REGB2;
10147 }
10148 if (UNTAG_Bool(REGB1)) {
10149 /* ./compiling//compiling_icode.nit:804 */
10150 REGB1 = TAG_Int(5);
10151 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10152 if (!once_value_272) {
10153 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10154 REGB1 = TAG_Int(20);
10155 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10156 once_value_272 = fra.me.REG[7];
10157 register_static_object(&once_value_272);
10158 } else fra.me.REG[7] = once_value_272;
10159 fra.me.REG[7] = fra.me.REG[7];
10160 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10161 REGB1 = TAG_Int(0);
10162 /* ./../lib/standard//collection//array.nit:243 */
10163 fra.me.REG[7] = fra.me.REG[4];
10164 /* ./../lib/standard//collection//array.nit:245 */
10165 REGB2 = TAG_Int(0);
10166 /* ./../lib/standard//kernel.nit:213 */
10167 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10168 /* ./../lib/standard//collection//array.nit:245 */
10169 if (UNTAG_Bool(REGB2)) {
10170 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10171 if (UNTAG_Bool(REGB2)) {
10172 } else {
10173 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10174 }
10175 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10176 /* ./../lib/standard//kernel.nit:212 */
10177 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10178 } else {
10179 /* ./../lib/standard//collection//array.nit:245 */
10180 REGB0 = TAG_Bool(false);
10181 REGB2 = REGB0;
10182 }
10183 if (UNTAG_Bool(REGB2)) {
10184 } else {
10185 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10186 }
10187 /* ./../lib/standard//collection//array.nit:246 */
10188 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10189 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10190 if (UNTAG_Bool(REGB2)) {
10191 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10192 }
10193 /* ./../lib/standard//collection//array.nit:654 */
10194 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10195 /* ./../lib/standard//collection//array.nit:246 */
10196 goto label273;
10197 label273: while(0);
10198 /* ./compiling//compiling_icode.nit:804 */
10199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10200 if (!once_value_274) {
10201 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
10202 REGB1 = TAG_Int(13);
10203 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10204 once_value_274 = fra.me.REG[7];
10205 register_static_object(&once_value_274);
10206 } else fra.me.REG[7] = once_value_274;
10207 fra.me.REG[7] = fra.me.REG[7];
10208 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10209 REGB1 = TAG_Int(1);
10210 /* ./../lib/standard//collection//array.nit:243 */
10211 fra.me.REG[7] = fra.me.REG[4];
10212 /* ./../lib/standard//collection//array.nit:245 */
10213 REGB2 = TAG_Int(0);
10214 /* ./../lib/standard//kernel.nit:213 */
10215 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10216 /* ./../lib/standard//collection//array.nit:245 */
10217 if (UNTAG_Bool(REGB2)) {
10218 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10219 if (UNTAG_Bool(REGB2)) {
10220 } else {
10221 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10222 }
10223 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10224 /* ./../lib/standard//kernel.nit:212 */
10225 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10226 } else {
10227 /* ./../lib/standard//collection//array.nit:245 */
10228 REGB0 = TAG_Bool(false);
10229 REGB2 = REGB0;
10230 }
10231 if (UNTAG_Bool(REGB2)) {
10232 } else {
10233 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10234 }
10235 /* ./../lib/standard//collection//array.nit:246 */
10236 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10237 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10238 if (UNTAG_Bool(REGB2)) {
10239 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10240 }
10241 /* ./../lib/standard//collection//array.nit:654 */
10242 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10243 /* ./../lib/standard//collection//array.nit:246 */
10244 goto label275;
10245 label275: while(0);
10246 /* ./compiling//compiling_icode.nit:804 */
10247 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10248 if (!once_value_276) {
10249 fra.me.REG[7] = BOX_NativeString("))");
10250 REGB1 = TAG_Int(2);
10251 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10252 once_value_276 = fra.me.REG[7];
10253 register_static_object(&once_value_276);
10254 } else fra.me.REG[7] = once_value_276;
10255 fra.me.REG[7] = fra.me.REG[7];
10256 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10257 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10258 fra.me.REG[5] = fra.me.REG[6];
10259 } else {
10260 /* ./compiling//compiling_icode.nit:805 */
10261 if (!once_value_277) {
10262 if (!once_value_278) {
10263 fra.me.REG[6] = BOX_NativeString("<");
10264 REGB1 = TAG_Int(1);
10265 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10266 once_value_278 = fra.me.REG[6];
10267 register_static_object(&once_value_278);
10268 } else fra.me.REG[6] = once_value_278;
10269 fra.me.REG[6] = fra.me.REG[6];
10270 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10271 once_value_277 = fra.me.REG[6];
10272 register_static_object(&once_value_277);
10273 } else fra.me.REG[6] = once_value_277;
10274 fra.me.REG[6] = fra.me.REG[6];
10275 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10276 if (UNTAG_Bool(REGB1)) {
10277 } else {
10278 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10279 REGB1 = REGB2;
10280 }
10281 if (UNTAG_Bool(REGB1)) {
10282 /* ./compiling//compiling_icode.nit:806 */
10283 REGB1 = TAG_Int(5);
10284 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10285 if (!once_value_279) {
10286 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10287 REGB1 = TAG_Int(20);
10288 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10289 once_value_279 = fra.me.REG[7];
10290 register_static_object(&once_value_279);
10291 } else fra.me.REG[7] = once_value_279;
10292 fra.me.REG[7] = fra.me.REG[7];
10293 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10294 REGB1 = TAG_Int(0);
10295 /* ./../lib/standard//collection//array.nit:243 */
10296 fra.me.REG[7] = fra.me.REG[4];
10297 /* ./../lib/standard//collection//array.nit:245 */
10298 REGB2 = TAG_Int(0);
10299 /* ./../lib/standard//kernel.nit:213 */
10300 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10301 /* ./../lib/standard//collection//array.nit:245 */
10302 if (UNTAG_Bool(REGB2)) {
10303 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10304 if (UNTAG_Bool(REGB2)) {
10305 } else {
10306 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10307 }
10308 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10309 /* ./../lib/standard//kernel.nit:212 */
10310 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10311 } else {
10312 /* ./../lib/standard//collection//array.nit:245 */
10313 REGB0 = TAG_Bool(false);
10314 REGB2 = REGB0;
10315 }
10316 if (UNTAG_Bool(REGB2)) {
10317 } else {
10318 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10319 }
10320 /* ./../lib/standard//collection//array.nit:246 */
10321 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10322 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10323 if (UNTAG_Bool(REGB2)) {
10324 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10325 }
10326 /* ./../lib/standard//collection//array.nit:654 */
10327 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10328 /* ./../lib/standard//collection//array.nit:246 */
10329 goto label280;
10330 label280: while(0);
10331 /* ./compiling//compiling_icode.nit:806 */
10332 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10333 if (!once_value_281) {
10334 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
10335 REGB1 = TAG_Int(13);
10336 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10337 once_value_281 = fra.me.REG[7];
10338 register_static_object(&once_value_281);
10339 } else fra.me.REG[7] = once_value_281;
10340 fra.me.REG[7] = fra.me.REG[7];
10341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10342 REGB1 = TAG_Int(1);
10343 /* ./../lib/standard//collection//array.nit:243 */
10344 fra.me.REG[7] = fra.me.REG[4];
10345 /* ./../lib/standard//collection//array.nit:245 */
10346 REGB2 = TAG_Int(0);
10347 /* ./../lib/standard//kernel.nit:213 */
10348 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10349 /* ./../lib/standard//collection//array.nit:245 */
10350 if (UNTAG_Bool(REGB2)) {
10351 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10352 if (UNTAG_Bool(REGB2)) {
10353 } else {
10354 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10355 }
10356 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10357 /* ./../lib/standard//kernel.nit:212 */
10358 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10359 } else {
10360 /* ./../lib/standard//collection//array.nit:245 */
10361 REGB0 = TAG_Bool(false);
10362 REGB2 = REGB0;
10363 }
10364 if (UNTAG_Bool(REGB2)) {
10365 } else {
10366 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10367 }
10368 /* ./../lib/standard//collection//array.nit:246 */
10369 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10370 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10371 if (UNTAG_Bool(REGB2)) {
10372 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10373 }
10374 /* ./../lib/standard//collection//array.nit:654 */
10375 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10376 /* ./../lib/standard//collection//array.nit:246 */
10377 goto label282;
10378 label282: while(0);
10379 /* ./compiling//compiling_icode.nit:806 */
10380 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10381 if (!once_value_283) {
10382 fra.me.REG[7] = BOX_NativeString("))");
10383 REGB1 = TAG_Int(2);
10384 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10385 once_value_283 = fra.me.REG[7];
10386 register_static_object(&once_value_283);
10387 } else fra.me.REG[7] = once_value_283;
10388 fra.me.REG[7] = fra.me.REG[7];
10389 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10390 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10391 fra.me.REG[5] = fra.me.REG[6];
10392 } else {
10393 /* ./compiling//compiling_icode.nit:807 */
10394 if (!once_value_284) {
10395 if (!once_value_285) {
10396 fra.me.REG[6] = BOX_NativeString(">");
10397 REGB1 = TAG_Int(1);
10398 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10399 once_value_285 = fra.me.REG[6];
10400 register_static_object(&once_value_285);
10401 } else fra.me.REG[6] = once_value_285;
10402 fra.me.REG[6] = fra.me.REG[6];
10403 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10404 once_value_284 = fra.me.REG[6];
10405 register_static_object(&once_value_284);
10406 } else fra.me.REG[6] = once_value_284;
10407 fra.me.REG[6] = fra.me.REG[6];
10408 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10409 if (UNTAG_Bool(REGB1)) {
10410 } else {
10411 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10412 REGB1 = REGB2;
10413 }
10414 if (UNTAG_Bool(REGB1)) {
10415 /* ./compiling//compiling_icode.nit:808 */
10416 REGB1 = TAG_Int(5);
10417 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10418 if (!once_value_286) {
10419 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10420 REGB1 = TAG_Int(20);
10421 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10422 once_value_286 = fra.me.REG[7];
10423 register_static_object(&once_value_286);
10424 } else fra.me.REG[7] = once_value_286;
10425 fra.me.REG[7] = fra.me.REG[7];
10426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10427 REGB1 = TAG_Int(0);
10428 /* ./../lib/standard//collection//array.nit:243 */
10429 fra.me.REG[7] = fra.me.REG[4];
10430 /* ./../lib/standard//collection//array.nit:245 */
10431 REGB2 = TAG_Int(0);
10432 /* ./../lib/standard//kernel.nit:213 */
10433 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10434 /* ./../lib/standard//collection//array.nit:245 */
10435 if (UNTAG_Bool(REGB2)) {
10436 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10437 if (UNTAG_Bool(REGB2)) {
10438 } else {
10439 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10440 }
10441 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10442 /* ./../lib/standard//kernel.nit:212 */
10443 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10444 } else {
10445 /* ./../lib/standard//collection//array.nit:245 */
10446 REGB0 = TAG_Bool(false);
10447 REGB2 = REGB0;
10448 }
10449 if (UNTAG_Bool(REGB2)) {
10450 } else {
10451 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10452 }
10453 /* ./../lib/standard//collection//array.nit:246 */
10454 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10455 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10456 if (UNTAG_Bool(REGB2)) {
10457 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10458 }
10459 /* ./../lib/standard//collection//array.nit:654 */
10460 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10461 /* ./../lib/standard//collection//array.nit:246 */
10462 goto label287;
10463 label287: while(0);
10464 /* ./compiling//compiling_icode.nit:808 */
10465 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10466 if (!once_value_288) {
10467 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
10468 REGB1 = TAG_Int(13);
10469 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10470 once_value_288 = fra.me.REG[7];
10471 register_static_object(&once_value_288);
10472 } else fra.me.REG[7] = once_value_288;
10473 fra.me.REG[7] = fra.me.REG[7];
10474 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10475 REGB1 = TAG_Int(1);
10476 /* ./../lib/standard//collection//array.nit:243 */
10477 fra.me.REG[7] = fra.me.REG[4];
10478 /* ./../lib/standard//collection//array.nit:245 */
10479 REGB2 = TAG_Int(0);
10480 /* ./../lib/standard//kernel.nit:213 */
10481 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10482 /* ./../lib/standard//collection//array.nit:245 */
10483 if (UNTAG_Bool(REGB2)) {
10484 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10485 if (UNTAG_Bool(REGB2)) {
10486 } else {
10487 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10488 }
10489 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10490 /* ./../lib/standard//kernel.nit:212 */
10491 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10492 } else {
10493 /* ./../lib/standard//collection//array.nit:245 */
10494 REGB0 = TAG_Bool(false);
10495 REGB2 = REGB0;
10496 }
10497 if (UNTAG_Bool(REGB2)) {
10498 } else {
10499 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10500 }
10501 /* ./../lib/standard//collection//array.nit:246 */
10502 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10503 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10504 if (UNTAG_Bool(REGB2)) {
10505 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10506 }
10507 /* ./../lib/standard//collection//array.nit:654 */
10508 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10509 /* ./../lib/standard//collection//array.nit:246 */
10510 goto label289;
10511 label289: while(0);
10512 /* ./compiling//compiling_icode.nit:808 */
10513 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10514 if (!once_value_290) {
10515 fra.me.REG[7] = BOX_NativeString("))");
10516 REGB1 = TAG_Int(2);
10517 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10518 once_value_290 = fra.me.REG[7];
10519 register_static_object(&once_value_290);
10520 } else fra.me.REG[7] = once_value_290;
10521 fra.me.REG[7] = fra.me.REG[7];
10522 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10523 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10524 fra.me.REG[5] = fra.me.REG[6];
10525 } else {
10526 /* ./compiling//compiling_icode.nit:809 */
10527 if (!once_value_291) {
10528 if (!once_value_292) {
10529 fra.me.REG[6] = BOX_NativeString("<=");
10530 REGB1 = TAG_Int(2);
10531 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10532 once_value_292 = fra.me.REG[6];
10533 register_static_object(&once_value_292);
10534 } else fra.me.REG[6] = once_value_292;
10535 fra.me.REG[6] = fra.me.REG[6];
10536 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10537 once_value_291 = fra.me.REG[6];
10538 register_static_object(&once_value_291);
10539 } else fra.me.REG[6] = once_value_291;
10540 fra.me.REG[6] = fra.me.REG[6];
10541 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10542 if (UNTAG_Bool(REGB1)) {
10543 } else {
10544 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10545 REGB1 = REGB2;
10546 }
10547 if (UNTAG_Bool(REGB1)) {
10548 /* ./compiling//compiling_icode.nit:810 */
10549 REGB1 = TAG_Int(5);
10550 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10551 if (!once_value_293) {
10552 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10553 REGB1 = TAG_Int(20);
10554 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10555 once_value_293 = fra.me.REG[7];
10556 register_static_object(&once_value_293);
10557 } else fra.me.REG[7] = once_value_293;
10558 fra.me.REG[7] = fra.me.REG[7];
10559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10560 REGB1 = TAG_Int(0);
10561 /* ./../lib/standard//collection//array.nit:243 */
10562 fra.me.REG[7] = fra.me.REG[4];
10563 /* ./../lib/standard//collection//array.nit:245 */
10564 REGB2 = TAG_Int(0);
10565 /* ./../lib/standard//kernel.nit:213 */
10566 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10567 /* ./../lib/standard//collection//array.nit:245 */
10568 if (UNTAG_Bool(REGB2)) {
10569 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10570 if (UNTAG_Bool(REGB2)) {
10571 } else {
10572 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10573 }
10574 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10575 /* ./../lib/standard//kernel.nit:212 */
10576 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10577 } else {
10578 /* ./../lib/standard//collection//array.nit:245 */
10579 REGB0 = TAG_Bool(false);
10580 REGB2 = REGB0;
10581 }
10582 if (UNTAG_Bool(REGB2)) {
10583 } else {
10584 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10585 }
10586 /* ./../lib/standard//collection//array.nit:246 */
10587 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10588 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10589 if (UNTAG_Bool(REGB2)) {
10590 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10591 }
10592 /* ./../lib/standard//collection//array.nit:654 */
10593 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10594 /* ./../lib/standard//collection//array.nit:246 */
10595 goto label294;
10596 label294: while(0);
10597 /* ./compiling//compiling_icode.nit:810 */
10598 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10599 if (!once_value_295) {
10600 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
10601 REGB1 = TAG_Int(14);
10602 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10603 once_value_295 = fra.me.REG[7];
10604 register_static_object(&once_value_295);
10605 } else fra.me.REG[7] = once_value_295;
10606 fra.me.REG[7] = fra.me.REG[7];
10607 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10608 REGB1 = TAG_Int(1);
10609 /* ./../lib/standard//collection//array.nit:243 */
10610 fra.me.REG[7] = fra.me.REG[4];
10611 /* ./../lib/standard//collection//array.nit:245 */
10612 REGB2 = TAG_Int(0);
10613 /* ./../lib/standard//kernel.nit:213 */
10614 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10615 /* ./../lib/standard//collection//array.nit:245 */
10616 if (UNTAG_Bool(REGB2)) {
10617 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10618 if (UNTAG_Bool(REGB2)) {
10619 } else {
10620 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10621 }
10622 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10623 /* ./../lib/standard//kernel.nit:212 */
10624 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10625 } else {
10626 /* ./../lib/standard//collection//array.nit:245 */
10627 REGB0 = TAG_Bool(false);
10628 REGB2 = REGB0;
10629 }
10630 if (UNTAG_Bool(REGB2)) {
10631 } else {
10632 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10633 }
10634 /* ./../lib/standard//collection//array.nit:246 */
10635 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10636 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10637 if (UNTAG_Bool(REGB2)) {
10638 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10639 }
10640 /* ./../lib/standard//collection//array.nit:654 */
10641 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10642 /* ./../lib/standard//collection//array.nit:246 */
10643 goto label296;
10644 label296: while(0);
10645 /* ./compiling//compiling_icode.nit:810 */
10646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10647 if (!once_value_297) {
10648 fra.me.REG[7] = BOX_NativeString("))");
10649 REGB1 = TAG_Int(2);
10650 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10651 once_value_297 = fra.me.REG[7];
10652 register_static_object(&once_value_297);
10653 } else fra.me.REG[7] = once_value_297;
10654 fra.me.REG[7] = fra.me.REG[7];
10655 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10656 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10657 fra.me.REG[5] = fra.me.REG[6];
10658 } else {
10659 /* ./compiling//compiling_icode.nit:811 */
10660 if (!once_value_298) {
10661 if (!once_value_299) {
10662 fra.me.REG[6] = BOX_NativeString(">=");
10663 REGB1 = TAG_Int(2);
10664 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10665 once_value_299 = fra.me.REG[6];
10666 register_static_object(&once_value_299);
10667 } else fra.me.REG[6] = once_value_299;
10668 fra.me.REG[6] = fra.me.REG[6];
10669 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10670 once_value_298 = fra.me.REG[6];
10671 register_static_object(&once_value_298);
10672 } else fra.me.REG[6] = once_value_298;
10673 fra.me.REG[6] = fra.me.REG[6];
10674 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10675 if (UNTAG_Bool(REGB1)) {
10676 } else {
10677 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10678 REGB1 = REGB2;
10679 }
10680 if (UNTAG_Bool(REGB1)) {
10681 /* ./compiling//compiling_icode.nit:812 */
10682 REGB1 = TAG_Int(5);
10683 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10684 if (!once_value_300) {
10685 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
10686 REGB1 = TAG_Int(20);
10687 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10688 once_value_300 = fra.me.REG[7];
10689 register_static_object(&once_value_300);
10690 } else fra.me.REG[7] = once_value_300;
10691 fra.me.REG[7] = fra.me.REG[7];
10692 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10693 REGB1 = TAG_Int(0);
10694 /* ./../lib/standard//collection//array.nit:243 */
10695 fra.me.REG[7] = fra.me.REG[4];
10696 /* ./../lib/standard//collection//array.nit:245 */
10697 REGB2 = TAG_Int(0);
10698 /* ./../lib/standard//kernel.nit:213 */
10699 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10700 /* ./../lib/standard//collection//array.nit:245 */
10701 if (UNTAG_Bool(REGB2)) {
10702 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10703 if (UNTAG_Bool(REGB2)) {
10704 } else {
10705 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10706 }
10707 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10708 /* ./../lib/standard//kernel.nit:212 */
10709 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10710 } else {
10711 /* ./../lib/standard//collection//array.nit:245 */
10712 REGB0 = TAG_Bool(false);
10713 REGB2 = REGB0;
10714 }
10715 if (UNTAG_Bool(REGB2)) {
10716 } else {
10717 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10718 }
10719 /* ./../lib/standard//collection//array.nit:246 */
10720 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10721 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10722 if (UNTAG_Bool(REGB2)) {
10723 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10724 }
10725 /* ./../lib/standard//collection//array.nit:654 */
10726 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10727 /* ./../lib/standard//collection//array.nit:246 */
10728 goto label301;
10729 label301: while(0);
10730 /* ./compiling//compiling_icode.nit:812 */
10731 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10732 if (!once_value_302) {
10733 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
10734 REGB1 = TAG_Int(14);
10735 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10736 once_value_302 = fra.me.REG[7];
10737 register_static_object(&once_value_302);
10738 } else fra.me.REG[7] = once_value_302;
10739 fra.me.REG[7] = fra.me.REG[7];
10740 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10741 REGB1 = TAG_Int(1);
10742 /* ./../lib/standard//collection//array.nit:243 */
10743 fra.me.REG[7] = fra.me.REG[4];
10744 /* ./../lib/standard//collection//array.nit:245 */
10745 REGB2 = TAG_Int(0);
10746 /* ./../lib/standard//kernel.nit:213 */
10747 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10748 /* ./../lib/standard//collection//array.nit:245 */
10749 if (UNTAG_Bool(REGB2)) {
10750 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10751 if (UNTAG_Bool(REGB2)) {
10752 } else {
10753 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10754 }
10755 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10756 /* ./../lib/standard//kernel.nit:212 */
10757 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10758 } else {
10759 /* ./../lib/standard//collection//array.nit:245 */
10760 REGB0 = TAG_Bool(false);
10761 REGB2 = REGB0;
10762 }
10763 if (UNTAG_Bool(REGB2)) {
10764 } else {
10765 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10766 }
10767 /* ./../lib/standard//collection//array.nit:246 */
10768 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10769 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10770 if (UNTAG_Bool(REGB2)) {
10771 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10772 }
10773 /* ./../lib/standard//collection//array.nit:654 */
10774 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10775 /* ./../lib/standard//collection//array.nit:246 */
10776 goto label303;
10777 label303: while(0);
10778 /* ./compiling//compiling_icode.nit:812 */
10779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10780 if (!once_value_304) {
10781 fra.me.REG[7] = BOX_NativeString("))");
10782 REGB1 = TAG_Int(2);
10783 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10784 once_value_304 = fra.me.REG[7];
10785 register_static_object(&once_value_304);
10786 } else fra.me.REG[7] = once_value_304;
10787 fra.me.REG[7] = fra.me.REG[7];
10788 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10789 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10790 fra.me.REG[5] = fra.me.REG[6];
10791 } else {
10792 /* ./compiling//compiling_icode.nit:813 */
10793 if (!once_value_305) {
10794 if (!once_value_306) {
10795 fra.me.REG[6] = BOX_NativeString("==");
10796 REGB1 = TAG_Int(2);
10797 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10798 once_value_306 = fra.me.REG[6];
10799 register_static_object(&once_value_306);
10800 } else fra.me.REG[6] = once_value_306;
10801 fra.me.REG[6] = fra.me.REG[6];
10802 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10803 once_value_305 = fra.me.REG[6];
10804 register_static_object(&once_value_305);
10805 } else fra.me.REG[6] = once_value_305;
10806 fra.me.REG[6] = fra.me.REG[6];
10807 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10808 if (UNTAG_Bool(REGB1)) {
10809 } else {
10810 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10811 REGB1 = REGB2;
10812 }
10813 if (UNTAG_Bool(REGB1)) {
10814 /* ./compiling//compiling_icode.nit:814 */
10815 REGB1 = TAG_Int(5);
10816 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10817 if (!once_value_307) {
10818 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
10819 REGB1 = TAG_Int(10);
10820 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10821 once_value_307 = fra.me.REG[7];
10822 register_static_object(&once_value_307);
10823 } else fra.me.REG[7] = once_value_307;
10824 fra.me.REG[7] = fra.me.REG[7];
10825 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10826 REGB1 = TAG_Int(0);
10827 /* ./../lib/standard//collection//array.nit:243 */
10828 fra.me.REG[7] = fra.me.REG[4];
10829 /* ./../lib/standard//collection//array.nit:245 */
10830 REGB2 = TAG_Int(0);
10831 /* ./../lib/standard//kernel.nit:213 */
10832 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10833 /* ./../lib/standard//collection//array.nit:245 */
10834 if (UNTAG_Bool(REGB2)) {
10835 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10836 if (UNTAG_Bool(REGB2)) {
10837 } else {
10838 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10839 }
10840 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10841 /* ./../lib/standard//kernel.nit:212 */
10842 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10843 } else {
10844 /* ./../lib/standard//collection//array.nit:245 */
10845 REGB0 = TAG_Bool(false);
10846 REGB2 = REGB0;
10847 }
10848 if (UNTAG_Bool(REGB2)) {
10849 } else {
10850 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10851 }
10852 /* ./../lib/standard//collection//array.nit:246 */
10853 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10854 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10855 if (UNTAG_Bool(REGB2)) {
10856 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10857 }
10858 /* ./../lib/standard//collection//array.nit:654 */
10859 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10860 /* ./../lib/standard//collection//array.nit:246 */
10861 goto label308;
10862 label308: while(0);
10863 /* ./compiling//compiling_icode.nit:814 */
10864 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10865 if (!once_value_309) {
10866 fra.me.REG[7] = BOX_NativeString(")==(");
10867 REGB1 = TAG_Int(4);
10868 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10869 once_value_309 = fra.me.REG[7];
10870 register_static_object(&once_value_309);
10871 } else fra.me.REG[7] = once_value_309;
10872 fra.me.REG[7] = fra.me.REG[7];
10873 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10874 REGB1 = TAG_Int(1);
10875 /* ./../lib/standard//collection//array.nit:243 */
10876 fra.me.REG[7] = fra.me.REG[4];
10877 /* ./../lib/standard//collection//array.nit:245 */
10878 REGB2 = TAG_Int(0);
10879 /* ./../lib/standard//kernel.nit:213 */
10880 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10881 /* ./../lib/standard//collection//array.nit:245 */
10882 if (UNTAG_Bool(REGB2)) {
10883 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10884 if (UNTAG_Bool(REGB2)) {
10885 } else {
10886 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10887 }
10888 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10889 /* ./../lib/standard//kernel.nit:212 */
10890 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10891 } else {
10892 /* ./../lib/standard//collection//array.nit:245 */
10893 REGB0 = TAG_Bool(false);
10894 REGB2 = REGB0;
10895 }
10896 if (UNTAG_Bool(REGB2)) {
10897 } else {
10898 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10899 }
10900 /* ./../lib/standard//collection//array.nit:246 */
10901 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10902 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10903 if (UNTAG_Bool(REGB2)) {
10904 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10905 }
10906 /* ./../lib/standard//collection//array.nit:654 */
10907 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10908 /* ./../lib/standard//collection//array.nit:246 */
10909 goto label310;
10910 label310: while(0);
10911 /* ./compiling//compiling_icode.nit:814 */
10912 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10913 if (!once_value_311) {
10914 fra.me.REG[7] = BOX_NativeString("))");
10915 REGB1 = TAG_Int(2);
10916 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10917 once_value_311 = fra.me.REG[7];
10918 register_static_object(&once_value_311);
10919 } else fra.me.REG[7] = once_value_311;
10920 fra.me.REG[7] = fra.me.REG[7];
10921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10922 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10923 fra.me.REG[5] = fra.me.REG[6];
10924 } else {
10925 /* ./compiling//compiling_icode.nit:815 */
10926 if (!once_value_312) {
10927 if (!once_value_313) {
10928 fra.me.REG[6] = BOX_NativeString("!=");
10929 REGB1 = TAG_Int(2);
10930 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
10931 once_value_313 = fra.me.REG[6];
10932 register_static_object(&once_value_313);
10933 } else fra.me.REG[6] = once_value_313;
10934 fra.me.REG[6] = fra.me.REG[6];
10935 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10936 once_value_312 = fra.me.REG[6];
10937 register_static_object(&once_value_312);
10938 } else fra.me.REG[6] = once_value_312;
10939 fra.me.REG[6] = fra.me.REG[6];
10940 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10941 if (UNTAG_Bool(REGB1)) {
10942 } else {
10943 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10944 REGB1 = REGB2;
10945 }
10946 if (UNTAG_Bool(REGB1)) {
10947 /* ./compiling//compiling_icode.nit:816 */
10948 REGB1 = TAG_Int(5);
10949 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
10950 if (!once_value_314) {
10951 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
10952 REGB1 = TAG_Int(10);
10953 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
10954 once_value_314 = fra.me.REG[7];
10955 register_static_object(&once_value_314);
10956 } else fra.me.REG[7] = once_value_314;
10957 fra.me.REG[7] = fra.me.REG[7];
10958 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10959 REGB1 = TAG_Int(0);
10960 /* ./../lib/standard//collection//array.nit:243 */
10961 fra.me.REG[7] = fra.me.REG[4];
10962 /* ./../lib/standard//collection//array.nit:245 */
10963 REGB2 = TAG_Int(0);
10964 /* ./../lib/standard//kernel.nit:213 */
10965 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10966 /* ./../lib/standard//collection//array.nit:245 */
10967 if (UNTAG_Bool(REGB2)) {
10968 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10969 if (UNTAG_Bool(REGB2)) {
10970 } else {
10971 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
10972 }
10973 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
10974 /* ./../lib/standard//kernel.nit:212 */
10975 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10976 } else {
10977 /* ./../lib/standard//collection//array.nit:245 */
10978 REGB0 = TAG_Bool(false);
10979 REGB2 = REGB0;
10980 }
10981 if (UNTAG_Bool(REGB2)) {
10982 } else {
10983 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
10984 }
10985 /* ./../lib/standard//collection//array.nit:246 */
10986 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
10987 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10988 if (UNTAG_Bool(REGB2)) {
10989 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
10990 }
10991 /* ./../lib/standard//collection//array.nit:654 */
10992 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10993 /* ./../lib/standard//collection//array.nit:246 */
10994 goto label315;
10995 label315: while(0);
10996 /* ./compiling//compiling_icode.nit:816 */
10997 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10998 if (!once_value_316) {
10999 fra.me.REG[7] = BOX_NativeString(")!=(");
11000 REGB1 = TAG_Int(4);
11001 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11002 once_value_316 = fra.me.REG[7];
11003 register_static_object(&once_value_316);
11004 } else fra.me.REG[7] = once_value_316;
11005 fra.me.REG[7] = fra.me.REG[7];
11006 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11007 REGB1 = TAG_Int(1);
11008 /* ./../lib/standard//collection//array.nit:243 */
11009 fra.me.REG[7] = fra.me.REG[4];
11010 /* ./../lib/standard//collection//array.nit:245 */
11011 REGB2 = TAG_Int(0);
11012 /* ./../lib/standard//kernel.nit:213 */
11013 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11014 /* ./../lib/standard//collection//array.nit:245 */
11015 if (UNTAG_Bool(REGB2)) {
11016 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11017 if (UNTAG_Bool(REGB2)) {
11018 } else {
11019 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11020 }
11021 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11022 /* ./../lib/standard//kernel.nit:212 */
11023 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11024 } else {
11025 /* ./../lib/standard//collection//array.nit:245 */
11026 REGB0 = TAG_Bool(false);
11027 REGB2 = REGB0;
11028 }
11029 if (UNTAG_Bool(REGB2)) {
11030 } else {
11031 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11032 }
11033 /* ./../lib/standard//collection//array.nit:246 */
11034 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11035 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11036 if (UNTAG_Bool(REGB2)) {
11037 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11038 }
11039 /* ./../lib/standard//collection//array.nit:654 */
11040 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11041 /* ./../lib/standard//collection//array.nit:246 */
11042 goto label317;
11043 label317: while(0);
11044 /* ./compiling//compiling_icode.nit:816 */
11045 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11046 if (!once_value_318) {
11047 fra.me.REG[7] = BOX_NativeString("))");
11048 REGB1 = TAG_Int(2);
11049 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11050 once_value_318 = fra.me.REG[7];
11051 register_static_object(&once_value_318);
11052 } else fra.me.REG[7] = once_value_318;
11053 fra.me.REG[7] = fra.me.REG[7];
11054 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11055 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11056 fra.me.REG[5] = fra.me.REG[6];
11057 }
11058 }
11059 }
11060 }
11061 }
11062 }
11063 }
11064 }
11065 }
11066 }
11067 }
11068 }
11069 }
11070 }
11071 }
11072 }
11073 }
11074 }
11075 } else {
11076 /* ./compiling//compiling_icode.nit:818 */
11077 if (!once_value_319) {
11078 if (!once_value_320) {
11079 fra.me.REG[6] = BOX_NativeString("Bool");
11080 REGB1 = TAG_Int(4);
11081 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11082 once_value_320 = fra.me.REG[6];
11083 register_static_object(&once_value_320);
11084 } else fra.me.REG[6] = once_value_320;
11085 fra.me.REG[6] = fra.me.REG[6];
11086 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11087 once_value_319 = fra.me.REG[6];
11088 register_static_object(&once_value_319);
11089 } else fra.me.REG[6] = once_value_319;
11090 fra.me.REG[6] = fra.me.REG[6];
11091 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
11092 if (UNTAG_Bool(REGB1)) {
11093 } else {
11094 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
11095 REGB1 = REGB2;
11096 }
11097 if (UNTAG_Bool(REGB1)) {
11098 /* ./compiling//compiling_icode.nit:819 */
11099 if (!once_value_321) {
11100 if (!once_value_322) {
11101 fra.me.REG[6] = BOX_NativeString("object_id");
11102 REGB1 = TAG_Int(9);
11103 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11104 once_value_322 = fra.me.REG[6];
11105 register_static_object(&once_value_322);
11106 } else fra.me.REG[6] = once_value_322;
11107 fra.me.REG[6] = fra.me.REG[6];
11108 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11109 once_value_321 = fra.me.REG[6];
11110 register_static_object(&once_value_321);
11111 } else fra.me.REG[6] = once_value_321;
11112 fra.me.REG[6] = fra.me.REG[6];
11113 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11114 if (UNTAG_Bool(REGB1)) {
11115 } else {
11116 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11117 REGB1 = REGB2;
11118 }
11119 if (UNTAG_Bool(REGB1)) {
11120 /* ./compiling//compiling_icode.nit:820 */
11121 REGB1 = TAG_Int(3);
11122 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11123 if (!once_value_323) {
11124 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
11125 REGB1 = TAG_Int(19);
11126 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11127 once_value_323 = fra.me.REG[7];
11128 register_static_object(&once_value_323);
11129 } else fra.me.REG[7] = once_value_323;
11130 fra.me.REG[7] = fra.me.REG[7];
11131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11132 REGB1 = TAG_Int(0);
11133 /* ./../lib/standard//collection//array.nit:243 */
11134 fra.me.REG[7] = fra.me.REG[4];
11135 /* ./../lib/standard//collection//array.nit:245 */
11136 REGB2 = TAG_Int(0);
11137 /* ./../lib/standard//kernel.nit:213 */
11138 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11139 /* ./../lib/standard//collection//array.nit:245 */
11140 if (UNTAG_Bool(REGB2)) {
11141 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11142 if (UNTAG_Bool(REGB2)) {
11143 } else {
11144 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11145 }
11146 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11147 /* ./../lib/standard//kernel.nit:212 */
11148 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11149 } else {
11150 /* ./../lib/standard//collection//array.nit:245 */
11151 REGB0 = TAG_Bool(false);
11152 REGB2 = REGB0;
11153 }
11154 if (UNTAG_Bool(REGB2)) {
11155 } else {
11156 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11157 }
11158 /* ./../lib/standard//collection//array.nit:246 */
11159 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11160 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11161 if (UNTAG_Bool(REGB2)) {
11162 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11163 }
11164 /* ./../lib/standard//collection//array.nit:654 */
11165 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11166 /* ./../lib/standard//collection//array.nit:246 */
11167 goto label324;
11168 label324: while(0);
11169 /* ./compiling//compiling_icode.nit:820 */
11170 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11171 if (!once_value_325) {
11172 fra.me.REG[7] = BOX_NativeString("))");
11173 REGB1 = TAG_Int(2);
11174 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11175 once_value_325 = fra.me.REG[7];
11176 register_static_object(&once_value_325);
11177 } else fra.me.REG[7] = once_value_325;
11178 fra.me.REG[7] = fra.me.REG[7];
11179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11180 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11181 fra.me.REG[5] = fra.me.REG[6];
11182 } else {
11183 /* ./compiling//compiling_icode.nit:821 */
11184 if (!once_value_326) {
11185 if (!once_value_327) {
11186 fra.me.REG[6] = BOX_NativeString("unary -");
11187 REGB1 = TAG_Int(7);
11188 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11189 once_value_327 = fra.me.REG[6];
11190 register_static_object(&once_value_327);
11191 } else fra.me.REG[6] = once_value_327;
11192 fra.me.REG[6] = fra.me.REG[6];
11193 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11194 once_value_326 = fra.me.REG[6];
11195 register_static_object(&once_value_326);
11196 } else fra.me.REG[6] = once_value_326;
11197 fra.me.REG[6] = fra.me.REG[6];
11198 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11199 if (UNTAG_Bool(REGB1)) {
11200 } else {
11201 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11202 REGB1 = REGB2;
11203 }
11204 if (UNTAG_Bool(REGB1)) {
11205 /* ./compiling//compiling_icode.nit:822 */
11206 REGB1 = TAG_Int(3);
11207 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11208 if (!once_value_328) {
11209 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
11210 REGB1 = TAG_Int(21);
11211 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11212 once_value_328 = fra.me.REG[7];
11213 register_static_object(&once_value_328);
11214 } else fra.me.REG[7] = once_value_328;
11215 fra.me.REG[7] = fra.me.REG[7];
11216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11217 REGB1 = TAG_Int(0);
11218 /* ./../lib/standard//collection//array.nit:243 */
11219 fra.me.REG[7] = fra.me.REG[4];
11220 /* ./../lib/standard//collection//array.nit:245 */
11221 REGB2 = TAG_Int(0);
11222 /* ./../lib/standard//kernel.nit:213 */
11223 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11224 /* ./../lib/standard//collection//array.nit:245 */
11225 if (UNTAG_Bool(REGB2)) {
11226 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11227 if (UNTAG_Bool(REGB2)) {
11228 } else {
11229 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11230 }
11231 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11232 /* ./../lib/standard//kernel.nit:212 */
11233 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11234 } else {
11235 /* ./../lib/standard//collection//array.nit:245 */
11236 REGB0 = TAG_Bool(false);
11237 REGB2 = REGB0;
11238 }
11239 if (UNTAG_Bool(REGB2)) {
11240 } else {
11241 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11242 }
11243 /* ./../lib/standard//collection//array.nit:246 */
11244 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11245 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11246 if (UNTAG_Bool(REGB2)) {
11247 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11248 }
11249 /* ./../lib/standard//collection//array.nit:654 */
11250 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11251 /* ./../lib/standard//collection//array.nit:246 */
11252 goto label329;
11253 label329: while(0);
11254 /* ./compiling//compiling_icode.nit:822 */
11255 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11256 if (!once_value_330) {
11257 fra.me.REG[7] = BOX_NativeString("))");
11258 REGB1 = TAG_Int(2);
11259 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11260 once_value_330 = fra.me.REG[7];
11261 register_static_object(&once_value_330);
11262 } else fra.me.REG[7] = once_value_330;
11263 fra.me.REG[7] = fra.me.REG[7];
11264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11265 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11266 fra.me.REG[5] = fra.me.REG[6];
11267 } else {
11268 /* ./compiling//compiling_icode.nit:823 */
11269 if (!once_value_331) {
11270 if (!once_value_332) {
11271 fra.me.REG[6] = BOX_NativeString("output");
11272 REGB1 = TAG_Int(6);
11273 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11274 once_value_332 = fra.me.REG[6];
11275 register_static_object(&once_value_332);
11276 } else fra.me.REG[6] = once_value_332;
11277 fra.me.REG[6] = fra.me.REG[6];
11278 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11279 once_value_331 = fra.me.REG[6];
11280 register_static_object(&once_value_331);
11281 } else fra.me.REG[6] = once_value_331;
11282 fra.me.REG[6] = fra.me.REG[6];
11283 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11284 if (UNTAG_Bool(REGB1)) {
11285 } else {
11286 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11287 REGB1 = REGB2;
11288 }
11289 if (UNTAG_Bool(REGB1)) {
11290 /* ./compiling//compiling_icode.nit:824 */
11291 REGB1 = TAG_Int(3);
11292 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11293 if (!once_value_333) {
11294 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
11295 REGB1 = TAG_Int(24);
11296 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11297 once_value_333 = fra.me.REG[7];
11298 register_static_object(&once_value_333);
11299 } else fra.me.REG[7] = once_value_333;
11300 fra.me.REG[7] = fra.me.REG[7];
11301 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11302 REGB1 = TAG_Int(0);
11303 /* ./../lib/standard//collection//array.nit:243 */
11304 fra.me.REG[7] = fra.me.REG[4];
11305 /* ./../lib/standard//collection//array.nit:245 */
11306 REGB2 = TAG_Int(0);
11307 /* ./../lib/standard//kernel.nit:213 */
11308 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11309 /* ./../lib/standard//collection//array.nit:245 */
11310 if (UNTAG_Bool(REGB2)) {
11311 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11312 if (UNTAG_Bool(REGB2)) {
11313 } else {
11314 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11315 }
11316 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11317 /* ./../lib/standard//kernel.nit:212 */
11318 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11319 } else {
11320 /* ./../lib/standard//collection//array.nit:245 */
11321 REGB0 = TAG_Bool(false);
11322 REGB2 = REGB0;
11323 }
11324 if (UNTAG_Bool(REGB2)) {
11325 } else {
11326 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11327 }
11328 /* ./../lib/standard//collection//array.nit:246 */
11329 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11330 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11331 if (UNTAG_Bool(REGB2)) {
11332 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11333 }
11334 /* ./../lib/standard//collection//array.nit:654 */
11335 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11336 /* ./../lib/standard//collection//array.nit:246 */
11337 goto label334;
11338 label334: while(0);
11339 /* ./compiling//compiling_icode.nit:824 */
11340 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11341 if (!once_value_335) {
11342 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
11343 REGB1 = TAG_Int(22);
11344 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11345 once_value_335 = fra.me.REG[7];
11346 register_static_object(&once_value_335);
11347 } else fra.me.REG[7] = once_value_335;
11348 fra.me.REG[7] = fra.me.REG[7];
11349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11350 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11351 fra.me.REG[5] = fra.me.REG[6];
11352 } else {
11353 /* ./compiling//compiling_icode.nit:825 */
11354 if (!once_value_336) {
11355 if (!once_value_337) {
11356 fra.me.REG[6] = BOX_NativeString("ascii");
11357 REGB1 = TAG_Int(5);
11358 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11359 once_value_337 = fra.me.REG[6];
11360 register_static_object(&once_value_337);
11361 } else fra.me.REG[6] = once_value_337;
11362 fra.me.REG[6] = fra.me.REG[6];
11363 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11364 once_value_336 = fra.me.REG[6];
11365 register_static_object(&once_value_336);
11366 } else fra.me.REG[6] = once_value_336;
11367 fra.me.REG[6] = fra.me.REG[6];
11368 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11369 if (UNTAG_Bool(REGB1)) {
11370 } else {
11371 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11372 REGB1 = REGB2;
11373 }
11374 if (UNTAG_Bool(REGB1)) {
11375 /* ./compiling//compiling_icode.nit:826 */
11376 REGB1 = TAG_Int(3);
11377 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11378 if (!once_value_338) {
11379 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
11380 REGB1 = TAG_Int(20);
11381 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11382 once_value_338 = fra.me.REG[7];
11383 register_static_object(&once_value_338);
11384 } else fra.me.REG[7] = once_value_338;
11385 fra.me.REG[7] = fra.me.REG[7];
11386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11387 REGB1 = TAG_Int(0);
11388 /* ./../lib/standard//collection//array.nit:243 */
11389 fra.me.REG[7] = fra.me.REG[4];
11390 /* ./../lib/standard//collection//array.nit:245 */
11391 REGB2 = TAG_Int(0);
11392 /* ./../lib/standard//kernel.nit:213 */
11393 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11394 /* ./../lib/standard//collection//array.nit:245 */
11395 if (UNTAG_Bool(REGB2)) {
11396 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11397 if (UNTAG_Bool(REGB2)) {
11398 } else {
11399 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11400 }
11401 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11402 /* ./../lib/standard//kernel.nit:212 */
11403 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11404 } else {
11405 /* ./../lib/standard//collection//array.nit:245 */
11406 REGB0 = TAG_Bool(false);
11407 REGB2 = REGB0;
11408 }
11409 if (UNTAG_Bool(REGB2)) {
11410 } else {
11411 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11412 }
11413 /* ./../lib/standard//collection//array.nit:246 */
11414 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11415 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11416 if (UNTAG_Bool(REGB2)) {
11417 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11418 }
11419 /* ./../lib/standard//collection//array.nit:654 */
11420 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11421 /* ./../lib/standard//collection//array.nit:246 */
11422 goto label339;
11423 label339: while(0);
11424 /* ./compiling//compiling_icode.nit:826 */
11425 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11426 if (!once_value_340) {
11427 fra.me.REG[7] = BOX_NativeString("))");
11428 REGB1 = TAG_Int(2);
11429 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11430 once_value_340 = fra.me.REG[7];
11431 register_static_object(&once_value_340);
11432 } else fra.me.REG[7] = once_value_340;
11433 fra.me.REG[7] = fra.me.REG[7];
11434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11435 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11436 fra.me.REG[5] = fra.me.REG[6];
11437 } else {
11438 /* ./compiling//compiling_icode.nit:827 */
11439 if (!once_value_341) {
11440 if (!once_value_342) {
11441 fra.me.REG[6] = BOX_NativeString("to_i");
11442 REGB1 = TAG_Int(4);
11443 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11444 once_value_342 = fra.me.REG[6];
11445 register_static_object(&once_value_342);
11446 } else fra.me.REG[6] = once_value_342;
11447 fra.me.REG[6] = fra.me.REG[6];
11448 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11449 once_value_341 = fra.me.REG[6];
11450 register_static_object(&once_value_341);
11451 } else fra.me.REG[6] = once_value_341;
11452 fra.me.REG[6] = fra.me.REG[6];
11453 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11454 if (UNTAG_Bool(REGB1)) {
11455 } else {
11456 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11457 REGB1 = REGB2;
11458 }
11459 if (UNTAG_Bool(REGB1)) {
11460 /* ./compiling//compiling_icode.nit:828 */
11461 REGB1 = TAG_Int(3);
11462 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11463 if (!once_value_343) {
11464 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
11465 REGB1 = TAG_Int(19);
11466 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11467 once_value_343 = fra.me.REG[7];
11468 register_static_object(&once_value_343);
11469 } else fra.me.REG[7] = once_value_343;
11470 fra.me.REG[7] = fra.me.REG[7];
11471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11472 REGB1 = TAG_Int(0);
11473 /* ./../lib/standard//collection//array.nit:243 */
11474 fra.me.REG[7] = fra.me.REG[4];
11475 /* ./../lib/standard//collection//array.nit:245 */
11476 REGB2 = TAG_Int(0);
11477 /* ./../lib/standard//kernel.nit:213 */
11478 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11479 /* ./../lib/standard//collection//array.nit:245 */
11480 if (UNTAG_Bool(REGB2)) {
11481 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11482 if (UNTAG_Bool(REGB2)) {
11483 } else {
11484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11485 }
11486 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11487 /* ./../lib/standard//kernel.nit:212 */
11488 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11489 } else {
11490 /* ./../lib/standard//collection//array.nit:245 */
11491 REGB0 = TAG_Bool(false);
11492 REGB2 = REGB0;
11493 }
11494 if (UNTAG_Bool(REGB2)) {
11495 } else {
11496 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11497 }
11498 /* ./../lib/standard//collection//array.nit:246 */
11499 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11500 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11501 if (UNTAG_Bool(REGB2)) {
11502 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11503 }
11504 /* ./../lib/standard//collection//array.nit:654 */
11505 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11506 /* ./../lib/standard//collection//array.nit:246 */
11507 goto label344;
11508 label344: while(0);
11509 /* ./compiling//compiling_icode.nit:828 */
11510 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11511 if (!once_value_345) {
11512 fra.me.REG[7] = BOX_NativeString("))");
11513 REGB1 = TAG_Int(2);
11514 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11515 once_value_345 = fra.me.REG[7];
11516 register_static_object(&once_value_345);
11517 } else fra.me.REG[7] = once_value_345;
11518 fra.me.REG[7] = fra.me.REG[7];
11519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11520 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11521 fra.me.REG[5] = fra.me.REG[6];
11522 } else {
11523 /* ./compiling//compiling_icode.nit:829 */
11524 if (!once_value_346) {
11525 if (!once_value_347) {
11526 fra.me.REG[6] = BOX_NativeString("==");
11527 REGB1 = TAG_Int(2);
11528 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11529 once_value_347 = fra.me.REG[6];
11530 register_static_object(&once_value_347);
11531 } else fra.me.REG[6] = once_value_347;
11532 fra.me.REG[6] = fra.me.REG[6];
11533 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11534 once_value_346 = fra.me.REG[6];
11535 register_static_object(&once_value_346);
11536 } else fra.me.REG[6] = once_value_346;
11537 fra.me.REG[6] = fra.me.REG[6];
11538 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11539 if (UNTAG_Bool(REGB1)) {
11540 } else {
11541 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11542 REGB1 = REGB2;
11543 }
11544 if (UNTAG_Bool(REGB1)) {
11545 /* ./compiling//compiling_icode.nit:830 */
11546 REGB1 = TAG_Int(5);
11547 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11548 if (!once_value_348) {
11549 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11550 REGB1 = TAG_Int(10);
11551 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11552 once_value_348 = fra.me.REG[7];
11553 register_static_object(&once_value_348);
11554 } else fra.me.REG[7] = once_value_348;
11555 fra.me.REG[7] = fra.me.REG[7];
11556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11557 REGB1 = TAG_Int(0);
11558 /* ./../lib/standard//collection//array.nit:243 */
11559 fra.me.REG[7] = fra.me.REG[4];
11560 /* ./../lib/standard//collection//array.nit:245 */
11561 REGB2 = TAG_Int(0);
11562 /* ./../lib/standard//kernel.nit:213 */
11563 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11564 /* ./../lib/standard//collection//array.nit:245 */
11565 if (UNTAG_Bool(REGB2)) {
11566 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11567 if (UNTAG_Bool(REGB2)) {
11568 } else {
11569 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11570 }
11571 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11572 /* ./../lib/standard//kernel.nit:212 */
11573 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11574 } else {
11575 /* ./../lib/standard//collection//array.nit:245 */
11576 REGB0 = TAG_Bool(false);
11577 REGB2 = REGB0;
11578 }
11579 if (UNTAG_Bool(REGB2)) {
11580 } else {
11581 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11582 }
11583 /* ./../lib/standard//collection//array.nit:246 */
11584 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11585 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11586 if (UNTAG_Bool(REGB2)) {
11587 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11588 }
11589 /* ./../lib/standard//collection//array.nit:654 */
11590 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11591 /* ./../lib/standard//collection//array.nit:246 */
11592 goto label349;
11593 label349: while(0);
11594 /* ./compiling//compiling_icode.nit:830 */
11595 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11596 if (!once_value_350) {
11597 fra.me.REG[7] = BOX_NativeString(")==(");
11598 REGB1 = TAG_Int(4);
11599 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11600 once_value_350 = fra.me.REG[7];
11601 register_static_object(&once_value_350);
11602 } else fra.me.REG[7] = once_value_350;
11603 fra.me.REG[7] = fra.me.REG[7];
11604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11605 REGB1 = TAG_Int(1);
11606 /* ./../lib/standard//collection//array.nit:243 */
11607 fra.me.REG[7] = fra.me.REG[4];
11608 /* ./../lib/standard//collection//array.nit:245 */
11609 REGB2 = TAG_Int(0);
11610 /* ./../lib/standard//kernel.nit:213 */
11611 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11612 /* ./../lib/standard//collection//array.nit:245 */
11613 if (UNTAG_Bool(REGB2)) {
11614 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11615 if (UNTAG_Bool(REGB2)) {
11616 } else {
11617 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11618 }
11619 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11620 /* ./../lib/standard//kernel.nit:212 */
11621 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11622 } else {
11623 /* ./../lib/standard//collection//array.nit:245 */
11624 REGB0 = TAG_Bool(false);
11625 REGB2 = REGB0;
11626 }
11627 if (UNTAG_Bool(REGB2)) {
11628 } else {
11629 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11630 }
11631 /* ./../lib/standard//collection//array.nit:246 */
11632 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11633 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11634 if (UNTAG_Bool(REGB2)) {
11635 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11636 }
11637 /* ./../lib/standard//collection//array.nit:654 */
11638 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11639 /* ./../lib/standard//collection//array.nit:246 */
11640 goto label351;
11641 label351: while(0);
11642 /* ./compiling//compiling_icode.nit:830 */
11643 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11644 if (!once_value_352) {
11645 fra.me.REG[7] = BOX_NativeString("))");
11646 REGB1 = TAG_Int(2);
11647 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11648 once_value_352 = fra.me.REG[7];
11649 register_static_object(&once_value_352);
11650 } else fra.me.REG[7] = once_value_352;
11651 fra.me.REG[7] = fra.me.REG[7];
11652 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11653 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11654 fra.me.REG[5] = fra.me.REG[6];
11655 } else {
11656 /* ./compiling//compiling_icode.nit:831 */
11657 if (!once_value_353) {
11658 if (!once_value_354) {
11659 fra.me.REG[6] = BOX_NativeString("!=");
11660 REGB1 = TAG_Int(2);
11661 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11662 once_value_354 = fra.me.REG[6];
11663 register_static_object(&once_value_354);
11664 } else fra.me.REG[6] = once_value_354;
11665 fra.me.REG[6] = fra.me.REG[6];
11666 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11667 once_value_353 = fra.me.REG[6];
11668 register_static_object(&once_value_353);
11669 } else fra.me.REG[6] = once_value_353;
11670 fra.me.REG[6] = fra.me.REG[6];
11671 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11672 if (UNTAG_Bool(REGB1)) {
11673 } else {
11674 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11675 REGB1 = REGB2;
11676 }
11677 if (UNTAG_Bool(REGB1)) {
11678 /* ./compiling//compiling_icode.nit:832 */
11679 REGB1 = TAG_Int(5);
11680 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11681 if (!once_value_355) {
11682 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11683 REGB1 = TAG_Int(10);
11684 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11685 once_value_355 = fra.me.REG[7];
11686 register_static_object(&once_value_355);
11687 } else fra.me.REG[7] = once_value_355;
11688 fra.me.REG[7] = fra.me.REG[7];
11689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11690 REGB1 = TAG_Int(0);
11691 /* ./../lib/standard//collection//array.nit:243 */
11692 fra.me.REG[7] = fra.me.REG[4];
11693 /* ./../lib/standard//collection//array.nit:245 */
11694 REGB2 = TAG_Int(0);
11695 /* ./../lib/standard//kernel.nit:213 */
11696 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11697 /* ./../lib/standard//collection//array.nit:245 */
11698 if (UNTAG_Bool(REGB2)) {
11699 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11700 if (UNTAG_Bool(REGB2)) {
11701 } else {
11702 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11703 }
11704 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11705 /* ./../lib/standard//kernel.nit:212 */
11706 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11707 } else {
11708 /* ./../lib/standard//collection//array.nit:245 */
11709 REGB0 = TAG_Bool(false);
11710 REGB2 = REGB0;
11711 }
11712 if (UNTAG_Bool(REGB2)) {
11713 } else {
11714 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11715 }
11716 /* ./../lib/standard//collection//array.nit:246 */
11717 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11718 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11719 if (UNTAG_Bool(REGB2)) {
11720 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11721 }
11722 /* ./../lib/standard//collection//array.nit:654 */
11723 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11724 /* ./../lib/standard//collection//array.nit:246 */
11725 goto label356;
11726 label356: while(0);
11727 /* ./compiling//compiling_icode.nit:832 */
11728 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11729 if (!once_value_357) {
11730 fra.me.REG[7] = BOX_NativeString(")!=(");
11731 REGB1 = TAG_Int(4);
11732 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11733 once_value_357 = fra.me.REG[7];
11734 register_static_object(&once_value_357);
11735 } else fra.me.REG[7] = once_value_357;
11736 fra.me.REG[7] = fra.me.REG[7];
11737 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11738 REGB1 = TAG_Int(1);
11739 /* ./../lib/standard//collection//array.nit:243 */
11740 fra.me.REG[7] = fra.me.REG[4];
11741 /* ./../lib/standard//collection//array.nit:245 */
11742 REGB2 = TAG_Int(0);
11743 /* ./../lib/standard//kernel.nit:213 */
11744 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11745 /* ./../lib/standard//collection//array.nit:245 */
11746 if (UNTAG_Bool(REGB2)) {
11747 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11748 if (UNTAG_Bool(REGB2)) {
11749 } else {
11750 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11751 }
11752 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11753 /* ./../lib/standard//kernel.nit:212 */
11754 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11755 } else {
11756 /* ./../lib/standard//collection//array.nit:245 */
11757 REGB0 = TAG_Bool(false);
11758 REGB2 = REGB0;
11759 }
11760 if (UNTAG_Bool(REGB2)) {
11761 } else {
11762 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11763 }
11764 /* ./../lib/standard//collection//array.nit:246 */
11765 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11766 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11767 if (UNTAG_Bool(REGB2)) {
11768 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11769 }
11770 /* ./../lib/standard//collection//array.nit:654 */
11771 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11772 /* ./../lib/standard//collection//array.nit:246 */
11773 goto label358;
11774 label358: while(0);
11775 /* ./compiling//compiling_icode.nit:832 */
11776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11777 if (!once_value_359) {
11778 fra.me.REG[7] = BOX_NativeString("))");
11779 REGB1 = TAG_Int(2);
11780 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11781 once_value_359 = fra.me.REG[7];
11782 register_static_object(&once_value_359);
11783 } else fra.me.REG[7] = once_value_359;
11784 fra.me.REG[7] = fra.me.REG[7];
11785 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11786 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11787 fra.me.REG[5] = fra.me.REG[6];
11788 }
11789 }
11790 }
11791 }
11792 }
11793 }
11794 }
11795 } else {
11796 /* ./compiling//compiling_icode.nit:834 */
11797 if (!once_value_360) {
11798 if (!once_value_361) {
11799 fra.me.REG[6] = BOX_NativeString("NativeArray");
11800 REGB1 = TAG_Int(11);
11801 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11802 once_value_361 = fra.me.REG[6];
11803 register_static_object(&once_value_361);
11804 } else fra.me.REG[6] = once_value_361;
11805 fra.me.REG[6] = fra.me.REG[6];
11806 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11807 once_value_360 = fra.me.REG[6];
11808 register_static_object(&once_value_360);
11809 } else fra.me.REG[6] = once_value_360;
11810 fra.me.REG[6] = fra.me.REG[6];
11811 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
11812 if (UNTAG_Bool(REGB1)) {
11813 } else {
11814 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
11815 REGB1 = REGB2;
11816 }
11817 if (UNTAG_Bool(REGB1)) {
11818 /* ./compiling//compiling_icode.nit:835 */
11819 if (!once_value_362) {
11820 if (!once_value_363) {
11821 fra.me.REG[6] = BOX_NativeString("object_id");
11822 REGB1 = TAG_Int(9);
11823 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11824 once_value_363 = fra.me.REG[6];
11825 register_static_object(&once_value_363);
11826 } else fra.me.REG[6] = once_value_363;
11827 fra.me.REG[6] = fra.me.REG[6];
11828 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11829 once_value_362 = fra.me.REG[6];
11830 register_static_object(&once_value_362);
11831 } else fra.me.REG[6] = once_value_362;
11832 fra.me.REG[6] = fra.me.REG[6];
11833 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11834 if (UNTAG_Bool(REGB1)) {
11835 } else {
11836 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11837 REGB1 = REGB2;
11838 }
11839 if (UNTAG_Bool(REGB1)) {
11840 /* ./compiling//compiling_icode.nit:836 */
11841 REGB1 = TAG_Int(3);
11842 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11843 if (!once_value_364) {
11844 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
11845 REGB1 = TAG_Int(26);
11846 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11847 once_value_364 = fra.me.REG[7];
11848 register_static_object(&once_value_364);
11849 } else fra.me.REG[7] = once_value_364;
11850 fra.me.REG[7] = fra.me.REG[7];
11851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11852 REGB1 = TAG_Int(0);
11853 /* ./../lib/standard//collection//array.nit:243 */
11854 fra.me.REG[7] = fra.me.REG[4];
11855 /* ./../lib/standard//collection//array.nit:245 */
11856 REGB2 = TAG_Int(0);
11857 /* ./../lib/standard//kernel.nit:213 */
11858 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11859 /* ./../lib/standard//collection//array.nit:245 */
11860 if (UNTAG_Bool(REGB2)) {
11861 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11862 if (UNTAG_Bool(REGB2)) {
11863 } else {
11864 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11865 }
11866 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11867 /* ./../lib/standard//kernel.nit:212 */
11868 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11869 } else {
11870 /* ./../lib/standard//collection//array.nit:245 */
11871 REGB0 = TAG_Bool(false);
11872 REGB2 = REGB0;
11873 }
11874 if (UNTAG_Bool(REGB2)) {
11875 } else {
11876 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11877 }
11878 /* ./../lib/standard//collection//array.nit:246 */
11879 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11880 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11881 if (UNTAG_Bool(REGB2)) {
11882 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11883 }
11884 /* ./../lib/standard//collection//array.nit:654 */
11885 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11886 /* ./../lib/standard//collection//array.nit:246 */
11887 goto label365;
11888 label365: while(0);
11889 /* ./compiling//compiling_icode.nit:836 */
11890 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11891 if (!once_value_366) {
11892 fra.me.REG[7] = BOX_NativeString(")->object_id)");
11893 REGB1 = TAG_Int(13);
11894 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11895 once_value_366 = fra.me.REG[7];
11896 register_static_object(&once_value_366);
11897 } else fra.me.REG[7] = once_value_366;
11898 fra.me.REG[7] = fra.me.REG[7];
11899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11900 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11901 fra.me.REG[5] = fra.me.REG[6];
11902 } else {
11903 /* ./compiling//compiling_icode.nit:837 */
11904 if (!once_value_367) {
11905 if (!once_value_368) {
11906 fra.me.REG[6] = BOX_NativeString("[]");
11907 REGB1 = TAG_Int(2);
11908 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
11909 once_value_368 = fra.me.REG[6];
11910 register_static_object(&once_value_368);
11911 } else fra.me.REG[6] = once_value_368;
11912 fra.me.REG[6] = fra.me.REG[6];
11913 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11914 once_value_367 = fra.me.REG[6];
11915 register_static_object(&once_value_367);
11916 } else fra.me.REG[6] = once_value_367;
11917 fra.me.REG[6] = fra.me.REG[6];
11918 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11919 if (UNTAG_Bool(REGB1)) {
11920 } else {
11921 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11922 REGB1 = REGB2;
11923 }
11924 if (UNTAG_Bool(REGB1)) {
11925 /* ./compiling//compiling_icode.nit:838 */
11926 REGB1 = TAG_Int(5);
11927 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
11928 if (!once_value_369) {
11929 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
11930 REGB1 = TAG_Int(18);
11931 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11932 once_value_369 = fra.me.REG[7];
11933 register_static_object(&once_value_369);
11934 } else fra.me.REG[7] = once_value_369;
11935 fra.me.REG[7] = fra.me.REG[7];
11936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11937 REGB1 = TAG_Int(0);
11938 /* ./../lib/standard//collection//array.nit:243 */
11939 fra.me.REG[7] = fra.me.REG[4];
11940 /* ./../lib/standard//collection//array.nit:245 */
11941 REGB2 = TAG_Int(0);
11942 /* ./../lib/standard//kernel.nit:213 */
11943 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11944 /* ./../lib/standard//collection//array.nit:245 */
11945 if (UNTAG_Bool(REGB2)) {
11946 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11947 if (UNTAG_Bool(REGB2)) {
11948 } else {
11949 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11950 }
11951 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
11952 /* ./../lib/standard//kernel.nit:212 */
11953 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11954 } else {
11955 /* ./../lib/standard//collection//array.nit:245 */
11956 REGB0 = TAG_Bool(false);
11957 REGB2 = REGB0;
11958 }
11959 if (UNTAG_Bool(REGB2)) {
11960 } else {
11961 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
11962 }
11963 /* ./../lib/standard//collection//array.nit:246 */
11964 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
11965 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11966 if (UNTAG_Bool(REGB2)) {
11967 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
11968 }
11969 /* ./../lib/standard//collection//array.nit:654 */
11970 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11971 /* ./../lib/standard//collection//array.nit:246 */
11972 goto label370;
11973 label370: while(0);
11974 /* ./compiling//compiling_icode.nit:838 */
11975 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11976 if (!once_value_371) {
11977 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
11978 REGB1 = TAG_Int(17);
11979 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
11980 once_value_371 = fra.me.REG[7];
11981 register_static_object(&once_value_371);
11982 } else fra.me.REG[7] = once_value_371;
11983 fra.me.REG[7] = fra.me.REG[7];
11984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11985 REGB1 = TAG_Int(1);
11986 /* ./../lib/standard//collection//array.nit:243 */
11987 fra.me.REG[7] = fra.me.REG[4];
11988 /* ./../lib/standard//collection//array.nit:245 */
11989 REGB2 = TAG_Int(0);
11990 /* ./../lib/standard//kernel.nit:213 */
11991 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11992 /* ./../lib/standard//collection//array.nit:245 */
11993 if (UNTAG_Bool(REGB2)) {
11994 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11995 if (UNTAG_Bool(REGB2)) {
11996 } else {
11997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
11998 }
11999 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12000 /* ./../lib/standard//kernel.nit:212 */
12001 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12002 } else {
12003 /* ./../lib/standard//collection//array.nit:245 */
12004 REGB0 = TAG_Bool(false);
12005 REGB2 = REGB0;
12006 }
12007 if (UNTAG_Bool(REGB2)) {
12008 } else {
12009 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12010 }
12011 /* ./../lib/standard//collection//array.nit:246 */
12012 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12013 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12014 if (UNTAG_Bool(REGB2)) {
12015 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12016 }
12017 /* ./../lib/standard//collection//array.nit:654 */
12018 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12019 /* ./../lib/standard//collection//array.nit:246 */
12020 goto label372;
12021 label372: while(0);
12022 /* ./compiling//compiling_icode.nit:838 */
12023 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12024 if (!once_value_373) {
12025 fra.me.REG[7] = BOX_NativeString(")]");
12026 REGB1 = TAG_Int(2);
12027 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12028 once_value_373 = fra.me.REG[7];
12029 register_static_object(&once_value_373);
12030 } else fra.me.REG[7] = once_value_373;
12031 fra.me.REG[7] = fra.me.REG[7];
12032 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12033 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12034 fra.me.REG[5] = fra.me.REG[6];
12035 } else {
12036 /* ./compiling//compiling_icode.nit:839 */
12037 if (!once_value_374) {
12038 if (!once_value_375) {
12039 fra.me.REG[6] = BOX_NativeString("[]=");
12040 REGB1 = TAG_Int(3);
12041 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12042 once_value_375 = fra.me.REG[6];
12043 register_static_object(&once_value_375);
12044 } else fra.me.REG[6] = once_value_375;
12045 fra.me.REG[6] = fra.me.REG[6];
12046 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12047 once_value_374 = fra.me.REG[6];
12048 register_static_object(&once_value_374);
12049 } else fra.me.REG[6] = once_value_374;
12050 fra.me.REG[6] = fra.me.REG[6];
12051 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12052 if (UNTAG_Bool(REGB1)) {
12053 } else {
12054 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12055 REGB1 = REGB2;
12056 }
12057 if (UNTAG_Bool(REGB1)) {
12058 /* ./compiling//compiling_icode.nit:840 */
12059 REGB1 = TAG_Int(7);
12060 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12061 if (!once_value_376) {
12062 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
12063 REGB1 = TAG_Int(18);
12064 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12065 once_value_376 = fra.me.REG[7];
12066 register_static_object(&once_value_376);
12067 } else fra.me.REG[7] = once_value_376;
12068 fra.me.REG[7] = fra.me.REG[7];
12069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12070 REGB1 = TAG_Int(0);
12071 /* ./../lib/standard//collection//array.nit:243 */
12072 fra.me.REG[7] = fra.me.REG[4];
12073 /* ./../lib/standard//collection//array.nit:245 */
12074 REGB2 = TAG_Int(0);
12075 /* ./../lib/standard//kernel.nit:213 */
12076 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12077 /* ./../lib/standard//collection//array.nit:245 */
12078 if (UNTAG_Bool(REGB2)) {
12079 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12080 if (UNTAG_Bool(REGB2)) {
12081 } else {
12082 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12083 }
12084 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12085 /* ./../lib/standard//kernel.nit:212 */
12086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12087 } else {
12088 /* ./../lib/standard//collection//array.nit:245 */
12089 REGB0 = TAG_Bool(false);
12090 REGB2 = REGB0;
12091 }
12092 if (UNTAG_Bool(REGB2)) {
12093 } else {
12094 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12095 }
12096 /* ./../lib/standard//collection//array.nit:246 */
12097 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12098 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12099 if (UNTAG_Bool(REGB2)) {
12100 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12101 }
12102 /* ./../lib/standard//collection//array.nit:654 */
12103 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12104 /* ./../lib/standard//collection//array.nit:246 */
12105 goto label377;
12106 label377: while(0);
12107 /* ./compiling//compiling_icode.nit:840 */
12108 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12109 if (!once_value_378) {
12110 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
12111 REGB1 = TAG_Int(17);
12112 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12113 once_value_378 = fra.me.REG[7];
12114 register_static_object(&once_value_378);
12115 } else fra.me.REG[7] = once_value_378;
12116 fra.me.REG[7] = fra.me.REG[7];
12117 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12118 REGB1 = TAG_Int(1);
12119 /* ./../lib/standard//collection//array.nit:243 */
12120 fra.me.REG[7] = fra.me.REG[4];
12121 /* ./../lib/standard//collection//array.nit:245 */
12122 REGB2 = TAG_Int(0);
12123 /* ./../lib/standard//kernel.nit:213 */
12124 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12125 /* ./../lib/standard//collection//array.nit:245 */
12126 if (UNTAG_Bool(REGB2)) {
12127 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12128 if (UNTAG_Bool(REGB2)) {
12129 } else {
12130 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12131 }
12132 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12133 /* ./../lib/standard//kernel.nit:212 */
12134 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12135 } else {
12136 /* ./../lib/standard//collection//array.nit:245 */
12137 REGB0 = TAG_Bool(false);
12138 REGB2 = REGB0;
12139 }
12140 if (UNTAG_Bool(REGB2)) {
12141 } else {
12142 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12143 }
12144 /* ./../lib/standard//collection//array.nit:246 */
12145 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12146 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12147 if (UNTAG_Bool(REGB2)) {
12148 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12149 }
12150 /* ./../lib/standard//collection//array.nit:654 */
12151 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12152 /* ./../lib/standard//collection//array.nit:246 */
12153 goto label379;
12154 label379: while(0);
12155 /* ./compiling//compiling_icode.nit:840 */
12156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12157 if (!once_value_380) {
12158 fra.me.REG[7] = BOX_NativeString(")]=");
12159 REGB1 = TAG_Int(3);
12160 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12161 once_value_380 = fra.me.REG[7];
12162 register_static_object(&once_value_380);
12163 } else fra.me.REG[7] = once_value_380;
12164 fra.me.REG[7] = fra.me.REG[7];
12165 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12166 REGB1 = TAG_Int(2);
12167 /* ./../lib/standard//collection//array.nit:243 */
12168 fra.me.REG[7] = fra.me.REG[4];
12169 /* ./../lib/standard//collection//array.nit:245 */
12170 REGB2 = TAG_Int(0);
12171 /* ./../lib/standard//kernel.nit:213 */
12172 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12173 /* ./../lib/standard//collection//array.nit:245 */
12174 if (UNTAG_Bool(REGB2)) {
12175 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12176 if (UNTAG_Bool(REGB2)) {
12177 } else {
12178 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12179 }
12180 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12181 /* ./../lib/standard//kernel.nit:212 */
12182 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12183 } else {
12184 /* ./../lib/standard//collection//array.nit:245 */
12185 REGB0 = TAG_Bool(false);
12186 REGB2 = REGB0;
12187 }
12188 if (UNTAG_Bool(REGB2)) {
12189 } else {
12190 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12191 }
12192 /* ./../lib/standard//collection//array.nit:246 */
12193 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12194 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12195 if (UNTAG_Bool(REGB2)) {
12196 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12197 }
12198 /* ./../lib/standard//collection//array.nit:654 */
12199 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12200 /* ./../lib/standard//collection//array.nit:246 */
12201 goto label381;
12202 label381: while(0);
12203 /* ./compiling//compiling_icode.nit:840 */
12204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12205 if (!once_value_382) {
12206 fra.me.REG[7] = BOX_NativeString("");
12207 REGB1 = TAG_Int(0);
12208 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12209 once_value_382 = fra.me.REG[7];
12210 register_static_object(&once_value_382);
12211 } else fra.me.REG[7] = once_value_382;
12212 fra.me.REG[7] = fra.me.REG[7];
12213 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12214 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12215 fra.me.REG[5] = fra.me.REG[6];
12216 } else {
12217 /* ./compiling//compiling_icode.nit:841 */
12218 if (!once_value_383) {
12219 if (!once_value_384) {
12220 fra.me.REG[6] = BOX_NativeString("copy_to");
12221 REGB1 = TAG_Int(7);
12222 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12223 once_value_384 = fra.me.REG[6];
12224 register_static_object(&once_value_384);
12225 } else fra.me.REG[6] = once_value_384;
12226 fra.me.REG[6] = fra.me.REG[6];
12227 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12228 once_value_383 = fra.me.REG[6];
12229 register_static_object(&once_value_383);
12230 } else fra.me.REG[6] = once_value_383;
12231 fra.me.REG[6] = fra.me.REG[6];
12232 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12233 if (UNTAG_Bool(REGB1)) {
12234 } else {
12235 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12236 REGB1 = REGB2;
12237 }
12238 if (UNTAG_Bool(REGB1)) {
12239 /* ./compiling//compiling_icode.nit:842 */
12240 REGB1 = TAG_Int(7);
12241 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12242 if (!once_value_385) {
12243 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
12244 REGB1 = TAG_Int(32);
12245 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12246 once_value_385 = fra.me.REG[7];
12247 register_static_object(&once_value_385);
12248 } else fra.me.REG[7] = once_value_385;
12249 fra.me.REG[7] = fra.me.REG[7];
12250 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12251 REGB1 = TAG_Int(1);
12252 /* ./../lib/standard//collection//array.nit:243 */
12253 fra.me.REG[7] = fra.me.REG[4];
12254 /* ./../lib/standard//collection//array.nit:245 */
12255 REGB2 = TAG_Int(0);
12256 /* ./../lib/standard//kernel.nit:213 */
12257 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12258 /* ./../lib/standard//collection//array.nit:245 */
12259 if (UNTAG_Bool(REGB2)) {
12260 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12261 if (UNTAG_Bool(REGB2)) {
12262 } else {
12263 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12264 }
12265 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12266 /* ./../lib/standard//kernel.nit:212 */
12267 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12268 } else {
12269 /* ./../lib/standard//collection//array.nit:245 */
12270 REGB0 = TAG_Bool(false);
12271 REGB2 = REGB0;
12272 }
12273 if (UNTAG_Bool(REGB2)) {
12274 } else {
12275 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12276 }
12277 /* ./../lib/standard//collection//array.nit:246 */
12278 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12279 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12280 if (UNTAG_Bool(REGB2)) {
12281 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12282 }
12283 /* ./../lib/standard//collection//array.nit:654 */
12284 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12285 /* ./../lib/standard//collection//array.nit:246 */
12286 goto label386;
12287 label386: while(0);
12288 /* ./compiling//compiling_icode.nit:842 */
12289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12290 if (!once_value_387) {
12291 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
12292 REGB1 = TAG_Int(26);
12293 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12294 once_value_387 = fra.me.REG[7];
12295 register_static_object(&once_value_387);
12296 } else fra.me.REG[7] = once_value_387;
12297 fra.me.REG[7] = fra.me.REG[7];
12298 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12299 REGB1 = TAG_Int(0);
12300 /* ./../lib/standard//collection//array.nit:243 */
12301 fra.me.REG[7] = fra.me.REG[4];
12302 /* ./../lib/standard//collection//array.nit:245 */
12303 REGB2 = TAG_Int(0);
12304 /* ./../lib/standard//kernel.nit:213 */
12305 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12306 /* ./../lib/standard//collection//array.nit:245 */
12307 if (UNTAG_Bool(REGB2)) {
12308 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12309 if (UNTAG_Bool(REGB2)) {
12310 } else {
12311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12312 }
12313 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12314 /* ./../lib/standard//kernel.nit:212 */
12315 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12316 } else {
12317 /* ./../lib/standard//collection//array.nit:245 */
12318 REGB0 = TAG_Bool(false);
12319 REGB2 = REGB0;
12320 }
12321 if (UNTAG_Bool(REGB2)) {
12322 } else {
12323 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12324 }
12325 /* ./../lib/standard//collection//array.nit:246 */
12326 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12327 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12328 if (UNTAG_Bool(REGB2)) {
12329 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12330 }
12331 /* ./../lib/standard//collection//array.nit:654 */
12332 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12333 /* ./../lib/standard//collection//array.nit:246 */
12334 goto label388;
12335 label388: while(0);
12336 /* ./compiling//compiling_icode.nit:842 */
12337 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12338 if (!once_value_389) {
12339 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
12340 REGB1 = TAG_Int(18);
12341 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12342 once_value_389 = fra.me.REG[7];
12343 register_static_object(&once_value_389);
12344 } else fra.me.REG[7] = once_value_389;
12345 fra.me.REG[7] = fra.me.REG[7];
12346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12347 REGB1 = TAG_Int(2);
12348 /* ./../lib/standard//collection//array.nit:243 */
12349 fra.me.REG[7] = fra.me.REG[4];
12350 /* ./../lib/standard//collection//array.nit:245 */
12351 REGB2 = TAG_Int(0);
12352 /* ./../lib/standard//kernel.nit:213 */
12353 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12354 /* ./../lib/standard//collection//array.nit:245 */
12355 if (UNTAG_Bool(REGB2)) {
12356 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12357 if (UNTAG_Bool(REGB2)) {
12358 } else {
12359 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12360 }
12361 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
12362 /* ./../lib/standard//kernel.nit:212 */
12363 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12364 } else {
12365 /* ./../lib/standard//collection//array.nit:245 */
12366 REGB0 = TAG_Bool(false);
12367 REGB2 = REGB0;
12368 }
12369 if (UNTAG_Bool(REGB2)) {
12370 } else {
12371 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12372 }
12373 /* ./../lib/standard//collection//array.nit:246 */
12374 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[7]);
12375 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12376 if (UNTAG_Bool(REGB2)) {
12377 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12378 }
12379 /* ./../lib/standard//collection//array.nit:654 */
12380 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12381 /* ./../lib/standard//collection//array.nit:246 */
12382 goto label390;
12383 label390: while(0);
12384 /* ./compiling//compiling_icode.nit:842 */
12385 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12386 if (!once_value_391) {
12387 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
12388 REGB1 = TAG_Int(16);
12389 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
12390 once_value_391 = fra.me.REG[7];
12391 register_static_object(&once_value_391);
12392 } else fra.me.REG[7] = once_value_391;
12393 fra.me.REG[7] = fra.me.REG[7];
12394 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12395 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12396 fra.me.REG[5] = fra.me.REG[6];
12397 }
12398 }
12399 }
12400 }
12401 } else {
12402 /* ./compiling//compiling_icode.nit:844 */
12403 if (!once_value_392) {
12404 if (!once_value_393) {
12405 fra.me.REG[6] = BOX_NativeString("NativeString");
12406 REGB1 = TAG_Int(12);
12407 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12408 once_value_393 = fra.me.REG[6];
12409 register_static_object(&once_value_393);
12410 } else fra.me.REG[6] = once_value_393;
12411 fra.me.REG[6] = fra.me.REG[6];
12412 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12413 once_value_392 = fra.me.REG[6];
12414 register_static_object(&once_value_392);
12415 } else fra.me.REG[6] = once_value_392;
12416 fra.me.REG[6] = fra.me.REG[6];
12417 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12418 if (UNTAG_Bool(REGB1)) {
12419 } else {
12420 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12421 REGB1 = REGB2;
12422 }
12423 if (UNTAG_Bool(REGB1)) {
12424 /* ./compiling//compiling_icode.nit:845 */
12425 if (!once_value_394) {
12426 if (!once_value_395) {
12427 fra.me.REG[6] = BOX_NativeString("object_id");
12428 REGB1 = TAG_Int(9);
12429 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12430 once_value_395 = fra.me.REG[6];
12431 register_static_object(&once_value_395);
12432 } else fra.me.REG[6] = once_value_395;
12433 fra.me.REG[6] = fra.me.REG[6];
12434 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12435 once_value_394 = fra.me.REG[6];
12436 register_static_object(&once_value_394);
12437 } else fra.me.REG[6] = once_value_394;
12438 fra.me.REG[6] = fra.me.REG[6];
12439 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12440 if (UNTAG_Bool(REGB1)) {
12441 } else {
12442 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12443 REGB1 = REGB2;
12444 }
12445 if (UNTAG_Bool(REGB1)) {
12446 /* ./compiling//compiling_icode.nit:846 */
12447 REGB1 = TAG_Int(3);
12448 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12449 if (!once_value_396) {
12450 fra.me.REG[2] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
12451 REGB1 = TAG_Int(27);
12452 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12453 once_value_396 = fra.me.REG[2];
12454 register_static_object(&once_value_396);
12455 } else fra.me.REG[2] = once_value_396;
12456 fra.me.REG[2] = fra.me.REG[2];
12457 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12458 REGB1 = TAG_Int(0);
12459 /* ./../lib/standard//collection//array.nit:243 */
12460 fra.me.REG[2] = fra.me.REG[4];
12461 /* ./../lib/standard//collection//array.nit:245 */
12462 REGB2 = TAG_Int(0);
12463 /* ./../lib/standard//kernel.nit:213 */
12464 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12465 /* ./../lib/standard//collection//array.nit:245 */
12466 if (UNTAG_Bool(REGB2)) {
12467 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12468 if (UNTAG_Bool(REGB2)) {
12469 } else {
12470 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12471 }
12472 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12473 /* ./../lib/standard//kernel.nit:212 */
12474 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12475 } else {
12476 /* ./../lib/standard//collection//array.nit:245 */
12477 REGB0 = TAG_Bool(false);
12478 REGB2 = REGB0;
12479 }
12480 if (UNTAG_Bool(REGB2)) {
12481 } else {
12482 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12483 }
12484 /* ./../lib/standard//collection//array.nit:246 */
12485 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12486 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12487 if (UNTAG_Bool(REGB2)) {
12488 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12489 }
12490 /* ./../lib/standard//collection//array.nit:654 */
12491 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12492 /* ./../lib/standard//collection//array.nit:246 */
12493 goto label397;
12494 label397: while(0);
12495 /* ./compiling//compiling_icode.nit:846 */
12496 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12497 if (!once_value_398) {
12498 fra.me.REG[2] = BOX_NativeString("))");
12499 REGB1 = TAG_Int(2);
12500 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12501 once_value_398 = fra.me.REG[2];
12502 register_static_object(&once_value_398);
12503 } else fra.me.REG[2] = once_value_398;
12504 fra.me.REG[2] = fra.me.REG[2];
12505 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12506 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12507 fra.me.REG[5] = fra.me.REG[6];
12508 } else {
12509 /* ./compiling//compiling_icode.nit:847 */
12510 if (!once_value_399) {
12511 if (!once_value_400) {
12512 fra.me.REG[6] = BOX_NativeString("atoi");
12513 REGB1 = TAG_Int(4);
12514 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12515 once_value_400 = fra.me.REG[6];
12516 register_static_object(&once_value_400);
12517 } else fra.me.REG[6] = once_value_400;
12518 fra.me.REG[6] = fra.me.REG[6];
12519 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12520 once_value_399 = fra.me.REG[6];
12521 register_static_object(&once_value_399);
12522 } else fra.me.REG[6] = once_value_399;
12523 fra.me.REG[6] = fra.me.REG[6];
12524 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12525 if (UNTAG_Bool(REGB1)) {
12526 } else {
12527 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12528 REGB1 = REGB2;
12529 }
12530 if (UNTAG_Bool(REGB1)) {
12531 /* ./compiling//compiling_icode.nit:848 */
12532 REGB1 = TAG_Int(3);
12533 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12534 if (!once_value_401) {
12535 fra.me.REG[2] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
12536 REGB1 = TAG_Int(32);
12537 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12538 once_value_401 = fra.me.REG[2];
12539 register_static_object(&once_value_401);
12540 } else fra.me.REG[2] = once_value_401;
12541 fra.me.REG[2] = fra.me.REG[2];
12542 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12543 REGB1 = TAG_Int(0);
12544 /* ./../lib/standard//collection//array.nit:243 */
12545 fra.me.REG[2] = fra.me.REG[4];
12546 /* ./../lib/standard//collection//array.nit:245 */
12547 REGB2 = TAG_Int(0);
12548 /* ./../lib/standard//kernel.nit:213 */
12549 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12550 /* ./../lib/standard//collection//array.nit:245 */
12551 if (UNTAG_Bool(REGB2)) {
12552 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12553 if (UNTAG_Bool(REGB2)) {
12554 } else {
12555 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12556 }
12557 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12558 /* ./../lib/standard//kernel.nit:212 */
12559 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12560 } else {
12561 /* ./../lib/standard//collection//array.nit:245 */
12562 REGB0 = TAG_Bool(false);
12563 REGB2 = REGB0;
12564 }
12565 if (UNTAG_Bool(REGB2)) {
12566 } else {
12567 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12568 }
12569 /* ./../lib/standard//collection//array.nit:246 */
12570 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12571 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12572 if (UNTAG_Bool(REGB2)) {
12573 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12574 }
12575 /* ./../lib/standard//collection//array.nit:654 */
12576 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12577 /* ./../lib/standard//collection//array.nit:246 */
12578 goto label402;
12579 label402: while(0);
12580 /* ./compiling//compiling_icode.nit:848 */
12581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12582 if (!once_value_403) {
12583 fra.me.REG[2] = BOX_NativeString(")))");
12584 REGB1 = TAG_Int(3);
12585 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12586 once_value_403 = fra.me.REG[2];
12587 register_static_object(&once_value_403);
12588 } else fra.me.REG[2] = once_value_403;
12589 fra.me.REG[2] = fra.me.REG[2];
12590 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12591 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12592 fra.me.REG[5] = fra.me.REG[6];
12593 } else {
12594 /* ./compiling//compiling_icode.nit:849 */
12595 if (!once_value_404) {
12596 if (!once_value_405) {
12597 fra.me.REG[6] = BOX_NativeString("[]");
12598 REGB1 = TAG_Int(2);
12599 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12600 once_value_405 = fra.me.REG[6];
12601 register_static_object(&once_value_405);
12602 } else fra.me.REG[6] = once_value_405;
12603 fra.me.REG[6] = fra.me.REG[6];
12604 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12605 once_value_404 = fra.me.REG[6];
12606 register_static_object(&once_value_404);
12607 } else fra.me.REG[6] = once_value_404;
12608 fra.me.REG[6] = fra.me.REG[6];
12609 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12610 if (UNTAG_Bool(REGB1)) {
12611 } else {
12612 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12613 REGB1 = REGB2;
12614 }
12615 if (UNTAG_Bool(REGB1)) {
12616 /* ./compiling//compiling_icode.nit:850 */
12617 REGB1 = TAG_Int(5);
12618 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12619 if (!once_value_406) {
12620 fra.me.REG[2] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
12621 REGB1 = TAG_Int(28);
12622 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12623 once_value_406 = fra.me.REG[2];
12624 register_static_object(&once_value_406);
12625 } else fra.me.REG[2] = once_value_406;
12626 fra.me.REG[2] = fra.me.REG[2];
12627 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12628 REGB1 = TAG_Int(0);
12629 /* ./../lib/standard//collection//array.nit:243 */
12630 fra.me.REG[2] = fra.me.REG[4];
12631 /* ./../lib/standard//collection//array.nit:245 */
12632 REGB2 = TAG_Int(0);
12633 /* ./../lib/standard//kernel.nit:213 */
12634 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12635 /* ./../lib/standard//collection//array.nit:245 */
12636 if (UNTAG_Bool(REGB2)) {
12637 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12638 if (UNTAG_Bool(REGB2)) {
12639 } else {
12640 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12641 }
12642 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12643 /* ./../lib/standard//kernel.nit:212 */
12644 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12645 } else {
12646 /* ./../lib/standard//collection//array.nit:245 */
12647 REGB0 = TAG_Bool(false);
12648 REGB2 = REGB0;
12649 }
12650 if (UNTAG_Bool(REGB2)) {
12651 } else {
12652 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12653 }
12654 /* ./../lib/standard//collection//array.nit:246 */
12655 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12656 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12657 if (UNTAG_Bool(REGB2)) {
12658 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12659 }
12660 /* ./../lib/standard//collection//array.nit:654 */
12661 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12662 /* ./../lib/standard//collection//array.nit:246 */
12663 goto label407;
12664 label407: while(0);
12665 /* ./compiling//compiling_icode.nit:850 */
12666 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12667 if (!once_value_408) {
12668 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
12669 REGB1 = TAG_Int(12);
12670 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12671 once_value_408 = fra.me.REG[2];
12672 register_static_object(&once_value_408);
12673 } else fra.me.REG[2] = once_value_408;
12674 fra.me.REG[2] = fra.me.REG[2];
12675 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12676 REGB1 = TAG_Int(1);
12677 /* ./../lib/standard//collection//array.nit:243 */
12678 fra.me.REG[2] = fra.me.REG[4];
12679 /* ./../lib/standard//collection//array.nit:245 */
12680 REGB2 = TAG_Int(0);
12681 /* ./../lib/standard//kernel.nit:213 */
12682 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12683 /* ./../lib/standard//collection//array.nit:245 */
12684 if (UNTAG_Bool(REGB2)) {
12685 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12686 if (UNTAG_Bool(REGB2)) {
12687 } else {
12688 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12689 }
12690 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12691 /* ./../lib/standard//kernel.nit:212 */
12692 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12693 } else {
12694 /* ./../lib/standard//collection//array.nit:245 */
12695 REGB0 = TAG_Bool(false);
12696 REGB2 = REGB0;
12697 }
12698 if (UNTAG_Bool(REGB2)) {
12699 } else {
12700 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12701 }
12702 /* ./../lib/standard//collection//array.nit:246 */
12703 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12704 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12705 if (UNTAG_Bool(REGB2)) {
12706 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12707 }
12708 /* ./../lib/standard//collection//array.nit:654 */
12709 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12710 /* ./../lib/standard//collection//array.nit:246 */
12711 goto label409;
12712 label409: while(0);
12713 /* ./compiling//compiling_icode.nit:850 */
12714 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12715 if (!once_value_410) {
12716 fra.me.REG[2] = BOX_NativeString(")])");
12717 REGB1 = TAG_Int(3);
12718 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12719 once_value_410 = fra.me.REG[2];
12720 register_static_object(&once_value_410);
12721 } else fra.me.REG[2] = once_value_410;
12722 fra.me.REG[2] = fra.me.REG[2];
12723 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12724 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12725 fra.me.REG[5] = fra.me.REG[6];
12726 } else {
12727 /* ./compiling//compiling_icode.nit:851 */
12728 if (!once_value_411) {
12729 if (!once_value_412) {
12730 fra.me.REG[6] = BOX_NativeString("[]=");
12731 REGB1 = TAG_Int(3);
12732 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12733 once_value_412 = fra.me.REG[6];
12734 register_static_object(&once_value_412);
12735 } else fra.me.REG[6] = once_value_412;
12736 fra.me.REG[6] = fra.me.REG[6];
12737 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12738 once_value_411 = fra.me.REG[6];
12739 register_static_object(&once_value_411);
12740 } else fra.me.REG[6] = once_value_411;
12741 fra.me.REG[6] = fra.me.REG[6];
12742 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12743 if (UNTAG_Bool(REGB1)) {
12744 } else {
12745 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12746 REGB1 = REGB2;
12747 }
12748 if (UNTAG_Bool(REGB1)) {
12749 /* ./compiling//compiling_icode.nit:852 */
12750 REGB1 = TAG_Int(7);
12751 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12752 if (!once_value_413) {
12753 fra.me.REG[2] = BOX_NativeString("UNBOX_NativeString(");
12754 REGB1 = TAG_Int(19);
12755 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12756 once_value_413 = fra.me.REG[2];
12757 register_static_object(&once_value_413);
12758 } else fra.me.REG[2] = once_value_413;
12759 fra.me.REG[2] = fra.me.REG[2];
12760 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12761 REGB1 = TAG_Int(0);
12762 /* ./../lib/standard//collection//array.nit:243 */
12763 fra.me.REG[2] = fra.me.REG[4];
12764 /* ./../lib/standard//collection//array.nit:245 */
12765 REGB2 = TAG_Int(0);
12766 /* ./../lib/standard//kernel.nit:213 */
12767 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12768 /* ./../lib/standard//collection//array.nit:245 */
12769 if (UNTAG_Bool(REGB2)) {
12770 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12771 if (UNTAG_Bool(REGB2)) {
12772 } else {
12773 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12774 }
12775 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12776 /* ./../lib/standard//kernel.nit:212 */
12777 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12778 } else {
12779 /* ./../lib/standard//collection//array.nit:245 */
12780 REGB0 = TAG_Bool(false);
12781 REGB2 = REGB0;
12782 }
12783 if (UNTAG_Bool(REGB2)) {
12784 } else {
12785 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12786 }
12787 /* ./../lib/standard//collection//array.nit:246 */
12788 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12789 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12790 if (UNTAG_Bool(REGB2)) {
12791 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12792 }
12793 /* ./../lib/standard//collection//array.nit:654 */
12794 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12795 /* ./../lib/standard//collection//array.nit:246 */
12796 goto label414;
12797 label414: while(0);
12798 /* ./compiling//compiling_icode.nit:852 */
12799 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12800 if (!once_value_415) {
12801 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
12802 REGB1 = TAG_Int(12);
12803 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12804 once_value_415 = fra.me.REG[2];
12805 register_static_object(&once_value_415);
12806 } else fra.me.REG[2] = once_value_415;
12807 fra.me.REG[2] = fra.me.REG[2];
12808 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12809 REGB1 = TAG_Int(1);
12810 /* ./../lib/standard//collection//array.nit:243 */
12811 fra.me.REG[2] = fra.me.REG[4];
12812 /* ./../lib/standard//collection//array.nit:245 */
12813 REGB2 = TAG_Int(0);
12814 /* ./../lib/standard//kernel.nit:213 */
12815 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12816 /* ./../lib/standard//collection//array.nit:245 */
12817 if (UNTAG_Bool(REGB2)) {
12818 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12819 if (UNTAG_Bool(REGB2)) {
12820 } else {
12821 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12822 }
12823 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12824 /* ./../lib/standard//kernel.nit:212 */
12825 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12826 } else {
12827 /* ./../lib/standard//collection//array.nit:245 */
12828 REGB0 = TAG_Bool(false);
12829 REGB2 = REGB0;
12830 }
12831 if (UNTAG_Bool(REGB2)) {
12832 } else {
12833 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12834 }
12835 /* ./../lib/standard//collection//array.nit:246 */
12836 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12837 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12838 if (UNTAG_Bool(REGB2)) {
12839 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12840 }
12841 /* ./../lib/standard//collection//array.nit:654 */
12842 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12843 /* ./../lib/standard//collection//array.nit:246 */
12844 goto label416;
12845 label416: while(0);
12846 /* ./compiling//compiling_icode.nit:852 */
12847 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12848 if (!once_value_417) {
12849 fra.me.REG[2] = BOX_NativeString(")]=UNTAG_Char(");
12850 REGB1 = TAG_Int(14);
12851 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12852 once_value_417 = fra.me.REG[2];
12853 register_static_object(&once_value_417);
12854 } else fra.me.REG[2] = once_value_417;
12855 fra.me.REG[2] = fra.me.REG[2];
12856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12857 REGB1 = TAG_Int(2);
12858 /* ./../lib/standard//collection//array.nit:243 */
12859 fra.me.REG[2] = fra.me.REG[4];
12860 /* ./../lib/standard//collection//array.nit:245 */
12861 REGB2 = TAG_Int(0);
12862 /* ./../lib/standard//kernel.nit:213 */
12863 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12864 /* ./../lib/standard//collection//array.nit:245 */
12865 if (UNTAG_Bool(REGB2)) {
12866 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12867 if (UNTAG_Bool(REGB2)) {
12868 } else {
12869 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12870 }
12871 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12872 /* ./../lib/standard//kernel.nit:212 */
12873 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12874 } else {
12875 /* ./../lib/standard//collection//array.nit:245 */
12876 REGB0 = TAG_Bool(false);
12877 REGB2 = REGB0;
12878 }
12879 if (UNTAG_Bool(REGB2)) {
12880 } else {
12881 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12882 }
12883 /* ./../lib/standard//collection//array.nit:246 */
12884 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12885 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12886 if (UNTAG_Bool(REGB2)) {
12887 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12888 }
12889 /* ./../lib/standard//collection//array.nit:654 */
12890 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12891 /* ./../lib/standard//collection//array.nit:246 */
12892 goto label418;
12893 label418: while(0);
12894 /* ./compiling//compiling_icode.nit:852 */
12895 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12896 if (!once_value_419) {
12897 fra.me.REG[2] = BOX_NativeString(");");
12898 REGB1 = TAG_Int(2);
12899 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12900 once_value_419 = fra.me.REG[2];
12901 register_static_object(&once_value_419);
12902 } else fra.me.REG[2] = once_value_419;
12903 fra.me.REG[2] = fra.me.REG[2];
12904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12905 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12906 fra.me.REG[5] = fra.me.REG[6];
12907 } else {
12908 /* ./compiling//compiling_icode.nit:853 */
12909 if (!once_value_420) {
12910 if (!once_value_421) {
12911 fra.me.REG[6] = BOX_NativeString("copy_to");
12912 REGB1 = TAG_Int(7);
12913 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
12914 once_value_421 = fra.me.REG[6];
12915 register_static_object(&once_value_421);
12916 } else fra.me.REG[6] = once_value_421;
12917 fra.me.REG[6] = fra.me.REG[6];
12918 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12919 once_value_420 = fra.me.REG[6];
12920 register_static_object(&once_value_420);
12921 } else fra.me.REG[6] = once_value_420;
12922 fra.me.REG[6] = fra.me.REG[6];
12923 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12924 if (UNTAG_Bool(REGB1)) {
12925 } else {
12926 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12927 REGB1 = REGB2;
12928 }
12929 if (UNTAG_Bool(REGB1)) {
12930 /* ./compiling//compiling_icode.nit:854 */
12931 REGB1 = TAG_Int(11);
12932 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
12933 if (!once_value_422) {
12934 fra.me.REG[2] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
12935 REGB1 = TAG_Int(32);
12936 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12937 once_value_422 = fra.me.REG[2];
12938 register_static_object(&once_value_422);
12939 } else fra.me.REG[2] = once_value_422;
12940 fra.me.REG[2] = fra.me.REG[2];
12941 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12942 REGB1 = TAG_Int(1);
12943 /* ./../lib/standard//collection//array.nit:243 */
12944 fra.me.REG[2] = fra.me.REG[4];
12945 /* ./../lib/standard//collection//array.nit:245 */
12946 REGB2 = TAG_Int(0);
12947 /* ./../lib/standard//kernel.nit:213 */
12948 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12949 /* ./../lib/standard//collection//array.nit:245 */
12950 if (UNTAG_Bool(REGB2)) {
12951 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
12952 if (UNTAG_Bool(REGB2)) {
12953 } else {
12954 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
12955 }
12956 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
12957 /* ./../lib/standard//kernel.nit:212 */
12958 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12959 } else {
12960 /* ./../lib/standard//collection//array.nit:245 */
12961 REGB0 = TAG_Bool(false);
12962 REGB2 = REGB0;
12963 }
12964 if (UNTAG_Bool(REGB2)) {
12965 } else {
12966 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
12967 }
12968 /* ./../lib/standard//collection//array.nit:246 */
12969 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
12970 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12971 if (UNTAG_Bool(REGB2)) {
12972 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
12973 }
12974 /* ./../lib/standard//collection//array.nit:654 */
12975 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
12976 /* ./../lib/standard//collection//array.nit:246 */
12977 goto label423;
12978 label423: while(0);
12979 /* ./compiling//compiling_icode.nit:854 */
12980 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12981 if (!once_value_424) {
12982 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
12983 REGB1 = TAG_Int(12);
12984 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
12985 once_value_424 = fra.me.REG[2];
12986 register_static_object(&once_value_424);
12987 } else fra.me.REG[2] = once_value_424;
12988 fra.me.REG[2] = fra.me.REG[2];
12989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
12990 REGB1 = TAG_Int(4);
12991 /* ./../lib/standard//collection//array.nit:243 */
12992 fra.me.REG[2] = fra.me.REG[4];
12993 /* ./../lib/standard//collection//array.nit:245 */
12994 REGB2 = TAG_Int(0);
12995 /* ./../lib/standard//kernel.nit:213 */
12996 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12997 /* ./../lib/standard//collection//array.nit:245 */
12998 if (UNTAG_Bool(REGB2)) {
12999 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13000 if (UNTAG_Bool(REGB2)) {
13001 } else {
13002 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13003 }
13004 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13005 /* ./../lib/standard//kernel.nit:212 */
13006 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13007 } else {
13008 /* ./../lib/standard//collection//array.nit:245 */
13009 REGB0 = TAG_Bool(false);
13010 REGB2 = REGB0;
13011 }
13012 if (UNTAG_Bool(REGB2)) {
13013 } else {
13014 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13015 }
13016 /* ./../lib/standard//collection//array.nit:246 */
13017 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13018 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13019 if (UNTAG_Bool(REGB2)) {
13020 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13021 }
13022 /* ./../lib/standard//collection//array.nit:654 */
13023 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13024 /* ./../lib/standard//collection//array.nit:246 */
13025 goto label425;
13026 label425: while(0);
13027 /* ./compiling//compiling_icode.nit:854 */
13028 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13029 if (!once_value_426) {
13030 fra.me.REG[2] = BOX_NativeString("), UNBOX_NativeString(");
13031 REGB1 = TAG_Int(22);
13032 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13033 once_value_426 = fra.me.REG[2];
13034 register_static_object(&once_value_426);
13035 } else fra.me.REG[2] = once_value_426;
13036 fra.me.REG[2] = fra.me.REG[2];
13037 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13038 REGB1 = TAG_Int(0);
13039 /* ./../lib/standard//collection//array.nit:243 */
13040 fra.me.REG[2] = fra.me.REG[4];
13041 /* ./../lib/standard//collection//array.nit:245 */
13042 REGB2 = TAG_Int(0);
13043 /* ./../lib/standard//kernel.nit:213 */
13044 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13045 /* ./../lib/standard//collection//array.nit:245 */
13046 if (UNTAG_Bool(REGB2)) {
13047 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13048 if (UNTAG_Bool(REGB2)) {
13049 } else {
13050 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13051 }
13052 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13053 /* ./../lib/standard//kernel.nit:212 */
13054 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13055 } else {
13056 /* ./../lib/standard//collection//array.nit:245 */
13057 REGB0 = TAG_Bool(false);
13058 REGB2 = REGB0;
13059 }
13060 if (UNTAG_Bool(REGB2)) {
13061 } else {
13062 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13063 }
13064 /* ./../lib/standard//collection//array.nit:246 */
13065 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13066 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13067 if (UNTAG_Bool(REGB2)) {
13068 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13069 }
13070 /* ./../lib/standard//collection//array.nit:654 */
13071 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13072 /* ./../lib/standard//collection//array.nit:246 */
13073 goto label427;
13074 label427: while(0);
13075 /* ./compiling//compiling_icode.nit:854 */
13076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13077 if (!once_value_428) {
13078 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
13079 REGB1 = TAG_Int(12);
13080 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13081 once_value_428 = fra.me.REG[2];
13082 register_static_object(&once_value_428);
13083 } else fra.me.REG[2] = once_value_428;
13084 fra.me.REG[2] = fra.me.REG[2];
13085 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13086 REGB1 = TAG_Int(3);
13087 /* ./../lib/standard//collection//array.nit:243 */
13088 fra.me.REG[2] = fra.me.REG[4];
13089 /* ./../lib/standard//collection//array.nit:245 */
13090 REGB2 = TAG_Int(0);
13091 /* ./../lib/standard//kernel.nit:213 */
13092 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13093 /* ./../lib/standard//collection//array.nit:245 */
13094 if (UNTAG_Bool(REGB2)) {
13095 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13096 if (UNTAG_Bool(REGB2)) {
13097 } else {
13098 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13099 }
13100 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13101 /* ./../lib/standard//kernel.nit:212 */
13102 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13103 } else {
13104 /* ./../lib/standard//collection//array.nit:245 */
13105 REGB0 = TAG_Bool(false);
13106 REGB2 = REGB0;
13107 }
13108 if (UNTAG_Bool(REGB2)) {
13109 } else {
13110 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13111 }
13112 /* ./../lib/standard//collection//array.nit:246 */
13113 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13114 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13115 if (UNTAG_Bool(REGB2)) {
13116 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13117 }
13118 /* ./../lib/standard//collection//array.nit:654 */
13119 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13120 /* ./../lib/standard//collection//array.nit:246 */
13121 goto label429;
13122 label429: while(0);
13123 /* ./compiling//compiling_icode.nit:854 */
13124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13125 if (!once_value_430) {
13126 fra.me.REG[2] = BOX_NativeString("), UNTAG_Int(");
13127 REGB1 = TAG_Int(13);
13128 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13129 once_value_430 = fra.me.REG[2];
13130 register_static_object(&once_value_430);
13131 } else fra.me.REG[2] = once_value_430;
13132 fra.me.REG[2] = fra.me.REG[2];
13133 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13134 REGB1 = TAG_Int(2);
13135 /* ./../lib/standard//collection//array.nit:243 */
13136 fra.me.REG[2] = fra.me.REG[4];
13137 /* ./../lib/standard//collection//array.nit:245 */
13138 REGB2 = TAG_Int(0);
13139 /* ./../lib/standard//kernel.nit:213 */
13140 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13141 /* ./../lib/standard//collection//array.nit:245 */
13142 if (UNTAG_Bool(REGB2)) {
13143 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13144 if (UNTAG_Bool(REGB2)) {
13145 } else {
13146 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13147 }
13148 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13149 /* ./../lib/standard//kernel.nit:212 */
13150 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13151 } else {
13152 /* ./../lib/standard//collection//array.nit:245 */
13153 REGB0 = TAG_Bool(false);
13154 REGB2 = REGB0;
13155 }
13156 if (UNTAG_Bool(REGB2)) {
13157 } else {
13158 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13159 }
13160 /* ./../lib/standard//collection//array.nit:246 */
13161 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13162 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13163 if (UNTAG_Bool(REGB2)) {
13164 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13165 }
13166 /* ./../lib/standard//collection//array.nit:654 */
13167 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13168 /* ./../lib/standard//collection//array.nit:246 */
13169 goto label431;
13170 label431: while(0);
13171 /* ./compiling//compiling_icode.nit:854 */
13172 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13173 if (!once_value_432) {
13174 fra.me.REG[2] = BOX_NativeString("));");
13175 REGB1 = TAG_Int(3);
13176 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13177 once_value_432 = fra.me.REG[2];
13178 register_static_object(&once_value_432);
13179 } else fra.me.REG[2] = once_value_432;
13180 fra.me.REG[2] = fra.me.REG[2];
13181 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13182 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13183 fra.me.REG[5] = fra.me.REG[6];
13184 }
13185 }
13186 }
13187 }
13188 }
13189 } else {
13190 /* ./compiling//compiling_icode.nit:856 */
13191 if (!once_value_433) {
13192 if (!once_value_434) {
13193 fra.me.REG[6] = BOX_NativeString("object_id");
13194 REGB1 = TAG_Int(9);
13195 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13196 once_value_434 = fra.me.REG[6];
13197 register_static_object(&once_value_434);
13198 } else fra.me.REG[6] = once_value_434;
13199 fra.me.REG[6] = fra.me.REG[6];
13200 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13201 once_value_433 = fra.me.REG[6];
13202 register_static_object(&once_value_433);
13203 } else fra.me.REG[6] = once_value_433;
13204 fra.me.REG[6] = fra.me.REG[6];
13205 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13206 if (UNTAG_Bool(REGB1)) {
13207 } else {
13208 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13209 REGB1 = REGB2;
13210 }
13211 if (UNTAG_Bool(REGB1)) {
13212 /* ./compiling//compiling_icode.nit:857 */
13213 REGB1 = TAG_Int(3);
13214 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13215 if (!once_value_435) {
13216 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
13217 REGB1 = TAG_Int(24);
13218 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13219 once_value_435 = fra.me.REG[2];
13220 register_static_object(&once_value_435);
13221 } else fra.me.REG[2] = once_value_435;
13222 fra.me.REG[2] = fra.me.REG[2];
13223 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13224 REGB1 = TAG_Int(0);
13225 /* ./../lib/standard//collection//array.nit:243 */
13226 fra.me.REG[2] = fra.me.REG[4];
13227 /* ./../lib/standard//collection//array.nit:245 */
13228 REGB2 = TAG_Int(0);
13229 /* ./../lib/standard//kernel.nit:213 */
13230 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13231 /* ./../lib/standard//collection//array.nit:245 */
13232 if (UNTAG_Bool(REGB2)) {
13233 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13234 if (UNTAG_Bool(REGB2)) {
13235 } else {
13236 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13237 }
13238 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13239 /* ./../lib/standard//kernel.nit:212 */
13240 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13241 } else {
13242 /* ./../lib/standard//collection//array.nit:245 */
13243 REGB0 = TAG_Bool(false);
13244 REGB2 = REGB0;
13245 }
13246 if (UNTAG_Bool(REGB2)) {
13247 } else {
13248 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13249 }
13250 /* ./../lib/standard//collection//array.nit:246 */
13251 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13252 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13253 if (UNTAG_Bool(REGB2)) {
13254 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13255 }
13256 /* ./../lib/standard//collection//array.nit:654 */
13257 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13258 /* ./../lib/standard//collection//array.nit:246 */
13259 goto label436;
13260 label436: while(0);
13261 /* ./compiling//compiling_icode.nit:857 */
13262 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13263 if (!once_value_437) {
13264 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
13265 REGB1 = TAG_Int(15);
13266 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13267 once_value_437 = fra.me.REG[2];
13268 register_static_object(&once_value_437);
13269 } else fra.me.REG[2] = once_value_437;
13270 fra.me.REG[2] = fra.me.REG[2];
13271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13272 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13273 fra.me.REG[5] = fra.me.REG[6];
13274 } else {
13275 /* ./compiling//compiling_icode.nit:858 */
13276 if (!once_value_438) {
13277 if (!once_value_439) {
13278 fra.me.REG[6] = BOX_NativeString("sys");
13279 REGB1 = TAG_Int(3);
13280 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13281 once_value_439 = fra.me.REG[6];
13282 register_static_object(&once_value_439);
13283 } else fra.me.REG[6] = once_value_439;
13284 fra.me.REG[6] = fra.me.REG[6];
13285 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13286 once_value_438 = fra.me.REG[6];
13287 register_static_object(&once_value_438);
13288 } else fra.me.REG[6] = once_value_438;
13289 fra.me.REG[6] = fra.me.REG[6];
13290 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13291 if (UNTAG_Bool(REGB1)) {
13292 } else {
13293 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13294 REGB1 = REGB2;
13295 }
13296 if (UNTAG_Bool(REGB1)) {
13297 /* ./compiling//compiling_icode.nit:859 */
13298 if (!once_value_440) {
13299 fra.me.REG[6] = BOX_NativeString("(G_sys)");
13300 REGB1 = TAG_Int(7);
13301 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13302 once_value_440 = fra.me.REG[6];
13303 register_static_object(&once_value_440);
13304 } else fra.me.REG[6] = once_value_440;
13305 fra.me.REG[6] = fra.me.REG[6];
13306 fra.me.REG[5] = fra.me.REG[6];
13307 } else {
13308 /* ./compiling//compiling_icode.nit:860 */
13309 if (!once_value_441) {
13310 if (!once_value_442) {
13311 fra.me.REG[6] = BOX_NativeString("is_same_type");
13312 REGB1 = TAG_Int(12);
13313 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13314 once_value_442 = fra.me.REG[6];
13315 register_static_object(&once_value_442);
13316 } else fra.me.REG[6] = once_value_442;
13317 fra.me.REG[6] = fra.me.REG[6];
13318 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13319 once_value_441 = fra.me.REG[6];
13320 register_static_object(&once_value_441);
13321 } else fra.me.REG[6] = once_value_441;
13322 fra.me.REG[6] = fra.me.REG[6];
13323 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13324 if (UNTAG_Bool(REGB1)) {
13325 } else {
13326 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13327 REGB1 = REGB2;
13328 }
13329 if (UNTAG_Bool(REGB1)) {
13330 /* ./compiling//compiling_icode.nit:861 */
13331 REGB1 = TAG_Int(5);
13332 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13333 if (!once_value_443) {
13334 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
13335 REGB1 = TAG_Int(18);
13336 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13337 once_value_443 = fra.me.REG[2];
13338 register_static_object(&once_value_443);
13339 } else fra.me.REG[2] = once_value_443;
13340 fra.me.REG[2] = fra.me.REG[2];
13341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13342 REGB1 = TAG_Int(0);
13343 /* ./../lib/standard//collection//array.nit:243 */
13344 fra.me.REG[2] = fra.me.REG[4];
13345 /* ./../lib/standard//collection//array.nit:245 */
13346 REGB2 = TAG_Int(0);
13347 /* ./../lib/standard//kernel.nit:213 */
13348 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13349 /* ./../lib/standard//collection//array.nit:245 */
13350 if (UNTAG_Bool(REGB2)) {
13351 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13352 if (UNTAG_Bool(REGB2)) {
13353 } else {
13354 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13355 }
13356 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13357 /* ./../lib/standard//kernel.nit:212 */
13358 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13359 } else {
13360 /* ./../lib/standard//collection//array.nit:245 */
13361 REGB0 = TAG_Bool(false);
13362 REGB2 = REGB0;
13363 }
13364 if (UNTAG_Bool(REGB2)) {
13365 } else {
13366 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13367 }
13368 /* ./../lib/standard//collection//array.nit:246 */
13369 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13370 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13371 if (UNTAG_Bool(REGB2)) {
13372 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13373 }
13374 /* ./../lib/standard//collection//array.nit:654 */
13375 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13376 /* ./../lib/standard//collection//array.nit:246 */
13377 goto label444;
13378 label444: while(0);
13379 /* ./compiling//compiling_icode.nit:861 */
13380 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13381 if (!once_value_445) {
13382 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
13383 REGB1 = TAG_Int(11);
13384 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13385 once_value_445 = fra.me.REG[2];
13386 register_static_object(&once_value_445);
13387 } else fra.me.REG[2] = once_value_445;
13388 fra.me.REG[2] = fra.me.REG[2];
13389 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13390 REGB1 = TAG_Int(1);
13391 /* ./../lib/standard//collection//array.nit:243 */
13392 fra.me.REG[2] = fra.me.REG[4];
13393 /* ./../lib/standard//collection//array.nit:245 */
13394 REGB2 = TAG_Int(0);
13395 /* ./../lib/standard//kernel.nit:213 */
13396 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13397 /* ./../lib/standard//collection//array.nit:245 */
13398 if (UNTAG_Bool(REGB2)) {
13399 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13400 if (UNTAG_Bool(REGB2)) {
13401 } else {
13402 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13403 }
13404 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13405 /* ./../lib/standard//kernel.nit:212 */
13406 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13407 } else {
13408 /* ./../lib/standard//collection//array.nit:245 */
13409 REGB0 = TAG_Bool(false);
13410 REGB2 = REGB0;
13411 }
13412 if (UNTAG_Bool(REGB2)) {
13413 } else {
13414 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13415 }
13416 /* ./../lib/standard//collection//array.nit:246 */
13417 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13418 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13419 if (UNTAG_Bool(REGB2)) {
13420 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13421 }
13422 /* ./../lib/standard//collection//array.nit:654 */
13423 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13424 /* ./../lib/standard//collection//array.nit:246 */
13425 goto label446;
13426 label446: while(0);
13427 /* ./compiling//compiling_icode.nit:861 */
13428 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13429 if (!once_value_447) {
13430 fra.me.REG[2] = BOX_NativeString(")))");
13431 REGB1 = TAG_Int(3);
13432 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13433 once_value_447 = fra.me.REG[2];
13434 register_static_object(&once_value_447);
13435 } else fra.me.REG[2] = once_value_447;
13436 fra.me.REG[2] = fra.me.REG[2];
13437 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13438 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13439 fra.me.REG[5] = fra.me.REG[6];
13440 } else {
13441 /* ./compiling//compiling_icode.nit:862 */
13442 if (!once_value_448) {
13443 if (!once_value_449) {
13444 fra.me.REG[6] = BOX_NativeString("exit");
13445 REGB1 = TAG_Int(4);
13446 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13447 once_value_449 = fra.me.REG[6];
13448 register_static_object(&once_value_449);
13449 } else fra.me.REG[6] = once_value_449;
13450 fra.me.REG[6] = fra.me.REG[6];
13451 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13452 once_value_448 = fra.me.REG[6];
13453 register_static_object(&once_value_448);
13454 } else fra.me.REG[6] = once_value_448;
13455 fra.me.REG[6] = fra.me.REG[6];
13456 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13457 if (UNTAG_Bool(REGB1)) {
13458 } else {
13459 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13460 REGB1 = REGB2;
13461 }
13462 if (UNTAG_Bool(REGB1)) {
13463 /* ./compiling//compiling_icode.nit:863 */
13464 REGB1 = TAG_Int(3);
13465 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13466 if (!once_value_450) {
13467 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
13468 REGB1 = TAG_Int(15);
13469 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13470 once_value_450 = fra.me.REG[2];
13471 register_static_object(&once_value_450);
13472 } else fra.me.REG[2] = once_value_450;
13473 fra.me.REG[2] = fra.me.REG[2];
13474 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13475 REGB1 = TAG_Int(1);
13476 /* ./../lib/standard//collection//array.nit:243 */
13477 fra.me.REG[2] = fra.me.REG[4];
13478 /* ./../lib/standard//collection//array.nit:245 */
13479 REGB2 = TAG_Int(0);
13480 /* ./../lib/standard//kernel.nit:213 */
13481 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13482 /* ./../lib/standard//collection//array.nit:245 */
13483 if (UNTAG_Bool(REGB2)) {
13484 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13485 if (UNTAG_Bool(REGB2)) {
13486 } else {
13487 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13488 }
13489 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13490 /* ./../lib/standard//kernel.nit:212 */
13491 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13492 } else {
13493 /* ./../lib/standard//collection//array.nit:245 */
13494 REGB0 = TAG_Bool(false);
13495 REGB2 = REGB0;
13496 }
13497 if (UNTAG_Bool(REGB2)) {
13498 } else {
13499 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13500 }
13501 /* ./../lib/standard//collection//array.nit:246 */
13502 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13503 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13504 if (UNTAG_Bool(REGB2)) {
13505 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13506 }
13507 /* ./../lib/standard//collection//array.nit:654 */
13508 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13509 /* ./../lib/standard//collection//array.nit:246 */
13510 goto label451;
13511 label451: while(0);
13512 /* ./compiling//compiling_icode.nit:863 */
13513 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13514 if (!once_value_452) {
13515 fra.me.REG[2] = BOX_NativeString("));");
13516 REGB1 = TAG_Int(3);
13517 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13518 once_value_452 = fra.me.REG[2];
13519 register_static_object(&once_value_452);
13520 } else fra.me.REG[2] = once_value_452;
13521 fra.me.REG[2] = fra.me.REG[2];
13522 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13523 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13524 fra.me.REG[5] = fra.me.REG[6];
13525 } else {
13526 /* ./compiling//compiling_icode.nit:864 */
13527 if (!once_value_453) {
13528 if (!once_value_454) {
13529 fra.me.REG[6] = BOX_NativeString("calloc_array");
13530 REGB1 = TAG_Int(12);
13531 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13532 once_value_454 = fra.me.REG[6];
13533 register_static_object(&once_value_454);
13534 } else fra.me.REG[6] = once_value_454;
13535 fra.me.REG[6] = fra.me.REG[6];
13536 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13537 once_value_453 = fra.me.REG[6];
13538 register_static_object(&once_value_453);
13539 } else fra.me.REG[6] = once_value_453;
13540 fra.me.REG[6] = fra.me.REG[6];
13541 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13542 if (UNTAG_Bool(REGB1)) {
13543 } else {
13544 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13545 REGB1 = REGB2;
13546 }
13547 if (UNTAG_Bool(REGB1)) {
13548 /* ./compiling//compiling_icode.nit:865 */
13549 REGB1 = TAG_Int(3);
13550 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13551 if (!once_value_455) {
13552 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
13553 REGB1 = TAG_Int(26);
13554 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13555 once_value_455 = fra.me.REG[2];
13556 register_static_object(&once_value_455);
13557 } else fra.me.REG[2] = once_value_455;
13558 fra.me.REG[2] = fra.me.REG[2];
13559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13560 REGB1 = TAG_Int(1);
13561 /* ./../lib/standard//collection//array.nit:243 */
13562 fra.me.REG[2] = fra.me.REG[4];
13563 /* ./../lib/standard//collection//array.nit:245 */
13564 REGB2 = TAG_Int(0);
13565 /* ./../lib/standard//kernel.nit:213 */
13566 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13567 /* ./../lib/standard//collection//array.nit:245 */
13568 if (UNTAG_Bool(REGB2)) {
13569 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13570 if (UNTAG_Bool(REGB2)) {
13571 } else {
13572 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13573 }
13574 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
13575 /* ./../lib/standard//kernel.nit:212 */
13576 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13577 } else {
13578 /* ./../lib/standard//collection//array.nit:245 */
13579 REGB0 = TAG_Bool(false);
13580 REGB2 = REGB0;
13581 }
13582 if (UNTAG_Bool(REGB2)) {
13583 } else {
13584 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13585 }
13586 /* ./../lib/standard//collection//array.nit:246 */
13587 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
13588 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13589 if (UNTAG_Bool(REGB2)) {
13590 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13591 }
13592 /* ./../lib/standard//collection//array.nit:654 */
13593 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13594 /* ./../lib/standard//collection//array.nit:246 */
13595 goto label456;
13596 label456: while(0);
13597 /* ./compiling//compiling_icode.nit:865 */
13598 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13599 if (!once_value_457) {
13600 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
13601 REGB1 = TAG_Int(17);
13602 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
13603 once_value_457 = fra.me.REG[2];
13604 register_static_object(&once_value_457);
13605 } else fra.me.REG[2] = once_value_457;
13606 fra.me.REG[2] = fra.me.REG[2];
13607 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13608 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13609 fra.me.REG[5] = fra.me.REG[6];
13610 } else {
13611 /* ./compiling//compiling_icode.nit:866 */
13612 if (!once_value_458) {
13613 if (!once_value_459) {
13614 fra.me.REG[6] = BOX_NativeString("calloc_string");
13615 REGB1 = TAG_Int(13);
13616 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13617 once_value_459 = fra.me.REG[6];
13618 register_static_object(&once_value_459);
13619 } else fra.me.REG[6] = once_value_459;
13620 fra.me.REG[6] = fra.me.REG[6];
13621 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13622 once_value_458 = fra.me.REG[6];
13623 register_static_object(&once_value_458);
13624 } else fra.me.REG[6] = once_value_458;
13625 fra.me.REG[6] = fra.me.REG[6];
13626 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13627 if (UNTAG_Bool(REGB1)) {
13628 } else {
13629 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13630 REGB1 = REGB2;
13631 }
13632 if (UNTAG_Bool(REGB1)) {
13633 /* ./compiling//compiling_icode.nit:867 */
13634 REGB1 = TAG_Int(3);
13635 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
13636 if (!once_value_460) {
13637 fra.me.REG[3] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
13638 REGB1 = TAG_Int(45);
13639 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
13640 once_value_460 = fra.me.REG[3];
13641 register_static_object(&once_value_460);
13642 } else fra.me.REG[3] = once_value_460;
13643 fra.me.REG[3] = fra.me.REG[3];
13644 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
13645 REGB1 = TAG_Int(1);
13646 /* ./../lib/standard//collection//array.nit:245 */
13647 REGB2 = TAG_Int(0);
13648 /* ./../lib/standard//kernel.nit:213 */
13649 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13650 /* ./../lib/standard//collection//array.nit:245 */
13651 if (UNTAG_Bool(REGB2)) {
13652 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
13653 if (UNTAG_Bool(REGB2)) {
13654 } else {
13655 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
13656 }
13657 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
13658 /* ./../lib/standard//kernel.nit:212 */
13659 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13660 } else {
13661 /* ./../lib/standard//collection//array.nit:245 */
13662 REGB0 = TAG_Bool(false);
13663 REGB2 = REGB0;
13664 }
13665 if (UNTAG_Bool(REGB2)) {
13666 } else {
13667 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
13668 }
13669 /* ./../lib/standard//collection//array.nit:246 */
13670 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
13671 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13672 if (UNTAG_Bool(REGB2)) {
13673 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
13674 }
13675 /* ./../lib/standard//collection//array.nit:654 */
13676 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
13677 /* ./../lib/standard//collection//array.nit:246 */
13678 goto label461;
13679 label461: while(0);
13680 /* ./compiling//compiling_icode.nit:867 */
13681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
13682 if (!once_value_462) {
13683 fra.me.REG[4] = BOX_NativeString(") * sizeof(char))))");
13684 REGB1 = TAG_Int(19);
13685 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13686 once_value_462 = fra.me.REG[4];
13687 register_static_object(&once_value_462);
13688 } else fra.me.REG[4] = once_value_462;
13689 fra.me.REG[4] = fra.me.REG[4];
13690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
13691 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13692 fra.me.REG[5] = fra.me.REG[6];
13693 }
13694 }
13695 }
13696 }
13697 }
13698 }
13699 }
13700 }
13701 }
13702 }
13703 }
13704 }
13705 /* ./compiling//compiling_icode.nit:869 */
13706 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
13707 if (UNTAG_Bool(REGB1)) {
13708 } else {
13709 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
13710 if (UNTAG_Bool(REGB2)) {
13711 REGB2 = TAG_Bool(false);
13712 REGB1 = REGB2;
13713 } else {
13714 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
13715 REGB1 = REGB2;
13716 }
13717 }
13718 if (UNTAG_Bool(REGB1)) {
13719 /* ./compiling//compiling_icode.nit:870 */
13720 fra.me.REG[6] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13721 /* ./compiling//compiling_icode.nit:871 */
13722 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13723 if (UNTAG_Bool(REGB1)) {
13724 } else {
13725 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13726 if (UNTAG_Bool(REGB2)) {
13727 REGB2 = TAG_Bool(false);
13728 REGB1 = REGB2;
13729 } else {
13730 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
13731 REGB1 = REGB2;
13732 }
13733 }
13734 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
13735 if (UNTAG_Bool(REGB1)) {
13736 REGB1 = TAG_Int(3);
13737 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
13738 if (!once_value_463) {
13739 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
13740 REGB1 = TAG_Int(17);
13741 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
13742 once_value_463 = fra.me.REG[3];
13743 register_static_object(&once_value_463);
13744 } else fra.me.REG[3] = once_value_463;
13745 fra.me.REG[3] = fra.me.REG[3];
13746 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
13747 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13748 if (UNTAG_Bool(REGB1)) {
13749 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 871);
13750 }
13751 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13752 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13753 if (!once_value_464) {
13754 fra.me.REG[6] = BOX_NativeString(": \");");
13755 REGB1 = TAG_Int(5);
13756 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13757 once_value_464 = fra.me.REG[6];
13758 register_static_object(&once_value_464);
13759 } else fra.me.REG[6] = once_value_464;
13760 fra.me.REG[6] = fra.me.REG[6];
13761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13762 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
13763 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13764 }
13765 /* ./compiling//compiling_icode.nit:872 */
13766 REGB1 = TAG_Int(3);
13767 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
13768 if (!once_value_465) {
13769 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
13770 REGB1 = TAG_Int(52);
13771 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13772 once_value_465 = fra.me.REG[6];
13773 register_static_object(&once_value_465);
13774 } else fra.me.REG[6] = once_value_465;
13775 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 fra.me.REG[6] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
13778 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
13779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13780 if (!once_value_466) {
13781 fra.me.REG[6] = BOX_NativeString(".\\n\");");
13782 REGB1 = TAG_Int(6);
13783 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13784 once_value_466 = fra.me.REG[6];
13785 register_static_object(&once_value_466);
13786 } else fra.me.REG[6] = once_value_466;
13787 fra.me.REG[6] = fra.me.REG[6];
13788 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13789 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
13790 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13791 /* ./compiling//compiling_icode.nit:873 */
13792 if (!once_value_467) {
13793 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
13794 REGB1 = TAG_Int(12);
13795 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13796 once_value_467 = fra.me.REG[4];
13797 register_static_object(&once_value_467);
13798 } else fra.me.REG[4] = once_value_467;
13799 fra.me.REG[4] = fra.me.REG[4];
13800 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13801 /* ./compiling//compiling_icode.nit:874 */
13802 if (!once_value_468) {
13803 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
13804 REGB1 = TAG_Int(8);
13805 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
13806 once_value_468 = fra.me.REG[4];
13807 register_static_object(&once_value_468);
13808 } else fra.me.REG[4] = once_value_468;
13809 fra.me.REG[4] = fra.me.REG[4];
13810 fra.me.REG[5] = fra.me.REG[4];
13811 }
13812 /* ./compiling//compiling_icode.nit:876 */
13813 fra.me.REG[4] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
13814 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13815 if (UNTAG_Bool(REGB1)) {
13816 } else {
13817 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13818 if (UNTAG_Bool(REGB2)) {
13819 REGB2 = TAG_Bool(false);
13820 REGB1 = REGB2;
13821 } else {
13822 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
13823 REGB1 = REGB2;
13824 }
13825 }
13826 if (UNTAG_Bool(REGB1)) {
13827 /* ./compiling//compiling_icode.nit:877 */
13828 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
13829 fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
13830 if (!once_value_469) {
13831 fra.me.REG[6] = BOX_NativeString(";\n");
13832 REGB1 = TAG_Int(2);
13833 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
13834 once_value_469 = fra.me.REG[6];
13835 register_static_object(&once_value_469);
13836 } else fra.me.REG[6] = once_value_469;
13837 fra.me.REG[6] = fra.me.REG[6];
13838 CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
13839 } else {
13840 /* ./compiling//compiling_icode.nit:878 */
13841 REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
13842 if (UNTAG_Bool(REGB1)) {
13843 /* ./compiling//compiling_icode.nit:879 */
13844 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13845 /* ./compiling//compiling_icode.nit:880 */
13846 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
13847 }
13848 }
13849 stack_frame_head = fra.me.prev;
13850 return;
13851 }
13852 void compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
13853 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13854 val_t REGB0;
13855 val_t tmp;
13856 static val_t once_value_1; /* Once value */
13857 static val_t once_value_2; /* Once value */
13858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13859 fra.me.file = LOCATE_compiling_icode;
13860 fra.me.line = 886;
13861 fra.me.meth = LOCATE_compiling_icode___IIntValue___compile_to_c;
13862 fra.me.has_broke = 0;
13863 fra.me.REG_size = 3;
13864 fra.me.REG[0] = NIT_NULL;
13865 fra.me.REG[1] = NIT_NULL;
13866 fra.me.REG[2] = NIT_NULL;
13867 fra.me.REG[0] = p0;
13868 fra.me.REG[1] = p1;
13869 /* ./compiling//compiling_icode.nit:888 */
13870 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13871 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13872 /* ./compiling//compiling_icode.nit:889 */
13873 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13874 /* ./compiling//compiling_icode.nit:890 */
13875 if (!once_value_1) {
13876 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
13877 REGB0 = TAG_Int(8);
13878 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13879 once_value_1 = fra.me.REG[2];
13880 register_static_object(&once_value_1);
13881 } else fra.me.REG[2] = once_value_1;
13882 fra.me.REG[2] = fra.me.REG[2];
13883 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13884 fra.me.REG[0] = CALL_icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
13885 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
13886 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13887 if (!once_value_2) {
13888 fra.me.REG[2] = BOX_NativeString(")");
13889 REGB0 = TAG_Int(1);
13890 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13891 once_value_2 = fra.me.REG[2];
13892 register_static_object(&once_value_2);
13893 } else fra.me.REG[2] = once_value_2;
13894 fra.me.REG[2] = fra.me.REG[2];
13895 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
13896 stack_frame_head = fra.me.prev;
13897 return;
13898 }
13899 void compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
13900 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13901 val_t REGB0;
13902 val_t tmp;
13903 static val_t once_value_1; /* Once value */
13904 static val_t once_value_2; /* Once value */
13905 static val_t once_value_3; /* Once value */
13906 static val_t once_value_4; /* Once value */
13907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13908 fra.me.file = LOCATE_compiling_icode;
13909 fra.me.line = 895;
13910 fra.me.meth = LOCATE_compiling_icode___IBoolValue___compile_to_c;
13911 fra.me.has_broke = 0;
13912 fra.me.REG_size = 3;
13913 fra.me.REG[0] = NIT_NULL;
13914 fra.me.REG[1] = NIT_NULL;
13915 fra.me.REG[2] = NIT_NULL;
13916 fra.me.REG[0] = p0;
13917 fra.me.REG[1] = p1;
13918 /* ./compiling//compiling_icode.nit:897 */
13919 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13920 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13921 /* ./compiling//compiling_icode.nit:898 */
13922 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13923 /* ./compiling//compiling_icode.nit:899 */
13924 if (!once_value_1) {
13925 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
13926 REGB0 = TAG_Int(9);
13927 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13928 once_value_1 = fra.me.REG[2];
13929 register_static_object(&once_value_1);
13930 } else fra.me.REG[2] = once_value_1;
13931 fra.me.REG[2] = fra.me.REG[2];
13932 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13933 /* ./compiling//compiling_icode.nit:900 */
13934 REGB0 = CALL_icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
13935 if (UNTAG_Bool(REGB0)) {
13936 if (!once_value_2) {
13937 fra.me.REG[0] = BOX_NativeString("true");
13938 REGB0 = TAG_Int(4);
13939 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13940 once_value_2 = fra.me.REG[0];
13941 register_static_object(&once_value_2);
13942 } else fra.me.REG[0] = once_value_2;
13943 fra.me.REG[0] = fra.me.REG[0];
13944 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13945 } else {
13946 if (!once_value_3) {
13947 fra.me.REG[0] = BOX_NativeString("false");
13948 REGB0 = TAG_Int(5);
13949 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13950 once_value_3 = fra.me.REG[0];
13951 register_static_object(&once_value_3);
13952 } else fra.me.REG[0] = once_value_3;
13953 fra.me.REG[0] = fra.me.REG[0];
13954 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13955 }
13956 /* ./compiling//compiling_icode.nit:901 */
13957 if (!once_value_4) {
13958 fra.me.REG[0] = BOX_NativeString(")");
13959 REGB0 = TAG_Int(1);
13960 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
13961 once_value_4 = fra.me.REG[0];
13962 register_static_object(&once_value_4);
13963 } else fra.me.REG[0] = once_value_4;
13964 fra.me.REG[0] = fra.me.REG[0];
13965 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13966 stack_frame_head = fra.me.prev;
13967 return;
13968 }
13969 void compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
13970 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13971 val_t REGB0;
13972 val_t tmp;
13973 static val_t once_value_1; /* Once value */
13974 static val_t once_value_2; /* Once value */
13975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13976 fra.me.file = LOCATE_compiling_icode;
13977 fra.me.line = 906;
13978 fra.me.meth = LOCATE_compiling_icode___ICharValue___compile_to_c;
13979 fra.me.has_broke = 0;
13980 fra.me.REG_size = 3;
13981 fra.me.REG[0] = NIT_NULL;
13982 fra.me.REG[1] = NIT_NULL;
13983 fra.me.REG[2] = NIT_NULL;
13984 fra.me.REG[0] = p0;
13985 fra.me.REG[1] = p1;
13986 /* ./compiling//compiling_icode.nit:908 */
13987 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
13988 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13989 /* ./compiling//compiling_icode.nit:909 */
13990 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
13991 /* ./compiling//compiling_icode.nit:910 */
13992 if (!once_value_1) {
13993 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
13994 REGB0 = TAG_Int(9);
13995 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
13996 once_value_1 = fra.me.REG[2];
13997 register_static_object(&once_value_1);
13998 } else fra.me.REG[2] = once_value_1;
13999 fra.me.REG[2] = fra.me.REG[2];
14000 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14001 fra.me.REG[0] = CALL_icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
14002 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14003 if (!once_value_2) {
14004 fra.me.REG[2] = BOX_NativeString(")");
14005 REGB0 = TAG_Int(1);
14006 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14007 once_value_2 = fra.me.REG[2];
14008 register_static_object(&once_value_2);
14009 } else fra.me.REG[2] = once_value_2;
14010 fra.me.REG[2] = fra.me.REG[2];
14011 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14012 stack_frame_head = fra.me.prev;
14013 return;
14014 }
14015 void compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
14016 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14017 val_t REGB0;
14018 val_t tmp;
14019 static val_t once_value_1; /* Once value */
14020 static val_t once_value_2; /* Once value */
14021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14022 fra.me.file = LOCATE_compiling_icode;
14023 fra.me.line = 915;
14024 fra.me.meth = LOCATE_compiling_icode___IFloatValue___compile_to_c;
14025 fra.me.has_broke = 0;
14026 fra.me.REG_size = 3;
14027 fra.me.REG[0] = NIT_NULL;
14028 fra.me.REG[1] = NIT_NULL;
14029 fra.me.REG[2] = NIT_NULL;
14030 fra.me.REG[0] = p0;
14031 fra.me.REG[1] = p1;
14032 /* ./compiling//compiling_icode.nit:917 */
14033 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14034 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14035 /* ./compiling//compiling_icode.nit:918 */
14036 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14037 /* ./compiling//compiling_icode.nit:919 */
14038 if (!once_value_1) {
14039 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
14040 REGB0 = TAG_Int(10);
14041 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14042 once_value_1 = fra.me.REG[2];
14043 register_static_object(&once_value_1);
14044 } else fra.me.REG[2] = once_value_1;
14045 fra.me.REG[2] = fra.me.REG[2];
14046 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14047 fra.me.REG[0] = CALL_icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
14048 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14049 if (!once_value_2) {
14050 fra.me.REG[2] = BOX_NativeString(")");
14051 REGB0 = TAG_Int(1);
14052 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14053 once_value_2 = fra.me.REG[2];
14054 register_static_object(&once_value_2);
14055 } else fra.me.REG[2] = once_value_2;
14056 fra.me.REG[2] = fra.me.REG[2];
14057 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14058 stack_frame_head = fra.me.prev;
14059 return;
14060 }
14061 void compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
14062 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14063 val_t REGB0;
14064 val_t tmp;
14065 static val_t once_value_1; /* Once value */
14066 static val_t once_value_2; /* Once value */
14067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14068 fra.me.file = LOCATE_compiling_icode;
14069 fra.me.line = 924;
14070 fra.me.meth = LOCATE_compiling_icode___IStringValue___compile_to_c;
14071 fra.me.has_broke = 0;
14072 fra.me.REG_size = 3;
14073 fra.me.REG[0] = NIT_NULL;
14074 fra.me.REG[1] = NIT_NULL;
14075 fra.me.REG[2] = NIT_NULL;
14076 fra.me.REG[0] = p0;
14077 fra.me.REG[1] = p1;
14078 /* ./compiling//compiling_icode.nit:926 */
14079 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14080 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14081 /* ./compiling//compiling_icode.nit:927 */
14082 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14083 /* ./compiling//compiling_icode.nit:928 */
14084 if (!once_value_1) {
14085 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
14086 REGB0 = TAG_Int(18);
14087 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14088 once_value_1 = fra.me.REG[2];
14089 register_static_object(&once_value_1);
14090 } else fra.me.REG[2] = once_value_1;
14091 fra.me.REG[2] = fra.me.REG[2];
14092 fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14093 fra.me.REG[0] = CALL_icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
14094 fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14095 if (!once_value_2) {
14096 fra.me.REG[2] = BOX_NativeString("\")");
14097 REGB0 = TAG_Int(2);
14098 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14099 once_value_2 = fra.me.REG[2];
14100 register_static_object(&once_value_2);
14101 } else fra.me.REG[2] = once_value_2;
14102 fra.me.REG[2] = fra.me.REG[2];
14103 CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
14104 stack_frame_head = fra.me.prev;
14105 return;
14106 }
14107 void compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
14108 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14109 val_t REGB0;
14110 val_t REGB1;
14111 val_t REGB2;
14112 val_t tmp;
14113 static val_t once_value_1; /* Once value */
14114 static val_t once_value_3; /* Once value */
14115 static val_t once_value_5; /* Once value */
14116 static val_t once_value_6; /* Once value */
14117 static val_t once_value_7; /* Once value */
14118 static val_t once_value_8; /* Once value */
14119 static val_t once_value_9; /* Once value */
14120 static val_t once_value_10; /* Once value */
14121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14122 fra.me.file = LOCATE_compiling_icode;
14123 fra.me.line = 933;
14124 fra.me.meth = LOCATE_compiling_icode___IAbort___compile_to_c;
14125 fra.me.has_broke = 0;
14126 fra.me.REG_size = 3;
14127 fra.me.REG[0] = NIT_NULL;
14128 fra.me.REG[1] = NIT_NULL;
14129 fra.me.REG[2] = NIT_NULL;
14130 fra.me.REG[0] = p0;
14131 fra.me.REG[1] = p1;
14132 /* ./compiling//compiling_icode.nit:935 */
14133 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14134 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14135 /* ./compiling//compiling_icode.nit:936 */
14136 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14137 /* ./compiling//compiling_icode.nit:937 */
14138 if (!once_value_1) {
14139 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
14140 REGB0 = TAG_Int(11);
14141 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14142 once_value_1 = fra.me.REG[2];
14143 register_static_object(&once_value_1);
14144 } else fra.me.REG[2] = once_value_1;
14145 fra.me.REG[2] = fra.me.REG[2];
14146 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14147 /* ./compiling//compiling_icode.nit:938 */
14148 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14149 REGB0 = TAG_Int(0);
14150 /* ./../lib/standard//collection//array.nit:245 */
14151 REGB1 = TAG_Int(0);
14152 /* ./../lib/standard//kernel.nit:213 */
14153 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
14154 /* ./../lib/standard//collection//array.nit:245 */
14155 if (UNTAG_Bool(REGB1)) {
14156 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14157 if (UNTAG_Bool(REGB1)) {
14158 } else {
14159 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
14160 }
14161 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14162 /* ./../lib/standard//kernel.nit:212 */
14163 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14164 } else {
14165 /* ./../lib/standard//collection//array.nit:245 */
14166 REGB2 = TAG_Bool(false);
14167 REGB1 = REGB2;
14168 }
14169 if (UNTAG_Bool(REGB1)) {
14170 } else {
14171 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
14172 }
14173 /* ./../lib/standard//collection//array.nit:246 */
14174 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
14175 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14176 if (UNTAG_Bool(REGB1)) {
14177 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
14178 }
14179 /* ./../lib/standard//collection//array.nit:654 */
14180 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
14181 /* ./../lib/standard//collection//array.nit:246 */
14182 goto label2;
14183 label2: while(0);
14184 /* ./compiling//compiling_icode.nit:938 */
14185 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14186 /* ./compiling//compiling_icode.nit:939 */
14187 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14188 /* ./../lib/standard//collection//array.nit:23 */
14189 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14190 if (UNTAG_Bool(REGB0)) {
14191 } else {
14192 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
14193 }
14194 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14195 /* ./compiling//compiling_icode.nit:939 */
14196 REGB1 = TAG_Int(1);
14197 /* ./../lib/standard//kernel.nit:214 */
14198 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
14199 /* ./compiling//compiling_icode.nit:939 */
14200 if (UNTAG_Bool(REGB1)) {
14201 /* ./compiling//compiling_icode.nit:940 */
14202 if (!once_value_3) {
14203 fra.me.REG[2] = BOX_NativeString("\", \"");
14204 REGB1 = TAG_Int(4);
14205 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14206 once_value_3 = fra.me.REG[2];
14207 register_static_object(&once_value_3);
14208 } else fra.me.REG[2] = once_value_3;
14209 fra.me.REG[2] = fra.me.REG[2];
14210 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14211 /* ./compiling//compiling_icode.nit:941 */
14212 fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
14213 REGB1 = TAG_Int(1);
14214 /* ./../lib/standard//collection//array.nit:245 */
14215 REGB0 = TAG_Int(0);
14216 /* ./../lib/standard//kernel.nit:213 */
14217 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
14218 /* ./../lib/standard//collection//array.nit:245 */
14219 if (UNTAG_Bool(REGB0)) {
14220 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14221 if (UNTAG_Bool(REGB0)) {
14222 } else {
14223 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
14224 }
14225 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
14226 /* ./../lib/standard//kernel.nit:212 */
14227 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
14228 } else {
14229 /* ./../lib/standard//collection//array.nit:245 */
14230 REGB2 = TAG_Bool(false);
14231 REGB0 = REGB2;
14232 }
14233 if (UNTAG_Bool(REGB0)) {
14234 } else {
14235 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
14236 }
14237 /* ./../lib/standard//collection//array.nit:246 */
14238 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
14239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14240 if (UNTAG_Bool(REGB0)) {
14241 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
14242 }
14243 /* ./../lib/standard//collection//array.nit:654 */
14244 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14245 /* ./../lib/standard//collection//array.nit:246 */
14246 goto label4;
14247 label4: while(0);
14248 /* ./compiling//compiling_icode.nit:941 */
14249 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14250 /* ./compiling//compiling_icode.nit:942 */
14251 if (!once_value_5) {
14252 fra.me.REG[2] = BOX_NativeString("\"");
14253 REGB1 = TAG_Int(1);
14254 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14255 once_value_5 = fra.me.REG[2];
14256 register_static_object(&once_value_5);
14257 } else fra.me.REG[2] = once_value_5;
14258 fra.me.REG[2] = fra.me.REG[2];
14259 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14260 } else {
14261 /* ./compiling//compiling_icode.nit:944 */
14262 if (!once_value_6) {
14263 fra.me.REG[2] = BOX_NativeString("\", NULL");
14264 REGB1 = TAG_Int(7);
14265 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14266 once_value_6 = fra.me.REG[2];
14267 register_static_object(&once_value_6);
14268 } else fra.me.REG[2] = once_value_6;
14269 fra.me.REG[2] = fra.me.REG[2];
14270 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14271 }
14272 /* ./compiling//compiling_icode.nit:946 */
14273 if (!once_value_7) {
14274 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
14275 REGB1 = TAG_Int(9);
14276 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14277 once_value_7 = fra.me.REG[2];
14278 register_static_object(&once_value_7);
14279 } else fra.me.REG[2] = once_value_7;
14280 fra.me.REG[2] = fra.me.REG[2];
14281 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14282 /* ./compiling//compiling_icode.nit:947 */
14283 fra.me.REG[2] = CALL_icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
14284 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]);
14285 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
14286 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14287 /* ./compiling//compiling_icode.nit:948 */
14288 fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14289 /* ./compiling//compiling_icode.nit:949 */
14290 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14291 if (UNTAG_Bool(REGB1)) {
14292 } else {
14293 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14294 if (UNTAG_Bool(REGB0)) {
14295 REGB0 = TAG_Bool(false);
14296 REGB1 = REGB0;
14297 } else {
14298 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
14299 REGB1 = REGB0;
14300 }
14301 }
14302 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
14303 if (UNTAG_Bool(REGB1)) {
14304 /* ./compiling//compiling_icode.nit:950 */
14305 if (!once_value_8) {
14306 fra.me.REG[2] = BOX_NativeString(", ");
14307 REGB1 = TAG_Int(2);
14308 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
14309 once_value_8 = fra.me.REG[2];
14310 register_static_object(&once_value_8);
14311 } else fra.me.REG[2] = once_value_8;
14312 fra.me.REG[2] = fra.me.REG[2];
14313 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14314 /* ./compiling//compiling_icode.nit:951 */
14315 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
14316 if (UNTAG_Bool(REGB1)) {
14317 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 951);
14318 }
14319 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
14320 fra.me.REG[0] = CALL_string___Object___to_s(REGB1)(REGB1);
14321 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14322 } else {
14323 /* ./compiling//compiling_icode.nit:953 */
14324 if (!once_value_9) {
14325 fra.me.REG[0] = BOX_NativeString(", 0");
14326 REGB1 = TAG_Int(3);
14327 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
14328 once_value_9 = fra.me.REG[0];
14329 register_static_object(&once_value_9);
14330 } else fra.me.REG[0] = once_value_9;
14331 fra.me.REG[0] = fra.me.REG[0];
14332 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14333 }
14334 /* ./compiling//compiling_icode.nit:955 */
14335 if (!once_value_10) {
14336 fra.me.REG[0] = BOX_NativeString(");\n");
14337 REGB1 = TAG_Int(3);
14338 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
14339 once_value_10 = fra.me.REG[0];
14340 register_static_object(&once_value_10);
14341 } else fra.me.REG[0] = once_value_10;
14342 fra.me.REG[0] = fra.me.REG[0];
14343 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14344 stack_frame_head = fra.me.prev;
14345 return;
14346 }
14347 void compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
14348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14349 val_t REGB0;
14350 val_t REGB1;
14351 val_t tmp;
14352 static val_t once_value_2; /* Once value */
14353 static val_t once_value_3; /* Once value */
14354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14355 fra.me.file = LOCATE_compiling_icode;
14356 fra.me.line = 960;
14357 fra.me.meth = LOCATE_compiling_icode___IMove___compile_to_c;
14358 fra.me.has_broke = 0;
14359 fra.me.REG_size = 4;
14360 fra.me.REG[0] = NIT_NULL;
14361 fra.me.REG[1] = NIT_NULL;
14362 fra.me.REG[2] = NIT_NULL;
14363 fra.me.REG[3] = NIT_NULL;
14364 fra.me.REG[0] = p0;
14365 fra.me.REG[1] = p1;
14366 /* ./compiling//compiling_icode.nit:962 */
14367 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14368 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14369 if (UNTAG_Bool(REGB0)) {
14370 goto label1;
14371 }
14372 /* ./compiling//compiling_icode.nit:963 */
14373 fra.me.REG[2] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14374 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14375 /* ./compiling//compiling_icode.nit:964 */
14376 fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
14377 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/;
14378 if (UNTAG_Bool(REGB0)) {
14379 } else {
14380 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 964);
14381 }
14382 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14383 /* ./compiling//compiling_icode.nit:965 */
14384 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
14385 if (UNTAG_Bool(REGB0)) {
14386 } else {
14387 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14388 REGB0 = REGB1;
14389 }
14390 if (UNTAG_Bool(REGB0)) {
14391 goto label1;
14392 }
14393 /* ./compiling//compiling_icode.nit:966 */
14394 fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14395 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14396 /* ./compiling//compiling_icode.nit:967 */
14397 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14398 /* ./compiling//compiling_icode.nit:968 */
14399 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14400 /* ./compiling//compiling_icode.nit:969 */
14401 if (!once_value_2) {
14402 fra.me.REG[3] = BOX_NativeString(" = ");
14403 REGB0 = TAG_Int(3);
14404 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14405 once_value_2 = fra.me.REG[3];
14406 register_static_object(&once_value_2);
14407 } else fra.me.REG[3] = once_value_2;
14408 fra.me.REG[3] = fra.me.REG[3];
14409 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14410 /* ./compiling//compiling_icode.nit:970 */
14411 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14412 /* ./compiling//compiling_icode.nit:971 */
14413 if (!once_value_3) {
14414 fra.me.REG[2] = BOX_NativeString(";\n");
14415 REGB0 = TAG_Int(2);
14416 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14417 once_value_3 = fra.me.REG[2];
14418 register_static_object(&once_value_3);
14419 } else fra.me.REG[2] = once_value_3;
14420 fra.me.REG[2] = fra.me.REG[2];
14421 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14422 label1: while(0);
14423 stack_frame_head = fra.me.prev;
14424 return;
14425 }
14426 void compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
14427 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14428 val_t REGB0;
14429 val_t tmp;
14430 static val_t once_value_2; /* Once value */
14431 static val_t once_value_3; /* Once value */
14432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14433 fra.me.file = LOCATE_compiling_icode;
14434 fra.me.line = 976;
14435 fra.me.meth = LOCATE_compiling_icode___IAttrRead___compile_to_c;
14436 fra.me.has_broke = 0;
14437 fra.me.REG_size = 4;
14438 fra.me.REG[0] = NIT_NULL;
14439 fra.me.REG[1] = NIT_NULL;
14440 fra.me.REG[2] = NIT_NULL;
14441 fra.me.REG[3] = NIT_NULL;
14442 fra.me.REG[0] = p0;
14443 fra.me.REG[1] = p1;
14444 /* ./compiling//compiling_icode.nit:978 */
14445 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14447 if (UNTAG_Bool(REGB0)) {
14448 goto label1;
14449 }
14450 /* ./compiling//compiling_icode.nit:979 */
14451 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14452 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14453 /* ./compiling//compiling_icode.nit:980 */
14454 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14455 /* ./compiling//compiling_icode.nit:981 */
14456 fra.me.REG[3] = CALL_icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
14457 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14458 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14459 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14460 /* ./compiling//compiling_icode.nit:982 */
14461 if (!once_value_2) {
14462 fra.me.REG[3] = BOX_NativeString("(");
14463 REGB0 = TAG_Int(1);
14464 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14465 once_value_2 = fra.me.REG[3];
14466 register_static_object(&once_value_2);
14467 } else fra.me.REG[3] = once_value_2;
14468 fra.me.REG[3] = fra.me.REG[3];
14469 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14470 /* ./compiling//compiling_icode.nit:983 */
14471 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14472 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14473 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14474 /* ./compiling//compiling_icode.nit:984 */
14475 if (!once_value_3) {
14476 fra.me.REG[0] = BOX_NativeString(")");
14477 REGB0 = TAG_Int(1);
14478 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14479 once_value_3 = fra.me.REG[0];
14480 register_static_object(&once_value_3);
14481 } else fra.me.REG[0] = once_value_3;
14482 fra.me.REG[0] = fra.me.REG[0];
14483 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14484 label1: while(0);
14485 stack_frame_head = fra.me.prev;
14486 return;
14487 }
14488 void compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
14489 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14490 val_t REGB0;
14491 val_t tmp;
14492 static val_t once_value_2; /* Once value */
14493 static val_t once_value_3; /* Once value */
14494 static val_t once_value_4; /* Once value */
14495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14496 fra.me.file = LOCATE_compiling_icode;
14497 fra.me.line = 989;
14498 fra.me.meth = LOCATE_compiling_icode___IAttrIsset___compile_to_c;
14499 fra.me.has_broke = 0;
14500 fra.me.REG_size = 4;
14501 fra.me.REG[0] = NIT_NULL;
14502 fra.me.REG[1] = NIT_NULL;
14503 fra.me.REG[2] = NIT_NULL;
14504 fra.me.REG[3] = NIT_NULL;
14505 fra.me.REG[0] = p0;
14506 fra.me.REG[1] = p1;
14507 /* ./compiling//compiling_icode.nit:991 */
14508 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14509 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14510 if (UNTAG_Bool(REGB0)) {
14511 goto label1;
14512 }
14513 /* ./compiling//compiling_icode.nit:992 */
14514 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14515 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14516 /* ./compiling//compiling_icode.nit:993 */
14517 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14518 /* ./compiling//compiling_icode.nit:994 */
14519 if (!once_value_2) {
14520 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
14521 REGB0 = TAG_Int(9);
14522 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14523 once_value_2 = fra.me.REG[3];
14524 register_static_object(&once_value_2);
14525 } else fra.me.REG[3] = once_value_2;
14526 fra.me.REG[3] = fra.me.REG[3];
14527 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14528 /* ./compiling//compiling_icode.nit:995 */
14529 fra.me.REG[3] = CALL_icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
14530 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14531 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14532 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14533 /* ./compiling//compiling_icode.nit:996 */
14534 if (!once_value_3) {
14535 fra.me.REG[3] = BOX_NativeString("(");
14536 REGB0 = TAG_Int(1);
14537 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14538 once_value_3 = fra.me.REG[3];
14539 register_static_object(&once_value_3);
14540 } else fra.me.REG[3] = once_value_3;
14541 fra.me.REG[3] = fra.me.REG[3];
14542 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14543 /* ./compiling//compiling_icode.nit:997 */
14544 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14545 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14546 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14547 /* ./compiling//compiling_icode.nit:998 */
14548 if (!once_value_4) {
14549 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
14550 REGB0 = TAG_Int(12);
14551 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14552 once_value_4 = fra.me.REG[0];
14553 register_static_object(&once_value_4);
14554 } else fra.me.REG[0] = once_value_4;
14555 fra.me.REG[0] = fra.me.REG[0];
14556 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14557 label1: while(0);
14558 stack_frame_head = fra.me.prev;
14559 return;
14560 }
14561 void compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
14562 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14563 val_t REGB0;
14564 val_t tmp;
14565 static val_t once_value_1; /* Once value */
14566 static val_t once_value_2; /* Once value */
14567 static val_t once_value_3; /* Once value */
14568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14569 fra.me.file = LOCATE_compiling_icode;
14570 fra.me.line = 1003;
14571 fra.me.meth = LOCATE_compiling_icode___IAttrWrite___compile_to_c;
14572 fra.me.has_broke = 0;
14573 fra.me.REG_size = 4;
14574 fra.me.REG[0] = NIT_NULL;
14575 fra.me.REG[1] = NIT_NULL;
14576 fra.me.REG[2] = NIT_NULL;
14577 fra.me.REG[3] = NIT_NULL;
14578 fra.me.REG[0] = p0;
14579 fra.me.REG[1] = p1;
14580 /* ./compiling//compiling_icode.nit:1005 */
14581 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14582 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14583 /* ./compiling//compiling_icode.nit:1006 */
14584 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
14585 /* ./compiling//compiling_icode.nit:1007 */
14586 fra.me.REG[3] = CALL_icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
14587 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
14588 fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
14589 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14590 /* ./compiling//compiling_icode.nit:1008 */
14591 if (!once_value_1) {
14592 fra.me.REG[3] = BOX_NativeString("(");
14593 REGB0 = TAG_Int(1);
14594 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14595 once_value_1 = fra.me.REG[3];
14596 register_static_object(&once_value_1);
14597 } else fra.me.REG[3] = once_value_1;
14598 fra.me.REG[3] = fra.me.REG[3];
14599 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14600 /* ./compiling//compiling_icode.nit:1009 */
14601 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14602 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14603 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14604 /* ./compiling//compiling_icode.nit:1010 */
14605 if (!once_value_2) {
14606 fra.me.REG[3] = BOX_NativeString(") = ");
14607 REGB0 = TAG_Int(4);
14608 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14609 once_value_2 = fra.me.REG[3];
14610 register_static_object(&once_value_2);
14611 } else fra.me.REG[3] = once_value_2;
14612 fra.me.REG[3] = fra.me.REG[3];
14613 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14614 /* ./compiling//compiling_icode.nit:1011 */
14615 fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14616 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14617 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14618 /* ./compiling//compiling_icode.nit:1012 */
14619 if (!once_value_3) {
14620 fra.me.REG[0] = BOX_NativeString(";\n");
14621 REGB0 = TAG_Int(2);
14622 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14623 once_value_3 = fra.me.REG[0];
14624 register_static_object(&once_value_3);
14625 } else fra.me.REG[0] = once_value_3;
14626 fra.me.REG[0] = fra.me.REG[0];
14627 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14628 stack_frame_head = fra.me.prev;
14629 return;
14630 }
14631 void compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
14632 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
14633 val_t REGB0;
14634 val_t REGB1;
14635 val_t tmp;
14636 static val_t once_value_2; /* Once value */
14637 static val_t once_value_3; /* Once value */
14638 static val_t once_value_4; /* Once value */
14639 static val_t once_value_5; /* Once value */
14640 static val_t once_value_6; /* Once value */
14641 static val_t once_value_7; /* Once value */
14642 static val_t once_value_8; /* Once value */
14643 static val_t once_value_9; /* Once value */
14644 static val_t once_value_10; /* Once value */
14645 static val_t once_value_11; /* Once value */
14646 static val_t once_value_12; /* Once value */
14647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14648 fra.me.file = LOCATE_compiling_icode;
14649 fra.me.line = 1017;
14650 fra.me.meth = LOCATE_compiling_icode___ITypeCheck___compile_to_c;
14651 fra.me.has_broke = 0;
14652 fra.me.REG_size = 6;
14653 fra.me.REG[0] = NIT_NULL;
14654 fra.me.REG[1] = NIT_NULL;
14655 fra.me.REG[2] = NIT_NULL;
14656 fra.me.REG[3] = NIT_NULL;
14657 fra.me.REG[4] = NIT_NULL;
14658 fra.me.REG[5] = NIT_NULL;
14659 fra.me.REG[0] = p0;
14660 fra.me.REG[1] = p1;
14661 /* ./compiling//compiling_icode.nit:1019 */
14662 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14664 if (UNTAG_Bool(REGB0)) {
14665 goto label1;
14666 }
14667 /* ./compiling//compiling_icode.nit:1021 */
14668 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14669 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14670 /* ./compiling//compiling_icode.nit:1022 */
14671 fra.me.REG[2] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14672 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
14673 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
14674 /* ./compiling//compiling_icode.nit:1023 */
14675 fra.me.REG[3] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14676 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14677 /* ./compiling//compiling_icode.nit:1024 */
14678 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14679 /* ./compiling//compiling_icode.nit:1025 */
14680 if (!once_value_2) {
14681 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
14682 REGB0 = TAG_Int(9);
14683 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14684 once_value_2 = fra.me.REG[4];
14685 register_static_object(&once_value_2);
14686 } else fra.me.REG[4] = once_value_2;
14687 fra.me.REG[4] = fra.me.REG[4];
14688 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14689 /* ./compiling//compiling_icode.nit:1026 */
14690 fra.me.REG[4] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14691 fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
14692 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14693 if (UNTAG_Bool(REGB0)) {
14694 /* ./compiling//compiling_icode.nit:1027 */
14695 fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14696 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14697 if (UNTAG_Bool(REGB0)) {
14698 /* ./compiling//compiling_icode.nit:1028 */
14699 if (!once_value_3) {
14700 fra.me.REG[4] = BOX_NativeString("(");
14701 REGB0 = TAG_Int(1);
14702 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14703 once_value_3 = fra.me.REG[4];
14704 register_static_object(&once_value_3);
14705 } else fra.me.REG[4] = once_value_3;
14706 fra.me.REG[4] = fra.me.REG[4];
14707 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14708 /* ./compiling//compiling_icode.nit:1029 */
14709 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14710 /* ./compiling//compiling_icode.nit:1030 */
14711 if (!once_value_4) {
14712 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
14713 REGB0 = TAG_Int(15);
14714 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
14715 once_value_4 = fra.me.REG[4];
14716 register_static_object(&once_value_4);
14717 } else fra.me.REG[4] = once_value_4;
14718 fra.me.REG[4] = fra.me.REG[4];
14719 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14720 } else {
14721 /* ./compiling//compiling_icode.nit:1031 */
14722 fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14723 fra.me.REG[4] = CALL_static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
14724 fra.me.REG[5] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
14725 fra.me.REG[5] = CALL_icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
14726 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
14727 if (UNTAG_Bool(REGB0)) {
14728 } else {
14729 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
14730 REGB0 = REGB1;
14731 }
14732 if (UNTAG_Bool(REGB0)) {
14733 /* ./compiling//compiling_icode.nit:1032 */
14734 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14735 /* ./compiling//compiling_icode.nit:1033 */
14736 if (!once_value_5) {
14737 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
14738 REGB0 = TAG_Int(11);
14739 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14740 once_value_5 = fra.me.REG[5];
14741 register_static_object(&once_value_5);
14742 } else fra.me.REG[5] = once_value_5;
14743 fra.me.REG[5] = fra.me.REG[5];
14744 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14745 /* ./compiling//compiling_icode.nit:1034 */
14746 goto label1;
14747 } else {
14748 /* ./compiling//compiling_icode.nit:1036 */
14749 if (!once_value_6) {
14750 fra.me.REG[5] = BOX_NativeString("(");
14751 REGB0 = TAG_Int(1);
14752 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14753 once_value_6 = fra.me.REG[5];
14754 register_static_object(&once_value_6);
14755 } else fra.me.REG[5] = once_value_6;
14756 fra.me.REG[5] = fra.me.REG[5];
14757 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14758 /* ./compiling//compiling_icode.nit:1037 */
14759 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14760 /* ./compiling//compiling_icode.nit:1038 */
14761 if (!once_value_7) {
14762 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
14763 REGB0 = TAG_Int(15);
14764 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14765 once_value_7 = fra.me.REG[5];
14766 register_static_object(&once_value_7);
14767 } else fra.me.REG[5] = once_value_7;
14768 fra.me.REG[5] = fra.me.REG[5];
14769 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14770 }
14771 }
14772 }
14773 /* ./compiling//compiling_icode.nit:1041 */
14774 if (!once_value_8) {
14775 fra.me.REG[5] = BOX_NativeString("VAL_ISA(");
14776 REGB0 = TAG_Int(8);
14777 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14778 once_value_8 = fra.me.REG[5];
14779 register_static_object(&once_value_8);
14780 } else fra.me.REG[5] = once_value_8;
14781 fra.me.REG[5] = fra.me.REG[5];
14782 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14783 /* ./compiling//compiling_icode.nit:1042 */
14784 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14785 /* ./compiling//compiling_icode.nit:1043 */
14786 if (!once_value_9) {
14787 fra.me.REG[3] = BOX_NativeString(", ");
14788 REGB0 = TAG_Int(2);
14789 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14790 once_value_9 = fra.me.REG[3];
14791 register_static_object(&once_value_9);
14792 } else fra.me.REG[3] = once_value_9;
14793 fra.me.REG[3] = fra.me.REG[3];
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 fra.me.REG[3] = CALL_compiling_base___MMGlobalClass___color_id(fra.me.REG[2])(fra.me.REG[2]);
14797 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14798 /* ./compiling//compiling_icode.nit:1045 */
14799 if (!once_value_10) {
14800 fra.me.REG[3] = BOX_NativeString(", ");
14801 REGB0 = TAG_Int(2);
14802 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14803 once_value_10 = fra.me.REG[3];
14804 register_static_object(&once_value_10);
14805 } else fra.me.REG[3] = once_value_10;
14806 fra.me.REG[3] = fra.me.REG[3];
14807 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14808 /* ./compiling//compiling_icode.nit:1046 */
14809 fra.me.REG[2] = CALL_compiling_base___MMGlobalClass___id_id(fra.me.REG[2])(fra.me.REG[2]);
14810 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14811 /* ./compiling//compiling_icode.nit:1047 */
14812 if (!once_value_11) {
14813 fra.me.REG[2] = BOX_NativeString(")) /*cast ");
14814 REGB0 = TAG_Int(10);
14815 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
14816 once_value_11 = fra.me.REG[2];
14817 register_static_object(&once_value_11);
14818 } else fra.me.REG[2] = once_value_11;
14819 fra.me.REG[2] = fra.me.REG[2];
14820 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14821 /* ./compiling//compiling_icode.nit:1048 */
14822 fra.me.REG[0] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
14823 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
14824 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14825 /* ./compiling//compiling_icode.nit:1049 */
14826 if (!once_value_12) {
14827 fra.me.REG[0] = BOX_NativeString("*/");
14828 REGB0 = TAG_Int(2);
14829 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
14830 once_value_12 = fra.me.REG[0];
14831 register_static_object(&once_value_12);
14832 } else fra.me.REG[0] = once_value_12;
14833 fra.me.REG[0] = fra.me.REG[0];
14834 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14835 label1: while(0);
14836 stack_frame_head = fra.me.prev;
14837 return;
14838 }
14839 void compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
14840 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
14841 val_t REGB0;
14842 val_t tmp;
14843 static val_t once_value_2; /* Once value */
14844 static val_t once_value_3; /* Once value */
14845 static val_t once_value_4; /* Once value */
14846 static val_t once_value_5; /* Once value */
14847 static val_t once_value_6; /* Once value */
14848 static val_t once_value_7; /* Once value */
14849 static val_t once_value_8; /* Once value */
14850 static val_t once_value_9; /* Once value */
14851 static val_t once_value_10; /* Once value */
14852 static val_t once_value_11; /* Once value */
14853 static val_t once_value_12; /* Once value */
14854 static val_t once_value_13; /* Once value */
14855 static val_t once_value_14; /* Once value */
14856 static val_t once_value_15; /* Once value */
14857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14858 fra.me.file = LOCATE_compiling_icode;
14859 fra.me.line = 1054;
14860 fra.me.meth = LOCATE_compiling_icode___IIs___compile_to_c;
14861 fra.me.has_broke = 0;
14862 fra.me.REG_size = 6;
14863 fra.me.REG[0] = NIT_NULL;
14864 fra.me.REG[1] = NIT_NULL;
14865 fra.me.REG[2] = NIT_NULL;
14866 fra.me.REG[3] = NIT_NULL;
14867 fra.me.REG[4] = NIT_NULL;
14868 fra.me.REG[5] = NIT_NULL;
14869 fra.me.REG[0] = p0;
14870 fra.me.REG[1] = p1;
14871 /* ./compiling//compiling_icode.nit:1056 */
14872 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
14873 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14874 if (UNTAG_Bool(REGB0)) {
14875 goto label1;
14876 }
14877 /* ./compiling//compiling_icode.nit:1057 */
14878 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
14879 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14880 /* ./compiling//compiling_icode.nit:1058 */
14881 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
14882 /* ./compiling//compiling_icode.nit:1059 */
14883 if (!once_value_2) {
14884 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
14885 REGB0 = TAG_Int(9);
14886 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14887 once_value_2 = fra.me.REG[3];
14888 register_static_object(&once_value_2);
14889 } else fra.me.REG[3] = once_value_2;
14890 fra.me.REG[3] = fra.me.REG[3];
14891 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14892 /* ./compiling//compiling_icode.nit:1060 */
14893 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14894 fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
14895 /* ./compiling//compiling_icode.nit:1061 */
14896 fra.me.REG[4] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14897 fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
14898 /* ./compiling//compiling_icode.nit:1062 */
14899 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14900 if (UNTAG_Bool(REGB0)) {
14901 /* ./compiling//compiling_icode.nit:1063 */
14902 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14903 if (UNTAG_Bool(REGB0)) {
14904 /* ./compiling//compiling_icode.nit:1064 */
14905 if (!once_value_3) {
14906 fra.me.REG[5] = BOX_NativeString("1)");
14907 REGB0 = TAG_Int(2);
14908 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14909 once_value_3 = fra.me.REG[5];
14910 register_static_object(&once_value_3);
14911 } else fra.me.REG[5] = once_value_3;
14912 fra.me.REG[5] = fra.me.REG[5];
14913 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14914 /* ./compiling//compiling_icode.nit:1065 */
14915 goto label1;
14916 } else {
14917 /* ./compiling//compiling_icode.nit:1066 */
14918 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14919 if (UNTAG_Bool(REGB0)) {
14920 /* ./compiling//compiling_icode.nit:1067 */
14921 fra.me.REG[5] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
14922 fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
14923 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14924 /* ./compiling//compiling_icode.nit:1068 */
14925 if (!once_value_4) {
14926 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
14927 REGB0 = TAG_Int(11);
14928 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14929 once_value_4 = fra.me.REG[5];
14930 register_static_object(&once_value_4);
14931 } else fra.me.REG[5] = once_value_4;
14932 fra.me.REG[5] = fra.me.REG[5];
14933 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14934 /* ./compiling//compiling_icode.nit:1069 */
14935 goto label1;
14936 } else {
14937 /* ./compiling//compiling_icode.nit:1071 */
14938 if (!once_value_5) {
14939 fra.me.REG[5] = BOX_NativeString("0)");
14940 REGB0 = TAG_Int(2);
14941 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
14942 once_value_5 = fra.me.REG[5];
14943 register_static_object(&once_value_5);
14944 } else fra.me.REG[5] = once_value_5;
14945 fra.me.REG[5] = fra.me.REG[5];
14946 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
14947 /* ./compiling//compiling_icode.nit:1072 */
14948 goto label1;
14949 }
14950 }
14951 } else {
14952 /* ./compiling//compiling_icode.nit:1074 */
14953 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
14954 if (UNTAG_Bool(REGB0)) {
14955 /* ./compiling//compiling_icode.nit:1075 */
14956 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
14957 if (UNTAG_Bool(REGB0)) {
14958 /* ./compiling//compiling_icode.nit:1076 */
14959 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
14960 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14961 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14962 /* ./compiling//compiling_icode.nit:1077 */
14963 if (!once_value_6) {
14964 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
14965 REGB0 = TAG_Int(11);
14966 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14967 once_value_6 = fra.me.REG[3];
14968 register_static_object(&once_value_6);
14969 } else fra.me.REG[3] = once_value_6;
14970 fra.me.REG[3] = fra.me.REG[3];
14971 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14972 /* ./compiling//compiling_icode.nit:1078 */
14973 goto label1;
14974 } else {
14975 /* ./compiling//compiling_icode.nit:1079 */
14976 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
14977 if (UNTAG_Bool(REGB0)) {
14978 /* ./compiling//compiling_icode.nit:1080 */
14979 if (!once_value_7) {
14980 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
14981 REGB0 = TAG_Int(12);
14982 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14983 once_value_7 = fra.me.REG[3];
14984 register_static_object(&once_value_7);
14985 } else fra.me.REG[3] = once_value_7;
14986 fra.me.REG[3] = fra.me.REG[3];
14987 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14988 } else {
14989 /* ./compiling//compiling_icode.nit:1082 */
14990 if (!once_value_8) {
14991 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
14992 REGB0 = TAG_Int(12);
14993 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
14994 once_value_8 = fra.me.REG[3];
14995 register_static_object(&once_value_8);
14996 } else fra.me.REG[3] = once_value_8;
14997 fra.me.REG[3] = fra.me.REG[3];
14998 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14999 /* ./compiling//compiling_icode.nit:1083 */
15000 fra.me.REG[3] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
15001 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15002 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15003 /* ./compiling//compiling_icode.nit:1084 */
15004 if (!once_value_9) {
15005 fra.me.REG[3] = BOX_NativeString(",");
15006 REGB0 = TAG_Int(1);
15007 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15008 once_value_9 = fra.me.REG[3];
15009 register_static_object(&once_value_9);
15010 } else fra.me.REG[3] = once_value_9;
15011 fra.me.REG[3] = fra.me.REG[3];
15012 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15013 /* ./compiling//compiling_icode.nit:1085 */
15014 fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
15015 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15016 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15017 /* ./compiling//compiling_icode.nit:1086 */
15018 if (!once_value_10) {
15019 fra.me.REG[3] = BOX_NativeString("))");
15020 REGB0 = TAG_Int(2);
15021 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15022 once_value_10 = fra.me.REG[3];
15023 register_static_object(&once_value_10);
15024 } else fra.me.REG[3] = once_value_10;
15025 fra.me.REG[3] = fra.me.REG[3];
15026 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15027 /* ./compiling//compiling_icode.nit:1087 */
15028 goto label1;
15029 }
15030 }
15031 } else {
15032 /* ./compiling//compiling_icode.nit:1090 */
15033 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
15034 if (UNTAG_Bool(REGB0)) {
15035 /* ./compiling//compiling_icode.nit:1091 */
15036 if (!once_value_11) {
15037 fra.me.REG[3] = BOX_NativeString("0)");
15038 REGB0 = TAG_Int(2);
15039 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15040 once_value_11 = fra.me.REG[3];
15041 register_static_object(&once_value_11);
15042 } else fra.me.REG[3] = once_value_11;
15043 fra.me.REG[3] = fra.me.REG[3];
15044 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15045 /* ./compiling//compiling_icode.nit:1092 */
15046 goto label1;
15047 } else {
15048 /* ./compiling//compiling_icode.nit:1093 */
15049 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
15050 if (UNTAG_Bool(REGB0)) {
15051 /* ./compiling//compiling_icode.nit:1094 */
15052 if (!once_value_12) {
15053 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
15054 REGB0 = TAG_Int(12);
15055 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15056 once_value_12 = fra.me.REG[4];
15057 register_static_object(&once_value_12);
15058 } else fra.me.REG[4] = once_value_12;
15059 fra.me.REG[4] = fra.me.REG[4];
15060 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15061 } else {
15062 /* ./compiling//compiling_icode.nit:1096 */
15063 if (!once_value_13) {
15064 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
15065 REGB0 = TAG_Int(12);
15066 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15067 once_value_13 = fra.me.REG[4];
15068 register_static_object(&once_value_13);
15069 } else fra.me.REG[4] = once_value_13;
15070 fra.me.REG[4] = fra.me.REG[4];
15071 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15072 }
15073 }
15074 }
15075 }
15076 /* ./compiling//compiling_icode.nit:1099 */
15077 fra.me.REG[4] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
15078 fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15079 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15080 /* ./compiling//compiling_icode.nit:1100 */
15081 if (!once_value_14) {
15082 fra.me.REG[4] = BOX_NativeString(",");
15083 REGB0 = TAG_Int(1);
15084 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15085 once_value_14 = fra.me.REG[4];
15086 register_static_object(&once_value_14);
15087 } else fra.me.REG[4] = once_value_14;
15088 fra.me.REG[4] = fra.me.REG[4];
15089 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15090 /* ./compiling//compiling_icode.nit:1101 */
15091 fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
15092 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15093 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15094 /* ./compiling//compiling_icode.nit:1102 */
15095 if (!once_value_15) {
15096 fra.me.REG[0] = BOX_NativeString("))");
15097 REGB0 = TAG_Int(2);
15098 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15099 once_value_15 = fra.me.REG[0];
15100 register_static_object(&once_value_15);
15101 } else fra.me.REG[0] = once_value_15;
15102 fra.me.REG[0] = fra.me.REG[0];
15103 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15104 label1: while(0);
15105 stack_frame_head = fra.me.prev;
15106 return;
15107 }
15108 void compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
15109 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15110 val_t REGB0;
15111 val_t tmp;
15112 static val_t once_value_2; /* Once value */
15113 static val_t once_value_3; /* Once value */
15114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15115 fra.me.file = LOCATE_compiling_icode;
15116 fra.me.line = 1107;
15117 fra.me.meth = LOCATE_compiling_icode___INot___compile_to_c;
15118 fra.me.has_broke = 0;
15119 fra.me.REG_size = 4;
15120 fra.me.REG[0] = NIT_NULL;
15121 fra.me.REG[1] = NIT_NULL;
15122 fra.me.REG[2] = NIT_NULL;
15123 fra.me.REG[3] = NIT_NULL;
15124 fra.me.REG[0] = p0;
15125 fra.me.REG[1] = p1;
15126 /* ./compiling//compiling_icode.nit:1109 */
15127 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15129 if (UNTAG_Bool(REGB0)) {
15130 goto label1;
15131 }
15132 /* ./compiling//compiling_icode.nit:1110 */
15133 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15134 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15135 /* ./compiling//compiling_icode.nit:1111 */
15136 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15137 /* ./compiling//compiling_icode.nit:1112 */
15138 if (!once_value_2) {
15139 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
15140 REGB0 = TAG_Int(21);
15141 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15142 once_value_2 = fra.me.REG[3];
15143 register_static_object(&once_value_2);
15144 } else fra.me.REG[3] = once_value_2;
15145 fra.me.REG[3] = fra.me.REG[3];
15146 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15147 /* ./compiling//compiling_icode.nit:1113 */
15148 fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
15149 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15150 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15151 /* ./compiling//compiling_icode.nit:1114 */
15152 if (!once_value_3) {
15153 fra.me.REG[0] = BOX_NativeString("))");
15154 REGB0 = TAG_Int(2);
15155 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15156 once_value_3 = fra.me.REG[0];
15157 register_static_object(&once_value_3);
15158 } else fra.me.REG[0] = once_value_3;
15159 fra.me.REG[0] = fra.me.REG[0];
15160 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15161 label1: while(0);
15162 stack_frame_head = fra.me.prev;
15163 return;
15164 }
15165 void compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
15166 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
15167 val_t REGB0;
15168 val_t REGB1;
15169 val_t tmp;
15170 static val_t once_value_1; /* Once value */
15171 static val_t once_value_2; /* Once value */
15172 static val_t once_value_3; /* Once value */
15173 static val_t once_value_4; /* Once value */
15174 static val_t once_value_5; /* Once value */
15175 static val_t once_value_6; /* Once value */
15176 static val_t once_value_7; /* Once value */
15177 static val_t once_value_8; /* Once value */
15178 static val_t once_value_9; /* Once value */
15179 static val_t once_value_10; /* Once value */
15180 static val_t once_value_11; /* Once value */
15181 static val_t once_value_12; /* Once value */
15182 static val_t once_value_13; /* Once value */
15183 static val_t once_value_14; /* Once value */
15184 static val_t once_value_15; /* Once value */
15185 static val_t once_value_16; /* Once value */
15186 static val_t once_value_17; /* Once value */
15187 static val_t once_value_18; /* Once value */
15188 static val_t once_value_19; /* Once value */
15189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15190 fra.me.file = LOCATE_compiling_icode;
15191 fra.me.line = 1119;
15192 fra.me.meth = LOCATE_compiling_icode___IOnce___compile_to_c;
15193 fra.me.has_broke = 0;
15194 fra.me.REG_size = 6;
15195 fra.me.REG[0] = NIT_NULL;
15196 fra.me.REG[1] = NIT_NULL;
15197 fra.me.REG[2] = NIT_NULL;
15198 fra.me.REG[3] = NIT_NULL;
15199 fra.me.REG[4] = NIT_NULL;
15200 fra.me.REG[5] = NIT_NULL;
15201 fra.me.REG[0] = p0;
15202 fra.me.REG[1] = p1;
15203 /* ./compiling//compiling_icode.nit:1121 */
15204 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15205 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15206 /* ./compiling//compiling_icode.nit:1122 */
15207 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
15208 /* ./compiling//compiling_icode.nit:1123 */
15209 fra.me.REG[2] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15210 REGB1 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/;
15211 if (UNTAG_Bool(REGB1)) {
15212 } else {
15213 nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 1123);
15214 }
15215 /* ./compiling//compiling_icode.nit:1124 */
15216 fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]);
15217 REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
15218 if (UNTAG_Bool(REGB1)) {
15219 /* ./compiling//compiling_icode.nit:1125 */
15220 REGB1 = TAG_Int(5);
15221 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15222 if (!once_value_1) {
15223 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
15224 REGB1 = TAG_Int(24);
15225 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15226 once_value_1 = fra.me.REG[4];
15227 register_static_object(&once_value_1);
15228 } else fra.me.REG[4] = once_value_1;
15229 fra.me.REG[4] = fra.me.REG[4];
15230 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15231 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15232 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15233 if (!once_value_2) {
15234 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
15235 REGB1 = TAG_Int(23);
15236 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15237 once_value_2 = fra.me.REG[4];
15238 register_static_object(&once_value_2);
15239 } else fra.me.REG[4] = once_value_2;
15240 fra.me.REG[4] = fra.me.REG[4];
15241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15242 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15243 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15244 if (!once_value_3) {
15245 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
15246 REGB1 = TAG_Int(18);
15247 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15248 once_value_3 = fra.me.REG[4];
15249 register_static_object(&once_value_3);
15250 } else fra.me.REG[4] = once_value_3;
15251 fra.me.REG[4] = fra.me.REG[4];
15252 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15253 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15254 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15255 /* ./compiling//compiling_icode.nit:1126 */
15256 REGB1 = TAG_Int(3);
15257 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15258 if (!once_value_4) {
15259 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
15260 REGB1 = TAG_Int(15);
15261 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15262 once_value_4 = fra.me.REG[4];
15263 register_static_object(&once_value_4);
15264 } else fra.me.REG[4] = once_value_4;
15265 fra.me.REG[4] = fra.me.REG[4];
15266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15267 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15268 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15269 if (!once_value_5) {
15270 fra.me.REG[4] = BOX_NativeString(") {");
15271 REGB1 = TAG_Int(3);
15272 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15273 once_value_5 = fra.me.REG[4];
15274 register_static_object(&once_value_5);
15275 } else fra.me.REG[4] = once_value_5;
15276 fra.me.REG[4] = fra.me.REG[4];
15277 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15278 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15279 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15280 } else {
15281 /* ./compiling//compiling_icode.nit:1129 */
15282 REGB1 = TAG_Int(3);
15283 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15284 if (!once_value_6) {
15285 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
15286 REGB1 = TAG_Int(24);
15287 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15288 once_value_6 = fra.me.REG[4];
15289 register_static_object(&once_value_6);
15290 } else fra.me.REG[4] = once_value_6;
15291 fra.me.REG[4] = fra.me.REG[4];
15292 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15293 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15295 if (!once_value_7) {
15296 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
15297 REGB1 = TAG_Int(18);
15298 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15299 once_value_7 = fra.me.REG[4];
15300 register_static_object(&once_value_7);
15301 } else fra.me.REG[4] = once_value_7;
15302 fra.me.REG[4] = fra.me.REG[4];
15303 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15304 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15305 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15306 /* ./compiling//compiling_icode.nit:1130 */
15307 REGB1 = TAG_Int(3);
15308 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
15309 if (!once_value_8) {
15310 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
15311 REGB1 = TAG_Int(16);
15312 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15313 once_value_8 = fra.me.REG[4];
15314 register_static_object(&once_value_8);
15315 } else fra.me.REG[4] = once_value_8;
15316 fra.me.REG[4] = fra.me.REG[4];
15317 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15318 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15320 if (!once_value_9) {
15321 fra.me.REG[4] = BOX_NativeString(") {");
15322 REGB1 = TAG_Int(3);
15323 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15324 once_value_9 = fra.me.REG[4];
15325 register_static_object(&once_value_9);
15326 } else fra.me.REG[4] = once_value_9;
15327 fra.me.REG[4] = fra.me.REG[4];
15328 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15329 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15330 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15331 }
15332 /* ./compiling//compiling_icode.nit:1132 */
15333 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
15334 /* ./compiling//compiling_icode.nit:1133 */
15335 fra.me.REG[3] = CALL_icode_base___IOnce___body(fra.me.REG[0])(fra.me.REG[0]);
15336 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15337 /* ./compiling//compiling_icode.nit:1134 */
15338 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15339 /* ./compiling//compiling_icode.nit:1135 */
15340 REGB1 = TAG_Int(5);
15341 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
15342 if (!once_value_10) {
15343 fra.me.REG[5] = BOX_NativeString("once_value_");
15344 REGB1 = TAG_Int(11);
15345 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15346 once_value_10 = fra.me.REG[5];
15347 register_static_object(&once_value_10);
15348 } else fra.me.REG[5] = once_value_10;
15349 fra.me.REG[5] = fra.me.REG[5];
15350 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15351 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
15352 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15353 if (!once_value_11) {
15354 fra.me.REG[5] = BOX_NativeString(" = ");
15355 REGB1 = TAG_Int(3);
15356 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15357 once_value_11 = fra.me.REG[5];
15358 register_static_object(&once_value_11);
15359 } else fra.me.REG[5] = once_value_11;
15360 fra.me.REG[5] = fra.me.REG[5];
15361 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15362 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15363 if (!once_value_12) {
15364 fra.me.REG[5] = BOX_NativeString(";");
15365 REGB1 = TAG_Int(1);
15366 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15367 once_value_12 = fra.me.REG[5];
15368 register_static_object(&once_value_12);
15369 } else fra.me.REG[5] = once_value_12;
15370 fra.me.REG[5] = fra.me.REG[5];
15371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15372 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15373 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15374 /* ./compiling//compiling_icode.nit:1136 */
15375 REGB1 = TAG_Int(3);
15376 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
15377 if (!once_value_13) {
15378 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
15379 REGB1 = TAG_Int(35);
15380 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15381 once_value_13 = fra.me.REG[5];
15382 register_static_object(&once_value_13);
15383 } else fra.me.REG[5] = once_value_13;
15384 fra.me.REG[5] = fra.me.REG[5];
15385 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15386 fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0);
15387 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15388 if (!once_value_14) {
15389 fra.me.REG[5] = BOX_NativeString(");");
15390 REGB1 = TAG_Int(2);
15391 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
15392 once_value_14 = fra.me.REG[5];
15393 register_static_object(&once_value_14);
15394 } else fra.me.REG[5] = once_value_14;
15395 fra.me.REG[5] = fra.me.REG[5];
15396 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15397 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15398 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15399 /* ./compiling//compiling_icode.nit:1137 */
15400 fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]);
15401 REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
15402 if (UNTAG_Bool(REGB1)) {
15403 REGB1 = TAG_Int(3);
15404 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
15405 if (!once_value_15) {
15406 fra.me.REG[4] = BOX_NativeString("once_bool_");
15407 REGB1 = TAG_Int(10);
15408 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15409 once_value_15 = fra.me.REG[4];
15410 register_static_object(&once_value_15);
15411 } else fra.me.REG[4] = once_value_15;
15412 fra.me.REG[4] = fra.me.REG[4];
15413 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15414 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15415 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15416 if (!once_value_16) {
15417 fra.me.REG[4] = BOX_NativeString(" = true;");
15418 REGB1 = TAG_Int(8);
15419 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15420 once_value_16 = fra.me.REG[4];
15421 register_static_object(&once_value_16);
15422 } else fra.me.REG[4] = once_value_16;
15423 fra.me.REG[4] = fra.me.REG[4];
15424 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15425 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15426 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15427 }
15428 /* ./compiling//compiling_icode.nit:1138 */
15429 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
15430 /* ./compiling//compiling_icode.nit:1139 */
15431 REGB1 = TAG_Int(5);
15432 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
15433 if (!once_value_17) {
15434 fra.me.REG[4] = BOX_NativeString("} else ");
15435 REGB1 = TAG_Int(7);
15436 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15437 once_value_17 = fra.me.REG[4];
15438 register_static_object(&once_value_17);
15439 } else fra.me.REG[4] = once_value_17;
15440 fra.me.REG[4] = fra.me.REG[4];
15441 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15442 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15443 if (!once_value_18) {
15444 fra.me.REG[4] = BOX_NativeString(" = once_value_");
15445 REGB1 = TAG_Int(14);
15446 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
15447 once_value_18 = fra.me.REG[4];
15448 register_static_object(&once_value_18);
15449 } else fra.me.REG[4] = once_value_18;
15450 fra.me.REG[4] = fra.me.REG[4];
15451 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15452 fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0);
15453 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15454 if (!once_value_19) {
15455 fra.me.REG[4] = BOX_NativeString(";");
15456 REGB0 = TAG_Int(1);
15457 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15458 once_value_19 = fra.me.REG[4];
15459 register_static_object(&once_value_19);
15460 } else fra.me.REG[4] = once_value_19;
15461 fra.me.REG[4] = fra.me.REG[4];
15462 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15463 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15464 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15465 /* ./compiling//compiling_icode.nit:1140 */
15466 fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15467 /* ./compiling//compiling_icode.nit:1141 */
15468 CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15469 stack_frame_head = fra.me.prev;
15470 return;
15471 }
15472 void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
15473 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
15474 val_t REGB0;
15475 val_t REGB1;
15476 val_t tmp;
15477 static val_t once_value_1; /* Once value */
15478 static val_t once_value_2; /* Once value */
15479 static val_t once_value_3; /* Once value */
15480 static val_t once_value_4; /* Once value */
15481 static val_t once_value_5; /* Once value */
15482 static val_t once_value_6; /* Once value */
15483 static val_t once_value_7; /* Once value */
15484 static val_t once_value_8; /* Once value */
15485 static val_t once_value_9; /* Once value */
15486 static val_t once_value_10; /* Once value */
15487 static val_t once_value_11; /* Once value */
15488 static val_t once_value_12; /* Once value */
15489 static val_t once_value_13; /* Once value */
15490 static val_t once_value_14; /* Once value */
15491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15492 fra.me.file = LOCATE_compiling_icode;
15493 fra.me.line = 1146;
15494 fra.me.meth = LOCATE_compiling_icode___IClosCall___compile_to_c;
15495 fra.me.has_broke = 0;
15496 fra.me.REG_size = 7;
15497 fra.me.REG[0] = NIT_NULL;
15498 fra.me.REG[1] = NIT_NULL;
15499 fra.me.REG[2] = NIT_NULL;
15500 fra.me.REG[3] = NIT_NULL;
15501 fra.me.REG[4] = NIT_NULL;
15502 fra.me.REG[5] = NIT_NULL;
15503 fra.me.REG[6] = NIT_NULL;
15504 fra.me.REG[0] = p0;
15505 fra.me.REG[1] = p1;
15506 /* ./compiling//compiling_icode.nit:1148 */
15507 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15508 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15509 /* ./compiling//compiling_icode.nit:1151 */
15510 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15511 if (UNTAG_Bool(REGB0)) {
15512 /* ./compiling//compiling_icode.nit:1152 */
15513 REGB0 = TAG_Int(3);
15514 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
15515 if (!once_value_1) {
15516 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
15517 REGB0 = TAG_Int(22);
15518 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15519 once_value_1 = fra.me.REG[3];
15520 register_static_object(&once_value_1);
15521 } else fra.me.REG[3] = once_value_1;
15522 fra.me.REG[3] = fra.me.REG[3];
15523 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15524 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15525 fra.me.REG[4] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15526 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15527 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15528 if (!once_value_2) {
15529 fra.me.REG[4] = BOX_NativeString("]");
15530 REGB0 = TAG_Int(1);
15531 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15532 once_value_2 = fra.me.REG[4];
15533 register_static_object(&once_value_2);
15534 } else fra.me.REG[4] = once_value_2;
15535 fra.me.REG[4] = fra.me.REG[4];
15536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15537 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15538 /* ./compiling//compiling_icode.nit:1153 */
15539 REGB0 = TAG_Int(1);
15540 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
15541 if (!once_value_3) {
15542 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
15543 REGB0 = TAG_Int(20);
15544 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15545 once_value_3 = fra.me.REG[3];
15546 register_static_object(&once_value_3);
15547 } else fra.me.REG[3] = once_value_3;
15548 fra.me.REG[3] = fra.me.REG[3];
15549 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15550 } else {
15551 /* ./compiling//compiling_icode.nit:1155 */
15552 REGB0 = TAG_Int(3);
15553 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15554 if (!once_value_4) {
15555 fra.me.REG[5] = BOX_NativeString("CREG[");
15556 REGB0 = TAG_Int(5);
15557 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
15558 once_value_4 = fra.me.REG[5];
15559 register_static_object(&once_value_4);
15560 } else fra.me.REG[5] = once_value_4;
15561 fra.me.REG[5] = fra.me.REG[5];
15562 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15563 fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15564 fra.me.REG[6] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15565 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
15566 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15567 if (!once_value_5) {
15568 fra.me.REG[6] = BOX_NativeString("]");
15569 REGB0 = TAG_Int(1);
15570 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15571 once_value_5 = fra.me.REG[6];
15572 register_static_object(&once_value_5);
15573 } else fra.me.REG[6] = once_value_5;
15574 fra.me.REG[6] = fra.me.REG[6];
15575 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15576 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15577 fra.me.REG[2] = fra.me.REG[3];
15578 /* ./compiling//compiling_icode.nit:1156 */
15579 REGB0 = TAG_Int(1);
15580 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15581 if (!once_value_6) {
15582 fra.me.REG[6] = BOX_NativeString("closctx_param");
15583 REGB0 = TAG_Int(13);
15584 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15585 once_value_6 = fra.me.REG[6];
15586 register_static_object(&once_value_6);
15587 } else fra.me.REG[6] = once_value_6;
15588 fra.me.REG[6] = fra.me.REG[6];
15589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15590 fra.me.REG[4] = fra.me.REG[3];
15591 }
15592 /* ./compiling//compiling_icode.nit:1158 */
15593 fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
15594 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15595 CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15596 /* ./compiling//compiling_icode.nit:1160 */
15597 REGB0 = TAG_Int(7);
15598 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
15599 if (!once_value_7) {
15600 fra.me.REG[6] = BOX_NativeString("((");
15601 REGB0 = TAG_Int(2);
15602 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
15603 once_value_7 = fra.me.REG[6];
15604 register_static_object(&once_value_7);
15605 } else fra.me.REG[6] = once_value_7;
15606 fra.me.REG[6] = fra.me.REG[6];
15607 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15608 fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
15609 fra.me.REG[5] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15610 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
15611 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15612 if (!once_value_8) {
15613 fra.me.REG[5] = BOX_NativeString(")(");
15614 REGB0 = TAG_Int(2);
15615 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
15616 once_value_8 = fra.me.REG[5];
15617 register_static_object(&once_value_8);
15618 } else fra.me.REG[5] = once_value_8;
15619 fra.me.REG[5] = fra.me.REG[5];
15620 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
15621 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15622 if (!once_value_9) {
15623 fra.me.REG[2] = BOX_NativeString("))(");
15624 REGB0 = TAG_Int(3);
15625 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15626 once_value_9 = fra.me.REG[2];
15627 register_static_object(&once_value_9);
15628 } else fra.me.REG[2] = once_value_9;
15629 fra.me.REG[2] = fra.me.REG[2];
15630 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15631 if (!once_value_10) {
15632 fra.me.REG[2] = BOX_NativeString(", ");
15633 REGB0 = TAG_Int(2);
15634 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15635 once_value_10 = fra.me.REG[2];
15636 register_static_object(&once_value_10);
15637 } else fra.me.REG[2] = once_value_10;
15638 fra.me.REG[2] = fra.me.REG[2];
15639 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
15640 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15641 if (!once_value_11) {
15642 fra.me.REG[2] = BOX_NativeString(")");
15643 REGB0 = TAG_Int(1);
15644 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
15645 once_value_11 = fra.me.REG[2];
15646 register_static_object(&once_value_11);
15647 } else fra.me.REG[2] = once_value_11;
15648 fra.me.REG[2] = fra.me.REG[2];
15649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
15650 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
15651 /* ./compiling//compiling_icode.nit:1161 */
15652 fra.me.REG[2] = NEW_Writer_compiling_writer___Writer___init();
15653 /* ./compiling//compiling_icode.nit:1162 */
15654 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15655 /* ./compiling//compiling_icode.nit:1163 */
15656 CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
15657 /* ./compiling//compiling_icode.nit:1166 */
15658 REGB0 = TAG_Int(3);
15659 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
15660 if (!once_value_12) {
15661 fra.me.REG[3] = BOX_NativeString("if (");
15662 REGB0 = TAG_Int(4);
15663 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15664 once_value_12 = fra.me.REG[3];
15665 register_static_object(&once_value_12);
15666 } else fra.me.REG[3] = once_value_12;
15667 fra.me.REG[3] = fra.me.REG[3];
15668 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15669 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
15670 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15671 if (!once_value_13) {
15672 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
15673 REGB0 = TAG_Int(14);
15674 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15675 once_value_13 = fra.me.REG[4];
15676 register_static_object(&once_value_13);
15677 } else fra.me.REG[4] = once_value_13;
15678 fra.me.REG[4] = fra.me.REG[4];
15679 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15680 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
15681 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15682 /* ./compiling//compiling_icode.nit:1167 */
15683 CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
15684 /* ./compiling//compiling_icode.nit:1168 */
15685 fra.me.REG[0] = CALL_icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
15686 /* ./compiling//compiling_icode.nit:1169 */
15687 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15688 if (UNTAG_Bool(REGB0)) {
15689 } else {
15690 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15691 if (UNTAG_Bool(REGB1)) {
15692 REGB1 = TAG_Bool(false);
15693 REGB0 = REGB1;
15694 } else {
15695 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
15696 REGB0 = REGB1;
15697 }
15698 }
15699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15700 if (UNTAG_Bool(REGB0)) {
15701 /* ./compiling//compiling_icode.nit:1170 */
15702 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15703 if (UNTAG_Bool(REGB0)) {
15704 nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 1170);
15705 }
15706 CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15707 }
15708 /* ./compiling//compiling_icode.nit:1172 */
15709 fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
15710 fra.me.REG[0] = CALL_icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
15711 CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15712 /* ./compiling//compiling_icode.nit:1173 */
15713 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
15714 /* ./compiling//compiling_icode.nit:1174 */
15715 if (!once_value_14) {
15716 fra.me.REG[0] = BOX_NativeString("}");
15717 REGB0 = TAG_Int(1);
15718 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15719 once_value_14 = fra.me.REG[0];
15720 register_static_object(&once_value_14);
15721 } else fra.me.REG[0] = once_value_14;
15722 fra.me.REG[0] = fra.me.REG[0];
15723 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15724 stack_frame_head = fra.me.prev;
15725 return;
15726 }
15727 void compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
15728 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15729 val_t REGB0;
15730 val_t tmp;
15731 static val_t once_value_2; /* Once value */
15732 static val_t once_value_3; /* Once value */
15733 static val_t once_value_4; /* Once value */
15734 static val_t once_value_5; /* Once value */
15735 static val_t once_value_6; /* Once value */
15736 static val_t once_value_7; /* Once value */
15737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15738 fra.me.file = LOCATE_compiling_icode;
15739 fra.me.line = 1179;
15740 fra.me.meth = LOCATE_compiling_icode___IHasClos___compile_to_c;
15741 fra.me.has_broke = 0;
15742 fra.me.REG_size = 5;
15743 fra.me.REG[0] = NIT_NULL;
15744 fra.me.REG[1] = NIT_NULL;
15745 fra.me.REG[2] = NIT_NULL;
15746 fra.me.REG[3] = NIT_NULL;
15747 fra.me.REG[4] = NIT_NULL;
15748 fra.me.REG[0] = p0;
15749 fra.me.REG[1] = p1;
15750 /* ./compiling//compiling_icode.nit:1181 */
15751 REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15753 if (UNTAG_Bool(REGB0)) {
15754 goto label1;
15755 }
15756 /* ./compiling//compiling_icode.nit:1182 */
15757 fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15758 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15759 /* ./compiling//compiling_icode.nit:1183 */
15760 fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15761 /* ./compiling//compiling_icode.nit:1184 */
15762 if (!once_value_2) {
15763 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
15764 REGB0 = TAG_Int(9);
15765 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15766 once_value_2 = fra.me.REG[3];
15767 register_static_object(&once_value_2);
15768 } else fra.me.REG[3] = once_value_2;
15769 fra.me.REG[3] = fra.me.REG[3];
15770 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15771 /* ./compiling//compiling_icode.nit:1185 */
15772 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15773 if (UNTAG_Bool(REGB0)) {
15774 /* ./compiling//compiling_icode.nit:1186 */
15775 if (!once_value_3) {
15776 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
15777 REGB0 = TAG_Int(22);
15778 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
15779 once_value_3 = fra.me.REG[3];
15780 register_static_object(&once_value_3);
15781 } else fra.me.REG[3] = once_value_3;
15782 fra.me.REG[3] = fra.me.REG[3];
15783 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15784 /* ./compiling//compiling_icode.nit:1187 */
15785 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15786 fra.me.REG[4] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15787 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15788 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15789 /* ./compiling//compiling_icode.nit:1188 */
15790 if (!once_value_4) {
15791 fra.me.REG[4] = BOX_NativeString("]");
15792 REGB0 = TAG_Int(1);
15793 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15794 once_value_4 = fra.me.REG[4];
15795 register_static_object(&once_value_4);
15796 } else fra.me.REG[4] = once_value_4;
15797 fra.me.REG[4] = fra.me.REG[4];
15798 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15799 } else {
15800 /* ./compiling//compiling_icode.nit:1190 */
15801 if (!once_value_5) {
15802 fra.me.REG[4] = BOX_NativeString("CREG[");
15803 REGB0 = TAG_Int(5);
15804 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
15805 once_value_5 = fra.me.REG[4];
15806 register_static_object(&once_value_5);
15807 } else fra.me.REG[4] = once_value_5;
15808 fra.me.REG[4] = fra.me.REG[4];
15809 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15810 /* ./compiling//compiling_icode.nit:1191 */
15811 fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
15812 fra.me.REG[0] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
15813 fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15814 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15815 /* ./compiling//compiling_icode.nit:1192 */
15816 if (!once_value_6) {
15817 fra.me.REG[0] = BOX_NativeString("]");
15818 REGB0 = TAG_Int(1);
15819 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15820 once_value_6 = fra.me.REG[0];
15821 register_static_object(&once_value_6);
15822 } else fra.me.REG[0] = once_value_6;
15823 fra.me.REG[0] = fra.me.REG[0];
15824 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15825 }
15826 /* ./compiling//compiling_icode.nit:1194 */
15827 if (!once_value_7) {
15828 fra.me.REG[0] = BOX_NativeString(" != NULL)");
15829 REGB0 = TAG_Int(9);
15830 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
15831 once_value_7 = fra.me.REG[0];
15832 register_static_object(&once_value_7);
15833 } else fra.me.REG[0] = once_value_7;
15834 fra.me.REG[0] = fra.me.REG[0];
15835 CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15836 label1: while(0);
15837 stack_frame_head = fra.me.prev;
15838 return;
15839 }
15840 val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
15841 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15842 val_t REGB0;
15843 val_t REGB1;
15844 val_t REGB2;
15845 val_t tmp;
15846 static val_t once_value_1; /* Once value */
15847 static val_t once_value_2; /* Once value */
15848 static val_t once_value_3; /* Once value */
15849 static val_t once_value_4; /* Once value */
15850 static val_t once_value_5; /* Once value */
15851 static val_t once_value_6; /* Once value */
15852 static val_t once_value_7; /* Once value */
15853 static val_t once_value_8; /* Once value */
15854 static val_t once_value_9; /* Once value */
15855 static val_t once_value_10; /* Once value */
15856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15857 fra.me.file = LOCATE_compiling_icode;
15858 fra.me.line = 1199;
15859 fra.me.meth = LOCATE_compiling_icode___IClosureDef___compile_closure;
15860 fra.me.has_broke = 0;
15861 fra.me.REG_size = 9;
15862 fra.me.REG[0] = NIT_NULL;
15863 fra.me.REG[1] = NIT_NULL;
15864 fra.me.REG[2] = NIT_NULL;
15865 fra.me.REG[3] = NIT_NULL;
15866 fra.me.REG[4] = NIT_NULL;
15867 fra.me.REG[5] = NIT_NULL;
15868 fra.me.REG[6] = NIT_NULL;
15869 fra.me.REG[7] = NIT_NULL;
15870 fra.me.REG[8] = NIT_NULL;
15871 fra.me.REG[0] = p0;
15872 fra.me.REG[1] = p1;
15873 /* ./compiling//compiling_icode.nit:1203 */
15874 fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
15875 /* ./compiling//compiling_icode.nit:1206 */
15876 REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
15877 /* ./compiling//compiling_icode.nit:1207 */
15878 REGB1 = TAG_Bool(true);
15879 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
15880 /* ./compiling//compiling_icode.nit:1210 */
15881 fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
15882 /* ./compiling//compiling_icode.nit:1211 */
15883 fra.me.REG[4] = NEW_HashSet_hash_collection___HashSet___init();
15884 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15885 /* ./compiling//compiling_icode.nit:1214 */
15886 fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
15887 /* ./compiling//compiling_icode.nit:1215 */
15888 fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
15889 /* ./compiling//compiling_icode.nit:1216 */
15890 fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
15891 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
15892 CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
15893 /* ./compiling//compiling_icode.nit:1217 */
15894 fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
15895 fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
15896 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
15897 /* ./compiling//compiling_icode.nit:1220 */
15898 REGB1 = TAG_Int(5);
15899 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
15900 if (!once_value_1) {
15901 fra.me.REG[7] = BOX_NativeString("OC_");
15902 REGB1 = TAG_Int(3);
15903 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15904 once_value_1 = fra.me.REG[7];
15905 register_static_object(&once_value_1);
15906 } else fra.me.REG[7] = once_value_1;
15907 fra.me.REG[7] = fra.me.REG[7];
15908 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15909 fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
15910 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15911 if (!once_value_2) {
15912 fra.me.REG[7] = BOX_NativeString("_");
15913 REGB1 = TAG_Int(1);
15914 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15915 once_value_2 = fra.me.REG[7];
15916 register_static_object(&once_value_2);
15917 } else fra.me.REG[7] = once_value_2;
15918 fra.me.REG[7] = fra.me.REG[7];
15919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15920 REGB1 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
15921 fra.me.REG[7] = CALL_string___Object___to_s(REGB1)(REGB1);
15922 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15923 if (!once_value_3) {
15924 fra.me.REG[7] = BOX_NativeString("");
15925 REGB1 = TAG_Int(0);
15926 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15927 once_value_3 = fra.me.REG[7];
15928 register_static_object(&once_value_3);
15929 } else fra.me.REG[7] = once_value_3;
15930 fra.me.REG[7] = fra.me.REG[7];
15931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
15932 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15933 /* ./compiling//compiling_icode.nit:1221 */
15934 fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
15935 if (!once_value_4) {
15936 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
15937 REGB1 = TAG_Int(29);
15938 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
15939 once_value_4 = fra.me.REG[8];
15940 register_static_object(&once_value_4);
15941 } else fra.me.REG[8] = once_value_4;
15942 fra.me.REG[8] = fra.me.REG[8];
15943 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);
15944 /* ./compiling//compiling_icode.nit:1222 */
15945 fra.me.REG[7] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
15946 fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
15947 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
15948 /* ./compiling//compiling_icode.nit:1224 */
15949 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]);
15950 /* ./compiling//compiling_icode.nit:1225 */
15951 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
15952 if (UNTAG_Bool(REGB1)) {
15953 } else {
15954 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
15955 if (UNTAG_Bool(REGB2)) {
15956 REGB2 = TAG_Bool(false);
15957 REGB1 = REGB2;
15958 } else {
15959 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
15960 REGB1 = REGB2;
15961 }
15962 }
15963 if (UNTAG_Bool(REGB1)) {
15964 /* ./compiling//compiling_icode.nit:1226 */
15965 if (!once_value_5) {
15966 fra.me.REG[0] = BOX_NativeString("return;");
15967 REGB1 = TAG_Int(7);
15968 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
15969 once_value_5 = fra.me.REG[0];
15970 register_static_object(&once_value_5);
15971 } else fra.me.REG[0] = once_value_5;
15972 fra.me.REG[0] = fra.me.REG[0];
15973 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15974 } else {
15975 /* ./compiling//compiling_icode.nit:1228 */
15976 REGB1 = TAG_Int(3);
15977 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB1);
15978 if (!once_value_6) {
15979 fra.me.REG[7] = BOX_NativeString("return ");
15980 REGB1 = TAG_Int(7);
15981 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
15982 once_value_6 = fra.me.REG[7];
15983 register_static_object(&once_value_6);
15984 } else fra.me.REG[7] = once_value_6;
15985 fra.me.REG[7] = fra.me.REG[7];
15986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
15987 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
15988 if (!once_value_7) {
15989 fra.me.REG[8] = BOX_NativeString(";");
15990 REGB1 = TAG_Int(1);
15991 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
15992 once_value_7 = fra.me.REG[8];
15993 register_static_object(&once_value_7);
15994 } else fra.me.REG[8] = once_value_7;
15995 fra.me.REG[8] = fra.me.REG[8];
15996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
15997 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15998 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15999 }
16000 /* ./compiling//compiling_icode.nit:1230 */
16001 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
16002 /* ./compiling//compiling_icode.nit:1231 */
16003 if (!once_value_8) {
16004 fra.me.REG[0] = BOX_NativeString("}");
16005 REGB1 = TAG_Int(1);
16006 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
16007 once_value_8 = fra.me.REG[0];
16008 register_static_object(&once_value_8);
16009 } else fra.me.REG[0] = once_value_8;
16010 fra.me.REG[0] = fra.me.REG[0];
16011 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16012 /* ./compiling//compiling_icode.nit:1234 */
16013 CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16014 /* ./compiling//compiling_icode.nit:1235 */
16015 CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16016 /* ./compiling//compiling_icode.nit:1236 */
16017 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
16018 /* ./compiling//compiling_icode.nit:1237 */
16019 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16020 /* ./compiling//compiling_icode.nit:1238 */
16021 REGB0 = TAG_Int(3);
16022 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
16023 if (!once_value_9) {
16024 fra.me.REG[1] = BOX_NativeString("((fun_t)");
16025 REGB0 = TAG_Int(8);
16026 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
16027 once_value_9 = fra.me.REG[1];
16028 register_static_object(&once_value_9);
16029 } else fra.me.REG[1] = once_value_9;
16030 fra.me.REG[1] = fra.me.REG[1];
16031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16032 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16033 if (!once_value_10) {
16034 fra.me.REG[6] = BOX_NativeString(")");
16035 REGB0 = TAG_Int(1);
16036 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
16037 once_value_10 = fra.me.REG[6];
16038 register_static_object(&once_value_10);
16039 } else fra.me.REG[6] = once_value_10;
16040 fra.me.REG[6] = fra.me.REG[6];
16041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16042 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
16043 goto label11;
16044 label11: while(0);
16045 stack_frame_head = fra.me.prev;
16046 return fra.me.REG[3];
16047 }