c_src: fix last update, _nitni.h s were referring to _nit.h from Nit src
[nit.git] / c_src / compiling___compiling_icode._sep.c
1 /* This C file is generated by NIT to compile module compiling___compiling_icode. */
2 #include "compiling___compiling_icode._sep.h"
3 val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_3; /* Once value */
10 static val_t once_value_4; /* Once value */
11 static val_t once_value_5; /* Once value */
12 static val_t once_value_6; /* Once value */
13 static val_t once_value_7; /* Once value */
14 static val_t once_value_8; /* Once value */
15 static val_t once_value_9; /* Once value */
16 static val_t once_value_10; /* Once value */
17 static val_t once_value_11; /* Once value */
18 static val_t once_value_12; /* Once value */
19 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20 fra.me.file = LOCATE_compiling___compiling_icode;
21 fra.me.line = 32;
22 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___register;
23 fra.me.has_broke = 0;
24 fra.me.REG_size = 8;
25 fra.me.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:35 */
36 fra.me.REG[2] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
37 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___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_standard___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:36 */
50 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 36);
54 }
55 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
56 /* ./compiling//compiling_icode.nit:37 */
57 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
58 if (UNTAG_Bool(REGB0)) {
59 REGB0 = CALL_analysis___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___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___compiling_icode, 37);
70 }
71 fra.me.REG[4] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]);
72 fra.me.REG[3] = fra.me.REG[4];
73 }
74 /* ./compiling//compiling_icode.nit:38 */
75 REGB0 = CALL_standard___collection___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:39 */
78 fra.me.REG[4] = CALL_standard___collection___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:41 */
83 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
84 /* ./compiling//compiling_icode.nit:42 */
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:227 */
94 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
95 /* ./compiling//compiling_icode.nit:42 */
96 REGB0 = REGB1;
97 }
98 }
99 if (UNTAG_Bool(REGB0)) {
100 /* ./compiling//compiling_icode.nit:44 */
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_standard___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:45 */
110 CALL_standard___collection___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:46 */
112 fra.me.REG[2] = fra.me.REG[5];
113 goto label2;
114 } else {
115 /* ./compiling//compiling_icode.nit:50 */
116 REGB0 = CALL_analysis___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:51 */
119 if (!once_value_4) {
120 fra.me.REG[5] = NEW_HashMap_standard___collection___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:52 */
126 REGB0 = CALL_standard___collection___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
140 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
141 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
151 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
152 CALL_standard___collection___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:53 */
156 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
157 if (UNTAG_Bool(REGB0)) {
158 REGB0 = CALL_analysis___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:54 */
166 if (!once_value_7) {
167 fra.me.REG[0] = NEW_HashMap_standard___collection___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:55 */
174 REGB0 = CALL_standard___collection___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
188 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
189 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
199 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
200 CALL_standard___collection___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:57 */
204 if (!once_value_10) {
205 fra.me.REG[0] = NEW_HashMap_standard___collection___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:58 */
212 REGB0 = CALL_standard___collection___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
226 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
227 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
237 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
238 CALL_standard___collection___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:60 */
243 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
244 /* ./compiling//compiling_icode.nit:61 */
245 CALL_standard___collection___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:62 */
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___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___compiling_icode;
261 fra.me.line = 67;
262 fra.me.meth = LOCATE_compiling___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:70 */
271 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
272 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
273 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___I2CCompilerVisitor___registers_1));
274 /* ./compiling//compiling_icode.nit:74 */
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___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:71 */
285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
286 fra.me.file = LOCATE_compiling___compiling_icode;
287 fra.me.line = 0;
288 fra.me.meth = LOCATE_compiling___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:72 */
297 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
298 CALL_standard___collection___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___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___compiling_icode;
309 fra.me.line = 78;
310 fra.me.meth = LOCATE_compiling___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:81 */
316 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
317 REGB1 = TAG_Int(1);
318 /* ./../lib/standard//kernel.nit:235 */
319 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
320 /* ./compiling//compiling_icode.nit:81 */
321 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1;
322 /* ./compiling//compiling_icode.nit:82 */
323 REGB1 = TAG_Bool(ATTR_compiling___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___compiling_icode, 82);
327 }
328 REGB1 = ATTR_compiling___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___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___compiling_icode;
342 fra.me.line = 85;
343 fra.me.meth = LOCATE_compiling___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:88 */
354 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 88);
358 }
359 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
360 REGB0 = CALL_standard___collection___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:89 */
363 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
364 if (UNTAG_Bool(REGB0)) {
365 } else {
366 nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 89);
367 }
368 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
369 fra.me.REG[2] = CALL_standard___collection___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:91 */
373 REGB0 = TAG_Int(3);
374 fra.me.REG[3] = NEW_Array_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
384 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[0])(fra.me.REG[0]);
385 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
386 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
396 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
397 /* ./compiling//compiling_icode.nit:92 */
398 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 92);
402 }
403 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
404 CALL_standard___collection___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:93 */
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___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___compiling_icode;
419 fra.me.line = 97;
420 fra.me.meth = LOCATE_compiling___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:97 */
426 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 97);
430 }
431 fra.me.REG[0] = ATTR_compiling___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___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___compiling_icode;
441 fra.me.line = 100;
442 fra.me.meth = LOCATE_compiling___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:100 */
448 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 100);
452 }
453 fra.me.REG[0] = ATTR_compiling___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___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___compiling_icode;
463 fra.me.line = 103;
464 fra.me.meth = LOCATE_compiling___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:103 */
470 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 103);
474 }
475 fra.me.REG[0] = ATTR_compiling___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___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___compiling_icode;
484 fra.me.line = 103;
485 fra.me.meth = LOCATE_compiling___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:103 */
493 ATTR_compiling___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___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___compiling_icode;
503 fra.me.line = 106;
504 fra.me.meth = LOCATE_compiling___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:106 */
510 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 106);
514 }
515 fra.me.REG[0] = ATTR_compiling___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___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___compiling_icode;
524 fra.me.line = 106;
525 fra.me.meth = LOCATE_compiling___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:106 */
533 ATTR_compiling___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___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___compiling_icode;
545 fra.me.line = 110;
546 fra.me.meth = LOCATE_compiling___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:113 */
555 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 113);
559 }
560 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
561 REGB0 = CALL_standard___collection___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:114 */
564 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 114);
568 }
569 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
570 fra.me.REG[2] = CALL_standard___collection___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:116 */
575 REGB1 = TAG_Bool(ATTR_compiling___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___compiling_icode, 116);
579 }
580 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
581 REGB1 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[2])(fra.me.REG[2]);
582 REGB2 = TAG_Int(1);
583 /* ./../lib/standard//kernel.nit:235 */
584 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
585 /* ./compiling//compiling_icode.nit:117 */
586 REGB1 = TAG_Bool(ATTR_compiling___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___compiling_icode, 117);
590 }
591 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
592 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2);
593 /* ./compiling//compiling_icode.nit:118 */
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___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___compiling_icode;
609 fra.me.line = 122;
610 fra.me.meth = LOCATE_compiling___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:125 */
620 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 125);
624 }
625 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
626 REGB0 = CALL_standard___collection___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:126 */
629 REGB0 = TAG_Int(3);
630 fra.me.REG[2] = NEW_Array_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
640 REGB0 = TAG_Bool(ATTR_compiling___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___compiling_icode, 126);
644 }
645 fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
646 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
647 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
657 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
658 CALL_compiling___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___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){
664 struct {struct stack_frame_t me; val_t MORE_REG[4];} 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___compiling_icode;
676 fra.me.line = 130;
677 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_goto;
678 fra.me.has_broke = 0;
679 fra.me.REG_size = 5;
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[4] = NIT_NULL;
685 fra.me.REG[0] = p0;
686 fra.me.REG[1] = p1;
687 /* ./compiling//compiling_icode.nit:130 */
688 fra.me.REG[2] = fra.me.REG[0];
689 /* ./compiling//compiling_icode.nit:133 */
690 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[2])(fra.me.REG[2]);
691 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
692 if (UNTAG_Bool(REGB0)) {
693 /* ./compiling//compiling_icode.nit:134 */
694 REGB0 = TAG_Int(3);
695 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
696 if (!once_value_1) {
697 fra.me.REG[4] = BOX_NativeString("goto ");
698 REGB0 = TAG_Int(5);
699 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
700 once_value_1 = fra.me.REG[4];
701 register_static_object(&once_value_1);
702 } else fra.me.REG[4] = once_value_1;
703 fra.me.REG[4] = fra.me.REG[4];
704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
705 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
706 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
707 if (!once_value_2) {
708 fra.me.REG[4] = BOX_NativeString(";");
709 REGB0 = TAG_Int(1);
710 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
711 once_value_2 = fra.me.REG[4];
712 register_static_object(&once_value_2);
713 } else fra.me.REG[4] = once_value_2;
714 fra.me.REG[4] = fra.me.REG[4];
715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
716 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
717 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
718 } else {
719 /* ./compiling//compiling_icode.nit:136 */
720 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[2])(fra.me.REG[2]);
721 if (UNTAG_Bool(REGB0)) {
722 } else {
723 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 136);
724 }
725 /* ./compiling//compiling_icode.nit:137 */
726 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
727 /* ./compiling//compiling_icode.nit:138 */
728 REGB1 = TAG_Int(3);
729 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
730 if (!once_value_3) {
731 fra.me.REG[3] = BOX_NativeString("closctx->has_broke = ");
732 REGB1 = TAG_Int(21);
733 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
734 once_value_3 = fra.me.REG[3];
735 register_static_object(&once_value_3);
736 } else fra.me.REG[3] = once_value_3;
737 fra.me.REG[3] = fra.me.REG[3];
738 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
739 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
741 if (!once_value_4) {
742 fra.me.REG[3] = BOX_NativeString(";");
743 REGB0 = TAG_Int(1);
744 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
745 once_value_4 = fra.me.REG[3];
746 register_static_object(&once_value_4);
747 } else fra.me.REG[3] = once_value_4;
748 fra.me.REG[3] = fra.me.REG[3];
749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
750 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
751 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
752 /* ./compiling//compiling_icode.nit:139 */
753 REGB0 = TAG_Int(3);
754 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
755 if (!once_value_5) {
756 fra.me.REG[3] = BOX_NativeString("goto ");
757 REGB0 = TAG_Int(5);
758 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
759 once_value_5 = fra.me.REG[3];
760 register_static_object(&once_value_5);
761 } else fra.me.REG[3] = once_value_5;
762 fra.me.REG[3] = fra.me.REG[3];
763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
764 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[2])(fra.me.REG[2]);
765 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
766 if (UNTAG_Bool(REGB0)) {
767 } else {
768 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 139);
769 }
770 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
772 if (!once_value_6) {
773 fra.me.REG[3] = BOX_NativeString(";");
774 REGB0 = TAG_Int(1);
775 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
776 once_value_6 = fra.me.REG[3];
777 register_static_object(&once_value_6);
778 } else fra.me.REG[3] = once_value_6;
779 fra.me.REG[3] = fra.me.REG[3];
780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
781 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
782 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
783 }
784 stack_frame_head = fra.me.prev;
785 return;
786 }
787 val_t compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){
788 struct {struct stack_frame_t me;} fra;
789 val_t REGB0;
790 val_t tmp;
791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
792 fra.me.file = LOCATE_compiling___compiling_icode;
793 fra.me.line = 143;
794 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq;
795 fra.me.has_broke = 0;
796 fra.me.REG_size = 1;
797 fra.me.REG[0] = NIT_NULL;
798 fra.me.REG[0] = p0;
799 /* ./compiling//compiling_icode.nit:143 */
800 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
801 if (UNTAG_Bool(REGB0)) {
802 } else {
803 nit_abort("Uninitialized attribute %s", "_marks_to_seq", LOCATE_compiling___compiling_icode, 143);
804 }
805 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]);
806 stack_frame_head = fra.me.prev;
807 return fra.me.REG[0];
808 }
809 val_t compiling___compiling_icode___I2CCompilerVisitor___closure(val_t p0){
810 struct {struct stack_frame_t me;} fra;
811 val_t REGB0;
812 val_t tmp;
813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
814 fra.me.file = LOCATE_compiling___compiling_icode;
815 fra.me.line = 146;
816 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure;
817 fra.me.has_broke = 0;
818 fra.me.REG_size = 1;
819 fra.me.REG[0] = NIT_NULL;
820 fra.me.REG[0] = p0;
821 /* ./compiling//compiling_icode.nit:146 */
822 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
823 if (UNTAG_Bool(REGB0)) {
824 } else {
825 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_compiling___compiling_icode, 146);
826 }
827 REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]);
828 stack_frame_head = fra.me.prev;
829 return REGB0;
830 }
831 void compiling___compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0, val_t p1){
832 struct {struct stack_frame_t me;} fra;
833 val_t REGB0;
834 val_t tmp;
835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
836 fra.me.file = LOCATE_compiling___compiling_icode;
837 fra.me.line = 146;
838 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___closure__eq;
839 fra.me.has_broke = 0;
840 fra.me.REG_size = 1;
841 fra.me.REG[0] = NIT_NULL;
842 fra.me.REG[0] = p0;
843 REGB0 = p1;
844 /* ./compiling//compiling_icode.nit:146 */
845 ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
846 stack_frame_head = fra.me.prev;
847 return;
848 }
849 val_t compiling___compiling_icode___I2CCompilerVisitor___visitor(val_t p0){
850 struct {struct stack_frame_t me;} fra;
851 val_t REGB0;
852 val_t tmp;
853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
854 fra.me.file = LOCATE_compiling___compiling_icode;
855 fra.me.line = 149;
856 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___visitor;
857 fra.me.has_broke = 0;
858 fra.me.REG_size = 1;
859 fra.me.REG[0] = NIT_NULL;
860 fra.me.REG[0] = p0;
861 /* ./compiling//compiling_icode.nit:149 */
862 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
863 if (UNTAG_Bool(REGB0)) {
864 } else {
865 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_compiling___compiling_icode, 149);
866 }
867 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]);
868 stack_frame_head = fra.me.prev;
869 return fra.me.REG[0];
870 }
871 val_t compiling___compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){
872 struct {struct stack_frame_t me;} fra;
873 val_t REGB0;
874 val_t tmp;
875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
876 fra.me.file = LOCATE_compiling___compiling_icode;
877 fra.me.line = 152;
878 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___iroutine;
879 fra.me.has_broke = 0;
880 fra.me.REG_size = 1;
881 fra.me.REG[0] = NIT_NULL;
882 fra.me.REG[0] = p0;
883 /* ./compiling//compiling_icode.nit:152 */
884 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
885 if (UNTAG_Bool(REGB0)) {
886 } else {
887 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_compiling___compiling_icode, 152);
888 }
889 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]);
890 stack_frame_head = fra.me.prev;
891 return fra.me.REG[0];
892 }
893 val_t compiling___compiling_icode___I2CCompilerVisitor___return_label(val_t p0){
894 struct {struct stack_frame_t me;} fra;
895 val_t tmp;
896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
897 fra.me.file = LOCATE_compiling___compiling_icode;
898 fra.me.line = 155;
899 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label;
900 fra.me.has_broke = 0;
901 fra.me.REG_size = 1;
902 fra.me.REG[0] = NIT_NULL;
903 fra.me.REG[0] = p0;
904 /* ./compiling//compiling_icode.nit:155 */
905 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]);
906 stack_frame_head = fra.me.prev;
907 return fra.me.REG[0];
908 }
909 void compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0, val_t p1){
910 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
911 val_t tmp;
912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
913 fra.me.file = LOCATE_compiling___compiling_icode;
914 fra.me.line = 155;
915 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq;
916 fra.me.has_broke = 0;
917 fra.me.REG_size = 2;
918 fra.me.REG[0] = NIT_NULL;
919 fra.me.REG[1] = NIT_NULL;
920 fra.me.REG[0] = p0;
921 fra.me.REG[1] = p1;
922 /* ./compiling//compiling_icode.nit:155 */
923 ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
924 stack_frame_head = fra.me.prev;
925 return;
926 }
927 void compiling___compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t p1){
928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
929 val_t tmp;
930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
931 fra.me.file = LOCATE_compiling___compiling_icode;
932 fra.me.line = 158;
933 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_decl;
934 fra.me.has_broke = 0;
935 fra.me.REG_size = 2;
936 fra.me.REG[0] = NIT_NULL;
937 fra.me.REG[1] = NIT_NULL;
938 fra.me.REG[0] = p0;
939 fra.me.REG[1] = p1;
940 /* ./compiling//compiling_icode.nit:160 */
941 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
942 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
943 stack_frame_head = fra.me.prev;
944 return;
945 }
946 val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
947 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
948 val_t REGB0;
949 val_t REGB1;
950 val_t tmp;
951 static val_t once_value_1; /* Once value */
952 static val_t once_value_2; /* Once value */
953 static val_t once_value_3; /* Once value */
954 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
955 fra.me.file = LOCATE_compiling___compiling_icode;
956 fra.me.line = 163;
957 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___new_instr;
958 fra.me.has_broke = 0;
959 fra.me.REG_size = 4;
960 fra.me.REG[0] = NIT_NULL;
961 fra.me.REG[1] = NIT_NULL;
962 fra.me.REG[2] = NIT_NULL;
963 fra.me.REG[3] = NIT_NULL;
964 fra.me.REG[0] = p0;
965 /* ./compiling//compiling_icode.nit:167 */
966 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
967 fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
968 /* ./compiling//compiling_icode.nit:168 */
969 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]);
970 /* ./compiling//compiling_icode.nit:169 */
971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
972 if (UNTAG_Bool(REGB0)) {
973 } else {
974 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
975 if (UNTAG_Bool(REGB1)) {
976 REGB1 = TAG_Bool(false);
977 REGB0 = REGB1;
978 } else {
979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
980 REGB0 = REGB1;
981 }
982 }
983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
984 if (UNTAG_Bool(REGB0)) {
985 /* ./compiling//compiling_icode.nit:170 */
986 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
987 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
988 /* ./compiling//compiling_icode.nit:171 */
989 if (!once_value_1) {
990 fra.me.REG[3] = BOX_NativeString("/* ");
991 REGB0 = TAG_Int(3);
992 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
993 once_value_1 = fra.me.REG[3];
994 register_static_object(&once_value_1);
995 } else fra.me.REG[3] = once_value_1;
996 fra.me.REG[3] = fra.me.REG[3];
997 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
998 /* ./compiling//compiling_icode.nit:172 */
999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1000 if (UNTAG_Bool(REGB0)) {
1001 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
1002 }
1003 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1004 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1005 if (UNTAG_Bool(REGB0)) {
1006 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
1007 }
1008 fra.me.REG[3] = CALL_location___SourceFile___filename(fra.me.REG[3])(fra.me.REG[3]);
1009 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1010 /* ./compiling//compiling_icode.nit:173 */
1011 if (!once_value_2) {
1012 fra.me.REG[3] = BOX_NativeString(":");
1013 REGB0 = TAG_Int(1);
1014 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1015 once_value_2 = fra.me.REG[3];
1016 register_static_object(&once_value_2);
1017 } else fra.me.REG[3] = once_value_2;
1018 fra.me.REG[3] = fra.me.REG[3];
1019 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1020 /* ./compiling//compiling_icode.nit:174 */
1021 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1022 if (UNTAG_Bool(REGB0)) {
1023 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 174);
1024 }
1025 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1026 fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
1027 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1028 /* ./compiling//compiling_icode.nit:175 */
1029 if (!once_value_3) {
1030 fra.me.REG[2] = BOX_NativeString(" */\n");
1031 REGB0 = TAG_Int(4);
1032 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1033 once_value_3 = fra.me.REG[2];
1034 register_static_object(&once_value_3);
1035 } else fra.me.REG[2] = once_value_3;
1036 fra.me.REG[2] = fra.me.REG[2];
1037 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1038 /* ./compiling//compiling_icode.nit:176 */
1039 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL;
1040 }
1041 /* ./compiling//compiling_icode.nit:178 */
1042 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1043 CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1044 /* ./compiling//compiling_icode.nit:179 */
1045 goto label4;
1046 label4: while(0);
1047 stack_frame_head = fra.me.prev;
1048 return fra.me.REG[1];
1049 }
1050 void compiling___compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){
1051 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1052 val_t REGB0;
1053 val_t tmp;
1054 static val_t once_value_1; /* Once value */
1055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1056 fra.me.file = LOCATE_compiling___compiling_icode;
1057 fra.me.line = 182;
1058 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_instr;
1059 fra.me.has_broke = 0;
1060 fra.me.REG_size = 2;
1061 fra.me.REG[0] = NIT_NULL;
1062 fra.me.REG[1] = NIT_NULL;
1063 fra.me.REG[0] = p0;
1064 fra.me.REG[1] = p1;
1065 /* ./compiling//compiling_icode.nit:184 */
1066 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]);
1067 fra.me.REG[1] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1068 if (!once_value_1) {
1069 fra.me.REG[0] = BOX_NativeString("\n");
1070 REGB0 = TAG_Int(1);
1071 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1072 once_value_1 = fra.me.REG[0];
1073 register_static_object(&once_value_1);
1074 } else fra.me.REG[0] = once_value_1;
1075 fra.me.REG[0] = fra.me.REG[0];
1076 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1077 stack_frame_head = fra.me.prev;
1078 return;
1079 }
1080 void compiling___compiling_icode___I2CCompilerVisitor___indent(val_t p0){
1081 struct {struct stack_frame_t me;} fra;
1082 val_t tmp;
1083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1084 fra.me.file = LOCATE_compiling___compiling_icode;
1085 fra.me.line = 187;
1086 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___indent;
1087 fra.me.has_broke = 0;
1088 fra.me.REG_size = 1;
1089 fra.me.REG[0] = NIT_NULL;
1090 fra.me.REG[0] = p0;
1091 /* ./compiling//compiling_icode.nit:189 */
1092 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1093 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]);
1094 stack_frame_head = fra.me.prev;
1095 return;
1096 }
1097 void compiling___compiling_icode___I2CCompilerVisitor___unindent(val_t p0){
1098 struct {struct stack_frame_t me;} fra;
1099 val_t tmp;
1100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1101 fra.me.file = LOCATE_compiling___compiling_icode;
1102 fra.me.line = 192;
1103 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___unindent;
1104 fra.me.has_broke = 0;
1105 fra.me.REG_size = 1;
1106 fra.me.REG[0] = NIT_NULL;
1107 fra.me.REG[0] = p0;
1108 /* ./compiling//compiling_icode.nit:194 */
1109 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1110 CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]);
1111 stack_frame_head = fra.me.prev;
1112 return;
1113 }
1114 void compiling___compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, val_t p2){
1115 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1116 val_t tmp;
1117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1118 fra.me.file = LOCATE_compiling___compiling_icode;
1119 fra.me.line = 197;
1120 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_assignment;
1121 fra.me.has_broke = 0;
1122 fra.me.REG_size = 3;
1123 fra.me.REG[0] = NIT_NULL;
1124 fra.me.REG[1] = NIT_NULL;
1125 fra.me.REG[2] = NIT_NULL;
1126 fra.me.REG[0] = p0;
1127 fra.me.REG[1] = p1;
1128 fra.me.REG[2] = p2;
1129 /* ./compiling//compiling_icode.nit:199 */
1130 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
1131 CALL_compiling___compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1132 stack_frame_head = fra.me.prev;
1133 return;
1134 }
1135 void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){
1136 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1137 val_t REGB0;
1138 val_t REGB1;
1139 val_t REGB2;
1140 val_t tmp;
1141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1142 fra.me.file = LOCATE_compiling___compiling_icode;
1143 fra.me.line = 205;
1144 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___add_location;
1145 fra.me.has_broke = 0;
1146 fra.me.REG_size = 5;
1147 fra.me.REG[0] = NIT_NULL;
1148 fra.me.REG[1] = NIT_NULL;
1149 fra.me.REG[2] = NIT_NULL;
1150 fra.me.REG[3] = NIT_NULL;
1151 fra.me.REG[4] = NIT_NULL;
1152 fra.me.REG[0] = p0;
1153 fra.me.REG[1] = p1;
1154 /* ./compiling//compiling_icode.nit:209 */
1155 fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]);
1156 /* ./compiling//compiling_icode.nit:210 */
1157 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1158 if (UNTAG_Bool(REGB0)) {
1159 } else {
1160 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1161 if (UNTAG_Bool(REGB1)) {
1162 REGB1 = TAG_Bool(false);
1163 REGB0 = REGB1;
1164 } else {
1165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1166 REGB0 = REGB1;
1167 }
1168 }
1169 if (UNTAG_Bool(REGB0)) {
1170 REGB0 = TAG_Bool(true);
1171 } else {
1172 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1173 if (UNTAG_Bool(REGB1)) {
1174 } else {
1175 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1176 if (UNTAG_Bool(REGB2)) {
1177 REGB2 = TAG_Bool(false);
1178 REGB1 = REGB2;
1179 } else {
1180 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1181 REGB1 = REGB2;
1182 }
1183 }
1184 REGB0 = REGB1;
1185 }
1186 if (UNTAG_Bool(REGB0)) {
1187 goto label1;
1188 }
1189 /* ./compiling//compiling_icode.nit:211 */
1190 ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
1191 /* ./compiling//compiling_icode.nit:212 */
1192 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1193 if (UNTAG_Bool(REGB0)) {
1194 } else {
1195 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1196 if (UNTAG_Bool(REGB1)) {
1197 REGB1 = TAG_Bool(false);
1198 REGB0 = REGB1;
1199 } else {
1200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1201 REGB0 = REGB1;
1202 }
1203 }
1204 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1205 if (UNTAG_Bool(REGB0)) {
1206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1207 if (UNTAG_Bool(REGB0)) {
1208 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1209 }
1210 fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
1211 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1212 if (UNTAG_Bool(REGB0)) {
1213 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1214 }
1215 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]);
1216 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[4]));
1217 if (UNTAG_Bool(REGB0)) {
1218 } else {
1219 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1220 if (UNTAG_Bool(REGB1)) {
1221 REGB1 = TAG_Bool(false);
1222 REGB0 = REGB1;
1223 } else {
1224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1225 REGB0 = REGB1;
1226 }
1227 }
1228 } else {
1229 REGB1 = TAG_Bool(false);
1230 REGB0 = REGB1;
1231 }
1232 if (UNTAG_Bool(REGB0)) {
1233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1234 if (UNTAG_Bool(REGB0)) {
1235 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1236 }
1237 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
1238 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1239 if (UNTAG_Bool(REGB1)) {
1240 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 212);
1241 }
1242 REGB1 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]);
1243 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1244 if (UNTAG_Bool(REGB2)) {
1245 } else {
1246 /* ./../lib/standard//kernel.nit:227 */
1247 REGB1 = TAG_Bool((REGB0)==(REGB1));
1248 /* ./compiling//compiling_icode.nit:212 */
1249 REGB2 = REGB1;
1250 }
1251 } else {
1252 REGB1 = TAG_Bool(false);
1253 REGB2 = REGB1;
1254 }
1255 if (UNTAG_Bool(REGB2)) {
1256 /* ./compiling//compiling_icode.nit:213 */
1257 goto label1;
1258 } else {
1259 /* ./compiling//compiling_icode.nit:215 */
1260 ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
1261 }
1262 label1: while(0);
1263 stack_frame_head = fra.me.prev;
1264 return;
1265 }
1266 val_t compiling___compiling_icode___I2CCompilerVisitor___basecname(val_t p0){
1267 struct {struct stack_frame_t me;} fra;
1268 val_t REGB0;
1269 val_t tmp;
1270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1271 fra.me.file = LOCATE_compiling___compiling_icode;
1272 fra.me.line = 219;
1273 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___basecname;
1274 fra.me.has_broke = 0;
1275 fra.me.REG_size = 1;
1276 fra.me.REG[0] = NIT_NULL;
1277 fra.me.REG[0] = p0;
1278 /* ./compiling//compiling_icode.nit:219 */
1279 REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
1280 if (UNTAG_Bool(REGB0)) {
1281 } else {
1282 nit_abort("Uninitialized attribute %s", "_basecname", LOCATE_compiling___compiling_icode, 219);
1283 }
1284 fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]);
1285 stack_frame_head = fra.me.prev;
1286 return fra.me.REG[0];
1287 }
1288 void compiling___compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1289 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___compiling_icode___I2CCompilerVisitor].i;
1290 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1291 val_t tmp;
1292 if (init_table[itpos0]) return;
1293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1294 fra.me.file = LOCATE_compiling___compiling_icode;
1295 fra.me.line = 222;
1296 fra.me.meth = LOCATE_compiling___compiling_icode___I2CCompilerVisitor___init;
1297 fra.me.has_broke = 0;
1298 fra.me.REG_size = 4;
1299 fra.me.REG[0] = NIT_NULL;
1300 fra.me.REG[1] = NIT_NULL;
1301 fra.me.REG[2] = NIT_NULL;
1302 fra.me.REG[3] = NIT_NULL;
1303 fra.me.REG[0] = p0;
1304 fra.me.REG[1] = p1;
1305 fra.me.REG[2] = p2;
1306 fra.me.REG[3] = p3;
1307 /* ./compiling//compiling_icode.nit:224 */
1308 ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1];
1309 /* ./compiling//compiling_icode.nit:225 */
1310 ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2];
1311 /* ./compiling//compiling_icode.nit:226 */
1312 ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3];
1313 stack_frame_head = fra.me.prev;
1314 init_table[itpos0] = 1;
1315 return;
1316 }
1317 val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
1318 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
1319 val_t REGB0;
1320 val_t REGB1;
1321 val_t REGB2;
1322 val_t REGB3;
1323 val_t REGB4;
1324 val_t REGB5;
1325 val_t tmp;
1326 static val_t once_value_1; /* Once value */
1327 static val_t once_value_2; /* Once value */
1328 static val_t once_value_3; /* Once value */
1329 static val_t once_value_4; /* Once value */
1330 static val_t once_value_6; /* Once value */
1331 static val_t once_value_7; /* Once value */
1332 static val_t once_value_8; /* Once value */
1333 static val_t once_value_9; /* Once value */
1334 static val_t once_value_10; /* Once value */
1335 static val_t once_value_11; /* Once value */
1336 static val_t once_value_13; /* Once value */
1337 static val_t once_value_14; /* Once value */
1338 static val_t once_value_15; /* Once value */
1339 static val_t once_value_16; /* Once value */
1340 static val_t once_value_17; /* Once value */
1341 static val_t once_value_18; /* Once value */
1342 static val_t once_value_19; /* Once value */
1343 static val_t once_value_20; /* Once value */
1344 static val_t once_value_21; /* Once value */
1345 static val_t once_value_22; /* Once value */
1346 static val_t once_value_23; /* Once value */
1347 static val_t once_value_25; /* Once value */
1348 static val_t once_value_26; /* Once value */
1349 static val_t once_value_27; /* Once value */
1350 static val_t once_value_28; /* Once value */
1351 static val_t once_value_29; /* Once value */
1352 static val_t once_value_30; /* Once value */
1353 static val_t once_value_31; /* Once value */
1354 static val_t once_value_32; /* Once value */
1355 static val_t once_value_33; /* Once value */
1356 static val_t once_value_34; /* Once value */
1357 static val_t once_value_35; /* Once value */
1358 static val_t once_value_36; /* Once value */
1359 static val_t once_value_37; /* Once value */
1360 static val_t once_value_38; /* Once value */
1361 static val_t once_value_39; /* Once value */
1362 static val_t once_value_40; /* Once value */
1363 static val_t once_value_41; /* Once value */
1364 static val_t once_value_42; /* Once value */
1365 static val_t once_value_43; /* Once value */
1366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1367 fra.me.file = LOCATE_compiling___compiling_icode;
1368 fra.me.line = 231;
1369 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_signature_to_c;
1370 fra.me.has_broke = 0;
1371 fra.me.REG_size = 12;
1372 fra.me.REG[0] = NIT_NULL;
1373 fra.me.REG[1] = NIT_NULL;
1374 fra.me.REG[2] = NIT_NULL;
1375 fra.me.REG[3] = NIT_NULL;
1376 fra.me.REG[4] = NIT_NULL;
1377 fra.me.REG[5] = NIT_NULL;
1378 fra.me.REG[6] = NIT_NULL;
1379 fra.me.REG[7] = NIT_NULL;
1380 fra.me.REG[8] = NIT_NULL;
1381 fra.me.REG[9] = NIT_NULL;
1382 fra.me.REG[10] = NIT_NULL;
1383 fra.me.REG[11] = NIT_NULL;
1384 fra.me.REG[0] = p0;
1385 fra.me.REG[1] = p1;
1386 fra.me.REG[2] = p2;
1387 fra.me.REG[3] = p3;
1388 fra.me.REG[4] = p4;
1389 fra.me.REG[5] = p5;
1390 /* ./compiling//compiling_icode.nit:237 */
1391 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
1392 /* ./compiling//compiling_icode.nit:238 */
1393 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
1394 /* ./compiling//compiling_icode.nit:239 */
1395 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1396 if (UNTAG_Bool(REGB0)) {
1397 } else {
1398 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1399 if (UNTAG_Bool(REGB1)) {
1400 REGB1 = TAG_Bool(false);
1401 REGB0 = REGB1;
1402 } else {
1403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1404 REGB0 = REGB1;
1405 }
1406 }
1407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1408 if (UNTAG_Bool(REGB0)) {
1409 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1410 }
1411 /* ./compiling//compiling_icode.nit:240 */
1412 REGB0 = TAG_Int(0);
1413 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
1414 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1415 /* ./../lib/standard//kernel.nit:352 */
1416 while(1) {
1417 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1418 if (UNTAG_Bool(REGB2)) {
1419 } else {
1420 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1421 }
1422 /* ./../lib/standard//kernel.nit:232 */
1423 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1424 /* ./../lib/standard//kernel.nit:352 */
1425 if (UNTAG_Bool(REGB2)) {
1426 /* ./compiling//compiling_icode.nit:240 */
1427 REGB2 = REGB0;
1428 /* ./compiling//compiling_icode.nit:241 */
1429 REGB3 = TAG_Int(3);
1430 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1431 if (!once_value_1) {
1432 fra.me.REG[8] = BOX_NativeString("p");
1433 REGB3 = TAG_Int(1);
1434 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1435 once_value_1 = fra.me.REG[8];
1436 register_static_object(&once_value_1);
1437 } else fra.me.REG[8] = once_value_1;
1438 fra.me.REG[8] = fra.me.REG[8];
1439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1440 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1442 if (!once_value_2) {
1443 fra.me.REG[8] = BOX_NativeString("");
1444 REGB3 = TAG_Int(0);
1445 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1446 once_value_2 = fra.me.REG[8];
1447 register_static_object(&once_value_2);
1448 } else fra.me.REG[8] = once_value_2;
1449 fra.me.REG[8] = fra.me.REG[8];
1450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1451 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1452 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1453 /* ./compiling//compiling_icode.nit:242 */
1454 REGB3 = TAG_Int(3);
1455 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1456 if (!once_value_3) {
1457 fra.me.REG[8] = BOX_NativeString("val_t p");
1458 REGB3 = TAG_Int(7);
1459 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1460 once_value_3 = fra.me.REG[8];
1461 register_static_object(&once_value_3);
1462 } else fra.me.REG[8] = once_value_3;
1463 fra.me.REG[8] = fra.me.REG[8];
1464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1465 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1467 if (!once_value_4) {
1468 fra.me.REG[8] = BOX_NativeString("");
1469 REGB2 = TAG_Int(0);
1470 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1471 once_value_4 = fra.me.REG[8];
1472 register_static_object(&once_value_4);
1473 } else fra.me.REG[8] = once_value_4;
1474 fra.me.REG[8] = fra.me.REG[8];
1475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1476 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1478 /* ./../lib/standard//kernel.nit:354 */
1479 REGB2 = TAG_Int(1);
1480 /* ./../lib/standard//kernel.nit:235 */
1481 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1482 /* ./../lib/standard//kernel.nit:354 */
1483 REGB0 = REGB2;
1484 } else {
1485 /* ./../lib/standard//kernel.nit:352 */
1486 goto label5;
1487 }
1488 }
1489 label5: while(0);
1490 /* ./compiling//compiling_icode.nit:244 */
1491 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1492 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1493 if (UNTAG_Bool(REGB0)) {
1494 } else {
1495 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1496 if (UNTAG_Bool(REGB1)) {
1497 REGB1 = TAG_Bool(false);
1498 REGB0 = REGB1;
1499 } else {
1500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1501 REGB0 = REGB1;
1502 }
1503 }
1504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1505 if (UNTAG_Bool(REGB0)) {
1506 /* ./compiling//compiling_icode.nit:245 */
1507 if (!once_value_6) {
1508 fra.me.REG[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
1509 REGB0 = TAG_Int(35);
1510 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1511 once_value_6 = fra.me.REG[4];
1512 register_static_object(&once_value_6);
1513 } else fra.me.REG[4] = once_value_6;
1514 fra.me.REG[4] = fra.me.REG[4];
1515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
1516 /* ./compiling//compiling_icode.nit:246 */
1517 REGB0 = TAG_Int(0);
1518 fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1519 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1520 if (UNTAG_Bool(REGB1)) {
1521 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 246);
1522 }
1523 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
1524 /* ./../lib/standard//kernel.nit:352 */
1525 while(1) {
1526 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1527 if (UNTAG_Bool(REGB2)) {
1528 } else {
1529 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1530 }
1531 /* ./../lib/standard//kernel.nit:232 */
1532 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1533 /* ./../lib/standard//kernel.nit:352 */
1534 if (UNTAG_Bool(REGB2)) {
1535 /* ./compiling//compiling_icode.nit:246 */
1536 REGB2 = REGB0;
1537 /* ./compiling//compiling_icode.nit:247 */
1538 REGB3 = TAG_Int(5);
1539 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1540 if (!once_value_7) {
1541 fra.me.REG[8] = BOX_NativeString("CLOS_");
1542 REGB3 = TAG_Int(5);
1543 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1544 once_value_7 = fra.me.REG[8];
1545 register_static_object(&once_value_7);
1546 } else fra.me.REG[8] = once_value_7;
1547 fra.me.REG[8] = fra.me.REG[8];
1548 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1550 if (!once_value_8) {
1551 fra.me.REG[8] = BOX_NativeString("_");
1552 REGB3 = TAG_Int(1);
1553 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1554 once_value_8 = fra.me.REG[8];
1555 register_static_object(&once_value_8);
1556 } else fra.me.REG[8] = once_value_8;
1557 fra.me.REG[8] = fra.me.REG[8];
1558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1559 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1560 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1561 if (!once_value_9) {
1562 fra.me.REG[8] = BOX_NativeString("");
1563 REGB3 = TAG_Int(0);
1564 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1565 once_value_9 = fra.me.REG[8];
1566 register_static_object(&once_value_9);
1567 } else fra.me.REG[8] = once_value_9;
1568 fra.me.REG[8] = fra.me.REG[8];
1569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1570 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1571 /* ./compiling//compiling_icode.nit:248 */
1572 fra.me.REG[8] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
1573 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1574 if (UNTAG_Bool(REGB3)) {
1575 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1576 }
1577 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB2);
1578 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1579 if (UNTAG_Bool(REGB3)) {
1580 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 248);
1581 }
1582 fra.me.REG[8] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[8])(fra.me.REG[8]);
1583 fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[8])(fra.me.REG[8]);
1584 /* ./compiling//compiling_icode.nit:249 */
1585 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
1586 /* ./compiling//compiling_icode.nit:250 */
1587 if (!once_value_10) {
1588 fra.me.REG[10] = BOX_NativeString("struct stack_frame_t *");
1589 REGB3 = TAG_Int(22);
1590 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1591 once_value_10 = fra.me.REG[10];
1592 register_static_object(&once_value_10);
1593 } else fra.me.REG[10] = once_value_10;
1594 fra.me.REG[10] = fra.me.REG[10];
1595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1596 /* ./compiling//compiling_icode.nit:251 */
1597 REGB3 = TAG_Int(0);
1598 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
1599 /* ./../lib/standard//kernel.nit:352 */
1600 while(1) {
1601 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
1602 if (UNTAG_Bool(REGB5)) {
1603 } else {
1604 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1605 }
1606 /* ./../lib/standard//kernel.nit:232 */
1607 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
1608 /* ./../lib/standard//kernel.nit:352 */
1609 if (UNTAG_Bool(REGB5)) {
1610 /* ./compiling//compiling_icode.nit:252 */
1611 if (!once_value_11) {
1612 fra.me.REG[10] = BOX_NativeString("val_t");
1613 REGB5 = TAG_Int(5);
1614 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB5);
1615 once_value_11 = fra.me.REG[10];
1616 register_static_object(&once_value_11);
1617 } else fra.me.REG[10] = once_value_11;
1618 fra.me.REG[10] = fra.me.REG[10];
1619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1620 /* ./../lib/standard//kernel.nit:354 */
1621 REGB5 = TAG_Int(1);
1622 /* ./../lib/standard//kernel.nit:235 */
1623 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
1624 /* ./../lib/standard//kernel.nit:354 */
1625 REGB3 = REGB5;
1626 } else {
1627 /* ./../lib/standard//kernel.nit:352 */
1628 goto label12;
1629 }
1630 }
1631 label12: while(0);
1632 /* ./compiling//compiling_icode.nit:254 */
1633 if (!once_value_13) {
1634 fra.me.REG[10] = BOX_NativeString("void");
1635 REGB3 = TAG_Int(4);
1636 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1637 once_value_13 = fra.me.REG[10];
1638 register_static_object(&once_value_13);
1639 } else fra.me.REG[10] = once_value_13;
1640 fra.me.REG[10] = fra.me.REG[10];
1641 /* ./compiling//compiling_icode.nit:255 */
1642 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
1643 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1644 if (UNTAG_Bool(REGB3)) {
1645 } else {
1646 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1647 if (UNTAG_Bool(REGB4)) {
1648 REGB4 = TAG_Bool(false);
1649 REGB3 = REGB4;
1650 } else {
1651 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
1652 REGB3 = REGB4;
1653 }
1654 }
1655 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
1656 if (UNTAG_Bool(REGB3)) {
1657 if (!once_value_14) {
1658 fra.me.REG[8] = BOX_NativeString("val_t");
1659 REGB3 = TAG_Int(5);
1660 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
1661 once_value_14 = fra.me.REG[8];
1662 register_static_object(&once_value_14);
1663 } else fra.me.REG[8] = once_value_14;
1664 fra.me.REG[8] = fra.me.REG[8];
1665 fra.me.REG[10] = fra.me.REG[8];
1666 }
1667 /* ./compiling//compiling_icode.nit:256 */
1668 REGB3 = TAG_Int(7);
1669 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1670 if (!once_value_15) {
1671 fra.me.REG[11] = BOX_NativeString("typedef ");
1672 REGB3 = TAG_Int(8);
1673 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
1674 once_value_15 = fra.me.REG[11];
1675 register_static_object(&once_value_15);
1676 } else fra.me.REG[11] = once_value_15;
1677 fra.me.REG[11] = fra.me.REG[11];
1678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
1679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1680 if (!once_value_16) {
1681 fra.me.REG[10] = BOX_NativeString(" (*");
1682 REGB3 = TAG_Int(3);
1683 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB3);
1684 once_value_16 = fra.me.REG[10];
1685 register_static_object(&once_value_16);
1686 } else fra.me.REG[10] = once_value_16;
1687 fra.me.REG[10] = fra.me.REG[10];
1688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
1689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1690 if (!once_value_17) {
1691 fra.me.REG[4] = BOX_NativeString(")(");
1692 REGB3 = TAG_Int(2);
1693 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1694 once_value_17 = fra.me.REG[4];
1695 register_static_object(&once_value_17);
1696 } else fra.me.REG[4] = once_value_17;
1697 fra.me.REG[4] = fra.me.REG[4];
1698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1699 if (!once_value_18) {
1700 fra.me.REG[4] = BOX_NativeString(", ");
1701 REGB3 = TAG_Int(2);
1702 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1703 once_value_18 = fra.me.REG[4];
1704 register_static_object(&once_value_18);
1705 } else fra.me.REG[4] = once_value_18;
1706 fra.me.REG[4] = fra.me.REG[4];
1707 fra.me.REG[4] = CALL_standard___string___Collection___join(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[4]);
1708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1709 if (!once_value_19) {
1710 fra.me.REG[4] = BOX_NativeString(");");
1711 REGB3 = TAG_Int(2);
1712 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1713 once_value_19 = fra.me.REG[4];
1714 register_static_object(&once_value_19);
1715 } else fra.me.REG[4] = once_value_19;
1716 fra.me.REG[4] = fra.me.REG[4];
1717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1718 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1719 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1720 /* ./compiling//compiling_icode.nit:257 */
1721 REGB3 = TAG_Int(3);
1722 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1723 if (!once_value_20) {
1724 fra.me.REG[4] = BOX_NativeString("clos_fun");
1725 REGB3 = TAG_Int(8);
1726 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1727 once_value_20 = fra.me.REG[4];
1728 register_static_object(&once_value_20);
1729 } else fra.me.REG[4] = once_value_20;
1730 fra.me.REG[4] = fra.me.REG[4];
1731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1732 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1733 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1734 if (!once_value_21) {
1735 fra.me.REG[4] = BOX_NativeString("");
1736 REGB3 = TAG_Int(0);
1737 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1738 once_value_21 = fra.me.REG[4];
1739 register_static_object(&once_value_21);
1740 } else fra.me.REG[4] = once_value_21;
1741 fra.me.REG[4] = fra.me.REG[4];
1742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1743 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
1745 /* ./compiling//compiling_icode.nit:258 */
1746 REGB3 = TAG_Int(3);
1747 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
1748 if (!once_value_22) {
1749 fra.me.REG[4] = BOX_NativeString("fun_t clos_fun");
1750 REGB3 = TAG_Int(14);
1751 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
1752 once_value_22 = fra.me.REG[4];
1753 register_static_object(&once_value_22);
1754 } else fra.me.REG[4] = once_value_22;
1755 fra.me.REG[4] = fra.me.REG[4];
1756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1757 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
1758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1759 if (!once_value_23) {
1760 fra.me.REG[4] = BOX_NativeString("");
1761 REGB2 = TAG_Int(0);
1762 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
1763 once_value_23 = fra.me.REG[4];
1764 register_static_object(&once_value_23);
1765 } else fra.me.REG[4] = once_value_23;
1766 fra.me.REG[4] = fra.me.REG[4];
1767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
1768 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1770 /* ./../lib/standard//kernel.nit:354 */
1771 REGB2 = TAG_Int(1);
1772 /* ./../lib/standard//kernel.nit:235 */
1773 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1774 /* ./../lib/standard//kernel.nit:354 */
1775 REGB0 = REGB2;
1776 } else {
1777 /* ./../lib/standard//kernel.nit:352 */
1778 goto label24;
1779 }
1780 }
1781 label24: while(0);
1782 }
1783 /* ./compiling//compiling_icode.nit:261 */
1784 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1785 if (UNTAG_Bool(REGB0)) {
1786 } else {
1787 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1788 if (UNTAG_Bool(REGB1)) {
1789 REGB1 = TAG_Bool(false);
1790 REGB0 = REGB1;
1791 } else {
1792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
1793 REGB0 = REGB1;
1794 }
1795 }
1796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1797 if (UNTAG_Bool(REGB0)) {
1798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
1799 }
1800 /* ./compiling//compiling_icode.nit:262 */
1801 if (!once_value_25) {
1802 fra.me.REG[5] = BOX_NativeString("void");
1803 REGB0 = TAG_Int(4);
1804 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1805 once_value_25 = fra.me.REG[5];
1806 register_static_object(&once_value_25);
1807 } else fra.me.REG[5] = once_value_25;
1808 fra.me.REG[5] = fra.me.REG[5];
1809 /* ./compiling//compiling_icode.nit:263 */
1810 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
1811 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1812 if (UNTAG_Bool(REGB0)) {
1813 } else {
1814 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1815 if (UNTAG_Bool(REGB1)) {
1816 REGB1 = TAG_Bool(false);
1817 REGB0 = REGB1;
1818 } else {
1819 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1820 REGB0 = REGB1;
1821 }
1822 }
1823 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1824 if (UNTAG_Bool(REGB0)) {
1825 if (!once_value_26) {
1826 fra.me.REG[0] = BOX_NativeString("val_t");
1827 REGB0 = TAG_Int(5);
1828 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1829 once_value_26 = fra.me.REG[0];
1830 register_static_object(&once_value_26);
1831 } else fra.me.REG[0] = once_value_26;
1832 fra.me.REG[0] = fra.me.REG[0];
1833 fra.me.REG[5] = fra.me.REG[0];
1834 }
1835 /* ./compiling//compiling_icode.nit:265 */
1836 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
1837 if (UNTAG_Bool(REGB0)) {
1838 /* ./compiling//compiling_icode.nit:266 */
1839 if (!once_value_27) {
1840 fra.me.REG[0] = BOX_NativeString("void");
1841 REGB0 = TAG_Int(4);
1842 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1843 once_value_27 = fra.me.REG[0];
1844 register_static_object(&once_value_27);
1845 } else fra.me.REG[0] = once_value_27;
1846 fra.me.REG[0] = fra.me.REG[0];
1847 } else {
1848 /* ./compiling//compiling_icode.nit:268 */
1849 if (!once_value_28) {
1850 fra.me.REG[8] = BOX_NativeString(", ");
1851 REGB0 = TAG_Int(2);
1852 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
1853 once_value_28 = fra.me.REG[8];
1854 register_static_object(&once_value_28);
1855 } else fra.me.REG[8] = once_value_28;
1856 fra.me.REG[8] = fra.me.REG[8];
1857 fra.me.REG[8] = CALL_standard___string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1858 fra.me.REG[0] = fra.me.REG[8];
1859 }
1860 /* ./compiling//compiling_icode.nit:270 */
1861 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1862 if (UNTAG_Bool(REGB0)) {
1863 } else {
1864 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1865 if (UNTAG_Bool(REGB1)) {
1866 REGB1 = TAG_Bool(false);
1867 REGB0 = REGB1;
1868 } else {
1869 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1870 REGB0 = REGB1;
1871 }
1872 }
1873 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1874 if (UNTAG_Bool(REGB0)) {
1875 REGB0 = TAG_Int(5);
1876 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1877 if (!once_value_29) {
1878 fra.me.REG[7] = BOX_NativeString("static const char * const LOCATE_");
1879 REGB0 = TAG_Int(33);
1880 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1881 once_value_29 = fra.me.REG[7];
1882 register_static_object(&once_value_29);
1883 } else fra.me.REG[7] = once_value_29;
1884 fra.me.REG[7] = fra.me.REG[7];
1885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1886 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1887 if (!once_value_30) {
1888 fra.me.REG[7] = BOX_NativeString(" = \"");
1889 REGB0 = TAG_Int(4);
1890 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
1891 once_value_30 = fra.me.REG[7];
1892 register_static_object(&once_value_30);
1893 } else fra.me.REG[7] = once_value_30;
1894 fra.me.REG[7] = fra.me.REG[7];
1895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1896 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1897 if (!once_value_31) {
1898 fra.me.REG[3] = BOX_NativeString("\";");
1899 REGB0 = TAG_Int(2);
1900 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1901 once_value_31 = fra.me.REG[3];
1902 register_static_object(&once_value_31);
1903 } else fra.me.REG[3] = once_value_31;
1904 fra.me.REG[3] = fra.me.REG[3];
1905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1906 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1907 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1908 }
1909 /* ./compiling//compiling_icode.nit:271 */
1910 REGB0 = TAG_Int(7);
1911 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1912 if (!once_value_32) {
1913 fra.me.REG[3] = BOX_NativeString("");
1914 REGB0 = TAG_Int(0);
1915 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1916 once_value_32 = fra.me.REG[3];
1917 register_static_object(&once_value_32);
1918 } else fra.me.REG[3] = once_value_32;
1919 fra.me.REG[3] = fra.me.REG[3];
1920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1922 if (!once_value_33) {
1923 fra.me.REG[3] = BOX_NativeString(" ");
1924 REGB0 = TAG_Int(1);
1925 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1926 once_value_33 = fra.me.REG[3];
1927 register_static_object(&once_value_33);
1928 } else fra.me.REG[3] = once_value_33;
1929 fra.me.REG[3] = fra.me.REG[3];
1930 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1932 if (!once_value_34) {
1933 fra.me.REG[3] = BOX_NativeString("(");
1934 REGB0 = TAG_Int(1);
1935 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1936 once_value_34 = fra.me.REG[3];
1937 register_static_object(&once_value_34);
1938 } else fra.me.REG[3] = once_value_34;
1939 fra.me.REG[3] = fra.me.REG[3];
1940 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1941 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
1942 if (!once_value_35) {
1943 fra.me.REG[3] = BOX_NativeString(");");
1944 REGB0 = TAG_Int(2);
1945 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1946 once_value_35 = fra.me.REG[3];
1947 register_static_object(&once_value_35);
1948 } else fra.me.REG[3] = once_value_35;
1949 fra.me.REG[3] = fra.me.REG[3];
1950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1951 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1952 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1953 /* ./compiling//compiling_icode.nit:272 */
1954 REGB0 = TAG_Int(7);
1955 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1956 if (!once_value_36) {
1957 fra.me.REG[3] = BOX_NativeString("typedef ");
1958 REGB0 = TAG_Int(8);
1959 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1960 once_value_36 = fra.me.REG[3];
1961 register_static_object(&once_value_36);
1962 } else fra.me.REG[3] = once_value_36;
1963 fra.me.REG[3] = fra.me.REG[3];
1964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1966 if (!once_value_37) {
1967 fra.me.REG[3] = BOX_NativeString(" (*");
1968 REGB0 = TAG_Int(3);
1969 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1970 once_value_37 = fra.me.REG[3];
1971 register_static_object(&once_value_37);
1972 } else fra.me.REG[3] = once_value_37;
1973 fra.me.REG[3] = fra.me.REG[3];
1974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
1976 if (!once_value_38) {
1977 fra.me.REG[3] = BOX_NativeString("_t)(");
1978 REGB0 = TAG_Int(4);
1979 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1980 once_value_38 = fra.me.REG[3];
1981 register_static_object(&once_value_38);
1982 } else fra.me.REG[3] = once_value_38;
1983 fra.me.REG[3] = fra.me.REG[3];
1984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
1986 if (!once_value_39) {
1987 fra.me.REG[3] = BOX_NativeString(");");
1988 REGB0 = TAG_Int(2);
1989 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1990 once_value_39 = fra.me.REG[3];
1991 register_static_object(&once_value_39);
1992 } else fra.me.REG[3] = once_value_39;
1993 fra.me.REG[3] = fra.me.REG[3];
1994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1995 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1996 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
1997 /* ./compiling//compiling_icode.nit:273 */
1998 REGB0 = TAG_Int(7);
1999 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2000 if (!once_value_40) {
2001 fra.me.REG[3] = BOX_NativeString("");
2002 REGB0 = TAG_Int(0);
2003 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2004 once_value_40 = fra.me.REG[3];
2005 register_static_object(&once_value_40);
2006 } else fra.me.REG[3] = once_value_40;
2007 fra.me.REG[3] = fra.me.REG[3];
2008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
2009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2010 if (!once_value_41) {
2011 fra.me.REG[5] = BOX_NativeString(" ");
2012 REGB0 = TAG_Int(1);
2013 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2014 once_value_41 = fra.me.REG[5];
2015 register_static_object(&once_value_41);
2016 } else fra.me.REG[5] = once_value_41;
2017 fra.me.REG[5] = fra.me.REG[5];
2018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
2019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2020 if (!once_value_42) {
2021 fra.me.REG[2] = BOX_NativeString("(");
2022 REGB0 = TAG_Int(1);
2023 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2024 once_value_42 = fra.me.REG[2];
2025 register_static_object(&once_value_42);
2026 } else fra.me.REG[2] = once_value_42;
2027 fra.me.REG[2] = fra.me.REG[2];
2028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[2]);
2029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2030 if (!once_value_43) {
2031 fra.me.REG[0] = BOX_NativeString("){");
2032 REGB0 = TAG_Int(2);
2033 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2034 once_value_43 = fra.me.REG[0];
2035 register_static_object(&once_value_43);
2036 } else fra.me.REG[0] = once_value_43;
2037 fra.me.REG[0] = fra.me.REG[0];
2038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
2039 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2040 CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
2041 /* ./compiling//compiling_icode.nit:274 */
2042 CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
2043 /* ./compiling//compiling_icode.nit:275 */
2044 goto label44;
2045 label44: while(0);
2046 stack_frame_head = fra.me.prev;
2047 return fra.me.REG[6];
2048 }
2049 val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t p2){
2050 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2051 val_t REGB0;
2052 val_t REGB1;
2053 val_t REGB2;
2054 val_t REGB3;
2055 val_t REGB4;
2056 val_t REGB5;
2057 val_t tmp;
2058 static val_t once_value_1; /* Once value */
2059 static val_t once_value_2; /* Once value */
2060 static val_t once_value_3; /* Once value */
2061 static val_t once_value_4; /* Once value */
2062 static val_t once_value_5; /* Once value */
2063 static val_t once_value_6; /* Once value */
2064 static val_t once_value_7; /* Once value */
2065 static val_t once_value_8; /* Once value */
2066 static val_t once_value_9; /* Once value */
2067 static val_t once_value_10; /* Once value */
2068 static val_t once_value_11; /* Once value */
2069 static val_t once_value_12; /* Once value */
2070 static val_t once_value_13; /* Once value */
2071 static val_t once_value_14; /* Once value */
2072 static val_t once_value_15; /* Once value */
2073 static val_t once_value_17; /* Once value */
2074 static val_t once_value_18; /* Once value */
2075 static val_t once_value_20; /* Once value */
2076 static val_t once_value_21; /* Once value */
2077 static val_t once_value_22; /* Once value */
2078 static val_t once_value_23; /* Once value */
2079 static val_t once_value_26; /* Once value */
2080 static val_t once_value_27; /* Once value */
2081 static val_t once_value_29; /* Once value */
2082 static val_t once_value_30; /* Once value */
2083 static val_t once_value_31; /* Once value */
2084 static val_t once_value_33; /* Once value */
2085 static val_t once_value_34; /* Once value */
2086 static val_t once_value_35; /* Once value */
2087 static val_t once_value_36; /* Once value */
2088 static val_t once_value_37; /* Once value */
2089 static val_t once_value_38; /* Once value */
2090 static val_t once_value_40; /* Once value */
2091 static val_t once_value_41; /* Once value */
2092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2093 fra.me.file = LOCATE_compiling___compiling_icode;
2094 fra.me.line = 278;
2095 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2096 fra.me.has_broke = 0;
2097 fra.me.REG_size = 10;
2098 fra.me.REG[0] = NIT_NULL;
2099 fra.me.REG[1] = NIT_NULL;
2100 fra.me.REG[2] = NIT_NULL;
2101 fra.me.REG[3] = NIT_NULL;
2102 fra.me.REG[4] = NIT_NULL;
2103 fra.me.REG[5] = NIT_NULL;
2104 fra.me.REG[6] = NIT_NULL;
2105 fra.me.REG[7] = NIT_NULL;
2106 fra.me.REG[8] = NIT_NULL;
2107 fra.me.REG[9] = NIT_NULL;
2108 fra.me.REG[0] = p0;
2109 fra.me.REG[1] = p1;
2110 fra.me.REG[2] = p2;
2111 /* ./compiling//compiling_icode.nit:282 */
2112 REGB0 = TAG_Int(0);
2113 /* ./compiling//compiling_icode.nit:283 */
2114 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2115 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2116 if (UNTAG_Bool(REGB1)) {
2117 } else {
2118 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2119 if (UNTAG_Bool(REGB2)) {
2120 REGB2 = TAG_Bool(false);
2121 REGB1 = REGB2;
2122 } else {
2123 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2124 REGB1 = REGB2;
2125 }
2126 }
2127 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2128 if (UNTAG_Bool(REGB1)) {
2129 /* ./compiling//compiling_icode.nit:284 */
2130 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
2131 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2132 if (UNTAG_Bool(REGB1)) {
2133 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 284);
2134 }
2135 REGB1 = CALL_location___Location___line_start(fra.me.REG[3])(fra.me.REG[3]);
2136 REGB0 = REGB1;
2137 }
2138 /* ./compiling//compiling_icode.nit:287 */
2139 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2140 REGB2 = TAG_Int(1);
2141 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2142 if (UNTAG_Bool(REGB3)) {
2143 } else {
2144 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2145 }
2146 /* ./../lib/standard//kernel.nit:234 */
2147 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2148 /* ./compiling//compiling_icode.nit:287 */
2149 if (UNTAG_Bool(REGB2)) {
2150 /* ./compiling//compiling_icode.nit:288 */
2151 REGB2 = TAG_Int(3);
2152 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2153 if (!once_value_1) {
2154 fra.me.REG[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG[");
2155 REGB2 = TAG_Int(48);
2156 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2157 once_value_1 = fra.me.REG[4];
2158 register_static_object(&once_value_1);
2159 } else fra.me.REG[4] = once_value_1;
2160 fra.me.REG[4] = fra.me.REG[4];
2161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2162 REGB2 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2163 REGB1 = TAG_Int(1);
2164 /* ./../lib/standard//kernel.nit:237 */
2165 REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
2166 /* ./compiling//compiling_icode.nit:288 */
2167 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
2168 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2169 if (!once_value_2) {
2170 fra.me.REG[4] = BOX_NativeString("];} fra;");
2171 REGB1 = TAG_Int(8);
2172 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2173 once_value_2 = fra.me.REG[4];
2174 register_static_object(&once_value_2);
2175 } else fra.me.REG[4] = once_value_2;
2176 fra.me.REG[4] = fra.me.REG[4];
2177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2178 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2179 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2180 } else {
2181 /* ./compiling//compiling_icode.nit:290 */
2182 if (!once_value_3) {
2183 fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
2184 REGB1 = TAG_Int(38);
2185 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2186 once_value_3 = fra.me.REG[3];
2187 register_static_object(&once_value_3);
2188 } else fra.me.REG[3] = once_value_3;
2189 fra.me.REG[3] = fra.me.REG[3];
2190 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2191 }
2192 /* ./compiling//compiling_icode.nit:292 */
2193 if (!once_value_4) {
2194 fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
2195 REGB1 = TAG_Int(59);
2196 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2197 once_value_4 = fra.me.REG[3];
2198 register_static_object(&once_value_4);
2199 } else fra.me.REG[3] = once_value_4;
2200 fra.me.REG[3] = fra.me.REG[3];
2201 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2202 /* ./compiling//compiling_icode.nit:293 */
2203 REGB1 = TAG_Int(3);
2204 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2205 if (!once_value_5) {
2206 fra.me.REG[4] = BOX_NativeString("fra.me.file = LOCATE_");
2207 REGB1 = TAG_Int(21);
2208 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2209 once_value_5 = fra.me.REG[4];
2210 register_static_object(&once_value_5);
2211 } else fra.me.REG[4] = once_value_5;
2212 fra.me.REG[4] = fra.me.REG[4];
2213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2214 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
2215 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
2216 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[4])(fra.me.REG[4]);
2217 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2218 if (!once_value_6) {
2219 fra.me.REG[4] = BOX_NativeString(";");
2220 REGB1 = TAG_Int(1);
2221 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2222 once_value_6 = fra.me.REG[4];
2223 register_static_object(&once_value_6);
2224 } else fra.me.REG[4] = once_value_6;
2225 fra.me.REG[4] = fra.me.REG[4];
2226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2227 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2228 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2229 /* ./compiling//compiling_icode.nit:294 */
2230 REGB1 = TAG_Int(3);
2231 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2232 if (!once_value_7) {
2233 fra.me.REG[4] = BOX_NativeString("fra.me.line = ");
2234 REGB1 = TAG_Int(14);
2235 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
2236 once_value_7 = fra.me.REG[4];
2237 register_static_object(&once_value_7);
2238 } else fra.me.REG[4] = once_value_7;
2239 fra.me.REG[4] = fra.me.REG[4];
2240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2241 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2243 if (!once_value_8) {
2244 fra.me.REG[4] = BOX_NativeString(";");
2245 REGB0 = TAG_Int(1);
2246 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2247 once_value_8 = fra.me.REG[4];
2248 register_static_object(&once_value_8);
2249 } else fra.me.REG[4] = once_value_8;
2250 fra.me.REG[4] = fra.me.REG[4];
2251 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2252 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2253 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2254 /* ./compiling//compiling_icode.nit:295 */
2255 REGB0 = TAG_Int(3);
2256 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2257 if (!once_value_9) {
2258 fra.me.REG[4] = BOX_NativeString("fra.me.meth = LOCATE_");
2259 REGB0 = TAG_Int(21);
2260 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2261 once_value_9 = fra.me.REG[4];
2262 register_static_object(&once_value_9);
2263 } else fra.me.REG[4] = once_value_9;
2264 fra.me.REG[4] = fra.me.REG[4];
2265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2266 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
2267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2268 if (!once_value_10) {
2269 fra.me.REG[4] = BOX_NativeString(";");
2270 REGB0 = TAG_Int(1);
2271 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2272 once_value_10 = fra.me.REG[4];
2273 register_static_object(&once_value_10);
2274 } else fra.me.REG[4] = once_value_10;
2275 fra.me.REG[4] = fra.me.REG[4];
2276 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2277 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2278 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2279 /* ./compiling//compiling_icode.nit:296 */
2280 if (!once_value_11) {
2281 fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;");
2282 REGB0 = TAG_Int(21);
2283 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2284 once_value_11 = fra.me.REG[3];
2285 register_static_object(&once_value_11);
2286 } else fra.me.REG[3] = once_value_11;
2287 fra.me.REG[3] = fra.me.REG[3];
2288 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2289 /* ./compiling//compiling_icode.nit:297 */
2290 REGB0 = TAG_Int(3);
2291 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2292 if (!once_value_12) {
2293 fra.me.REG[4] = BOX_NativeString("fra.me.REG_size = ");
2294 REGB0 = TAG_Int(18);
2295 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2296 once_value_12 = fra.me.REG[4];
2297 register_static_object(&once_value_12);
2298 } else fra.me.REG[4] = once_value_12;
2299 fra.me.REG[4] = fra.me.REG[4];
2300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2301 REGB0 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2302 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2303 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2304 if (!once_value_13) {
2305 fra.me.REG[4] = BOX_NativeString(";");
2306 REGB0 = TAG_Int(1);
2307 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2308 once_value_13 = fra.me.REG[4];
2309 register_static_object(&once_value_13);
2310 } else fra.me.REG[4] = once_value_13;
2311 fra.me.REG[4] = fra.me.REG[4];
2312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2313 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2314 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2315 /* ./compiling//compiling_icode.nit:300 */
2316 REGB0 = TAG_Int(0);
2317 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2318 /* ./../lib/standard//kernel.nit:352 */
2319 while(1) {
2320 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2321 if (UNTAG_Bool(REGB2)) {
2322 } else {
2323 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2324 }
2325 /* ./../lib/standard//kernel.nit:232 */
2326 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2327 /* ./../lib/standard//kernel.nit:352 */
2328 if (UNTAG_Bool(REGB2)) {
2329 /* ./compiling//compiling_icode.nit:300 */
2330 REGB2 = REGB0;
2331 /* ./compiling//compiling_icode.nit:301 */
2332 REGB3 = TAG_Int(3);
2333 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2334 if (!once_value_14) {
2335 fra.me.REG[4] = BOX_NativeString("fra.me.REG[");
2336 REGB3 = TAG_Int(11);
2337 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2338 once_value_14 = fra.me.REG[4];
2339 register_static_object(&once_value_14);
2340 } else fra.me.REG[4] = once_value_14;
2341 fra.me.REG[4] = fra.me.REG[4];
2342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2343 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2345 if (!once_value_15) {
2346 fra.me.REG[4] = BOX_NativeString("] = NIT_NULL;");
2347 REGB2 = TAG_Int(13);
2348 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2349 once_value_15 = fra.me.REG[4];
2350 register_static_object(&once_value_15);
2351 } else fra.me.REG[4] = once_value_15;
2352 fra.me.REG[4] = fra.me.REG[4];
2353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2354 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2355 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2356 /* ./../lib/standard//kernel.nit:354 */
2357 REGB2 = TAG_Int(1);
2358 /* ./../lib/standard//kernel.nit:235 */
2359 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2360 /* ./../lib/standard//kernel.nit:354 */
2361 REGB0 = REGB2;
2362 } else {
2363 /* ./../lib/standard//kernel.nit:352 */
2364 goto label16;
2365 }
2366 }
2367 label16: while(0);
2368 /* ./compiling//compiling_icode.nit:303 */
2369 REGB0 = TAG_Int(0);
2370 REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
2371 /* ./../lib/standard//kernel.nit:352 */
2372 while(1) {
2373 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2374 if (UNTAG_Bool(REGB2)) {
2375 } else {
2376 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2377 }
2378 /* ./../lib/standard//kernel.nit:232 */
2379 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2380 /* ./../lib/standard//kernel.nit:352 */
2381 if (UNTAG_Bool(REGB2)) {
2382 /* ./compiling//compiling_icode.nit:303 */
2383 REGB2 = REGB0;
2384 /* ./compiling//compiling_icode.nit:304 */
2385 REGB3 = TAG_Int(3);
2386 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2387 if (!once_value_17) {
2388 fra.me.REG[4] = BOX_NativeString("val_t REGB");
2389 REGB3 = TAG_Int(10);
2390 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
2391 once_value_17 = fra.me.REG[4];
2392 register_static_object(&once_value_17);
2393 } else fra.me.REG[4] = once_value_17;
2394 fra.me.REG[4] = fra.me.REG[4];
2395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2396 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2398 if (!once_value_18) {
2399 fra.me.REG[4] = BOX_NativeString(";");
2400 REGB2 = TAG_Int(1);
2401 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
2402 once_value_18 = fra.me.REG[4];
2403 register_static_object(&once_value_18);
2404 } else fra.me.REG[4] = once_value_18;
2405 fra.me.REG[4] = fra.me.REG[4];
2406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2407 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2408 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2409 /* ./../lib/standard//kernel.nit:354 */
2410 REGB2 = TAG_Int(1);
2411 /* ./../lib/standard//kernel.nit:235 */
2412 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2413 /* ./../lib/standard//kernel.nit:354 */
2414 REGB0 = REGB2;
2415 } else {
2416 /* ./../lib/standard//kernel.nit:352 */
2417 goto label19;
2418 }
2419 }
2420 label19: while(0);
2421 /* ./compiling//compiling_icode.nit:306 */
2422 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
2423 /* ./compiling//compiling_icode.nit:307 */
2424 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2425 if (UNTAG_Bool(REGB0)) {
2426 } else {
2427 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2428 if (UNTAG_Bool(REGB1)) {
2429 REGB1 = TAG_Bool(false);
2430 REGB0 = REGB1;
2431 } else {
2432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2433 REGB0 = REGB1;
2434 }
2435 }
2436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2437 if (UNTAG_Bool(REGB0)) {
2438 /* ./compiling//compiling_icode.nit:308 */
2439 REGB0 = TAG_Int(3);
2440 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2441 if (!once_value_20) {
2442 fra.me.REG[5] = BOX_NativeString("fun_t CREG[");
2443 REGB0 = TAG_Int(11);
2444 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2445 once_value_20 = fra.me.REG[5];
2446 register_static_object(&once_value_20);
2447 } else fra.me.REG[5] = once_value_20;
2448 fra.me.REG[5] = fra.me.REG[5];
2449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2450 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2451 if (UNTAG_Bool(REGB0)) {
2452 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 308);
2453 }
2454 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2455 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2457 if (!once_value_21) {
2458 fra.me.REG[5] = BOX_NativeString("];");
2459 REGB0 = TAG_Int(2);
2460 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2461 once_value_21 = fra.me.REG[5];
2462 register_static_object(&once_value_21);
2463 } else fra.me.REG[5] = once_value_21;
2464 fra.me.REG[5] = fra.me.REG[5];
2465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2466 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2467 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2468 /* ./compiling//compiling_icode.nit:309 */
2469 if (!once_value_22) {
2470 fra.me.REG[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
2471 REGB0 = TAG_Int(35);
2472 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2473 once_value_22 = fra.me.REG[4];
2474 register_static_object(&once_value_22);
2475 } else fra.me.REG[4] = once_value_22;
2476 fra.me.REG[4] = fra.me.REG[4];
2477 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2478 /* ./compiling//compiling_icode.nit:310 */
2479 if (!once_value_23) {
2480 fra.me.REG[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
2481 REGB0 = TAG_Int(27);
2482 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2483 once_value_23 = fra.me.REG[4];
2484 register_static_object(&once_value_23);
2485 } else fra.me.REG[4] = once_value_23;
2486 fra.me.REG[4] = fra.me.REG[4];
2487 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
2488 }
2489 /* ./compiling//compiling_icode.nit:312 */
2490 REGB0 = TAG_Int(0);
2491 fra.me.REG[4] = REGB0;
2492 /* ./compiling//compiling_icode.nit:313 */
2493 fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2494 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IRoutine___compile_inside_to_c_24));
2495 /* ./compiling//compiling_icode.nit:317 */
2496 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2497 if (UNTAG_Bool(REGB0)) {
2498 } else {
2499 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2500 if (UNTAG_Bool(REGB1)) {
2501 REGB1 = TAG_Bool(false);
2502 REGB0 = REGB1;
2503 } else {
2504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2505 REGB0 = REGB1;
2506 }
2507 }
2508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2509 if (UNTAG_Bool(REGB0)) {
2510 /* ./compiling//compiling_icode.nit:318 */
2511 REGB0 = TAG_Int(0);
2512 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2513 if (UNTAG_Bool(REGB1)) {
2514 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 318);
2515 }
2516 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2517 /* ./../lib/standard//kernel.nit:352 */
2518 while(1) {
2519 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2520 if (UNTAG_Bool(REGB2)) {
2521 } else {
2522 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2523 }
2524 /* ./../lib/standard//kernel.nit:232 */
2525 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2526 /* ./../lib/standard//kernel.nit:352 */
2527 if (UNTAG_Bool(REGB2)) {
2528 /* ./compiling//compiling_icode.nit:318 */
2529 REGB2 = REGB0;
2530 /* ./compiling//compiling_icode.nit:319 */
2531 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2532 if (UNTAG_Bool(REGB3)) {
2533 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 319);
2534 }
2535 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2536 /* ./compiling//compiling_icode.nit:320 */
2537 REGB3 = TAG_Int(5);
2538 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
2539 if (!once_value_26) {
2540 fra.me.REG[6] = BOX_NativeString("CREG[");
2541 REGB3 = TAG_Int(5);
2542 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2543 once_value_26 = fra.me.REG[6];
2544 register_static_object(&once_value_26);
2545 } else fra.me.REG[6] = once_value_26;
2546 fra.me.REG[6] = fra.me.REG[6];
2547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2548 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2550 if (!once_value_27) {
2551 fra.me.REG[6] = BOX_NativeString("] = ");
2552 REGB3 = TAG_Int(4);
2553 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2554 once_value_27 = fra.me.REG[6];
2555 register_static_object(&once_value_27);
2556 } else fra.me.REG[6] = once_value_27;
2557 fra.me.REG[6] = fra.me.REG[6];
2558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2559 fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
2560 REGB3 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
2561 /* ./../lib/standard//kernel.nit:235 */
2562 REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
2563 /* ./../lib/standard//collection//array.nit:278 */
2564 fra.me.REG[6] = fra.me.REG[2];
2565 /* ./../lib/standard//collection//array.nit:280 */
2566 REGB4 = TAG_Int(0);
2567 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2568 if (UNTAG_Bool(REGB5)) {
2569 } else {
2570 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2571 }
2572 /* ./../lib/standard//kernel.nit:233 */
2573 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2574 /* ./../lib/standard//collection//array.nit:280 */
2575 if (UNTAG_Bool(REGB4)) {
2576 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
2577 if (UNTAG_Bool(REGB4)) {
2578 } else {
2579 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2580 }
2581 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
2582 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2583 if (UNTAG_Bool(REGB5)) {
2584 } else {
2585 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2586 }
2587 /* ./../lib/standard//kernel.nit:232 */
2588 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2589 } else {
2590 /* ./../lib/standard//collection//array.nit:280 */
2591 REGB5 = TAG_Bool(false);
2592 REGB4 = REGB5;
2593 }
2594 if (UNTAG_Bool(REGB4)) {
2595 } else {
2596 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
2597 }
2598 /* ./../lib/standard//collection//array.nit:281 */
2599 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
2600 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2601 if (UNTAG_Bool(REGB4)) {
2602 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2603 }
2604 /* ./../lib/standard//collection//array.nit:718 */
2605 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
2606 /* ./../lib/standard//collection//array.nit:281 */
2607 goto label28;
2608 label28: while(0);
2609 /* ./compiling//compiling_icode.nit:320 */
2610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2611 if (!once_value_29) {
2612 fra.me.REG[6] = BOX_NativeString(";");
2613 REGB3 = TAG_Int(1);
2614 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
2615 once_value_29 = fra.me.REG[6];
2616 register_static_object(&once_value_29);
2617 } else fra.me.REG[6] = once_value_29;
2618 fra.me.REG[6] = fra.me.REG[6];
2619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2620 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2621 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
2622 /* ./compiling//compiling_icode.nit:321 */
2623 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
2624 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
2625 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
2626 /* ./compiling//compiling_icode.nit:322 */
2627 fra.me.REG[6] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]);
2628 fra.me.REG[6] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
2629 /* ./compiling//compiling_icode.nit:323 */
2630 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
2631 /* ./compiling//compiling_icode.nit:324 */
2632 if (!once_value_30) {
2633 fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *");
2634 REGB2 = TAG_Int(22);
2635 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2636 once_value_30 = fra.me.REG[7];
2637 register_static_object(&once_value_30);
2638 } else fra.me.REG[7] = once_value_30;
2639 fra.me.REG[7] = fra.me.REG[7];
2640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2641 /* ./compiling//compiling_icode.nit:325 */
2642 REGB2 = TAG_Int(0);
2643 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
2644 /* ./../lib/standard//kernel.nit:352 */
2645 while(1) {
2646 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2647 if (UNTAG_Bool(REGB4)) {
2648 } else {
2649 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2650 }
2651 /* ./../lib/standard//kernel.nit:232 */
2652 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2653 /* ./../lib/standard//kernel.nit:352 */
2654 if (UNTAG_Bool(REGB4)) {
2655 /* ./compiling//compiling_icode.nit:326 */
2656 if (!once_value_31) {
2657 fra.me.REG[7] = BOX_NativeString("val_t");
2658 REGB4 = TAG_Int(5);
2659 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB4);
2660 once_value_31 = fra.me.REG[7];
2661 register_static_object(&once_value_31);
2662 } else fra.me.REG[7] = once_value_31;
2663 fra.me.REG[7] = fra.me.REG[7];
2664 /* ./compiling//compiling_icode.nit:327 */
2665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2666 /* ./../lib/standard//kernel.nit:354 */
2667 REGB4 = TAG_Int(1);
2668 /* ./../lib/standard//kernel.nit:235 */
2669 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
2670 /* ./../lib/standard//kernel.nit:354 */
2671 REGB2 = REGB4;
2672 } else {
2673 /* ./../lib/standard//kernel.nit:352 */
2674 goto label32;
2675 }
2676 }
2677 label32: while(0);
2678 /* ./compiling//compiling_icode.nit:329 */
2679 if (!once_value_33) {
2680 fra.me.REG[7] = BOX_NativeString("void");
2681 REGB2 = TAG_Int(4);
2682 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2683 once_value_33 = fra.me.REG[7];
2684 register_static_object(&once_value_33);
2685 } else fra.me.REG[7] = once_value_33;
2686 fra.me.REG[7] = fra.me.REG[7];
2687 /* ./compiling//compiling_icode.nit:330 */
2688 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
2689 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2690 if (UNTAG_Bool(REGB2)) {
2691 } else {
2692 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2693 if (UNTAG_Bool(REGB3)) {
2694 REGB3 = TAG_Bool(false);
2695 REGB2 = REGB3;
2696 } else {
2697 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2698 REGB2 = REGB3;
2699 }
2700 }
2701 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2702 if (UNTAG_Bool(REGB2)) {
2703 if (!once_value_34) {
2704 fra.me.REG[6] = BOX_NativeString("val_t");
2705 REGB2 = TAG_Int(5);
2706 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
2707 once_value_34 = fra.me.REG[6];
2708 register_static_object(&once_value_34);
2709 } else fra.me.REG[6] = once_value_34;
2710 fra.me.REG[6] = fra.me.REG[6];
2711 fra.me.REG[7] = fra.me.REG[6];
2712 }
2713 /* ./compiling//compiling_icode.nit:331 */
2714 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
2715 REGB2 = TAG_Int(5);
2716 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
2717 if (!once_value_35) {
2718 fra.me.REG[9] = BOX_NativeString("");
2719 REGB2 = TAG_Int(0);
2720 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB2);
2721 once_value_35 = fra.me.REG[9];
2722 register_static_object(&once_value_35);
2723 } else fra.me.REG[9] = once_value_35;
2724 fra.me.REG[9] = fra.me.REG[9];
2725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
2726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2727 if (!once_value_36) {
2728 fra.me.REG[7] = BOX_NativeString(" (*)(");
2729 REGB2 = TAG_Int(5);
2730 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2731 once_value_36 = fra.me.REG[7];
2732 register_static_object(&once_value_36);
2733 } else fra.me.REG[7] = once_value_36;
2734 fra.me.REG[7] = fra.me.REG[7];
2735 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2736 if (!once_value_37) {
2737 fra.me.REG[7] = BOX_NativeString(", ");
2738 REGB2 = TAG_Int(2);
2739 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2740 once_value_37 = fra.me.REG[7];
2741 register_static_object(&once_value_37);
2742 } else fra.me.REG[7] = once_value_37;
2743 fra.me.REG[7] = fra.me.REG[7];
2744 fra.me.REG[7] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2746 if (!once_value_38) {
2747 fra.me.REG[7] = BOX_NativeString(")");
2748 REGB2 = TAG_Int(1);
2749 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
2750 once_value_38 = fra.me.REG[7];
2751 register_static_object(&once_value_38);
2752 } else fra.me.REG[7] = once_value_38;
2753 fra.me.REG[7] = fra.me.REG[7];
2754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
2755 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2756 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8]);
2757 /* ./../lib/standard//kernel.nit:354 */
2758 REGB2 = TAG_Int(1);
2759 /* ./../lib/standard//kernel.nit:235 */
2760 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2761 /* ./../lib/standard//kernel.nit:354 */
2762 REGB0 = REGB2;
2763 } else {
2764 /* ./../lib/standard//kernel.nit:352 */
2765 goto label39;
2766 }
2767 }
2768 label39: while(0);
2769 }
2770 /* ./compiling//compiling_icode.nit:334 */
2771 if (!once_value_40) {
2772 fra.me.REG[2] = BOX_NativeString("val_t tmp;");
2773 REGB0 = TAG_Int(10);
2774 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2775 once_value_40 = fra.me.REG[2];
2776 register_static_object(&once_value_40);
2777 } else fra.me.REG[2] = once_value_40;
2778 fra.me.REG[2] = fra.me.REG[2];
2779 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2780 /* ./compiling//compiling_icode.nit:337 */
2781 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
2782 /* ./compiling//compiling_icode.nit:338 */
2783 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2784 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2785 /* ./compiling//compiling_icode.nit:341 */
2786 fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
2787 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2788 /* ./compiling//compiling_icode.nit:343 */
2789 if (!once_value_41) {
2790 fra.me.REG[3] = BOX_NativeString("stack_frame_head = fra.me.prev;");
2791 REGB0 = TAG_Int(31);
2792 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2793 once_value_41 = fra.me.REG[3];
2794 register_static_object(&once_value_41);
2795 } else fra.me.REG[3] = once_value_41;
2796 fra.me.REG[3] = fra.me.REG[3];
2797 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2798 /* ./compiling//compiling_icode.nit:344 */
2799 CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2800 /* ./compiling//compiling_icode.nit:345 */
2801 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
2802 /* ./compiling//compiling_icode.nit:346 */
2803 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2804 if (UNTAG_Bool(REGB0)) {
2805 } else {
2806 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2807 if (UNTAG_Bool(REGB1)) {
2808 REGB1 = TAG_Bool(false);
2809 REGB0 = REGB1;
2810 } else {
2811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2812 REGB0 = REGB1;
2813 }
2814 }
2815 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2816 if (UNTAG_Bool(REGB0)) {
2817 /* ./compiling//compiling_icode.nit:347 */
2818 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2819 goto label42;
2820 } else {
2821 /* ./compiling//compiling_icode.nit:349 */
2822 fra.me.REG[0] = NIT_NULL;
2823 goto label42;
2824 }
2825 label42: while(0);
2826 stack_frame_head = fra.me.prev;
2827 return fra.me.REG[0];
2828 }
2829 void OC_compiling___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){
2830 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2831 val_t REGB0;
2832 val_t REGB1;
2833 val_t REGB2;
2834 fun_t CREG[1];
2835 val_t tmp;
2836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2837 fra.me.file = LOCATE_compiling___compiling_icode;
2838 fra.me.line = 0;
2839 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_inside_to_c;
2840 fra.me.has_broke = 0;
2841 fra.me.REG_size = 2;
2842 fra.me.REG[0] = NIT_NULL;
2843 fra.me.REG[1] = NIT_NULL;
2844 fra.me.closure_ctx = closctx_param;
2845 fra.me.closure_funs = CREG;
2846 fra.me.REG[0] = p0;
2847 CREG[0] = clos_fun0;
2848 /* ./compiling//compiling_icode.nit:314 */
2849 fra.me.REG[1] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
2850 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2851 if (UNTAG_Bool(REGB0)) {
2852 } else {
2853 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2854 if (UNTAG_Bool(REGB1)) {
2855 REGB1 = TAG_Bool(false);
2856 REGB0 = REGB1;
2857 } else {
2858 /* ./../lib/standard//kernel.nit:227 */
2859 REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
2860 /* ./compiling//compiling_icode.nit:314 */
2861 REGB0 = REGB1;
2862 }
2863 }
2864 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2865 if (UNTAG_Bool(REGB0)) {
2866 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
2867 /* ./../lib/standard//collection//array.nit:278 */
2868 fra.me.REG[1] = closctx->REG[2];
2869 REGB0 = closctx->REG[4];
2870 /* ./../lib/standard//collection//array.nit:280 */
2871 REGB1 = TAG_Int(0);
2872 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2873 if (UNTAG_Bool(REGB2)) {
2874 } else {
2875 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2876 }
2877 /* ./../lib/standard//kernel.nit:233 */
2878 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2879 /* ./../lib/standard//collection//array.nit:280 */
2880 if (UNTAG_Bool(REGB1)) {
2881 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2882 if (UNTAG_Bool(REGB1)) {
2883 } else {
2884 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2885 }
2886 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2887 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2888 if (UNTAG_Bool(REGB2)) {
2889 } else {
2890 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2891 }
2892 /* ./../lib/standard//kernel.nit:232 */
2893 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2894 } else {
2895 /* ./../lib/standard//collection//array.nit:280 */
2896 REGB2 = TAG_Bool(false);
2897 REGB1 = REGB2;
2898 }
2899 if (UNTAG_Bool(REGB1)) {
2900 } else {
2901 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
2902 }
2903 /* ./../lib/standard//collection//array.nit:281 */
2904 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2905 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2906 if (UNTAG_Bool(REGB1)) {
2907 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2908 }
2909 /* ./../lib/standard//collection//array.nit:718 */
2910 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
2911 /* ./../lib/standard//collection//array.nit:281 */
2912 goto label25;
2913 label25: while(0);
2914 /* ./compiling//compiling_icode.nit:314 */
2915 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]);
2916 }
2917 /* ./compiling//compiling_icode.nit:315 */
2918 REGB0 = TAG_Int(1);
2919 /* ./../lib/standard//kernel.nit:235 */
2920 REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0));
2921 /* ./compiling//compiling_icode.nit:315 */
2922 closctx->REG[4] = REGB0;
2923 stack_frame_head = fra.me.prev;
2924 return;
2925 }
2926 val_t compiling___compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1, val_t p2, val_t p3){
2927 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2928 val_t tmp;
2929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2930 fra.me.file = LOCATE_compiling___compiling_icode;
2931 fra.me.line = 353;
2932 fra.me.meth = LOCATE_compiling___compiling_icode___IRoutine___compile_to_c;
2933 fra.me.has_broke = 0;
2934 fra.me.REG_size = 4;
2935 fra.me.REG[0] = NIT_NULL;
2936 fra.me.REG[1] = NIT_NULL;
2937 fra.me.REG[2] = NIT_NULL;
2938 fra.me.REG[3] = NIT_NULL;
2939 fra.me.REG[0] = p0;
2940 fra.me.REG[1] = p1;
2941 fra.me.REG[2] = p2;
2942 fra.me.REG[3] = p3;
2943 /* ./compiling//compiling_icode.nit:357 */
2944 fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
2945 /* ./compiling//compiling_icode.nit:358 */
2946 fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2947 goto label1;
2948 label1: while(0);
2949 stack_frame_head = fra.me.prev;
2950 return fra.me.REG[3];
2951 }
2952 void compiling___compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){
2953 struct {struct stack_frame_t me;} fra;
2954 val_t tmp;
2955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2956 fra.me.file = LOCATE_compiling___compiling_icode;
2957 fra.me.line = 363;
2958 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___compile_to_c;
2959 fra.me.has_broke = 0;
2960 fra.me.REG_size = 0;
2961 /* ./compiling//compiling_icode.nit:363 */
2962 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 363);
2963 stack_frame_head = fra.me.prev;
2964 return;
2965 }
2966 val_t compiling___compiling_icode___ICode___need_result(val_t p0){
2967 struct {struct stack_frame_t me;} fra;
2968 val_t REGB0;
2969 val_t REGB1;
2970 val_t tmp;
2971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2972 fra.me.file = LOCATE_compiling___compiling_icode;
2973 fra.me.line = 366;
2974 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___need_result;
2975 fra.me.has_broke = 0;
2976 fra.me.REG_size = 1;
2977 fra.me.REG[0] = NIT_NULL;
2978 fra.me.REG[0] = p0;
2979 /* ./compiling//compiling_icode.nit:369 */
2980 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
2981 /* ./compiling//compiling_icode.nit:370 */
2982 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2983 if (UNTAG_Bool(REGB0)) {
2984 } else {
2985 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2986 if (UNTAG_Bool(REGB1)) {
2987 REGB1 = TAG_Bool(false);
2988 REGB0 = REGB1;
2989 } else {
2990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2991 REGB0 = REGB1;
2992 }
2993 }
2994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2995 if (UNTAG_Bool(REGB0)) {
2996 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2997 if (UNTAG_Bool(REGB0)) {
2998 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 370);
2999 }
3000 fra.me.REG[0] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3001 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3002 if (UNTAG_Bool(REGB0)) {
3003 } else {
3004 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3005 if (UNTAG_Bool(REGB1)) {
3006 REGB1 = TAG_Bool(false);
3007 REGB0 = REGB1;
3008 } else {
3009 /* ./../lib/standard//kernel.nit:227 */
3010 REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL));
3011 /* ./compiling//compiling_icode.nit:370 */
3012 REGB0 = REGB1;
3013 }
3014 }
3015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3016 } else {
3017 REGB1 = TAG_Bool(false);
3018 REGB0 = REGB1;
3019 }
3020 goto label1;
3021 label1: while(0);
3022 stack_frame_head = fra.me.prev;
3023 return REGB0;
3024 }
3025 void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){
3026 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3027 val_t REGB0;
3028 val_t REGB1;
3029 val_t tmp;
3030 static val_t once_value_1; /* Once value */
3031 static val_t once_value_2; /* Once value */
3032 static val_t once_value_3; /* Once value */
3033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3034 fra.me.file = LOCATE_compiling___compiling_icode;
3035 fra.me.line = 373;
3036 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___store_result;
3037 fra.me.has_broke = 0;
3038 fra.me.REG_size = 5;
3039 fra.me.REG[0] = NIT_NULL;
3040 fra.me.REG[1] = NIT_NULL;
3041 fra.me.REG[2] = NIT_NULL;
3042 fra.me.REG[3] = NIT_NULL;
3043 fra.me.REG[4] = NIT_NULL;
3044 fra.me.REG[0] = p0;
3045 fra.me.REG[1] = p1;
3046 fra.me.REG[2] = p2;
3047 /* ./compiling//compiling_icode.nit:376 */
3048 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3049 /* ./compiling//compiling_icode.nit:377 */
3050 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3051 if (UNTAG_Bool(REGB0)) {
3052 } else {
3053 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3054 if (UNTAG_Bool(REGB1)) {
3055 REGB1 = TAG_Bool(false);
3056 REGB0 = REGB1;
3057 } else {
3058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3059 REGB0 = REGB1;
3060 }
3061 }
3062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3063 if (UNTAG_Bool(REGB0)) {
3064 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3065 if (UNTAG_Bool(REGB0)) {
3066 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 377);
3067 }
3068 fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[3])(fra.me.REG[3]);
3069 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3070 if (UNTAG_Bool(REGB0)) {
3071 } else {
3072 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3073 if (UNTAG_Bool(REGB1)) {
3074 REGB1 = TAG_Bool(false);
3075 REGB0 = REGB1;
3076 } else {
3077 /* ./../lib/standard//kernel.nit:227 */
3078 REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
3079 /* ./compiling//compiling_icode.nit:377 */
3080 REGB0 = REGB1;
3081 }
3082 }
3083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3084 } else {
3085 REGB1 = TAG_Bool(false);
3086 REGB0 = REGB1;
3087 }
3088 if (UNTAG_Bool(REGB0)) {
3089 /* ./compiling//compiling_icode.nit:378 */
3090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3091 if (UNTAG_Bool(REGB0)) {
3092 } else {
3093 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3094 if (UNTAG_Bool(REGB1)) {
3095 REGB1 = TAG_Bool(false);
3096 REGB0 = REGB1;
3097 } else {
3098 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3099 REGB0 = REGB1;
3100 }
3101 }
3102 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3103 if (UNTAG_Bool(REGB0)) {
3104 } else {
3105 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 378);
3106 }
3107 /* ./compiling//compiling_icode.nit:379 */
3108 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3109 /* ./compiling//compiling_icode.nit:380 */
3110 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3111 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3112 /* ./compiling//compiling_icode.nit:381 */
3113 if (!once_value_1) {
3114 fra.me.REG[3] = BOX_NativeString(" = ");
3115 REGB0 = TAG_Int(3);
3116 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3117 once_value_1 = fra.me.REG[3];
3118 register_static_object(&once_value_1);
3119 } else fra.me.REG[3] = once_value_1;
3120 fra.me.REG[3] = fra.me.REG[3];
3121 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3122 /* ./compiling//compiling_icode.nit:382 */
3123 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3124 /* ./compiling//compiling_icode.nit:383 */
3125 if (!once_value_2) {
3126 fra.me.REG[3] = BOX_NativeString(";\n");
3127 REGB0 = TAG_Int(2);
3128 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3129 once_value_2 = fra.me.REG[3];
3130 register_static_object(&once_value_2);
3131 } else fra.me.REG[3] = once_value_2;
3132 fra.me.REG[3] = fra.me.REG[3];
3133 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3134 } else {
3135 /* ./compiling//compiling_icode.nit:384 */
3136 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3137 if (UNTAG_Bool(REGB0)) {
3138 } else {
3139 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3140 if (UNTAG_Bool(REGB1)) {
3141 REGB1 = TAG_Bool(false);
3142 REGB0 = REGB1;
3143 } else {
3144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3145 REGB0 = REGB1;
3146 }
3147 }
3148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3149 if (UNTAG_Bool(REGB0)) {
3150 REGB0 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3151 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3152 } else {
3153 REGB1 = TAG_Bool(false);
3154 REGB0 = REGB1;
3155 }
3156 if (UNTAG_Bool(REGB0)) {
3157 /* ./compiling//compiling_icode.nit:387 */
3158 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3159 /* ./compiling//compiling_icode.nit:388 */
3160 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3161 /* ./compiling//compiling_icode.nit:389 */
3162 if (!once_value_3) {
3163 fra.me.REG[2] = BOX_NativeString(";\n");
3164 REGB0 = TAG_Int(2);
3165 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3166 once_value_3 = fra.me.REG[2];
3167 register_static_object(&once_value_3);
3168 } else fra.me.REG[2] = once_value_3;
3169 fra.me.REG[2] = fra.me.REG[2];
3170 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3171 }
3172 }
3173 stack_frame_head = fra.me.prev;
3174 return;
3175 }
3176 val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
3177 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3178 val_t REGB0;
3179 val_t REGB1;
3180 val_t tmp;
3181 static val_t once_value_1; /* Once value */
3182 static val_t once_value_2; /* Once value */
3183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3184 fra.me.file = LOCATE_compiling___compiling_icode;
3185 fra.me.line = 393;
3186 fra.me.meth = LOCATE_compiling___compiling_icode___ICode___new_result;
3187 fra.me.has_broke = 0;
3188 fra.me.REG_size = 4;
3189 fra.me.REG[0] = NIT_NULL;
3190 fra.me.REG[1] = NIT_NULL;
3191 fra.me.REG[2] = NIT_NULL;
3192 fra.me.REG[3] = NIT_NULL;
3193 fra.me.REG[0] = p0;
3194 fra.me.REG[1] = p1;
3195 /* ./compiling//compiling_icode.nit:397 */
3196 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
3197 if (UNTAG_Bool(REGB0)) {
3198 REGB0 = TAG_Bool(true);
3199 } else {
3200 REGB1 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
3201 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3202 REGB0 = REGB1;
3203 }
3204 if (UNTAG_Bool(REGB0)) {
3205 } else {
3206 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 397);
3207 }
3208 /* ./compiling//compiling_icode.nit:398 */
3209 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3210 /* ./compiling//compiling_icode.nit:399 */
3211 fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
3212 /* ./compiling//compiling_icode.nit:400 */
3213 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3214 if (UNTAG_Bool(REGB0)) {
3215 } else {
3216 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3217 if (UNTAG_Bool(REGB1)) {
3218 REGB1 = TAG_Bool(false);
3219 REGB0 = REGB1;
3220 } else {
3221 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3222 REGB0 = REGB1;
3223 }
3224 }
3225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3226 if (UNTAG_Bool(REGB0)) {
3227 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3228 if (UNTAG_Bool(REGB0)) {
3229 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 400);
3230 }
3231 fra.me.REG[3] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
3232 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3233 if (UNTAG_Bool(REGB0)) {
3234 } else {
3235 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3236 if (UNTAG_Bool(REGB1)) {
3237 REGB1 = TAG_Bool(false);
3238 REGB0 = REGB1;
3239 } else {
3240 /* ./../lib/standard//kernel.nit:227 */
3241 REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
3242 /* ./compiling//compiling_icode.nit:400 */
3243 REGB0 = REGB1;
3244 }
3245 }
3246 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3247 } else {
3248 REGB1 = TAG_Bool(false);
3249 REGB0 = REGB1;
3250 }
3251 if (UNTAG_Bool(REGB0)) {
3252 /* ./compiling//compiling_icode.nit:401 */
3253 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3254 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3255 /* ./compiling//compiling_icode.nit:402 */
3256 if (!once_value_1) {
3257 fra.me.REG[0] = BOX_NativeString(" = ");
3258 REGB0 = TAG_Int(3);
3259 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3260 once_value_1 = fra.me.REG[0];
3261 register_static_object(&once_value_1);
3262 } else fra.me.REG[0] = once_value_1;
3263 fra.me.REG[0] = fra.me.REG[0];
3264 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3265 }
3266 /* ./compiling//compiling_icode.nit:404 */
3267 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
3268 /* ./compiling//compiling_icode.nit:405 */
3269 if (!once_value_2) {
3270 fra.me.REG[1] = BOX_NativeString(";\n");
3271 REGB0 = TAG_Int(2);
3272 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
3273 once_value_2 = fra.me.REG[1];
3274 register_static_object(&once_value_2);
3275 } else fra.me.REG[1] = once_value_2;
3276 fra.me.REG[1] = fra.me.REG[1];
3277 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3278 /* ./compiling//compiling_icode.nit:406 */
3279 goto label3;
3280 label3: while(0);
3281 stack_frame_head = fra.me.prev;
3282 return fra.me.REG[0];
3283 }
3284 void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
3285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3286 val_t REGB0;
3287 val_t REGB1;
3288 val_t tmp;
3289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3290 fra.me.file = LOCATE_compiling___compiling_icode;
3291 fra.me.line = 411;
3292 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3293 fra.me.has_broke = 0;
3294 fra.me.REG_size = 4;
3295 fra.me.REG[0] = NIT_NULL;
3296 fra.me.REG[1] = NIT_NULL;
3297 fra.me.REG[2] = NIT_NULL;
3298 fra.me.REG[3] = NIT_NULL;
3299 fra.me.REG[0] = p0;
3300 fra.me.REG[1] = p1;
3301 /* ./compiling//compiling_icode.nit:413 */
3302 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3303 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3304 /* ./compiling//compiling_icode.nit:414 */
3305 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3307 /* ./compiling//compiling_icode.nit:415 */
3308 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3309 /* ./compiling//compiling_icode.nit:416 */
3310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3311 if (UNTAG_Bool(REGB0)) {
3312 } else {
3313 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3314 if (UNTAG_Bool(REGB1)) {
3315 REGB1 = TAG_Bool(false);
3316 REGB0 = REGB1;
3317 } else {
3318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3319 REGB0 = REGB1;
3320 }
3321 }
3322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3323 if (UNTAG_Bool(REGB0)) {
3324 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3325 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3326 }
3327 /* ./compiling//compiling_icode.nit:417 */
3328 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3329 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ISeq___compile_to_c_1));
3330 /* ./compiling//compiling_icode.nit:420 */
3331 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3332 stack_frame_head = fra.me.prev;
3333 return;
3334 }
3335 void OC_compiling___compiling_icode___ISeq___compile_to_c_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3336 struct {struct stack_frame_t me;} fra;
3337 fun_t CREG[1];
3338 val_t tmp;
3339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3340 fra.me.file = LOCATE_compiling___compiling_icode;
3341 fra.me.line = 0;
3342 fra.me.meth = LOCATE_compiling___compiling_icode___ISeq___compile_to_c;
3343 fra.me.has_broke = 0;
3344 fra.me.REG_size = 1;
3345 fra.me.REG[0] = NIT_NULL;
3346 fra.me.closure_ctx = closctx_param;
3347 fra.me.closure_funs = CREG;
3348 fra.me.REG[0] = p0;
3349 CREG[0] = clos_fun0;
3350 /* ./compiling//compiling_icode.nit:418 */
3351 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3352 stack_frame_head = fra.me.prev;
3353 return;
3354 }
3355 void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
3356 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3357 val_t REGB0;
3358 val_t tmp;
3359 static val_t once_value_1; /* Once value */
3360 static val_t once_value_2; /* Once value */
3361 static val_t once_value_3; /* Once value */
3362 static val_t once_value_4; /* Once value */
3363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3364 fra.me.file = LOCATE_compiling___compiling_icode;
3365 fra.me.line = 425;
3366 fra.me.meth = LOCATE_compiling___compiling_icode___IIf___compile_to_c;
3367 fra.me.has_broke = 0;
3368 fra.me.REG_size = 4;
3369 fra.me.REG[0] = NIT_NULL;
3370 fra.me.REG[1] = NIT_NULL;
3371 fra.me.REG[2] = NIT_NULL;
3372 fra.me.REG[3] = NIT_NULL;
3373 fra.me.REG[0] = p0;
3374 fra.me.REG[1] = p1;
3375 /* ./compiling//compiling_icode.nit:427 */
3376 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3377 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3378 /* ./compiling//compiling_icode.nit:428 */
3379 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3380 /* ./compiling//compiling_icode.nit:429 */
3381 if (!once_value_1) {
3382 fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool(");
3383 REGB0 = TAG_Int(15);
3384 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3385 once_value_1 = fra.me.REG[3];
3386 register_static_object(&once_value_1);
3387 } else fra.me.REG[3] = once_value_1;
3388 fra.me.REG[3] = fra.me.REG[3];
3389 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3390 /* ./compiling//compiling_icode.nit:430 */
3391 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
3392 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3393 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3394 /* ./compiling//compiling_icode.nit:431 */
3395 if (!once_value_2) {
3396 fra.me.REG[3] = BOX_NativeString(")) {\n");
3397 REGB0 = TAG_Int(5);
3398 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3399 once_value_2 = fra.me.REG[3];
3400 register_static_object(&once_value_2);
3401 } else fra.me.REG[3] = once_value_2;
3402 fra.me.REG[3] = fra.me.REG[3];
3403 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3404 /* ./compiling//compiling_icode.nit:432 */
3405 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3406 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3407 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3409 if (UNTAG_Bool(REGB0)) {
3410 /* ./compiling//compiling_icode.nit:433 */
3411 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3412 /* ./compiling//compiling_icode.nit:434 */
3413 fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
3414 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3415 /* ./compiling//compiling_icode.nit:435 */
3416 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3417 }
3418 /* ./compiling//compiling_icode.nit:437 */
3419 fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3420 fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
3421 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
3422 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3423 if (UNTAG_Bool(REGB0)) {
3424 /* ./compiling//compiling_icode.nit:438 */
3425 if (!once_value_3) {
3426 fra.me.REG[3] = BOX_NativeString("} else {");
3427 REGB0 = TAG_Int(8);
3428 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3429 once_value_3 = fra.me.REG[3];
3430 register_static_object(&once_value_3);
3431 } else fra.me.REG[3] = once_value_3;
3432 fra.me.REG[3] = fra.me.REG[3];
3433 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3434 /* ./compiling//compiling_icode.nit:439 */
3435 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3436 /* ./compiling//compiling_icode.nit:440 */
3437 fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
3438 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3439 /* ./compiling//compiling_icode.nit:441 */
3440 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3441 }
3442 /* ./compiling//compiling_icode.nit:443 */
3443 if (!once_value_4) {
3444 fra.me.REG[0] = BOX_NativeString("}");
3445 REGB0 = TAG_Int(1);
3446 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3447 once_value_4 = fra.me.REG[0];
3448 register_static_object(&once_value_4);
3449 } else fra.me.REG[0] = once_value_4;
3450 fra.me.REG[0] = fra.me.REG[0];
3451 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3452 stack_frame_head = fra.me.prev;
3453 return;
3454 }
3455 void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
3456 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3457 val_t REGB0;
3458 val_t REGB1;
3459 val_t tmp;
3460 static val_t once_value_1; /* Once value */
3461 static val_t once_value_3; /* Once value */
3462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3463 fra.me.file = LOCATE_compiling___compiling_icode;
3464 fra.me.line = 448;
3465 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3466 fra.me.has_broke = 0;
3467 fra.me.REG_size = 4;
3468 fra.me.REG[0] = NIT_NULL;
3469 fra.me.REG[1] = NIT_NULL;
3470 fra.me.REG[2] = NIT_NULL;
3471 fra.me.REG[3] = NIT_NULL;
3472 fra.me.REG[0] = p0;
3473 fra.me.REG[1] = p1;
3474 /* ./compiling//compiling_icode.nit:450 */
3475 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3476 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3477 /* ./compiling//compiling_icode.nit:451 */
3478 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3480 /* ./compiling//compiling_icode.nit:452 */
3481 fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3482 /* ./compiling//compiling_icode.nit:453 */
3483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3484 if (UNTAG_Bool(REGB0)) {
3485 } else {
3486 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3487 if (UNTAG_Bool(REGB1)) {
3488 REGB1 = TAG_Bool(false);
3489 REGB0 = REGB1;
3490 } else {
3491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3492 REGB0 = REGB1;
3493 }
3494 }
3495 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3496 if (UNTAG_Bool(REGB0)) {
3497 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3498 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3499 }
3500 /* ./compiling//compiling_icode.nit:454 */
3501 if (!once_value_1) {
3502 fra.me.REG[2] = BOX_NativeString("while(1) {");
3503 REGB0 = TAG_Int(10);
3504 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3505 once_value_1 = fra.me.REG[2];
3506 register_static_object(&once_value_1);
3507 } else fra.me.REG[2] = once_value_1;
3508 fra.me.REG[2] = fra.me.REG[2];
3509 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3510 /* ./compiling//compiling_icode.nit:455 */
3511 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3512 /* ./compiling//compiling_icode.nit:456 */
3513 fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
3514 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ILoop___compile_to_c_2));
3515 /* ./compiling//compiling_icode.nit:459 */
3516 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3517 /* ./compiling//compiling_icode.nit:460 */
3518 if (!once_value_3) {
3519 fra.me.REG[2] = BOX_NativeString("}");
3520 REGB0 = TAG_Int(1);
3521 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3522 once_value_3 = fra.me.REG[2];
3523 register_static_object(&once_value_3);
3524 } else fra.me.REG[2] = once_value_3;
3525 fra.me.REG[2] = fra.me.REG[2];
3526 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3527 /* ./compiling//compiling_icode.nit:461 */
3528 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3529 stack_frame_head = fra.me.prev;
3530 return;
3531 }
3532 void OC_compiling___compiling_icode___ILoop___compile_to_c_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3533 struct {struct stack_frame_t me;} fra;
3534 fun_t CREG[1];
3535 val_t tmp;
3536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3537 fra.me.file = LOCATE_compiling___compiling_icode;
3538 fra.me.line = 0;
3539 fra.me.meth = LOCATE_compiling___compiling_icode___ILoop___compile_to_c;
3540 fra.me.has_broke = 0;
3541 fra.me.REG_size = 1;
3542 fra.me.REG[0] = NIT_NULL;
3543 fra.me.closure_ctx = closctx_param;
3544 fra.me.closure_funs = CREG;
3545 fra.me.REG[0] = p0;
3546 CREG[0] = clos_fun0;
3547 /* ./compiling//compiling_icode.nit:457 */
3548 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
3549 stack_frame_head = fra.me.prev;
3550 return;
3551 }
3552 void compiling___compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){
3553 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3554 val_t tmp;
3555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3556 fra.me.file = LOCATE_compiling___compiling_icode;
3557 fra.me.line = 466;
3558 fra.me.meth = LOCATE_compiling___compiling_icode___IEscape___compile_to_c;
3559 fra.me.has_broke = 0;
3560 fra.me.REG_size = 3;
3561 fra.me.REG[0] = NIT_NULL;
3562 fra.me.REG[1] = NIT_NULL;
3563 fra.me.REG[2] = NIT_NULL;
3564 fra.me.REG[0] = p0;
3565 fra.me.REG[1] = p1;
3566 /* ./compiling//compiling_icode.nit:468 */
3567 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
3568 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3569 /* ./compiling//compiling_icode.nit:469 */
3570 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
3571 fra.me.REG[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
3572 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3573 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3574 stack_frame_head = fra.me.prev;
3575 return;
3576 }
3577 void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
3578 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
3579 val_t REGB0;
3580 val_t REGB1;
3581 val_t tmp;
3582 static val_t once_value_1; /* Once value */
3583 static val_t once_value_2; /* Once value */
3584 static val_t once_value_5; /* Once value */
3585 static val_t once_value_6; /* Once value */
3586 static val_t once_value_7; /* Once value */
3587 static val_t once_value_8; /* Once value */
3588 static val_t once_value_9; /* Once value */
3589 static val_t once_value_10; /* Once value */
3590 static val_t once_value_11; /* Once value */
3591 static val_t once_value_12; /* Once value */
3592 static val_t once_value_13; /* Once value */
3593 static val_t once_value_14; /* Once value */
3594 static val_t once_value_15; /* Once value */
3595 static val_t once_value_16; /* Once value */
3596 static val_t once_value_18; /* Once value */
3597 static val_t once_value_19; /* Once value */
3598 static val_t once_value_20; /* Once value */
3599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3600 fra.me.file = LOCATE_compiling___compiling_icode;
3601 fra.me.line = 474;
3602 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
3603 fra.me.has_broke = 0;
3604 fra.me.REG_size = 10;
3605 fra.me.REG[0] = NIT_NULL;
3606 fra.me.REG[1] = NIT_NULL;
3607 fra.me.REG[2] = NIT_NULL;
3608 fra.me.REG[3] = NIT_NULL;
3609 fra.me.REG[4] = NIT_NULL;
3610 fra.me.REG[5] = NIT_NULL;
3611 fra.me.REG[6] = NIT_NULL;
3612 fra.me.REG[7] = NIT_NULL;
3613 fra.me.REG[8] = NIT_NULL;
3614 fra.me.REG[9] = NIT_NULL;
3615 fra.me.REG[0] = p0;
3616 fra.me.REG[1] = p1;
3617 /* ./compiling//compiling_icode.nit:474 */
3618 fra.me.REG[2] = fra.me.REG[0];
3619 /* ./compiling//compiling_icode.nit:476 */
3620 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
3621 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3622 /* ./compiling//compiling_icode.nit:477 */
3623 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[2])(fra.me.REG[2]);
3624 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3625 /* ./compiling//compiling_icode.nit:480 */
3626 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3627 /* ./compiling//compiling_icode.nit:481 */
3628 fra.me.REG[5] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
3629 /* ./compiling//compiling_icode.nit:482 */
3630 fra.me.REG[6] = NIT_NULL;
3631 /* ./compiling//compiling_icode.nit:483 */
3632 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3633 if (UNTAG_Bool(REGB0)) {
3634 } else {
3635 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3636 if (UNTAG_Bool(REGB1)) {
3637 REGB1 = TAG_Bool(false);
3638 REGB0 = REGB1;
3639 } else {
3640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3641 REGB0 = REGB1;
3642 }
3643 }
3644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3645 if (UNTAG_Bool(REGB0)) {
3646 /* ./compiling//compiling_icode.nit:485 */
3647 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3648 if (UNTAG_Bool(REGB0)) {
3649 /* ./compiling//compiling_icode.nit:486 */
3650 if (!once_value_1) {
3651 fra.me.REG[7] = BOX_NativeString("closctx");
3652 REGB0 = TAG_Int(7);
3653 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3654 once_value_1 = fra.me.REG[7];
3655 register_static_object(&once_value_1);
3656 } else fra.me.REG[7] = once_value_1;
3657 fra.me.REG[7] = fra.me.REG[7];
3658 fra.me.REG[6] = fra.me.REG[7];
3659 } else {
3660 /* ./compiling//compiling_icode.nit:488 */
3661 if (!once_value_2) {
3662 fra.me.REG[7] = BOX_NativeString("(&(fra.me))");
3663 REGB0 = TAG_Int(11);
3664 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3665 once_value_2 = fra.me.REG[7];
3666 register_static_object(&once_value_2);
3667 } else fra.me.REG[7] = once_value_2;
3668 fra.me.REG[7] = fra.me.REG[7];
3669 fra.me.REG[6] = fra.me.REG[7];
3670 }
3671 /* ./compiling//compiling_icode.nit:492 */
3672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3673 /* ./compiling//compiling_icode.nit:495 */
3674 fra.me.REG[7] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
3675 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3676 /* ./compiling//compiling_icode.nit:498 */
3677 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3678 if (UNTAG_Bool(REGB0)) {
3679 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 498);
3680 }
3681 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IAbsCall___compile_to_c_3));
3682 }
3683 /* ./compiling//compiling_icode.nit:509 */
3684 fra.me.REG[3] = CALL_compiling___compiling_icode___IAbsCall___compile_call_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
3685 /* ./compiling//compiling_icode.nit:510 */
3686 fra.me.REG[5] = fra.me.REG[3];
3687 /* ./compiling//compiling_icode.nit:513 */
3688 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3689 if (UNTAG_Bool(REGB0)) {
3690 } else {
3691 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3692 if (UNTAG_Bool(REGB1)) {
3693 REGB1 = TAG_Bool(false);
3694 REGB0 = REGB1;
3695 } else {
3696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3697 REGB0 = REGB1;
3698 }
3699 }
3700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3701 if (UNTAG_Bool(REGB0)) {
3702 /* ./compiling//compiling_icode.nit:514 */
3703 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
3704 /* ./compiling//compiling_icode.nit:515 */
3705 CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3706 /* ./compiling//compiling_icode.nit:517 */
3707 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[7])(fra.me.REG[7]);
3708 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3709 if (UNTAG_Bool(REGB0)) {
3710 /* ./compiling//compiling_icode.nit:519 */
3711 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3712 /* ./compiling//compiling_icode.nit:520 */
3713 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
3714 if (UNTAG_Bool(REGB0)) {
3715 /* ./compiling//compiling_icode.nit:521 */
3716 if (!once_value_5) {
3717 fra.me.REG[8] = BOX_NativeString("tmp");
3718 REGB0 = TAG_Int(3);
3719 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3720 once_value_5 = fra.me.REG[8];
3721 register_static_object(&once_value_5);
3722 } else fra.me.REG[8] = once_value_5;
3723 fra.me.REG[8] = fra.me.REG[8];
3724 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3725 /* ./compiling//compiling_icode.nit:522 */
3726 if (!once_value_6) {
3727 fra.me.REG[8] = BOX_NativeString(" = ");
3728 REGB0 = TAG_Int(3);
3729 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3730 once_value_6 = fra.me.REG[8];
3731 register_static_object(&once_value_6);
3732 } else fra.me.REG[8] = once_value_6;
3733 fra.me.REG[8] = fra.me.REG[8];
3734 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3735 /* ./compiling//compiling_icode.nit:523 */
3736 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3737 /* ./compiling//compiling_icode.nit:524 */
3738 if (!once_value_7) {
3739 fra.me.REG[8] = BOX_NativeString(";\n");
3740 REGB0 = TAG_Int(2);
3741 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3742 once_value_7 = fra.me.REG[8];
3743 register_static_object(&once_value_7);
3744 } else fra.me.REG[8] = once_value_7;
3745 fra.me.REG[8] = fra.me.REG[8];
3746 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
3747 /* ./compiling//compiling_icode.nit:525 */
3748 fra.me.REG[8] = NEW_Writer_compiling___compiling_writer___Writer___init();
3749 fra.me.REG[5] = fra.me.REG[8];
3750 /* ./compiling//compiling_icode.nit:526 */
3751 if (!once_value_8) {
3752 fra.me.REG[8] = BOX_NativeString("tmp");
3753 REGB0 = TAG_Int(3);
3754 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3755 once_value_8 = fra.me.REG[8];
3756 register_static_object(&once_value_8);
3757 } else fra.me.REG[8] = once_value_8;
3758 fra.me.REG[8] = fra.me.REG[8];
3759 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3760 if (UNTAG_Bool(REGB0)) {
3761 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 526);
3762 }
3763 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
3764 } else {
3765 /* ./compiling//compiling_icode.nit:528 */
3766 fra.me.REG[5] = NIT_NULL;
3767 /* ./compiling//compiling_icode.nit:529 */
3768 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3769 /* ./compiling//compiling_icode.nit:530 */
3770 if (!once_value_9) {
3771 fra.me.REG[3] = BOX_NativeString(";\n");
3772 REGB0 = TAG_Int(2);
3773 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3774 once_value_9 = fra.me.REG[3];
3775 register_static_object(&once_value_9);
3776 } else fra.me.REG[3] = once_value_9;
3777 fra.me.REG[3] = fra.me.REG[3];
3778 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3779 }
3780 /* ./compiling//compiling_icode.nit:533 */
3781 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3782 if (!once_value_10) {
3783 fra.me.REG[4] = BOX_NativeString("switch (");
3784 REGB0 = TAG_Int(8);
3785 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3786 once_value_10 = fra.me.REG[4];
3787 register_static_object(&once_value_10);
3788 } else fra.me.REG[4] = once_value_10;
3789 fra.me.REG[4] = fra.me.REG[4];
3790 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3791 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
3792 if (!once_value_11) {
3793 fra.me.REG[3] = BOX_NativeString("->has_broke) {\n");
3794 REGB0 = TAG_Int(15);
3795 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3796 once_value_11 = fra.me.REG[3];
3797 register_static_object(&once_value_11);
3798 } else fra.me.REG[3] = once_value_11;
3799 fra.me.REG[3] = fra.me.REG[3];
3800 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3801 /* ./compiling//compiling_icode.nit:534 */
3802 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
3803 /* ./compiling//compiling_icode.nit:536 */
3804 if (!once_value_12) {
3805 fra.me.REG[3] = BOX_NativeString("case 0: break;");
3806 REGB0 = TAG_Int(14);
3807 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3808 once_value_12 = fra.me.REG[3];
3809 register_static_object(&once_value_12);
3810 } else fra.me.REG[3] = once_value_12;
3811 fra.me.REG[3] = fra.me.REG[3];
3812 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3813 /* ./compiling//compiling_icode.nit:537 */
3814 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
3815 /* ./compiling//compiling_icode.nit:538 */
3816 fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[7])(fra.me.REG[7]);
3817 /* ./compiling//compiling_icode.nit:539 */
3818 REGB0 = TAG_Bool(false);
3819 /* ./compiling//compiling_icode.nit:540 */
3820 while(1) {
3821 REGB1 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[7])(fra.me.REG[7]);
3822 if (UNTAG_Bool(REGB1)) {
3823 /* ./compiling//compiling_icode.nit:541 */
3824 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[7])(fra.me.REG[7]);
3825 /* ./compiling//compiling_icode.nit:542 */
3826 REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3827 if (UNTAG_Bool(REGB1)) {
3828 /* ./compiling//compiling_icode.nit:545 */
3829 fra.me.REG[8] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3830 if (!once_value_13) {
3831 fra.me.REG[9] = BOX_NativeString("case ");
3832 REGB1 = TAG_Int(5);
3833 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3834 once_value_13 = fra.me.REG[9];
3835 register_static_object(&once_value_13);
3836 } else fra.me.REG[9] = once_value_13;
3837 fra.me.REG[9] = fra.me.REG[9];
3838 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3839 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[7])(fra.me.REG[7]);
3840 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3841 if (UNTAG_Bool(REGB1)) {
3842 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 545);
3843 }
3844 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3845 fra.me.REG[8] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3846 if (!once_value_14) {
3847 fra.me.REG[9] = BOX_NativeString(": ");
3848 REGB1 = TAG_Int(2);
3849 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
3850 once_value_14 = fra.me.REG[9];
3851 register_static_object(&once_value_14);
3852 } else fra.me.REG[9] = once_value_14;
3853 fra.me.REG[9] = fra.me.REG[9];
3854 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3855 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
3856 if (!once_value_15) {
3857 fra.me.REG[8] = BOX_NativeString("->has_broke = 0; goto ");
3858 REGB1 = TAG_Int(22);
3859 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3860 once_value_15 = fra.me.REG[8];
3861 register_static_object(&once_value_15);
3862 } else fra.me.REG[8] = once_value_15;
3863 fra.me.REG[8] = fra.me.REG[8];
3864 fra.me.REG[8] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3865 fra.me.REG[9] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3866 fra.me.REG[9] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
3867 if (!once_value_16) {
3868 fra.me.REG[8] = BOX_NativeString(";\n");
3869 REGB1 = TAG_Int(2);
3870 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3871 once_value_16 = fra.me.REG[8];
3872 register_static_object(&once_value_16);
3873 } else fra.me.REG[8] = once_value_16;
3874 fra.me.REG[8] = fra.me.REG[8];
3875 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
3876 } else {
3877 /* ./compiling//compiling_icode.nit:548 */
3878 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
3879 if (UNTAG_Bool(REGB1)) {
3880 } else {
3881 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 548);
3882 }
3883 /* ./compiling//compiling_icode.nit:549 */
3884 CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
3885 /* ./compiling//compiling_icode.nit:550 */
3886 REGB1 = TAG_Bool(true);
3887 REGB0 = REGB1;
3888 }
3889 /* ./compiling//compiling_icode.nit:552 */
3890 CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[7])(fra.me.REG[7]);
3891 } else {
3892 /* ./compiling//compiling_icode.nit:540 */
3893 goto label17;
3894 }
3895 }
3896 label17: while(0);
3897 /* ./compiling//compiling_icode.nit:555 */
3898 if (UNTAG_Bool(REGB0)) {
3899 /* ./compiling//compiling_icode.nit:558 */
3900 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
3901 if (!once_value_18) {
3902 fra.me.REG[6] = BOX_NativeString("default: goto ");
3903 REGB0 = TAG_Int(14);
3904 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3905 once_value_18 = fra.me.REG[6];
3906 register_static_object(&once_value_18);
3907 } else fra.me.REG[6] = once_value_18;
3908 fra.me.REG[6] = fra.me.REG[6];
3909 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
3910 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
3911 REGB0 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
3912 if (UNTAG_Bool(REGB0)) {
3913 } else {
3914 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 558);
3915 }
3916 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3917 fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3918 if (!once_value_19) {
3919 fra.me.REG[6] = BOX_NativeString(";\n");
3920 REGB0 = TAG_Int(2);
3921 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3922 once_value_19 = fra.me.REG[6];
3923 register_static_object(&once_value_19);
3924 } else fra.me.REG[6] = once_value_19;
3925 fra.me.REG[6] = fra.me.REG[6];
3926 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
3927 }
3928 /* ./compiling//compiling_icode.nit:560 */
3929 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
3930 /* ./compiling//compiling_icode.nit:561 */
3931 if (!once_value_20) {
3932 fra.me.REG[6] = BOX_NativeString("}");
3933 REGB0 = TAG_Int(1);
3934 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3935 once_value_20 = fra.me.REG[6];
3936 register_static_object(&once_value_20);
3937 } else fra.me.REG[6] = once_value_20;
3938 fra.me.REG[6] = fra.me.REG[6];
3939 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
3940 }
3941 }
3942 /* ./compiling//compiling_icode.nit:565 */
3943 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3944 if (UNTAG_Bool(REGB0)) {
3945 } else {
3946 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3947 if (UNTAG_Bool(REGB1)) {
3948 REGB1 = TAG_Bool(false);
3949 REGB0 = REGB1;
3950 } else {
3951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3952 REGB0 = REGB1;
3953 }
3954 }
3955 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3956 if (UNTAG_Bool(REGB0)) {
3957 /* ./compiling//compiling_icode.nit:566 */
3958 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3959 /* ./compiling//compiling_icode.nit:567 */
3960 CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
3961 }
3962 stack_frame_head = fra.me.prev;
3963 return;
3964 }
3965 void OC_compiling___compiling_icode___IAbsCall___compile_to_c_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3966 struct {struct stack_frame_t me;} fra;
3967 val_t REGB0;
3968 val_t REGB1;
3969 fun_t CREG[1];
3970 val_t tmp;
3971 static val_t once_value_4; /* Once value */
3972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3973 fra.me.file = LOCATE_compiling___compiling_icode;
3974 fra.me.line = 0;
3975 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_to_c;
3976 fra.me.has_broke = 0;
3977 fra.me.REG_size = 1;
3978 fra.me.REG[0] = NIT_NULL;
3979 fra.me.closure_ctx = closctx_param;
3980 fra.me.closure_funs = CREG;
3981 fra.me.REG[0] = p0;
3982 CREG[0] = clos_fun0;
3983 /* ./compiling//compiling_icode.nit:499 */
3984 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3985 if (UNTAG_Bool(REGB0)) {
3986 } else {
3987 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3988 if (UNTAG_Bool(REGB1)) {
3989 REGB1 = TAG_Bool(false);
3990 REGB0 = REGB1;
3991 } else {
3992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3993 REGB0 = REGB1;
3994 }
3995 }
3996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3997 if (UNTAG_Bool(REGB0)) {
3998 /* ./compiling//compiling_icode.nit:500 */
3999 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4000 if (UNTAG_Bool(REGB0)) {
4001 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 500);
4002 }
4003 fra.me.REG[0] = CALL_compiling___compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
4004 /* ./compiling//compiling_icode.nit:501 */
4005 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4006 } else {
4007 /* ./compiling//compiling_icode.nit:503 */
4008 if (!once_value_4) {
4009 fra.me.REG[0] = BOX_NativeString("NULL");
4010 REGB0 = TAG_Int(4);
4011 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4012 once_value_4 = fra.me.REG[0];
4013 register_static_object(&once_value_4);
4014 } else fra.me.REG[0] = once_value_4;
4015 fra.me.REG[0] = fra.me.REG[0];
4016 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4017 }
4018 stack_frame_head = fra.me.prev;
4019 return;
4020 }
4021 val_t compiling___compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4022 struct {struct stack_frame_t me;} fra;
4023 val_t tmp;
4024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4025 fra.me.file = LOCATE_compiling___compiling_icode;
4026 fra.me.line = 571;
4027 fra.me.meth = LOCATE_compiling___compiling_icode___IAbsCall___compile_call_to_c;
4028 fra.me.has_broke = 0;
4029 fra.me.REG_size = 0;
4030 /* ./compiling//compiling_icode.nit:571 */
4031 nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 571);
4032 stack_frame_head = fra.me.prev;
4033 return NIT_NULL;
4034 }
4035 val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4036 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4037 val_t REGB0;
4038 val_t tmp;
4039 static val_t once_value_2; /* Once value */
4040 static val_t once_value_3; /* Once value */
4041 static val_t once_value_4; /* Once value */
4042 static val_t once_value_5; /* Once value */
4043 static val_t once_value_6; /* Once value */
4044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4045 fra.me.file = LOCATE_compiling___compiling_icode;
4046 fra.me.line = 576;
4047 fra.me.meth = LOCATE_compiling___compiling_icode___ICall___compile_call_to_c;
4048 fra.me.has_broke = 0;
4049 fra.me.REG_size = 5;
4050 fra.me.REG[0] = NIT_NULL;
4051 fra.me.REG[1] = NIT_NULL;
4052 fra.me.REG[2] = NIT_NULL;
4053 fra.me.REG[3] = NIT_NULL;
4054 fra.me.REG[4] = NIT_NULL;
4055 fra.me.REG[0] = p0;
4056 fra.me.REG[1] = p1;
4057 fra.me.REG[2] = p2;
4058 /* ./compiling//compiling_icode.nit:578 */
4059 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4060 /* ./compiling//compiling_icode.nit:582 */
4061 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4062 if (UNTAG_Bool(REGB0)) {
4063 fra.me.REG[3] = fra.me.REG[1];
4064 goto label1;
4065 }
4066 /* ./compiling//compiling_icode.nit:584 */
4067 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4068 /* ./compiling//compiling_icode.nit:585 */
4069 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4070 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
4071 if (UNTAG_Bool(REGB0)) {
4072 if (!once_value_2) {
4073 fra.me.REG[4] = BOX_NativeString("init_table");
4074 REGB0 = TAG_Int(10);
4075 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4076 once_value_2 = fra.me.REG[4];
4077 register_static_object(&once_value_2);
4078 } else fra.me.REG[4] = once_value_2;
4079 fra.me.REG[4] = fra.me.REG[4];
4080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4081 }
4082 /* ./compiling//compiling_icode.nit:586 */
4083 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4084 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
4085 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4086 /* ./compiling//compiling_icode.nit:587 */
4087 if (!once_value_3) {
4088 fra.me.REG[0] = BOX_NativeString("(");
4089 REGB0 = TAG_Int(1);
4090 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4091 once_value_3 = fra.me.REG[0];
4092 register_static_object(&once_value_3);
4093 } else fra.me.REG[0] = once_value_3;
4094 fra.me.REG[0] = fra.me.REG[0];
4095 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4096 /* ./compiling//compiling_icode.nit:588 */
4097 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4098 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4099 /* ./compiling//compiling_icode.nit:589 */
4100 if (!once_value_4) {
4101 fra.me.REG[0] = BOX_NativeString(")(");
4102 REGB0 = TAG_Int(2);
4103 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4104 once_value_4 = fra.me.REG[0];
4105 register_static_object(&once_value_4);
4106 } else fra.me.REG[0] = once_value_4;
4107 fra.me.REG[0] = fra.me.REG[0];
4108 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4109 /* ./compiling//compiling_icode.nit:590 */
4110 if (!once_value_5) {
4111 fra.me.REG[0] = BOX_NativeString(", ");
4112 REGB0 = TAG_Int(2);
4113 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4114 once_value_5 = fra.me.REG[0];
4115 register_static_object(&once_value_5);
4116 } else fra.me.REG[0] = once_value_5;
4117 fra.me.REG[0] = fra.me.REG[0];
4118 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4119 /* ./compiling//compiling_icode.nit:591 */
4120 if (!once_value_6) {
4121 fra.me.REG[0] = BOX_NativeString(")");
4122 REGB0 = TAG_Int(1);
4123 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4124 once_value_6 = fra.me.REG[0];
4125 register_static_object(&once_value_6);
4126 } else fra.me.REG[0] = once_value_6;
4127 fra.me.REG[0] = fra.me.REG[0];
4128 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4129 /* ./compiling//compiling_icode.nit:592 */
4130 fra.me.REG[3] = fra.me.REG[1];
4131 goto label1;
4132 label1: while(0);
4133 stack_frame_head = fra.me.prev;
4134 return fra.me.REG[3];
4135 }
4136 val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4137 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4138 val_t REGB0;
4139 val_t tmp;
4140 static val_t once_value_2; /* Once value */
4141 static val_t once_value_3; /* Once value */
4142 static val_t once_value_4; /* Once value */
4143 static val_t once_value_5; /* Once value */
4144 static val_t once_value_6; /* Once value */
4145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4146 fra.me.file = LOCATE_compiling___compiling_icode;
4147 fra.me.line = 597;
4148 fra.me.meth = LOCATE_compiling___compiling_icode___ISuper___compile_call_to_c;
4149 fra.me.has_broke = 0;
4150 fra.me.REG_size = 4;
4151 fra.me.REG[0] = NIT_NULL;
4152 fra.me.REG[1] = NIT_NULL;
4153 fra.me.REG[2] = NIT_NULL;
4154 fra.me.REG[3] = NIT_NULL;
4155 fra.me.REG[0] = p0;
4156 fra.me.REG[1] = p1;
4157 fra.me.REG[2] = p2;
4158 /* ./compiling//compiling_icode.nit:601 */
4159 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4160 if (UNTAG_Bool(REGB0)) {
4161 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4162 goto label1;
4163 }
4164 /* ./compiling//compiling_icode.nit:603 */
4165 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4166 /* ./compiling//compiling_icode.nit:604 */
4167 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4168 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4169 if (UNTAG_Bool(REGB0)) {
4170 if (!once_value_2) {
4171 fra.me.REG[3] = BOX_NativeString("init_table");
4172 REGB0 = TAG_Int(10);
4173 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4174 once_value_2 = fra.me.REG[3];
4175 register_static_object(&once_value_2);
4176 } else fra.me.REG[3] = once_value_2;
4177 fra.me.REG[3] = fra.me.REG[3];
4178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4179 }
4180 /* ./compiling//compiling_icode.nit:605 */
4181 fra.me.REG[3] = NEW_Writer_compiling___compiling_writer___Writer___init();
4182 /* ./compiling//compiling_icode.nit:606 */
4183 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
4184 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4185 /* ./compiling//compiling_icode.nit:607 */
4186 if (!once_value_3) {
4187 fra.me.REG[0] = BOX_NativeString("(");
4188 REGB0 = TAG_Int(1);
4189 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4190 once_value_3 = fra.me.REG[0];
4191 register_static_object(&once_value_3);
4192 } else fra.me.REG[0] = once_value_3;
4193 fra.me.REG[0] = fra.me.REG[0];
4194 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4195 /* ./compiling//compiling_icode.nit:608 */
4196 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
4197 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4198 /* ./compiling//compiling_icode.nit:609 */
4199 if (!once_value_4) {
4200 fra.me.REG[0] = BOX_NativeString(")(");
4201 REGB0 = TAG_Int(2);
4202 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4203 once_value_4 = fra.me.REG[0];
4204 register_static_object(&once_value_4);
4205 } else fra.me.REG[0] = once_value_4;
4206 fra.me.REG[0] = fra.me.REG[0];
4207 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4208 /* ./compiling//compiling_icode.nit:610 */
4209 if (!once_value_5) {
4210 fra.me.REG[0] = BOX_NativeString(", ");
4211 REGB0 = TAG_Int(2);
4212 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4213 once_value_5 = fra.me.REG[0];
4214 register_static_object(&once_value_5);
4215 } else fra.me.REG[0] = once_value_5;
4216 fra.me.REG[0] = fra.me.REG[0];
4217 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4218 /* ./compiling//compiling_icode.nit:611 */
4219 if (!once_value_6) {
4220 fra.me.REG[0] = BOX_NativeString(")");
4221 REGB0 = TAG_Int(1);
4222 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4223 once_value_6 = fra.me.REG[0];
4224 register_static_object(&once_value_6);
4225 } else fra.me.REG[0] = once_value_6;
4226 fra.me.REG[0] = fra.me.REG[0];
4227 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4228 /* ./compiling//compiling_icode.nit:612 */
4229 fra.me.REG[1] = fra.me.REG[3];
4230 goto label1;
4231 label1: while(0);
4232 stack_frame_head = fra.me.prev;
4233 return fra.me.REG[1];
4234 }
4235 val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4236 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4237 val_t REGB0;
4238 val_t tmp;
4239 static val_t once_value_2; /* Once value */
4240 static val_t once_value_3; /* Once value */
4241 static val_t once_value_4; /* Once value */
4242 static val_t once_value_5; /* Once value */
4243 static val_t once_value_6; /* Once value */
4244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4245 fra.me.file = LOCATE_compiling___compiling_icode;
4246 fra.me.line = 617;
4247 fra.me.meth = LOCATE_compiling___compiling_icode___INew___compile_call_to_c;
4248 fra.me.has_broke = 0;
4249 fra.me.REG_size = 5;
4250 fra.me.REG[0] = NIT_NULL;
4251 fra.me.REG[1] = NIT_NULL;
4252 fra.me.REG[2] = NIT_NULL;
4253 fra.me.REG[3] = NIT_NULL;
4254 fra.me.REG[4] = NIT_NULL;
4255 fra.me.REG[0] = p0;
4256 fra.me.REG[1] = p1;
4257 fra.me.REG[2] = p2;
4258 /* ./compiling//compiling_icode.nit:619 */
4259 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4260 /* ./compiling//compiling_icode.nit:623 */
4261 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
4262 if (UNTAG_Bool(REGB0)) {
4263 fra.me.REG[3] = fra.me.REG[1];
4264 goto label1;
4265 }
4266 /* ./compiling//compiling_icode.nit:625 */
4267 if (!once_value_2) {
4268 fra.me.REG[4] = BOX_NativeString("NEW_");
4269 REGB0 = TAG_Int(4);
4270 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4271 once_value_2 = fra.me.REG[4];
4272 register_static_object(&once_value_2);
4273 } else fra.me.REG[4] = once_value_2;
4274 fra.me.REG[4] = fra.me.REG[4];
4275 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4276 /* ./compiling//compiling_icode.nit:626 */
4277 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
4278 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
4279 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4280 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4281 /* ./compiling//compiling_icode.nit:627 */
4282 if (!once_value_3) {
4283 fra.me.REG[4] = BOX_NativeString("_");
4284 REGB0 = TAG_Int(1);
4285 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4286 once_value_3 = fra.me.REG[4];
4287 register_static_object(&once_value_3);
4288 } else fra.me.REG[4] = once_value_3;
4289 fra.me.REG[4] = fra.me.REG[4];
4290 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4291 /* ./compiling//compiling_icode.nit:628 */
4292 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4293 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
4294 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
4295 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4296 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4297 /* ./compiling//compiling_icode.nit:629 */
4298 if (!once_value_4) {
4299 fra.me.REG[0] = BOX_NativeString("(");
4300 REGB0 = TAG_Int(1);
4301 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4302 once_value_4 = fra.me.REG[0];
4303 register_static_object(&once_value_4);
4304 } else fra.me.REG[0] = once_value_4;
4305 fra.me.REG[0] = fra.me.REG[0];
4306 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4307 /* ./compiling//compiling_icode.nit:630 */
4308 if (!once_value_5) {
4309 fra.me.REG[0] = BOX_NativeString(", ");
4310 REGB0 = TAG_Int(2);
4311 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4312 once_value_5 = fra.me.REG[0];
4313 register_static_object(&once_value_5);
4314 } else fra.me.REG[0] = once_value_5;
4315 fra.me.REG[0] = fra.me.REG[0];
4316 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4317 /* ./compiling//compiling_icode.nit:631 */
4318 if (!once_value_6) {
4319 fra.me.REG[0] = BOX_NativeString(")");
4320 REGB0 = TAG_Int(1);
4321 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4322 once_value_6 = fra.me.REG[0];
4323 register_static_object(&once_value_6);
4324 } else fra.me.REG[0] = once_value_6;
4325 fra.me.REG[0] = fra.me.REG[0];
4326 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4327 /* ./compiling//compiling_icode.nit:632 */
4328 fra.me.REG[3] = fra.me.REG[1];
4329 goto label1;
4330 label1: while(0);
4331 stack_frame_head = fra.me.prev;
4332 return fra.me.REG[3];
4333 }
4334 void compiling___compiling_icode___IAllocateInstance___compile_to_c(val_t p0, val_t p1){
4335 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4336 val_t REGB0;
4337 val_t tmp;
4338 static val_t once_value_1; /* Once value */
4339 static val_t once_value_2; /* Once value */
4340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4341 fra.me.file = LOCATE_compiling___compiling_icode;
4342 fra.me.line = 637;
4343 fra.me.meth = LOCATE_compiling___compiling_icode___IAllocateInstance___compile_to_c;
4344 fra.me.has_broke = 0;
4345 fra.me.REG_size = 3;
4346 fra.me.REG[0] = NIT_NULL;
4347 fra.me.REG[1] = NIT_NULL;
4348 fra.me.REG[2] = NIT_NULL;
4349 fra.me.REG[0] = p0;
4350 fra.me.REG[1] = p1;
4351 /* ./compiling//compiling_icode.nit:639 */
4352 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4353 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4354 /* ./compiling//compiling_icode.nit:640 */
4355 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4356 /* ./compiling//compiling_icode.nit:641 */
4357 if (!once_value_1) {
4358 fra.me.REG[2] = BOX_NativeString("NEW_");
4359 REGB0 = TAG_Int(4);
4360 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
4361 once_value_1 = fra.me.REG[2];
4362 register_static_object(&once_value_1);
4363 } else fra.me.REG[2] = once_value_1;
4364 fra.me.REG[2] = fra.me.REG[2];
4365 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4366 /* ./compiling//compiling_icode.nit:642 */
4367 fra.me.REG[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4368 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
4369 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
4370 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4371 /* ./compiling//compiling_icode.nit:643 */
4372 if (!once_value_2) {
4373 fra.me.REG[0] = BOX_NativeString("()");
4374 REGB0 = TAG_Int(2);
4375 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4376 once_value_2 = fra.me.REG[0];
4377 register_static_object(&once_value_2);
4378 } else fra.me.REG[0] = once_value_2;
4379 fra.me.REG[0] = fra.me.REG[0];
4380 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4381 stack_frame_head = fra.me.prev;
4382 return;
4383 }
4384 void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t p1){
4385 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4386 val_t REGB0;
4387 val_t tmp;
4388 static val_t once_value_1; /* Once value */
4389 static val_t once_value_2; /* Once value */
4390 static val_t once_value_3; /* Once value */
4391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4392 fra.me.file = LOCATE_compiling___compiling_icode;
4393 fra.me.line = 648;
4394 fra.me.meth = LOCATE_compiling___compiling_icode___ICheckInstance___compile_to_c;
4395 fra.me.has_broke = 0;
4396 fra.me.REG_size = 4;
4397 fra.me.REG[0] = NIT_NULL;
4398 fra.me.REG[1] = NIT_NULL;
4399 fra.me.REG[2] = NIT_NULL;
4400 fra.me.REG[3] = NIT_NULL;
4401 fra.me.REG[0] = p0;
4402 fra.me.REG[1] = p1;
4403 /* ./compiling//compiling_icode.nit:650 */
4404 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4405 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4406 /* ./compiling//compiling_icode.nit:651 */
4407 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4408 /* ./compiling//compiling_icode.nit:652 */
4409 if (!once_value_1) {
4410 fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
4411 REGB0 = TAG_Int(9);
4412 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4413 once_value_1 = fra.me.REG[3];
4414 register_static_object(&once_value_1);
4415 } else fra.me.REG[3] = once_value_1;
4416 fra.me.REG[3] = fra.me.REG[3];
4417 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4418 /* ./compiling//compiling_icode.nit:653 */
4419 fra.me.REG[3] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
4420 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4421 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4422 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4423 /* ./compiling//compiling_icode.nit:654 */
4424 if (!once_value_2) {
4425 fra.me.REG[3] = BOX_NativeString("(");
4426 REGB0 = TAG_Int(1);
4427 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4428 once_value_2 = fra.me.REG[3];
4429 register_static_object(&once_value_2);
4430 } else fra.me.REG[3] = once_value_2;
4431 fra.me.REG[3] = fra.me.REG[3];
4432 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4433 /* ./compiling//compiling_icode.nit:655 */
4434 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4435 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4436 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4437 /* ./compiling//compiling_icode.nit:656 */
4438 if (!once_value_3) {
4439 fra.me.REG[0] = BOX_NativeString(")");
4440 REGB0 = TAG_Int(1);
4441 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4442 once_value_3 = fra.me.REG[0];
4443 register_static_object(&once_value_3);
4444 } else fra.me.REG[0] = once_value_3;
4445 fra.me.REG[0] = fra.me.REG[0];
4446 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4447 stack_frame_head = fra.me.prev;
4448 return;
4449 }
4450 void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_t p1){
4451 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4452 val_t REGB0;
4453 val_t tmp;
4454 static val_t once_value_1; /* Once value */
4455 static val_t once_value_2; /* Once value */
4456 static val_t once_value_3; /* Once value */
4457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4458 fra.me.file = LOCATE_compiling___compiling_icode;
4459 fra.me.line = 661;
4460 fra.me.meth = LOCATE_compiling___compiling_icode___IInitAttributes___compile_to_c;
4461 fra.me.has_broke = 0;
4462 fra.me.REG_size = 4;
4463 fra.me.REG[0] = NIT_NULL;
4464 fra.me.REG[1] = NIT_NULL;
4465 fra.me.REG[2] = NIT_NULL;
4466 fra.me.REG[3] = NIT_NULL;
4467 fra.me.REG[0] = p0;
4468 fra.me.REG[1] = p1;
4469 /* ./compiling//compiling_icode.nit:663 */
4470 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4471 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4472 /* ./compiling//compiling_icode.nit:664 */
4473 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
4474 /* ./compiling//compiling_icode.nit:665 */
4475 if (!once_value_1) {
4476 fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__");
4477 REGB0 = TAG_Int(17);
4478 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4479 once_value_1 = fra.me.REG[3];
4480 register_static_object(&once_value_1);
4481 } else fra.me.REG[3] = once_value_1;
4482 fra.me.REG[3] = fra.me.REG[3];
4483 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4484 /* ./compiling//compiling_icode.nit:666 */
4485 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
4486 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
4487 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
4488 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4489 /* ./compiling//compiling_icode.nit:667 */
4490 if (!once_value_2) {
4491 fra.me.REG[3] = BOX_NativeString("(");
4492 REGB0 = TAG_Int(1);
4493 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4494 once_value_2 = fra.me.REG[3];
4495 register_static_object(&once_value_2);
4496 } else fra.me.REG[3] = once_value_2;
4497 fra.me.REG[3] = fra.me.REG[3];
4498 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4499 /* ./compiling//compiling_icode.nit:668 */
4500 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
4501 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4502 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4503 /* ./compiling//compiling_icode.nit:669 */
4504 if (!once_value_3) {
4505 fra.me.REG[0] = BOX_NativeString(");\n");
4506 REGB0 = TAG_Int(3);
4507 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4508 once_value_3 = fra.me.REG[0];
4509 register_static_object(&once_value_3);
4510 } else fra.me.REG[0] = once_value_3;
4511 fra.me.REG[0] = fra.me.REG[0];
4512 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4513 stack_frame_head = fra.me.prev;
4514 return;
4515 }
4516 val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){
4517 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4518 val_t REGB0;
4519 val_t tmp;
4520 static val_t once_value_1; /* Once value */
4521 static val_t once_value_2; /* Once value */
4522 static val_t once_value_3; /* Once value */
4523 static val_t once_value_4; /* Once value */
4524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4525 fra.me.file = LOCATE_compiling___compiling_icode;
4526 fra.me.line = 674;
4527 fra.me.meth = LOCATE_compiling___compiling_icode___IStaticCall___compile_call_to_c;
4528 fra.me.has_broke = 0;
4529 fra.me.REG_size = 3;
4530 fra.me.REG[0] = NIT_NULL;
4531 fra.me.REG[1] = NIT_NULL;
4532 fra.me.REG[2] = NIT_NULL;
4533 fra.me.REG[0] = p0;
4534 fra.me.REG[1] = p1;
4535 fra.me.REG[2] = p2;
4536 /* ./compiling//compiling_icode.nit:676 */
4537 fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4538 /* ./compiling//compiling_icode.nit:677 */
4539 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
4540 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
4541 if (UNTAG_Bool(REGB0)) {
4542 if (!once_value_1) {
4543 fra.me.REG[1] = BOX_NativeString("init_table");
4544 REGB0 = TAG_Int(10);
4545 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
4546 once_value_1 = fra.me.REG[1];
4547 register_static_object(&once_value_1);
4548 } else fra.me.REG[1] = once_value_1;
4549 fra.me.REG[1] = fra.me.REG[1];
4550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4551 }
4552 /* ./compiling//compiling_icode.nit:678 */
4553 fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
4554 /* ./compiling//compiling_icode.nit:679 */
4555 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
4556 fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
4557 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4558 /* ./compiling//compiling_icode.nit:680 */
4559 if (!once_value_2) {
4560 fra.me.REG[0] = BOX_NativeString("(");
4561 REGB0 = TAG_Int(1);
4562 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4563 once_value_2 = fra.me.REG[0];
4564 register_static_object(&once_value_2);
4565 } else fra.me.REG[0] = once_value_2;
4566 fra.me.REG[0] = fra.me.REG[0];
4567 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4568 /* ./compiling//compiling_icode.nit:681 */
4569 if (!once_value_3) {
4570 fra.me.REG[0] = BOX_NativeString(", ");
4571 REGB0 = TAG_Int(2);
4572 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4573 once_value_3 = fra.me.REG[0];
4574 register_static_object(&once_value_3);
4575 } else fra.me.REG[0] = once_value_3;
4576 fra.me.REG[0] = fra.me.REG[0];
4577 CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
4578 /* ./compiling//compiling_icode.nit:682 */
4579 if (!once_value_4) {
4580 fra.me.REG[0] = BOX_NativeString(")");
4581 REGB0 = TAG_Int(1);
4582 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4583 once_value_4 = fra.me.REG[0];
4584 register_static_object(&once_value_4);
4585 } else fra.me.REG[0] = once_value_4;
4586 fra.me.REG[0] = fra.me.REG[0];
4587 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4588 /* ./compiling//compiling_icode.nit:683 */
4589 goto label5;
4590 label5: while(0);
4591 stack_frame_head = fra.me.prev;
4592 return fra.me.REG[1];
4593 }
4594 void compiling___compiling_icode___INative___compile_to_c(val_t p0, val_t p1){
4595 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4596 val_t REGB0;
4597 val_t tmp;
4598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4599 fra.me.file = LOCATE_compiling___compiling_icode;
4600 fra.me.line = 688;
4601 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_to_c;
4602 fra.me.has_broke = 0;
4603 fra.me.REG_size = 3;
4604 fra.me.REG[0] = NIT_NULL;
4605 fra.me.REG[1] = NIT_NULL;
4606 fra.me.REG[2] = NIT_NULL;
4607 fra.me.REG[0] = p0;
4608 fra.me.REG[1] = p1;
4609 /* ./compiling//compiling_icode.nit:690 */
4610 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
4611 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4612 /* ./compiling//compiling_icode.nit:691 */
4613 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4614 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]);
4615 if (UNTAG_Bool(REGB0)) {
4616 /* ./compiling//compiling_icode.nit:692 */
4617 CALL_compiling___compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4618 } else {
4619 /* ./compiling//compiling_icode.nit:693 */
4620 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4621 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4622 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
4623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4624 if (UNTAG_Bool(REGB0)) {
4625 /* ./compiling//compiling_icode.nit:694 */
4626 CALL_compiling___compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4627 }
4628 }
4629 stack_frame_head = fra.me.prev;
4630 return;
4631 }
4632 void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0, val_t p1){
4633 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4634 val_t REGB0;
4635 val_t REGB1;
4636 val_t REGB2;
4637 val_t REGB3;
4638 val_t REGB4;
4639 val_t tmp;
4640 static val_t once_value_1; /* Once value */
4641 static val_t once_value_2; /* Once value */
4642 static val_t once_value_6; /* Once value */
4643 static val_t once_value_7; /* Once value */
4644 static val_t once_value_8; /* Once value */
4645 static val_t once_value_9; /* Once value */
4646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4647 fra.me.file = LOCATE_compiling___compiling_icode;
4648 fra.me.line = 698;
4649 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_extern_method_to_c;
4650 fra.me.has_broke = 0;
4651 fra.me.REG_size = 7;
4652 fra.me.REG[0] = NIT_NULL;
4653 fra.me.REG[1] = NIT_NULL;
4654 fra.me.REG[2] = NIT_NULL;
4655 fra.me.REG[3] = NIT_NULL;
4656 fra.me.REG[4] = NIT_NULL;
4657 fra.me.REG[5] = NIT_NULL;
4658 fra.me.REG[6] = NIT_NULL;
4659 fra.me.REG[0] = p0;
4660 fra.me.REG[1] = p1;
4661 /* ./compiling//compiling_icode.nit:700 */
4662 REGB0 = TAG_Int(3);
4663 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4664 if (!once_value_1) {
4665 fra.me.REG[3] = BOX_NativeString("");
4666 REGB0 = TAG_Int(0);
4667 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4668 once_value_1 = fra.me.REG[3];
4669 register_static_object(&once_value_1);
4670 } else fra.me.REG[3] = once_value_1;
4671 fra.me.REG[3] = fra.me.REG[3];
4672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4673 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4674 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4675 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
4676 fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4678 if (!once_value_2) {
4679 fra.me.REG[4] = BOX_NativeString("___out");
4680 REGB0 = TAG_Int(6);
4681 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4682 once_value_2 = fra.me.REG[4];
4683 register_static_object(&once_value_2);
4684 } else fra.me.REG[4] = once_value_2;
4685 fra.me.REG[4] = fra.me.REG[4];
4686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4687 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4688 /* ./compiling//compiling_icode.nit:702 */
4689 fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
4690 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
4691 /* ./compiling//compiling_icode.nit:703 */
4692 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4693 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4694 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4695 if (UNTAG_Bool(REGB1)) {
4696 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 703);
4697 }
4698 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4699 REGB2 = TAG_Int(1);
4700 /* ./../lib/standard//kernel.nit:235 */
4701 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4702 /* ./compiling//compiling_icode.nit:703 */
4703 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4704 if (UNTAG_Bool(REGB1)) {
4705 } else {
4706 /* ./../lib/standard//kernel.nit:227 */
4707 REGB2 = TAG_Bool((REGB0)==(REGB2));
4708 /* ./compiling//compiling_icode.nit:703 */
4709 REGB1 = REGB2;
4710 }
4711 if (UNTAG_Bool(REGB1)) {
4712 } else {
4713 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 703);
4714 }
4715 /* ./compiling//compiling_icode.nit:705 */
4716 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
4717 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4718 /* ./compiling//compiling_icode.nit:707 */
4719 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
4720 /* ./compiling//compiling_icode.nit:708 */
4721 REGB1 = TAG_Int(0);
4722 /* ./../lib/standard//collection//array.nit:278 */
4723 fra.me.REG[6] = fra.me.REG[3];
4724 /* ./../lib/standard//collection//array.nit:280 */
4725 REGB2 = TAG_Int(0);
4726 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4727 if (UNTAG_Bool(REGB0)) {
4728 } else {
4729 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4730 }
4731 /* ./../lib/standard//kernel.nit:233 */
4732 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4733 /* ./../lib/standard//collection//array.nit:280 */
4734 if (UNTAG_Bool(REGB2)) {
4735 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4736 if (UNTAG_Bool(REGB2)) {
4737 } else {
4738 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4739 }
4740 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
4741 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4742 if (UNTAG_Bool(REGB0)) {
4743 } else {
4744 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4745 }
4746 /* ./../lib/standard//kernel.nit:232 */
4747 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4748 } else {
4749 /* ./../lib/standard//collection//array.nit:280 */
4750 REGB0 = TAG_Bool(false);
4751 REGB2 = REGB0;
4752 }
4753 if (UNTAG_Bool(REGB2)) {
4754 } else {
4755 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
4756 }
4757 /* ./../lib/standard//collection//array.nit:281 */
4758 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
4759 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4760 if (UNTAG_Bool(REGB2)) {
4761 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4762 }
4763 /* ./../lib/standard//collection//array.nit:718 */
4764 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
4765 /* ./../lib/standard//collection//array.nit:281 */
4766 goto label3;
4767 label3: while(0);
4768 /* ./compiling//compiling_icode.nit:708 */
4769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4770 /* ./compiling//compiling_icode.nit:709 */
4771 REGB1 = TAG_Int(0);
4772 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4773 if (UNTAG_Bool(REGB2)) {
4774 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 709);
4775 }
4776 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
4777 /* ./../lib/standard//kernel.nit:352 */
4778 while(1) {
4779 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4780 if (UNTAG_Bool(REGB0)) {
4781 } else {
4782 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4783 }
4784 /* ./../lib/standard//kernel.nit:232 */
4785 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4786 /* ./../lib/standard//kernel.nit:352 */
4787 if (UNTAG_Bool(REGB0)) {
4788 /* ./compiling//compiling_icode.nit:709 */
4789 REGB0 = REGB1;
4790 /* ./compiling//compiling_icode.nit:710 */
4791 REGB3 = TAG_Int(1);
4792 /* ./../lib/standard//kernel.nit:235 */
4793 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4794 /* ./../lib/standard//collection//array.nit:278 */
4795 fra.me.REG[4] = fra.me.REG[3];
4796 /* ./../lib/standard//collection//array.nit:280 */
4797 REGB0 = TAG_Int(0);
4798 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4799 if (UNTAG_Bool(REGB4)) {
4800 } else {
4801 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4802 }
4803 /* ./../lib/standard//kernel.nit:233 */
4804 REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
4805 /* ./../lib/standard//collection//array.nit:280 */
4806 if (UNTAG_Bool(REGB0)) {
4807 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4808 if (UNTAG_Bool(REGB0)) {
4809 } else {
4810 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4811 }
4812 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4813 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
4814 if (UNTAG_Bool(REGB4)) {
4815 } else {
4816 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4817 }
4818 /* ./../lib/standard//kernel.nit:232 */
4819 REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
4820 } else {
4821 /* ./../lib/standard//collection//array.nit:280 */
4822 REGB4 = TAG_Bool(false);
4823 REGB0 = REGB4;
4824 }
4825 if (UNTAG_Bool(REGB0)) {
4826 } else {
4827 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
4828 }
4829 /* ./../lib/standard//collection//array.nit:281 */
4830 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4831 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4832 if (UNTAG_Bool(REGB0)) {
4833 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4834 }
4835 /* ./../lib/standard//collection//array.nit:718 */
4836 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
4837 /* ./../lib/standard//collection//array.nit:281 */
4838 goto label4;
4839 label4: while(0);
4840 /* ./compiling//compiling_icode.nit:710 */
4841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
4842 /* ./../lib/standard//kernel.nit:354 */
4843 REGB3 = TAG_Int(1);
4844 /* ./../lib/standard//kernel.nit:235 */
4845 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
4846 /* ./../lib/standard//kernel.nit:354 */
4847 REGB1 = REGB3;
4848 } else {
4849 /* ./../lib/standard//kernel.nit:352 */
4850 goto label5;
4851 }
4852 }
4853 label5: while(0);
4854 /* ./compiling//compiling_icode.nit:712 */
4855 REGB1 = TAG_Int(5);
4856 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4857 if (!once_value_6) {
4858 fra.me.REG[4] = BOX_NativeString("");
4859 REGB1 = TAG_Int(0);
4860 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
4861 once_value_6 = fra.me.REG[4];
4862 register_static_object(&once_value_6);
4863 } else fra.me.REG[4] = once_value_6;
4864 fra.me.REG[4] = fra.me.REG[4];
4865 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4867 if (!once_value_7) {
4868 fra.me.REG[2] = BOX_NativeString("(");
4869 REGB1 = TAG_Int(1);
4870 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4871 once_value_7 = fra.me.REG[2];
4872 register_static_object(&once_value_7);
4873 } else fra.me.REG[2] = once_value_7;
4874 fra.me.REG[2] = fra.me.REG[2];
4875 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4876 if (!once_value_8) {
4877 fra.me.REG[2] = BOX_NativeString(", ");
4878 REGB1 = TAG_Int(2);
4879 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4880 once_value_8 = fra.me.REG[2];
4881 register_static_object(&once_value_8);
4882 } else fra.me.REG[2] = once_value_8;
4883 fra.me.REG[2] = fra.me.REG[2];
4884 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
4885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4886 if (!once_value_9) {
4887 fra.me.REG[2] = BOX_NativeString(")");
4888 REGB1 = TAG_Int(1);
4889 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
4890 once_value_9 = fra.me.REG[2];
4891 register_static_object(&once_value_9);
4892 } else fra.me.REG[2] = once_value_9;
4893 fra.me.REG[2] = fra.me.REG[2];
4894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4895 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4896 /* ./compiling//compiling_icode.nit:714 */
4897 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
4898 if (UNTAG_Bool(REGB1)) {
4899 }
4900 /* ./compiling//compiling_icode.nit:715 */
4901 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4902 /* ./compiling//compiling_icode.nit:716 */
4903 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4904 stack_frame_head = fra.me.prev;
4905 return;
4906 }
4907 void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){
4908 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4909 val_t REGB0;
4910 val_t REGB1;
4911 val_t REGB2;
4912 val_t tmp;
4913 static val_t once_value_1; /* Once value */
4914 static val_t once_value_2; /* Once value */
4915 static val_t once_value_3; /* Once value */
4916 static val_t once_value_4; /* Once value */
4917 static val_t once_value_6; /* Once value */
4918 static val_t once_value_7; /* Once value */
4919 static val_t once_value_8; /* Once value */
4920 static val_t once_value_10; /* Once value */
4921 static val_t once_value_11; /* Once value */
4922 static val_t once_value_12; /* Once value */
4923 static val_t once_value_13; /* Once value */
4924 static val_t once_value_15; /* Once value */
4925 static val_t once_value_16; /* Once value */
4926 static val_t once_value_17; /* Once value */
4927 static val_t once_value_18; /* Once value */
4928 static val_t once_value_20; /* Once value */
4929 static val_t once_value_21; /* Once value */
4930 static val_t once_value_22; /* Once value */
4931 static val_t once_value_23; /* Once value */
4932 static val_t once_value_25; /* Once value */
4933 static val_t once_value_26; /* Once value */
4934 static val_t once_value_27; /* Once value */
4935 static val_t once_value_28; /* Once value */
4936 static val_t once_value_30; /* Once value */
4937 static val_t once_value_31; /* Once value */
4938 static val_t once_value_32; /* Once value */
4939 static val_t once_value_33; /* Once value */
4940 static val_t once_value_35; /* Once value */
4941 static val_t once_value_36; /* Once value */
4942 static val_t once_value_37; /* Once value */
4943 static val_t once_value_38; /* Once value */
4944 static val_t once_value_40; /* Once value */
4945 static val_t once_value_42; /* Once value */
4946 static val_t once_value_43; /* Once value */
4947 static val_t once_value_44; /* Once value */
4948 static val_t once_value_45; /* Once value */
4949 static val_t once_value_47; /* Once value */
4950 static val_t once_value_49; /* Once value */
4951 static val_t once_value_50; /* Once value */
4952 static val_t once_value_51; /* Once value */
4953 static val_t once_value_52; /* Once value */
4954 static val_t once_value_54; /* Once value */
4955 static val_t once_value_56; /* Once value */
4956 static val_t once_value_57; /* Once value */
4957 static val_t once_value_58; /* Once value */
4958 static val_t once_value_59; /* Once value */
4959 static val_t once_value_61; /* Once value */
4960 static val_t once_value_63; /* Once value */
4961 static val_t once_value_64; /* Once value */
4962 static val_t once_value_65; /* Once value */
4963 static val_t once_value_66; /* Once value */
4964 static val_t once_value_68; /* Once value */
4965 static val_t once_value_70; /* Once value */
4966 static val_t once_value_71; /* Once value */
4967 static val_t once_value_72; /* Once value */
4968 static val_t once_value_73; /* Once value */
4969 static val_t once_value_75; /* Once value */
4970 static val_t once_value_77; /* Once value */
4971 static val_t once_value_78; /* Once value */
4972 static val_t once_value_79; /* Once value */
4973 static val_t once_value_80; /* Once value */
4974 static val_t once_value_82; /* Once value */
4975 static val_t once_value_84; /* Once value */
4976 static val_t once_value_85; /* Once value */
4977 static val_t once_value_86; /* Once value */
4978 static val_t once_value_87; /* Once value */
4979 static val_t once_value_89; /* Once value */
4980 static val_t once_value_91; /* Once value */
4981 static val_t once_value_92; /* Once value */
4982 static val_t once_value_93; /* Once value */
4983 static val_t once_value_94; /* Once value */
4984 static val_t once_value_96; /* Once value */
4985 static val_t once_value_98; /* Once value */
4986 static val_t once_value_99; /* Once value */
4987 static val_t once_value_100; /* Once value */
4988 static val_t once_value_101; /* Once value */
4989 static val_t once_value_103; /* Once value */
4990 static val_t once_value_105; /* Once value */
4991 static val_t once_value_106; /* Once value */
4992 static val_t once_value_107; /* Once value */
4993 static val_t once_value_108; /* Once value */
4994 static val_t once_value_110; /* Once value */
4995 static val_t once_value_112; /* Once value */
4996 static val_t once_value_113; /* Once value */
4997 static val_t once_value_114; /* Once value */
4998 static val_t once_value_115; /* Once value */
4999 static val_t once_value_117; /* Once value */
5000 static val_t once_value_119; /* Once value */
5001 static val_t once_value_120; /* Once value */
5002 static val_t once_value_121; /* Once value */
5003 static val_t once_value_122; /* Once value */
5004 static val_t once_value_124; /* Once value */
5005 static val_t once_value_126; /* Once value */
5006 static val_t once_value_127; /* Once value */
5007 static val_t once_value_128; /* Once value */
5008 static val_t once_value_129; /* Once value */
5009 static val_t once_value_130; /* Once value */
5010 static val_t once_value_131; /* Once value */
5011 static val_t once_value_133; /* Once value */
5012 static val_t once_value_134; /* Once value */
5013 static val_t once_value_135; /* Once value */
5014 static val_t once_value_136; /* Once value */
5015 static val_t once_value_138; /* Once value */
5016 static val_t once_value_139; /* Once value */
5017 static val_t once_value_140; /* Once value */
5018 static val_t once_value_141; /* Once value */
5019 static val_t once_value_143; /* Once value */
5020 static val_t once_value_144; /* Once value */
5021 static val_t once_value_145; /* Once value */
5022 static val_t once_value_146; /* Once value */
5023 static val_t once_value_148; /* Once value */
5024 static val_t once_value_149; /* Once value */
5025 static val_t once_value_150; /* Once value */
5026 static val_t once_value_151; /* Once value */
5027 static val_t once_value_153; /* Once value */
5028 static val_t once_value_155; /* Once value */
5029 static val_t once_value_156; /* Once value */
5030 static val_t once_value_157; /* Once value */
5031 static val_t once_value_158; /* Once value */
5032 static val_t once_value_160; /* Once value */
5033 static val_t once_value_162; /* Once value */
5034 static val_t once_value_163; /* Once value */
5035 static val_t once_value_164; /* Once value */
5036 static val_t once_value_165; /* Once value */
5037 static val_t once_value_167; /* Once value */
5038 static val_t once_value_169; /* Once value */
5039 static val_t once_value_170; /* Once value */
5040 static val_t once_value_171; /* Once value */
5041 static val_t once_value_172; /* Once value */
5042 static val_t once_value_174; /* Once value */
5043 static val_t once_value_176; /* Once value */
5044 static val_t once_value_177; /* Once value */
5045 static val_t once_value_178; /* Once value */
5046 static val_t once_value_179; /* Once value */
5047 static val_t once_value_181; /* Once value */
5048 static val_t once_value_183; /* Once value */
5049 static val_t once_value_184; /* Once value */
5050 static val_t once_value_185; /* Once value */
5051 static val_t once_value_186; /* Once value */
5052 static val_t once_value_188; /* Once value */
5053 static val_t once_value_190; /* Once value */
5054 static val_t once_value_191; /* Once value */
5055 static val_t once_value_192; /* Once value */
5056 static val_t once_value_193; /* Once value */
5057 static val_t once_value_195; /* Once value */
5058 static val_t once_value_197; /* Once value */
5059 static val_t once_value_198; /* Once value */
5060 static val_t once_value_199; /* Once value */
5061 static val_t once_value_200; /* Once value */
5062 static val_t once_value_202; /* Once value */
5063 static val_t once_value_204; /* Once value */
5064 static val_t once_value_205; /* Once value */
5065 static val_t once_value_206; /* Once value */
5066 static val_t once_value_207; /* Once value */
5067 static val_t once_value_208; /* Once value */
5068 static val_t once_value_209; /* Once value */
5069 static val_t once_value_211; /* Once value */
5070 static val_t once_value_212; /* Once value */
5071 static val_t once_value_213; /* Once value */
5072 static val_t once_value_214; /* Once value */
5073 static val_t once_value_216; /* Once value */
5074 static val_t once_value_217; /* Once value */
5075 static val_t once_value_218; /* Once value */
5076 static val_t once_value_219; /* Once value */
5077 static val_t once_value_221; /* Once value */
5078 static val_t once_value_222; /* Once value */
5079 static val_t once_value_223; /* Once value */
5080 static val_t once_value_224; /* Once value */
5081 static val_t once_value_226; /* Once value */
5082 static val_t once_value_227; /* Once value */
5083 static val_t once_value_228; /* Once value */
5084 static val_t once_value_229; /* Once value */
5085 static val_t once_value_231; /* Once value */
5086 static val_t once_value_232; /* Once value */
5087 static val_t once_value_233; /* Once value */
5088 static val_t once_value_234; /* Once value */
5089 static val_t once_value_236; /* Once value */
5090 static val_t once_value_237; /* Once value */
5091 static val_t once_value_238; /* Once value */
5092 static val_t once_value_239; /* Once value */
5093 static val_t once_value_241; /* Once value */
5094 static val_t once_value_242; /* Once value */
5095 static val_t once_value_243; /* Once value */
5096 static val_t once_value_244; /* Once value */
5097 static val_t once_value_246; /* Once value */
5098 static val_t once_value_248; /* Once value */
5099 static val_t once_value_249; /* Once value */
5100 static val_t once_value_250; /* Once value */
5101 static val_t once_value_251; /* Once value */
5102 static val_t once_value_253; /* Once value */
5103 static val_t once_value_255; /* Once value */
5104 static val_t once_value_256; /* Once value */
5105 static val_t once_value_257; /* Once value */
5106 static val_t once_value_258; /* Once value */
5107 static val_t once_value_260; /* Once value */
5108 static val_t once_value_262; /* Once value */
5109 static val_t once_value_263; /* Once value */
5110 static val_t once_value_264; /* Once value */
5111 static val_t once_value_265; /* Once value */
5112 static val_t once_value_267; /* Once value */
5113 static val_t once_value_269; /* Once value */
5114 static val_t once_value_270; /* Once value */
5115 static val_t once_value_271; /* Once value */
5116 static val_t once_value_272; /* Once value */
5117 static val_t once_value_274; /* Once value */
5118 static val_t once_value_276; /* Once value */
5119 static val_t once_value_277; /* Once value */
5120 static val_t once_value_278; /* Once value */
5121 static val_t once_value_279; /* Once value */
5122 static val_t once_value_281; /* Once value */
5123 static val_t once_value_283; /* Once value */
5124 static val_t once_value_284; /* Once value */
5125 static val_t once_value_285; /* Once value */
5126 static val_t once_value_286; /* Once value */
5127 static val_t once_value_288; /* Once value */
5128 static val_t once_value_290; /* Once value */
5129 static val_t once_value_291; /* Once value */
5130 static val_t once_value_292; /* Once value */
5131 static val_t once_value_293; /* Once value */
5132 static val_t once_value_295; /* Once value */
5133 static val_t once_value_297; /* Once value */
5134 static val_t once_value_298; /* Once value */
5135 static val_t once_value_299; /* Once value */
5136 static val_t once_value_300; /* Once value */
5137 static val_t once_value_302; /* Once value */
5138 static val_t once_value_304; /* Once value */
5139 static val_t once_value_305; /* Once value */
5140 static val_t once_value_306; /* Once value */
5141 static val_t once_value_307; /* Once value */
5142 static val_t once_value_309; /* Once value */
5143 static val_t once_value_311; /* Once value */
5144 static val_t once_value_312; /* Once value */
5145 static val_t once_value_313; /* Once value */
5146 static val_t once_value_314; /* Once value */
5147 static val_t once_value_316; /* Once value */
5148 static val_t once_value_318; /* Once value */
5149 static val_t once_value_319; /* Once value */
5150 static val_t once_value_320; /* Once value */
5151 static val_t once_value_321; /* Once value */
5152 static val_t once_value_322; /* Once value */
5153 static val_t once_value_323; /* Once value */
5154 static val_t once_value_325; /* Once value */
5155 static val_t once_value_326; /* Once value */
5156 static val_t once_value_327; /* Once value */
5157 static val_t once_value_328; /* Once value */
5158 static val_t once_value_330; /* Once value */
5159 static val_t once_value_331; /* Once value */
5160 static val_t once_value_332; /* Once value */
5161 static val_t once_value_333; /* Once value */
5162 static val_t once_value_335; /* Once value */
5163 static val_t once_value_336; /* Once value */
5164 static val_t once_value_337; /* Once value */
5165 static val_t once_value_338; /* Once value */
5166 static val_t once_value_340; /* Once value */
5167 static val_t once_value_341; /* Once value */
5168 static val_t once_value_342; /* Once value */
5169 static val_t once_value_343; /* Once value */
5170 static val_t once_value_345; /* Once value */
5171 static val_t once_value_346; /* Once value */
5172 static val_t once_value_347; /* Once value */
5173 static val_t once_value_348; /* Once value */
5174 static val_t once_value_350; /* Once value */
5175 static val_t once_value_352; /* Once value */
5176 static val_t once_value_353; /* Once value */
5177 static val_t once_value_354; /* Once value */
5178 static val_t once_value_355; /* Once value */
5179 static val_t once_value_357; /* Once value */
5180 static val_t once_value_359; /* Once value */
5181 static val_t once_value_360; /* Once value */
5182 static val_t once_value_361; /* Once value */
5183 static val_t once_value_362; /* Once value */
5184 static val_t once_value_363; /* Once value */
5185 static val_t once_value_364; /* Once value */
5186 static val_t once_value_366; /* Once value */
5187 static val_t once_value_367; /* Once value */
5188 static val_t once_value_368; /* Once value */
5189 static val_t once_value_369; /* Once value */
5190 static val_t once_value_371; /* Once value */
5191 static val_t once_value_373; /* Once value */
5192 static val_t once_value_374; /* Once value */
5193 static val_t once_value_375; /* Once value */
5194 static val_t once_value_376; /* Once value */
5195 static val_t once_value_378; /* Once value */
5196 static val_t once_value_380; /* Once value */
5197 static val_t once_value_382; /* Once value */
5198 static val_t once_value_383; /* Once value */
5199 static val_t once_value_384; /* Once value */
5200 static val_t once_value_385; /* Once value */
5201 static val_t once_value_387; /* Once value */
5202 static val_t once_value_389; /* Once value */
5203 static val_t once_value_391; /* Once value */
5204 static val_t once_value_392; /* Once value */
5205 static val_t once_value_393; /* Once value */
5206 static val_t once_value_394; /* Once value */
5207 static val_t once_value_395; /* Once value */
5208 static val_t once_value_396; /* Once value */
5209 static val_t once_value_398; /* Once value */
5210 static val_t once_value_399; /* Once value */
5211 static val_t once_value_400; /* Once value */
5212 static val_t once_value_401; /* Once value */
5213 static val_t once_value_403; /* Once value */
5214 static val_t once_value_404; /* Once value */
5215 static val_t once_value_405; /* Once value */
5216 static val_t once_value_406; /* Once value */
5217 static val_t once_value_408; /* Once value */
5218 static val_t once_value_410; /* Once value */
5219 static val_t once_value_411; /* Once value */
5220 static val_t once_value_412; /* Once value */
5221 static val_t once_value_413; /* Once value */
5222 static val_t once_value_415; /* Once value */
5223 static val_t once_value_417; /* Once value */
5224 static val_t once_value_419; /* Once value */
5225 static val_t once_value_420; /* Once value */
5226 static val_t once_value_421; /* Once value */
5227 static val_t once_value_422; /* Once value */
5228 static val_t once_value_424; /* Once value */
5229 static val_t once_value_426; /* Once value */
5230 static val_t once_value_428; /* Once value */
5231 static val_t once_value_430; /* Once value */
5232 static val_t once_value_432; /* Once value */
5233 static val_t once_value_433; /* Once value */
5234 static val_t once_value_434; /* Once value */
5235 static val_t once_value_435; /* Once value */
5236 static val_t once_value_437; /* Once value */
5237 static val_t once_value_438; /* Once value */
5238 static val_t once_value_439; /* Once value */
5239 static val_t once_value_440; /* Once value */
5240 static val_t once_value_441; /* Once value */
5241 static val_t once_value_442; /* Once value */
5242 static val_t once_value_443; /* Once value */
5243 static val_t once_value_445; /* Once value */
5244 static val_t once_value_447; /* Once value */
5245 static val_t once_value_448; /* Once value */
5246 static val_t once_value_449; /* Once value */
5247 static val_t once_value_450; /* Once value */
5248 static val_t once_value_452; /* Once value */
5249 static val_t once_value_453; /* Once value */
5250 static val_t once_value_454; /* Once value */
5251 static val_t once_value_455; /* Once value */
5252 static val_t once_value_457; /* Once value */
5253 static val_t once_value_458; /* Once value */
5254 static val_t once_value_459; /* Once value */
5255 static val_t once_value_460; /* Once value */
5256 static val_t once_value_462; /* Once value */
5257 static val_t once_value_463; /* Once value */
5258 static val_t once_value_464; /* Once value */
5259 static val_t once_value_465; /* Once value */
5260 static val_t once_value_467; /* Once value */
5261 static val_t once_value_468; /* Once value */
5262 static val_t once_value_469; /* Once value */
5263 static val_t once_value_470; /* Once value */
5264 static val_t once_value_472; /* Once value */
5265 static val_t once_value_473; /* Once value */
5266 static val_t once_value_474; /* Once value */
5267 static val_t once_value_475; /* Once value */
5268 static val_t once_value_476; /* Once value */
5269 static val_t once_value_477; /* Once value */
5270 static val_t once_value_478; /* Once value */
5271 static val_t once_value_479; /* Once value */
5272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5273 fra.me.file = LOCATE_compiling___compiling_icode;
5274 fra.me.line = 719;
5275 fra.me.meth = LOCATE_compiling___compiling_icode___INative___compile_intern_method_to_c;
5276 fra.me.has_broke = 0;
5277 fra.me.REG_size = 8;
5278 fra.me.REG[0] = NIT_NULL;
5279 fra.me.REG[1] = NIT_NULL;
5280 fra.me.REG[2] = NIT_NULL;
5281 fra.me.REG[3] = NIT_NULL;
5282 fra.me.REG[4] = NIT_NULL;
5283 fra.me.REG[5] = NIT_NULL;
5284 fra.me.REG[6] = NIT_NULL;
5285 fra.me.REG[7] = NIT_NULL;
5286 fra.me.REG[0] = p0;
5287 fra.me.REG[1] = p1;
5288 /* ./compiling//compiling_icode.nit:721 */
5289 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5290 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5291 /* ./compiling//compiling_icode.nit:722 */
5292 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5293 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
5294 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5295 if (UNTAG_Bool(REGB1)) {
5296 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 722);
5297 }
5298 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
5299 REGB2 = TAG_Int(1);
5300 /* ./../lib/standard//kernel.nit:235 */
5301 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5302 /* ./compiling//compiling_icode.nit:722 */
5303 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5304 if (UNTAG_Bool(REGB1)) {
5305 } else {
5306 /* ./../lib/standard//kernel.nit:227 */
5307 REGB2 = TAG_Bool((REGB0)==(REGB2));
5308 /* ./compiling//compiling_icode.nit:722 */
5309 REGB1 = REGB2;
5310 }
5311 if (UNTAG_Bool(REGB1)) {
5312 } else {
5313 nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 722);
5314 }
5315 /* ./compiling//compiling_icode.nit:723 */
5316 fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5317 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5318 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
5319 /* ./compiling//compiling_icode.nit:724 */
5320 fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
5321 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
5322 /* ./compiling//compiling_icode.nit:725 */
5323 fra.me.REG[4] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
5324 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5325 /* ./compiling//compiling_icode.nit:726 */
5326 fra.me.REG[5] = NIT_NULL;
5327 /* ./compiling//compiling_icode.nit:727 */
5328 if (!once_value_1) {
5329 if (!once_value_2) {
5330 fra.me.REG[6] = BOX_NativeString("Int");
5331 REGB1 = TAG_Int(3);
5332 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5333 once_value_2 = fra.me.REG[6];
5334 register_static_object(&once_value_2);
5335 } else fra.me.REG[6] = once_value_2;
5336 fra.me.REG[6] = fra.me.REG[6];
5337 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5338 once_value_1 = fra.me.REG[6];
5339 register_static_object(&once_value_1);
5340 } else fra.me.REG[6] = once_value_1;
5341 fra.me.REG[6] = fra.me.REG[6];
5342 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
5343 if (UNTAG_Bool(REGB1)) {
5344 } else {
5345 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
5346 REGB1 = REGB2;
5347 }
5348 if (UNTAG_Bool(REGB1)) {
5349 /* ./compiling//compiling_icode.nit:728 */
5350 if (!once_value_3) {
5351 if (!once_value_4) {
5352 fra.me.REG[6] = BOX_NativeString("object_id");
5353 REGB1 = TAG_Int(9);
5354 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5355 once_value_4 = fra.me.REG[6];
5356 register_static_object(&once_value_4);
5357 } else fra.me.REG[6] = once_value_4;
5358 fra.me.REG[6] = fra.me.REG[6];
5359 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5360 once_value_3 = fra.me.REG[6];
5361 register_static_object(&once_value_3);
5362 } else fra.me.REG[6] = once_value_3;
5363 fra.me.REG[6] = fra.me.REG[6];
5364 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5365 if (UNTAG_Bool(REGB1)) {
5366 } else {
5367 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5368 REGB1 = REGB2;
5369 }
5370 if (UNTAG_Bool(REGB1)) {
5371 /* ./compiling//compiling_icode.nit:729 */
5372 REGB1 = TAG_Int(0);
5373 /* ./../lib/standard//collection//array.nit:278 */
5374 fra.me.REG[6] = fra.me.REG[4];
5375 /* ./../lib/standard//collection//array.nit:280 */
5376 REGB2 = TAG_Int(0);
5377 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5378 if (UNTAG_Bool(REGB0)) {
5379 } else {
5380 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5381 }
5382 /* ./../lib/standard//kernel.nit:233 */
5383 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5384 /* ./../lib/standard//collection//array.nit:280 */
5385 if (UNTAG_Bool(REGB2)) {
5386 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
5387 if (UNTAG_Bool(REGB2)) {
5388 } else {
5389 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5390 }
5391 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
5392 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5393 if (UNTAG_Bool(REGB0)) {
5394 } else {
5395 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5396 }
5397 /* ./../lib/standard//kernel.nit:232 */
5398 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5399 } else {
5400 /* ./../lib/standard//collection//array.nit:280 */
5401 REGB0 = TAG_Bool(false);
5402 REGB2 = REGB0;
5403 }
5404 if (UNTAG_Bool(REGB2)) {
5405 } else {
5406 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5407 }
5408 /* ./../lib/standard//collection//array.nit:281 */
5409 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
5410 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5411 if (UNTAG_Bool(REGB2)) {
5412 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5413 }
5414 /* ./../lib/standard//collection//array.nit:718 */
5415 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
5416 /* ./../lib/standard//collection//array.nit:281 */
5417 goto label5;
5418 label5: while(0);
5419 /* ./compiling//compiling_icode.nit:729 */
5420 fra.me.REG[5] = fra.me.REG[6];
5421 } else {
5422 /* ./compiling//compiling_icode.nit:730 */
5423 if (!once_value_6) {
5424 if (!once_value_7) {
5425 fra.me.REG[6] = BOX_NativeString("unary -");
5426 REGB1 = TAG_Int(7);
5427 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5428 once_value_7 = fra.me.REG[6];
5429 register_static_object(&once_value_7);
5430 } else fra.me.REG[6] = once_value_7;
5431 fra.me.REG[6] = fra.me.REG[6];
5432 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5433 once_value_6 = fra.me.REG[6];
5434 register_static_object(&once_value_6);
5435 } else fra.me.REG[6] = once_value_6;
5436 fra.me.REG[6] = fra.me.REG[6];
5437 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5438 if (UNTAG_Bool(REGB1)) {
5439 } else {
5440 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5441 REGB1 = REGB2;
5442 }
5443 if (UNTAG_Bool(REGB1)) {
5444 /* ./compiling//compiling_icode.nit:731 */
5445 REGB1 = TAG_Int(3);
5446 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5447 if (!once_value_8) {
5448 fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(");
5449 REGB1 = TAG_Int(19);
5450 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5451 once_value_8 = fra.me.REG[7];
5452 register_static_object(&once_value_8);
5453 } else fra.me.REG[7] = once_value_8;
5454 fra.me.REG[7] = fra.me.REG[7];
5455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5456 REGB1 = TAG_Int(0);
5457 /* ./../lib/standard//collection//array.nit:278 */
5458 fra.me.REG[7] = fra.me.REG[4];
5459 /* ./../lib/standard//collection//array.nit:280 */
5460 REGB2 = TAG_Int(0);
5461 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5462 if (UNTAG_Bool(REGB0)) {
5463 } else {
5464 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5465 }
5466 /* ./../lib/standard//kernel.nit:233 */
5467 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5468 /* ./../lib/standard//collection//array.nit:280 */
5469 if (UNTAG_Bool(REGB2)) {
5470 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5471 if (UNTAG_Bool(REGB2)) {
5472 } else {
5473 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5474 }
5475 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5476 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5477 if (UNTAG_Bool(REGB0)) {
5478 } else {
5479 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5480 }
5481 /* ./../lib/standard//kernel.nit:232 */
5482 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5483 } else {
5484 /* ./../lib/standard//collection//array.nit:280 */
5485 REGB0 = TAG_Bool(false);
5486 REGB2 = REGB0;
5487 }
5488 if (UNTAG_Bool(REGB2)) {
5489 } else {
5490 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5491 }
5492 /* ./../lib/standard//collection//array.nit:281 */
5493 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5494 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5495 if (UNTAG_Bool(REGB2)) {
5496 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5497 }
5498 /* ./../lib/standard//collection//array.nit:718 */
5499 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5500 /* ./../lib/standard//collection//array.nit:281 */
5501 goto label9;
5502 label9: while(0);
5503 /* ./compiling//compiling_icode.nit:731 */
5504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5505 if (!once_value_10) {
5506 fra.me.REG[7] = BOX_NativeString("))");
5507 REGB1 = TAG_Int(2);
5508 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5509 once_value_10 = fra.me.REG[7];
5510 register_static_object(&once_value_10);
5511 } else fra.me.REG[7] = once_value_10;
5512 fra.me.REG[7] = fra.me.REG[7];
5513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5514 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5515 fra.me.REG[5] = fra.me.REG[6];
5516 } else {
5517 /* ./compiling//compiling_icode.nit:732 */
5518 if (!once_value_11) {
5519 if (!once_value_12) {
5520 fra.me.REG[6] = BOX_NativeString("output");
5521 REGB1 = TAG_Int(6);
5522 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5523 once_value_12 = fra.me.REG[6];
5524 register_static_object(&once_value_12);
5525 } else fra.me.REG[6] = once_value_12;
5526 fra.me.REG[6] = fra.me.REG[6];
5527 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5528 once_value_11 = fra.me.REG[6];
5529 register_static_object(&once_value_11);
5530 } else fra.me.REG[6] = once_value_11;
5531 fra.me.REG[6] = fra.me.REG[6];
5532 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5533 if (UNTAG_Bool(REGB1)) {
5534 } else {
5535 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5536 REGB1 = REGB2;
5537 }
5538 if (UNTAG_Bool(REGB1)) {
5539 /* ./compiling//compiling_icode.nit:733 */
5540 REGB1 = TAG_Int(3);
5541 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5542 if (!once_value_13) {
5543 fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(");
5544 REGB1 = TAG_Int(26);
5545 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5546 once_value_13 = fra.me.REG[7];
5547 register_static_object(&once_value_13);
5548 } else fra.me.REG[7] = once_value_13;
5549 fra.me.REG[7] = fra.me.REG[7];
5550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5551 REGB1 = TAG_Int(0);
5552 /* ./../lib/standard//collection//array.nit:278 */
5553 fra.me.REG[7] = fra.me.REG[4];
5554 /* ./../lib/standard//collection//array.nit:280 */
5555 REGB2 = TAG_Int(0);
5556 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5557 if (UNTAG_Bool(REGB0)) {
5558 } else {
5559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5560 }
5561 /* ./../lib/standard//kernel.nit:233 */
5562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5563 /* ./../lib/standard//collection//array.nit:280 */
5564 if (UNTAG_Bool(REGB2)) {
5565 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5566 if (UNTAG_Bool(REGB2)) {
5567 } else {
5568 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5569 }
5570 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5571 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5572 if (UNTAG_Bool(REGB0)) {
5573 } else {
5574 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5575 }
5576 /* ./../lib/standard//kernel.nit:232 */
5577 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5578 } else {
5579 /* ./../lib/standard//collection//array.nit:280 */
5580 REGB0 = TAG_Bool(false);
5581 REGB2 = REGB0;
5582 }
5583 if (UNTAG_Bool(REGB2)) {
5584 } else {
5585 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5586 }
5587 /* ./../lib/standard//collection//array.nit:281 */
5588 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5589 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5590 if (UNTAG_Bool(REGB2)) {
5591 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5592 }
5593 /* ./../lib/standard//collection//array.nit:718 */
5594 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5595 /* ./../lib/standard//collection//array.nit:281 */
5596 goto label14;
5597 label14: while(0);
5598 /* ./compiling//compiling_icode.nit:733 */
5599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5600 if (!once_value_15) {
5601 fra.me.REG[7] = BOX_NativeString("));");
5602 REGB1 = TAG_Int(3);
5603 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5604 once_value_15 = fra.me.REG[7];
5605 register_static_object(&once_value_15);
5606 } else fra.me.REG[7] = once_value_15;
5607 fra.me.REG[7] = fra.me.REG[7];
5608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5609 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5610 fra.me.REG[5] = fra.me.REG[6];
5611 } else {
5612 /* ./compiling//compiling_icode.nit:734 */
5613 if (!once_value_16) {
5614 if (!once_value_17) {
5615 fra.me.REG[6] = BOX_NativeString("ascii");
5616 REGB1 = TAG_Int(5);
5617 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5618 once_value_17 = fra.me.REG[6];
5619 register_static_object(&once_value_17);
5620 } else fra.me.REG[6] = once_value_17;
5621 fra.me.REG[6] = fra.me.REG[6];
5622 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5623 once_value_16 = fra.me.REG[6];
5624 register_static_object(&once_value_16);
5625 } else fra.me.REG[6] = once_value_16;
5626 fra.me.REG[6] = fra.me.REG[6];
5627 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5628 if (UNTAG_Bool(REGB1)) {
5629 } else {
5630 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5631 REGB1 = REGB2;
5632 }
5633 if (UNTAG_Bool(REGB1)) {
5634 /* ./compiling//compiling_icode.nit:735 */
5635 REGB1 = TAG_Int(3);
5636 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5637 if (!once_value_18) {
5638 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int(");
5639 REGB1 = TAG_Int(19);
5640 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5641 once_value_18 = fra.me.REG[7];
5642 register_static_object(&once_value_18);
5643 } else fra.me.REG[7] = once_value_18;
5644 fra.me.REG[7] = fra.me.REG[7];
5645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5646 REGB1 = TAG_Int(0);
5647 /* ./../lib/standard//collection//array.nit:278 */
5648 fra.me.REG[7] = fra.me.REG[4];
5649 /* ./../lib/standard//collection//array.nit:280 */
5650 REGB2 = TAG_Int(0);
5651 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5652 if (UNTAG_Bool(REGB0)) {
5653 } else {
5654 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5655 }
5656 /* ./../lib/standard//kernel.nit:233 */
5657 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5658 /* ./../lib/standard//collection//array.nit:280 */
5659 if (UNTAG_Bool(REGB2)) {
5660 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5661 if (UNTAG_Bool(REGB2)) {
5662 } else {
5663 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5664 }
5665 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5666 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5667 if (UNTAG_Bool(REGB0)) {
5668 } else {
5669 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5670 }
5671 /* ./../lib/standard//kernel.nit:232 */
5672 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5673 } else {
5674 /* ./../lib/standard//collection//array.nit:280 */
5675 REGB0 = TAG_Bool(false);
5676 REGB2 = REGB0;
5677 }
5678 if (UNTAG_Bool(REGB2)) {
5679 } else {
5680 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5681 }
5682 /* ./../lib/standard//collection//array.nit:281 */
5683 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5684 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5685 if (UNTAG_Bool(REGB2)) {
5686 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5687 }
5688 /* ./../lib/standard//collection//array.nit:718 */
5689 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5690 /* ./../lib/standard//collection//array.nit:281 */
5691 goto label19;
5692 label19: while(0);
5693 /* ./compiling//compiling_icode.nit:735 */
5694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5695 if (!once_value_20) {
5696 fra.me.REG[7] = BOX_NativeString("))");
5697 REGB1 = TAG_Int(2);
5698 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5699 once_value_20 = fra.me.REG[7];
5700 register_static_object(&once_value_20);
5701 } else fra.me.REG[7] = once_value_20;
5702 fra.me.REG[7] = fra.me.REG[7];
5703 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5704 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5705 fra.me.REG[5] = fra.me.REG[6];
5706 } else {
5707 /* ./compiling//compiling_icode.nit:736 */
5708 if (!once_value_21) {
5709 if (!once_value_22) {
5710 fra.me.REG[6] = BOX_NativeString("succ");
5711 REGB1 = TAG_Int(4);
5712 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5713 once_value_22 = fra.me.REG[6];
5714 register_static_object(&once_value_22);
5715 } else fra.me.REG[6] = once_value_22;
5716 fra.me.REG[6] = fra.me.REG[6];
5717 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5718 once_value_21 = fra.me.REG[6];
5719 register_static_object(&once_value_21);
5720 } else fra.me.REG[6] = once_value_21;
5721 fra.me.REG[6] = fra.me.REG[6];
5722 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5723 if (UNTAG_Bool(REGB1)) {
5724 } else {
5725 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5726 REGB1 = REGB2;
5727 }
5728 if (UNTAG_Bool(REGB1)) {
5729 /* ./compiling//compiling_icode.nit:737 */
5730 REGB1 = TAG_Int(3);
5731 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5732 if (!once_value_23) {
5733 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5734 REGB1 = TAG_Int(18);
5735 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5736 once_value_23 = fra.me.REG[7];
5737 register_static_object(&once_value_23);
5738 } else fra.me.REG[7] = once_value_23;
5739 fra.me.REG[7] = fra.me.REG[7];
5740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5741 REGB1 = TAG_Int(0);
5742 /* ./../lib/standard//collection//array.nit:278 */
5743 fra.me.REG[7] = fra.me.REG[4];
5744 /* ./../lib/standard//collection//array.nit:280 */
5745 REGB2 = TAG_Int(0);
5746 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5747 if (UNTAG_Bool(REGB0)) {
5748 } else {
5749 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5750 }
5751 /* ./../lib/standard//kernel.nit:233 */
5752 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5753 /* ./../lib/standard//collection//array.nit:280 */
5754 if (UNTAG_Bool(REGB2)) {
5755 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5756 if (UNTAG_Bool(REGB2)) {
5757 } else {
5758 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5759 }
5760 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5761 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5762 if (UNTAG_Bool(REGB0)) {
5763 } else {
5764 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5765 }
5766 /* ./../lib/standard//kernel.nit:232 */
5767 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5768 } else {
5769 /* ./../lib/standard//collection//array.nit:280 */
5770 REGB0 = TAG_Bool(false);
5771 REGB2 = REGB0;
5772 }
5773 if (UNTAG_Bool(REGB2)) {
5774 } else {
5775 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5776 }
5777 /* ./../lib/standard//collection//array.nit:281 */
5778 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5779 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5780 if (UNTAG_Bool(REGB2)) {
5781 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5782 }
5783 /* ./../lib/standard//collection//array.nit:718 */
5784 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5785 /* ./../lib/standard//collection//array.nit:281 */
5786 goto label24;
5787 label24: while(0);
5788 /* ./compiling//compiling_icode.nit:737 */
5789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5790 if (!once_value_25) {
5791 fra.me.REG[7] = BOX_NativeString(")+1)");
5792 REGB1 = TAG_Int(4);
5793 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5794 once_value_25 = fra.me.REG[7];
5795 register_static_object(&once_value_25);
5796 } else fra.me.REG[7] = once_value_25;
5797 fra.me.REG[7] = fra.me.REG[7];
5798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5799 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5800 fra.me.REG[5] = fra.me.REG[6];
5801 } else {
5802 /* ./compiling//compiling_icode.nit:738 */
5803 if (!once_value_26) {
5804 if (!once_value_27) {
5805 fra.me.REG[6] = BOX_NativeString("prec");
5806 REGB1 = TAG_Int(4);
5807 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5808 once_value_27 = fra.me.REG[6];
5809 register_static_object(&once_value_27);
5810 } else fra.me.REG[6] = once_value_27;
5811 fra.me.REG[6] = fra.me.REG[6];
5812 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5813 once_value_26 = fra.me.REG[6];
5814 register_static_object(&once_value_26);
5815 } else fra.me.REG[6] = once_value_26;
5816 fra.me.REG[6] = fra.me.REG[6];
5817 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5818 if (UNTAG_Bool(REGB1)) {
5819 } else {
5820 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5821 REGB1 = REGB2;
5822 }
5823 if (UNTAG_Bool(REGB1)) {
5824 /* ./compiling//compiling_icode.nit:739 */
5825 REGB1 = TAG_Int(3);
5826 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5827 if (!once_value_28) {
5828 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
5829 REGB1 = TAG_Int(18);
5830 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5831 once_value_28 = fra.me.REG[7];
5832 register_static_object(&once_value_28);
5833 } else fra.me.REG[7] = once_value_28;
5834 fra.me.REG[7] = fra.me.REG[7];
5835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5836 REGB1 = TAG_Int(0);
5837 /* ./../lib/standard//collection//array.nit:278 */
5838 fra.me.REG[7] = fra.me.REG[4];
5839 /* ./../lib/standard//collection//array.nit:280 */
5840 REGB2 = TAG_Int(0);
5841 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5842 if (UNTAG_Bool(REGB0)) {
5843 } else {
5844 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5845 }
5846 /* ./../lib/standard//kernel.nit:233 */
5847 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5848 /* ./../lib/standard//collection//array.nit:280 */
5849 if (UNTAG_Bool(REGB2)) {
5850 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5851 if (UNTAG_Bool(REGB2)) {
5852 } else {
5853 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5854 }
5855 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5856 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5857 if (UNTAG_Bool(REGB0)) {
5858 } else {
5859 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5860 }
5861 /* ./../lib/standard//kernel.nit:232 */
5862 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5863 } else {
5864 /* ./../lib/standard//collection//array.nit:280 */
5865 REGB0 = TAG_Bool(false);
5866 REGB2 = REGB0;
5867 }
5868 if (UNTAG_Bool(REGB2)) {
5869 } else {
5870 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5871 }
5872 /* ./../lib/standard//collection//array.nit:281 */
5873 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5874 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5875 if (UNTAG_Bool(REGB2)) {
5876 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5877 }
5878 /* ./../lib/standard//collection//array.nit:718 */
5879 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5880 /* ./../lib/standard//collection//array.nit:281 */
5881 goto label29;
5882 label29: while(0);
5883 /* ./compiling//compiling_icode.nit:739 */
5884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5885 if (!once_value_30) {
5886 fra.me.REG[7] = BOX_NativeString(")-1)");
5887 REGB1 = TAG_Int(4);
5888 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5889 once_value_30 = fra.me.REG[7];
5890 register_static_object(&once_value_30);
5891 } else fra.me.REG[7] = once_value_30;
5892 fra.me.REG[7] = fra.me.REG[7];
5893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5894 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5895 fra.me.REG[5] = fra.me.REG[6];
5896 } else {
5897 /* ./compiling//compiling_icode.nit:740 */
5898 if (!once_value_31) {
5899 if (!once_value_32) {
5900 fra.me.REG[6] = BOX_NativeString("to_f");
5901 REGB1 = TAG_Int(4);
5902 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5903 once_value_32 = fra.me.REG[6];
5904 register_static_object(&once_value_32);
5905 } else fra.me.REG[6] = once_value_32;
5906 fra.me.REG[6] = fra.me.REG[6];
5907 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
5908 once_value_31 = fra.me.REG[6];
5909 register_static_object(&once_value_31);
5910 } else fra.me.REG[6] = once_value_31;
5911 fra.me.REG[6] = fra.me.REG[6];
5912 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
5913 if (UNTAG_Bool(REGB1)) {
5914 } else {
5915 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
5916 REGB1 = REGB2;
5917 }
5918 if (UNTAG_Bool(REGB1)) {
5919 /* ./compiling//compiling_icode.nit:741 */
5920 REGB1 = TAG_Int(3);
5921 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
5922 if (!once_value_33) {
5923 fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(");
5924 REGB1 = TAG_Int(27);
5925 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5926 once_value_33 = fra.me.REG[7];
5927 register_static_object(&once_value_33);
5928 } else fra.me.REG[7] = once_value_33;
5929 fra.me.REG[7] = fra.me.REG[7];
5930 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5931 REGB1 = TAG_Int(0);
5932 /* ./../lib/standard//collection//array.nit:278 */
5933 fra.me.REG[7] = fra.me.REG[4];
5934 /* ./../lib/standard//collection//array.nit:280 */
5935 REGB2 = TAG_Int(0);
5936 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5937 if (UNTAG_Bool(REGB0)) {
5938 } else {
5939 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5940 }
5941 /* ./../lib/standard//kernel.nit:233 */
5942 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
5943 /* ./../lib/standard//collection//array.nit:280 */
5944 if (UNTAG_Bool(REGB2)) {
5945 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5946 if (UNTAG_Bool(REGB2)) {
5947 } else {
5948 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5949 }
5950 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
5951 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5952 if (UNTAG_Bool(REGB0)) {
5953 } else {
5954 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5955 }
5956 /* ./../lib/standard//kernel.nit:232 */
5957 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5958 } else {
5959 /* ./../lib/standard//collection//array.nit:280 */
5960 REGB0 = TAG_Bool(false);
5961 REGB2 = REGB0;
5962 }
5963 if (UNTAG_Bool(REGB2)) {
5964 } else {
5965 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
5966 }
5967 /* ./../lib/standard//collection//array.nit:281 */
5968 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
5969 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5970 if (UNTAG_Bool(REGB2)) {
5971 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5972 }
5973 /* ./../lib/standard//collection//array.nit:718 */
5974 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5975 /* ./../lib/standard//collection//array.nit:281 */
5976 goto label34;
5977 label34: while(0);
5978 /* ./compiling//compiling_icode.nit:741 */
5979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5980 if (!once_value_35) {
5981 fra.me.REG[7] = BOX_NativeString("))");
5982 REGB1 = TAG_Int(2);
5983 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
5984 once_value_35 = fra.me.REG[7];
5985 register_static_object(&once_value_35);
5986 } else fra.me.REG[7] = once_value_35;
5987 fra.me.REG[7] = fra.me.REG[7];
5988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5989 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5990 fra.me.REG[5] = fra.me.REG[6];
5991 } else {
5992 /* ./compiling//compiling_icode.nit:742 */
5993 if (!once_value_36) {
5994 if (!once_value_37) {
5995 fra.me.REG[6] = BOX_NativeString("+");
5996 REGB1 = TAG_Int(1);
5997 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
5998 once_value_37 = fra.me.REG[6];
5999 register_static_object(&once_value_37);
6000 } else fra.me.REG[6] = once_value_37;
6001 fra.me.REG[6] = fra.me.REG[6];
6002 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6003 once_value_36 = fra.me.REG[6];
6004 register_static_object(&once_value_36);
6005 } else fra.me.REG[6] = once_value_36;
6006 fra.me.REG[6] = fra.me.REG[6];
6007 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6008 if (UNTAG_Bool(REGB1)) {
6009 } else {
6010 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6011 REGB1 = REGB2;
6012 }
6013 if (UNTAG_Bool(REGB1)) {
6014 /* ./compiling//compiling_icode.nit:743 */
6015 REGB1 = TAG_Int(5);
6016 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6017 if (!once_value_38) {
6018 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6019 REGB1 = TAG_Int(18);
6020 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6021 once_value_38 = fra.me.REG[7];
6022 register_static_object(&once_value_38);
6023 } else fra.me.REG[7] = once_value_38;
6024 fra.me.REG[7] = fra.me.REG[7];
6025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6026 REGB1 = TAG_Int(0);
6027 /* ./../lib/standard//collection//array.nit:278 */
6028 fra.me.REG[7] = fra.me.REG[4];
6029 /* ./../lib/standard//collection//array.nit:280 */
6030 REGB2 = TAG_Int(0);
6031 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6032 if (UNTAG_Bool(REGB0)) {
6033 } else {
6034 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6035 }
6036 /* ./../lib/standard//kernel.nit:233 */
6037 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6038 /* ./../lib/standard//collection//array.nit:280 */
6039 if (UNTAG_Bool(REGB2)) {
6040 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6041 if (UNTAG_Bool(REGB2)) {
6042 } else {
6043 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6044 }
6045 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6046 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6047 if (UNTAG_Bool(REGB0)) {
6048 } else {
6049 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6050 }
6051 /* ./../lib/standard//kernel.nit:232 */
6052 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6053 } else {
6054 /* ./../lib/standard//collection//array.nit:280 */
6055 REGB0 = TAG_Bool(false);
6056 REGB2 = REGB0;
6057 }
6058 if (UNTAG_Bool(REGB2)) {
6059 } else {
6060 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6061 }
6062 /* ./../lib/standard//collection//array.nit:281 */
6063 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6064 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6065 if (UNTAG_Bool(REGB2)) {
6066 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6067 }
6068 /* ./../lib/standard//collection//array.nit:718 */
6069 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6070 /* ./../lib/standard//collection//array.nit:281 */
6071 goto label39;
6072 label39: while(0);
6073 /* ./compiling//compiling_icode.nit:743 */
6074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6075 if (!once_value_40) {
6076 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
6077 REGB1 = TAG_Int(12);
6078 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6079 once_value_40 = fra.me.REG[7];
6080 register_static_object(&once_value_40);
6081 } else fra.me.REG[7] = once_value_40;
6082 fra.me.REG[7] = fra.me.REG[7];
6083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6084 REGB1 = TAG_Int(1);
6085 /* ./../lib/standard//collection//array.nit:278 */
6086 fra.me.REG[7] = fra.me.REG[4];
6087 /* ./../lib/standard//collection//array.nit:280 */
6088 REGB2 = TAG_Int(0);
6089 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6090 if (UNTAG_Bool(REGB0)) {
6091 } else {
6092 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6093 }
6094 /* ./../lib/standard//kernel.nit:233 */
6095 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6096 /* ./../lib/standard//collection//array.nit:280 */
6097 if (UNTAG_Bool(REGB2)) {
6098 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6099 if (UNTAG_Bool(REGB2)) {
6100 } else {
6101 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6102 }
6103 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6104 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6105 if (UNTAG_Bool(REGB0)) {
6106 } else {
6107 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6108 }
6109 /* ./../lib/standard//kernel.nit:232 */
6110 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6111 } else {
6112 /* ./../lib/standard//collection//array.nit:280 */
6113 REGB0 = TAG_Bool(false);
6114 REGB2 = REGB0;
6115 }
6116 if (UNTAG_Bool(REGB2)) {
6117 } else {
6118 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6119 }
6120 /* ./../lib/standard//collection//array.nit:281 */
6121 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6122 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6123 if (UNTAG_Bool(REGB2)) {
6124 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6125 }
6126 /* ./../lib/standard//collection//array.nit:718 */
6127 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6128 /* ./../lib/standard//collection//array.nit:281 */
6129 goto label41;
6130 label41: while(0);
6131 /* ./compiling//compiling_icode.nit:743 */
6132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6133 if (!once_value_42) {
6134 fra.me.REG[7] = BOX_NativeString("))");
6135 REGB1 = TAG_Int(2);
6136 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6137 once_value_42 = fra.me.REG[7];
6138 register_static_object(&once_value_42);
6139 } else fra.me.REG[7] = once_value_42;
6140 fra.me.REG[7] = fra.me.REG[7];
6141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6142 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6143 fra.me.REG[5] = fra.me.REG[6];
6144 } else {
6145 /* ./compiling//compiling_icode.nit:744 */
6146 if (!once_value_43) {
6147 if (!once_value_44) {
6148 fra.me.REG[6] = BOX_NativeString("-");
6149 REGB1 = TAG_Int(1);
6150 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6151 once_value_44 = fra.me.REG[6];
6152 register_static_object(&once_value_44);
6153 } else fra.me.REG[6] = once_value_44;
6154 fra.me.REG[6] = fra.me.REG[6];
6155 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6156 once_value_43 = fra.me.REG[6];
6157 register_static_object(&once_value_43);
6158 } else fra.me.REG[6] = once_value_43;
6159 fra.me.REG[6] = fra.me.REG[6];
6160 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6161 if (UNTAG_Bool(REGB1)) {
6162 } else {
6163 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6164 REGB1 = REGB2;
6165 }
6166 if (UNTAG_Bool(REGB1)) {
6167 /* ./compiling//compiling_icode.nit:745 */
6168 REGB1 = TAG_Int(5);
6169 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6170 if (!once_value_45) {
6171 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6172 REGB1 = TAG_Int(18);
6173 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6174 once_value_45 = fra.me.REG[7];
6175 register_static_object(&once_value_45);
6176 } else fra.me.REG[7] = once_value_45;
6177 fra.me.REG[7] = fra.me.REG[7];
6178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6179 REGB1 = TAG_Int(0);
6180 /* ./../lib/standard//collection//array.nit:278 */
6181 fra.me.REG[7] = fra.me.REG[4];
6182 /* ./../lib/standard//collection//array.nit:280 */
6183 REGB2 = TAG_Int(0);
6184 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6185 if (UNTAG_Bool(REGB0)) {
6186 } else {
6187 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6188 }
6189 /* ./../lib/standard//kernel.nit:233 */
6190 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6191 /* ./../lib/standard//collection//array.nit:280 */
6192 if (UNTAG_Bool(REGB2)) {
6193 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6194 if (UNTAG_Bool(REGB2)) {
6195 } else {
6196 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6197 }
6198 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6199 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6200 if (UNTAG_Bool(REGB0)) {
6201 } else {
6202 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6203 }
6204 /* ./../lib/standard//kernel.nit:232 */
6205 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6206 } else {
6207 /* ./../lib/standard//collection//array.nit:280 */
6208 REGB0 = TAG_Bool(false);
6209 REGB2 = REGB0;
6210 }
6211 if (UNTAG_Bool(REGB2)) {
6212 } else {
6213 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6214 }
6215 /* ./../lib/standard//collection//array.nit:281 */
6216 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6217 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6218 if (UNTAG_Bool(REGB2)) {
6219 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6220 }
6221 /* ./../lib/standard//collection//array.nit:718 */
6222 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6223 /* ./../lib/standard//collection//array.nit:281 */
6224 goto label46;
6225 label46: while(0);
6226 /* ./compiling//compiling_icode.nit:745 */
6227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6228 if (!once_value_47) {
6229 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
6230 REGB1 = TAG_Int(12);
6231 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6232 once_value_47 = fra.me.REG[7];
6233 register_static_object(&once_value_47);
6234 } else fra.me.REG[7] = once_value_47;
6235 fra.me.REG[7] = fra.me.REG[7];
6236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6237 REGB1 = TAG_Int(1);
6238 /* ./../lib/standard//collection//array.nit:278 */
6239 fra.me.REG[7] = fra.me.REG[4];
6240 /* ./../lib/standard//collection//array.nit:280 */
6241 REGB2 = TAG_Int(0);
6242 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6243 if (UNTAG_Bool(REGB0)) {
6244 } else {
6245 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6246 }
6247 /* ./../lib/standard//kernel.nit:233 */
6248 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6249 /* ./../lib/standard//collection//array.nit:280 */
6250 if (UNTAG_Bool(REGB2)) {
6251 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6252 if (UNTAG_Bool(REGB2)) {
6253 } else {
6254 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6255 }
6256 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6257 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6258 if (UNTAG_Bool(REGB0)) {
6259 } else {
6260 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6261 }
6262 /* ./../lib/standard//kernel.nit:232 */
6263 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6264 } else {
6265 /* ./../lib/standard//collection//array.nit:280 */
6266 REGB0 = TAG_Bool(false);
6267 REGB2 = REGB0;
6268 }
6269 if (UNTAG_Bool(REGB2)) {
6270 } else {
6271 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6272 }
6273 /* ./../lib/standard//collection//array.nit:281 */
6274 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6275 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6276 if (UNTAG_Bool(REGB2)) {
6277 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6278 }
6279 /* ./../lib/standard//collection//array.nit:718 */
6280 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6281 /* ./../lib/standard//collection//array.nit:281 */
6282 goto label48;
6283 label48: while(0);
6284 /* ./compiling//compiling_icode.nit:745 */
6285 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6286 if (!once_value_49) {
6287 fra.me.REG[7] = BOX_NativeString("))");
6288 REGB1 = TAG_Int(2);
6289 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6290 once_value_49 = fra.me.REG[7];
6291 register_static_object(&once_value_49);
6292 } else fra.me.REG[7] = once_value_49;
6293 fra.me.REG[7] = fra.me.REG[7];
6294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6295 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6296 fra.me.REG[5] = fra.me.REG[6];
6297 } else {
6298 /* ./compiling//compiling_icode.nit:746 */
6299 if (!once_value_50) {
6300 if (!once_value_51) {
6301 fra.me.REG[6] = BOX_NativeString("*");
6302 REGB1 = TAG_Int(1);
6303 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6304 once_value_51 = fra.me.REG[6];
6305 register_static_object(&once_value_51);
6306 } else fra.me.REG[6] = once_value_51;
6307 fra.me.REG[6] = fra.me.REG[6];
6308 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6309 once_value_50 = fra.me.REG[6];
6310 register_static_object(&once_value_50);
6311 } else fra.me.REG[6] = once_value_50;
6312 fra.me.REG[6] = fra.me.REG[6];
6313 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6314 if (UNTAG_Bool(REGB1)) {
6315 } else {
6316 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6317 REGB1 = REGB2;
6318 }
6319 if (UNTAG_Bool(REGB1)) {
6320 /* ./compiling//compiling_icode.nit:747 */
6321 REGB1 = TAG_Int(5);
6322 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6323 if (!once_value_52) {
6324 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6325 REGB1 = TAG_Int(18);
6326 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6327 once_value_52 = fra.me.REG[7];
6328 register_static_object(&once_value_52);
6329 } else fra.me.REG[7] = once_value_52;
6330 fra.me.REG[7] = fra.me.REG[7];
6331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6332 REGB1 = TAG_Int(0);
6333 /* ./../lib/standard//collection//array.nit:278 */
6334 fra.me.REG[7] = fra.me.REG[4];
6335 /* ./../lib/standard//collection//array.nit:280 */
6336 REGB2 = TAG_Int(0);
6337 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6338 if (UNTAG_Bool(REGB0)) {
6339 } else {
6340 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6341 }
6342 /* ./../lib/standard//kernel.nit:233 */
6343 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6344 /* ./../lib/standard//collection//array.nit:280 */
6345 if (UNTAG_Bool(REGB2)) {
6346 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6347 if (UNTAG_Bool(REGB2)) {
6348 } else {
6349 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6350 }
6351 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6352 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6353 if (UNTAG_Bool(REGB0)) {
6354 } else {
6355 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6356 }
6357 /* ./../lib/standard//kernel.nit:232 */
6358 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6359 } else {
6360 /* ./../lib/standard//collection//array.nit:280 */
6361 REGB0 = TAG_Bool(false);
6362 REGB2 = REGB0;
6363 }
6364 if (UNTAG_Bool(REGB2)) {
6365 } else {
6366 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6367 }
6368 /* ./../lib/standard//collection//array.nit:281 */
6369 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6370 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6371 if (UNTAG_Bool(REGB2)) {
6372 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6373 }
6374 /* ./../lib/standard//collection//array.nit:718 */
6375 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6376 /* ./../lib/standard//collection//array.nit:281 */
6377 goto label53;
6378 label53: while(0);
6379 /* ./compiling//compiling_icode.nit:747 */
6380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6381 if (!once_value_54) {
6382 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
6383 REGB1 = TAG_Int(12);
6384 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6385 once_value_54 = fra.me.REG[7];
6386 register_static_object(&once_value_54);
6387 } else fra.me.REG[7] = once_value_54;
6388 fra.me.REG[7] = fra.me.REG[7];
6389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6390 REGB1 = TAG_Int(1);
6391 /* ./../lib/standard//collection//array.nit:278 */
6392 fra.me.REG[7] = fra.me.REG[4];
6393 /* ./../lib/standard//collection//array.nit:280 */
6394 REGB2 = TAG_Int(0);
6395 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6396 if (UNTAG_Bool(REGB0)) {
6397 } else {
6398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6399 }
6400 /* ./../lib/standard//kernel.nit:233 */
6401 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6402 /* ./../lib/standard//collection//array.nit:280 */
6403 if (UNTAG_Bool(REGB2)) {
6404 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6405 if (UNTAG_Bool(REGB2)) {
6406 } else {
6407 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6408 }
6409 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6410 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6411 if (UNTAG_Bool(REGB0)) {
6412 } else {
6413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6414 }
6415 /* ./../lib/standard//kernel.nit:232 */
6416 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6417 } else {
6418 /* ./../lib/standard//collection//array.nit:280 */
6419 REGB0 = TAG_Bool(false);
6420 REGB2 = REGB0;
6421 }
6422 if (UNTAG_Bool(REGB2)) {
6423 } else {
6424 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6425 }
6426 /* ./../lib/standard//collection//array.nit:281 */
6427 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6428 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6429 if (UNTAG_Bool(REGB2)) {
6430 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6431 }
6432 /* ./../lib/standard//collection//array.nit:718 */
6433 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6434 /* ./../lib/standard//collection//array.nit:281 */
6435 goto label55;
6436 label55: while(0);
6437 /* ./compiling//compiling_icode.nit:747 */
6438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6439 if (!once_value_56) {
6440 fra.me.REG[7] = BOX_NativeString("))");
6441 REGB1 = TAG_Int(2);
6442 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6443 once_value_56 = fra.me.REG[7];
6444 register_static_object(&once_value_56);
6445 } else fra.me.REG[7] = once_value_56;
6446 fra.me.REG[7] = fra.me.REG[7];
6447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6448 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6449 fra.me.REG[5] = fra.me.REG[6];
6450 } else {
6451 /* ./compiling//compiling_icode.nit:748 */
6452 if (!once_value_57) {
6453 if (!once_value_58) {
6454 fra.me.REG[6] = BOX_NativeString("/");
6455 REGB1 = TAG_Int(1);
6456 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6457 once_value_58 = fra.me.REG[6];
6458 register_static_object(&once_value_58);
6459 } else fra.me.REG[6] = once_value_58;
6460 fra.me.REG[6] = fra.me.REG[6];
6461 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6462 once_value_57 = fra.me.REG[6];
6463 register_static_object(&once_value_57);
6464 } else fra.me.REG[6] = once_value_57;
6465 fra.me.REG[6] = fra.me.REG[6];
6466 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6467 if (UNTAG_Bool(REGB1)) {
6468 } else {
6469 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6470 REGB1 = REGB2;
6471 }
6472 if (UNTAG_Bool(REGB1)) {
6473 /* ./compiling//compiling_icode.nit:749 */
6474 REGB1 = TAG_Int(5);
6475 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6476 if (!once_value_59) {
6477 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6478 REGB1 = TAG_Int(18);
6479 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6480 once_value_59 = fra.me.REG[7];
6481 register_static_object(&once_value_59);
6482 } else fra.me.REG[7] = once_value_59;
6483 fra.me.REG[7] = fra.me.REG[7];
6484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6485 REGB1 = TAG_Int(0);
6486 /* ./../lib/standard//collection//array.nit:278 */
6487 fra.me.REG[7] = fra.me.REG[4];
6488 /* ./../lib/standard//collection//array.nit:280 */
6489 REGB2 = TAG_Int(0);
6490 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6491 if (UNTAG_Bool(REGB0)) {
6492 } else {
6493 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6494 }
6495 /* ./../lib/standard//kernel.nit:233 */
6496 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6497 /* ./../lib/standard//collection//array.nit:280 */
6498 if (UNTAG_Bool(REGB2)) {
6499 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6500 if (UNTAG_Bool(REGB2)) {
6501 } else {
6502 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6503 }
6504 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6505 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6506 if (UNTAG_Bool(REGB0)) {
6507 } else {
6508 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6509 }
6510 /* ./../lib/standard//kernel.nit:232 */
6511 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6512 } else {
6513 /* ./../lib/standard//collection//array.nit:280 */
6514 REGB0 = TAG_Bool(false);
6515 REGB2 = REGB0;
6516 }
6517 if (UNTAG_Bool(REGB2)) {
6518 } else {
6519 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6520 }
6521 /* ./../lib/standard//collection//array.nit:281 */
6522 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6523 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6524 if (UNTAG_Bool(REGB2)) {
6525 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6526 }
6527 /* ./../lib/standard//collection//array.nit:718 */
6528 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6529 /* ./../lib/standard//collection//array.nit:281 */
6530 goto label60;
6531 label60: while(0);
6532 /* ./compiling//compiling_icode.nit:749 */
6533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6534 if (!once_value_61) {
6535 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
6536 REGB1 = TAG_Int(12);
6537 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6538 once_value_61 = fra.me.REG[7];
6539 register_static_object(&once_value_61);
6540 } else fra.me.REG[7] = once_value_61;
6541 fra.me.REG[7] = fra.me.REG[7];
6542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6543 REGB1 = TAG_Int(1);
6544 /* ./../lib/standard//collection//array.nit:278 */
6545 fra.me.REG[7] = fra.me.REG[4];
6546 /* ./../lib/standard//collection//array.nit:280 */
6547 REGB2 = TAG_Int(0);
6548 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6549 if (UNTAG_Bool(REGB0)) {
6550 } else {
6551 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6552 }
6553 /* ./../lib/standard//kernel.nit:233 */
6554 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6555 /* ./../lib/standard//collection//array.nit:280 */
6556 if (UNTAG_Bool(REGB2)) {
6557 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6558 if (UNTAG_Bool(REGB2)) {
6559 } else {
6560 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6561 }
6562 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6563 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6564 if (UNTAG_Bool(REGB0)) {
6565 } else {
6566 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6567 }
6568 /* ./../lib/standard//kernel.nit:232 */
6569 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6570 } else {
6571 /* ./../lib/standard//collection//array.nit:280 */
6572 REGB0 = TAG_Bool(false);
6573 REGB2 = REGB0;
6574 }
6575 if (UNTAG_Bool(REGB2)) {
6576 } else {
6577 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6578 }
6579 /* ./../lib/standard//collection//array.nit:281 */
6580 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6581 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6582 if (UNTAG_Bool(REGB2)) {
6583 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6584 }
6585 /* ./../lib/standard//collection//array.nit:718 */
6586 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6587 /* ./../lib/standard//collection//array.nit:281 */
6588 goto label62;
6589 label62: while(0);
6590 /* ./compiling//compiling_icode.nit:749 */
6591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6592 if (!once_value_63) {
6593 fra.me.REG[7] = BOX_NativeString("))");
6594 REGB1 = TAG_Int(2);
6595 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6596 once_value_63 = fra.me.REG[7];
6597 register_static_object(&once_value_63);
6598 } else fra.me.REG[7] = once_value_63;
6599 fra.me.REG[7] = fra.me.REG[7];
6600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6601 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6602 fra.me.REG[5] = fra.me.REG[6];
6603 } else {
6604 /* ./compiling//compiling_icode.nit:750 */
6605 if (!once_value_64) {
6606 if (!once_value_65) {
6607 fra.me.REG[6] = BOX_NativeString("%");
6608 REGB1 = TAG_Int(1);
6609 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6610 once_value_65 = fra.me.REG[6];
6611 register_static_object(&once_value_65);
6612 } else fra.me.REG[6] = once_value_65;
6613 fra.me.REG[6] = fra.me.REG[6];
6614 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6615 once_value_64 = fra.me.REG[6];
6616 register_static_object(&once_value_64);
6617 } else fra.me.REG[6] = once_value_64;
6618 fra.me.REG[6] = fra.me.REG[6];
6619 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6620 if (UNTAG_Bool(REGB1)) {
6621 } else {
6622 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6623 REGB1 = REGB2;
6624 }
6625 if (UNTAG_Bool(REGB1)) {
6626 /* ./compiling//compiling_icode.nit:751 */
6627 REGB1 = TAG_Int(5);
6628 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6629 if (!once_value_66) {
6630 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
6631 REGB1 = TAG_Int(18);
6632 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6633 once_value_66 = fra.me.REG[7];
6634 register_static_object(&once_value_66);
6635 } else fra.me.REG[7] = once_value_66;
6636 fra.me.REG[7] = fra.me.REG[7];
6637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6638 REGB1 = TAG_Int(0);
6639 /* ./../lib/standard//collection//array.nit:278 */
6640 fra.me.REG[7] = fra.me.REG[4];
6641 /* ./../lib/standard//collection//array.nit:280 */
6642 REGB2 = TAG_Int(0);
6643 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6644 if (UNTAG_Bool(REGB0)) {
6645 } else {
6646 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6647 }
6648 /* ./../lib/standard//kernel.nit:233 */
6649 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6650 /* ./../lib/standard//collection//array.nit:280 */
6651 if (UNTAG_Bool(REGB2)) {
6652 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6653 if (UNTAG_Bool(REGB2)) {
6654 } else {
6655 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6656 }
6657 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6658 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6659 if (UNTAG_Bool(REGB0)) {
6660 } else {
6661 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6662 }
6663 /* ./../lib/standard//kernel.nit:232 */
6664 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6665 } else {
6666 /* ./../lib/standard//collection//array.nit:280 */
6667 REGB0 = TAG_Bool(false);
6668 REGB2 = REGB0;
6669 }
6670 if (UNTAG_Bool(REGB2)) {
6671 } else {
6672 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6673 }
6674 /* ./../lib/standard//collection//array.nit:281 */
6675 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6676 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6677 if (UNTAG_Bool(REGB2)) {
6678 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6679 }
6680 /* ./../lib/standard//collection//array.nit:718 */
6681 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6682 /* ./../lib/standard//collection//array.nit:281 */
6683 goto label67;
6684 label67: while(0);
6685 /* ./compiling//compiling_icode.nit:751 */
6686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6687 if (!once_value_68) {
6688 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
6689 REGB1 = TAG_Int(12);
6690 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6691 once_value_68 = fra.me.REG[7];
6692 register_static_object(&once_value_68);
6693 } else fra.me.REG[7] = once_value_68;
6694 fra.me.REG[7] = fra.me.REG[7];
6695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6696 REGB1 = TAG_Int(1);
6697 /* ./../lib/standard//collection//array.nit:278 */
6698 fra.me.REG[7] = fra.me.REG[4];
6699 /* ./../lib/standard//collection//array.nit:280 */
6700 REGB2 = TAG_Int(0);
6701 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6702 if (UNTAG_Bool(REGB0)) {
6703 } else {
6704 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6705 }
6706 /* ./../lib/standard//kernel.nit:233 */
6707 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6708 /* ./../lib/standard//collection//array.nit:280 */
6709 if (UNTAG_Bool(REGB2)) {
6710 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6711 if (UNTAG_Bool(REGB2)) {
6712 } else {
6713 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6714 }
6715 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6716 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6717 if (UNTAG_Bool(REGB0)) {
6718 } else {
6719 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6720 }
6721 /* ./../lib/standard//kernel.nit:232 */
6722 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6723 } else {
6724 /* ./../lib/standard//collection//array.nit:280 */
6725 REGB0 = TAG_Bool(false);
6726 REGB2 = REGB0;
6727 }
6728 if (UNTAG_Bool(REGB2)) {
6729 } else {
6730 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6731 }
6732 /* ./../lib/standard//collection//array.nit:281 */
6733 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6734 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6735 if (UNTAG_Bool(REGB2)) {
6736 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6737 }
6738 /* ./../lib/standard//collection//array.nit:718 */
6739 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6740 /* ./../lib/standard//collection//array.nit:281 */
6741 goto label69;
6742 label69: while(0);
6743 /* ./compiling//compiling_icode.nit:751 */
6744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6745 if (!once_value_70) {
6746 fra.me.REG[7] = BOX_NativeString("))");
6747 REGB1 = TAG_Int(2);
6748 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6749 once_value_70 = fra.me.REG[7];
6750 register_static_object(&once_value_70);
6751 } else fra.me.REG[7] = once_value_70;
6752 fra.me.REG[7] = fra.me.REG[7];
6753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6754 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6755 fra.me.REG[5] = fra.me.REG[6];
6756 } else {
6757 /* ./compiling//compiling_icode.nit:752 */
6758 if (!once_value_71) {
6759 if (!once_value_72) {
6760 fra.me.REG[6] = BOX_NativeString("<");
6761 REGB1 = TAG_Int(1);
6762 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6763 once_value_72 = fra.me.REG[6];
6764 register_static_object(&once_value_72);
6765 } else fra.me.REG[6] = once_value_72;
6766 fra.me.REG[6] = fra.me.REG[6];
6767 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6768 once_value_71 = fra.me.REG[6];
6769 register_static_object(&once_value_71);
6770 } else fra.me.REG[6] = once_value_71;
6771 fra.me.REG[6] = fra.me.REG[6];
6772 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6773 if (UNTAG_Bool(REGB1)) {
6774 } else {
6775 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6776 REGB1 = REGB2;
6777 }
6778 if (UNTAG_Bool(REGB1)) {
6779 /* ./compiling//compiling_icode.nit:753 */
6780 REGB1 = TAG_Int(5);
6781 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6782 if (!once_value_73) {
6783 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6784 REGB1 = TAG_Int(19);
6785 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6786 once_value_73 = fra.me.REG[7];
6787 register_static_object(&once_value_73);
6788 } else fra.me.REG[7] = once_value_73;
6789 fra.me.REG[7] = fra.me.REG[7];
6790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6791 REGB1 = TAG_Int(0);
6792 /* ./../lib/standard//collection//array.nit:278 */
6793 fra.me.REG[7] = fra.me.REG[4];
6794 /* ./../lib/standard//collection//array.nit:280 */
6795 REGB2 = TAG_Int(0);
6796 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6797 if (UNTAG_Bool(REGB0)) {
6798 } else {
6799 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6800 }
6801 /* ./../lib/standard//kernel.nit:233 */
6802 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6803 /* ./../lib/standard//collection//array.nit:280 */
6804 if (UNTAG_Bool(REGB2)) {
6805 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6806 if (UNTAG_Bool(REGB2)) {
6807 } else {
6808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6809 }
6810 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6811 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6812 if (UNTAG_Bool(REGB0)) {
6813 } else {
6814 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6815 }
6816 /* ./../lib/standard//kernel.nit:232 */
6817 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6818 } else {
6819 /* ./../lib/standard//collection//array.nit:280 */
6820 REGB0 = TAG_Bool(false);
6821 REGB2 = REGB0;
6822 }
6823 if (UNTAG_Bool(REGB2)) {
6824 } else {
6825 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6826 }
6827 /* ./../lib/standard//collection//array.nit:281 */
6828 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6829 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6830 if (UNTAG_Bool(REGB2)) {
6831 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6832 }
6833 /* ./../lib/standard//collection//array.nit:718 */
6834 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6835 /* ./../lib/standard//collection//array.nit:281 */
6836 goto label74;
6837 label74: while(0);
6838 /* ./compiling//compiling_icode.nit:753 */
6839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6840 if (!once_value_75) {
6841 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
6842 REGB1 = TAG_Int(12);
6843 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6844 once_value_75 = fra.me.REG[7];
6845 register_static_object(&once_value_75);
6846 } else fra.me.REG[7] = once_value_75;
6847 fra.me.REG[7] = fra.me.REG[7];
6848 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6849 REGB1 = TAG_Int(1);
6850 /* ./../lib/standard//collection//array.nit:278 */
6851 fra.me.REG[7] = fra.me.REG[4];
6852 /* ./../lib/standard//collection//array.nit:280 */
6853 REGB2 = TAG_Int(0);
6854 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6855 if (UNTAG_Bool(REGB0)) {
6856 } else {
6857 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6858 }
6859 /* ./../lib/standard//kernel.nit:233 */
6860 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6861 /* ./../lib/standard//collection//array.nit:280 */
6862 if (UNTAG_Bool(REGB2)) {
6863 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6864 if (UNTAG_Bool(REGB2)) {
6865 } else {
6866 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6867 }
6868 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6869 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6870 if (UNTAG_Bool(REGB0)) {
6871 } else {
6872 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6873 }
6874 /* ./../lib/standard//kernel.nit:232 */
6875 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6876 } else {
6877 /* ./../lib/standard//collection//array.nit:280 */
6878 REGB0 = TAG_Bool(false);
6879 REGB2 = REGB0;
6880 }
6881 if (UNTAG_Bool(REGB2)) {
6882 } else {
6883 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6884 }
6885 /* ./../lib/standard//collection//array.nit:281 */
6886 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6887 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6888 if (UNTAG_Bool(REGB2)) {
6889 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6890 }
6891 /* ./../lib/standard//collection//array.nit:718 */
6892 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6893 /* ./../lib/standard//collection//array.nit:281 */
6894 goto label76;
6895 label76: while(0);
6896 /* ./compiling//compiling_icode.nit:753 */
6897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6898 if (!once_value_77) {
6899 fra.me.REG[7] = BOX_NativeString("))");
6900 REGB1 = TAG_Int(2);
6901 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6902 once_value_77 = fra.me.REG[7];
6903 register_static_object(&once_value_77);
6904 } else fra.me.REG[7] = once_value_77;
6905 fra.me.REG[7] = fra.me.REG[7];
6906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6907 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6908 fra.me.REG[5] = fra.me.REG[6];
6909 } else {
6910 /* ./compiling//compiling_icode.nit:754 */
6911 if (!once_value_78) {
6912 if (!once_value_79) {
6913 fra.me.REG[6] = BOX_NativeString(">");
6914 REGB1 = TAG_Int(1);
6915 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
6916 once_value_79 = fra.me.REG[6];
6917 register_static_object(&once_value_79);
6918 } else fra.me.REG[6] = once_value_79;
6919 fra.me.REG[6] = fra.me.REG[6];
6920 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
6921 once_value_78 = fra.me.REG[6];
6922 register_static_object(&once_value_78);
6923 } else fra.me.REG[6] = once_value_78;
6924 fra.me.REG[6] = fra.me.REG[6];
6925 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
6926 if (UNTAG_Bool(REGB1)) {
6927 } else {
6928 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6929 REGB1 = REGB2;
6930 }
6931 if (UNTAG_Bool(REGB1)) {
6932 /* ./compiling//compiling_icode.nit:755 */
6933 REGB1 = TAG_Int(5);
6934 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
6935 if (!once_value_80) {
6936 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
6937 REGB1 = TAG_Int(19);
6938 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6939 once_value_80 = fra.me.REG[7];
6940 register_static_object(&once_value_80);
6941 } else fra.me.REG[7] = once_value_80;
6942 fra.me.REG[7] = fra.me.REG[7];
6943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6944 REGB1 = TAG_Int(0);
6945 /* ./../lib/standard//collection//array.nit:278 */
6946 fra.me.REG[7] = fra.me.REG[4];
6947 /* ./../lib/standard//collection//array.nit:280 */
6948 REGB2 = TAG_Int(0);
6949 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6950 if (UNTAG_Bool(REGB0)) {
6951 } else {
6952 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6953 }
6954 /* ./../lib/standard//kernel.nit:233 */
6955 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
6956 /* ./../lib/standard//collection//array.nit:280 */
6957 if (UNTAG_Bool(REGB2)) {
6958 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
6959 if (UNTAG_Bool(REGB2)) {
6960 } else {
6961 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6962 }
6963 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
6964 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
6965 if (UNTAG_Bool(REGB0)) {
6966 } else {
6967 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6968 }
6969 /* ./../lib/standard//kernel.nit:232 */
6970 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
6971 } else {
6972 /* ./../lib/standard//collection//array.nit:280 */
6973 REGB0 = TAG_Bool(false);
6974 REGB2 = REGB0;
6975 }
6976 if (UNTAG_Bool(REGB2)) {
6977 } else {
6978 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
6979 }
6980 /* ./../lib/standard//collection//array.nit:281 */
6981 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
6982 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6983 if (UNTAG_Bool(REGB2)) {
6984 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6985 }
6986 /* ./../lib/standard//collection//array.nit:718 */
6987 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
6988 /* ./../lib/standard//collection//array.nit:281 */
6989 goto label81;
6990 label81: while(0);
6991 /* ./compiling//compiling_icode.nit:755 */
6992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6993 if (!once_value_82) {
6994 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
6995 REGB1 = TAG_Int(12);
6996 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
6997 once_value_82 = fra.me.REG[7];
6998 register_static_object(&once_value_82);
6999 } else fra.me.REG[7] = once_value_82;
7000 fra.me.REG[7] = fra.me.REG[7];
7001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7002 REGB1 = TAG_Int(1);
7003 /* ./../lib/standard//collection//array.nit:278 */
7004 fra.me.REG[7] = fra.me.REG[4];
7005 /* ./../lib/standard//collection//array.nit:280 */
7006 REGB2 = TAG_Int(0);
7007 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7008 if (UNTAG_Bool(REGB0)) {
7009 } else {
7010 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7011 }
7012 /* ./../lib/standard//kernel.nit:233 */
7013 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7014 /* ./../lib/standard//collection//array.nit:280 */
7015 if (UNTAG_Bool(REGB2)) {
7016 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7017 if (UNTAG_Bool(REGB2)) {
7018 } else {
7019 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7020 }
7021 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7022 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7023 if (UNTAG_Bool(REGB0)) {
7024 } else {
7025 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7026 }
7027 /* ./../lib/standard//kernel.nit:232 */
7028 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7029 } else {
7030 /* ./../lib/standard//collection//array.nit:280 */
7031 REGB0 = TAG_Bool(false);
7032 REGB2 = REGB0;
7033 }
7034 if (UNTAG_Bool(REGB2)) {
7035 } else {
7036 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7037 }
7038 /* ./../lib/standard//collection//array.nit:281 */
7039 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7040 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7041 if (UNTAG_Bool(REGB2)) {
7042 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7043 }
7044 /* ./../lib/standard//collection//array.nit:718 */
7045 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7046 /* ./../lib/standard//collection//array.nit:281 */
7047 goto label83;
7048 label83: while(0);
7049 /* ./compiling//compiling_icode.nit:755 */
7050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7051 if (!once_value_84) {
7052 fra.me.REG[7] = BOX_NativeString("))");
7053 REGB1 = TAG_Int(2);
7054 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7055 once_value_84 = fra.me.REG[7];
7056 register_static_object(&once_value_84);
7057 } else fra.me.REG[7] = once_value_84;
7058 fra.me.REG[7] = fra.me.REG[7];
7059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7060 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7061 fra.me.REG[5] = fra.me.REG[6];
7062 } else {
7063 /* ./compiling//compiling_icode.nit:756 */
7064 if (!once_value_85) {
7065 if (!once_value_86) {
7066 fra.me.REG[6] = BOX_NativeString("<=");
7067 REGB1 = TAG_Int(2);
7068 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7069 once_value_86 = fra.me.REG[6];
7070 register_static_object(&once_value_86);
7071 } else fra.me.REG[6] = once_value_86;
7072 fra.me.REG[6] = fra.me.REG[6];
7073 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7074 once_value_85 = fra.me.REG[6];
7075 register_static_object(&once_value_85);
7076 } else fra.me.REG[6] = once_value_85;
7077 fra.me.REG[6] = fra.me.REG[6];
7078 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7079 if (UNTAG_Bool(REGB1)) {
7080 } else {
7081 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7082 REGB1 = REGB2;
7083 }
7084 if (UNTAG_Bool(REGB1)) {
7085 /* ./compiling//compiling_icode.nit:757 */
7086 REGB1 = TAG_Int(5);
7087 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7088 if (!once_value_87) {
7089 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7090 REGB1 = TAG_Int(19);
7091 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7092 once_value_87 = fra.me.REG[7];
7093 register_static_object(&once_value_87);
7094 } else fra.me.REG[7] = once_value_87;
7095 fra.me.REG[7] = fra.me.REG[7];
7096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7097 REGB1 = TAG_Int(0);
7098 /* ./../lib/standard//collection//array.nit:278 */
7099 fra.me.REG[7] = fra.me.REG[4];
7100 /* ./../lib/standard//collection//array.nit:280 */
7101 REGB2 = TAG_Int(0);
7102 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7103 if (UNTAG_Bool(REGB0)) {
7104 } else {
7105 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7106 }
7107 /* ./../lib/standard//kernel.nit:233 */
7108 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7109 /* ./../lib/standard//collection//array.nit:280 */
7110 if (UNTAG_Bool(REGB2)) {
7111 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7112 if (UNTAG_Bool(REGB2)) {
7113 } else {
7114 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7115 }
7116 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7117 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7118 if (UNTAG_Bool(REGB0)) {
7119 } else {
7120 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7121 }
7122 /* ./../lib/standard//kernel.nit:232 */
7123 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7124 } else {
7125 /* ./../lib/standard//collection//array.nit:280 */
7126 REGB0 = TAG_Bool(false);
7127 REGB2 = REGB0;
7128 }
7129 if (UNTAG_Bool(REGB2)) {
7130 } else {
7131 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7132 }
7133 /* ./../lib/standard//collection//array.nit:281 */
7134 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7135 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7136 if (UNTAG_Bool(REGB2)) {
7137 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7138 }
7139 /* ./../lib/standard//collection//array.nit:718 */
7140 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7141 /* ./../lib/standard//collection//array.nit:281 */
7142 goto label88;
7143 label88: while(0);
7144 /* ./compiling//compiling_icode.nit:757 */
7145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7146 if (!once_value_89) {
7147 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
7148 REGB1 = TAG_Int(13);
7149 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7150 once_value_89 = fra.me.REG[7];
7151 register_static_object(&once_value_89);
7152 } else fra.me.REG[7] = once_value_89;
7153 fra.me.REG[7] = fra.me.REG[7];
7154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7155 REGB1 = TAG_Int(1);
7156 /* ./../lib/standard//collection//array.nit:278 */
7157 fra.me.REG[7] = fra.me.REG[4];
7158 /* ./../lib/standard//collection//array.nit:280 */
7159 REGB2 = TAG_Int(0);
7160 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7161 if (UNTAG_Bool(REGB0)) {
7162 } else {
7163 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7164 }
7165 /* ./../lib/standard//kernel.nit:233 */
7166 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7167 /* ./../lib/standard//collection//array.nit:280 */
7168 if (UNTAG_Bool(REGB2)) {
7169 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7170 if (UNTAG_Bool(REGB2)) {
7171 } else {
7172 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7173 }
7174 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7175 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7176 if (UNTAG_Bool(REGB0)) {
7177 } else {
7178 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7179 }
7180 /* ./../lib/standard//kernel.nit:232 */
7181 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7182 } else {
7183 /* ./../lib/standard//collection//array.nit:280 */
7184 REGB0 = TAG_Bool(false);
7185 REGB2 = REGB0;
7186 }
7187 if (UNTAG_Bool(REGB2)) {
7188 } else {
7189 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7190 }
7191 /* ./../lib/standard//collection//array.nit:281 */
7192 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7193 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7194 if (UNTAG_Bool(REGB2)) {
7195 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7196 }
7197 /* ./../lib/standard//collection//array.nit:718 */
7198 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7199 /* ./../lib/standard//collection//array.nit:281 */
7200 goto label90;
7201 label90: while(0);
7202 /* ./compiling//compiling_icode.nit:757 */
7203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7204 if (!once_value_91) {
7205 fra.me.REG[7] = BOX_NativeString("))");
7206 REGB1 = TAG_Int(2);
7207 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7208 once_value_91 = fra.me.REG[7];
7209 register_static_object(&once_value_91);
7210 } else fra.me.REG[7] = once_value_91;
7211 fra.me.REG[7] = fra.me.REG[7];
7212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7213 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7214 fra.me.REG[5] = fra.me.REG[6];
7215 } else {
7216 /* ./compiling//compiling_icode.nit:758 */
7217 if (!once_value_92) {
7218 if (!once_value_93) {
7219 fra.me.REG[6] = BOX_NativeString(">=");
7220 REGB1 = TAG_Int(2);
7221 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7222 once_value_93 = fra.me.REG[6];
7223 register_static_object(&once_value_93);
7224 } else fra.me.REG[6] = once_value_93;
7225 fra.me.REG[6] = fra.me.REG[6];
7226 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7227 once_value_92 = fra.me.REG[6];
7228 register_static_object(&once_value_92);
7229 } else fra.me.REG[6] = once_value_92;
7230 fra.me.REG[6] = fra.me.REG[6];
7231 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7232 if (UNTAG_Bool(REGB1)) {
7233 } else {
7234 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7235 REGB1 = REGB2;
7236 }
7237 if (UNTAG_Bool(REGB1)) {
7238 /* ./compiling//compiling_icode.nit:759 */
7239 REGB1 = TAG_Int(5);
7240 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7241 if (!once_value_94) {
7242 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(");
7243 REGB1 = TAG_Int(19);
7244 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7245 once_value_94 = fra.me.REG[7];
7246 register_static_object(&once_value_94);
7247 } else fra.me.REG[7] = once_value_94;
7248 fra.me.REG[7] = fra.me.REG[7];
7249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7250 REGB1 = TAG_Int(0);
7251 /* ./../lib/standard//collection//array.nit:278 */
7252 fra.me.REG[7] = fra.me.REG[4];
7253 /* ./../lib/standard//collection//array.nit:280 */
7254 REGB2 = TAG_Int(0);
7255 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7256 if (UNTAG_Bool(REGB0)) {
7257 } else {
7258 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7259 }
7260 /* ./../lib/standard//kernel.nit:233 */
7261 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7262 /* ./../lib/standard//collection//array.nit:280 */
7263 if (UNTAG_Bool(REGB2)) {
7264 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7265 if (UNTAG_Bool(REGB2)) {
7266 } else {
7267 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7268 }
7269 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7270 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7271 if (UNTAG_Bool(REGB0)) {
7272 } else {
7273 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7274 }
7275 /* ./../lib/standard//kernel.nit:232 */
7276 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7277 } else {
7278 /* ./../lib/standard//collection//array.nit:280 */
7279 REGB0 = TAG_Bool(false);
7280 REGB2 = REGB0;
7281 }
7282 if (UNTAG_Bool(REGB2)) {
7283 } else {
7284 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7285 }
7286 /* ./../lib/standard//collection//array.nit:281 */
7287 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7288 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7289 if (UNTAG_Bool(REGB2)) {
7290 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7291 }
7292 /* ./../lib/standard//collection//array.nit:718 */
7293 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7294 /* ./../lib/standard//collection//array.nit:281 */
7295 goto label95;
7296 label95: while(0);
7297 /* ./compiling//compiling_icode.nit:759 */
7298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7299 if (!once_value_96) {
7300 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
7301 REGB1 = TAG_Int(13);
7302 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7303 once_value_96 = fra.me.REG[7];
7304 register_static_object(&once_value_96);
7305 } else fra.me.REG[7] = once_value_96;
7306 fra.me.REG[7] = fra.me.REG[7];
7307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7308 REGB1 = TAG_Int(1);
7309 /* ./../lib/standard//collection//array.nit:278 */
7310 fra.me.REG[7] = fra.me.REG[4];
7311 /* ./../lib/standard//collection//array.nit:280 */
7312 REGB2 = TAG_Int(0);
7313 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7314 if (UNTAG_Bool(REGB0)) {
7315 } else {
7316 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7317 }
7318 /* ./../lib/standard//kernel.nit:233 */
7319 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7320 /* ./../lib/standard//collection//array.nit:280 */
7321 if (UNTAG_Bool(REGB2)) {
7322 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7323 if (UNTAG_Bool(REGB2)) {
7324 } else {
7325 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7326 }
7327 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7328 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7329 if (UNTAG_Bool(REGB0)) {
7330 } else {
7331 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7332 }
7333 /* ./../lib/standard//kernel.nit:232 */
7334 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7335 } else {
7336 /* ./../lib/standard//collection//array.nit:280 */
7337 REGB0 = TAG_Bool(false);
7338 REGB2 = REGB0;
7339 }
7340 if (UNTAG_Bool(REGB2)) {
7341 } else {
7342 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7343 }
7344 /* ./../lib/standard//collection//array.nit:281 */
7345 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7346 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7347 if (UNTAG_Bool(REGB2)) {
7348 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7349 }
7350 /* ./../lib/standard//collection//array.nit:718 */
7351 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7352 /* ./../lib/standard//collection//array.nit:281 */
7353 goto label97;
7354 label97: while(0);
7355 /* ./compiling//compiling_icode.nit:759 */
7356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7357 if (!once_value_98) {
7358 fra.me.REG[7] = BOX_NativeString("))");
7359 REGB1 = TAG_Int(2);
7360 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7361 once_value_98 = fra.me.REG[7];
7362 register_static_object(&once_value_98);
7363 } else fra.me.REG[7] = once_value_98;
7364 fra.me.REG[7] = fra.me.REG[7];
7365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7366 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7367 fra.me.REG[5] = fra.me.REG[6];
7368 } else {
7369 /* ./compiling//compiling_icode.nit:760 */
7370 if (!once_value_99) {
7371 if (!once_value_100) {
7372 fra.me.REG[6] = BOX_NativeString("lshift");
7373 REGB1 = TAG_Int(6);
7374 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7375 once_value_100 = fra.me.REG[6];
7376 register_static_object(&once_value_100);
7377 } else fra.me.REG[6] = once_value_100;
7378 fra.me.REG[6] = fra.me.REG[6];
7379 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7380 once_value_99 = fra.me.REG[6];
7381 register_static_object(&once_value_99);
7382 } else fra.me.REG[6] = once_value_99;
7383 fra.me.REG[6] = fra.me.REG[6];
7384 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7385 if (UNTAG_Bool(REGB1)) {
7386 } else {
7387 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7388 REGB1 = REGB2;
7389 }
7390 if (UNTAG_Bool(REGB1)) {
7391 /* ./compiling//compiling_icode.nit:761 */
7392 REGB1 = TAG_Int(5);
7393 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7394 if (!once_value_101) {
7395 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7396 REGB1 = TAG_Int(18);
7397 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7398 once_value_101 = fra.me.REG[7];
7399 register_static_object(&once_value_101);
7400 } else fra.me.REG[7] = once_value_101;
7401 fra.me.REG[7] = fra.me.REG[7];
7402 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7403 REGB1 = TAG_Int(0);
7404 /* ./../lib/standard//collection//array.nit:278 */
7405 fra.me.REG[7] = fra.me.REG[4];
7406 /* ./../lib/standard//collection//array.nit:280 */
7407 REGB2 = TAG_Int(0);
7408 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7409 if (UNTAG_Bool(REGB0)) {
7410 } else {
7411 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7412 }
7413 /* ./../lib/standard//kernel.nit:233 */
7414 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7415 /* ./../lib/standard//collection//array.nit:280 */
7416 if (UNTAG_Bool(REGB2)) {
7417 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7418 if (UNTAG_Bool(REGB2)) {
7419 } else {
7420 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7421 }
7422 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7423 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7424 if (UNTAG_Bool(REGB0)) {
7425 } else {
7426 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7427 }
7428 /* ./../lib/standard//kernel.nit:232 */
7429 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7430 } else {
7431 /* ./../lib/standard//collection//array.nit:280 */
7432 REGB0 = TAG_Bool(false);
7433 REGB2 = REGB0;
7434 }
7435 if (UNTAG_Bool(REGB2)) {
7436 } else {
7437 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7438 }
7439 /* ./../lib/standard//collection//array.nit:281 */
7440 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7441 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7442 if (UNTAG_Bool(REGB2)) {
7443 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7444 }
7445 /* ./../lib/standard//collection//array.nit:718 */
7446 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7447 /* ./../lib/standard//collection//array.nit:281 */
7448 goto label102;
7449 label102: while(0);
7450 /* ./compiling//compiling_icode.nit:761 */
7451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7452 if (!once_value_103) {
7453 fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
7454 REGB1 = TAG_Int(13);
7455 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7456 once_value_103 = fra.me.REG[7];
7457 register_static_object(&once_value_103);
7458 } else fra.me.REG[7] = once_value_103;
7459 fra.me.REG[7] = fra.me.REG[7];
7460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7461 REGB1 = TAG_Int(1);
7462 /* ./../lib/standard//collection//array.nit:278 */
7463 fra.me.REG[7] = fra.me.REG[4];
7464 /* ./../lib/standard//collection//array.nit:280 */
7465 REGB2 = TAG_Int(0);
7466 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7467 if (UNTAG_Bool(REGB0)) {
7468 } else {
7469 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7470 }
7471 /* ./../lib/standard//kernel.nit:233 */
7472 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7473 /* ./../lib/standard//collection//array.nit:280 */
7474 if (UNTAG_Bool(REGB2)) {
7475 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7476 if (UNTAG_Bool(REGB2)) {
7477 } else {
7478 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7479 }
7480 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7481 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7482 if (UNTAG_Bool(REGB0)) {
7483 } else {
7484 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7485 }
7486 /* ./../lib/standard//kernel.nit:232 */
7487 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7488 } else {
7489 /* ./../lib/standard//collection//array.nit:280 */
7490 REGB0 = TAG_Bool(false);
7491 REGB2 = REGB0;
7492 }
7493 if (UNTAG_Bool(REGB2)) {
7494 } else {
7495 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7496 }
7497 /* ./../lib/standard//collection//array.nit:281 */
7498 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7499 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7500 if (UNTAG_Bool(REGB2)) {
7501 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7502 }
7503 /* ./../lib/standard//collection//array.nit:718 */
7504 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7505 /* ./../lib/standard//collection//array.nit:281 */
7506 goto label104;
7507 label104: while(0);
7508 /* ./compiling//compiling_icode.nit:761 */
7509 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7510 if (!once_value_105) {
7511 fra.me.REG[7] = BOX_NativeString("))");
7512 REGB1 = TAG_Int(2);
7513 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7514 once_value_105 = fra.me.REG[7];
7515 register_static_object(&once_value_105);
7516 } else fra.me.REG[7] = once_value_105;
7517 fra.me.REG[7] = fra.me.REG[7];
7518 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7519 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7520 fra.me.REG[5] = fra.me.REG[6];
7521 } else {
7522 /* ./compiling//compiling_icode.nit:762 */
7523 if (!once_value_106) {
7524 if (!once_value_107) {
7525 fra.me.REG[6] = BOX_NativeString("rshift");
7526 REGB1 = TAG_Int(6);
7527 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7528 once_value_107 = fra.me.REG[6];
7529 register_static_object(&once_value_107);
7530 } else fra.me.REG[6] = once_value_107;
7531 fra.me.REG[6] = fra.me.REG[6];
7532 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7533 once_value_106 = fra.me.REG[6];
7534 register_static_object(&once_value_106);
7535 } else fra.me.REG[6] = once_value_106;
7536 fra.me.REG[6] = fra.me.REG[6];
7537 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7538 if (UNTAG_Bool(REGB1)) {
7539 } else {
7540 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7541 REGB1 = REGB2;
7542 }
7543 if (UNTAG_Bool(REGB1)) {
7544 /* ./compiling//compiling_icode.nit:763 */
7545 REGB1 = TAG_Int(5);
7546 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7547 if (!once_value_108) {
7548 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int(");
7549 REGB1 = TAG_Int(18);
7550 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7551 once_value_108 = fra.me.REG[7];
7552 register_static_object(&once_value_108);
7553 } else fra.me.REG[7] = once_value_108;
7554 fra.me.REG[7] = fra.me.REG[7];
7555 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7556 REGB1 = TAG_Int(0);
7557 /* ./../lib/standard//collection//array.nit:278 */
7558 fra.me.REG[7] = fra.me.REG[4];
7559 /* ./../lib/standard//collection//array.nit:280 */
7560 REGB2 = TAG_Int(0);
7561 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7562 if (UNTAG_Bool(REGB0)) {
7563 } else {
7564 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7565 }
7566 /* ./../lib/standard//kernel.nit:233 */
7567 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7568 /* ./../lib/standard//collection//array.nit:280 */
7569 if (UNTAG_Bool(REGB2)) {
7570 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7571 if (UNTAG_Bool(REGB2)) {
7572 } else {
7573 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7574 }
7575 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7576 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7577 if (UNTAG_Bool(REGB0)) {
7578 } else {
7579 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7580 }
7581 /* ./../lib/standard//kernel.nit:232 */
7582 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7583 } else {
7584 /* ./../lib/standard//collection//array.nit:280 */
7585 REGB0 = TAG_Bool(false);
7586 REGB2 = REGB0;
7587 }
7588 if (UNTAG_Bool(REGB2)) {
7589 } else {
7590 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7591 }
7592 /* ./../lib/standard//collection//array.nit:281 */
7593 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7594 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7595 if (UNTAG_Bool(REGB2)) {
7596 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7597 }
7598 /* ./../lib/standard//collection//array.nit:718 */
7599 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7600 /* ./../lib/standard//collection//array.nit:281 */
7601 goto label109;
7602 label109: while(0);
7603 /* ./compiling//compiling_icode.nit:763 */
7604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7605 if (!once_value_110) {
7606 fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
7607 REGB1 = TAG_Int(13);
7608 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7609 once_value_110 = fra.me.REG[7];
7610 register_static_object(&once_value_110);
7611 } else fra.me.REG[7] = once_value_110;
7612 fra.me.REG[7] = fra.me.REG[7];
7613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7614 REGB1 = TAG_Int(1);
7615 /* ./../lib/standard//collection//array.nit:278 */
7616 fra.me.REG[7] = fra.me.REG[4];
7617 /* ./../lib/standard//collection//array.nit:280 */
7618 REGB2 = TAG_Int(0);
7619 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7620 if (UNTAG_Bool(REGB0)) {
7621 } else {
7622 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7623 }
7624 /* ./../lib/standard//kernel.nit:233 */
7625 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7626 /* ./../lib/standard//collection//array.nit:280 */
7627 if (UNTAG_Bool(REGB2)) {
7628 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7629 if (UNTAG_Bool(REGB2)) {
7630 } else {
7631 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7632 }
7633 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7634 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7635 if (UNTAG_Bool(REGB0)) {
7636 } else {
7637 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7638 }
7639 /* ./../lib/standard//kernel.nit:232 */
7640 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7641 } else {
7642 /* ./../lib/standard//collection//array.nit:280 */
7643 REGB0 = TAG_Bool(false);
7644 REGB2 = REGB0;
7645 }
7646 if (UNTAG_Bool(REGB2)) {
7647 } else {
7648 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7649 }
7650 /* ./../lib/standard//collection//array.nit:281 */
7651 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7652 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7653 if (UNTAG_Bool(REGB2)) {
7654 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7655 }
7656 /* ./../lib/standard//collection//array.nit:718 */
7657 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7658 /* ./../lib/standard//collection//array.nit:281 */
7659 goto label111;
7660 label111: while(0);
7661 /* ./compiling//compiling_icode.nit:763 */
7662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7663 if (!once_value_112) {
7664 fra.me.REG[7] = BOX_NativeString("))");
7665 REGB1 = TAG_Int(2);
7666 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7667 once_value_112 = fra.me.REG[7];
7668 register_static_object(&once_value_112);
7669 } else fra.me.REG[7] = once_value_112;
7670 fra.me.REG[7] = fra.me.REG[7];
7671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7672 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7673 fra.me.REG[5] = fra.me.REG[6];
7674 } else {
7675 /* ./compiling//compiling_icode.nit:764 */
7676 if (!once_value_113) {
7677 if (!once_value_114) {
7678 fra.me.REG[6] = BOX_NativeString("==");
7679 REGB1 = TAG_Int(2);
7680 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7681 once_value_114 = fra.me.REG[6];
7682 register_static_object(&once_value_114);
7683 } else fra.me.REG[6] = once_value_114;
7684 fra.me.REG[6] = fra.me.REG[6];
7685 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7686 once_value_113 = fra.me.REG[6];
7687 register_static_object(&once_value_113);
7688 } else fra.me.REG[6] = once_value_113;
7689 fra.me.REG[6] = fra.me.REG[6];
7690 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7691 if (UNTAG_Bool(REGB1)) {
7692 } else {
7693 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7694 REGB1 = REGB2;
7695 }
7696 if (UNTAG_Bool(REGB1)) {
7697 /* ./compiling//compiling_icode.nit:765 */
7698 REGB1 = TAG_Int(5);
7699 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7700 if (!once_value_115) {
7701 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7702 REGB1 = TAG_Int(10);
7703 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7704 once_value_115 = fra.me.REG[7];
7705 register_static_object(&once_value_115);
7706 } else fra.me.REG[7] = once_value_115;
7707 fra.me.REG[7] = fra.me.REG[7];
7708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7709 REGB1 = TAG_Int(0);
7710 /* ./../lib/standard//collection//array.nit:278 */
7711 fra.me.REG[7] = fra.me.REG[4];
7712 /* ./../lib/standard//collection//array.nit:280 */
7713 REGB2 = TAG_Int(0);
7714 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7715 if (UNTAG_Bool(REGB0)) {
7716 } else {
7717 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7718 }
7719 /* ./../lib/standard//kernel.nit:233 */
7720 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7721 /* ./../lib/standard//collection//array.nit:280 */
7722 if (UNTAG_Bool(REGB2)) {
7723 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7724 if (UNTAG_Bool(REGB2)) {
7725 } else {
7726 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7727 }
7728 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7729 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7730 if (UNTAG_Bool(REGB0)) {
7731 } else {
7732 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7733 }
7734 /* ./../lib/standard//kernel.nit:232 */
7735 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7736 } else {
7737 /* ./../lib/standard//collection//array.nit:280 */
7738 REGB0 = TAG_Bool(false);
7739 REGB2 = REGB0;
7740 }
7741 if (UNTAG_Bool(REGB2)) {
7742 } else {
7743 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7744 }
7745 /* ./../lib/standard//collection//array.nit:281 */
7746 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7747 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7748 if (UNTAG_Bool(REGB2)) {
7749 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7750 }
7751 /* ./../lib/standard//collection//array.nit:718 */
7752 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7753 /* ./../lib/standard//collection//array.nit:281 */
7754 goto label116;
7755 label116: while(0);
7756 /* ./compiling//compiling_icode.nit:765 */
7757 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7758 if (!once_value_117) {
7759 fra.me.REG[7] = BOX_NativeString(")==(");
7760 REGB1 = TAG_Int(4);
7761 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7762 once_value_117 = fra.me.REG[7];
7763 register_static_object(&once_value_117);
7764 } else fra.me.REG[7] = once_value_117;
7765 fra.me.REG[7] = fra.me.REG[7];
7766 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7767 REGB1 = TAG_Int(1);
7768 /* ./../lib/standard//collection//array.nit:278 */
7769 fra.me.REG[7] = fra.me.REG[4];
7770 /* ./../lib/standard//collection//array.nit:280 */
7771 REGB2 = TAG_Int(0);
7772 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7773 if (UNTAG_Bool(REGB0)) {
7774 } else {
7775 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7776 }
7777 /* ./../lib/standard//kernel.nit:233 */
7778 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7779 /* ./../lib/standard//collection//array.nit:280 */
7780 if (UNTAG_Bool(REGB2)) {
7781 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7782 if (UNTAG_Bool(REGB2)) {
7783 } else {
7784 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7785 }
7786 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7787 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7788 if (UNTAG_Bool(REGB0)) {
7789 } else {
7790 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7791 }
7792 /* ./../lib/standard//kernel.nit:232 */
7793 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7794 } else {
7795 /* ./../lib/standard//collection//array.nit:280 */
7796 REGB0 = TAG_Bool(false);
7797 REGB2 = REGB0;
7798 }
7799 if (UNTAG_Bool(REGB2)) {
7800 } else {
7801 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7802 }
7803 /* ./../lib/standard//collection//array.nit:281 */
7804 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7805 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7806 if (UNTAG_Bool(REGB2)) {
7807 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7808 }
7809 /* ./../lib/standard//collection//array.nit:718 */
7810 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7811 /* ./../lib/standard//collection//array.nit:281 */
7812 goto label118;
7813 label118: while(0);
7814 /* ./compiling//compiling_icode.nit:765 */
7815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7816 if (!once_value_119) {
7817 fra.me.REG[7] = BOX_NativeString("))");
7818 REGB1 = TAG_Int(2);
7819 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7820 once_value_119 = fra.me.REG[7];
7821 register_static_object(&once_value_119);
7822 } else fra.me.REG[7] = once_value_119;
7823 fra.me.REG[7] = fra.me.REG[7];
7824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7825 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7826 fra.me.REG[5] = fra.me.REG[6];
7827 } else {
7828 /* ./compiling//compiling_icode.nit:766 */
7829 if (!once_value_120) {
7830 if (!once_value_121) {
7831 fra.me.REG[6] = BOX_NativeString("!=");
7832 REGB1 = TAG_Int(2);
7833 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
7834 once_value_121 = fra.me.REG[6];
7835 register_static_object(&once_value_121);
7836 } else fra.me.REG[6] = once_value_121;
7837 fra.me.REG[6] = fra.me.REG[6];
7838 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
7839 once_value_120 = fra.me.REG[6];
7840 register_static_object(&once_value_120);
7841 } else fra.me.REG[6] = once_value_120;
7842 fra.me.REG[6] = fra.me.REG[6];
7843 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
7844 if (UNTAG_Bool(REGB1)) {
7845 } else {
7846 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7847 REGB1 = REGB2;
7848 }
7849 if (UNTAG_Bool(REGB1)) {
7850 /* ./compiling//compiling_icode.nit:767 */
7851 REGB1 = TAG_Int(5);
7852 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
7853 if (!once_value_122) {
7854 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
7855 REGB1 = TAG_Int(10);
7856 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7857 once_value_122 = fra.me.REG[7];
7858 register_static_object(&once_value_122);
7859 } else fra.me.REG[7] = once_value_122;
7860 fra.me.REG[7] = fra.me.REG[7];
7861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7862 REGB1 = TAG_Int(0);
7863 /* ./../lib/standard//collection//array.nit:278 */
7864 fra.me.REG[7] = fra.me.REG[4];
7865 /* ./../lib/standard//collection//array.nit:280 */
7866 REGB2 = TAG_Int(0);
7867 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7868 if (UNTAG_Bool(REGB0)) {
7869 } else {
7870 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7871 }
7872 /* ./../lib/standard//kernel.nit:233 */
7873 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7874 /* ./../lib/standard//collection//array.nit:280 */
7875 if (UNTAG_Bool(REGB2)) {
7876 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7877 if (UNTAG_Bool(REGB2)) {
7878 } else {
7879 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7880 }
7881 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7882 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7883 if (UNTAG_Bool(REGB0)) {
7884 } else {
7885 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7886 }
7887 /* ./../lib/standard//kernel.nit:232 */
7888 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7889 } else {
7890 /* ./../lib/standard//collection//array.nit:280 */
7891 REGB0 = TAG_Bool(false);
7892 REGB2 = REGB0;
7893 }
7894 if (UNTAG_Bool(REGB2)) {
7895 } else {
7896 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7897 }
7898 /* ./../lib/standard//collection//array.nit:281 */
7899 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7900 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7901 if (UNTAG_Bool(REGB2)) {
7902 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7903 }
7904 /* ./../lib/standard//collection//array.nit:718 */
7905 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7906 /* ./../lib/standard//collection//array.nit:281 */
7907 goto label123;
7908 label123: while(0);
7909 /* ./compiling//compiling_icode.nit:767 */
7910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7911 if (!once_value_124) {
7912 fra.me.REG[7] = BOX_NativeString(")!=(");
7913 REGB1 = TAG_Int(4);
7914 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7915 once_value_124 = fra.me.REG[7];
7916 register_static_object(&once_value_124);
7917 } else fra.me.REG[7] = once_value_124;
7918 fra.me.REG[7] = fra.me.REG[7];
7919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7920 REGB1 = TAG_Int(1);
7921 /* ./../lib/standard//collection//array.nit:278 */
7922 fra.me.REG[7] = fra.me.REG[4];
7923 /* ./../lib/standard//collection//array.nit:280 */
7924 REGB2 = TAG_Int(0);
7925 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7926 if (UNTAG_Bool(REGB0)) {
7927 } else {
7928 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7929 }
7930 /* ./../lib/standard//kernel.nit:233 */
7931 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
7932 /* ./../lib/standard//collection//array.nit:280 */
7933 if (UNTAG_Bool(REGB2)) {
7934 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
7935 if (UNTAG_Bool(REGB2)) {
7936 } else {
7937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7938 }
7939 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
7940 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
7941 if (UNTAG_Bool(REGB0)) {
7942 } else {
7943 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7944 }
7945 /* ./../lib/standard//kernel.nit:232 */
7946 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
7947 } else {
7948 /* ./../lib/standard//collection//array.nit:280 */
7949 REGB0 = TAG_Bool(false);
7950 REGB2 = REGB0;
7951 }
7952 if (UNTAG_Bool(REGB2)) {
7953 } else {
7954 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
7955 }
7956 /* ./../lib/standard//collection//array.nit:281 */
7957 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
7958 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7959 if (UNTAG_Bool(REGB2)) {
7960 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7961 }
7962 /* ./../lib/standard//collection//array.nit:718 */
7963 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
7964 /* ./../lib/standard//collection//array.nit:281 */
7965 goto label125;
7966 label125: while(0);
7967 /* ./compiling//compiling_icode.nit:767 */
7968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7969 if (!once_value_126) {
7970 fra.me.REG[7] = BOX_NativeString("))");
7971 REGB1 = TAG_Int(2);
7972 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
7973 once_value_126 = fra.me.REG[7];
7974 register_static_object(&once_value_126);
7975 } else fra.me.REG[7] = once_value_126;
7976 fra.me.REG[7] = fra.me.REG[7];
7977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7978 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7979 fra.me.REG[5] = fra.me.REG[6];
7980 }
7981 }
7982 }
7983 }
7984 }
7985 }
7986 }
7987 }
7988 }
7989 }
7990 }
7991 }
7992 }
7993 }
7994 }
7995 }
7996 }
7997 }
7998 }
7999 }
8000 } else {
8001 /* ./compiling//compiling_icode.nit:769 */
8002 if (!once_value_127) {
8003 if (!once_value_128) {
8004 fra.me.REG[6] = BOX_NativeString("Float");
8005 REGB1 = TAG_Int(5);
8006 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8007 once_value_128 = fra.me.REG[6];
8008 register_static_object(&once_value_128);
8009 } else fra.me.REG[6] = once_value_128;
8010 fra.me.REG[6] = fra.me.REG[6];
8011 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8012 once_value_127 = fra.me.REG[6];
8013 register_static_object(&once_value_127);
8014 } else fra.me.REG[6] = once_value_127;
8015 fra.me.REG[6] = fra.me.REG[6];
8016 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
8017 if (UNTAG_Bool(REGB1)) {
8018 } else {
8019 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
8020 REGB1 = REGB2;
8021 }
8022 if (UNTAG_Bool(REGB1)) {
8023 /* ./compiling//compiling_icode.nit:770 */
8024 if (!once_value_129) {
8025 if (!once_value_130) {
8026 fra.me.REG[6] = BOX_NativeString("object_id");
8027 REGB1 = TAG_Int(9);
8028 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8029 once_value_130 = fra.me.REG[6];
8030 register_static_object(&once_value_130);
8031 } else fra.me.REG[6] = once_value_130;
8032 fra.me.REG[6] = fra.me.REG[6];
8033 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8034 once_value_129 = fra.me.REG[6];
8035 register_static_object(&once_value_129);
8036 } else fra.me.REG[6] = once_value_129;
8037 fra.me.REG[6] = fra.me.REG[6];
8038 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8039 if (UNTAG_Bool(REGB1)) {
8040 } else {
8041 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8042 REGB1 = REGB2;
8043 }
8044 if (UNTAG_Bool(REGB1)) {
8045 /* ./compiling//compiling_icode.nit:771 */
8046 REGB1 = TAG_Int(3);
8047 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8048 if (!once_value_131) {
8049 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8050 REGB1 = TAG_Int(28);
8051 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8052 once_value_131 = fra.me.REG[7];
8053 register_static_object(&once_value_131);
8054 } else fra.me.REG[7] = once_value_131;
8055 fra.me.REG[7] = fra.me.REG[7];
8056 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8057 REGB1 = TAG_Int(0);
8058 /* ./../lib/standard//collection//array.nit:278 */
8059 fra.me.REG[7] = fra.me.REG[4];
8060 /* ./../lib/standard//collection//array.nit:280 */
8061 REGB2 = TAG_Int(0);
8062 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8063 if (UNTAG_Bool(REGB0)) {
8064 } else {
8065 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8066 }
8067 /* ./../lib/standard//kernel.nit:233 */
8068 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8069 /* ./../lib/standard//collection//array.nit:280 */
8070 if (UNTAG_Bool(REGB2)) {
8071 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8072 if (UNTAG_Bool(REGB2)) {
8073 } else {
8074 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8075 }
8076 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8077 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8078 if (UNTAG_Bool(REGB0)) {
8079 } else {
8080 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8081 }
8082 /* ./../lib/standard//kernel.nit:232 */
8083 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8084 } else {
8085 /* ./../lib/standard//collection//array.nit:280 */
8086 REGB0 = TAG_Bool(false);
8087 REGB2 = REGB0;
8088 }
8089 if (UNTAG_Bool(REGB2)) {
8090 } else {
8091 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8092 }
8093 /* ./../lib/standard//collection//array.nit:281 */
8094 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8095 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8096 if (UNTAG_Bool(REGB2)) {
8097 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8098 }
8099 /* ./../lib/standard//collection//array.nit:718 */
8100 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8101 /* ./../lib/standard//collection//array.nit:281 */
8102 goto label132;
8103 label132: while(0);
8104 /* ./compiling//compiling_icode.nit:771 */
8105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8106 if (!once_value_133) {
8107 fra.me.REG[7] = BOX_NativeString("))");
8108 REGB1 = TAG_Int(2);
8109 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8110 once_value_133 = fra.me.REG[7];
8111 register_static_object(&once_value_133);
8112 } else fra.me.REG[7] = once_value_133;
8113 fra.me.REG[7] = fra.me.REG[7];
8114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8115 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8116 fra.me.REG[5] = fra.me.REG[6];
8117 } else {
8118 /* ./compiling//compiling_icode.nit:772 */
8119 if (!once_value_134) {
8120 if (!once_value_135) {
8121 fra.me.REG[6] = BOX_NativeString("unary -");
8122 REGB1 = TAG_Int(7);
8123 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8124 once_value_135 = fra.me.REG[6];
8125 register_static_object(&once_value_135);
8126 } else fra.me.REG[6] = once_value_135;
8127 fra.me.REG[6] = fra.me.REG[6];
8128 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8129 once_value_134 = fra.me.REG[6];
8130 register_static_object(&once_value_134);
8131 } else fra.me.REG[6] = once_value_134;
8132 fra.me.REG[6] = fra.me.REG[6];
8133 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8134 if (UNTAG_Bool(REGB1)) {
8135 } else {
8136 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8137 REGB1 = REGB2;
8138 }
8139 if (UNTAG_Bool(REGB1)) {
8140 /* ./compiling//compiling_icode.nit:773 */
8141 REGB1 = TAG_Int(3);
8142 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8143 if (!once_value_136) {
8144 fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(");
8145 REGB1 = TAG_Int(23);
8146 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8147 once_value_136 = fra.me.REG[7];
8148 register_static_object(&once_value_136);
8149 } else fra.me.REG[7] = once_value_136;
8150 fra.me.REG[7] = fra.me.REG[7];
8151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8152 REGB1 = TAG_Int(0);
8153 /* ./../lib/standard//collection//array.nit:278 */
8154 fra.me.REG[7] = fra.me.REG[4];
8155 /* ./../lib/standard//collection//array.nit:280 */
8156 REGB2 = TAG_Int(0);
8157 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8158 if (UNTAG_Bool(REGB0)) {
8159 } else {
8160 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8161 }
8162 /* ./../lib/standard//kernel.nit:233 */
8163 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8164 /* ./../lib/standard//collection//array.nit:280 */
8165 if (UNTAG_Bool(REGB2)) {
8166 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8167 if (UNTAG_Bool(REGB2)) {
8168 } else {
8169 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8170 }
8171 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8172 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8173 if (UNTAG_Bool(REGB0)) {
8174 } else {
8175 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8176 }
8177 /* ./../lib/standard//kernel.nit:232 */
8178 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8179 } else {
8180 /* ./../lib/standard//collection//array.nit:280 */
8181 REGB0 = TAG_Bool(false);
8182 REGB2 = REGB0;
8183 }
8184 if (UNTAG_Bool(REGB2)) {
8185 } else {
8186 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8187 }
8188 /* ./../lib/standard//collection//array.nit:281 */
8189 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8190 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8191 if (UNTAG_Bool(REGB2)) {
8192 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8193 }
8194 /* ./../lib/standard//collection//array.nit:718 */
8195 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8196 /* ./../lib/standard//collection//array.nit:281 */
8197 goto label137;
8198 label137: while(0);
8199 /* ./compiling//compiling_icode.nit:773 */
8200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8201 if (!once_value_138) {
8202 fra.me.REG[7] = BOX_NativeString("))");
8203 REGB1 = TAG_Int(2);
8204 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8205 once_value_138 = fra.me.REG[7];
8206 register_static_object(&once_value_138);
8207 } else fra.me.REG[7] = once_value_138;
8208 fra.me.REG[7] = fra.me.REG[7];
8209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8210 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8211 fra.me.REG[5] = fra.me.REG[6];
8212 } else {
8213 /* ./compiling//compiling_icode.nit:774 */
8214 if (!once_value_139) {
8215 if (!once_value_140) {
8216 fra.me.REG[6] = BOX_NativeString("output");
8217 REGB1 = TAG_Int(6);
8218 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8219 once_value_140 = fra.me.REG[6];
8220 register_static_object(&once_value_140);
8221 } else fra.me.REG[6] = once_value_140;
8222 fra.me.REG[6] = fra.me.REG[6];
8223 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8224 once_value_139 = fra.me.REG[6];
8225 register_static_object(&once_value_139);
8226 } else fra.me.REG[6] = once_value_139;
8227 fra.me.REG[6] = fra.me.REG[6];
8228 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8229 if (UNTAG_Bool(REGB1)) {
8230 } else {
8231 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8232 REGB1 = REGB2;
8233 }
8234 if (UNTAG_Bool(REGB1)) {
8235 /* ./compiling//compiling_icode.nit:775 */
8236 REGB1 = TAG_Int(3);
8237 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8238 if (!once_value_141) {
8239 fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(");
8240 REGB1 = TAG_Int(27);
8241 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8242 once_value_141 = fra.me.REG[7];
8243 register_static_object(&once_value_141);
8244 } else fra.me.REG[7] = once_value_141;
8245 fra.me.REG[7] = fra.me.REG[7];
8246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8247 REGB1 = TAG_Int(0);
8248 /* ./../lib/standard//collection//array.nit:278 */
8249 fra.me.REG[7] = fra.me.REG[4];
8250 /* ./../lib/standard//collection//array.nit:280 */
8251 REGB2 = TAG_Int(0);
8252 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8253 if (UNTAG_Bool(REGB0)) {
8254 } else {
8255 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8256 }
8257 /* ./../lib/standard//kernel.nit:233 */
8258 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8259 /* ./../lib/standard//collection//array.nit:280 */
8260 if (UNTAG_Bool(REGB2)) {
8261 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8262 if (UNTAG_Bool(REGB2)) {
8263 } else {
8264 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8265 }
8266 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8267 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8268 if (UNTAG_Bool(REGB0)) {
8269 } else {
8270 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8271 }
8272 /* ./../lib/standard//kernel.nit:232 */
8273 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8274 } else {
8275 /* ./../lib/standard//collection//array.nit:280 */
8276 REGB0 = TAG_Bool(false);
8277 REGB2 = REGB0;
8278 }
8279 if (UNTAG_Bool(REGB2)) {
8280 } else {
8281 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8282 }
8283 /* ./../lib/standard//collection//array.nit:281 */
8284 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8285 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8286 if (UNTAG_Bool(REGB2)) {
8287 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8288 }
8289 /* ./../lib/standard//collection//array.nit:718 */
8290 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8291 /* ./../lib/standard//collection//array.nit:281 */
8292 goto label142;
8293 label142: while(0);
8294 /* ./compiling//compiling_icode.nit:775 */
8295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8296 if (!once_value_143) {
8297 fra.me.REG[7] = BOX_NativeString("));");
8298 REGB1 = TAG_Int(3);
8299 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8300 once_value_143 = fra.me.REG[7];
8301 register_static_object(&once_value_143);
8302 } else fra.me.REG[7] = once_value_143;
8303 fra.me.REG[7] = fra.me.REG[7];
8304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8305 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8306 fra.me.REG[5] = fra.me.REG[6];
8307 } else {
8308 /* ./compiling//compiling_icode.nit:776 */
8309 if (!once_value_144) {
8310 if (!once_value_145) {
8311 fra.me.REG[6] = BOX_NativeString("to_i");
8312 REGB1 = TAG_Int(4);
8313 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8314 once_value_145 = fra.me.REG[6];
8315 register_static_object(&once_value_145);
8316 } else fra.me.REG[6] = once_value_145;
8317 fra.me.REG[6] = fra.me.REG[6];
8318 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8319 once_value_144 = fra.me.REG[6];
8320 register_static_object(&once_value_144);
8321 } else fra.me.REG[6] = once_value_144;
8322 fra.me.REG[6] = fra.me.REG[6];
8323 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8324 if (UNTAG_Bool(REGB1)) {
8325 } else {
8326 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8327 REGB1 = REGB2;
8328 }
8329 if (UNTAG_Bool(REGB1)) {
8330 /* ./compiling//compiling_icode.nit:777 */
8331 REGB1 = TAG_Int(3);
8332 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8333 if (!once_value_146) {
8334 fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(");
8335 REGB1 = TAG_Int(28);
8336 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8337 once_value_146 = fra.me.REG[7];
8338 register_static_object(&once_value_146);
8339 } else fra.me.REG[7] = once_value_146;
8340 fra.me.REG[7] = fra.me.REG[7];
8341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8342 REGB1 = TAG_Int(0);
8343 /* ./../lib/standard//collection//array.nit:278 */
8344 fra.me.REG[7] = fra.me.REG[4];
8345 /* ./../lib/standard//collection//array.nit:280 */
8346 REGB2 = TAG_Int(0);
8347 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8348 if (UNTAG_Bool(REGB0)) {
8349 } else {
8350 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8351 }
8352 /* ./../lib/standard//kernel.nit:233 */
8353 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8354 /* ./../lib/standard//collection//array.nit:280 */
8355 if (UNTAG_Bool(REGB2)) {
8356 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8357 if (UNTAG_Bool(REGB2)) {
8358 } else {
8359 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8360 }
8361 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8362 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8363 if (UNTAG_Bool(REGB0)) {
8364 } else {
8365 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8366 }
8367 /* ./../lib/standard//kernel.nit:232 */
8368 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8369 } else {
8370 /* ./../lib/standard//collection//array.nit:280 */
8371 REGB0 = TAG_Bool(false);
8372 REGB2 = REGB0;
8373 }
8374 if (UNTAG_Bool(REGB2)) {
8375 } else {
8376 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8377 }
8378 /* ./../lib/standard//collection//array.nit:281 */
8379 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8380 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8381 if (UNTAG_Bool(REGB2)) {
8382 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8383 }
8384 /* ./../lib/standard//collection//array.nit:718 */
8385 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8386 /* ./../lib/standard//collection//array.nit:281 */
8387 goto label147;
8388 label147: while(0);
8389 /* ./compiling//compiling_icode.nit:777 */
8390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8391 if (!once_value_148) {
8392 fra.me.REG[7] = BOX_NativeString("))");
8393 REGB1 = TAG_Int(2);
8394 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8395 once_value_148 = fra.me.REG[7];
8396 register_static_object(&once_value_148);
8397 } else fra.me.REG[7] = once_value_148;
8398 fra.me.REG[7] = fra.me.REG[7];
8399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8400 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8401 fra.me.REG[5] = fra.me.REG[6];
8402 } else {
8403 /* ./compiling//compiling_icode.nit:778 */
8404 if (!once_value_149) {
8405 if (!once_value_150) {
8406 fra.me.REG[6] = BOX_NativeString("+");
8407 REGB1 = TAG_Int(1);
8408 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8409 once_value_150 = fra.me.REG[6];
8410 register_static_object(&once_value_150);
8411 } else fra.me.REG[6] = once_value_150;
8412 fra.me.REG[6] = fra.me.REG[6];
8413 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8414 once_value_149 = fra.me.REG[6];
8415 register_static_object(&once_value_149);
8416 } else fra.me.REG[6] = once_value_149;
8417 fra.me.REG[6] = fra.me.REG[6];
8418 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8419 if (UNTAG_Bool(REGB1)) {
8420 } else {
8421 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8422 REGB1 = REGB2;
8423 }
8424 if (UNTAG_Bool(REGB1)) {
8425 /* ./compiling//compiling_icode.nit:779 */
8426 REGB1 = TAG_Int(5);
8427 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8428 if (!once_value_151) {
8429 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8430 REGB1 = TAG_Int(22);
8431 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8432 once_value_151 = fra.me.REG[7];
8433 register_static_object(&once_value_151);
8434 } else fra.me.REG[7] = once_value_151;
8435 fra.me.REG[7] = fra.me.REG[7];
8436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8437 REGB1 = TAG_Int(0);
8438 /* ./../lib/standard//collection//array.nit:278 */
8439 fra.me.REG[7] = fra.me.REG[4];
8440 /* ./../lib/standard//collection//array.nit:280 */
8441 REGB2 = TAG_Int(0);
8442 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8443 if (UNTAG_Bool(REGB0)) {
8444 } else {
8445 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8446 }
8447 /* ./../lib/standard//kernel.nit:233 */
8448 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8449 /* ./../lib/standard//collection//array.nit:280 */
8450 if (UNTAG_Bool(REGB2)) {
8451 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8452 if (UNTAG_Bool(REGB2)) {
8453 } else {
8454 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8455 }
8456 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8457 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8458 if (UNTAG_Bool(REGB0)) {
8459 } else {
8460 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8461 }
8462 /* ./../lib/standard//kernel.nit:232 */
8463 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8464 } else {
8465 /* ./../lib/standard//collection//array.nit:280 */
8466 REGB0 = TAG_Bool(false);
8467 REGB2 = REGB0;
8468 }
8469 if (UNTAG_Bool(REGB2)) {
8470 } else {
8471 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8472 }
8473 /* ./../lib/standard//collection//array.nit:281 */
8474 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8475 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8476 if (UNTAG_Bool(REGB2)) {
8477 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8478 }
8479 /* ./../lib/standard//collection//array.nit:718 */
8480 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8481 /* ./../lib/standard//collection//array.nit:281 */
8482 goto label152;
8483 label152: while(0);
8484 /* ./compiling//compiling_icode.nit:779 */
8485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8486 if (!once_value_153) {
8487 fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
8488 REGB1 = TAG_Int(14);
8489 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8490 once_value_153 = fra.me.REG[7];
8491 register_static_object(&once_value_153);
8492 } else fra.me.REG[7] = once_value_153;
8493 fra.me.REG[7] = fra.me.REG[7];
8494 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8495 REGB1 = TAG_Int(1);
8496 /* ./../lib/standard//collection//array.nit:278 */
8497 fra.me.REG[7] = fra.me.REG[4];
8498 /* ./../lib/standard//collection//array.nit:280 */
8499 REGB2 = TAG_Int(0);
8500 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8501 if (UNTAG_Bool(REGB0)) {
8502 } else {
8503 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8504 }
8505 /* ./../lib/standard//kernel.nit:233 */
8506 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8507 /* ./../lib/standard//collection//array.nit:280 */
8508 if (UNTAG_Bool(REGB2)) {
8509 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8510 if (UNTAG_Bool(REGB2)) {
8511 } else {
8512 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8513 }
8514 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8515 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8516 if (UNTAG_Bool(REGB0)) {
8517 } else {
8518 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8519 }
8520 /* ./../lib/standard//kernel.nit:232 */
8521 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8522 } else {
8523 /* ./../lib/standard//collection//array.nit:280 */
8524 REGB0 = TAG_Bool(false);
8525 REGB2 = REGB0;
8526 }
8527 if (UNTAG_Bool(REGB2)) {
8528 } else {
8529 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8530 }
8531 /* ./../lib/standard//collection//array.nit:281 */
8532 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8533 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8534 if (UNTAG_Bool(REGB2)) {
8535 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8536 }
8537 /* ./../lib/standard//collection//array.nit:718 */
8538 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8539 /* ./../lib/standard//collection//array.nit:281 */
8540 goto label154;
8541 label154: while(0);
8542 /* ./compiling//compiling_icode.nit:779 */
8543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8544 if (!once_value_155) {
8545 fra.me.REG[7] = BOX_NativeString("))");
8546 REGB1 = TAG_Int(2);
8547 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8548 once_value_155 = fra.me.REG[7];
8549 register_static_object(&once_value_155);
8550 } else fra.me.REG[7] = once_value_155;
8551 fra.me.REG[7] = fra.me.REG[7];
8552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8553 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8554 fra.me.REG[5] = fra.me.REG[6];
8555 } else {
8556 /* ./compiling//compiling_icode.nit:780 */
8557 if (!once_value_156) {
8558 if (!once_value_157) {
8559 fra.me.REG[6] = BOX_NativeString("-");
8560 REGB1 = TAG_Int(1);
8561 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8562 once_value_157 = fra.me.REG[6];
8563 register_static_object(&once_value_157);
8564 } else fra.me.REG[6] = once_value_157;
8565 fra.me.REG[6] = fra.me.REG[6];
8566 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8567 once_value_156 = fra.me.REG[6];
8568 register_static_object(&once_value_156);
8569 } else fra.me.REG[6] = once_value_156;
8570 fra.me.REG[6] = fra.me.REG[6];
8571 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8572 if (UNTAG_Bool(REGB1)) {
8573 } else {
8574 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8575 REGB1 = REGB2;
8576 }
8577 if (UNTAG_Bool(REGB1)) {
8578 /* ./compiling//compiling_icode.nit:781 */
8579 REGB1 = TAG_Int(5);
8580 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8581 if (!once_value_158) {
8582 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8583 REGB1 = TAG_Int(22);
8584 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8585 once_value_158 = fra.me.REG[7];
8586 register_static_object(&once_value_158);
8587 } else fra.me.REG[7] = once_value_158;
8588 fra.me.REG[7] = fra.me.REG[7];
8589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8590 REGB1 = TAG_Int(0);
8591 /* ./../lib/standard//collection//array.nit:278 */
8592 fra.me.REG[7] = fra.me.REG[4];
8593 /* ./../lib/standard//collection//array.nit:280 */
8594 REGB2 = TAG_Int(0);
8595 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8596 if (UNTAG_Bool(REGB0)) {
8597 } else {
8598 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8599 }
8600 /* ./../lib/standard//kernel.nit:233 */
8601 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8602 /* ./../lib/standard//collection//array.nit:280 */
8603 if (UNTAG_Bool(REGB2)) {
8604 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8605 if (UNTAG_Bool(REGB2)) {
8606 } else {
8607 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8608 }
8609 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8610 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8611 if (UNTAG_Bool(REGB0)) {
8612 } else {
8613 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8614 }
8615 /* ./../lib/standard//kernel.nit:232 */
8616 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8617 } else {
8618 /* ./../lib/standard//collection//array.nit:280 */
8619 REGB0 = TAG_Bool(false);
8620 REGB2 = REGB0;
8621 }
8622 if (UNTAG_Bool(REGB2)) {
8623 } else {
8624 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8625 }
8626 /* ./../lib/standard//collection//array.nit:281 */
8627 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8628 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8629 if (UNTAG_Bool(REGB2)) {
8630 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8631 }
8632 /* ./../lib/standard//collection//array.nit:718 */
8633 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8634 /* ./../lib/standard//collection//array.nit:281 */
8635 goto label159;
8636 label159: while(0);
8637 /* ./compiling//compiling_icode.nit:781 */
8638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8639 if (!once_value_160) {
8640 fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
8641 REGB1 = TAG_Int(14);
8642 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8643 once_value_160 = fra.me.REG[7];
8644 register_static_object(&once_value_160);
8645 } else fra.me.REG[7] = once_value_160;
8646 fra.me.REG[7] = fra.me.REG[7];
8647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8648 REGB1 = TAG_Int(1);
8649 /* ./../lib/standard//collection//array.nit:278 */
8650 fra.me.REG[7] = fra.me.REG[4];
8651 /* ./../lib/standard//collection//array.nit:280 */
8652 REGB2 = TAG_Int(0);
8653 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8654 if (UNTAG_Bool(REGB0)) {
8655 } else {
8656 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8657 }
8658 /* ./../lib/standard//kernel.nit:233 */
8659 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8660 /* ./../lib/standard//collection//array.nit:280 */
8661 if (UNTAG_Bool(REGB2)) {
8662 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8663 if (UNTAG_Bool(REGB2)) {
8664 } else {
8665 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8666 }
8667 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8668 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8669 if (UNTAG_Bool(REGB0)) {
8670 } else {
8671 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8672 }
8673 /* ./../lib/standard//kernel.nit:232 */
8674 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8675 } else {
8676 /* ./../lib/standard//collection//array.nit:280 */
8677 REGB0 = TAG_Bool(false);
8678 REGB2 = REGB0;
8679 }
8680 if (UNTAG_Bool(REGB2)) {
8681 } else {
8682 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8683 }
8684 /* ./../lib/standard//collection//array.nit:281 */
8685 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8686 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8687 if (UNTAG_Bool(REGB2)) {
8688 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8689 }
8690 /* ./../lib/standard//collection//array.nit:718 */
8691 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8692 /* ./../lib/standard//collection//array.nit:281 */
8693 goto label161;
8694 label161: while(0);
8695 /* ./compiling//compiling_icode.nit:781 */
8696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8697 if (!once_value_162) {
8698 fra.me.REG[7] = BOX_NativeString("))");
8699 REGB1 = TAG_Int(2);
8700 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8701 once_value_162 = fra.me.REG[7];
8702 register_static_object(&once_value_162);
8703 } else fra.me.REG[7] = once_value_162;
8704 fra.me.REG[7] = fra.me.REG[7];
8705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8706 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8707 fra.me.REG[5] = fra.me.REG[6];
8708 } else {
8709 /* ./compiling//compiling_icode.nit:782 */
8710 if (!once_value_163) {
8711 if (!once_value_164) {
8712 fra.me.REG[6] = BOX_NativeString("*");
8713 REGB1 = TAG_Int(1);
8714 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8715 once_value_164 = fra.me.REG[6];
8716 register_static_object(&once_value_164);
8717 } else fra.me.REG[6] = once_value_164;
8718 fra.me.REG[6] = fra.me.REG[6];
8719 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8720 once_value_163 = fra.me.REG[6];
8721 register_static_object(&once_value_163);
8722 } else fra.me.REG[6] = once_value_163;
8723 fra.me.REG[6] = fra.me.REG[6];
8724 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8725 if (UNTAG_Bool(REGB1)) {
8726 } else {
8727 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8728 REGB1 = REGB2;
8729 }
8730 if (UNTAG_Bool(REGB1)) {
8731 /* ./compiling//compiling_icode.nit:783 */
8732 REGB1 = TAG_Int(5);
8733 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8734 if (!once_value_165) {
8735 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8736 REGB1 = TAG_Int(22);
8737 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8738 once_value_165 = fra.me.REG[7];
8739 register_static_object(&once_value_165);
8740 } else fra.me.REG[7] = once_value_165;
8741 fra.me.REG[7] = fra.me.REG[7];
8742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8743 REGB1 = TAG_Int(0);
8744 /* ./../lib/standard//collection//array.nit:278 */
8745 fra.me.REG[7] = fra.me.REG[4];
8746 /* ./../lib/standard//collection//array.nit:280 */
8747 REGB2 = TAG_Int(0);
8748 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8749 if (UNTAG_Bool(REGB0)) {
8750 } else {
8751 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8752 }
8753 /* ./../lib/standard//kernel.nit:233 */
8754 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8755 /* ./../lib/standard//collection//array.nit:280 */
8756 if (UNTAG_Bool(REGB2)) {
8757 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8758 if (UNTAG_Bool(REGB2)) {
8759 } else {
8760 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8761 }
8762 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8763 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8764 if (UNTAG_Bool(REGB0)) {
8765 } else {
8766 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8767 }
8768 /* ./../lib/standard//kernel.nit:232 */
8769 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8770 } else {
8771 /* ./../lib/standard//collection//array.nit:280 */
8772 REGB0 = TAG_Bool(false);
8773 REGB2 = REGB0;
8774 }
8775 if (UNTAG_Bool(REGB2)) {
8776 } else {
8777 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8778 }
8779 /* ./../lib/standard//collection//array.nit:281 */
8780 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8781 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8782 if (UNTAG_Bool(REGB2)) {
8783 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8784 }
8785 /* ./../lib/standard//collection//array.nit:718 */
8786 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8787 /* ./../lib/standard//collection//array.nit:281 */
8788 goto label166;
8789 label166: while(0);
8790 /* ./compiling//compiling_icode.nit:783 */
8791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8792 if (!once_value_167) {
8793 fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
8794 REGB1 = TAG_Int(14);
8795 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8796 once_value_167 = fra.me.REG[7];
8797 register_static_object(&once_value_167);
8798 } else fra.me.REG[7] = once_value_167;
8799 fra.me.REG[7] = fra.me.REG[7];
8800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8801 REGB1 = TAG_Int(1);
8802 /* ./../lib/standard//collection//array.nit:278 */
8803 fra.me.REG[7] = fra.me.REG[4];
8804 /* ./../lib/standard//collection//array.nit:280 */
8805 REGB2 = TAG_Int(0);
8806 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8807 if (UNTAG_Bool(REGB0)) {
8808 } else {
8809 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8810 }
8811 /* ./../lib/standard//kernel.nit:233 */
8812 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8813 /* ./../lib/standard//collection//array.nit:280 */
8814 if (UNTAG_Bool(REGB2)) {
8815 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8816 if (UNTAG_Bool(REGB2)) {
8817 } else {
8818 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8819 }
8820 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8821 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8822 if (UNTAG_Bool(REGB0)) {
8823 } else {
8824 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8825 }
8826 /* ./../lib/standard//kernel.nit:232 */
8827 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8828 } else {
8829 /* ./../lib/standard//collection//array.nit:280 */
8830 REGB0 = TAG_Bool(false);
8831 REGB2 = REGB0;
8832 }
8833 if (UNTAG_Bool(REGB2)) {
8834 } else {
8835 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8836 }
8837 /* ./../lib/standard//collection//array.nit:281 */
8838 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8839 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8840 if (UNTAG_Bool(REGB2)) {
8841 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8842 }
8843 /* ./../lib/standard//collection//array.nit:718 */
8844 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8845 /* ./../lib/standard//collection//array.nit:281 */
8846 goto label168;
8847 label168: while(0);
8848 /* ./compiling//compiling_icode.nit:783 */
8849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8850 if (!once_value_169) {
8851 fra.me.REG[7] = BOX_NativeString("))");
8852 REGB1 = TAG_Int(2);
8853 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8854 once_value_169 = fra.me.REG[7];
8855 register_static_object(&once_value_169);
8856 } else fra.me.REG[7] = once_value_169;
8857 fra.me.REG[7] = fra.me.REG[7];
8858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8859 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
8860 fra.me.REG[5] = fra.me.REG[6];
8861 } else {
8862 /* ./compiling//compiling_icode.nit:784 */
8863 if (!once_value_170) {
8864 if (!once_value_171) {
8865 fra.me.REG[6] = BOX_NativeString("/");
8866 REGB1 = TAG_Int(1);
8867 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8868 once_value_171 = fra.me.REG[6];
8869 register_static_object(&once_value_171);
8870 } else fra.me.REG[6] = once_value_171;
8871 fra.me.REG[6] = fra.me.REG[6];
8872 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8873 once_value_170 = fra.me.REG[6];
8874 register_static_object(&once_value_170);
8875 } else fra.me.REG[6] = once_value_170;
8876 fra.me.REG[6] = fra.me.REG[6];
8877 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
8878 if (UNTAG_Bool(REGB1)) {
8879 } else {
8880 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
8881 REGB1 = REGB2;
8882 }
8883 if (UNTAG_Bool(REGB1)) {
8884 /* ./compiling//compiling_icode.nit:785 */
8885 REGB1 = TAG_Int(5);
8886 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8887 if (!once_value_172) {
8888 fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float(");
8889 REGB1 = TAG_Int(22);
8890 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8891 once_value_172 = fra.me.REG[7];
8892 register_static_object(&once_value_172);
8893 } else fra.me.REG[7] = once_value_172;
8894 fra.me.REG[7] = fra.me.REG[7];
8895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8896 REGB1 = TAG_Int(0);
8897 /* ./../lib/standard//collection//array.nit:278 */
8898 fra.me.REG[7] = fra.me.REG[4];
8899 /* ./../lib/standard//collection//array.nit:280 */
8900 REGB2 = TAG_Int(0);
8901 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8902 if (UNTAG_Bool(REGB0)) {
8903 } else {
8904 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8905 }
8906 /* ./../lib/standard//kernel.nit:233 */
8907 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8908 /* ./../lib/standard//collection//array.nit:280 */
8909 if (UNTAG_Bool(REGB2)) {
8910 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8911 if (UNTAG_Bool(REGB2)) {
8912 } else {
8913 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8914 }
8915 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8916 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8917 if (UNTAG_Bool(REGB0)) {
8918 } else {
8919 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8920 }
8921 /* ./../lib/standard//kernel.nit:232 */
8922 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8923 } else {
8924 /* ./../lib/standard//collection//array.nit:280 */
8925 REGB0 = TAG_Bool(false);
8926 REGB2 = REGB0;
8927 }
8928 if (UNTAG_Bool(REGB2)) {
8929 } else {
8930 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8931 }
8932 /* ./../lib/standard//collection//array.nit:281 */
8933 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8934 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8935 if (UNTAG_Bool(REGB2)) {
8936 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8937 }
8938 /* ./../lib/standard//collection//array.nit:718 */
8939 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8940 /* ./../lib/standard//collection//array.nit:281 */
8941 goto label173;
8942 label173: while(0);
8943 /* ./compiling//compiling_icode.nit:785 */
8944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8945 if (!once_value_174) {
8946 fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
8947 REGB1 = TAG_Int(14);
8948 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
8949 once_value_174 = fra.me.REG[7];
8950 register_static_object(&once_value_174);
8951 } else fra.me.REG[7] = once_value_174;
8952 fra.me.REG[7] = fra.me.REG[7];
8953 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8954 REGB1 = TAG_Int(1);
8955 /* ./../lib/standard//collection//array.nit:278 */
8956 fra.me.REG[7] = fra.me.REG[4];
8957 /* ./../lib/standard//collection//array.nit:280 */
8958 REGB2 = TAG_Int(0);
8959 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8960 if (UNTAG_Bool(REGB0)) {
8961 } else {
8962 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8963 }
8964 /* ./../lib/standard//kernel.nit:233 */
8965 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
8966 /* ./../lib/standard//collection//array.nit:280 */
8967 if (UNTAG_Bool(REGB2)) {
8968 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
8969 if (UNTAG_Bool(REGB2)) {
8970 } else {
8971 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
8972 }
8973 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
8974 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8975 if (UNTAG_Bool(REGB0)) {
8976 } else {
8977 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8978 }
8979 /* ./../lib/standard//kernel.nit:232 */
8980 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
8981 } else {
8982 /* ./../lib/standard//collection//array.nit:280 */
8983 REGB0 = TAG_Bool(false);
8984 REGB2 = REGB0;
8985 }
8986 if (UNTAG_Bool(REGB2)) {
8987 } else {
8988 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
8989 }
8990 /* ./../lib/standard//collection//array.nit:281 */
8991 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
8992 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8993 if (UNTAG_Bool(REGB2)) {
8994 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
8995 }
8996 /* ./../lib/standard//collection//array.nit:718 */
8997 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
8998 /* ./../lib/standard//collection//array.nit:281 */
8999 goto label175;
9000 label175: while(0);
9001 /* ./compiling//compiling_icode.nit:785 */
9002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9003 if (!once_value_176) {
9004 fra.me.REG[7] = BOX_NativeString("))");
9005 REGB1 = TAG_Int(2);
9006 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9007 once_value_176 = fra.me.REG[7];
9008 register_static_object(&once_value_176);
9009 } else fra.me.REG[7] = once_value_176;
9010 fra.me.REG[7] = fra.me.REG[7];
9011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9012 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9013 fra.me.REG[5] = fra.me.REG[6];
9014 } else {
9015 /* ./compiling//compiling_icode.nit:786 */
9016 if (!once_value_177) {
9017 if (!once_value_178) {
9018 fra.me.REG[6] = BOX_NativeString("<");
9019 REGB1 = TAG_Int(1);
9020 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9021 once_value_178 = fra.me.REG[6];
9022 register_static_object(&once_value_178);
9023 } else fra.me.REG[6] = once_value_178;
9024 fra.me.REG[6] = fra.me.REG[6];
9025 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9026 once_value_177 = fra.me.REG[6];
9027 register_static_object(&once_value_177);
9028 } else fra.me.REG[6] = once_value_177;
9029 fra.me.REG[6] = fra.me.REG[6];
9030 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9031 if (UNTAG_Bool(REGB1)) {
9032 } else {
9033 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9034 REGB1 = REGB2;
9035 }
9036 if (UNTAG_Bool(REGB1)) {
9037 /* ./compiling//compiling_icode.nit:787 */
9038 REGB1 = TAG_Int(5);
9039 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9040 if (!once_value_179) {
9041 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9042 REGB1 = TAG_Int(21);
9043 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9044 once_value_179 = fra.me.REG[7];
9045 register_static_object(&once_value_179);
9046 } else fra.me.REG[7] = once_value_179;
9047 fra.me.REG[7] = fra.me.REG[7];
9048 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9049 REGB1 = TAG_Int(0);
9050 /* ./../lib/standard//collection//array.nit:278 */
9051 fra.me.REG[7] = fra.me.REG[4];
9052 /* ./../lib/standard//collection//array.nit:280 */
9053 REGB2 = TAG_Int(0);
9054 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9055 if (UNTAG_Bool(REGB0)) {
9056 } else {
9057 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9058 }
9059 /* ./../lib/standard//kernel.nit:233 */
9060 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9061 /* ./../lib/standard//collection//array.nit:280 */
9062 if (UNTAG_Bool(REGB2)) {
9063 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9064 if (UNTAG_Bool(REGB2)) {
9065 } else {
9066 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9067 }
9068 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9069 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9070 if (UNTAG_Bool(REGB0)) {
9071 } else {
9072 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9073 }
9074 /* ./../lib/standard//kernel.nit:232 */
9075 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9076 } else {
9077 /* ./../lib/standard//collection//array.nit:280 */
9078 REGB0 = TAG_Bool(false);
9079 REGB2 = REGB0;
9080 }
9081 if (UNTAG_Bool(REGB2)) {
9082 } else {
9083 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9084 }
9085 /* ./../lib/standard//collection//array.nit:281 */
9086 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9087 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9088 if (UNTAG_Bool(REGB2)) {
9089 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9090 }
9091 /* ./../lib/standard//collection//array.nit:718 */
9092 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9093 /* ./../lib/standard//collection//array.nit:281 */
9094 goto label180;
9095 label180: while(0);
9096 /* ./compiling//compiling_icode.nit:787 */
9097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9098 if (!once_value_181) {
9099 fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
9100 REGB1 = TAG_Int(14);
9101 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9102 once_value_181 = fra.me.REG[7];
9103 register_static_object(&once_value_181);
9104 } else fra.me.REG[7] = once_value_181;
9105 fra.me.REG[7] = fra.me.REG[7];
9106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9107 REGB1 = TAG_Int(1);
9108 /* ./../lib/standard//collection//array.nit:278 */
9109 fra.me.REG[7] = fra.me.REG[4];
9110 /* ./../lib/standard//collection//array.nit:280 */
9111 REGB2 = TAG_Int(0);
9112 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9113 if (UNTAG_Bool(REGB0)) {
9114 } else {
9115 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9116 }
9117 /* ./../lib/standard//kernel.nit:233 */
9118 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9119 /* ./../lib/standard//collection//array.nit:280 */
9120 if (UNTAG_Bool(REGB2)) {
9121 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9122 if (UNTAG_Bool(REGB2)) {
9123 } else {
9124 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9125 }
9126 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9127 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9128 if (UNTAG_Bool(REGB0)) {
9129 } else {
9130 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9131 }
9132 /* ./../lib/standard//kernel.nit:232 */
9133 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9134 } else {
9135 /* ./../lib/standard//collection//array.nit:280 */
9136 REGB0 = TAG_Bool(false);
9137 REGB2 = REGB0;
9138 }
9139 if (UNTAG_Bool(REGB2)) {
9140 } else {
9141 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9142 }
9143 /* ./../lib/standard//collection//array.nit:281 */
9144 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9145 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9146 if (UNTAG_Bool(REGB2)) {
9147 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9148 }
9149 /* ./../lib/standard//collection//array.nit:718 */
9150 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9151 /* ./../lib/standard//collection//array.nit:281 */
9152 goto label182;
9153 label182: while(0);
9154 /* ./compiling//compiling_icode.nit:787 */
9155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9156 if (!once_value_183) {
9157 fra.me.REG[7] = BOX_NativeString("))");
9158 REGB1 = TAG_Int(2);
9159 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9160 once_value_183 = fra.me.REG[7];
9161 register_static_object(&once_value_183);
9162 } else fra.me.REG[7] = once_value_183;
9163 fra.me.REG[7] = fra.me.REG[7];
9164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9165 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9166 fra.me.REG[5] = fra.me.REG[6];
9167 } else {
9168 /* ./compiling//compiling_icode.nit:788 */
9169 if (!once_value_184) {
9170 if (!once_value_185) {
9171 fra.me.REG[6] = BOX_NativeString(">");
9172 REGB1 = TAG_Int(1);
9173 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9174 once_value_185 = fra.me.REG[6];
9175 register_static_object(&once_value_185);
9176 } else fra.me.REG[6] = once_value_185;
9177 fra.me.REG[6] = fra.me.REG[6];
9178 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9179 once_value_184 = fra.me.REG[6];
9180 register_static_object(&once_value_184);
9181 } else fra.me.REG[6] = once_value_184;
9182 fra.me.REG[6] = fra.me.REG[6];
9183 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9184 if (UNTAG_Bool(REGB1)) {
9185 } else {
9186 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9187 REGB1 = REGB2;
9188 }
9189 if (UNTAG_Bool(REGB1)) {
9190 /* ./compiling//compiling_icode.nit:789 */
9191 REGB1 = TAG_Int(5);
9192 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9193 if (!once_value_186) {
9194 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9195 REGB1 = TAG_Int(21);
9196 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9197 once_value_186 = fra.me.REG[7];
9198 register_static_object(&once_value_186);
9199 } else fra.me.REG[7] = once_value_186;
9200 fra.me.REG[7] = fra.me.REG[7];
9201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9202 REGB1 = TAG_Int(0);
9203 /* ./../lib/standard//collection//array.nit:278 */
9204 fra.me.REG[7] = fra.me.REG[4];
9205 /* ./../lib/standard//collection//array.nit:280 */
9206 REGB2 = TAG_Int(0);
9207 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9208 if (UNTAG_Bool(REGB0)) {
9209 } else {
9210 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9211 }
9212 /* ./../lib/standard//kernel.nit:233 */
9213 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9214 /* ./../lib/standard//collection//array.nit:280 */
9215 if (UNTAG_Bool(REGB2)) {
9216 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9217 if (UNTAG_Bool(REGB2)) {
9218 } else {
9219 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9220 }
9221 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9222 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9223 if (UNTAG_Bool(REGB0)) {
9224 } else {
9225 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9226 }
9227 /* ./../lib/standard//kernel.nit:232 */
9228 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9229 } else {
9230 /* ./../lib/standard//collection//array.nit:280 */
9231 REGB0 = TAG_Bool(false);
9232 REGB2 = REGB0;
9233 }
9234 if (UNTAG_Bool(REGB2)) {
9235 } else {
9236 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9237 }
9238 /* ./../lib/standard//collection//array.nit:281 */
9239 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9240 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9241 if (UNTAG_Bool(REGB2)) {
9242 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9243 }
9244 /* ./../lib/standard//collection//array.nit:718 */
9245 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9246 /* ./../lib/standard//collection//array.nit:281 */
9247 goto label187;
9248 label187: while(0);
9249 /* ./compiling//compiling_icode.nit:789 */
9250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9251 if (!once_value_188) {
9252 fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
9253 REGB1 = TAG_Int(14);
9254 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9255 once_value_188 = fra.me.REG[7];
9256 register_static_object(&once_value_188);
9257 } else fra.me.REG[7] = once_value_188;
9258 fra.me.REG[7] = fra.me.REG[7];
9259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9260 REGB1 = TAG_Int(1);
9261 /* ./../lib/standard//collection//array.nit:278 */
9262 fra.me.REG[7] = fra.me.REG[4];
9263 /* ./../lib/standard//collection//array.nit:280 */
9264 REGB2 = TAG_Int(0);
9265 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9266 if (UNTAG_Bool(REGB0)) {
9267 } else {
9268 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9269 }
9270 /* ./../lib/standard//kernel.nit:233 */
9271 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9272 /* ./../lib/standard//collection//array.nit:280 */
9273 if (UNTAG_Bool(REGB2)) {
9274 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9275 if (UNTAG_Bool(REGB2)) {
9276 } else {
9277 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9278 }
9279 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9280 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9281 if (UNTAG_Bool(REGB0)) {
9282 } else {
9283 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9284 }
9285 /* ./../lib/standard//kernel.nit:232 */
9286 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9287 } else {
9288 /* ./../lib/standard//collection//array.nit:280 */
9289 REGB0 = TAG_Bool(false);
9290 REGB2 = REGB0;
9291 }
9292 if (UNTAG_Bool(REGB2)) {
9293 } else {
9294 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9295 }
9296 /* ./../lib/standard//collection//array.nit:281 */
9297 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9298 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9299 if (UNTAG_Bool(REGB2)) {
9300 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9301 }
9302 /* ./../lib/standard//collection//array.nit:718 */
9303 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9304 /* ./../lib/standard//collection//array.nit:281 */
9305 goto label189;
9306 label189: while(0);
9307 /* ./compiling//compiling_icode.nit:789 */
9308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9309 if (!once_value_190) {
9310 fra.me.REG[7] = BOX_NativeString("))");
9311 REGB1 = TAG_Int(2);
9312 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9313 once_value_190 = fra.me.REG[7];
9314 register_static_object(&once_value_190);
9315 } else fra.me.REG[7] = once_value_190;
9316 fra.me.REG[7] = fra.me.REG[7];
9317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9318 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9319 fra.me.REG[5] = fra.me.REG[6];
9320 } else {
9321 /* ./compiling//compiling_icode.nit:790 */
9322 if (!once_value_191) {
9323 if (!once_value_192) {
9324 fra.me.REG[6] = BOX_NativeString("<=");
9325 REGB1 = TAG_Int(2);
9326 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9327 once_value_192 = fra.me.REG[6];
9328 register_static_object(&once_value_192);
9329 } else fra.me.REG[6] = once_value_192;
9330 fra.me.REG[6] = fra.me.REG[6];
9331 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9332 once_value_191 = fra.me.REG[6];
9333 register_static_object(&once_value_191);
9334 } else fra.me.REG[6] = once_value_191;
9335 fra.me.REG[6] = fra.me.REG[6];
9336 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9337 if (UNTAG_Bool(REGB1)) {
9338 } else {
9339 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9340 REGB1 = REGB2;
9341 }
9342 if (UNTAG_Bool(REGB1)) {
9343 /* ./compiling//compiling_icode.nit:791 */
9344 REGB1 = TAG_Int(5);
9345 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9346 if (!once_value_193) {
9347 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9348 REGB1 = TAG_Int(21);
9349 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9350 once_value_193 = fra.me.REG[7];
9351 register_static_object(&once_value_193);
9352 } else fra.me.REG[7] = once_value_193;
9353 fra.me.REG[7] = fra.me.REG[7];
9354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9355 REGB1 = TAG_Int(0);
9356 /* ./../lib/standard//collection//array.nit:278 */
9357 fra.me.REG[7] = fra.me.REG[4];
9358 /* ./../lib/standard//collection//array.nit:280 */
9359 REGB2 = TAG_Int(0);
9360 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9361 if (UNTAG_Bool(REGB0)) {
9362 } else {
9363 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9364 }
9365 /* ./../lib/standard//kernel.nit:233 */
9366 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9367 /* ./../lib/standard//collection//array.nit:280 */
9368 if (UNTAG_Bool(REGB2)) {
9369 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9370 if (UNTAG_Bool(REGB2)) {
9371 } else {
9372 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9373 }
9374 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9375 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9376 if (UNTAG_Bool(REGB0)) {
9377 } else {
9378 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9379 }
9380 /* ./../lib/standard//kernel.nit:232 */
9381 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9382 } else {
9383 /* ./../lib/standard//collection//array.nit:280 */
9384 REGB0 = TAG_Bool(false);
9385 REGB2 = REGB0;
9386 }
9387 if (UNTAG_Bool(REGB2)) {
9388 } else {
9389 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9390 }
9391 /* ./../lib/standard//collection//array.nit:281 */
9392 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9393 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9394 if (UNTAG_Bool(REGB2)) {
9395 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9396 }
9397 /* ./../lib/standard//collection//array.nit:718 */
9398 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9399 /* ./../lib/standard//collection//array.nit:281 */
9400 goto label194;
9401 label194: while(0);
9402 /* ./compiling//compiling_icode.nit:791 */
9403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9404 if (!once_value_195) {
9405 fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
9406 REGB1 = TAG_Int(15);
9407 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9408 once_value_195 = fra.me.REG[7];
9409 register_static_object(&once_value_195);
9410 } else fra.me.REG[7] = once_value_195;
9411 fra.me.REG[7] = fra.me.REG[7];
9412 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9413 REGB1 = TAG_Int(1);
9414 /* ./../lib/standard//collection//array.nit:278 */
9415 fra.me.REG[7] = fra.me.REG[4];
9416 /* ./../lib/standard//collection//array.nit:280 */
9417 REGB2 = TAG_Int(0);
9418 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9419 if (UNTAG_Bool(REGB0)) {
9420 } else {
9421 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9422 }
9423 /* ./../lib/standard//kernel.nit:233 */
9424 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9425 /* ./../lib/standard//collection//array.nit:280 */
9426 if (UNTAG_Bool(REGB2)) {
9427 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9428 if (UNTAG_Bool(REGB2)) {
9429 } else {
9430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9431 }
9432 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9433 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9434 if (UNTAG_Bool(REGB0)) {
9435 } else {
9436 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9437 }
9438 /* ./../lib/standard//kernel.nit:232 */
9439 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9440 } else {
9441 /* ./../lib/standard//collection//array.nit:280 */
9442 REGB0 = TAG_Bool(false);
9443 REGB2 = REGB0;
9444 }
9445 if (UNTAG_Bool(REGB2)) {
9446 } else {
9447 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9448 }
9449 /* ./../lib/standard//collection//array.nit:281 */
9450 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9451 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9452 if (UNTAG_Bool(REGB2)) {
9453 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9454 }
9455 /* ./../lib/standard//collection//array.nit:718 */
9456 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9457 /* ./../lib/standard//collection//array.nit:281 */
9458 goto label196;
9459 label196: while(0);
9460 /* ./compiling//compiling_icode.nit:791 */
9461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9462 if (!once_value_197) {
9463 fra.me.REG[7] = BOX_NativeString("))");
9464 REGB1 = TAG_Int(2);
9465 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9466 once_value_197 = fra.me.REG[7];
9467 register_static_object(&once_value_197);
9468 } else fra.me.REG[7] = once_value_197;
9469 fra.me.REG[7] = fra.me.REG[7];
9470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9471 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9472 fra.me.REG[5] = fra.me.REG[6];
9473 } else {
9474 /* ./compiling//compiling_icode.nit:792 */
9475 if (!once_value_198) {
9476 if (!once_value_199) {
9477 fra.me.REG[6] = BOX_NativeString(">=");
9478 REGB1 = TAG_Int(2);
9479 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9480 once_value_199 = fra.me.REG[6];
9481 register_static_object(&once_value_199);
9482 } else fra.me.REG[6] = once_value_199;
9483 fra.me.REG[6] = fra.me.REG[6];
9484 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9485 once_value_198 = fra.me.REG[6];
9486 register_static_object(&once_value_198);
9487 } else fra.me.REG[6] = once_value_198;
9488 fra.me.REG[6] = fra.me.REG[6];
9489 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9490 if (UNTAG_Bool(REGB1)) {
9491 } else {
9492 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9493 REGB1 = REGB2;
9494 }
9495 if (UNTAG_Bool(REGB1)) {
9496 /* ./compiling//compiling_icode.nit:793 */
9497 REGB1 = TAG_Int(5);
9498 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9499 if (!once_value_200) {
9500 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(");
9501 REGB1 = TAG_Int(21);
9502 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9503 once_value_200 = fra.me.REG[7];
9504 register_static_object(&once_value_200);
9505 } else fra.me.REG[7] = once_value_200;
9506 fra.me.REG[7] = fra.me.REG[7];
9507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9508 REGB1 = TAG_Int(0);
9509 /* ./../lib/standard//collection//array.nit:278 */
9510 fra.me.REG[7] = fra.me.REG[4];
9511 /* ./../lib/standard//collection//array.nit:280 */
9512 REGB2 = TAG_Int(0);
9513 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9514 if (UNTAG_Bool(REGB0)) {
9515 } else {
9516 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9517 }
9518 /* ./../lib/standard//kernel.nit:233 */
9519 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9520 /* ./../lib/standard//collection//array.nit:280 */
9521 if (UNTAG_Bool(REGB2)) {
9522 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9523 if (UNTAG_Bool(REGB2)) {
9524 } else {
9525 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9526 }
9527 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9528 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9529 if (UNTAG_Bool(REGB0)) {
9530 } else {
9531 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9532 }
9533 /* ./../lib/standard//kernel.nit:232 */
9534 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9535 } else {
9536 /* ./../lib/standard//collection//array.nit:280 */
9537 REGB0 = TAG_Bool(false);
9538 REGB2 = REGB0;
9539 }
9540 if (UNTAG_Bool(REGB2)) {
9541 } else {
9542 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9543 }
9544 /* ./../lib/standard//collection//array.nit:281 */
9545 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9546 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9547 if (UNTAG_Bool(REGB2)) {
9548 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9549 }
9550 /* ./../lib/standard//collection//array.nit:718 */
9551 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9552 /* ./../lib/standard//collection//array.nit:281 */
9553 goto label201;
9554 label201: while(0);
9555 /* ./compiling//compiling_icode.nit:793 */
9556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9557 if (!once_value_202) {
9558 fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
9559 REGB1 = TAG_Int(15);
9560 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9561 once_value_202 = fra.me.REG[7];
9562 register_static_object(&once_value_202);
9563 } else fra.me.REG[7] = once_value_202;
9564 fra.me.REG[7] = fra.me.REG[7];
9565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9566 REGB1 = TAG_Int(1);
9567 /* ./../lib/standard//collection//array.nit:278 */
9568 fra.me.REG[7] = fra.me.REG[4];
9569 /* ./../lib/standard//collection//array.nit:280 */
9570 REGB2 = TAG_Int(0);
9571 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9572 if (UNTAG_Bool(REGB0)) {
9573 } else {
9574 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9575 }
9576 /* ./../lib/standard//kernel.nit:233 */
9577 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9578 /* ./../lib/standard//collection//array.nit:280 */
9579 if (UNTAG_Bool(REGB2)) {
9580 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9581 if (UNTAG_Bool(REGB2)) {
9582 } else {
9583 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9584 }
9585 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9586 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9587 if (UNTAG_Bool(REGB0)) {
9588 } else {
9589 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9590 }
9591 /* ./../lib/standard//kernel.nit:232 */
9592 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9593 } else {
9594 /* ./../lib/standard//collection//array.nit:280 */
9595 REGB0 = TAG_Bool(false);
9596 REGB2 = REGB0;
9597 }
9598 if (UNTAG_Bool(REGB2)) {
9599 } else {
9600 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9601 }
9602 /* ./../lib/standard//collection//array.nit:281 */
9603 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9604 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9605 if (UNTAG_Bool(REGB2)) {
9606 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9607 }
9608 /* ./../lib/standard//collection//array.nit:718 */
9609 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9610 /* ./../lib/standard//collection//array.nit:281 */
9611 goto label203;
9612 label203: while(0);
9613 /* ./compiling//compiling_icode.nit:793 */
9614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9615 if (!once_value_204) {
9616 fra.me.REG[7] = BOX_NativeString("))");
9617 REGB1 = TAG_Int(2);
9618 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9619 once_value_204 = fra.me.REG[7];
9620 register_static_object(&once_value_204);
9621 } else fra.me.REG[7] = once_value_204;
9622 fra.me.REG[7] = fra.me.REG[7];
9623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9624 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9625 fra.me.REG[5] = fra.me.REG[6];
9626 }
9627 }
9628 }
9629 }
9630 }
9631 }
9632 }
9633 }
9634 }
9635 }
9636 }
9637 }
9638 } else {
9639 /* ./compiling//compiling_icode.nit:795 */
9640 if (!once_value_205) {
9641 if (!once_value_206) {
9642 fra.me.REG[6] = BOX_NativeString("Char");
9643 REGB1 = TAG_Int(4);
9644 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9645 once_value_206 = fra.me.REG[6];
9646 register_static_object(&once_value_206);
9647 } else fra.me.REG[6] = once_value_206;
9648 fra.me.REG[6] = fra.me.REG[6];
9649 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9650 once_value_205 = fra.me.REG[6];
9651 register_static_object(&once_value_205);
9652 } else fra.me.REG[6] = once_value_205;
9653 fra.me.REG[6] = fra.me.REG[6];
9654 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
9655 if (UNTAG_Bool(REGB1)) {
9656 } else {
9657 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
9658 REGB1 = REGB2;
9659 }
9660 if (UNTAG_Bool(REGB1)) {
9661 /* ./compiling//compiling_icode.nit:796 */
9662 if (!once_value_207) {
9663 if (!once_value_208) {
9664 fra.me.REG[6] = BOX_NativeString("object_id");
9665 REGB1 = TAG_Int(9);
9666 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9667 once_value_208 = fra.me.REG[6];
9668 register_static_object(&once_value_208);
9669 } else fra.me.REG[6] = once_value_208;
9670 fra.me.REG[6] = fra.me.REG[6];
9671 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9672 once_value_207 = fra.me.REG[6];
9673 register_static_object(&once_value_207);
9674 } else fra.me.REG[6] = once_value_207;
9675 fra.me.REG[6] = fra.me.REG[6];
9676 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9677 if (UNTAG_Bool(REGB1)) {
9678 } else {
9679 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9680 REGB1 = REGB2;
9681 }
9682 if (UNTAG_Bool(REGB1)) {
9683 /* ./compiling//compiling_icode.nit:797 */
9684 REGB1 = TAG_Int(3);
9685 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9686 if (!once_value_209) {
9687 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
9688 REGB1 = TAG_Int(19);
9689 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9690 once_value_209 = fra.me.REG[7];
9691 register_static_object(&once_value_209);
9692 } else fra.me.REG[7] = once_value_209;
9693 fra.me.REG[7] = fra.me.REG[7];
9694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9695 REGB1 = TAG_Int(0);
9696 /* ./../lib/standard//collection//array.nit:278 */
9697 fra.me.REG[7] = fra.me.REG[4];
9698 /* ./../lib/standard//collection//array.nit:280 */
9699 REGB2 = TAG_Int(0);
9700 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9701 if (UNTAG_Bool(REGB0)) {
9702 } else {
9703 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9704 }
9705 /* ./../lib/standard//kernel.nit:233 */
9706 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9707 /* ./../lib/standard//collection//array.nit:280 */
9708 if (UNTAG_Bool(REGB2)) {
9709 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9710 if (UNTAG_Bool(REGB2)) {
9711 } else {
9712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9713 }
9714 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9715 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9716 if (UNTAG_Bool(REGB0)) {
9717 } else {
9718 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9719 }
9720 /* ./../lib/standard//kernel.nit:232 */
9721 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9722 } else {
9723 /* ./../lib/standard//collection//array.nit:280 */
9724 REGB0 = TAG_Bool(false);
9725 REGB2 = REGB0;
9726 }
9727 if (UNTAG_Bool(REGB2)) {
9728 } else {
9729 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9730 }
9731 /* ./../lib/standard//collection//array.nit:281 */
9732 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9733 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9734 if (UNTAG_Bool(REGB2)) {
9735 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9736 }
9737 /* ./../lib/standard//collection//array.nit:718 */
9738 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9739 /* ./../lib/standard//collection//array.nit:281 */
9740 goto label210;
9741 label210: while(0);
9742 /* ./compiling//compiling_icode.nit:797 */
9743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9744 if (!once_value_211) {
9745 fra.me.REG[7] = BOX_NativeString("))");
9746 REGB1 = TAG_Int(2);
9747 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9748 once_value_211 = fra.me.REG[7];
9749 register_static_object(&once_value_211);
9750 } else fra.me.REG[7] = once_value_211;
9751 fra.me.REG[7] = fra.me.REG[7];
9752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9753 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9754 fra.me.REG[5] = fra.me.REG[6];
9755 } else {
9756 /* ./compiling//compiling_icode.nit:798 */
9757 if (!once_value_212) {
9758 if (!once_value_213) {
9759 fra.me.REG[6] = BOX_NativeString("unary -");
9760 REGB1 = TAG_Int(7);
9761 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9762 once_value_213 = fra.me.REG[6];
9763 register_static_object(&once_value_213);
9764 } else fra.me.REG[6] = once_value_213;
9765 fra.me.REG[6] = fra.me.REG[6];
9766 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9767 once_value_212 = fra.me.REG[6];
9768 register_static_object(&once_value_212);
9769 } else fra.me.REG[6] = once_value_212;
9770 fra.me.REG[6] = fra.me.REG[6];
9771 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9772 if (UNTAG_Bool(REGB1)) {
9773 } else {
9774 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9775 REGB1 = REGB2;
9776 }
9777 if (UNTAG_Bool(REGB1)) {
9778 /* ./compiling//compiling_icode.nit:799 */
9779 REGB1 = TAG_Int(3);
9780 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9781 if (!once_value_214) {
9782 fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(");
9783 REGB1 = TAG_Int(21);
9784 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9785 once_value_214 = fra.me.REG[7];
9786 register_static_object(&once_value_214);
9787 } else fra.me.REG[7] = once_value_214;
9788 fra.me.REG[7] = fra.me.REG[7];
9789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9790 REGB1 = TAG_Int(0);
9791 /* ./../lib/standard//collection//array.nit:278 */
9792 fra.me.REG[7] = fra.me.REG[4];
9793 /* ./../lib/standard//collection//array.nit:280 */
9794 REGB2 = TAG_Int(0);
9795 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9796 if (UNTAG_Bool(REGB0)) {
9797 } else {
9798 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9799 }
9800 /* ./../lib/standard//kernel.nit:233 */
9801 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9802 /* ./../lib/standard//collection//array.nit:280 */
9803 if (UNTAG_Bool(REGB2)) {
9804 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9805 if (UNTAG_Bool(REGB2)) {
9806 } else {
9807 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9808 }
9809 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9810 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9811 if (UNTAG_Bool(REGB0)) {
9812 } else {
9813 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9814 }
9815 /* ./../lib/standard//kernel.nit:232 */
9816 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9817 } else {
9818 /* ./../lib/standard//collection//array.nit:280 */
9819 REGB0 = TAG_Bool(false);
9820 REGB2 = REGB0;
9821 }
9822 if (UNTAG_Bool(REGB2)) {
9823 } else {
9824 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9825 }
9826 /* ./../lib/standard//collection//array.nit:281 */
9827 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
9828 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9829 if (UNTAG_Bool(REGB2)) {
9830 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
9831 }
9832 /* ./../lib/standard//collection//array.nit:718 */
9833 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9834 /* ./../lib/standard//collection//array.nit:281 */
9835 goto label215;
9836 label215: while(0);
9837 /* ./compiling//compiling_icode.nit:799 */
9838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9839 if (!once_value_216) {
9840 fra.me.REG[7] = BOX_NativeString("))");
9841 REGB1 = TAG_Int(2);
9842 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9843 once_value_216 = fra.me.REG[7];
9844 register_static_object(&once_value_216);
9845 } else fra.me.REG[7] = once_value_216;
9846 fra.me.REG[7] = fra.me.REG[7];
9847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9848 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9849 fra.me.REG[5] = fra.me.REG[6];
9850 } else {
9851 /* ./compiling//compiling_icode.nit:800 */
9852 if (!once_value_217) {
9853 if (!once_value_218) {
9854 fra.me.REG[6] = BOX_NativeString("output");
9855 REGB1 = TAG_Int(6);
9856 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9857 once_value_218 = fra.me.REG[6];
9858 register_static_object(&once_value_218);
9859 } else fra.me.REG[6] = once_value_218;
9860 fra.me.REG[6] = fra.me.REG[6];
9861 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9862 once_value_217 = fra.me.REG[6];
9863 register_static_object(&once_value_217);
9864 } else fra.me.REG[6] = once_value_217;
9865 fra.me.REG[6] = fra.me.REG[6];
9866 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9867 if (UNTAG_Bool(REGB1)) {
9868 } else {
9869 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9870 REGB1 = REGB2;
9871 }
9872 if (UNTAG_Bool(REGB1)) {
9873 /* ./compiling//compiling_icode.nit:801 */
9874 REGB1 = TAG_Int(3);
9875 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9876 if (!once_value_219) {
9877 fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(");
9878 REGB1 = TAG_Int(39);
9879 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9880 once_value_219 = fra.me.REG[7];
9881 register_static_object(&once_value_219);
9882 } else fra.me.REG[7] = once_value_219;
9883 fra.me.REG[7] = fra.me.REG[7];
9884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9885 REGB1 = TAG_Int(0);
9886 /* ./../lib/standard//collection//array.nit:278 */
9887 fra.me.REG[7] = fra.me.REG[4];
9888 /* ./../lib/standard//collection//array.nit:280 */
9889 REGB2 = TAG_Int(0);
9890 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9891 if (UNTAG_Bool(REGB0)) {
9892 } else {
9893 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9894 }
9895 /* ./../lib/standard//kernel.nit:233 */
9896 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9897 /* ./../lib/standard//collection//array.nit:280 */
9898 if (UNTAG_Bool(REGB2)) {
9899 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9900 if (UNTAG_Bool(REGB2)) {
9901 } else {
9902 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9903 }
9904 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
9905 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9906 if (UNTAG_Bool(REGB0)) {
9907 } else {
9908 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9909 }
9910 /* ./../lib/standard//kernel.nit:232 */
9911 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
9912 } else {
9913 /* ./../lib/standard//collection//array.nit:280 */
9914 REGB0 = TAG_Bool(false);
9915 REGB2 = REGB0;
9916 }
9917 if (UNTAG_Bool(REGB2)) {
9918 } else {
9919 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
9920 }
9921 /* ./../lib/standard//collection//array.nit:281 */
9922 fra.me.REG[7] = ATTR_standard___collection___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_standard___collection___array, 281);
9926 }
9927 /* ./../lib/standard//collection//array.nit:718 */
9928 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
9929 /* ./../lib/standard//collection//array.nit:281 */
9930 goto label220;
9931 label220: while(0);
9932 /* ./compiling//compiling_icode.nit:801 */
9933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9934 if (!once_value_221) {
9935 fra.me.REG[7] = BOX_NativeString("));");
9936 REGB1 = TAG_Int(3);
9937 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9938 once_value_221 = fra.me.REG[7];
9939 register_static_object(&once_value_221);
9940 } else fra.me.REG[7] = once_value_221;
9941 fra.me.REG[7] = fra.me.REG[7];
9942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9943 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
9944 fra.me.REG[5] = fra.me.REG[6];
9945 } else {
9946 /* ./compiling//compiling_icode.nit:802 */
9947 if (!once_value_222) {
9948 if (!once_value_223) {
9949 fra.me.REG[6] = BOX_NativeString("ascii");
9950 REGB1 = TAG_Int(5);
9951 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
9952 once_value_223 = fra.me.REG[6];
9953 register_static_object(&once_value_223);
9954 } else fra.me.REG[6] = once_value_223;
9955 fra.me.REG[6] = fra.me.REG[6];
9956 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9957 once_value_222 = fra.me.REG[6];
9958 register_static_object(&once_value_222);
9959 } else fra.me.REG[6] = once_value_222;
9960 fra.me.REG[6] = fra.me.REG[6];
9961 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
9962 if (UNTAG_Bool(REGB1)) {
9963 } else {
9964 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
9965 REGB1 = REGB2;
9966 }
9967 if (UNTAG_Bool(REGB1)) {
9968 /* ./compiling//compiling_icode.nit:803 */
9969 REGB1 = TAG_Int(3);
9970 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9971 if (!once_value_224) {
9972 fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(");
9973 REGB1 = TAG_Int(34);
9974 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
9975 once_value_224 = fra.me.REG[7];
9976 register_static_object(&once_value_224);
9977 } else fra.me.REG[7] = once_value_224;
9978 fra.me.REG[7] = fra.me.REG[7];
9979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
9980 REGB1 = TAG_Int(0);
9981 /* ./../lib/standard//collection//array.nit:278 */
9982 fra.me.REG[7] = fra.me.REG[4];
9983 /* ./../lib/standard//collection//array.nit:280 */
9984 REGB2 = TAG_Int(0);
9985 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9986 if (UNTAG_Bool(REGB0)) {
9987 } else {
9988 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9989 }
9990 /* ./../lib/standard//kernel.nit:233 */
9991 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
9992 /* ./../lib/standard//collection//array.nit:280 */
9993 if (UNTAG_Bool(REGB2)) {
9994 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
9995 if (UNTAG_Bool(REGB2)) {
9996 } else {
9997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
9998 }
9999 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10000 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10001 if (UNTAG_Bool(REGB0)) {
10002 } else {
10003 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10004 }
10005 /* ./../lib/standard//kernel.nit:232 */
10006 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10007 } else {
10008 /* ./../lib/standard//collection//array.nit:280 */
10009 REGB0 = TAG_Bool(false);
10010 REGB2 = REGB0;
10011 }
10012 if (UNTAG_Bool(REGB2)) {
10013 } else {
10014 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10015 }
10016 /* ./../lib/standard//collection//array.nit:281 */
10017 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10018 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10019 if (UNTAG_Bool(REGB2)) {
10020 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10021 }
10022 /* ./../lib/standard//collection//array.nit:718 */
10023 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10024 /* ./../lib/standard//collection//array.nit:281 */
10025 goto label225;
10026 label225: while(0);
10027 /* ./compiling//compiling_icode.nit:803 */
10028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10029 if (!once_value_226) {
10030 fra.me.REG[7] = BOX_NativeString("))");
10031 REGB1 = TAG_Int(2);
10032 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10033 once_value_226 = fra.me.REG[7];
10034 register_static_object(&once_value_226);
10035 } else fra.me.REG[7] = once_value_226;
10036 fra.me.REG[7] = fra.me.REG[7];
10037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10038 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10039 fra.me.REG[5] = fra.me.REG[6];
10040 } else {
10041 /* ./compiling//compiling_icode.nit:804 */
10042 if (!once_value_227) {
10043 if (!once_value_228) {
10044 fra.me.REG[6] = BOX_NativeString("succ");
10045 REGB1 = TAG_Int(4);
10046 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10047 once_value_228 = fra.me.REG[6];
10048 register_static_object(&once_value_228);
10049 } else fra.me.REG[6] = once_value_228;
10050 fra.me.REG[6] = fra.me.REG[6];
10051 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10052 once_value_227 = fra.me.REG[6];
10053 register_static_object(&once_value_227);
10054 } else fra.me.REG[6] = once_value_227;
10055 fra.me.REG[6] = fra.me.REG[6];
10056 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10057 if (UNTAG_Bool(REGB1)) {
10058 } else {
10059 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10060 REGB1 = REGB2;
10061 }
10062 if (UNTAG_Bool(REGB1)) {
10063 /* ./compiling//compiling_icode.nit:805 */
10064 REGB1 = TAG_Int(3);
10065 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10066 if (!once_value_229) {
10067 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10068 REGB1 = TAG_Int(20);
10069 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10070 once_value_229 = fra.me.REG[7];
10071 register_static_object(&once_value_229);
10072 } else fra.me.REG[7] = once_value_229;
10073 fra.me.REG[7] = fra.me.REG[7];
10074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10075 REGB1 = TAG_Int(0);
10076 /* ./../lib/standard//collection//array.nit:278 */
10077 fra.me.REG[7] = fra.me.REG[4];
10078 /* ./../lib/standard//collection//array.nit:280 */
10079 REGB2 = TAG_Int(0);
10080 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10081 if (UNTAG_Bool(REGB0)) {
10082 } else {
10083 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10084 }
10085 /* ./../lib/standard//kernel.nit:233 */
10086 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10087 /* ./../lib/standard//collection//array.nit:280 */
10088 if (UNTAG_Bool(REGB2)) {
10089 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10090 if (UNTAG_Bool(REGB2)) {
10091 } else {
10092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10093 }
10094 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10095 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10096 if (UNTAG_Bool(REGB0)) {
10097 } else {
10098 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10099 }
10100 /* ./../lib/standard//kernel.nit:232 */
10101 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10102 } else {
10103 /* ./../lib/standard//collection//array.nit:280 */
10104 REGB0 = TAG_Bool(false);
10105 REGB2 = REGB0;
10106 }
10107 if (UNTAG_Bool(REGB2)) {
10108 } else {
10109 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10110 }
10111 /* ./../lib/standard//collection//array.nit:281 */
10112 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10113 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10114 if (UNTAG_Bool(REGB2)) {
10115 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10116 }
10117 /* ./../lib/standard//collection//array.nit:718 */
10118 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10119 /* ./../lib/standard//collection//array.nit:281 */
10120 goto label230;
10121 label230: while(0);
10122 /* ./compiling//compiling_icode.nit:805 */
10123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10124 if (!once_value_231) {
10125 fra.me.REG[7] = BOX_NativeString(")+1)");
10126 REGB1 = TAG_Int(4);
10127 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10128 once_value_231 = fra.me.REG[7];
10129 register_static_object(&once_value_231);
10130 } else fra.me.REG[7] = once_value_231;
10131 fra.me.REG[7] = fra.me.REG[7];
10132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10133 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10134 fra.me.REG[5] = fra.me.REG[6];
10135 } else {
10136 /* ./compiling//compiling_icode.nit:806 */
10137 if (!once_value_232) {
10138 if (!once_value_233) {
10139 fra.me.REG[6] = BOX_NativeString("prec");
10140 REGB1 = TAG_Int(4);
10141 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10142 once_value_233 = fra.me.REG[6];
10143 register_static_object(&once_value_233);
10144 } else fra.me.REG[6] = once_value_233;
10145 fra.me.REG[6] = fra.me.REG[6];
10146 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10147 once_value_232 = fra.me.REG[6];
10148 register_static_object(&once_value_232);
10149 } else fra.me.REG[6] = once_value_232;
10150 fra.me.REG[6] = fra.me.REG[6];
10151 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10152 if (UNTAG_Bool(REGB1)) {
10153 } else {
10154 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10155 REGB1 = REGB2;
10156 }
10157 if (UNTAG_Bool(REGB1)) {
10158 /* ./compiling//compiling_icode.nit:807 */
10159 REGB1 = TAG_Int(3);
10160 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10161 if (!once_value_234) {
10162 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10163 REGB1 = TAG_Int(20);
10164 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10165 once_value_234 = fra.me.REG[7];
10166 register_static_object(&once_value_234);
10167 } else fra.me.REG[7] = once_value_234;
10168 fra.me.REG[7] = fra.me.REG[7];
10169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10170 REGB1 = TAG_Int(0);
10171 /* ./../lib/standard//collection//array.nit:278 */
10172 fra.me.REG[7] = fra.me.REG[4];
10173 /* ./../lib/standard//collection//array.nit:280 */
10174 REGB2 = TAG_Int(0);
10175 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10176 if (UNTAG_Bool(REGB0)) {
10177 } else {
10178 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10179 }
10180 /* ./../lib/standard//kernel.nit:233 */
10181 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10182 /* ./../lib/standard//collection//array.nit:280 */
10183 if (UNTAG_Bool(REGB2)) {
10184 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10185 if (UNTAG_Bool(REGB2)) {
10186 } else {
10187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10188 }
10189 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10190 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10191 if (UNTAG_Bool(REGB0)) {
10192 } else {
10193 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10194 }
10195 /* ./../lib/standard//kernel.nit:232 */
10196 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10197 } else {
10198 /* ./../lib/standard//collection//array.nit:280 */
10199 REGB0 = TAG_Bool(false);
10200 REGB2 = REGB0;
10201 }
10202 if (UNTAG_Bool(REGB2)) {
10203 } else {
10204 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10205 }
10206 /* ./../lib/standard//collection//array.nit:281 */
10207 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10208 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10209 if (UNTAG_Bool(REGB2)) {
10210 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10211 }
10212 /* ./../lib/standard//collection//array.nit:718 */
10213 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10214 /* ./../lib/standard//collection//array.nit:281 */
10215 goto label235;
10216 label235: while(0);
10217 /* ./compiling//compiling_icode.nit:807 */
10218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10219 if (!once_value_236) {
10220 fra.me.REG[7] = BOX_NativeString(")-1)");
10221 REGB1 = TAG_Int(4);
10222 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10223 once_value_236 = fra.me.REG[7];
10224 register_static_object(&once_value_236);
10225 } else fra.me.REG[7] = once_value_236;
10226 fra.me.REG[7] = fra.me.REG[7];
10227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10228 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10229 fra.me.REG[5] = fra.me.REG[6];
10230 } else {
10231 /* ./compiling//compiling_icode.nit:808 */
10232 if (!once_value_237) {
10233 if (!once_value_238) {
10234 fra.me.REG[6] = BOX_NativeString("to_i");
10235 REGB1 = TAG_Int(4);
10236 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10237 once_value_238 = fra.me.REG[6];
10238 register_static_object(&once_value_238);
10239 } else fra.me.REG[6] = once_value_238;
10240 fra.me.REG[6] = fra.me.REG[6];
10241 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10242 once_value_237 = fra.me.REG[6];
10243 register_static_object(&once_value_237);
10244 } else fra.me.REG[6] = once_value_237;
10245 fra.me.REG[6] = fra.me.REG[6];
10246 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10247 if (UNTAG_Bool(REGB1)) {
10248 } else {
10249 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10250 REGB1 = REGB2;
10251 }
10252 if (UNTAG_Bool(REGB1)) {
10253 /* ./compiling//compiling_icode.nit:809 */
10254 REGB1 = TAG_Int(3);
10255 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10256 if (!once_value_239) {
10257 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char(");
10258 REGB1 = TAG_Int(19);
10259 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10260 once_value_239 = fra.me.REG[7];
10261 register_static_object(&once_value_239);
10262 } else fra.me.REG[7] = once_value_239;
10263 fra.me.REG[7] = fra.me.REG[7];
10264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10265 REGB1 = TAG_Int(0);
10266 /* ./../lib/standard//collection//array.nit:278 */
10267 fra.me.REG[7] = fra.me.REG[4];
10268 /* ./../lib/standard//collection//array.nit:280 */
10269 REGB2 = TAG_Int(0);
10270 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10271 if (UNTAG_Bool(REGB0)) {
10272 } else {
10273 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10274 }
10275 /* ./../lib/standard//kernel.nit:233 */
10276 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10277 /* ./../lib/standard//collection//array.nit:280 */
10278 if (UNTAG_Bool(REGB2)) {
10279 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10280 if (UNTAG_Bool(REGB2)) {
10281 } else {
10282 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10283 }
10284 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10285 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10286 if (UNTAG_Bool(REGB0)) {
10287 } else {
10288 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10289 }
10290 /* ./../lib/standard//kernel.nit:232 */
10291 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10292 } else {
10293 /* ./../lib/standard//collection//array.nit:280 */
10294 REGB0 = TAG_Bool(false);
10295 REGB2 = REGB0;
10296 }
10297 if (UNTAG_Bool(REGB2)) {
10298 } else {
10299 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10300 }
10301 /* ./../lib/standard//collection//array.nit:281 */
10302 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10303 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10304 if (UNTAG_Bool(REGB2)) {
10305 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10306 }
10307 /* ./../lib/standard//collection//array.nit:718 */
10308 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10309 /* ./../lib/standard//collection//array.nit:281 */
10310 goto label240;
10311 label240: while(0);
10312 /* ./compiling//compiling_icode.nit:809 */
10313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10314 if (!once_value_241) {
10315 fra.me.REG[7] = BOX_NativeString(")-'0')");
10316 REGB1 = TAG_Int(6);
10317 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10318 once_value_241 = fra.me.REG[7];
10319 register_static_object(&once_value_241);
10320 } else fra.me.REG[7] = once_value_241;
10321 fra.me.REG[7] = fra.me.REG[7];
10322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10323 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10324 fra.me.REG[5] = fra.me.REG[6];
10325 } else {
10326 /* ./compiling//compiling_icode.nit:810 */
10327 if (!once_value_242) {
10328 if (!once_value_243) {
10329 fra.me.REG[6] = BOX_NativeString("+");
10330 REGB1 = TAG_Int(1);
10331 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10332 once_value_243 = fra.me.REG[6];
10333 register_static_object(&once_value_243);
10334 } else fra.me.REG[6] = once_value_243;
10335 fra.me.REG[6] = fra.me.REG[6];
10336 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10337 once_value_242 = fra.me.REG[6];
10338 register_static_object(&once_value_242);
10339 } else fra.me.REG[6] = once_value_242;
10340 fra.me.REG[6] = fra.me.REG[6];
10341 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10342 if (UNTAG_Bool(REGB1)) {
10343 } else {
10344 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10345 REGB1 = REGB2;
10346 }
10347 if (UNTAG_Bool(REGB1)) {
10348 /* ./compiling//compiling_icode.nit:811 */
10349 REGB1 = TAG_Int(5);
10350 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10351 if (!once_value_244) {
10352 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10353 REGB1 = TAG_Int(20);
10354 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10355 once_value_244 = fra.me.REG[7];
10356 register_static_object(&once_value_244);
10357 } else fra.me.REG[7] = once_value_244;
10358 fra.me.REG[7] = fra.me.REG[7];
10359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10360 REGB1 = TAG_Int(0);
10361 /* ./../lib/standard//collection//array.nit:278 */
10362 fra.me.REG[7] = fra.me.REG[4];
10363 /* ./../lib/standard//collection//array.nit:280 */
10364 REGB2 = TAG_Int(0);
10365 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10366 if (UNTAG_Bool(REGB0)) {
10367 } else {
10368 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10369 }
10370 /* ./../lib/standard//kernel.nit:233 */
10371 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10372 /* ./../lib/standard//collection//array.nit:280 */
10373 if (UNTAG_Bool(REGB2)) {
10374 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10375 if (UNTAG_Bool(REGB2)) {
10376 } else {
10377 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10378 }
10379 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10380 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10381 if (UNTAG_Bool(REGB0)) {
10382 } else {
10383 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10384 }
10385 /* ./../lib/standard//kernel.nit:232 */
10386 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10387 } else {
10388 /* ./../lib/standard//collection//array.nit:280 */
10389 REGB0 = TAG_Bool(false);
10390 REGB2 = REGB0;
10391 }
10392 if (UNTAG_Bool(REGB2)) {
10393 } else {
10394 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10395 }
10396 /* ./../lib/standard//collection//array.nit:281 */
10397 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10398 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10399 if (UNTAG_Bool(REGB2)) {
10400 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10401 }
10402 /* ./../lib/standard//collection//array.nit:718 */
10403 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10404 /* ./../lib/standard//collection//array.nit:281 */
10405 goto label245;
10406 label245: while(0);
10407 /* ./compiling//compiling_icode.nit:811 */
10408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10409 if (!once_value_246) {
10410 fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
10411 REGB1 = TAG_Int(13);
10412 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10413 once_value_246 = fra.me.REG[7];
10414 register_static_object(&once_value_246);
10415 } else fra.me.REG[7] = once_value_246;
10416 fra.me.REG[7] = fra.me.REG[7];
10417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10418 REGB1 = TAG_Int(1);
10419 /* ./../lib/standard//collection//array.nit:278 */
10420 fra.me.REG[7] = fra.me.REG[4];
10421 /* ./../lib/standard//collection//array.nit:280 */
10422 REGB2 = TAG_Int(0);
10423 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10424 if (UNTAG_Bool(REGB0)) {
10425 } else {
10426 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10427 }
10428 /* ./../lib/standard//kernel.nit:233 */
10429 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10430 /* ./../lib/standard//collection//array.nit:280 */
10431 if (UNTAG_Bool(REGB2)) {
10432 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10433 if (UNTAG_Bool(REGB2)) {
10434 } else {
10435 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10436 }
10437 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10438 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10439 if (UNTAG_Bool(REGB0)) {
10440 } else {
10441 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10442 }
10443 /* ./../lib/standard//kernel.nit:232 */
10444 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10445 } else {
10446 /* ./../lib/standard//collection//array.nit:280 */
10447 REGB0 = TAG_Bool(false);
10448 REGB2 = REGB0;
10449 }
10450 if (UNTAG_Bool(REGB2)) {
10451 } else {
10452 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10453 }
10454 /* ./../lib/standard//collection//array.nit:281 */
10455 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10456 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10457 if (UNTAG_Bool(REGB2)) {
10458 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10459 }
10460 /* ./../lib/standard//collection//array.nit:718 */
10461 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10462 /* ./../lib/standard//collection//array.nit:281 */
10463 goto label247;
10464 label247: while(0);
10465 /* ./compiling//compiling_icode.nit:811 */
10466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10467 if (!once_value_248) {
10468 fra.me.REG[7] = BOX_NativeString("))");
10469 REGB1 = TAG_Int(2);
10470 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10471 once_value_248 = fra.me.REG[7];
10472 register_static_object(&once_value_248);
10473 } else fra.me.REG[7] = once_value_248;
10474 fra.me.REG[7] = fra.me.REG[7];
10475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10476 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10477 fra.me.REG[5] = fra.me.REG[6];
10478 } else {
10479 /* ./compiling//compiling_icode.nit:812 */
10480 if (!once_value_249) {
10481 if (!once_value_250) {
10482 fra.me.REG[6] = BOX_NativeString("-");
10483 REGB1 = TAG_Int(1);
10484 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10485 once_value_250 = fra.me.REG[6];
10486 register_static_object(&once_value_250);
10487 } else fra.me.REG[6] = once_value_250;
10488 fra.me.REG[6] = fra.me.REG[6];
10489 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10490 once_value_249 = fra.me.REG[6];
10491 register_static_object(&once_value_249);
10492 } else fra.me.REG[6] = once_value_249;
10493 fra.me.REG[6] = fra.me.REG[6];
10494 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10495 if (UNTAG_Bool(REGB1)) {
10496 } else {
10497 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10498 REGB1 = REGB2;
10499 }
10500 if (UNTAG_Bool(REGB1)) {
10501 /* ./compiling//compiling_icode.nit:813 */
10502 REGB1 = TAG_Int(5);
10503 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10504 if (!once_value_251) {
10505 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10506 REGB1 = TAG_Int(20);
10507 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10508 once_value_251 = fra.me.REG[7];
10509 register_static_object(&once_value_251);
10510 } else fra.me.REG[7] = once_value_251;
10511 fra.me.REG[7] = fra.me.REG[7];
10512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10513 REGB1 = TAG_Int(0);
10514 /* ./../lib/standard//collection//array.nit:278 */
10515 fra.me.REG[7] = fra.me.REG[4];
10516 /* ./../lib/standard//collection//array.nit:280 */
10517 REGB2 = TAG_Int(0);
10518 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10519 if (UNTAG_Bool(REGB0)) {
10520 } else {
10521 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10522 }
10523 /* ./../lib/standard//kernel.nit:233 */
10524 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10525 /* ./../lib/standard//collection//array.nit:280 */
10526 if (UNTAG_Bool(REGB2)) {
10527 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10528 if (UNTAG_Bool(REGB2)) {
10529 } else {
10530 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10531 }
10532 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10533 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10534 if (UNTAG_Bool(REGB0)) {
10535 } else {
10536 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10537 }
10538 /* ./../lib/standard//kernel.nit:232 */
10539 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10540 } else {
10541 /* ./../lib/standard//collection//array.nit:280 */
10542 REGB0 = TAG_Bool(false);
10543 REGB2 = REGB0;
10544 }
10545 if (UNTAG_Bool(REGB2)) {
10546 } else {
10547 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10548 }
10549 /* ./../lib/standard//collection//array.nit:281 */
10550 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10551 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10552 if (UNTAG_Bool(REGB2)) {
10553 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10554 }
10555 /* ./../lib/standard//collection//array.nit:718 */
10556 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10557 /* ./../lib/standard//collection//array.nit:281 */
10558 goto label252;
10559 label252: while(0);
10560 /* ./compiling//compiling_icode.nit:813 */
10561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10562 if (!once_value_253) {
10563 fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
10564 REGB1 = TAG_Int(13);
10565 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10566 once_value_253 = fra.me.REG[7];
10567 register_static_object(&once_value_253);
10568 } else fra.me.REG[7] = once_value_253;
10569 fra.me.REG[7] = fra.me.REG[7];
10570 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10571 REGB1 = TAG_Int(1);
10572 /* ./../lib/standard//collection//array.nit:278 */
10573 fra.me.REG[7] = fra.me.REG[4];
10574 /* ./../lib/standard//collection//array.nit:280 */
10575 REGB2 = TAG_Int(0);
10576 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10577 if (UNTAG_Bool(REGB0)) {
10578 } else {
10579 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10580 }
10581 /* ./../lib/standard//kernel.nit:233 */
10582 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10583 /* ./../lib/standard//collection//array.nit:280 */
10584 if (UNTAG_Bool(REGB2)) {
10585 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10586 if (UNTAG_Bool(REGB2)) {
10587 } else {
10588 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10589 }
10590 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10591 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10592 if (UNTAG_Bool(REGB0)) {
10593 } else {
10594 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10595 }
10596 /* ./../lib/standard//kernel.nit:232 */
10597 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10598 } else {
10599 /* ./../lib/standard//collection//array.nit:280 */
10600 REGB0 = TAG_Bool(false);
10601 REGB2 = REGB0;
10602 }
10603 if (UNTAG_Bool(REGB2)) {
10604 } else {
10605 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10606 }
10607 /* ./../lib/standard//collection//array.nit:281 */
10608 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10609 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10610 if (UNTAG_Bool(REGB2)) {
10611 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10612 }
10613 /* ./../lib/standard//collection//array.nit:718 */
10614 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10615 /* ./../lib/standard//collection//array.nit:281 */
10616 goto label254;
10617 label254: while(0);
10618 /* ./compiling//compiling_icode.nit:813 */
10619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10620 if (!once_value_255) {
10621 fra.me.REG[7] = BOX_NativeString("))");
10622 REGB1 = TAG_Int(2);
10623 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10624 once_value_255 = fra.me.REG[7];
10625 register_static_object(&once_value_255);
10626 } else fra.me.REG[7] = once_value_255;
10627 fra.me.REG[7] = fra.me.REG[7];
10628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10629 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10630 fra.me.REG[5] = fra.me.REG[6];
10631 } else {
10632 /* ./compiling//compiling_icode.nit:814 */
10633 if (!once_value_256) {
10634 if (!once_value_257) {
10635 fra.me.REG[6] = BOX_NativeString("*");
10636 REGB1 = TAG_Int(1);
10637 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10638 once_value_257 = fra.me.REG[6];
10639 register_static_object(&once_value_257);
10640 } else fra.me.REG[6] = once_value_257;
10641 fra.me.REG[6] = fra.me.REG[6];
10642 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10643 once_value_256 = fra.me.REG[6];
10644 register_static_object(&once_value_256);
10645 } else fra.me.REG[6] = once_value_256;
10646 fra.me.REG[6] = fra.me.REG[6];
10647 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10648 if (UNTAG_Bool(REGB1)) {
10649 } else {
10650 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10651 REGB1 = REGB2;
10652 }
10653 if (UNTAG_Bool(REGB1)) {
10654 /* ./compiling//compiling_icode.nit:815 */
10655 REGB1 = TAG_Int(5);
10656 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10657 if (!once_value_258) {
10658 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10659 REGB1 = TAG_Int(20);
10660 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10661 once_value_258 = fra.me.REG[7];
10662 register_static_object(&once_value_258);
10663 } else fra.me.REG[7] = once_value_258;
10664 fra.me.REG[7] = fra.me.REG[7];
10665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10666 REGB1 = TAG_Int(0);
10667 /* ./../lib/standard//collection//array.nit:278 */
10668 fra.me.REG[7] = fra.me.REG[4];
10669 /* ./../lib/standard//collection//array.nit:280 */
10670 REGB2 = TAG_Int(0);
10671 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10672 if (UNTAG_Bool(REGB0)) {
10673 } else {
10674 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10675 }
10676 /* ./../lib/standard//kernel.nit:233 */
10677 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10678 /* ./../lib/standard//collection//array.nit:280 */
10679 if (UNTAG_Bool(REGB2)) {
10680 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10681 if (UNTAG_Bool(REGB2)) {
10682 } else {
10683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10684 }
10685 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10686 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10687 if (UNTAG_Bool(REGB0)) {
10688 } else {
10689 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10690 }
10691 /* ./../lib/standard//kernel.nit:232 */
10692 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10693 } else {
10694 /* ./../lib/standard//collection//array.nit:280 */
10695 REGB0 = TAG_Bool(false);
10696 REGB2 = REGB0;
10697 }
10698 if (UNTAG_Bool(REGB2)) {
10699 } else {
10700 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10701 }
10702 /* ./../lib/standard//collection//array.nit:281 */
10703 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10704 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10705 if (UNTAG_Bool(REGB2)) {
10706 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10707 }
10708 /* ./../lib/standard//collection//array.nit:718 */
10709 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10710 /* ./../lib/standard//collection//array.nit:281 */
10711 goto label259;
10712 label259: while(0);
10713 /* ./compiling//compiling_icode.nit:815 */
10714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10715 if (!once_value_260) {
10716 fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
10717 REGB1 = TAG_Int(13);
10718 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10719 once_value_260 = fra.me.REG[7];
10720 register_static_object(&once_value_260);
10721 } else fra.me.REG[7] = once_value_260;
10722 fra.me.REG[7] = fra.me.REG[7];
10723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10724 REGB1 = TAG_Int(1);
10725 /* ./../lib/standard//collection//array.nit:278 */
10726 fra.me.REG[7] = fra.me.REG[4];
10727 /* ./../lib/standard//collection//array.nit:280 */
10728 REGB2 = TAG_Int(0);
10729 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10730 if (UNTAG_Bool(REGB0)) {
10731 } else {
10732 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10733 }
10734 /* ./../lib/standard//kernel.nit:233 */
10735 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10736 /* ./../lib/standard//collection//array.nit:280 */
10737 if (UNTAG_Bool(REGB2)) {
10738 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10739 if (UNTAG_Bool(REGB2)) {
10740 } else {
10741 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10742 }
10743 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10744 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10745 if (UNTAG_Bool(REGB0)) {
10746 } else {
10747 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10748 }
10749 /* ./../lib/standard//kernel.nit:232 */
10750 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10751 } else {
10752 /* ./../lib/standard//collection//array.nit:280 */
10753 REGB0 = TAG_Bool(false);
10754 REGB2 = REGB0;
10755 }
10756 if (UNTAG_Bool(REGB2)) {
10757 } else {
10758 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10759 }
10760 /* ./../lib/standard//collection//array.nit:281 */
10761 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10762 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10763 if (UNTAG_Bool(REGB2)) {
10764 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10765 }
10766 /* ./../lib/standard//collection//array.nit:718 */
10767 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10768 /* ./../lib/standard//collection//array.nit:281 */
10769 goto label261;
10770 label261: while(0);
10771 /* ./compiling//compiling_icode.nit:815 */
10772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10773 if (!once_value_262) {
10774 fra.me.REG[7] = BOX_NativeString("))");
10775 REGB1 = TAG_Int(2);
10776 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10777 once_value_262 = fra.me.REG[7];
10778 register_static_object(&once_value_262);
10779 } else fra.me.REG[7] = once_value_262;
10780 fra.me.REG[7] = fra.me.REG[7];
10781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10782 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10783 fra.me.REG[5] = fra.me.REG[6];
10784 } else {
10785 /* ./compiling//compiling_icode.nit:816 */
10786 if (!once_value_263) {
10787 if (!once_value_264) {
10788 fra.me.REG[6] = BOX_NativeString("/");
10789 REGB1 = TAG_Int(1);
10790 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10791 once_value_264 = fra.me.REG[6];
10792 register_static_object(&once_value_264);
10793 } else fra.me.REG[6] = once_value_264;
10794 fra.me.REG[6] = fra.me.REG[6];
10795 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10796 once_value_263 = fra.me.REG[6];
10797 register_static_object(&once_value_263);
10798 } else fra.me.REG[6] = once_value_263;
10799 fra.me.REG[6] = fra.me.REG[6];
10800 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10801 if (UNTAG_Bool(REGB1)) {
10802 } else {
10803 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10804 REGB1 = REGB2;
10805 }
10806 if (UNTAG_Bool(REGB1)) {
10807 /* ./compiling//compiling_icode.nit:817 */
10808 REGB1 = TAG_Int(5);
10809 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10810 if (!once_value_265) {
10811 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10812 REGB1 = TAG_Int(20);
10813 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10814 once_value_265 = fra.me.REG[7];
10815 register_static_object(&once_value_265);
10816 } else fra.me.REG[7] = once_value_265;
10817 fra.me.REG[7] = fra.me.REG[7];
10818 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10819 REGB1 = TAG_Int(0);
10820 /* ./../lib/standard//collection//array.nit:278 */
10821 fra.me.REG[7] = fra.me.REG[4];
10822 /* ./../lib/standard//collection//array.nit:280 */
10823 REGB2 = TAG_Int(0);
10824 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10825 if (UNTAG_Bool(REGB0)) {
10826 } else {
10827 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10828 }
10829 /* ./../lib/standard//kernel.nit:233 */
10830 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10831 /* ./../lib/standard//collection//array.nit:280 */
10832 if (UNTAG_Bool(REGB2)) {
10833 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10834 if (UNTAG_Bool(REGB2)) {
10835 } else {
10836 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10837 }
10838 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10839 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10840 if (UNTAG_Bool(REGB0)) {
10841 } else {
10842 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10843 }
10844 /* ./../lib/standard//kernel.nit:232 */
10845 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10846 } else {
10847 /* ./../lib/standard//collection//array.nit:280 */
10848 REGB0 = TAG_Bool(false);
10849 REGB2 = REGB0;
10850 }
10851 if (UNTAG_Bool(REGB2)) {
10852 } else {
10853 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10854 }
10855 /* ./../lib/standard//collection//array.nit:281 */
10856 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10857 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10858 if (UNTAG_Bool(REGB2)) {
10859 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10860 }
10861 /* ./../lib/standard//collection//array.nit:718 */
10862 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10863 /* ./../lib/standard//collection//array.nit:281 */
10864 goto label266;
10865 label266: while(0);
10866 /* ./compiling//compiling_icode.nit:817 */
10867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10868 if (!once_value_267) {
10869 fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
10870 REGB1 = TAG_Int(13);
10871 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10872 once_value_267 = fra.me.REG[7];
10873 register_static_object(&once_value_267);
10874 } else fra.me.REG[7] = once_value_267;
10875 fra.me.REG[7] = fra.me.REG[7];
10876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10877 REGB1 = TAG_Int(1);
10878 /* ./../lib/standard//collection//array.nit:278 */
10879 fra.me.REG[7] = fra.me.REG[4];
10880 /* ./../lib/standard//collection//array.nit:280 */
10881 REGB2 = TAG_Int(0);
10882 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10883 if (UNTAG_Bool(REGB0)) {
10884 } else {
10885 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10886 }
10887 /* ./../lib/standard//kernel.nit:233 */
10888 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10889 /* ./../lib/standard//collection//array.nit:280 */
10890 if (UNTAG_Bool(REGB2)) {
10891 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10892 if (UNTAG_Bool(REGB2)) {
10893 } else {
10894 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10895 }
10896 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10897 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10898 if (UNTAG_Bool(REGB0)) {
10899 } else {
10900 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10901 }
10902 /* ./../lib/standard//kernel.nit:232 */
10903 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10904 } else {
10905 /* ./../lib/standard//collection//array.nit:280 */
10906 REGB0 = TAG_Bool(false);
10907 REGB2 = REGB0;
10908 }
10909 if (UNTAG_Bool(REGB2)) {
10910 } else {
10911 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
10912 }
10913 /* ./../lib/standard//collection//array.nit:281 */
10914 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
10915 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10916 if (UNTAG_Bool(REGB2)) {
10917 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
10918 }
10919 /* ./../lib/standard//collection//array.nit:718 */
10920 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
10921 /* ./../lib/standard//collection//array.nit:281 */
10922 goto label268;
10923 label268: while(0);
10924 /* ./compiling//compiling_icode.nit:817 */
10925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10926 if (!once_value_269) {
10927 fra.me.REG[7] = BOX_NativeString("))");
10928 REGB1 = TAG_Int(2);
10929 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10930 once_value_269 = fra.me.REG[7];
10931 register_static_object(&once_value_269);
10932 } else fra.me.REG[7] = once_value_269;
10933 fra.me.REG[7] = fra.me.REG[7];
10934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10935 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
10936 fra.me.REG[5] = fra.me.REG[6];
10937 } else {
10938 /* ./compiling//compiling_icode.nit:818 */
10939 if (!once_value_270) {
10940 if (!once_value_271) {
10941 fra.me.REG[6] = BOX_NativeString("%");
10942 REGB1 = TAG_Int(1);
10943 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
10944 once_value_271 = fra.me.REG[6];
10945 register_static_object(&once_value_271);
10946 } else fra.me.REG[6] = once_value_271;
10947 fra.me.REG[6] = fra.me.REG[6];
10948 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
10949 once_value_270 = fra.me.REG[6];
10950 register_static_object(&once_value_270);
10951 } else fra.me.REG[6] = once_value_270;
10952 fra.me.REG[6] = fra.me.REG[6];
10953 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
10954 if (UNTAG_Bool(REGB1)) {
10955 } else {
10956 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
10957 REGB1 = REGB2;
10958 }
10959 if (UNTAG_Bool(REGB1)) {
10960 /* ./compiling//compiling_icode.nit:819 */
10961 REGB1 = TAG_Int(5);
10962 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10963 if (!once_value_272) {
10964 fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char(");
10965 REGB1 = TAG_Int(20);
10966 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
10967 once_value_272 = fra.me.REG[7];
10968 register_static_object(&once_value_272);
10969 } else fra.me.REG[7] = once_value_272;
10970 fra.me.REG[7] = fra.me.REG[7];
10971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10972 REGB1 = TAG_Int(0);
10973 /* ./../lib/standard//collection//array.nit:278 */
10974 fra.me.REG[7] = fra.me.REG[4];
10975 /* ./../lib/standard//collection//array.nit:280 */
10976 REGB2 = TAG_Int(0);
10977 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10978 if (UNTAG_Bool(REGB0)) {
10979 } else {
10980 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10981 }
10982 /* ./../lib/standard//kernel.nit:233 */
10983 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
10984 /* ./../lib/standard//collection//array.nit:280 */
10985 if (UNTAG_Bool(REGB2)) {
10986 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
10987 if (UNTAG_Bool(REGB2)) {
10988 } else {
10989 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
10990 }
10991 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
10992 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10993 if (UNTAG_Bool(REGB0)) {
10994 } else {
10995 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10996 }
10997 /* ./../lib/standard//kernel.nit:232 */
10998 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
10999 } else {
11000 /* ./../lib/standard//collection//array.nit:280 */
11001 REGB0 = TAG_Bool(false);
11002 REGB2 = REGB0;
11003 }
11004 if (UNTAG_Bool(REGB2)) {
11005 } else {
11006 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11007 }
11008 /* ./../lib/standard//collection//array.nit:281 */
11009 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11010 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11011 if (UNTAG_Bool(REGB2)) {
11012 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11013 }
11014 /* ./../lib/standard//collection//array.nit:718 */
11015 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11016 /* ./../lib/standard//collection//array.nit:281 */
11017 goto label273;
11018 label273: while(0);
11019 /* ./compiling//compiling_icode.nit:819 */
11020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11021 if (!once_value_274) {
11022 fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
11023 REGB1 = TAG_Int(13);
11024 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11025 once_value_274 = fra.me.REG[7];
11026 register_static_object(&once_value_274);
11027 } else fra.me.REG[7] = once_value_274;
11028 fra.me.REG[7] = fra.me.REG[7];
11029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11030 REGB1 = TAG_Int(1);
11031 /* ./../lib/standard//collection//array.nit:278 */
11032 fra.me.REG[7] = fra.me.REG[4];
11033 /* ./../lib/standard//collection//array.nit:280 */
11034 REGB2 = TAG_Int(0);
11035 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11036 if (UNTAG_Bool(REGB0)) {
11037 } else {
11038 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11039 }
11040 /* ./../lib/standard//kernel.nit:233 */
11041 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11042 /* ./../lib/standard//collection//array.nit:280 */
11043 if (UNTAG_Bool(REGB2)) {
11044 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11045 if (UNTAG_Bool(REGB2)) {
11046 } else {
11047 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11048 }
11049 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11050 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11051 if (UNTAG_Bool(REGB0)) {
11052 } else {
11053 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11054 }
11055 /* ./../lib/standard//kernel.nit:232 */
11056 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11057 } else {
11058 /* ./../lib/standard//collection//array.nit:280 */
11059 REGB0 = TAG_Bool(false);
11060 REGB2 = REGB0;
11061 }
11062 if (UNTAG_Bool(REGB2)) {
11063 } else {
11064 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11065 }
11066 /* ./../lib/standard//collection//array.nit:281 */
11067 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11068 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11069 if (UNTAG_Bool(REGB2)) {
11070 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11071 }
11072 /* ./../lib/standard//collection//array.nit:718 */
11073 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11074 /* ./../lib/standard//collection//array.nit:281 */
11075 goto label275;
11076 label275: while(0);
11077 /* ./compiling//compiling_icode.nit:819 */
11078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11079 if (!once_value_276) {
11080 fra.me.REG[7] = BOX_NativeString("))");
11081 REGB1 = TAG_Int(2);
11082 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11083 once_value_276 = fra.me.REG[7];
11084 register_static_object(&once_value_276);
11085 } else fra.me.REG[7] = once_value_276;
11086 fra.me.REG[7] = fra.me.REG[7];
11087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11088 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11089 fra.me.REG[5] = fra.me.REG[6];
11090 } else {
11091 /* ./compiling//compiling_icode.nit:820 */
11092 if (!once_value_277) {
11093 if (!once_value_278) {
11094 fra.me.REG[6] = BOX_NativeString("<");
11095 REGB1 = TAG_Int(1);
11096 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11097 once_value_278 = fra.me.REG[6];
11098 register_static_object(&once_value_278);
11099 } else fra.me.REG[6] = once_value_278;
11100 fra.me.REG[6] = fra.me.REG[6];
11101 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11102 once_value_277 = fra.me.REG[6];
11103 register_static_object(&once_value_277);
11104 } else fra.me.REG[6] = once_value_277;
11105 fra.me.REG[6] = fra.me.REG[6];
11106 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11107 if (UNTAG_Bool(REGB1)) {
11108 } else {
11109 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11110 REGB1 = REGB2;
11111 }
11112 if (UNTAG_Bool(REGB1)) {
11113 /* ./compiling//compiling_icode.nit:821 */
11114 REGB1 = TAG_Int(5);
11115 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11116 if (!once_value_279) {
11117 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11118 REGB1 = TAG_Int(20);
11119 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11120 once_value_279 = fra.me.REG[7];
11121 register_static_object(&once_value_279);
11122 } else fra.me.REG[7] = once_value_279;
11123 fra.me.REG[7] = fra.me.REG[7];
11124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11125 REGB1 = TAG_Int(0);
11126 /* ./../lib/standard//collection//array.nit:278 */
11127 fra.me.REG[7] = fra.me.REG[4];
11128 /* ./../lib/standard//collection//array.nit:280 */
11129 REGB2 = TAG_Int(0);
11130 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11131 if (UNTAG_Bool(REGB0)) {
11132 } else {
11133 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11134 }
11135 /* ./../lib/standard//kernel.nit:233 */
11136 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11137 /* ./../lib/standard//collection//array.nit:280 */
11138 if (UNTAG_Bool(REGB2)) {
11139 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11140 if (UNTAG_Bool(REGB2)) {
11141 } else {
11142 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11143 }
11144 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11145 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11146 if (UNTAG_Bool(REGB0)) {
11147 } else {
11148 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11149 }
11150 /* ./../lib/standard//kernel.nit:232 */
11151 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11152 } else {
11153 /* ./../lib/standard//collection//array.nit:280 */
11154 REGB0 = TAG_Bool(false);
11155 REGB2 = REGB0;
11156 }
11157 if (UNTAG_Bool(REGB2)) {
11158 } else {
11159 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11160 }
11161 /* ./../lib/standard//collection//array.nit:281 */
11162 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11163 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11164 if (UNTAG_Bool(REGB2)) {
11165 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11166 }
11167 /* ./../lib/standard//collection//array.nit:718 */
11168 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11169 /* ./../lib/standard//collection//array.nit:281 */
11170 goto label280;
11171 label280: while(0);
11172 /* ./compiling//compiling_icode.nit:821 */
11173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11174 if (!once_value_281) {
11175 fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
11176 REGB1 = TAG_Int(13);
11177 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11178 once_value_281 = fra.me.REG[7];
11179 register_static_object(&once_value_281);
11180 } else fra.me.REG[7] = once_value_281;
11181 fra.me.REG[7] = fra.me.REG[7];
11182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11183 REGB1 = TAG_Int(1);
11184 /* ./../lib/standard//collection//array.nit:278 */
11185 fra.me.REG[7] = fra.me.REG[4];
11186 /* ./../lib/standard//collection//array.nit:280 */
11187 REGB2 = TAG_Int(0);
11188 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11189 if (UNTAG_Bool(REGB0)) {
11190 } else {
11191 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11192 }
11193 /* ./../lib/standard//kernel.nit:233 */
11194 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11195 /* ./../lib/standard//collection//array.nit:280 */
11196 if (UNTAG_Bool(REGB2)) {
11197 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11198 if (UNTAG_Bool(REGB2)) {
11199 } else {
11200 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11201 }
11202 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11203 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11204 if (UNTAG_Bool(REGB0)) {
11205 } else {
11206 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11207 }
11208 /* ./../lib/standard//kernel.nit:232 */
11209 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11210 } else {
11211 /* ./../lib/standard//collection//array.nit:280 */
11212 REGB0 = TAG_Bool(false);
11213 REGB2 = REGB0;
11214 }
11215 if (UNTAG_Bool(REGB2)) {
11216 } else {
11217 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11218 }
11219 /* ./../lib/standard//collection//array.nit:281 */
11220 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11221 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11222 if (UNTAG_Bool(REGB2)) {
11223 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11224 }
11225 /* ./../lib/standard//collection//array.nit:718 */
11226 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11227 /* ./../lib/standard//collection//array.nit:281 */
11228 goto label282;
11229 label282: while(0);
11230 /* ./compiling//compiling_icode.nit:821 */
11231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11232 if (!once_value_283) {
11233 fra.me.REG[7] = BOX_NativeString("))");
11234 REGB1 = TAG_Int(2);
11235 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11236 once_value_283 = fra.me.REG[7];
11237 register_static_object(&once_value_283);
11238 } else fra.me.REG[7] = once_value_283;
11239 fra.me.REG[7] = fra.me.REG[7];
11240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11241 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11242 fra.me.REG[5] = fra.me.REG[6];
11243 } else {
11244 /* ./compiling//compiling_icode.nit:822 */
11245 if (!once_value_284) {
11246 if (!once_value_285) {
11247 fra.me.REG[6] = BOX_NativeString(">");
11248 REGB1 = TAG_Int(1);
11249 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11250 once_value_285 = fra.me.REG[6];
11251 register_static_object(&once_value_285);
11252 } else fra.me.REG[6] = once_value_285;
11253 fra.me.REG[6] = fra.me.REG[6];
11254 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11255 once_value_284 = fra.me.REG[6];
11256 register_static_object(&once_value_284);
11257 } else fra.me.REG[6] = once_value_284;
11258 fra.me.REG[6] = fra.me.REG[6];
11259 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11260 if (UNTAG_Bool(REGB1)) {
11261 } else {
11262 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11263 REGB1 = REGB2;
11264 }
11265 if (UNTAG_Bool(REGB1)) {
11266 /* ./compiling//compiling_icode.nit:823 */
11267 REGB1 = TAG_Int(5);
11268 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11269 if (!once_value_286) {
11270 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11271 REGB1 = TAG_Int(20);
11272 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11273 once_value_286 = fra.me.REG[7];
11274 register_static_object(&once_value_286);
11275 } else fra.me.REG[7] = once_value_286;
11276 fra.me.REG[7] = fra.me.REG[7];
11277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11278 REGB1 = TAG_Int(0);
11279 /* ./../lib/standard//collection//array.nit:278 */
11280 fra.me.REG[7] = fra.me.REG[4];
11281 /* ./../lib/standard//collection//array.nit:280 */
11282 REGB2 = TAG_Int(0);
11283 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11284 if (UNTAG_Bool(REGB0)) {
11285 } else {
11286 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11287 }
11288 /* ./../lib/standard//kernel.nit:233 */
11289 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11290 /* ./../lib/standard//collection//array.nit:280 */
11291 if (UNTAG_Bool(REGB2)) {
11292 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11293 if (UNTAG_Bool(REGB2)) {
11294 } else {
11295 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11296 }
11297 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11298 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11299 if (UNTAG_Bool(REGB0)) {
11300 } else {
11301 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11302 }
11303 /* ./../lib/standard//kernel.nit:232 */
11304 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11305 } else {
11306 /* ./../lib/standard//collection//array.nit:280 */
11307 REGB0 = TAG_Bool(false);
11308 REGB2 = REGB0;
11309 }
11310 if (UNTAG_Bool(REGB2)) {
11311 } else {
11312 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11313 }
11314 /* ./../lib/standard//collection//array.nit:281 */
11315 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11316 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11317 if (UNTAG_Bool(REGB2)) {
11318 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11319 }
11320 /* ./../lib/standard//collection//array.nit:718 */
11321 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11322 /* ./../lib/standard//collection//array.nit:281 */
11323 goto label287;
11324 label287: while(0);
11325 /* ./compiling//compiling_icode.nit:823 */
11326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11327 if (!once_value_288) {
11328 fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
11329 REGB1 = TAG_Int(13);
11330 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11331 once_value_288 = fra.me.REG[7];
11332 register_static_object(&once_value_288);
11333 } else fra.me.REG[7] = once_value_288;
11334 fra.me.REG[7] = fra.me.REG[7];
11335 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11336 REGB1 = TAG_Int(1);
11337 /* ./../lib/standard//collection//array.nit:278 */
11338 fra.me.REG[7] = fra.me.REG[4];
11339 /* ./../lib/standard//collection//array.nit:280 */
11340 REGB2 = TAG_Int(0);
11341 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11342 if (UNTAG_Bool(REGB0)) {
11343 } else {
11344 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11345 }
11346 /* ./../lib/standard//kernel.nit:233 */
11347 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11348 /* ./../lib/standard//collection//array.nit:280 */
11349 if (UNTAG_Bool(REGB2)) {
11350 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11351 if (UNTAG_Bool(REGB2)) {
11352 } else {
11353 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11354 }
11355 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11356 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11357 if (UNTAG_Bool(REGB0)) {
11358 } else {
11359 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11360 }
11361 /* ./../lib/standard//kernel.nit:232 */
11362 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11363 } else {
11364 /* ./../lib/standard//collection//array.nit:280 */
11365 REGB0 = TAG_Bool(false);
11366 REGB2 = REGB0;
11367 }
11368 if (UNTAG_Bool(REGB2)) {
11369 } else {
11370 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11371 }
11372 /* ./../lib/standard//collection//array.nit:281 */
11373 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11374 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11375 if (UNTAG_Bool(REGB2)) {
11376 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11377 }
11378 /* ./../lib/standard//collection//array.nit:718 */
11379 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11380 /* ./../lib/standard//collection//array.nit:281 */
11381 goto label289;
11382 label289: while(0);
11383 /* ./compiling//compiling_icode.nit:823 */
11384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11385 if (!once_value_290) {
11386 fra.me.REG[7] = BOX_NativeString("))");
11387 REGB1 = TAG_Int(2);
11388 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11389 once_value_290 = fra.me.REG[7];
11390 register_static_object(&once_value_290);
11391 } else fra.me.REG[7] = once_value_290;
11392 fra.me.REG[7] = fra.me.REG[7];
11393 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11394 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11395 fra.me.REG[5] = fra.me.REG[6];
11396 } else {
11397 /* ./compiling//compiling_icode.nit:824 */
11398 if (!once_value_291) {
11399 if (!once_value_292) {
11400 fra.me.REG[6] = BOX_NativeString("<=");
11401 REGB1 = TAG_Int(2);
11402 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11403 once_value_292 = fra.me.REG[6];
11404 register_static_object(&once_value_292);
11405 } else fra.me.REG[6] = once_value_292;
11406 fra.me.REG[6] = fra.me.REG[6];
11407 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11408 once_value_291 = fra.me.REG[6];
11409 register_static_object(&once_value_291);
11410 } else fra.me.REG[6] = once_value_291;
11411 fra.me.REG[6] = fra.me.REG[6];
11412 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11413 if (UNTAG_Bool(REGB1)) {
11414 } else {
11415 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11416 REGB1 = REGB2;
11417 }
11418 if (UNTAG_Bool(REGB1)) {
11419 /* ./compiling//compiling_icode.nit:825 */
11420 REGB1 = TAG_Int(5);
11421 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11422 if (!once_value_293) {
11423 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11424 REGB1 = TAG_Int(20);
11425 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11426 once_value_293 = fra.me.REG[7];
11427 register_static_object(&once_value_293);
11428 } else fra.me.REG[7] = once_value_293;
11429 fra.me.REG[7] = fra.me.REG[7];
11430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11431 REGB1 = TAG_Int(0);
11432 /* ./../lib/standard//collection//array.nit:278 */
11433 fra.me.REG[7] = fra.me.REG[4];
11434 /* ./../lib/standard//collection//array.nit:280 */
11435 REGB2 = TAG_Int(0);
11436 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11437 if (UNTAG_Bool(REGB0)) {
11438 } else {
11439 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11440 }
11441 /* ./../lib/standard//kernel.nit:233 */
11442 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11443 /* ./../lib/standard//collection//array.nit:280 */
11444 if (UNTAG_Bool(REGB2)) {
11445 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11446 if (UNTAG_Bool(REGB2)) {
11447 } else {
11448 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11449 }
11450 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11451 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11452 if (UNTAG_Bool(REGB0)) {
11453 } else {
11454 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11455 }
11456 /* ./../lib/standard//kernel.nit:232 */
11457 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11458 } else {
11459 /* ./../lib/standard//collection//array.nit:280 */
11460 REGB0 = TAG_Bool(false);
11461 REGB2 = REGB0;
11462 }
11463 if (UNTAG_Bool(REGB2)) {
11464 } else {
11465 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11466 }
11467 /* ./../lib/standard//collection//array.nit:281 */
11468 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11469 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11470 if (UNTAG_Bool(REGB2)) {
11471 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11472 }
11473 /* ./../lib/standard//collection//array.nit:718 */
11474 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11475 /* ./../lib/standard//collection//array.nit:281 */
11476 goto label294;
11477 label294: while(0);
11478 /* ./compiling//compiling_icode.nit:825 */
11479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11480 if (!once_value_295) {
11481 fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
11482 REGB1 = TAG_Int(14);
11483 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11484 once_value_295 = fra.me.REG[7];
11485 register_static_object(&once_value_295);
11486 } else fra.me.REG[7] = once_value_295;
11487 fra.me.REG[7] = fra.me.REG[7];
11488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11489 REGB1 = TAG_Int(1);
11490 /* ./../lib/standard//collection//array.nit:278 */
11491 fra.me.REG[7] = fra.me.REG[4];
11492 /* ./../lib/standard//collection//array.nit:280 */
11493 REGB2 = TAG_Int(0);
11494 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11495 if (UNTAG_Bool(REGB0)) {
11496 } else {
11497 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11498 }
11499 /* ./../lib/standard//kernel.nit:233 */
11500 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11501 /* ./../lib/standard//collection//array.nit:280 */
11502 if (UNTAG_Bool(REGB2)) {
11503 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11504 if (UNTAG_Bool(REGB2)) {
11505 } else {
11506 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11507 }
11508 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11509 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11510 if (UNTAG_Bool(REGB0)) {
11511 } else {
11512 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11513 }
11514 /* ./../lib/standard//kernel.nit:232 */
11515 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11516 } else {
11517 /* ./../lib/standard//collection//array.nit:280 */
11518 REGB0 = TAG_Bool(false);
11519 REGB2 = REGB0;
11520 }
11521 if (UNTAG_Bool(REGB2)) {
11522 } else {
11523 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11524 }
11525 /* ./../lib/standard//collection//array.nit:281 */
11526 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11527 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11528 if (UNTAG_Bool(REGB2)) {
11529 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11530 }
11531 /* ./../lib/standard//collection//array.nit:718 */
11532 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11533 /* ./../lib/standard//collection//array.nit:281 */
11534 goto label296;
11535 label296: while(0);
11536 /* ./compiling//compiling_icode.nit:825 */
11537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11538 if (!once_value_297) {
11539 fra.me.REG[7] = BOX_NativeString("))");
11540 REGB1 = TAG_Int(2);
11541 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11542 once_value_297 = fra.me.REG[7];
11543 register_static_object(&once_value_297);
11544 } else fra.me.REG[7] = once_value_297;
11545 fra.me.REG[7] = fra.me.REG[7];
11546 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11547 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11548 fra.me.REG[5] = fra.me.REG[6];
11549 } else {
11550 /* ./compiling//compiling_icode.nit:826 */
11551 if (!once_value_298) {
11552 if (!once_value_299) {
11553 fra.me.REG[6] = BOX_NativeString(">=");
11554 REGB1 = TAG_Int(2);
11555 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11556 once_value_299 = fra.me.REG[6];
11557 register_static_object(&once_value_299);
11558 } else fra.me.REG[6] = once_value_299;
11559 fra.me.REG[6] = fra.me.REG[6];
11560 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11561 once_value_298 = fra.me.REG[6];
11562 register_static_object(&once_value_298);
11563 } else fra.me.REG[6] = once_value_298;
11564 fra.me.REG[6] = fra.me.REG[6];
11565 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11566 if (UNTAG_Bool(REGB1)) {
11567 } else {
11568 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11569 REGB1 = REGB2;
11570 }
11571 if (UNTAG_Bool(REGB1)) {
11572 /* ./compiling//compiling_icode.nit:827 */
11573 REGB1 = TAG_Int(5);
11574 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11575 if (!once_value_300) {
11576 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(");
11577 REGB1 = TAG_Int(20);
11578 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11579 once_value_300 = fra.me.REG[7];
11580 register_static_object(&once_value_300);
11581 } else fra.me.REG[7] = once_value_300;
11582 fra.me.REG[7] = fra.me.REG[7];
11583 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11584 REGB1 = TAG_Int(0);
11585 /* ./../lib/standard//collection//array.nit:278 */
11586 fra.me.REG[7] = fra.me.REG[4];
11587 /* ./../lib/standard//collection//array.nit:280 */
11588 REGB2 = TAG_Int(0);
11589 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11590 if (UNTAG_Bool(REGB0)) {
11591 } else {
11592 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11593 }
11594 /* ./../lib/standard//kernel.nit:233 */
11595 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11596 /* ./../lib/standard//collection//array.nit:280 */
11597 if (UNTAG_Bool(REGB2)) {
11598 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11599 if (UNTAG_Bool(REGB2)) {
11600 } else {
11601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11602 }
11603 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11604 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11605 if (UNTAG_Bool(REGB0)) {
11606 } else {
11607 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11608 }
11609 /* ./../lib/standard//kernel.nit:232 */
11610 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11611 } else {
11612 /* ./../lib/standard//collection//array.nit:280 */
11613 REGB0 = TAG_Bool(false);
11614 REGB2 = REGB0;
11615 }
11616 if (UNTAG_Bool(REGB2)) {
11617 } else {
11618 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11619 }
11620 /* ./../lib/standard//collection//array.nit:281 */
11621 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11622 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11623 if (UNTAG_Bool(REGB2)) {
11624 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11625 }
11626 /* ./../lib/standard//collection//array.nit:718 */
11627 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11628 /* ./../lib/standard//collection//array.nit:281 */
11629 goto label301;
11630 label301: while(0);
11631 /* ./compiling//compiling_icode.nit:827 */
11632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11633 if (!once_value_302) {
11634 fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
11635 REGB1 = TAG_Int(14);
11636 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11637 once_value_302 = fra.me.REG[7];
11638 register_static_object(&once_value_302);
11639 } else fra.me.REG[7] = once_value_302;
11640 fra.me.REG[7] = fra.me.REG[7];
11641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11642 REGB1 = TAG_Int(1);
11643 /* ./../lib/standard//collection//array.nit:278 */
11644 fra.me.REG[7] = fra.me.REG[4];
11645 /* ./../lib/standard//collection//array.nit:280 */
11646 REGB2 = TAG_Int(0);
11647 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11648 if (UNTAG_Bool(REGB0)) {
11649 } else {
11650 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11651 }
11652 /* ./../lib/standard//kernel.nit:233 */
11653 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11654 /* ./../lib/standard//collection//array.nit:280 */
11655 if (UNTAG_Bool(REGB2)) {
11656 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11657 if (UNTAG_Bool(REGB2)) {
11658 } else {
11659 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11660 }
11661 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11662 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11663 if (UNTAG_Bool(REGB0)) {
11664 } else {
11665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11666 }
11667 /* ./../lib/standard//kernel.nit:232 */
11668 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11669 } else {
11670 /* ./../lib/standard//collection//array.nit:280 */
11671 REGB0 = TAG_Bool(false);
11672 REGB2 = REGB0;
11673 }
11674 if (UNTAG_Bool(REGB2)) {
11675 } else {
11676 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11677 }
11678 /* ./../lib/standard//collection//array.nit:281 */
11679 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11680 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11681 if (UNTAG_Bool(REGB2)) {
11682 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11683 }
11684 /* ./../lib/standard//collection//array.nit:718 */
11685 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11686 /* ./../lib/standard//collection//array.nit:281 */
11687 goto label303;
11688 label303: while(0);
11689 /* ./compiling//compiling_icode.nit:827 */
11690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11691 if (!once_value_304) {
11692 fra.me.REG[7] = BOX_NativeString("))");
11693 REGB1 = TAG_Int(2);
11694 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11695 once_value_304 = fra.me.REG[7];
11696 register_static_object(&once_value_304);
11697 } else fra.me.REG[7] = once_value_304;
11698 fra.me.REG[7] = fra.me.REG[7];
11699 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11700 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11701 fra.me.REG[5] = fra.me.REG[6];
11702 } else {
11703 /* ./compiling//compiling_icode.nit:828 */
11704 if (!once_value_305) {
11705 if (!once_value_306) {
11706 fra.me.REG[6] = BOX_NativeString("==");
11707 REGB1 = TAG_Int(2);
11708 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11709 once_value_306 = fra.me.REG[6];
11710 register_static_object(&once_value_306);
11711 } else fra.me.REG[6] = once_value_306;
11712 fra.me.REG[6] = fra.me.REG[6];
11713 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11714 once_value_305 = fra.me.REG[6];
11715 register_static_object(&once_value_305);
11716 } else fra.me.REG[6] = once_value_305;
11717 fra.me.REG[6] = fra.me.REG[6];
11718 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11719 if (UNTAG_Bool(REGB1)) {
11720 } else {
11721 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11722 REGB1 = REGB2;
11723 }
11724 if (UNTAG_Bool(REGB1)) {
11725 /* ./compiling//compiling_icode.nit:829 */
11726 REGB1 = TAG_Int(5);
11727 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11728 if (!once_value_307) {
11729 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11730 REGB1 = TAG_Int(10);
11731 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11732 once_value_307 = fra.me.REG[7];
11733 register_static_object(&once_value_307);
11734 } else fra.me.REG[7] = once_value_307;
11735 fra.me.REG[7] = fra.me.REG[7];
11736 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11737 REGB1 = TAG_Int(0);
11738 /* ./../lib/standard//collection//array.nit:278 */
11739 fra.me.REG[7] = fra.me.REG[4];
11740 /* ./../lib/standard//collection//array.nit:280 */
11741 REGB2 = TAG_Int(0);
11742 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11743 if (UNTAG_Bool(REGB0)) {
11744 } else {
11745 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11746 }
11747 /* ./../lib/standard//kernel.nit:233 */
11748 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11749 /* ./../lib/standard//collection//array.nit:280 */
11750 if (UNTAG_Bool(REGB2)) {
11751 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11752 if (UNTAG_Bool(REGB2)) {
11753 } else {
11754 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11755 }
11756 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11757 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11758 if (UNTAG_Bool(REGB0)) {
11759 } else {
11760 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11761 }
11762 /* ./../lib/standard//kernel.nit:232 */
11763 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11764 } else {
11765 /* ./../lib/standard//collection//array.nit:280 */
11766 REGB0 = TAG_Bool(false);
11767 REGB2 = REGB0;
11768 }
11769 if (UNTAG_Bool(REGB2)) {
11770 } else {
11771 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11772 }
11773 /* ./../lib/standard//collection//array.nit:281 */
11774 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11775 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11776 if (UNTAG_Bool(REGB2)) {
11777 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11778 }
11779 /* ./../lib/standard//collection//array.nit:718 */
11780 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11781 /* ./../lib/standard//collection//array.nit:281 */
11782 goto label308;
11783 label308: while(0);
11784 /* ./compiling//compiling_icode.nit:829 */
11785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11786 if (!once_value_309) {
11787 fra.me.REG[7] = BOX_NativeString(")==(");
11788 REGB1 = TAG_Int(4);
11789 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11790 once_value_309 = fra.me.REG[7];
11791 register_static_object(&once_value_309);
11792 } else fra.me.REG[7] = once_value_309;
11793 fra.me.REG[7] = fra.me.REG[7];
11794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11795 REGB1 = TAG_Int(1);
11796 /* ./../lib/standard//collection//array.nit:278 */
11797 fra.me.REG[7] = fra.me.REG[4];
11798 /* ./../lib/standard//collection//array.nit:280 */
11799 REGB2 = TAG_Int(0);
11800 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11801 if (UNTAG_Bool(REGB0)) {
11802 } else {
11803 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11804 }
11805 /* ./../lib/standard//kernel.nit:233 */
11806 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11807 /* ./../lib/standard//collection//array.nit:280 */
11808 if (UNTAG_Bool(REGB2)) {
11809 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11810 if (UNTAG_Bool(REGB2)) {
11811 } else {
11812 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11813 }
11814 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11815 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11816 if (UNTAG_Bool(REGB0)) {
11817 } else {
11818 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11819 }
11820 /* ./../lib/standard//kernel.nit:232 */
11821 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11822 } else {
11823 /* ./../lib/standard//collection//array.nit:280 */
11824 REGB0 = TAG_Bool(false);
11825 REGB2 = REGB0;
11826 }
11827 if (UNTAG_Bool(REGB2)) {
11828 } else {
11829 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11830 }
11831 /* ./../lib/standard//collection//array.nit:281 */
11832 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11833 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11834 if (UNTAG_Bool(REGB2)) {
11835 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11836 }
11837 /* ./../lib/standard//collection//array.nit:718 */
11838 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11839 /* ./../lib/standard//collection//array.nit:281 */
11840 goto label310;
11841 label310: while(0);
11842 /* ./compiling//compiling_icode.nit:829 */
11843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11844 if (!once_value_311) {
11845 fra.me.REG[7] = BOX_NativeString("))");
11846 REGB1 = TAG_Int(2);
11847 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11848 once_value_311 = fra.me.REG[7];
11849 register_static_object(&once_value_311);
11850 } else fra.me.REG[7] = once_value_311;
11851 fra.me.REG[7] = fra.me.REG[7];
11852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11853 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
11854 fra.me.REG[5] = fra.me.REG[6];
11855 } else {
11856 /* ./compiling//compiling_icode.nit:830 */
11857 if (!once_value_312) {
11858 if (!once_value_313) {
11859 fra.me.REG[6] = BOX_NativeString("!=");
11860 REGB1 = TAG_Int(2);
11861 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
11862 once_value_313 = fra.me.REG[6];
11863 register_static_object(&once_value_313);
11864 } else fra.me.REG[6] = once_value_313;
11865 fra.me.REG[6] = fra.me.REG[6];
11866 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
11867 once_value_312 = fra.me.REG[6];
11868 register_static_object(&once_value_312);
11869 } else fra.me.REG[6] = once_value_312;
11870 fra.me.REG[6] = fra.me.REG[6];
11871 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
11872 if (UNTAG_Bool(REGB1)) {
11873 } else {
11874 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
11875 REGB1 = REGB2;
11876 }
11877 if (UNTAG_Bool(REGB1)) {
11878 /* ./compiling//compiling_icode.nit:831 */
11879 REGB1 = TAG_Int(5);
11880 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
11881 if (!once_value_314) {
11882 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
11883 REGB1 = TAG_Int(10);
11884 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11885 once_value_314 = fra.me.REG[7];
11886 register_static_object(&once_value_314);
11887 } else fra.me.REG[7] = once_value_314;
11888 fra.me.REG[7] = fra.me.REG[7];
11889 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11890 REGB1 = TAG_Int(0);
11891 /* ./../lib/standard//collection//array.nit:278 */
11892 fra.me.REG[7] = fra.me.REG[4];
11893 /* ./../lib/standard//collection//array.nit:280 */
11894 REGB2 = TAG_Int(0);
11895 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11896 if (UNTAG_Bool(REGB0)) {
11897 } else {
11898 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11899 }
11900 /* ./../lib/standard//kernel.nit:233 */
11901 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11902 /* ./../lib/standard//collection//array.nit:280 */
11903 if (UNTAG_Bool(REGB2)) {
11904 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11905 if (UNTAG_Bool(REGB2)) {
11906 } else {
11907 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11908 }
11909 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11910 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11911 if (UNTAG_Bool(REGB0)) {
11912 } else {
11913 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11914 }
11915 /* ./../lib/standard//kernel.nit:232 */
11916 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11917 } else {
11918 /* ./../lib/standard//collection//array.nit:280 */
11919 REGB0 = TAG_Bool(false);
11920 REGB2 = REGB0;
11921 }
11922 if (UNTAG_Bool(REGB2)) {
11923 } else {
11924 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11925 }
11926 /* ./../lib/standard//collection//array.nit:281 */
11927 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11928 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11929 if (UNTAG_Bool(REGB2)) {
11930 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11931 }
11932 /* ./../lib/standard//collection//array.nit:718 */
11933 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11934 /* ./../lib/standard//collection//array.nit:281 */
11935 goto label315;
11936 label315: while(0);
11937 /* ./compiling//compiling_icode.nit:831 */
11938 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11939 if (!once_value_316) {
11940 fra.me.REG[7] = BOX_NativeString(")!=(");
11941 REGB1 = TAG_Int(4);
11942 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
11943 once_value_316 = fra.me.REG[7];
11944 register_static_object(&once_value_316);
11945 } else fra.me.REG[7] = once_value_316;
11946 fra.me.REG[7] = fra.me.REG[7];
11947 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11948 REGB1 = TAG_Int(1);
11949 /* ./../lib/standard//collection//array.nit:278 */
11950 fra.me.REG[7] = fra.me.REG[4];
11951 /* ./../lib/standard//collection//array.nit:280 */
11952 REGB2 = TAG_Int(0);
11953 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11954 if (UNTAG_Bool(REGB0)) {
11955 } else {
11956 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11957 }
11958 /* ./../lib/standard//kernel.nit:233 */
11959 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
11960 /* ./../lib/standard//collection//array.nit:280 */
11961 if (UNTAG_Bool(REGB2)) {
11962 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
11963 if (UNTAG_Bool(REGB2)) {
11964 } else {
11965 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
11966 }
11967 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
11968 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
11969 if (UNTAG_Bool(REGB0)) {
11970 } else {
11971 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
11972 }
11973 /* ./../lib/standard//kernel.nit:232 */
11974 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
11975 } else {
11976 /* ./../lib/standard//collection//array.nit:280 */
11977 REGB0 = TAG_Bool(false);
11978 REGB2 = REGB0;
11979 }
11980 if (UNTAG_Bool(REGB2)) {
11981 } else {
11982 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
11983 }
11984 /* ./../lib/standard//collection//array.nit:281 */
11985 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
11986 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11987 if (UNTAG_Bool(REGB2)) {
11988 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
11989 }
11990 /* ./../lib/standard//collection//array.nit:718 */
11991 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
11992 /* ./../lib/standard//collection//array.nit:281 */
11993 goto label317;
11994 label317: while(0);
11995 /* ./compiling//compiling_icode.nit:831 */
11996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11997 if (!once_value_318) {
11998 fra.me.REG[7] = BOX_NativeString("))");
11999 REGB1 = TAG_Int(2);
12000 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12001 once_value_318 = fra.me.REG[7];
12002 register_static_object(&once_value_318);
12003 } else fra.me.REG[7] = once_value_318;
12004 fra.me.REG[7] = fra.me.REG[7];
12005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12006 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12007 fra.me.REG[5] = fra.me.REG[6];
12008 }
12009 }
12010 }
12011 }
12012 }
12013 }
12014 }
12015 }
12016 }
12017 }
12018 }
12019 }
12020 }
12021 }
12022 }
12023 }
12024 }
12025 }
12026 } else {
12027 /* ./compiling//compiling_icode.nit:833 */
12028 if (!once_value_319) {
12029 if (!once_value_320) {
12030 fra.me.REG[6] = BOX_NativeString("Bool");
12031 REGB1 = TAG_Int(4);
12032 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12033 once_value_320 = fra.me.REG[6];
12034 register_static_object(&once_value_320);
12035 } else fra.me.REG[6] = once_value_320;
12036 fra.me.REG[6] = fra.me.REG[6];
12037 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12038 once_value_319 = fra.me.REG[6];
12039 register_static_object(&once_value_319);
12040 } else fra.me.REG[6] = once_value_319;
12041 fra.me.REG[6] = fra.me.REG[6];
12042 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12043 if (UNTAG_Bool(REGB1)) {
12044 } else {
12045 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12046 REGB1 = REGB2;
12047 }
12048 if (UNTAG_Bool(REGB1)) {
12049 /* ./compiling//compiling_icode.nit:834 */
12050 if (!once_value_321) {
12051 if (!once_value_322) {
12052 fra.me.REG[6] = BOX_NativeString("object_id");
12053 REGB1 = TAG_Int(9);
12054 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12055 once_value_322 = fra.me.REG[6];
12056 register_static_object(&once_value_322);
12057 } else fra.me.REG[6] = once_value_322;
12058 fra.me.REG[6] = fra.me.REG[6];
12059 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12060 once_value_321 = fra.me.REG[6];
12061 register_static_object(&once_value_321);
12062 } else fra.me.REG[6] = once_value_321;
12063 fra.me.REG[6] = fra.me.REG[6];
12064 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12065 if (UNTAG_Bool(REGB1)) {
12066 } else {
12067 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12068 REGB1 = REGB2;
12069 }
12070 if (UNTAG_Bool(REGB1)) {
12071 /* ./compiling//compiling_icode.nit:835 */
12072 REGB1 = TAG_Int(3);
12073 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12074 if (!once_value_323) {
12075 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12076 REGB1 = TAG_Int(19);
12077 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12078 once_value_323 = fra.me.REG[7];
12079 register_static_object(&once_value_323);
12080 } else fra.me.REG[7] = once_value_323;
12081 fra.me.REG[7] = fra.me.REG[7];
12082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12083 REGB1 = TAG_Int(0);
12084 /* ./../lib/standard//collection//array.nit:278 */
12085 fra.me.REG[7] = fra.me.REG[4];
12086 /* ./../lib/standard//collection//array.nit:280 */
12087 REGB2 = TAG_Int(0);
12088 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12089 if (UNTAG_Bool(REGB0)) {
12090 } else {
12091 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12092 }
12093 /* ./../lib/standard//kernel.nit:233 */
12094 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12095 /* ./../lib/standard//collection//array.nit:280 */
12096 if (UNTAG_Bool(REGB2)) {
12097 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12098 if (UNTAG_Bool(REGB2)) {
12099 } else {
12100 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12101 }
12102 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12103 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12104 if (UNTAG_Bool(REGB0)) {
12105 } else {
12106 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12107 }
12108 /* ./../lib/standard//kernel.nit:232 */
12109 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12110 } else {
12111 /* ./../lib/standard//collection//array.nit:280 */
12112 REGB0 = TAG_Bool(false);
12113 REGB2 = REGB0;
12114 }
12115 if (UNTAG_Bool(REGB2)) {
12116 } else {
12117 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12118 }
12119 /* ./../lib/standard//collection//array.nit:281 */
12120 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12121 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12122 if (UNTAG_Bool(REGB2)) {
12123 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12124 }
12125 /* ./../lib/standard//collection//array.nit:718 */
12126 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12127 /* ./../lib/standard//collection//array.nit:281 */
12128 goto label324;
12129 label324: while(0);
12130 /* ./compiling//compiling_icode.nit:835 */
12131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12132 if (!once_value_325) {
12133 fra.me.REG[7] = BOX_NativeString("))");
12134 REGB1 = TAG_Int(2);
12135 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12136 once_value_325 = fra.me.REG[7];
12137 register_static_object(&once_value_325);
12138 } else fra.me.REG[7] = once_value_325;
12139 fra.me.REG[7] = fra.me.REG[7];
12140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12141 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12142 fra.me.REG[5] = fra.me.REG[6];
12143 } else {
12144 /* ./compiling//compiling_icode.nit:836 */
12145 if (!once_value_326) {
12146 if (!once_value_327) {
12147 fra.me.REG[6] = BOX_NativeString("unary -");
12148 REGB1 = TAG_Int(7);
12149 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12150 once_value_327 = fra.me.REG[6];
12151 register_static_object(&once_value_327);
12152 } else fra.me.REG[6] = once_value_327;
12153 fra.me.REG[6] = fra.me.REG[6];
12154 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12155 once_value_326 = fra.me.REG[6];
12156 register_static_object(&once_value_326);
12157 } else fra.me.REG[6] = once_value_326;
12158 fra.me.REG[6] = fra.me.REG[6];
12159 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12160 if (UNTAG_Bool(REGB1)) {
12161 } else {
12162 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12163 REGB1 = REGB2;
12164 }
12165 if (UNTAG_Bool(REGB1)) {
12166 /* ./compiling//compiling_icode.nit:837 */
12167 REGB1 = TAG_Int(3);
12168 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12169 if (!once_value_328) {
12170 fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(");
12171 REGB1 = TAG_Int(21);
12172 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12173 once_value_328 = fra.me.REG[7];
12174 register_static_object(&once_value_328);
12175 } else fra.me.REG[7] = once_value_328;
12176 fra.me.REG[7] = fra.me.REG[7];
12177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12178 REGB1 = TAG_Int(0);
12179 /* ./../lib/standard//collection//array.nit:278 */
12180 fra.me.REG[7] = fra.me.REG[4];
12181 /* ./../lib/standard//collection//array.nit:280 */
12182 REGB2 = TAG_Int(0);
12183 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12184 if (UNTAG_Bool(REGB0)) {
12185 } else {
12186 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12187 }
12188 /* ./../lib/standard//kernel.nit:233 */
12189 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12190 /* ./../lib/standard//collection//array.nit:280 */
12191 if (UNTAG_Bool(REGB2)) {
12192 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12193 if (UNTAG_Bool(REGB2)) {
12194 } else {
12195 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12196 }
12197 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12198 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12199 if (UNTAG_Bool(REGB0)) {
12200 } else {
12201 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12202 }
12203 /* ./../lib/standard//kernel.nit:232 */
12204 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12205 } else {
12206 /* ./../lib/standard//collection//array.nit:280 */
12207 REGB0 = TAG_Bool(false);
12208 REGB2 = REGB0;
12209 }
12210 if (UNTAG_Bool(REGB2)) {
12211 } else {
12212 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12213 }
12214 /* ./../lib/standard//collection//array.nit:281 */
12215 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12216 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12217 if (UNTAG_Bool(REGB2)) {
12218 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12219 }
12220 /* ./../lib/standard//collection//array.nit:718 */
12221 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12222 /* ./../lib/standard//collection//array.nit:281 */
12223 goto label329;
12224 label329: while(0);
12225 /* ./compiling//compiling_icode.nit:837 */
12226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12227 if (!once_value_330) {
12228 fra.me.REG[7] = BOX_NativeString("))");
12229 REGB1 = TAG_Int(2);
12230 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12231 once_value_330 = fra.me.REG[7];
12232 register_static_object(&once_value_330);
12233 } else fra.me.REG[7] = once_value_330;
12234 fra.me.REG[7] = fra.me.REG[7];
12235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12236 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12237 fra.me.REG[5] = fra.me.REG[6];
12238 } else {
12239 /* ./compiling//compiling_icode.nit:838 */
12240 if (!once_value_331) {
12241 if (!once_value_332) {
12242 fra.me.REG[6] = BOX_NativeString("output");
12243 REGB1 = TAG_Int(6);
12244 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12245 once_value_332 = fra.me.REG[6];
12246 register_static_object(&once_value_332);
12247 } else fra.me.REG[6] = once_value_332;
12248 fra.me.REG[6] = fra.me.REG[6];
12249 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12250 once_value_331 = fra.me.REG[6];
12251 register_static_object(&once_value_331);
12252 } else fra.me.REG[6] = once_value_331;
12253 fra.me.REG[6] = fra.me.REG[6];
12254 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12255 if (UNTAG_Bool(REGB1)) {
12256 } else {
12257 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12258 REGB1 = REGB2;
12259 }
12260 if (UNTAG_Bool(REGB1)) {
12261 /* ./compiling//compiling_icode.nit:839 */
12262 REGB1 = TAG_Int(3);
12263 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12264 if (!once_value_333) {
12265 fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool(");
12266 REGB1 = TAG_Int(24);
12267 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12268 once_value_333 = fra.me.REG[7];
12269 register_static_object(&once_value_333);
12270 } else fra.me.REG[7] = once_value_333;
12271 fra.me.REG[7] = fra.me.REG[7];
12272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12273 REGB1 = TAG_Int(0);
12274 /* ./../lib/standard//collection//array.nit:278 */
12275 fra.me.REG[7] = fra.me.REG[4];
12276 /* ./../lib/standard//collection//array.nit:280 */
12277 REGB2 = TAG_Int(0);
12278 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12279 if (UNTAG_Bool(REGB0)) {
12280 } else {
12281 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12282 }
12283 /* ./../lib/standard//kernel.nit:233 */
12284 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12285 /* ./../lib/standard//collection//array.nit:280 */
12286 if (UNTAG_Bool(REGB2)) {
12287 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12288 if (UNTAG_Bool(REGB2)) {
12289 } else {
12290 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12291 }
12292 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12293 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12294 if (UNTAG_Bool(REGB0)) {
12295 } else {
12296 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12297 }
12298 /* ./../lib/standard//kernel.nit:232 */
12299 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12300 } else {
12301 /* ./../lib/standard//collection//array.nit:280 */
12302 REGB0 = TAG_Bool(false);
12303 REGB2 = REGB0;
12304 }
12305 if (UNTAG_Bool(REGB2)) {
12306 } else {
12307 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12308 }
12309 /* ./../lib/standard//collection//array.nit:281 */
12310 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12311 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12312 if (UNTAG_Bool(REGB2)) {
12313 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12314 }
12315 /* ./../lib/standard//collection//array.nit:718 */
12316 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12317 /* ./../lib/standard//collection//array.nit:281 */
12318 goto label334;
12319 label334: while(0);
12320 /* ./compiling//compiling_icode.nit:839 */
12321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12322 if (!once_value_335) {
12323 fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
12324 REGB1 = TAG_Int(22);
12325 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12326 once_value_335 = fra.me.REG[7];
12327 register_static_object(&once_value_335);
12328 } else fra.me.REG[7] = once_value_335;
12329 fra.me.REG[7] = fra.me.REG[7];
12330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12331 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12332 fra.me.REG[5] = fra.me.REG[6];
12333 } else {
12334 /* ./compiling//compiling_icode.nit:840 */
12335 if (!once_value_336) {
12336 if (!once_value_337) {
12337 fra.me.REG[6] = BOX_NativeString("ascii");
12338 REGB1 = TAG_Int(5);
12339 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12340 once_value_337 = fra.me.REG[6];
12341 register_static_object(&once_value_337);
12342 } else fra.me.REG[6] = once_value_337;
12343 fra.me.REG[6] = fra.me.REG[6];
12344 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12345 once_value_336 = fra.me.REG[6];
12346 register_static_object(&once_value_336);
12347 } else fra.me.REG[6] = once_value_336;
12348 fra.me.REG[6] = fra.me.REG[6];
12349 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12350 if (UNTAG_Bool(REGB1)) {
12351 } else {
12352 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12353 REGB1 = REGB2;
12354 }
12355 if (UNTAG_Bool(REGB1)) {
12356 /* ./compiling//compiling_icode.nit:841 */
12357 REGB1 = TAG_Int(3);
12358 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12359 if (!once_value_338) {
12360 fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(");
12361 REGB1 = TAG_Int(20);
12362 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12363 once_value_338 = fra.me.REG[7];
12364 register_static_object(&once_value_338);
12365 } else fra.me.REG[7] = once_value_338;
12366 fra.me.REG[7] = fra.me.REG[7];
12367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12368 REGB1 = TAG_Int(0);
12369 /* ./../lib/standard//collection//array.nit:278 */
12370 fra.me.REG[7] = fra.me.REG[4];
12371 /* ./../lib/standard//collection//array.nit:280 */
12372 REGB2 = TAG_Int(0);
12373 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12374 if (UNTAG_Bool(REGB0)) {
12375 } else {
12376 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12377 }
12378 /* ./../lib/standard//kernel.nit:233 */
12379 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12380 /* ./../lib/standard//collection//array.nit:280 */
12381 if (UNTAG_Bool(REGB2)) {
12382 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12383 if (UNTAG_Bool(REGB2)) {
12384 } else {
12385 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12386 }
12387 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12388 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12389 if (UNTAG_Bool(REGB0)) {
12390 } else {
12391 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12392 }
12393 /* ./../lib/standard//kernel.nit:232 */
12394 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12395 } else {
12396 /* ./../lib/standard//collection//array.nit:280 */
12397 REGB0 = TAG_Bool(false);
12398 REGB2 = REGB0;
12399 }
12400 if (UNTAG_Bool(REGB2)) {
12401 } else {
12402 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12403 }
12404 /* ./../lib/standard//collection//array.nit:281 */
12405 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12406 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12407 if (UNTAG_Bool(REGB2)) {
12408 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12409 }
12410 /* ./../lib/standard//collection//array.nit:718 */
12411 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12412 /* ./../lib/standard//collection//array.nit:281 */
12413 goto label339;
12414 label339: while(0);
12415 /* ./compiling//compiling_icode.nit:841 */
12416 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12417 if (!once_value_340) {
12418 fra.me.REG[7] = BOX_NativeString("))");
12419 REGB1 = TAG_Int(2);
12420 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12421 once_value_340 = fra.me.REG[7];
12422 register_static_object(&once_value_340);
12423 } else fra.me.REG[7] = once_value_340;
12424 fra.me.REG[7] = fra.me.REG[7];
12425 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12426 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12427 fra.me.REG[5] = fra.me.REG[6];
12428 } else {
12429 /* ./compiling//compiling_icode.nit:842 */
12430 if (!once_value_341) {
12431 if (!once_value_342) {
12432 fra.me.REG[6] = BOX_NativeString("to_i");
12433 REGB1 = TAG_Int(4);
12434 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12435 once_value_342 = fra.me.REG[6];
12436 register_static_object(&once_value_342);
12437 } else fra.me.REG[6] = once_value_342;
12438 fra.me.REG[6] = fra.me.REG[6];
12439 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12440 once_value_341 = fra.me.REG[6];
12441 register_static_object(&once_value_341);
12442 } else fra.me.REG[6] = once_value_341;
12443 fra.me.REG[6] = fra.me.REG[6];
12444 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12445 if (UNTAG_Bool(REGB1)) {
12446 } else {
12447 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12448 REGB1 = REGB2;
12449 }
12450 if (UNTAG_Bool(REGB1)) {
12451 /* ./compiling//compiling_icode.nit:843 */
12452 REGB1 = TAG_Int(3);
12453 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12454 if (!once_value_343) {
12455 fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(");
12456 REGB1 = TAG_Int(19);
12457 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12458 once_value_343 = fra.me.REG[7];
12459 register_static_object(&once_value_343);
12460 } else fra.me.REG[7] = once_value_343;
12461 fra.me.REG[7] = fra.me.REG[7];
12462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12463 REGB1 = TAG_Int(0);
12464 /* ./../lib/standard//collection//array.nit:278 */
12465 fra.me.REG[7] = fra.me.REG[4];
12466 /* ./../lib/standard//collection//array.nit:280 */
12467 REGB2 = TAG_Int(0);
12468 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12469 if (UNTAG_Bool(REGB0)) {
12470 } else {
12471 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12472 }
12473 /* ./../lib/standard//kernel.nit:233 */
12474 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12475 /* ./../lib/standard//collection//array.nit:280 */
12476 if (UNTAG_Bool(REGB2)) {
12477 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12478 if (UNTAG_Bool(REGB2)) {
12479 } else {
12480 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12481 }
12482 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12483 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12484 if (UNTAG_Bool(REGB0)) {
12485 } else {
12486 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12487 }
12488 /* ./../lib/standard//kernel.nit:232 */
12489 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12490 } else {
12491 /* ./../lib/standard//collection//array.nit:280 */
12492 REGB0 = TAG_Bool(false);
12493 REGB2 = REGB0;
12494 }
12495 if (UNTAG_Bool(REGB2)) {
12496 } else {
12497 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12498 }
12499 /* ./../lib/standard//collection//array.nit:281 */
12500 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12501 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12502 if (UNTAG_Bool(REGB2)) {
12503 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12504 }
12505 /* ./../lib/standard//collection//array.nit:718 */
12506 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12507 /* ./../lib/standard//collection//array.nit:281 */
12508 goto label344;
12509 label344: while(0);
12510 /* ./compiling//compiling_icode.nit:843 */
12511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12512 if (!once_value_345) {
12513 fra.me.REG[7] = BOX_NativeString("))");
12514 REGB1 = TAG_Int(2);
12515 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12516 once_value_345 = fra.me.REG[7];
12517 register_static_object(&once_value_345);
12518 } else fra.me.REG[7] = once_value_345;
12519 fra.me.REG[7] = fra.me.REG[7];
12520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12521 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12522 fra.me.REG[5] = fra.me.REG[6];
12523 } else {
12524 /* ./compiling//compiling_icode.nit:844 */
12525 if (!once_value_346) {
12526 if (!once_value_347) {
12527 fra.me.REG[6] = BOX_NativeString("==");
12528 REGB1 = TAG_Int(2);
12529 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12530 once_value_347 = fra.me.REG[6];
12531 register_static_object(&once_value_347);
12532 } else fra.me.REG[6] = once_value_347;
12533 fra.me.REG[6] = fra.me.REG[6];
12534 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12535 once_value_346 = fra.me.REG[6];
12536 register_static_object(&once_value_346);
12537 } else fra.me.REG[6] = once_value_346;
12538 fra.me.REG[6] = fra.me.REG[6];
12539 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12540 if (UNTAG_Bool(REGB1)) {
12541 } else {
12542 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12543 REGB1 = REGB2;
12544 }
12545 if (UNTAG_Bool(REGB1)) {
12546 /* ./compiling//compiling_icode.nit:845 */
12547 REGB1 = TAG_Int(5);
12548 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12549 if (!once_value_348) {
12550 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12551 REGB1 = TAG_Int(10);
12552 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12553 once_value_348 = fra.me.REG[7];
12554 register_static_object(&once_value_348);
12555 } else fra.me.REG[7] = once_value_348;
12556 fra.me.REG[7] = fra.me.REG[7];
12557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12558 REGB1 = TAG_Int(0);
12559 /* ./../lib/standard//collection//array.nit:278 */
12560 fra.me.REG[7] = fra.me.REG[4];
12561 /* ./../lib/standard//collection//array.nit:280 */
12562 REGB2 = TAG_Int(0);
12563 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12564 if (UNTAG_Bool(REGB0)) {
12565 } else {
12566 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12567 }
12568 /* ./../lib/standard//kernel.nit:233 */
12569 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12570 /* ./../lib/standard//collection//array.nit:280 */
12571 if (UNTAG_Bool(REGB2)) {
12572 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12573 if (UNTAG_Bool(REGB2)) {
12574 } else {
12575 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12576 }
12577 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12578 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12579 if (UNTAG_Bool(REGB0)) {
12580 } else {
12581 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12582 }
12583 /* ./../lib/standard//kernel.nit:232 */
12584 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12585 } else {
12586 /* ./../lib/standard//collection//array.nit:280 */
12587 REGB0 = TAG_Bool(false);
12588 REGB2 = REGB0;
12589 }
12590 if (UNTAG_Bool(REGB2)) {
12591 } else {
12592 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12593 }
12594 /* ./../lib/standard//collection//array.nit:281 */
12595 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12596 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12597 if (UNTAG_Bool(REGB2)) {
12598 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12599 }
12600 /* ./../lib/standard//collection//array.nit:718 */
12601 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12602 /* ./../lib/standard//collection//array.nit:281 */
12603 goto label349;
12604 label349: while(0);
12605 /* ./compiling//compiling_icode.nit:845 */
12606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12607 if (!once_value_350) {
12608 fra.me.REG[7] = BOX_NativeString(")==(");
12609 REGB1 = TAG_Int(4);
12610 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12611 once_value_350 = fra.me.REG[7];
12612 register_static_object(&once_value_350);
12613 } else fra.me.REG[7] = once_value_350;
12614 fra.me.REG[7] = fra.me.REG[7];
12615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12616 REGB1 = TAG_Int(1);
12617 /* ./../lib/standard//collection//array.nit:278 */
12618 fra.me.REG[7] = fra.me.REG[4];
12619 /* ./../lib/standard//collection//array.nit:280 */
12620 REGB2 = TAG_Int(0);
12621 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12622 if (UNTAG_Bool(REGB0)) {
12623 } else {
12624 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12625 }
12626 /* ./../lib/standard//kernel.nit:233 */
12627 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12628 /* ./../lib/standard//collection//array.nit:280 */
12629 if (UNTAG_Bool(REGB2)) {
12630 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12631 if (UNTAG_Bool(REGB2)) {
12632 } else {
12633 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12634 }
12635 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12636 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12637 if (UNTAG_Bool(REGB0)) {
12638 } else {
12639 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12640 }
12641 /* ./../lib/standard//kernel.nit:232 */
12642 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12643 } else {
12644 /* ./../lib/standard//collection//array.nit:280 */
12645 REGB0 = TAG_Bool(false);
12646 REGB2 = REGB0;
12647 }
12648 if (UNTAG_Bool(REGB2)) {
12649 } else {
12650 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12651 }
12652 /* ./../lib/standard//collection//array.nit:281 */
12653 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12654 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12655 if (UNTAG_Bool(REGB2)) {
12656 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12657 }
12658 /* ./../lib/standard//collection//array.nit:718 */
12659 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12660 /* ./../lib/standard//collection//array.nit:281 */
12661 goto label351;
12662 label351: while(0);
12663 /* ./compiling//compiling_icode.nit:845 */
12664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12665 if (!once_value_352) {
12666 fra.me.REG[7] = BOX_NativeString("))");
12667 REGB1 = TAG_Int(2);
12668 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12669 once_value_352 = fra.me.REG[7];
12670 register_static_object(&once_value_352);
12671 } else fra.me.REG[7] = once_value_352;
12672 fra.me.REG[7] = fra.me.REG[7];
12673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12674 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12675 fra.me.REG[5] = fra.me.REG[6];
12676 } else {
12677 /* ./compiling//compiling_icode.nit:846 */
12678 if (!once_value_353) {
12679 if (!once_value_354) {
12680 fra.me.REG[6] = BOX_NativeString("!=");
12681 REGB1 = TAG_Int(2);
12682 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12683 once_value_354 = fra.me.REG[6];
12684 register_static_object(&once_value_354);
12685 } else fra.me.REG[6] = once_value_354;
12686 fra.me.REG[6] = fra.me.REG[6];
12687 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12688 once_value_353 = fra.me.REG[6];
12689 register_static_object(&once_value_353);
12690 } else fra.me.REG[6] = once_value_353;
12691 fra.me.REG[6] = fra.me.REG[6];
12692 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12693 if (UNTAG_Bool(REGB1)) {
12694 } else {
12695 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12696 REGB1 = REGB2;
12697 }
12698 if (UNTAG_Bool(REGB1)) {
12699 /* ./compiling//compiling_icode.nit:847 */
12700 REGB1 = TAG_Int(5);
12701 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12702 if (!once_value_355) {
12703 fra.me.REG[7] = BOX_NativeString("TAG_Bool((");
12704 REGB1 = TAG_Int(10);
12705 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12706 once_value_355 = fra.me.REG[7];
12707 register_static_object(&once_value_355);
12708 } else fra.me.REG[7] = once_value_355;
12709 fra.me.REG[7] = fra.me.REG[7];
12710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12711 REGB1 = TAG_Int(0);
12712 /* ./../lib/standard//collection//array.nit:278 */
12713 fra.me.REG[7] = fra.me.REG[4];
12714 /* ./../lib/standard//collection//array.nit:280 */
12715 REGB2 = TAG_Int(0);
12716 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12717 if (UNTAG_Bool(REGB0)) {
12718 } else {
12719 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12720 }
12721 /* ./../lib/standard//kernel.nit:233 */
12722 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12723 /* ./../lib/standard//collection//array.nit:280 */
12724 if (UNTAG_Bool(REGB2)) {
12725 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12726 if (UNTAG_Bool(REGB2)) {
12727 } else {
12728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12729 }
12730 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12731 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12732 if (UNTAG_Bool(REGB0)) {
12733 } else {
12734 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12735 }
12736 /* ./../lib/standard//kernel.nit:232 */
12737 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12738 } else {
12739 /* ./../lib/standard//collection//array.nit:280 */
12740 REGB0 = TAG_Bool(false);
12741 REGB2 = REGB0;
12742 }
12743 if (UNTAG_Bool(REGB2)) {
12744 } else {
12745 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12746 }
12747 /* ./../lib/standard//collection//array.nit:281 */
12748 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12749 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12750 if (UNTAG_Bool(REGB2)) {
12751 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12752 }
12753 /* ./../lib/standard//collection//array.nit:718 */
12754 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12755 /* ./../lib/standard//collection//array.nit:281 */
12756 goto label356;
12757 label356: while(0);
12758 /* ./compiling//compiling_icode.nit:847 */
12759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12760 if (!once_value_357) {
12761 fra.me.REG[7] = BOX_NativeString(")!=(");
12762 REGB1 = TAG_Int(4);
12763 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12764 once_value_357 = fra.me.REG[7];
12765 register_static_object(&once_value_357);
12766 } else fra.me.REG[7] = once_value_357;
12767 fra.me.REG[7] = fra.me.REG[7];
12768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12769 REGB1 = TAG_Int(1);
12770 /* ./../lib/standard//collection//array.nit:278 */
12771 fra.me.REG[7] = fra.me.REG[4];
12772 /* ./../lib/standard//collection//array.nit:280 */
12773 REGB2 = TAG_Int(0);
12774 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12775 if (UNTAG_Bool(REGB0)) {
12776 } else {
12777 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12778 }
12779 /* ./../lib/standard//kernel.nit:233 */
12780 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12781 /* ./../lib/standard//collection//array.nit:280 */
12782 if (UNTAG_Bool(REGB2)) {
12783 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12784 if (UNTAG_Bool(REGB2)) {
12785 } else {
12786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12787 }
12788 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12789 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12790 if (UNTAG_Bool(REGB0)) {
12791 } else {
12792 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12793 }
12794 /* ./../lib/standard//kernel.nit:232 */
12795 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12796 } else {
12797 /* ./../lib/standard//collection//array.nit:280 */
12798 REGB0 = TAG_Bool(false);
12799 REGB2 = REGB0;
12800 }
12801 if (UNTAG_Bool(REGB2)) {
12802 } else {
12803 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12804 }
12805 /* ./../lib/standard//collection//array.nit:281 */
12806 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12807 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12808 if (UNTAG_Bool(REGB2)) {
12809 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12810 }
12811 /* ./../lib/standard//collection//array.nit:718 */
12812 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12813 /* ./../lib/standard//collection//array.nit:281 */
12814 goto label358;
12815 label358: while(0);
12816 /* ./compiling//compiling_icode.nit:847 */
12817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12818 if (!once_value_359) {
12819 fra.me.REG[7] = BOX_NativeString("))");
12820 REGB1 = TAG_Int(2);
12821 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12822 once_value_359 = fra.me.REG[7];
12823 register_static_object(&once_value_359);
12824 } else fra.me.REG[7] = once_value_359;
12825 fra.me.REG[7] = fra.me.REG[7];
12826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12827 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12828 fra.me.REG[5] = fra.me.REG[6];
12829 }
12830 }
12831 }
12832 }
12833 }
12834 }
12835 }
12836 } else {
12837 /* ./compiling//compiling_icode.nit:849 */
12838 if (!once_value_360) {
12839 if (!once_value_361) {
12840 fra.me.REG[6] = BOX_NativeString("NativeArray");
12841 REGB1 = TAG_Int(11);
12842 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12843 once_value_361 = fra.me.REG[6];
12844 register_static_object(&once_value_361);
12845 } else fra.me.REG[6] = once_value_361;
12846 fra.me.REG[6] = fra.me.REG[6];
12847 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12848 once_value_360 = fra.me.REG[6];
12849 register_static_object(&once_value_360);
12850 } else fra.me.REG[6] = once_value_360;
12851 fra.me.REG[6] = fra.me.REG[6];
12852 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
12853 if (UNTAG_Bool(REGB1)) {
12854 } else {
12855 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
12856 REGB1 = REGB2;
12857 }
12858 if (UNTAG_Bool(REGB1)) {
12859 /* ./compiling//compiling_icode.nit:850 */
12860 if (!once_value_362) {
12861 if (!once_value_363) {
12862 fra.me.REG[6] = BOX_NativeString("object_id");
12863 REGB1 = TAG_Int(9);
12864 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12865 once_value_363 = fra.me.REG[6];
12866 register_static_object(&once_value_363);
12867 } else fra.me.REG[6] = once_value_363;
12868 fra.me.REG[6] = fra.me.REG[6];
12869 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12870 once_value_362 = fra.me.REG[6];
12871 register_static_object(&once_value_362);
12872 } else fra.me.REG[6] = once_value_362;
12873 fra.me.REG[6] = fra.me.REG[6];
12874 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12875 if (UNTAG_Bool(REGB1)) {
12876 } else {
12877 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12878 REGB1 = REGB2;
12879 }
12880 if (UNTAG_Bool(REGB1)) {
12881 /* ./compiling//compiling_icode.nit:851 */
12882 REGB1 = TAG_Int(3);
12883 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12884 if (!once_value_364) {
12885 fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)");
12886 REGB1 = TAG_Int(26);
12887 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12888 once_value_364 = fra.me.REG[7];
12889 register_static_object(&once_value_364);
12890 } else fra.me.REG[7] = once_value_364;
12891 fra.me.REG[7] = fra.me.REG[7];
12892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12893 REGB1 = TAG_Int(0);
12894 /* ./../lib/standard//collection//array.nit:278 */
12895 fra.me.REG[7] = fra.me.REG[4];
12896 /* ./../lib/standard//collection//array.nit:280 */
12897 REGB2 = TAG_Int(0);
12898 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12899 if (UNTAG_Bool(REGB0)) {
12900 } else {
12901 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12902 }
12903 /* ./../lib/standard//kernel.nit:233 */
12904 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
12905 /* ./../lib/standard//collection//array.nit:280 */
12906 if (UNTAG_Bool(REGB2)) {
12907 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
12908 if (UNTAG_Bool(REGB2)) {
12909 } else {
12910 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
12911 }
12912 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
12913 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12914 if (UNTAG_Bool(REGB0)) {
12915 } else {
12916 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12917 }
12918 /* ./../lib/standard//kernel.nit:232 */
12919 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
12920 } else {
12921 /* ./../lib/standard//collection//array.nit:280 */
12922 REGB0 = TAG_Bool(false);
12923 REGB2 = REGB0;
12924 }
12925 if (UNTAG_Bool(REGB2)) {
12926 } else {
12927 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
12928 }
12929 /* ./../lib/standard//collection//array.nit:281 */
12930 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
12931 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
12932 if (UNTAG_Bool(REGB2)) {
12933 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
12934 }
12935 /* ./../lib/standard//collection//array.nit:718 */
12936 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
12937 /* ./../lib/standard//collection//array.nit:281 */
12938 goto label365;
12939 label365: while(0);
12940 /* ./compiling//compiling_icode.nit:851 */
12941 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12942 if (!once_value_366) {
12943 fra.me.REG[7] = BOX_NativeString(")->object_id)");
12944 REGB1 = TAG_Int(13);
12945 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12946 once_value_366 = fra.me.REG[7];
12947 register_static_object(&once_value_366);
12948 } else fra.me.REG[7] = once_value_366;
12949 fra.me.REG[7] = fra.me.REG[7];
12950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12951 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
12952 fra.me.REG[5] = fra.me.REG[6];
12953 } else {
12954 /* ./compiling//compiling_icode.nit:852 */
12955 if (!once_value_367) {
12956 if (!once_value_368) {
12957 fra.me.REG[6] = BOX_NativeString("[]");
12958 REGB1 = TAG_Int(2);
12959 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
12960 once_value_368 = fra.me.REG[6];
12961 register_static_object(&once_value_368);
12962 } else fra.me.REG[6] = once_value_368;
12963 fra.me.REG[6] = fra.me.REG[6];
12964 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
12965 once_value_367 = fra.me.REG[6];
12966 register_static_object(&once_value_367);
12967 } else fra.me.REG[6] = once_value_367;
12968 fra.me.REG[6] = fra.me.REG[6];
12969 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
12970 if (UNTAG_Bool(REGB1)) {
12971 } else {
12972 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
12973 REGB1 = REGB2;
12974 }
12975 if (UNTAG_Bool(REGB1)) {
12976 /* ./compiling//compiling_icode.nit:853 */
12977 REGB1 = TAG_Int(5);
12978 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
12979 if (!once_value_369) {
12980 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
12981 REGB1 = TAG_Int(18);
12982 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
12983 once_value_369 = fra.me.REG[7];
12984 register_static_object(&once_value_369);
12985 } else fra.me.REG[7] = once_value_369;
12986 fra.me.REG[7] = fra.me.REG[7];
12987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12988 REGB1 = TAG_Int(0);
12989 /* ./../lib/standard//collection//array.nit:278 */
12990 fra.me.REG[7] = fra.me.REG[4];
12991 /* ./../lib/standard//collection//array.nit:280 */
12992 REGB2 = TAG_Int(0);
12993 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
12994 if (UNTAG_Bool(REGB0)) {
12995 } else {
12996 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
12997 }
12998 /* ./../lib/standard//kernel.nit:233 */
12999 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13000 /* ./../lib/standard//collection//array.nit:280 */
13001 if (UNTAG_Bool(REGB2)) {
13002 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13003 if (UNTAG_Bool(REGB2)) {
13004 } else {
13005 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13006 }
13007 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13008 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13009 if (UNTAG_Bool(REGB0)) {
13010 } else {
13011 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13012 }
13013 /* ./../lib/standard//kernel.nit:232 */
13014 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13015 } else {
13016 /* ./../lib/standard//collection//array.nit:280 */
13017 REGB0 = TAG_Bool(false);
13018 REGB2 = REGB0;
13019 }
13020 if (UNTAG_Bool(REGB2)) {
13021 } else {
13022 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13023 }
13024 /* ./../lib/standard//collection//array.nit:281 */
13025 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13026 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13027 if (UNTAG_Bool(REGB2)) {
13028 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13029 }
13030 /* ./../lib/standard//collection//array.nit:718 */
13031 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13032 /* ./../lib/standard//collection//array.nit:281 */
13033 goto label370;
13034 label370: while(0);
13035 /* ./compiling//compiling_icode.nit:853 */
13036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13037 if (!once_value_371) {
13038 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13039 REGB1 = TAG_Int(17);
13040 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13041 once_value_371 = fra.me.REG[7];
13042 register_static_object(&once_value_371);
13043 } else fra.me.REG[7] = once_value_371;
13044 fra.me.REG[7] = fra.me.REG[7];
13045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13046 REGB1 = TAG_Int(1);
13047 /* ./../lib/standard//collection//array.nit:278 */
13048 fra.me.REG[7] = fra.me.REG[4];
13049 /* ./../lib/standard//collection//array.nit:280 */
13050 REGB2 = TAG_Int(0);
13051 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13052 if (UNTAG_Bool(REGB0)) {
13053 } else {
13054 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13055 }
13056 /* ./../lib/standard//kernel.nit:233 */
13057 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13058 /* ./../lib/standard//collection//array.nit:280 */
13059 if (UNTAG_Bool(REGB2)) {
13060 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13061 if (UNTAG_Bool(REGB2)) {
13062 } else {
13063 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13064 }
13065 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13066 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13067 if (UNTAG_Bool(REGB0)) {
13068 } else {
13069 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13070 }
13071 /* ./../lib/standard//kernel.nit:232 */
13072 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13073 } else {
13074 /* ./../lib/standard//collection//array.nit:280 */
13075 REGB0 = TAG_Bool(false);
13076 REGB2 = REGB0;
13077 }
13078 if (UNTAG_Bool(REGB2)) {
13079 } else {
13080 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13081 }
13082 /* ./../lib/standard//collection//array.nit:281 */
13083 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13084 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13085 if (UNTAG_Bool(REGB2)) {
13086 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13087 }
13088 /* ./../lib/standard//collection//array.nit:718 */
13089 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13090 /* ./../lib/standard//collection//array.nit:281 */
13091 goto label372;
13092 label372: while(0);
13093 /* ./compiling//compiling_icode.nit:853 */
13094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13095 if (!once_value_373) {
13096 fra.me.REG[7] = BOX_NativeString(")]");
13097 REGB1 = TAG_Int(2);
13098 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13099 once_value_373 = fra.me.REG[7];
13100 register_static_object(&once_value_373);
13101 } else fra.me.REG[7] = once_value_373;
13102 fra.me.REG[7] = fra.me.REG[7];
13103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13104 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13105 fra.me.REG[5] = fra.me.REG[6];
13106 } else {
13107 /* ./compiling//compiling_icode.nit:854 */
13108 if (!once_value_374) {
13109 if (!once_value_375) {
13110 fra.me.REG[6] = BOX_NativeString("[]=");
13111 REGB1 = TAG_Int(3);
13112 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13113 once_value_375 = fra.me.REG[6];
13114 register_static_object(&once_value_375);
13115 } else fra.me.REG[6] = once_value_375;
13116 fra.me.REG[6] = fra.me.REG[6];
13117 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13118 once_value_374 = fra.me.REG[6];
13119 register_static_object(&once_value_374);
13120 } else fra.me.REG[6] = once_value_374;
13121 fra.me.REG[6] = fra.me.REG[6];
13122 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13123 if (UNTAG_Bool(REGB1)) {
13124 } else {
13125 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13126 REGB1 = REGB2;
13127 }
13128 if (UNTAG_Bool(REGB1)) {
13129 /* ./compiling//compiling_icode.nit:855 */
13130 REGB1 = TAG_Int(7);
13131 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13132 if (!once_value_376) {
13133 fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)");
13134 REGB1 = TAG_Int(18);
13135 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13136 once_value_376 = fra.me.REG[7];
13137 register_static_object(&once_value_376);
13138 } else fra.me.REG[7] = once_value_376;
13139 fra.me.REG[7] = fra.me.REG[7];
13140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13141 REGB1 = TAG_Int(0);
13142 /* ./../lib/standard//collection//array.nit:278 */
13143 fra.me.REG[7] = fra.me.REG[4];
13144 /* ./../lib/standard//collection//array.nit:280 */
13145 REGB2 = TAG_Int(0);
13146 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13147 if (UNTAG_Bool(REGB0)) {
13148 } else {
13149 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13150 }
13151 /* ./../lib/standard//kernel.nit:233 */
13152 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13153 /* ./../lib/standard//collection//array.nit:280 */
13154 if (UNTAG_Bool(REGB2)) {
13155 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13156 if (UNTAG_Bool(REGB2)) {
13157 } else {
13158 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13159 }
13160 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13161 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13162 if (UNTAG_Bool(REGB0)) {
13163 } else {
13164 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13165 }
13166 /* ./../lib/standard//kernel.nit:232 */
13167 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13168 } else {
13169 /* ./../lib/standard//collection//array.nit:280 */
13170 REGB0 = TAG_Bool(false);
13171 REGB2 = REGB0;
13172 }
13173 if (UNTAG_Bool(REGB2)) {
13174 } else {
13175 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13176 }
13177 /* ./../lib/standard//collection//array.nit:281 */
13178 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13179 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13180 if (UNTAG_Bool(REGB2)) {
13181 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13182 }
13183 /* ./../lib/standard//collection//array.nit:718 */
13184 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13185 /* ./../lib/standard//collection//array.nit:281 */
13186 goto label377;
13187 label377: while(0);
13188 /* ./compiling//compiling_icode.nit:855 */
13189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13190 if (!once_value_378) {
13191 fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
13192 REGB1 = TAG_Int(17);
13193 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13194 once_value_378 = fra.me.REG[7];
13195 register_static_object(&once_value_378);
13196 } else fra.me.REG[7] = once_value_378;
13197 fra.me.REG[7] = fra.me.REG[7];
13198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13199 REGB1 = TAG_Int(1);
13200 /* ./../lib/standard//collection//array.nit:278 */
13201 fra.me.REG[7] = fra.me.REG[4];
13202 /* ./../lib/standard//collection//array.nit:280 */
13203 REGB2 = TAG_Int(0);
13204 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13205 if (UNTAG_Bool(REGB0)) {
13206 } else {
13207 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13208 }
13209 /* ./../lib/standard//kernel.nit:233 */
13210 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13211 /* ./../lib/standard//collection//array.nit:280 */
13212 if (UNTAG_Bool(REGB2)) {
13213 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13214 if (UNTAG_Bool(REGB2)) {
13215 } else {
13216 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13217 }
13218 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13219 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13220 if (UNTAG_Bool(REGB0)) {
13221 } else {
13222 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13223 }
13224 /* ./../lib/standard//kernel.nit:232 */
13225 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13226 } else {
13227 /* ./../lib/standard//collection//array.nit:280 */
13228 REGB0 = TAG_Bool(false);
13229 REGB2 = REGB0;
13230 }
13231 if (UNTAG_Bool(REGB2)) {
13232 } else {
13233 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13234 }
13235 /* ./../lib/standard//collection//array.nit:281 */
13236 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13237 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13238 if (UNTAG_Bool(REGB2)) {
13239 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13240 }
13241 /* ./../lib/standard//collection//array.nit:718 */
13242 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13243 /* ./../lib/standard//collection//array.nit:281 */
13244 goto label379;
13245 label379: while(0);
13246 /* ./compiling//compiling_icode.nit:855 */
13247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13248 if (!once_value_380) {
13249 fra.me.REG[7] = BOX_NativeString(")]=");
13250 REGB1 = TAG_Int(3);
13251 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13252 once_value_380 = fra.me.REG[7];
13253 register_static_object(&once_value_380);
13254 } else fra.me.REG[7] = once_value_380;
13255 fra.me.REG[7] = fra.me.REG[7];
13256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13257 REGB1 = TAG_Int(2);
13258 /* ./../lib/standard//collection//array.nit:278 */
13259 fra.me.REG[7] = fra.me.REG[4];
13260 /* ./../lib/standard//collection//array.nit:280 */
13261 REGB2 = TAG_Int(0);
13262 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13263 if (UNTAG_Bool(REGB0)) {
13264 } else {
13265 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13266 }
13267 /* ./../lib/standard//kernel.nit:233 */
13268 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13269 /* ./../lib/standard//collection//array.nit:280 */
13270 if (UNTAG_Bool(REGB2)) {
13271 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13272 if (UNTAG_Bool(REGB2)) {
13273 } else {
13274 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13275 }
13276 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13277 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13278 if (UNTAG_Bool(REGB0)) {
13279 } else {
13280 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13281 }
13282 /* ./../lib/standard//kernel.nit:232 */
13283 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13284 } else {
13285 /* ./../lib/standard//collection//array.nit:280 */
13286 REGB0 = TAG_Bool(false);
13287 REGB2 = REGB0;
13288 }
13289 if (UNTAG_Bool(REGB2)) {
13290 } else {
13291 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13292 }
13293 /* ./../lib/standard//collection//array.nit:281 */
13294 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13295 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13296 if (UNTAG_Bool(REGB2)) {
13297 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13298 }
13299 /* ./../lib/standard//collection//array.nit:718 */
13300 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13301 /* ./../lib/standard//collection//array.nit:281 */
13302 goto label381;
13303 label381: while(0);
13304 /* ./compiling//compiling_icode.nit:855 */
13305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13306 if (!once_value_382) {
13307 fra.me.REG[7] = BOX_NativeString("");
13308 REGB1 = TAG_Int(0);
13309 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13310 once_value_382 = fra.me.REG[7];
13311 register_static_object(&once_value_382);
13312 } else fra.me.REG[7] = once_value_382;
13313 fra.me.REG[7] = fra.me.REG[7];
13314 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13315 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13316 fra.me.REG[5] = fra.me.REG[6];
13317 } else {
13318 /* ./compiling//compiling_icode.nit:856 */
13319 if (!once_value_383) {
13320 if (!once_value_384) {
13321 fra.me.REG[6] = BOX_NativeString("copy_to");
13322 REGB1 = TAG_Int(7);
13323 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13324 once_value_384 = fra.me.REG[6];
13325 register_static_object(&once_value_384);
13326 } else fra.me.REG[6] = once_value_384;
13327 fra.me.REG[6] = fra.me.REG[6];
13328 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13329 once_value_383 = fra.me.REG[6];
13330 register_static_object(&once_value_383);
13331 } else fra.me.REG[6] = once_value_383;
13332 fra.me.REG[6] = fra.me.REG[6];
13333 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13334 if (UNTAG_Bool(REGB1)) {
13335 } else {
13336 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13337 REGB1 = REGB2;
13338 }
13339 if (UNTAG_Bool(REGB1)) {
13340 /* ./compiling//compiling_icode.nit:857 */
13341 REGB1 = TAG_Int(7);
13342 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13343 if (!once_value_385) {
13344 fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )");
13345 REGB1 = TAG_Int(32);
13346 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13347 once_value_385 = fra.me.REG[7];
13348 register_static_object(&once_value_385);
13349 } else fra.me.REG[7] = once_value_385;
13350 fra.me.REG[7] = fra.me.REG[7];
13351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13352 REGB1 = TAG_Int(1);
13353 /* ./../lib/standard//collection//array.nit:278 */
13354 fra.me.REG[7] = fra.me.REG[4];
13355 /* ./../lib/standard//collection//array.nit:280 */
13356 REGB2 = TAG_Int(0);
13357 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13358 if (UNTAG_Bool(REGB0)) {
13359 } else {
13360 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13361 }
13362 /* ./../lib/standard//kernel.nit:233 */
13363 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13364 /* ./../lib/standard//collection//array.nit:280 */
13365 if (UNTAG_Bool(REGB2)) {
13366 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13367 if (UNTAG_Bool(REGB2)) {
13368 } else {
13369 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13370 }
13371 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13372 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13373 if (UNTAG_Bool(REGB0)) {
13374 } else {
13375 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13376 }
13377 /* ./../lib/standard//kernel.nit:232 */
13378 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13379 } else {
13380 /* ./../lib/standard//collection//array.nit:280 */
13381 REGB0 = TAG_Bool(false);
13382 REGB2 = REGB0;
13383 }
13384 if (UNTAG_Bool(REGB2)) {
13385 } else {
13386 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13387 }
13388 /* ./../lib/standard//collection//array.nit:281 */
13389 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13390 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13391 if (UNTAG_Bool(REGB2)) {
13392 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13393 }
13394 /* ./../lib/standard//collection//array.nit:718 */
13395 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13396 /* ./../lib/standard//collection//array.nit:281 */
13397 goto label386;
13398 label386: while(0);
13399 /* ./compiling//compiling_icode.nit:857 */
13400 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13401 if (!once_value_387) {
13402 fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
13403 REGB1 = TAG_Int(26);
13404 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13405 once_value_387 = fra.me.REG[7];
13406 register_static_object(&once_value_387);
13407 } else fra.me.REG[7] = once_value_387;
13408 fra.me.REG[7] = fra.me.REG[7];
13409 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13410 REGB1 = TAG_Int(0);
13411 /* ./../lib/standard//collection//array.nit:278 */
13412 fra.me.REG[7] = fra.me.REG[4];
13413 /* ./../lib/standard//collection//array.nit:280 */
13414 REGB2 = TAG_Int(0);
13415 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13416 if (UNTAG_Bool(REGB0)) {
13417 } else {
13418 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13419 }
13420 /* ./../lib/standard//kernel.nit:233 */
13421 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13422 /* ./../lib/standard//collection//array.nit:280 */
13423 if (UNTAG_Bool(REGB2)) {
13424 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13425 if (UNTAG_Bool(REGB2)) {
13426 } else {
13427 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13428 }
13429 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13430 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13431 if (UNTAG_Bool(REGB0)) {
13432 } else {
13433 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13434 }
13435 /* ./../lib/standard//kernel.nit:232 */
13436 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13437 } else {
13438 /* ./../lib/standard//collection//array.nit:280 */
13439 REGB0 = TAG_Bool(false);
13440 REGB2 = REGB0;
13441 }
13442 if (UNTAG_Bool(REGB2)) {
13443 } else {
13444 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13445 }
13446 /* ./../lib/standard//collection//array.nit:281 */
13447 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13448 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13449 if (UNTAG_Bool(REGB2)) {
13450 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13451 }
13452 /* ./../lib/standard//collection//array.nit:718 */
13453 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13454 /* ./../lib/standard//collection//array.nit:281 */
13455 goto label388;
13456 label388: while(0);
13457 /* ./compiling//compiling_icode.nit:857 */
13458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13459 if (!once_value_389) {
13460 fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
13461 REGB1 = TAG_Int(18);
13462 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13463 once_value_389 = fra.me.REG[7];
13464 register_static_object(&once_value_389);
13465 } else fra.me.REG[7] = once_value_389;
13466 fra.me.REG[7] = fra.me.REG[7];
13467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13468 REGB1 = TAG_Int(2);
13469 /* ./../lib/standard//collection//array.nit:278 */
13470 fra.me.REG[7] = fra.me.REG[4];
13471 /* ./../lib/standard//collection//array.nit:280 */
13472 REGB2 = TAG_Int(0);
13473 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13474 if (UNTAG_Bool(REGB0)) {
13475 } else {
13476 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13477 }
13478 /* ./../lib/standard//kernel.nit:233 */
13479 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13480 /* ./../lib/standard//collection//array.nit:280 */
13481 if (UNTAG_Bool(REGB2)) {
13482 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
13483 if (UNTAG_Bool(REGB2)) {
13484 } else {
13485 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13486 }
13487 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
13488 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13489 if (UNTAG_Bool(REGB0)) {
13490 } else {
13491 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13492 }
13493 /* ./../lib/standard//kernel.nit:232 */
13494 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13495 } else {
13496 /* ./../lib/standard//collection//array.nit:280 */
13497 REGB0 = TAG_Bool(false);
13498 REGB2 = REGB0;
13499 }
13500 if (UNTAG_Bool(REGB2)) {
13501 } else {
13502 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13503 }
13504 /* ./../lib/standard//collection//array.nit:281 */
13505 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
13506 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13507 if (UNTAG_Bool(REGB2)) {
13508 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13509 }
13510 /* ./../lib/standard//collection//array.nit:718 */
13511 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
13512 /* ./../lib/standard//collection//array.nit:281 */
13513 goto label390;
13514 label390: while(0);
13515 /* ./compiling//compiling_icode.nit:857 */
13516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13517 if (!once_value_391) {
13518 fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
13519 REGB1 = TAG_Int(16);
13520 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
13521 once_value_391 = fra.me.REG[7];
13522 register_static_object(&once_value_391);
13523 } else fra.me.REG[7] = once_value_391;
13524 fra.me.REG[7] = fra.me.REG[7];
13525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
13526 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13527 fra.me.REG[5] = fra.me.REG[6];
13528 }
13529 }
13530 }
13531 }
13532 } else {
13533 /* ./compiling//compiling_icode.nit:859 */
13534 if (!once_value_392) {
13535 if (!once_value_393) {
13536 fra.me.REG[6] = BOX_NativeString("NativeString");
13537 REGB1 = TAG_Int(12);
13538 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13539 once_value_393 = fra.me.REG[6];
13540 register_static_object(&once_value_393);
13541 } else fra.me.REG[6] = once_value_393;
13542 fra.me.REG[6] = fra.me.REG[6];
13543 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13544 once_value_392 = fra.me.REG[6];
13545 register_static_object(&once_value_392);
13546 } else fra.me.REG[6] = once_value_392;
13547 fra.me.REG[6] = fra.me.REG[6];
13548 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6]));
13549 if (UNTAG_Bool(REGB1)) {
13550 } else {
13551 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
13552 REGB1 = REGB2;
13553 }
13554 if (UNTAG_Bool(REGB1)) {
13555 /* ./compiling//compiling_icode.nit:860 */
13556 if (!once_value_394) {
13557 if (!once_value_395) {
13558 fra.me.REG[6] = BOX_NativeString("object_id");
13559 REGB1 = TAG_Int(9);
13560 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13561 once_value_395 = fra.me.REG[6];
13562 register_static_object(&once_value_395);
13563 } else fra.me.REG[6] = once_value_395;
13564 fra.me.REG[6] = fra.me.REG[6];
13565 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13566 once_value_394 = fra.me.REG[6];
13567 register_static_object(&once_value_394);
13568 } else fra.me.REG[6] = once_value_394;
13569 fra.me.REG[6] = fra.me.REG[6];
13570 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13571 if (UNTAG_Bool(REGB1)) {
13572 } else {
13573 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13574 REGB1 = REGB2;
13575 }
13576 if (UNTAG_Bool(REGB1)) {
13577 /* ./compiling//compiling_icode.nit:861 */
13578 REGB1 = TAG_Int(3);
13579 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13580 if (!once_value_396) {
13581 fra.me.REG[2] = BOX_NativeString("TAG_Int(UNBOX_NativeString(");
13582 REGB1 = TAG_Int(27);
13583 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13584 once_value_396 = fra.me.REG[2];
13585 register_static_object(&once_value_396);
13586 } else fra.me.REG[2] = once_value_396;
13587 fra.me.REG[2] = fra.me.REG[2];
13588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13589 REGB1 = TAG_Int(0);
13590 /* ./../lib/standard//collection//array.nit:278 */
13591 fra.me.REG[2] = fra.me.REG[4];
13592 /* ./../lib/standard//collection//array.nit:280 */
13593 REGB2 = TAG_Int(0);
13594 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13595 if (UNTAG_Bool(REGB0)) {
13596 } else {
13597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13598 }
13599 /* ./../lib/standard//kernel.nit:233 */
13600 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13601 /* ./../lib/standard//collection//array.nit:280 */
13602 if (UNTAG_Bool(REGB2)) {
13603 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13604 if (UNTAG_Bool(REGB2)) {
13605 } else {
13606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13607 }
13608 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
13609 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13610 if (UNTAG_Bool(REGB0)) {
13611 } else {
13612 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13613 }
13614 /* ./../lib/standard//kernel.nit:232 */
13615 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13616 } else {
13617 /* ./../lib/standard//collection//array.nit:280 */
13618 REGB0 = TAG_Bool(false);
13619 REGB2 = REGB0;
13620 }
13621 if (UNTAG_Bool(REGB2)) {
13622 } else {
13623 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13624 }
13625 /* ./../lib/standard//collection//array.nit:281 */
13626 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
13627 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13628 if (UNTAG_Bool(REGB2)) {
13629 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13630 }
13631 /* ./../lib/standard//collection//array.nit:718 */
13632 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13633 /* ./../lib/standard//collection//array.nit:281 */
13634 goto label397;
13635 label397: while(0);
13636 /* ./compiling//compiling_icode.nit:861 */
13637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13638 if (!once_value_398) {
13639 fra.me.REG[2] = BOX_NativeString("))");
13640 REGB1 = TAG_Int(2);
13641 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13642 once_value_398 = fra.me.REG[2];
13643 register_static_object(&once_value_398);
13644 } else fra.me.REG[2] = once_value_398;
13645 fra.me.REG[2] = fra.me.REG[2];
13646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13647 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13648 fra.me.REG[5] = fra.me.REG[6];
13649 } else {
13650 /* ./compiling//compiling_icode.nit:862 */
13651 if (!once_value_399) {
13652 if (!once_value_400) {
13653 fra.me.REG[6] = BOX_NativeString("atoi");
13654 REGB1 = TAG_Int(4);
13655 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13656 once_value_400 = fra.me.REG[6];
13657 register_static_object(&once_value_400);
13658 } else fra.me.REG[6] = once_value_400;
13659 fra.me.REG[6] = fra.me.REG[6];
13660 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13661 once_value_399 = fra.me.REG[6];
13662 register_static_object(&once_value_399);
13663 } else fra.me.REG[6] = once_value_399;
13664 fra.me.REG[6] = fra.me.REG[6];
13665 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13666 if (UNTAG_Bool(REGB1)) {
13667 } else {
13668 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13669 REGB1 = REGB2;
13670 }
13671 if (UNTAG_Bool(REGB1)) {
13672 /* ./compiling//compiling_icode.nit:863 */
13673 REGB1 = TAG_Int(3);
13674 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13675 if (!once_value_401) {
13676 fra.me.REG[2] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(");
13677 REGB1 = TAG_Int(32);
13678 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13679 once_value_401 = fra.me.REG[2];
13680 register_static_object(&once_value_401);
13681 } else fra.me.REG[2] = once_value_401;
13682 fra.me.REG[2] = fra.me.REG[2];
13683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13684 REGB1 = TAG_Int(0);
13685 /* ./../lib/standard//collection//array.nit:278 */
13686 fra.me.REG[2] = fra.me.REG[4];
13687 /* ./../lib/standard//collection//array.nit:280 */
13688 REGB2 = TAG_Int(0);
13689 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13690 if (UNTAG_Bool(REGB0)) {
13691 } else {
13692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13693 }
13694 /* ./../lib/standard//kernel.nit:233 */
13695 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13696 /* ./../lib/standard//collection//array.nit:280 */
13697 if (UNTAG_Bool(REGB2)) {
13698 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13699 if (UNTAG_Bool(REGB2)) {
13700 } else {
13701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13702 }
13703 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
13704 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13705 if (UNTAG_Bool(REGB0)) {
13706 } else {
13707 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13708 }
13709 /* ./../lib/standard//kernel.nit:232 */
13710 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13711 } else {
13712 /* ./../lib/standard//collection//array.nit:280 */
13713 REGB0 = TAG_Bool(false);
13714 REGB2 = REGB0;
13715 }
13716 if (UNTAG_Bool(REGB2)) {
13717 } else {
13718 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13719 }
13720 /* ./../lib/standard//collection//array.nit:281 */
13721 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
13722 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13723 if (UNTAG_Bool(REGB2)) {
13724 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13725 }
13726 /* ./../lib/standard//collection//array.nit:718 */
13727 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13728 /* ./../lib/standard//collection//array.nit:281 */
13729 goto label402;
13730 label402: while(0);
13731 /* ./compiling//compiling_icode.nit:863 */
13732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13733 if (!once_value_403) {
13734 fra.me.REG[2] = BOX_NativeString(")))");
13735 REGB1 = TAG_Int(3);
13736 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13737 once_value_403 = fra.me.REG[2];
13738 register_static_object(&once_value_403);
13739 } else fra.me.REG[2] = once_value_403;
13740 fra.me.REG[2] = fra.me.REG[2];
13741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13742 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13743 fra.me.REG[5] = fra.me.REG[6];
13744 } else {
13745 /* ./compiling//compiling_icode.nit:864 */
13746 if (!once_value_404) {
13747 if (!once_value_405) {
13748 fra.me.REG[6] = BOX_NativeString("[]");
13749 REGB1 = TAG_Int(2);
13750 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13751 once_value_405 = fra.me.REG[6];
13752 register_static_object(&once_value_405);
13753 } else fra.me.REG[6] = once_value_405;
13754 fra.me.REG[6] = fra.me.REG[6];
13755 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13756 once_value_404 = fra.me.REG[6];
13757 register_static_object(&once_value_404);
13758 } else fra.me.REG[6] = once_value_404;
13759 fra.me.REG[6] = fra.me.REG[6];
13760 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13761 if (UNTAG_Bool(REGB1)) {
13762 } else {
13763 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13764 REGB1 = REGB2;
13765 }
13766 if (UNTAG_Bool(REGB1)) {
13767 /* ./compiling//compiling_icode.nit:865 */
13768 REGB1 = TAG_Int(5);
13769 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13770 if (!once_value_406) {
13771 fra.me.REG[2] = BOX_NativeString("TAG_Char(UNBOX_NativeString(");
13772 REGB1 = TAG_Int(28);
13773 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13774 once_value_406 = fra.me.REG[2];
13775 register_static_object(&once_value_406);
13776 } else fra.me.REG[2] = once_value_406;
13777 fra.me.REG[2] = fra.me.REG[2];
13778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13779 REGB1 = TAG_Int(0);
13780 /* ./../lib/standard//collection//array.nit:278 */
13781 fra.me.REG[2] = fra.me.REG[4];
13782 /* ./../lib/standard//collection//array.nit:280 */
13783 REGB2 = TAG_Int(0);
13784 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13785 if (UNTAG_Bool(REGB0)) {
13786 } else {
13787 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13788 }
13789 /* ./../lib/standard//kernel.nit:233 */
13790 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13791 /* ./../lib/standard//collection//array.nit:280 */
13792 if (UNTAG_Bool(REGB2)) {
13793 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13794 if (UNTAG_Bool(REGB2)) {
13795 } else {
13796 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13797 }
13798 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
13799 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13800 if (UNTAG_Bool(REGB0)) {
13801 } else {
13802 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13803 }
13804 /* ./../lib/standard//kernel.nit:232 */
13805 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13806 } else {
13807 /* ./../lib/standard//collection//array.nit:280 */
13808 REGB0 = TAG_Bool(false);
13809 REGB2 = REGB0;
13810 }
13811 if (UNTAG_Bool(REGB2)) {
13812 } else {
13813 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13814 }
13815 /* ./../lib/standard//collection//array.nit:281 */
13816 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
13817 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13818 if (UNTAG_Bool(REGB2)) {
13819 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13820 }
13821 /* ./../lib/standard//collection//array.nit:718 */
13822 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13823 /* ./../lib/standard//collection//array.nit:281 */
13824 goto label407;
13825 label407: while(0);
13826 /* ./compiling//compiling_icode.nit:865 */
13827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13828 if (!once_value_408) {
13829 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
13830 REGB1 = TAG_Int(12);
13831 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13832 once_value_408 = fra.me.REG[2];
13833 register_static_object(&once_value_408);
13834 } else fra.me.REG[2] = once_value_408;
13835 fra.me.REG[2] = fra.me.REG[2];
13836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13837 REGB1 = TAG_Int(1);
13838 /* ./../lib/standard//collection//array.nit:278 */
13839 fra.me.REG[2] = fra.me.REG[4];
13840 /* ./../lib/standard//collection//array.nit:280 */
13841 REGB2 = TAG_Int(0);
13842 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13843 if (UNTAG_Bool(REGB0)) {
13844 } else {
13845 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13846 }
13847 /* ./../lib/standard//kernel.nit:233 */
13848 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13849 /* ./../lib/standard//collection//array.nit:280 */
13850 if (UNTAG_Bool(REGB2)) {
13851 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13852 if (UNTAG_Bool(REGB2)) {
13853 } else {
13854 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13855 }
13856 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
13857 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13858 if (UNTAG_Bool(REGB0)) {
13859 } else {
13860 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13861 }
13862 /* ./../lib/standard//kernel.nit:232 */
13863 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13864 } else {
13865 /* ./../lib/standard//collection//array.nit:280 */
13866 REGB0 = TAG_Bool(false);
13867 REGB2 = REGB0;
13868 }
13869 if (UNTAG_Bool(REGB2)) {
13870 } else {
13871 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13872 }
13873 /* ./../lib/standard//collection//array.nit:281 */
13874 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
13875 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13876 if (UNTAG_Bool(REGB2)) {
13877 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13878 }
13879 /* ./../lib/standard//collection//array.nit:718 */
13880 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13881 /* ./../lib/standard//collection//array.nit:281 */
13882 goto label409;
13883 label409: while(0);
13884 /* ./compiling//compiling_icode.nit:865 */
13885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13886 if (!once_value_410) {
13887 fra.me.REG[2] = BOX_NativeString(")])");
13888 REGB1 = TAG_Int(3);
13889 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13890 once_value_410 = fra.me.REG[2];
13891 register_static_object(&once_value_410);
13892 } else fra.me.REG[2] = once_value_410;
13893 fra.me.REG[2] = fra.me.REG[2];
13894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13895 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
13896 fra.me.REG[5] = fra.me.REG[6];
13897 } else {
13898 /* ./compiling//compiling_icode.nit:866 */
13899 if (!once_value_411) {
13900 if (!once_value_412) {
13901 fra.me.REG[6] = BOX_NativeString("[]=");
13902 REGB1 = TAG_Int(3);
13903 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
13904 once_value_412 = fra.me.REG[6];
13905 register_static_object(&once_value_412);
13906 } else fra.me.REG[6] = once_value_412;
13907 fra.me.REG[6] = fra.me.REG[6];
13908 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
13909 once_value_411 = fra.me.REG[6];
13910 register_static_object(&once_value_411);
13911 } else fra.me.REG[6] = once_value_411;
13912 fra.me.REG[6] = fra.me.REG[6];
13913 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
13914 if (UNTAG_Bool(REGB1)) {
13915 } else {
13916 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
13917 REGB1 = REGB2;
13918 }
13919 if (UNTAG_Bool(REGB1)) {
13920 /* ./compiling//compiling_icode.nit:867 */
13921 REGB1 = TAG_Int(7);
13922 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
13923 if (!once_value_413) {
13924 fra.me.REG[2] = BOX_NativeString("UNBOX_NativeString(");
13925 REGB1 = TAG_Int(19);
13926 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13927 once_value_413 = fra.me.REG[2];
13928 register_static_object(&once_value_413);
13929 } else fra.me.REG[2] = once_value_413;
13930 fra.me.REG[2] = fra.me.REG[2];
13931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13932 REGB1 = TAG_Int(0);
13933 /* ./../lib/standard//collection//array.nit:278 */
13934 fra.me.REG[2] = fra.me.REG[4];
13935 /* ./../lib/standard//collection//array.nit:280 */
13936 REGB2 = TAG_Int(0);
13937 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13938 if (UNTAG_Bool(REGB0)) {
13939 } else {
13940 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13941 }
13942 /* ./../lib/standard//kernel.nit:233 */
13943 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
13944 /* ./../lib/standard//collection//array.nit:280 */
13945 if (UNTAG_Bool(REGB2)) {
13946 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
13947 if (UNTAG_Bool(REGB2)) {
13948 } else {
13949 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
13950 }
13951 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
13952 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13953 if (UNTAG_Bool(REGB0)) {
13954 } else {
13955 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13956 }
13957 /* ./../lib/standard//kernel.nit:232 */
13958 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
13959 } else {
13960 /* ./../lib/standard//collection//array.nit:280 */
13961 REGB0 = TAG_Bool(false);
13962 REGB2 = REGB0;
13963 }
13964 if (UNTAG_Bool(REGB2)) {
13965 } else {
13966 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
13967 }
13968 /* ./../lib/standard//collection//array.nit:281 */
13969 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
13970 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13971 if (UNTAG_Bool(REGB2)) {
13972 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
13973 }
13974 /* ./../lib/standard//collection//array.nit:718 */
13975 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
13976 /* ./../lib/standard//collection//array.nit:281 */
13977 goto label414;
13978 label414: while(0);
13979 /* ./compiling//compiling_icode.nit:867 */
13980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13981 if (!once_value_415) {
13982 fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int(");
13983 REGB1 = TAG_Int(12);
13984 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
13985 once_value_415 = fra.me.REG[2];
13986 register_static_object(&once_value_415);
13987 } else fra.me.REG[2] = once_value_415;
13988 fra.me.REG[2] = fra.me.REG[2];
13989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
13990 REGB1 = TAG_Int(1);
13991 /* ./../lib/standard//collection//array.nit:278 */
13992 fra.me.REG[2] = fra.me.REG[4];
13993 /* ./../lib/standard//collection//array.nit:280 */
13994 REGB2 = TAG_Int(0);
13995 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
13996 if (UNTAG_Bool(REGB0)) {
13997 } else {
13998 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
13999 }
14000 /* ./../lib/standard//kernel.nit:233 */
14001 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14002 /* ./../lib/standard//collection//array.nit:280 */
14003 if (UNTAG_Bool(REGB2)) {
14004 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14005 if (UNTAG_Bool(REGB2)) {
14006 } else {
14007 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14008 }
14009 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14010 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14011 if (UNTAG_Bool(REGB0)) {
14012 } else {
14013 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14014 }
14015 /* ./../lib/standard//kernel.nit:232 */
14016 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14017 } else {
14018 /* ./../lib/standard//collection//array.nit:280 */
14019 REGB0 = TAG_Bool(false);
14020 REGB2 = REGB0;
14021 }
14022 if (UNTAG_Bool(REGB2)) {
14023 } else {
14024 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14025 }
14026 /* ./../lib/standard//collection//array.nit:281 */
14027 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14028 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14029 if (UNTAG_Bool(REGB2)) {
14030 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14031 }
14032 /* ./../lib/standard//collection//array.nit:718 */
14033 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14034 /* ./../lib/standard//collection//array.nit:281 */
14035 goto label416;
14036 label416: while(0);
14037 /* ./compiling//compiling_icode.nit:867 */
14038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14039 if (!once_value_417) {
14040 fra.me.REG[2] = BOX_NativeString(")]=UNTAG_Char(");
14041 REGB1 = TAG_Int(14);
14042 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14043 once_value_417 = fra.me.REG[2];
14044 register_static_object(&once_value_417);
14045 } else fra.me.REG[2] = once_value_417;
14046 fra.me.REG[2] = fra.me.REG[2];
14047 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14048 REGB1 = TAG_Int(2);
14049 /* ./../lib/standard//collection//array.nit:278 */
14050 fra.me.REG[2] = fra.me.REG[4];
14051 /* ./../lib/standard//collection//array.nit:280 */
14052 REGB2 = TAG_Int(0);
14053 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14054 if (UNTAG_Bool(REGB0)) {
14055 } else {
14056 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14057 }
14058 /* ./../lib/standard//kernel.nit:233 */
14059 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14060 /* ./../lib/standard//collection//array.nit:280 */
14061 if (UNTAG_Bool(REGB2)) {
14062 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14063 if (UNTAG_Bool(REGB2)) {
14064 } else {
14065 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14066 }
14067 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14068 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14069 if (UNTAG_Bool(REGB0)) {
14070 } else {
14071 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14072 }
14073 /* ./../lib/standard//kernel.nit:232 */
14074 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14075 } else {
14076 /* ./../lib/standard//collection//array.nit:280 */
14077 REGB0 = TAG_Bool(false);
14078 REGB2 = REGB0;
14079 }
14080 if (UNTAG_Bool(REGB2)) {
14081 } else {
14082 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14083 }
14084 /* ./../lib/standard//collection//array.nit:281 */
14085 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14086 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14087 if (UNTAG_Bool(REGB2)) {
14088 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14089 }
14090 /* ./../lib/standard//collection//array.nit:718 */
14091 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14092 /* ./../lib/standard//collection//array.nit:281 */
14093 goto label418;
14094 label418: while(0);
14095 /* ./compiling//compiling_icode.nit:867 */
14096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14097 if (!once_value_419) {
14098 fra.me.REG[2] = BOX_NativeString(");");
14099 REGB1 = TAG_Int(2);
14100 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14101 once_value_419 = fra.me.REG[2];
14102 register_static_object(&once_value_419);
14103 } else fra.me.REG[2] = once_value_419;
14104 fra.me.REG[2] = fra.me.REG[2];
14105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14106 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14107 fra.me.REG[5] = fra.me.REG[6];
14108 } else {
14109 /* ./compiling//compiling_icode.nit:868 */
14110 if (!once_value_420) {
14111 if (!once_value_421) {
14112 fra.me.REG[6] = BOX_NativeString("copy_to");
14113 REGB1 = TAG_Int(7);
14114 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14115 once_value_421 = fra.me.REG[6];
14116 register_static_object(&once_value_421);
14117 } else fra.me.REG[6] = once_value_421;
14118 fra.me.REG[6] = fra.me.REG[6];
14119 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14120 once_value_420 = fra.me.REG[6];
14121 register_static_object(&once_value_420);
14122 } else fra.me.REG[6] = once_value_420;
14123 fra.me.REG[6] = fra.me.REG[6];
14124 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14125 if (UNTAG_Bool(REGB1)) {
14126 } else {
14127 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14128 REGB1 = REGB2;
14129 }
14130 if (UNTAG_Bool(REGB1)) {
14131 /* ./compiling//compiling_icode.nit:869 */
14132 REGB1 = TAG_Int(11);
14133 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14134 if (!once_value_422) {
14135 fra.me.REG[2] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(");
14136 REGB1 = TAG_Int(32);
14137 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14138 once_value_422 = fra.me.REG[2];
14139 register_static_object(&once_value_422);
14140 } else fra.me.REG[2] = once_value_422;
14141 fra.me.REG[2] = fra.me.REG[2];
14142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14143 REGB1 = TAG_Int(1);
14144 /* ./../lib/standard//collection//array.nit:278 */
14145 fra.me.REG[2] = fra.me.REG[4];
14146 /* ./../lib/standard//collection//array.nit:280 */
14147 REGB2 = TAG_Int(0);
14148 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14149 if (UNTAG_Bool(REGB0)) {
14150 } else {
14151 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14152 }
14153 /* ./../lib/standard//kernel.nit:233 */
14154 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14155 /* ./../lib/standard//collection//array.nit:280 */
14156 if (UNTAG_Bool(REGB2)) {
14157 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14158 if (UNTAG_Bool(REGB2)) {
14159 } else {
14160 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14161 }
14162 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14163 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14164 if (UNTAG_Bool(REGB0)) {
14165 } else {
14166 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14167 }
14168 /* ./../lib/standard//kernel.nit:232 */
14169 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14170 } else {
14171 /* ./../lib/standard//collection//array.nit:280 */
14172 REGB0 = TAG_Bool(false);
14173 REGB2 = REGB0;
14174 }
14175 if (UNTAG_Bool(REGB2)) {
14176 } else {
14177 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14178 }
14179 /* ./../lib/standard//collection//array.nit:281 */
14180 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14181 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14182 if (UNTAG_Bool(REGB2)) {
14183 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14184 }
14185 /* ./../lib/standard//collection//array.nit:718 */
14186 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14187 /* ./../lib/standard//collection//array.nit:281 */
14188 goto label423;
14189 label423: while(0);
14190 /* ./compiling//compiling_icode.nit:869 */
14191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14192 if (!once_value_424) {
14193 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
14194 REGB1 = TAG_Int(12);
14195 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14196 once_value_424 = fra.me.REG[2];
14197 register_static_object(&once_value_424);
14198 } else fra.me.REG[2] = once_value_424;
14199 fra.me.REG[2] = fra.me.REG[2];
14200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14201 REGB1 = TAG_Int(4);
14202 /* ./../lib/standard//collection//array.nit:278 */
14203 fra.me.REG[2] = fra.me.REG[4];
14204 /* ./../lib/standard//collection//array.nit:280 */
14205 REGB2 = TAG_Int(0);
14206 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14207 if (UNTAG_Bool(REGB0)) {
14208 } else {
14209 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14210 }
14211 /* ./../lib/standard//kernel.nit:233 */
14212 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14213 /* ./../lib/standard//collection//array.nit:280 */
14214 if (UNTAG_Bool(REGB2)) {
14215 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14216 if (UNTAG_Bool(REGB2)) {
14217 } else {
14218 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14219 }
14220 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14221 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14222 if (UNTAG_Bool(REGB0)) {
14223 } else {
14224 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14225 }
14226 /* ./../lib/standard//kernel.nit:232 */
14227 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14228 } else {
14229 /* ./../lib/standard//collection//array.nit:280 */
14230 REGB0 = TAG_Bool(false);
14231 REGB2 = REGB0;
14232 }
14233 if (UNTAG_Bool(REGB2)) {
14234 } else {
14235 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14236 }
14237 /* ./../lib/standard//collection//array.nit:281 */
14238 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14239 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14240 if (UNTAG_Bool(REGB2)) {
14241 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14242 }
14243 /* ./../lib/standard//collection//array.nit:718 */
14244 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14245 /* ./../lib/standard//collection//array.nit:281 */
14246 goto label425;
14247 label425: while(0);
14248 /* ./compiling//compiling_icode.nit:869 */
14249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14250 if (!once_value_426) {
14251 fra.me.REG[2] = BOX_NativeString("), UNBOX_NativeString(");
14252 REGB1 = TAG_Int(22);
14253 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14254 once_value_426 = fra.me.REG[2];
14255 register_static_object(&once_value_426);
14256 } else fra.me.REG[2] = once_value_426;
14257 fra.me.REG[2] = fra.me.REG[2];
14258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14259 REGB1 = TAG_Int(0);
14260 /* ./../lib/standard//collection//array.nit:278 */
14261 fra.me.REG[2] = fra.me.REG[4];
14262 /* ./../lib/standard//collection//array.nit:280 */
14263 REGB2 = TAG_Int(0);
14264 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14265 if (UNTAG_Bool(REGB0)) {
14266 } else {
14267 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14268 }
14269 /* ./../lib/standard//kernel.nit:233 */
14270 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14271 /* ./../lib/standard//collection//array.nit:280 */
14272 if (UNTAG_Bool(REGB2)) {
14273 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14274 if (UNTAG_Bool(REGB2)) {
14275 } else {
14276 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14277 }
14278 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14279 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14280 if (UNTAG_Bool(REGB0)) {
14281 } else {
14282 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14283 }
14284 /* ./../lib/standard//kernel.nit:232 */
14285 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14286 } else {
14287 /* ./../lib/standard//collection//array.nit:280 */
14288 REGB0 = TAG_Bool(false);
14289 REGB2 = REGB0;
14290 }
14291 if (UNTAG_Bool(REGB2)) {
14292 } else {
14293 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14294 }
14295 /* ./../lib/standard//collection//array.nit:281 */
14296 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14297 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14298 if (UNTAG_Bool(REGB2)) {
14299 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14300 }
14301 /* ./../lib/standard//collection//array.nit:718 */
14302 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14303 /* ./../lib/standard//collection//array.nit:281 */
14304 goto label427;
14305 label427: while(0);
14306 /* ./compiling//compiling_icode.nit:869 */
14307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14308 if (!once_value_428) {
14309 fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int(");
14310 REGB1 = TAG_Int(12);
14311 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14312 once_value_428 = fra.me.REG[2];
14313 register_static_object(&once_value_428);
14314 } else fra.me.REG[2] = once_value_428;
14315 fra.me.REG[2] = fra.me.REG[2];
14316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14317 REGB1 = TAG_Int(3);
14318 /* ./../lib/standard//collection//array.nit:278 */
14319 fra.me.REG[2] = fra.me.REG[4];
14320 /* ./../lib/standard//collection//array.nit:280 */
14321 REGB2 = TAG_Int(0);
14322 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14323 if (UNTAG_Bool(REGB0)) {
14324 } else {
14325 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14326 }
14327 /* ./../lib/standard//kernel.nit:233 */
14328 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14329 /* ./../lib/standard//collection//array.nit:280 */
14330 if (UNTAG_Bool(REGB2)) {
14331 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14332 if (UNTAG_Bool(REGB2)) {
14333 } else {
14334 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14335 }
14336 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14337 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14338 if (UNTAG_Bool(REGB0)) {
14339 } else {
14340 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14341 }
14342 /* ./../lib/standard//kernel.nit:232 */
14343 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14344 } else {
14345 /* ./../lib/standard//collection//array.nit:280 */
14346 REGB0 = TAG_Bool(false);
14347 REGB2 = REGB0;
14348 }
14349 if (UNTAG_Bool(REGB2)) {
14350 } else {
14351 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14352 }
14353 /* ./../lib/standard//collection//array.nit:281 */
14354 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14355 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14356 if (UNTAG_Bool(REGB2)) {
14357 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14358 }
14359 /* ./../lib/standard//collection//array.nit:718 */
14360 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14361 /* ./../lib/standard//collection//array.nit:281 */
14362 goto label429;
14363 label429: while(0);
14364 /* ./compiling//compiling_icode.nit:869 */
14365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14366 if (!once_value_430) {
14367 fra.me.REG[2] = BOX_NativeString("), UNTAG_Int(");
14368 REGB1 = TAG_Int(13);
14369 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14370 once_value_430 = fra.me.REG[2];
14371 register_static_object(&once_value_430);
14372 } else fra.me.REG[2] = once_value_430;
14373 fra.me.REG[2] = fra.me.REG[2];
14374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14375 REGB1 = TAG_Int(2);
14376 /* ./../lib/standard//collection//array.nit:278 */
14377 fra.me.REG[2] = fra.me.REG[4];
14378 /* ./../lib/standard//collection//array.nit:280 */
14379 REGB2 = TAG_Int(0);
14380 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14381 if (UNTAG_Bool(REGB0)) {
14382 } else {
14383 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14384 }
14385 /* ./../lib/standard//kernel.nit:233 */
14386 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14387 /* ./../lib/standard//collection//array.nit:280 */
14388 if (UNTAG_Bool(REGB2)) {
14389 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14390 if (UNTAG_Bool(REGB2)) {
14391 } else {
14392 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14393 }
14394 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14395 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14396 if (UNTAG_Bool(REGB0)) {
14397 } else {
14398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14399 }
14400 /* ./../lib/standard//kernel.nit:232 */
14401 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14402 } else {
14403 /* ./../lib/standard//collection//array.nit:280 */
14404 REGB0 = TAG_Bool(false);
14405 REGB2 = REGB0;
14406 }
14407 if (UNTAG_Bool(REGB2)) {
14408 } else {
14409 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14410 }
14411 /* ./../lib/standard//collection//array.nit:281 */
14412 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14413 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14414 if (UNTAG_Bool(REGB2)) {
14415 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14416 }
14417 /* ./../lib/standard//collection//array.nit:718 */
14418 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14419 /* ./../lib/standard//collection//array.nit:281 */
14420 goto label431;
14421 label431: while(0);
14422 /* ./compiling//compiling_icode.nit:869 */
14423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14424 if (!once_value_432) {
14425 fra.me.REG[2] = BOX_NativeString("));");
14426 REGB1 = TAG_Int(3);
14427 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14428 once_value_432 = fra.me.REG[2];
14429 register_static_object(&once_value_432);
14430 } else fra.me.REG[2] = once_value_432;
14431 fra.me.REG[2] = fra.me.REG[2];
14432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14433 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14434 fra.me.REG[5] = fra.me.REG[6];
14435 }
14436 }
14437 }
14438 }
14439 }
14440 } else {
14441 /* ./compiling//compiling_icode.nit:871 */
14442 if (!once_value_433) {
14443 if (!once_value_434) {
14444 fra.me.REG[6] = BOX_NativeString("object_id");
14445 REGB1 = TAG_Int(9);
14446 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14447 once_value_434 = fra.me.REG[6];
14448 register_static_object(&once_value_434);
14449 } else fra.me.REG[6] = once_value_434;
14450 fra.me.REG[6] = fra.me.REG[6];
14451 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14452 once_value_433 = fra.me.REG[6];
14453 register_static_object(&once_value_433);
14454 } else fra.me.REG[6] = once_value_433;
14455 fra.me.REG[6] = fra.me.REG[6];
14456 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14457 if (UNTAG_Bool(REGB1)) {
14458 } else {
14459 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14460 REGB1 = REGB2;
14461 }
14462 if (UNTAG_Bool(REGB1)) {
14463 /* ./compiling//compiling_icode.nit:872 */
14464 REGB1 = TAG_Int(3);
14465 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14466 if (!once_value_435) {
14467 fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)");
14468 REGB1 = TAG_Int(24);
14469 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14470 once_value_435 = fra.me.REG[2];
14471 register_static_object(&once_value_435);
14472 } else fra.me.REG[2] = once_value_435;
14473 fra.me.REG[2] = fra.me.REG[2];
14474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14475 REGB1 = TAG_Int(0);
14476 /* ./../lib/standard//collection//array.nit:278 */
14477 fra.me.REG[2] = fra.me.REG[4];
14478 /* ./../lib/standard//collection//array.nit:280 */
14479 REGB2 = TAG_Int(0);
14480 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14481 if (UNTAG_Bool(REGB0)) {
14482 } else {
14483 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14484 }
14485 /* ./../lib/standard//kernel.nit:233 */
14486 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14487 /* ./../lib/standard//collection//array.nit:280 */
14488 if (UNTAG_Bool(REGB2)) {
14489 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14490 if (UNTAG_Bool(REGB2)) {
14491 } else {
14492 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14493 }
14494 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14495 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14496 if (UNTAG_Bool(REGB0)) {
14497 } else {
14498 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14499 }
14500 /* ./../lib/standard//kernel.nit:232 */
14501 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14502 } else {
14503 /* ./../lib/standard//collection//array.nit:280 */
14504 REGB0 = TAG_Bool(false);
14505 REGB2 = REGB0;
14506 }
14507 if (UNTAG_Bool(REGB2)) {
14508 } else {
14509 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14510 }
14511 /* ./../lib/standard//collection//array.nit:281 */
14512 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14513 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14514 if (UNTAG_Bool(REGB2)) {
14515 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14516 }
14517 /* ./../lib/standard//collection//array.nit:718 */
14518 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14519 /* ./../lib/standard//collection//array.nit:281 */
14520 goto label436;
14521 label436: while(0);
14522 /* ./compiling//compiling_icode.nit:872 */
14523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14524 if (!once_value_437) {
14525 fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
14526 REGB1 = TAG_Int(15);
14527 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14528 once_value_437 = fra.me.REG[2];
14529 register_static_object(&once_value_437);
14530 } else fra.me.REG[2] = once_value_437;
14531 fra.me.REG[2] = fra.me.REG[2];
14532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14533 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14534 fra.me.REG[5] = fra.me.REG[6];
14535 } else {
14536 /* ./compiling//compiling_icode.nit:873 */
14537 if (!once_value_438) {
14538 if (!once_value_439) {
14539 fra.me.REG[6] = BOX_NativeString("sys");
14540 REGB1 = TAG_Int(3);
14541 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14542 once_value_439 = fra.me.REG[6];
14543 register_static_object(&once_value_439);
14544 } else fra.me.REG[6] = once_value_439;
14545 fra.me.REG[6] = fra.me.REG[6];
14546 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14547 once_value_438 = fra.me.REG[6];
14548 register_static_object(&once_value_438);
14549 } else fra.me.REG[6] = once_value_438;
14550 fra.me.REG[6] = fra.me.REG[6];
14551 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14552 if (UNTAG_Bool(REGB1)) {
14553 } else {
14554 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14555 REGB1 = REGB2;
14556 }
14557 if (UNTAG_Bool(REGB1)) {
14558 /* ./compiling//compiling_icode.nit:874 */
14559 if (!once_value_440) {
14560 fra.me.REG[6] = BOX_NativeString("(G_sys)");
14561 REGB1 = TAG_Int(7);
14562 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14563 once_value_440 = fra.me.REG[6];
14564 register_static_object(&once_value_440);
14565 } else fra.me.REG[6] = once_value_440;
14566 fra.me.REG[6] = fra.me.REG[6];
14567 fra.me.REG[5] = fra.me.REG[6];
14568 } else {
14569 /* ./compiling//compiling_icode.nit:875 */
14570 if (!once_value_441) {
14571 if (!once_value_442) {
14572 fra.me.REG[6] = BOX_NativeString("is_same_type");
14573 REGB1 = TAG_Int(12);
14574 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14575 once_value_442 = fra.me.REG[6];
14576 register_static_object(&once_value_442);
14577 } else fra.me.REG[6] = once_value_442;
14578 fra.me.REG[6] = fra.me.REG[6];
14579 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14580 once_value_441 = fra.me.REG[6];
14581 register_static_object(&once_value_441);
14582 } else fra.me.REG[6] = once_value_441;
14583 fra.me.REG[6] = fra.me.REG[6];
14584 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14585 if (UNTAG_Bool(REGB1)) {
14586 } else {
14587 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14588 REGB1 = REGB2;
14589 }
14590 if (UNTAG_Bool(REGB1)) {
14591 /* ./compiling//compiling_icode.nit:876 */
14592 REGB1 = TAG_Int(5);
14593 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14594 if (!once_value_443) {
14595 fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT(");
14596 REGB1 = TAG_Int(18);
14597 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14598 once_value_443 = fra.me.REG[2];
14599 register_static_object(&once_value_443);
14600 } else fra.me.REG[2] = once_value_443;
14601 fra.me.REG[2] = fra.me.REG[2];
14602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14603 REGB1 = TAG_Int(0);
14604 /* ./../lib/standard//collection//array.nit:278 */
14605 fra.me.REG[2] = fra.me.REG[4];
14606 /* ./../lib/standard//collection//array.nit:280 */
14607 REGB2 = TAG_Int(0);
14608 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14609 if (UNTAG_Bool(REGB0)) {
14610 } else {
14611 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14612 }
14613 /* ./../lib/standard//kernel.nit:233 */
14614 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14615 /* ./../lib/standard//collection//array.nit:280 */
14616 if (UNTAG_Bool(REGB2)) {
14617 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14618 if (UNTAG_Bool(REGB2)) {
14619 } else {
14620 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14621 }
14622 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14623 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14624 if (UNTAG_Bool(REGB0)) {
14625 } else {
14626 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14627 }
14628 /* ./../lib/standard//kernel.nit:232 */
14629 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14630 } else {
14631 /* ./../lib/standard//collection//array.nit:280 */
14632 REGB0 = TAG_Bool(false);
14633 REGB2 = REGB0;
14634 }
14635 if (UNTAG_Bool(REGB2)) {
14636 } else {
14637 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14638 }
14639 /* ./../lib/standard//collection//array.nit:281 */
14640 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14641 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14642 if (UNTAG_Bool(REGB2)) {
14643 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14644 }
14645 /* ./../lib/standard//collection//array.nit:718 */
14646 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14647 /* ./../lib/standard//collection//array.nit:281 */
14648 goto label444;
14649 label444: while(0);
14650 /* ./compiling//compiling_icode.nit:876 */
14651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14652 if (!once_value_445) {
14653 fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
14654 REGB1 = TAG_Int(11);
14655 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14656 once_value_445 = fra.me.REG[2];
14657 register_static_object(&once_value_445);
14658 } else fra.me.REG[2] = once_value_445;
14659 fra.me.REG[2] = fra.me.REG[2];
14660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14661 REGB1 = TAG_Int(1);
14662 /* ./../lib/standard//collection//array.nit:278 */
14663 fra.me.REG[2] = fra.me.REG[4];
14664 /* ./../lib/standard//collection//array.nit:280 */
14665 REGB2 = TAG_Int(0);
14666 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14667 if (UNTAG_Bool(REGB0)) {
14668 } else {
14669 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14670 }
14671 /* ./../lib/standard//kernel.nit:233 */
14672 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14673 /* ./../lib/standard//collection//array.nit:280 */
14674 if (UNTAG_Bool(REGB2)) {
14675 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14676 if (UNTAG_Bool(REGB2)) {
14677 } else {
14678 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14679 }
14680 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14681 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14682 if (UNTAG_Bool(REGB0)) {
14683 } else {
14684 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14685 }
14686 /* ./../lib/standard//kernel.nit:232 */
14687 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14688 } else {
14689 /* ./../lib/standard//collection//array.nit:280 */
14690 REGB0 = TAG_Bool(false);
14691 REGB2 = REGB0;
14692 }
14693 if (UNTAG_Bool(REGB2)) {
14694 } else {
14695 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14696 }
14697 /* ./../lib/standard//collection//array.nit:281 */
14698 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14699 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14700 if (UNTAG_Bool(REGB2)) {
14701 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14702 }
14703 /* ./../lib/standard//collection//array.nit:718 */
14704 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14705 /* ./../lib/standard//collection//array.nit:281 */
14706 goto label446;
14707 label446: while(0);
14708 /* ./compiling//compiling_icode.nit:876 */
14709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14710 if (!once_value_447) {
14711 fra.me.REG[2] = BOX_NativeString(")))");
14712 REGB1 = TAG_Int(3);
14713 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14714 once_value_447 = fra.me.REG[2];
14715 register_static_object(&once_value_447);
14716 } else fra.me.REG[2] = once_value_447;
14717 fra.me.REG[2] = fra.me.REG[2];
14718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14719 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14720 fra.me.REG[5] = fra.me.REG[6];
14721 } else {
14722 /* ./compiling//compiling_icode.nit:877 */
14723 if (!once_value_448) {
14724 if (!once_value_449) {
14725 fra.me.REG[6] = BOX_NativeString("exit");
14726 REGB1 = TAG_Int(4);
14727 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14728 once_value_449 = fra.me.REG[6];
14729 register_static_object(&once_value_449);
14730 } else fra.me.REG[6] = once_value_449;
14731 fra.me.REG[6] = fra.me.REG[6];
14732 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14733 once_value_448 = fra.me.REG[6];
14734 register_static_object(&once_value_448);
14735 } else fra.me.REG[6] = once_value_448;
14736 fra.me.REG[6] = fra.me.REG[6];
14737 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14738 if (UNTAG_Bool(REGB1)) {
14739 } else {
14740 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14741 REGB1 = REGB2;
14742 }
14743 if (UNTAG_Bool(REGB1)) {
14744 /* ./compiling//compiling_icode.nit:878 */
14745 REGB1 = TAG_Int(3);
14746 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14747 if (!once_value_450) {
14748 fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int(");
14749 REGB1 = TAG_Int(15);
14750 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14751 once_value_450 = fra.me.REG[2];
14752 register_static_object(&once_value_450);
14753 } else fra.me.REG[2] = once_value_450;
14754 fra.me.REG[2] = fra.me.REG[2];
14755 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14756 REGB1 = TAG_Int(1);
14757 /* ./../lib/standard//collection//array.nit:278 */
14758 fra.me.REG[2] = fra.me.REG[4];
14759 /* ./../lib/standard//collection//array.nit:280 */
14760 REGB2 = TAG_Int(0);
14761 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14762 if (UNTAG_Bool(REGB0)) {
14763 } else {
14764 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14765 }
14766 /* ./../lib/standard//kernel.nit:233 */
14767 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14768 /* ./../lib/standard//collection//array.nit:280 */
14769 if (UNTAG_Bool(REGB2)) {
14770 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14771 if (UNTAG_Bool(REGB2)) {
14772 } else {
14773 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14774 }
14775 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14776 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14777 if (UNTAG_Bool(REGB0)) {
14778 } else {
14779 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14780 }
14781 /* ./../lib/standard//kernel.nit:232 */
14782 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14783 } else {
14784 /* ./../lib/standard//collection//array.nit:280 */
14785 REGB0 = TAG_Bool(false);
14786 REGB2 = REGB0;
14787 }
14788 if (UNTAG_Bool(REGB2)) {
14789 } else {
14790 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14791 }
14792 /* ./../lib/standard//collection//array.nit:281 */
14793 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14794 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14795 if (UNTAG_Bool(REGB2)) {
14796 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14797 }
14798 /* ./../lib/standard//collection//array.nit:718 */
14799 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14800 /* ./../lib/standard//collection//array.nit:281 */
14801 goto label451;
14802 label451: while(0);
14803 /* ./compiling//compiling_icode.nit:878 */
14804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14805 if (!once_value_452) {
14806 fra.me.REG[2] = BOX_NativeString("));");
14807 REGB1 = TAG_Int(3);
14808 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14809 once_value_452 = fra.me.REG[2];
14810 register_static_object(&once_value_452);
14811 } else fra.me.REG[2] = once_value_452;
14812 fra.me.REG[2] = fra.me.REG[2];
14813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14814 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14815 fra.me.REG[5] = fra.me.REG[6];
14816 } else {
14817 /* ./compiling//compiling_icode.nit:879 */
14818 if (!once_value_453) {
14819 if (!once_value_454) {
14820 fra.me.REG[6] = BOX_NativeString("calloc_array");
14821 REGB1 = TAG_Int(12);
14822 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14823 once_value_454 = fra.me.REG[6];
14824 register_static_object(&once_value_454);
14825 } else fra.me.REG[6] = once_value_454;
14826 fra.me.REG[6] = fra.me.REG[6];
14827 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14828 once_value_453 = fra.me.REG[6];
14829 register_static_object(&once_value_453);
14830 } else fra.me.REG[6] = once_value_453;
14831 fra.me.REG[6] = fra.me.REG[6];
14832 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14833 if (UNTAG_Bool(REGB1)) {
14834 } else {
14835 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14836 REGB1 = REGB2;
14837 }
14838 if (UNTAG_Bool(REGB1)) {
14839 /* ./compiling//compiling_icode.nit:880 */
14840 REGB1 = TAG_Int(3);
14841 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14842 if (!once_value_455) {
14843 fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(");
14844 REGB1 = TAG_Int(26);
14845 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14846 once_value_455 = fra.me.REG[2];
14847 register_static_object(&once_value_455);
14848 } else fra.me.REG[2] = once_value_455;
14849 fra.me.REG[2] = fra.me.REG[2];
14850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14851 REGB1 = TAG_Int(1);
14852 /* ./../lib/standard//collection//array.nit:278 */
14853 fra.me.REG[2] = fra.me.REG[4];
14854 /* ./../lib/standard//collection//array.nit:280 */
14855 REGB2 = TAG_Int(0);
14856 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14857 if (UNTAG_Bool(REGB0)) {
14858 } else {
14859 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14860 }
14861 /* ./../lib/standard//kernel.nit:233 */
14862 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14863 /* ./../lib/standard//collection//array.nit:280 */
14864 if (UNTAG_Bool(REGB2)) {
14865 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14866 if (UNTAG_Bool(REGB2)) {
14867 } else {
14868 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14869 }
14870 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14871 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14872 if (UNTAG_Bool(REGB0)) {
14873 } else {
14874 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14875 }
14876 /* ./../lib/standard//kernel.nit:232 */
14877 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14878 } else {
14879 /* ./../lib/standard//collection//array.nit:280 */
14880 REGB0 = TAG_Bool(false);
14881 REGB2 = REGB0;
14882 }
14883 if (UNTAG_Bool(REGB2)) {
14884 } else {
14885 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14886 }
14887 /* ./../lib/standard//collection//array.nit:281 */
14888 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14889 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14890 if (UNTAG_Bool(REGB2)) {
14891 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14892 }
14893 /* ./../lib/standard//collection//array.nit:718 */
14894 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14895 /* ./../lib/standard//collection//array.nit:281 */
14896 goto label456;
14897 label456: while(0);
14898 /* ./compiling//compiling_icode.nit:880 */
14899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14900 if (!once_value_457) {
14901 fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
14902 REGB1 = TAG_Int(17);
14903 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14904 once_value_457 = fra.me.REG[2];
14905 register_static_object(&once_value_457);
14906 } else fra.me.REG[2] = once_value_457;
14907 fra.me.REG[2] = fra.me.REG[2];
14908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14909 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
14910 fra.me.REG[5] = fra.me.REG[6];
14911 } else {
14912 /* ./compiling//compiling_icode.nit:881 */
14913 if (!once_value_458) {
14914 if (!once_value_459) {
14915 fra.me.REG[6] = BOX_NativeString("calloc_string");
14916 REGB1 = TAG_Int(13);
14917 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
14918 once_value_459 = fra.me.REG[6];
14919 register_static_object(&once_value_459);
14920 } else fra.me.REG[6] = once_value_459;
14921 fra.me.REG[6] = fra.me.REG[6];
14922 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
14923 once_value_458 = fra.me.REG[6];
14924 register_static_object(&once_value_458);
14925 } else fra.me.REG[6] = once_value_458;
14926 fra.me.REG[6] = fra.me.REG[6];
14927 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
14928 if (UNTAG_Bool(REGB1)) {
14929 } else {
14930 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
14931 REGB1 = REGB2;
14932 }
14933 if (UNTAG_Bool(REGB1)) {
14934 /* ./compiling//compiling_icode.nit:882 */
14935 REGB1 = TAG_Int(3);
14936 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
14937 if (!once_value_460) {
14938 fra.me.REG[2] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(");
14939 REGB1 = TAG_Int(45);
14940 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14941 once_value_460 = fra.me.REG[2];
14942 register_static_object(&once_value_460);
14943 } else fra.me.REG[2] = once_value_460;
14944 fra.me.REG[2] = fra.me.REG[2];
14945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14946 REGB1 = TAG_Int(1);
14947 /* ./../lib/standard//collection//array.nit:278 */
14948 fra.me.REG[2] = fra.me.REG[4];
14949 /* ./../lib/standard//collection//array.nit:280 */
14950 REGB2 = TAG_Int(0);
14951 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14952 if (UNTAG_Bool(REGB0)) {
14953 } else {
14954 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14955 }
14956 /* ./../lib/standard//kernel.nit:233 */
14957 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
14958 /* ./../lib/standard//collection//array.nit:280 */
14959 if (UNTAG_Bool(REGB2)) {
14960 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
14961 if (UNTAG_Bool(REGB2)) {
14962 } else {
14963 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
14964 }
14965 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
14966 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
14967 if (UNTAG_Bool(REGB0)) {
14968 } else {
14969 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14970 }
14971 /* ./../lib/standard//kernel.nit:232 */
14972 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
14973 } else {
14974 /* ./../lib/standard//collection//array.nit:280 */
14975 REGB0 = TAG_Bool(false);
14976 REGB2 = REGB0;
14977 }
14978 if (UNTAG_Bool(REGB2)) {
14979 } else {
14980 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
14981 }
14982 /* ./../lib/standard//collection//array.nit:281 */
14983 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
14984 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14985 if (UNTAG_Bool(REGB2)) {
14986 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
14987 }
14988 /* ./../lib/standard//collection//array.nit:718 */
14989 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
14990 /* ./../lib/standard//collection//array.nit:281 */
14991 goto label461;
14992 label461: while(0);
14993 /* ./compiling//compiling_icode.nit:882 */
14994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
14995 if (!once_value_462) {
14996 fra.me.REG[2] = BOX_NativeString(") * sizeof(char))))");
14997 REGB1 = TAG_Int(19);
14998 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
14999 once_value_462 = fra.me.REG[2];
15000 register_static_object(&once_value_462);
15001 } else fra.me.REG[2] = once_value_462;
15002 fra.me.REG[2] = fra.me.REG[2];
15003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15004 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15005 fra.me.REG[5] = fra.me.REG[6];
15006 } else {
15007 /* ./compiling//compiling_icode.nit:884 */
15008 if (!once_value_463) {
15009 if (!once_value_464) {
15010 fra.me.REG[6] = BOX_NativeString("output_class_name");
15011 REGB1 = TAG_Int(17);
15012 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15013 once_value_464 = fra.me.REG[6];
15014 register_static_object(&once_value_464);
15015 } else fra.me.REG[6] = once_value_464;
15016 fra.me.REG[6] = fra.me.REG[6];
15017 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15018 once_value_463 = fra.me.REG[6];
15019 register_static_object(&once_value_463);
15020 } else fra.me.REG[6] = once_value_463;
15021 fra.me.REG[6] = fra.me.REG[6];
15022 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15023 if (UNTAG_Bool(REGB1)) {
15024 } else {
15025 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15026 REGB1 = REGB2;
15027 }
15028 if (UNTAG_Bool(REGB1)) {
15029 /* ./compiling//compiling_icode.nit:885 */
15030 REGB1 = TAG_Int(3);
15031 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15032 if (!once_value_465) {
15033 fra.me.REG[2] = BOX_NativeString("printf(\"%s\\n\", VAL2VFT(");
15034 REGB1 = TAG_Int(23);
15035 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15036 once_value_465 = fra.me.REG[2];
15037 register_static_object(&once_value_465);
15038 } else fra.me.REG[2] = once_value_465;
15039 fra.me.REG[2] = fra.me.REG[2];
15040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15041 REGB1 = TAG_Int(0);
15042 /* ./../lib/standard//collection//array.nit:278 */
15043 fra.me.REG[2] = fra.me.REG[4];
15044 /* ./../lib/standard//collection//array.nit:280 */
15045 REGB2 = TAG_Int(0);
15046 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15047 if (UNTAG_Bool(REGB0)) {
15048 } else {
15049 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15050 }
15051 /* ./../lib/standard//kernel.nit:233 */
15052 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15053 /* ./../lib/standard//collection//array.nit:280 */
15054 if (UNTAG_Bool(REGB2)) {
15055 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15056 if (UNTAG_Bool(REGB2)) {
15057 } else {
15058 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15059 }
15060 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15061 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15062 if (UNTAG_Bool(REGB0)) {
15063 } else {
15064 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15065 }
15066 /* ./../lib/standard//kernel.nit:232 */
15067 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15068 } else {
15069 /* ./../lib/standard//collection//array.nit:280 */
15070 REGB0 = TAG_Bool(false);
15071 REGB2 = REGB0;
15072 }
15073 if (UNTAG_Bool(REGB2)) {
15074 } else {
15075 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15076 }
15077 /* ./../lib/standard//collection//array.nit:281 */
15078 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15079 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15080 if (UNTAG_Bool(REGB2)) {
15081 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15082 }
15083 /* ./../lib/standard//collection//array.nit:718 */
15084 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15085 /* ./../lib/standard//collection//array.nit:281 */
15086 goto label466;
15087 label466: while(0);
15088 /* ./compiling//compiling_icode.nit:885 */
15089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15090 if (!once_value_467) {
15091 fra.me.REG[2] = BOX_NativeString(")[2].cname);");
15092 REGB1 = TAG_Int(12);
15093 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15094 once_value_467 = fra.me.REG[2];
15095 register_static_object(&once_value_467);
15096 } else fra.me.REG[2] = once_value_467;
15097 fra.me.REG[2] = fra.me.REG[2];
15098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
15099 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15100 fra.me.REG[5] = fra.me.REG[6];
15101 } else {
15102 /* ./compiling//compiling_icode.nit:887 */
15103 if (!once_value_468) {
15104 if (!once_value_469) {
15105 fra.me.REG[6] = BOX_NativeString("native_class_name");
15106 REGB1 = TAG_Int(17);
15107 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15108 once_value_469 = fra.me.REG[6];
15109 register_static_object(&once_value_469);
15110 } else fra.me.REG[6] = once_value_469;
15111 fra.me.REG[6] = fra.me.REG[6];
15112 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
15113 once_value_468 = fra.me.REG[6];
15114 register_static_object(&once_value_468);
15115 } else fra.me.REG[6] = once_value_468;
15116 fra.me.REG[6] = fra.me.REG[6];
15117 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
15118 if (UNTAG_Bool(REGB1)) {
15119 } else {
15120 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15121 REGB1 = REGB2;
15122 }
15123 if (UNTAG_Bool(REGB1)) {
15124 /* ./compiling//compiling_icode.nit:888 */
15125 REGB1 = TAG_Int(3);
15126 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15127 if (!once_value_470) {
15128 fra.me.REG[3] = BOX_NativeString("BOX_NativeString(VAL2VFT(");
15129 REGB1 = TAG_Int(25);
15130 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15131 once_value_470 = fra.me.REG[3];
15132 register_static_object(&once_value_470);
15133 } else fra.me.REG[3] = once_value_470;
15134 fra.me.REG[3] = fra.me.REG[3];
15135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
15136 REGB1 = TAG_Int(0);
15137 /* ./../lib/standard//collection//array.nit:280 */
15138 REGB2 = TAG_Int(0);
15139 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15140 if (UNTAG_Bool(REGB0)) {
15141 } else {
15142 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15143 }
15144 /* ./../lib/standard//kernel.nit:233 */
15145 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
15146 /* ./../lib/standard//collection//array.nit:280 */
15147 if (UNTAG_Bool(REGB2)) {
15148 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
15149 if (UNTAG_Bool(REGB2)) {
15150 } else {
15151 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15152 }
15153 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
15154 REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15155 if (UNTAG_Bool(REGB0)) {
15156 } else {
15157 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15158 }
15159 /* ./../lib/standard//kernel.nit:232 */
15160 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
15161 } else {
15162 /* ./../lib/standard//collection//array.nit:280 */
15163 REGB0 = TAG_Bool(false);
15164 REGB2 = REGB0;
15165 }
15166 if (UNTAG_Bool(REGB2)) {
15167 } else {
15168 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15169 }
15170 /* ./../lib/standard//collection//array.nit:281 */
15171 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
15172 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15173 if (UNTAG_Bool(REGB2)) {
15174 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15175 }
15176 /* ./../lib/standard//collection//array.nit:718 */
15177 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
15178 /* ./../lib/standard//collection//array.nit:281 */
15179 goto label471;
15180 label471: while(0);
15181 /* ./compiling//compiling_icode.nit:888 */
15182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15183 if (!once_value_472) {
15184 fra.me.REG[4] = BOX_NativeString(")[2].cname);");
15185 REGB1 = TAG_Int(12);
15186 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15187 once_value_472 = fra.me.REG[4];
15188 register_static_object(&once_value_472);
15189 } else fra.me.REG[4] = once_value_472;
15190 fra.me.REG[4] = fra.me.REG[4];
15191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
15192 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15193 fra.me.REG[5] = fra.me.REG[6];
15194 }
15195 }
15196 }
15197 }
15198 }
15199 }
15200 }
15201 }
15202 }
15203 }
15204 }
15205 }
15206 }
15207 }
15208 /* ./compiling//compiling_icode.nit:891 */
15209 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15210 if (UNTAG_Bool(REGB1)) {
15211 } else {
15212 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15213 if (UNTAG_Bool(REGB2)) {
15214 REGB2 = TAG_Bool(false);
15215 REGB1 = REGB2;
15216 } else {
15217 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15218 REGB1 = REGB2;
15219 }
15220 }
15221 if (UNTAG_Bool(REGB1)) {
15222 /* ./compiling//compiling_icode.nit:892 */
15223 fra.me.REG[6] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15224 /* ./compiling//compiling_icode.nit:893 */
15225 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15226 if (UNTAG_Bool(REGB1)) {
15227 } else {
15228 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15229 if (UNTAG_Bool(REGB2)) {
15230 REGB2 = TAG_Bool(false);
15231 REGB1 = REGB2;
15232 } else {
15233 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
15234 REGB1 = REGB2;
15235 }
15236 }
15237 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15238 if (UNTAG_Bool(REGB1)) {
15239 REGB1 = TAG_Int(3);
15240 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15241 if (!once_value_473) {
15242 fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \"");
15243 REGB1 = TAG_Int(17);
15244 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
15245 once_value_473 = fra.me.REG[3];
15246 register_static_object(&once_value_473);
15247 } else fra.me.REG[3] = once_value_473;
15248 fra.me.REG[3] = fra.me.REG[3];
15249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
15250 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
15251 if (UNTAG_Bool(REGB1)) {
15252 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 893);
15253 }
15254 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
15255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15256 if (!once_value_474) {
15257 fra.me.REG[6] = BOX_NativeString(": \");");
15258 REGB1 = TAG_Int(5);
15259 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15260 once_value_474 = fra.me.REG[6];
15261 register_static_object(&once_value_474);
15262 } else fra.me.REG[6] = once_value_474;
15263 fra.me.REG[6] = fra.me.REG[6];
15264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15265 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15266 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15267 }
15268 /* ./compiling//compiling_icode.nit:894 */
15269 REGB1 = TAG_Int(3);
15270 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
15271 if (!once_value_475) {
15272 fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method ");
15273 REGB1 = TAG_Int(52);
15274 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15275 once_value_475 = fra.me.REG[6];
15276 register_static_object(&once_value_475);
15277 } else fra.me.REG[6] = once_value_475;
15278 fra.me.REG[6] = fra.me.REG[6];
15279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15280 fra.me.REG[6] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
15281 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
15282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15283 if (!once_value_476) {
15284 fra.me.REG[6] = BOX_NativeString(".\\n\");");
15285 REGB1 = TAG_Int(6);
15286 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15287 once_value_476 = fra.me.REG[6];
15288 register_static_object(&once_value_476);
15289 } else fra.me.REG[6] = once_value_476;
15290 fra.me.REG[6] = fra.me.REG[6];
15291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15292 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
15293 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15294 /* ./compiling//compiling_icode.nit:895 */
15295 if (!once_value_477) {
15296 fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
15297 REGB1 = TAG_Int(12);
15298 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15299 once_value_477 = fra.me.REG[4];
15300 register_static_object(&once_value_477);
15301 } else fra.me.REG[4] = once_value_477;
15302 fra.me.REG[4] = fra.me.REG[4];
15303 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15304 /* ./compiling//compiling_icode.nit:896 */
15305 if (!once_value_478) {
15306 fra.me.REG[4] = BOX_NativeString("NIT_NULL");
15307 REGB1 = TAG_Int(8);
15308 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
15309 once_value_478 = fra.me.REG[4];
15310 register_static_object(&once_value_478);
15311 } else fra.me.REG[4] = once_value_478;
15312 fra.me.REG[4] = fra.me.REG[4];
15313 fra.me.REG[5] = fra.me.REG[4];
15314 }
15315 /* ./compiling//compiling_icode.nit:898 */
15316 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
15317 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15318 if (UNTAG_Bool(REGB1)) {
15319 } else {
15320 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15321 if (UNTAG_Bool(REGB2)) {
15322 REGB2 = TAG_Bool(false);
15323 REGB1 = REGB2;
15324 } else {
15325 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
15326 REGB1 = REGB2;
15327 }
15328 }
15329 if (UNTAG_Bool(REGB1)) {
15330 /* ./compiling//compiling_icode.nit:899 */
15331 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15332 fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
15333 if (!once_value_479) {
15334 fra.me.REG[6] = BOX_NativeString(";\n");
15335 REGB1 = TAG_Int(2);
15336 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
15337 once_value_479 = fra.me.REG[6];
15338 register_static_object(&once_value_479);
15339 } else fra.me.REG[6] = once_value_479;
15340 fra.me.REG[6] = fra.me.REG[6];
15341 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15342 } else {
15343 /* ./compiling//compiling_icode.nit:900 */
15344 REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15345 if (UNTAG_Bool(REGB1)) {
15346 /* ./compiling//compiling_icode.nit:901 */
15347 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15348 /* ./compiling//compiling_icode.nit:902 */
15349 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
15350 }
15351 }
15352 stack_frame_head = fra.me.prev;
15353 return;
15354 }
15355 void compiling___compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
15356 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15357 val_t REGB0;
15358 val_t tmp;
15359 static val_t once_value_1; /* Once value */
15360 static val_t once_value_2; /* Once value */
15361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15362 fra.me.file = LOCATE_compiling___compiling_icode;
15363 fra.me.line = 908;
15364 fra.me.meth = LOCATE_compiling___compiling_icode___IIntValue___compile_to_c;
15365 fra.me.has_broke = 0;
15366 fra.me.REG_size = 3;
15367 fra.me.REG[0] = NIT_NULL;
15368 fra.me.REG[1] = NIT_NULL;
15369 fra.me.REG[2] = NIT_NULL;
15370 fra.me.REG[0] = p0;
15371 fra.me.REG[1] = p1;
15372 /* ./compiling//compiling_icode.nit:910 */
15373 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15374 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15375 /* ./compiling//compiling_icode.nit:911 */
15376 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15377 /* ./compiling//compiling_icode.nit:912 */
15378 if (!once_value_1) {
15379 fra.me.REG[2] = BOX_NativeString("TAG_Int(");
15380 REGB0 = TAG_Int(8);
15381 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15382 once_value_1 = fra.me.REG[2];
15383 register_static_object(&once_value_1);
15384 } else fra.me.REG[2] = once_value_1;
15385 fra.me.REG[2] = fra.me.REG[2];
15386 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15387 fra.me.REG[0] = CALL_icode___icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
15388 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
15389 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15390 if (!once_value_2) {
15391 fra.me.REG[2] = BOX_NativeString(")");
15392 REGB0 = TAG_Int(1);
15393 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15394 once_value_2 = fra.me.REG[2];
15395 register_static_object(&once_value_2);
15396 } else fra.me.REG[2] = once_value_2;
15397 fra.me.REG[2] = fra.me.REG[2];
15398 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15399 stack_frame_head = fra.me.prev;
15400 return;
15401 }
15402 void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){
15403 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15404 val_t REGB0;
15405 val_t tmp;
15406 static val_t once_value_1; /* Once value */
15407 static val_t once_value_2; /* Once value */
15408 static val_t once_value_3; /* Once value */
15409 static val_t once_value_4; /* Once value */
15410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15411 fra.me.file = LOCATE_compiling___compiling_icode;
15412 fra.me.line = 917;
15413 fra.me.meth = LOCATE_compiling___compiling_icode___IBoolValue___compile_to_c;
15414 fra.me.has_broke = 0;
15415 fra.me.REG_size = 3;
15416 fra.me.REG[0] = NIT_NULL;
15417 fra.me.REG[1] = NIT_NULL;
15418 fra.me.REG[2] = NIT_NULL;
15419 fra.me.REG[0] = p0;
15420 fra.me.REG[1] = p1;
15421 /* ./compiling//compiling_icode.nit:919 */
15422 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15423 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15424 /* ./compiling//compiling_icode.nit:920 */
15425 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15426 /* ./compiling//compiling_icode.nit:921 */
15427 if (!once_value_1) {
15428 fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
15429 REGB0 = TAG_Int(9);
15430 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15431 once_value_1 = fra.me.REG[2];
15432 register_static_object(&once_value_1);
15433 } else fra.me.REG[2] = once_value_1;
15434 fra.me.REG[2] = fra.me.REG[2];
15435 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15436 /* ./compiling//compiling_icode.nit:922 */
15437 REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
15438 if (UNTAG_Bool(REGB0)) {
15439 if (!once_value_2) {
15440 fra.me.REG[0] = BOX_NativeString("true");
15441 REGB0 = TAG_Int(4);
15442 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15443 once_value_2 = fra.me.REG[0];
15444 register_static_object(&once_value_2);
15445 } else fra.me.REG[0] = once_value_2;
15446 fra.me.REG[0] = fra.me.REG[0];
15447 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15448 } else {
15449 if (!once_value_3) {
15450 fra.me.REG[0] = BOX_NativeString("false");
15451 REGB0 = TAG_Int(5);
15452 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15453 once_value_3 = fra.me.REG[0];
15454 register_static_object(&once_value_3);
15455 } else fra.me.REG[0] = once_value_3;
15456 fra.me.REG[0] = fra.me.REG[0];
15457 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15458 }
15459 /* ./compiling//compiling_icode.nit:923 */
15460 if (!once_value_4) {
15461 fra.me.REG[0] = BOX_NativeString(")");
15462 REGB0 = TAG_Int(1);
15463 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
15464 once_value_4 = fra.me.REG[0];
15465 register_static_object(&once_value_4);
15466 } else fra.me.REG[0] = once_value_4;
15467 fra.me.REG[0] = fra.me.REG[0];
15468 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15469 stack_frame_head = fra.me.prev;
15470 return;
15471 }
15472 void compiling___compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){
15473 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15474 val_t REGB0;
15475 val_t tmp;
15476 static val_t once_value_1; /* Once value */
15477 static val_t once_value_2; /* Once value */
15478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15479 fra.me.file = LOCATE_compiling___compiling_icode;
15480 fra.me.line = 928;
15481 fra.me.meth = LOCATE_compiling___compiling_icode___ICharValue___compile_to_c;
15482 fra.me.has_broke = 0;
15483 fra.me.REG_size = 3;
15484 fra.me.REG[0] = NIT_NULL;
15485 fra.me.REG[1] = NIT_NULL;
15486 fra.me.REG[2] = NIT_NULL;
15487 fra.me.REG[0] = p0;
15488 fra.me.REG[1] = p1;
15489 /* ./compiling//compiling_icode.nit:930 */
15490 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15491 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15492 /* ./compiling//compiling_icode.nit:931 */
15493 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15494 /* ./compiling//compiling_icode.nit:932 */
15495 if (!once_value_1) {
15496 fra.me.REG[2] = BOX_NativeString("TAG_Char(");
15497 REGB0 = TAG_Int(9);
15498 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15499 once_value_1 = fra.me.REG[2];
15500 register_static_object(&once_value_1);
15501 } else fra.me.REG[2] = once_value_1;
15502 fra.me.REG[2] = fra.me.REG[2];
15503 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15504 fra.me.REG[0] = CALL_icode___icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
15505 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15506 if (!once_value_2) {
15507 fra.me.REG[2] = BOX_NativeString(")");
15508 REGB0 = TAG_Int(1);
15509 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15510 once_value_2 = fra.me.REG[2];
15511 register_static_object(&once_value_2);
15512 } else fra.me.REG[2] = once_value_2;
15513 fra.me.REG[2] = fra.me.REG[2];
15514 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15515 stack_frame_head = fra.me.prev;
15516 return;
15517 }
15518 void compiling___compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){
15519 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15520 val_t REGB0;
15521 val_t tmp;
15522 static val_t once_value_1; /* Once value */
15523 static val_t once_value_2; /* Once value */
15524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15525 fra.me.file = LOCATE_compiling___compiling_icode;
15526 fra.me.line = 937;
15527 fra.me.meth = LOCATE_compiling___compiling_icode___IFloatValue___compile_to_c;
15528 fra.me.has_broke = 0;
15529 fra.me.REG_size = 3;
15530 fra.me.REG[0] = NIT_NULL;
15531 fra.me.REG[1] = NIT_NULL;
15532 fra.me.REG[2] = NIT_NULL;
15533 fra.me.REG[0] = p0;
15534 fra.me.REG[1] = p1;
15535 /* ./compiling//compiling_icode.nit:939 */
15536 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15537 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15538 /* ./compiling//compiling_icode.nit:940 */
15539 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15540 /* ./compiling//compiling_icode.nit:941 */
15541 if (!once_value_1) {
15542 fra.me.REG[2] = BOX_NativeString("BOX_Float(");
15543 REGB0 = TAG_Int(10);
15544 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15545 once_value_1 = fra.me.REG[2];
15546 register_static_object(&once_value_1);
15547 } else fra.me.REG[2] = once_value_1;
15548 fra.me.REG[2] = fra.me.REG[2];
15549 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15550 fra.me.REG[0] = CALL_icode___icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
15551 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15552 if (!once_value_2) {
15553 fra.me.REG[2] = BOX_NativeString(")");
15554 REGB0 = TAG_Int(1);
15555 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15556 once_value_2 = fra.me.REG[2];
15557 register_static_object(&once_value_2);
15558 } else fra.me.REG[2] = once_value_2;
15559 fra.me.REG[2] = fra.me.REG[2];
15560 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15561 stack_frame_head = fra.me.prev;
15562 return;
15563 }
15564 void compiling___compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){
15565 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15566 val_t REGB0;
15567 val_t tmp;
15568 static val_t once_value_1; /* Once value */
15569 static val_t once_value_2; /* Once value */
15570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15571 fra.me.file = LOCATE_compiling___compiling_icode;
15572 fra.me.line = 946;
15573 fra.me.meth = LOCATE_compiling___compiling_icode___IStringValue___compile_to_c;
15574 fra.me.has_broke = 0;
15575 fra.me.REG_size = 3;
15576 fra.me.REG[0] = NIT_NULL;
15577 fra.me.REG[1] = NIT_NULL;
15578 fra.me.REG[2] = NIT_NULL;
15579 fra.me.REG[0] = p0;
15580 fra.me.REG[1] = p1;
15581 /* ./compiling//compiling_icode.nit:948 */
15582 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15583 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15584 /* ./compiling//compiling_icode.nit:949 */
15585 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15586 /* ./compiling//compiling_icode.nit:950 */
15587 if (!once_value_1) {
15588 fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
15589 REGB0 = TAG_Int(18);
15590 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15591 once_value_1 = fra.me.REG[2];
15592 register_static_object(&once_value_1);
15593 } else fra.me.REG[2] = once_value_1;
15594 fra.me.REG[2] = fra.me.REG[2];
15595 fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15596 fra.me.REG[0] = CALL_icode___icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
15597 fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15598 if (!once_value_2) {
15599 fra.me.REG[2] = BOX_NativeString("\")");
15600 REGB0 = TAG_Int(2);
15601 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15602 once_value_2 = fra.me.REG[2];
15603 register_static_object(&once_value_2);
15604 } else fra.me.REG[2] = once_value_2;
15605 fra.me.REG[2] = fra.me.REG[2];
15606 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
15607 stack_frame_head = fra.me.prev;
15608 return;
15609 }
15610 void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
15611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15612 val_t REGB0;
15613 val_t REGB1;
15614 val_t REGB2;
15615 val_t tmp;
15616 static val_t once_value_1; /* Once value */
15617 static val_t once_value_3; /* Once value */
15618 static val_t once_value_5; /* Once value */
15619 static val_t once_value_6; /* Once value */
15620 static val_t once_value_7; /* Once value */
15621 static val_t once_value_8; /* Once value */
15622 static val_t once_value_9; /* Once value */
15623 static val_t once_value_10; /* Once value */
15624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15625 fra.me.file = LOCATE_compiling___compiling_icode;
15626 fra.me.line = 955;
15627 fra.me.meth = LOCATE_compiling___compiling_icode___IAbort___compile_to_c;
15628 fra.me.has_broke = 0;
15629 fra.me.REG_size = 3;
15630 fra.me.REG[0] = NIT_NULL;
15631 fra.me.REG[1] = NIT_NULL;
15632 fra.me.REG[2] = NIT_NULL;
15633 fra.me.REG[0] = p0;
15634 fra.me.REG[1] = p1;
15635 /* ./compiling//compiling_icode.nit:957 */
15636 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15637 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15638 /* ./compiling//compiling_icode.nit:958 */
15639 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15640 /* ./compiling//compiling_icode.nit:959 */
15641 if (!once_value_1) {
15642 fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
15643 REGB0 = TAG_Int(11);
15644 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
15645 once_value_1 = fra.me.REG[2];
15646 register_static_object(&once_value_1);
15647 } else fra.me.REG[2] = once_value_1;
15648 fra.me.REG[2] = fra.me.REG[2];
15649 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15650 /* ./compiling//compiling_icode.nit:960 */
15651 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15652 REGB0 = TAG_Int(0);
15653 /* ./../lib/standard//collection//array.nit:280 */
15654 REGB1 = TAG_Int(0);
15655 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15656 if (UNTAG_Bool(REGB2)) {
15657 } else {
15658 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15659 }
15660 /* ./../lib/standard//kernel.nit:233 */
15661 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
15662 /* ./../lib/standard//collection//array.nit:280 */
15663 if (UNTAG_Bool(REGB1)) {
15664 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15665 if (UNTAG_Bool(REGB1)) {
15666 } else {
15667 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15668 }
15669 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15670 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15671 if (UNTAG_Bool(REGB2)) {
15672 } else {
15673 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15674 }
15675 /* ./../lib/standard//kernel.nit:232 */
15676 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15677 } else {
15678 /* ./../lib/standard//collection//array.nit:280 */
15679 REGB2 = TAG_Bool(false);
15680 REGB1 = REGB2;
15681 }
15682 if (UNTAG_Bool(REGB1)) {
15683 } else {
15684 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15685 }
15686 /* ./../lib/standard//collection//array.nit:281 */
15687 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15689 if (UNTAG_Bool(REGB1)) {
15690 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15691 }
15692 /* ./../lib/standard//collection//array.nit:718 */
15693 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
15694 /* ./../lib/standard//collection//array.nit:281 */
15695 goto label2;
15696 label2: while(0);
15697 /* ./compiling//compiling_icode.nit:960 */
15698 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15699 /* ./compiling//compiling_icode.nit:961 */
15700 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15701 /* ./../lib/standard//collection//array.nit:24 */
15702 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15703 if (UNTAG_Bool(REGB0)) {
15704 } else {
15705 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
15706 }
15707 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15708 /* ./compiling//compiling_icode.nit:961 */
15709 REGB1 = TAG_Int(1);
15710 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15711 if (UNTAG_Bool(REGB2)) {
15712 } else {
15713 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15714 }
15715 /* ./../lib/standard//kernel.nit:234 */
15716 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
15717 /* ./compiling//compiling_icode.nit:961 */
15718 if (UNTAG_Bool(REGB1)) {
15719 /* ./compiling//compiling_icode.nit:962 */
15720 if (!once_value_3) {
15721 fra.me.REG[2] = BOX_NativeString("\", \"");
15722 REGB1 = TAG_Int(4);
15723 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15724 once_value_3 = fra.me.REG[2];
15725 register_static_object(&once_value_3);
15726 } else fra.me.REG[2] = once_value_3;
15727 fra.me.REG[2] = fra.me.REG[2];
15728 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15729 /* ./compiling//compiling_icode.nit:963 */
15730 fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
15731 REGB1 = TAG_Int(1);
15732 /* ./../lib/standard//collection//array.nit:280 */
15733 REGB0 = TAG_Int(0);
15734 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15735 if (UNTAG_Bool(REGB2)) {
15736 } else {
15737 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15738 }
15739 /* ./../lib/standard//kernel.nit:233 */
15740 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
15741 /* ./../lib/standard//collection//array.nit:280 */
15742 if (UNTAG_Bool(REGB0)) {
15743 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
15744 if (UNTAG_Bool(REGB0)) {
15745 } else {
15746 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
15747 }
15748 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
15749 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
15750 if (UNTAG_Bool(REGB2)) {
15751 } else {
15752 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15753 }
15754 /* ./../lib/standard//kernel.nit:232 */
15755 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
15756 } else {
15757 /* ./../lib/standard//collection//array.nit:280 */
15758 REGB2 = TAG_Bool(false);
15759 REGB0 = REGB2;
15760 }
15761 if (UNTAG_Bool(REGB0)) {
15762 } else {
15763 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
15764 }
15765 /* ./../lib/standard//collection//array.nit:281 */
15766 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
15767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15768 if (UNTAG_Bool(REGB0)) {
15769 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
15770 }
15771 /* ./../lib/standard//collection//array.nit:718 */
15772 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
15773 /* ./../lib/standard//collection//array.nit:281 */
15774 goto label4;
15775 label4: while(0);
15776 /* ./compiling//compiling_icode.nit:963 */
15777 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15778 /* ./compiling//compiling_icode.nit:964 */
15779 if (!once_value_5) {
15780 fra.me.REG[2] = BOX_NativeString("\"");
15781 REGB1 = TAG_Int(1);
15782 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15783 once_value_5 = fra.me.REG[2];
15784 register_static_object(&once_value_5);
15785 } else fra.me.REG[2] = once_value_5;
15786 fra.me.REG[2] = fra.me.REG[2];
15787 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15788 } else {
15789 /* ./compiling//compiling_icode.nit:966 */
15790 if (!once_value_6) {
15791 fra.me.REG[2] = BOX_NativeString("\", NULL");
15792 REGB1 = TAG_Int(7);
15793 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15794 once_value_6 = fra.me.REG[2];
15795 register_static_object(&once_value_6);
15796 } else fra.me.REG[2] = once_value_6;
15797 fra.me.REG[2] = fra.me.REG[2];
15798 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15799 }
15800 /* ./compiling//compiling_icode.nit:968 */
15801 if (!once_value_7) {
15802 fra.me.REG[2] = BOX_NativeString(", LOCATE_");
15803 REGB1 = TAG_Int(9);
15804 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15805 once_value_7 = fra.me.REG[2];
15806 register_static_object(&once_value_7);
15807 } else fra.me.REG[2] = once_value_7;
15808 fra.me.REG[2] = fra.me.REG[2];
15809 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15810 /* ./compiling//compiling_icode.nit:969 */
15811 fra.me.REG[2] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
15812 fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
15813 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15814 /* ./compiling//compiling_icode.nit:970 */
15815 fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15816 /* ./compiling//compiling_icode.nit:971 */
15817 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15818 if (UNTAG_Bool(REGB1)) {
15819 } else {
15820 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15821 if (UNTAG_Bool(REGB0)) {
15822 REGB0 = TAG_Bool(false);
15823 REGB1 = REGB0;
15824 } else {
15825 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
15826 REGB1 = REGB0;
15827 }
15828 }
15829 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
15830 if (UNTAG_Bool(REGB1)) {
15831 /* ./compiling//compiling_icode.nit:972 */
15832 if (!once_value_8) {
15833 fra.me.REG[2] = BOX_NativeString(", ");
15834 REGB1 = TAG_Int(2);
15835 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
15836 once_value_8 = fra.me.REG[2];
15837 register_static_object(&once_value_8);
15838 } else fra.me.REG[2] = once_value_8;
15839 fra.me.REG[2] = fra.me.REG[2];
15840 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15841 /* ./compiling//compiling_icode.nit:973 */
15842 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
15843 if (UNTAG_Bool(REGB1)) {
15844 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 973);
15845 }
15846 REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
15847 fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
15848 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15849 } else {
15850 /* ./compiling//compiling_icode.nit:975 */
15851 if (!once_value_9) {
15852 fra.me.REG[0] = BOX_NativeString(", 0");
15853 REGB1 = TAG_Int(3);
15854 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
15855 once_value_9 = fra.me.REG[0];
15856 register_static_object(&once_value_9);
15857 } else fra.me.REG[0] = once_value_9;
15858 fra.me.REG[0] = fra.me.REG[0];
15859 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15860 }
15861 /* ./compiling//compiling_icode.nit:977 */
15862 if (!once_value_10) {
15863 fra.me.REG[0] = BOX_NativeString(");\n");
15864 REGB1 = TAG_Int(3);
15865 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
15866 once_value_10 = fra.me.REG[0];
15867 register_static_object(&once_value_10);
15868 } else fra.me.REG[0] = once_value_10;
15869 fra.me.REG[0] = fra.me.REG[0];
15870 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15871 stack_frame_head = fra.me.prev;
15872 return;
15873 }
15874 void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
15875 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15876 val_t REGB0;
15877 val_t REGB1;
15878 val_t tmp;
15879 static val_t once_value_2; /* Once value */
15880 static val_t once_value_3; /* Once value */
15881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15882 fra.me.file = LOCATE_compiling___compiling_icode;
15883 fra.me.line = 982;
15884 fra.me.meth = LOCATE_compiling___compiling_icode___IMove___compile_to_c;
15885 fra.me.has_broke = 0;
15886 fra.me.REG_size = 5;
15887 fra.me.REG[0] = NIT_NULL;
15888 fra.me.REG[1] = NIT_NULL;
15889 fra.me.REG[2] = NIT_NULL;
15890 fra.me.REG[3] = NIT_NULL;
15891 fra.me.REG[4] = NIT_NULL;
15892 fra.me.REG[0] = p0;
15893 fra.me.REG[1] = p1;
15894 /* ./compiling//compiling_icode.nit:982 */
15895 fra.me.REG[2] = fra.me.REG[0];
15896 /* ./compiling//compiling_icode.nit:984 */
15897 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
15898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15899 if (UNTAG_Bool(REGB0)) {
15900 goto label1;
15901 }
15902 /* ./compiling//compiling_icode.nit:985 */
15903 fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[2])(fra.me.REG[2]);
15904 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15905 /* ./compiling//compiling_icode.nit:986 */
15906 fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
15907 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
15908 if (UNTAG_Bool(REGB0)) {
15909 } else {
15910 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 986);
15911 }
15912 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15913 /* ./compiling//compiling_icode.nit:987 */
15914 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
15915 if (UNTAG_Bool(REGB0)) {
15916 } else {
15917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15918 REGB0 = REGB1;
15919 }
15920 if (UNTAG_Bool(REGB0)) {
15921 goto label1;
15922 }
15923 /* ./compiling//compiling_icode.nit:988 */
15924 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
15925 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15926 /* ./compiling//compiling_icode.nit:989 */
15927 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
15928 /* ./compiling//compiling_icode.nit:990 */
15929 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15930 /* ./compiling//compiling_icode.nit:991 */
15931 if (!once_value_2) {
15932 fra.me.REG[4] = BOX_NativeString(" = ");
15933 REGB0 = TAG_Int(3);
15934 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
15935 once_value_2 = fra.me.REG[4];
15936 register_static_object(&once_value_2);
15937 } else fra.me.REG[4] = once_value_2;
15938 fra.me.REG[4] = fra.me.REG[4];
15939 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15940 /* ./compiling//compiling_icode.nit:992 */
15941 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15942 /* ./compiling//compiling_icode.nit:993 */
15943 if (!once_value_3) {
15944 fra.me.REG[3] = BOX_NativeString(";\n");
15945 REGB0 = TAG_Int(2);
15946 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
15947 once_value_3 = fra.me.REG[3];
15948 register_static_object(&once_value_3);
15949 } else fra.me.REG[3] = once_value_3;
15950 fra.me.REG[3] = fra.me.REG[3];
15951 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15952 label1: while(0);
15953 stack_frame_head = fra.me.prev;
15954 return;
15955 }
15956 void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
15957 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15958 val_t REGB0;
15959 val_t tmp;
15960 static val_t once_value_2; /* Once value */
15961 static val_t once_value_3; /* Once value */
15962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15963 fra.me.file = LOCATE_compiling___compiling_icode;
15964 fra.me.line = 998;
15965 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrRead___compile_to_c;
15966 fra.me.has_broke = 0;
15967 fra.me.REG_size = 4;
15968 fra.me.REG[0] = NIT_NULL;
15969 fra.me.REG[1] = NIT_NULL;
15970 fra.me.REG[2] = NIT_NULL;
15971 fra.me.REG[3] = NIT_NULL;
15972 fra.me.REG[0] = p0;
15973 fra.me.REG[1] = p1;
15974 /* ./compiling//compiling_icode.nit:1000 */
15975 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
15976 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15977 if (UNTAG_Bool(REGB0)) {
15978 goto label1;
15979 }
15980 /* ./compiling//compiling_icode.nit:1001 */
15981 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
15982 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15983 /* ./compiling//compiling_icode.nit:1002 */
15984 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
15985 /* ./compiling//compiling_icode.nit:1003 */
15986 fra.me.REG[3] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
15987 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
15988 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
15989 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15990 /* ./compiling//compiling_icode.nit:1004 */
15991 if (!once_value_2) {
15992 fra.me.REG[3] = BOX_NativeString("(");
15993 REGB0 = TAG_Int(1);
15994 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
15995 once_value_2 = fra.me.REG[3];
15996 register_static_object(&once_value_2);
15997 } else fra.me.REG[3] = once_value_2;
15998 fra.me.REG[3] = fra.me.REG[3];
15999 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16000 /* ./compiling//compiling_icode.nit:1005 */
16001 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16002 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16003 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16004 /* ./compiling//compiling_icode.nit:1006 */
16005 if (!once_value_3) {
16006 fra.me.REG[0] = BOX_NativeString(")");
16007 REGB0 = TAG_Int(1);
16008 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16009 once_value_3 = fra.me.REG[0];
16010 register_static_object(&once_value_3);
16011 } else fra.me.REG[0] = once_value_3;
16012 fra.me.REG[0] = fra.me.REG[0];
16013 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16014 label1: while(0);
16015 stack_frame_head = fra.me.prev;
16016 return;
16017 }
16018 void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){
16019 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16020 val_t REGB0;
16021 val_t tmp;
16022 static val_t once_value_2; /* Once value */
16023 static val_t once_value_3; /* Once value */
16024 static val_t once_value_4; /* Once value */
16025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16026 fra.me.file = LOCATE_compiling___compiling_icode;
16027 fra.me.line = 1011;
16028 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrIsset___compile_to_c;
16029 fra.me.has_broke = 0;
16030 fra.me.REG_size = 4;
16031 fra.me.REG[0] = NIT_NULL;
16032 fra.me.REG[1] = NIT_NULL;
16033 fra.me.REG[2] = NIT_NULL;
16034 fra.me.REG[3] = NIT_NULL;
16035 fra.me.REG[0] = p0;
16036 fra.me.REG[1] = p1;
16037 /* ./compiling//compiling_icode.nit:1013 */
16038 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16040 if (UNTAG_Bool(REGB0)) {
16041 goto label1;
16042 }
16043 /* ./compiling//compiling_icode.nit:1014 */
16044 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16045 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16046 /* ./compiling//compiling_icode.nit:1015 */
16047 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16048 /* ./compiling//compiling_icode.nit:1016 */
16049 if (!once_value_2) {
16050 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16051 REGB0 = TAG_Int(9);
16052 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16053 once_value_2 = fra.me.REG[3];
16054 register_static_object(&once_value_2);
16055 } else fra.me.REG[3] = once_value_2;
16056 fra.me.REG[3] = fra.me.REG[3];
16057 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16058 /* ./compiling//compiling_icode.nit:1017 */
16059 fra.me.REG[3] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
16060 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16061 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16062 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16063 /* ./compiling//compiling_icode.nit:1018 */
16064 if (!once_value_3) {
16065 fra.me.REG[3] = BOX_NativeString("(");
16066 REGB0 = TAG_Int(1);
16067 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16068 once_value_3 = fra.me.REG[3];
16069 register_static_object(&once_value_3);
16070 } else fra.me.REG[3] = once_value_3;
16071 fra.me.REG[3] = fra.me.REG[3];
16072 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16073 /* ./compiling//compiling_icode.nit:1019 */
16074 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16075 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16076 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16077 /* ./compiling//compiling_icode.nit:1020 */
16078 if (!once_value_4) {
16079 fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
16080 REGB0 = TAG_Int(12);
16081 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16082 once_value_4 = fra.me.REG[0];
16083 register_static_object(&once_value_4);
16084 } else fra.me.REG[0] = once_value_4;
16085 fra.me.REG[0] = fra.me.REG[0];
16086 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16087 label1: while(0);
16088 stack_frame_head = fra.me.prev;
16089 return;
16090 }
16091 void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){
16092 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16093 val_t REGB0;
16094 val_t tmp;
16095 static val_t once_value_1; /* Once value */
16096 static val_t once_value_2; /* Once value */
16097 static val_t once_value_3; /* Once value */
16098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16099 fra.me.file = LOCATE_compiling___compiling_icode;
16100 fra.me.line = 1025;
16101 fra.me.meth = LOCATE_compiling___compiling_icode___IAttrWrite___compile_to_c;
16102 fra.me.has_broke = 0;
16103 fra.me.REG_size = 4;
16104 fra.me.REG[0] = NIT_NULL;
16105 fra.me.REG[1] = NIT_NULL;
16106 fra.me.REG[2] = NIT_NULL;
16107 fra.me.REG[3] = NIT_NULL;
16108 fra.me.REG[0] = p0;
16109 fra.me.REG[1] = p1;
16110 /* ./compiling//compiling_icode.nit:1027 */
16111 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16112 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16113 /* ./compiling//compiling_icode.nit:1028 */
16114 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
16115 /* ./compiling//compiling_icode.nit:1029 */
16116 fra.me.REG[3] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
16117 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
16118 fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
16119 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16120 /* ./compiling//compiling_icode.nit:1030 */
16121 if (!once_value_1) {
16122 fra.me.REG[3] = BOX_NativeString("(");
16123 REGB0 = TAG_Int(1);
16124 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16125 once_value_1 = fra.me.REG[3];
16126 register_static_object(&once_value_1);
16127 } else fra.me.REG[3] = once_value_1;
16128 fra.me.REG[3] = fra.me.REG[3];
16129 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16130 /* ./compiling//compiling_icode.nit:1031 */
16131 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16132 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16133 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16134 /* ./compiling//compiling_icode.nit:1032 */
16135 if (!once_value_2) {
16136 fra.me.REG[3] = BOX_NativeString(") = ");
16137 REGB0 = TAG_Int(4);
16138 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16139 once_value_2 = fra.me.REG[3];
16140 register_static_object(&once_value_2);
16141 } else fra.me.REG[3] = once_value_2;
16142 fra.me.REG[3] = fra.me.REG[3];
16143 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16144 /* ./compiling//compiling_icode.nit:1033 */
16145 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16146 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16147 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16148 /* ./compiling//compiling_icode.nit:1034 */
16149 if (!once_value_3) {
16150 fra.me.REG[0] = BOX_NativeString(";\n");
16151 REGB0 = TAG_Int(2);
16152 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16153 once_value_3 = fra.me.REG[0];
16154 register_static_object(&once_value_3);
16155 } else fra.me.REG[0] = once_value_3;
16156 fra.me.REG[0] = fra.me.REG[0];
16157 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16158 stack_frame_head = fra.me.prev;
16159 return;
16160 }
16161 void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1){
16162 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16163 val_t REGB0;
16164 val_t REGB1;
16165 val_t tmp;
16166 static val_t once_value_2; /* Once value */
16167 static val_t once_value_3; /* Once value */
16168 static val_t once_value_4; /* Once value */
16169 static val_t once_value_5; /* Once value */
16170 static val_t once_value_6; /* Once value */
16171 static val_t once_value_7; /* Once value */
16172 static val_t once_value_8; /* Once value */
16173 static val_t once_value_9; /* Once value */
16174 static val_t once_value_10; /* Once value */
16175 static val_t once_value_11; /* Once value */
16176 static val_t once_value_12; /* Once value */
16177 static val_t once_value_13; /* Once value */
16178 static val_t once_value_14; /* Once value */
16179 static val_t once_value_15; /* Once value */
16180 static val_t once_value_16; /* Once value */
16181 static val_t once_value_17; /* Once value */
16182 static val_t once_value_18; /* Once value */
16183 static val_t once_value_19; /* Once value */
16184 static val_t once_value_20; /* Once value */
16185 static val_t once_value_21; /* Once value */
16186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16187 fra.me.file = LOCATE_compiling___compiling_icode;
16188 fra.me.line = 1039;
16189 fra.me.meth = LOCATE_compiling___compiling_icode___ITypeCheck___compile_to_c;
16190 fra.me.has_broke = 0;
16191 fra.me.REG_size = 6;
16192 fra.me.REG[0] = NIT_NULL;
16193 fra.me.REG[1] = NIT_NULL;
16194 fra.me.REG[2] = NIT_NULL;
16195 fra.me.REG[3] = NIT_NULL;
16196 fra.me.REG[4] = NIT_NULL;
16197 fra.me.REG[5] = NIT_NULL;
16198 fra.me.REG[0] = p0;
16199 fra.me.REG[1] = p1;
16200 /* ./compiling//compiling_icode.nit:1041 */
16201 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16203 if (UNTAG_Bool(REGB0)) {
16204 goto label1;
16205 }
16206 /* ./compiling//compiling_icode.nit:1042 */
16207 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16208 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16209 /* ./compiling//compiling_icode.nit:1043 */
16210 fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16211 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16212 /* ./compiling//compiling_icode.nit:1044 */
16213 fra.me.REG[3] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16214 /* ./compiling//compiling_icode.nit:1045 */
16215 if (!once_value_2) {
16216 fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
16217 REGB0 = TAG_Int(9);
16218 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16219 once_value_2 = fra.me.REG[4];
16220 register_static_object(&once_value_2);
16221 } else fra.me.REG[4] = once_value_2;
16222 fra.me.REG[4] = fra.me.REG[4];
16223 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16224 /* ./compiling//compiling_icode.nit:1046 */
16225 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16226 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16227 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16228 if (UNTAG_Bool(REGB0)) {
16229 /* ./compiling//compiling_icode.nit:1047 */
16230 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16231 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16232 if (UNTAG_Bool(REGB0)) {
16233 /* ./compiling//compiling_icode.nit:1048 */
16234 if (!once_value_3) {
16235 fra.me.REG[4] = BOX_NativeString("(");
16236 REGB0 = TAG_Int(1);
16237 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16238 once_value_3 = fra.me.REG[4];
16239 register_static_object(&once_value_3);
16240 } else fra.me.REG[4] = once_value_3;
16241 fra.me.REG[4] = fra.me.REG[4];
16242 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16243 /* ./compiling//compiling_icode.nit:1049 */
16244 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16245 /* ./compiling//compiling_icode.nit:1050 */
16246 if (!once_value_4) {
16247 fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
16248 REGB0 = TAG_Int(15);
16249 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16250 once_value_4 = fra.me.REG[4];
16251 register_static_object(&once_value_4);
16252 } else fra.me.REG[4] = once_value_4;
16253 fra.me.REG[4] = fra.me.REG[4];
16254 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16255 } else {
16256 /* ./compiling//compiling_icode.nit:1051 */
16257 fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16258 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
16259 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16260 fra.me.REG[5] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]);
16261 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
16262 if (UNTAG_Bool(REGB0)) {
16263 } else {
16264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
16265 REGB0 = REGB1;
16266 }
16267 if (UNTAG_Bool(REGB0)) {
16268 /* ./compiling//compiling_icode.nit:1052 */
16269 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16270 /* ./compiling//compiling_icode.nit:1053 */
16271 if (!once_value_5) {
16272 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
16273 REGB0 = TAG_Int(11);
16274 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16275 once_value_5 = fra.me.REG[5];
16276 register_static_object(&once_value_5);
16277 } else fra.me.REG[5] = once_value_5;
16278 fra.me.REG[5] = fra.me.REG[5];
16279 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16280 /* ./compiling//compiling_icode.nit:1054 */
16281 goto label1;
16282 } else {
16283 /* ./compiling//compiling_icode.nit:1056 */
16284 if (!once_value_6) {
16285 fra.me.REG[5] = BOX_NativeString("(");
16286 REGB0 = TAG_Int(1);
16287 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16288 once_value_6 = fra.me.REG[5];
16289 register_static_object(&once_value_6);
16290 } else fra.me.REG[5] = once_value_6;
16291 fra.me.REG[5] = fra.me.REG[5];
16292 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16293 /* ./compiling//compiling_icode.nit:1057 */
16294 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16295 /* ./compiling//compiling_icode.nit:1058 */
16296 if (!once_value_7) {
16297 fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
16298 REGB0 = TAG_Int(15);
16299 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16300 once_value_7 = fra.me.REG[5];
16301 register_static_object(&once_value_7);
16302 } else fra.me.REG[5] = once_value_7;
16303 fra.me.REG[5] = fra.me.REG[5];
16304 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16305 }
16306 }
16307 }
16308 /* ./compiling//compiling_icode.nit:1062 */
16309 fra.me.REG[5] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
16310 /* ./compiling//compiling_icode.nit:1063 */
16311 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
16312 if (UNTAG_Bool(REGB0)) {
16313 /* ./compiling//compiling_icode.nit:1064 */
16314 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16315 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16316 /* ./compiling//compiling_icode.nit:1065 */
16317 fra.me.REG[1] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[5])(fra.me.REG[5]);
16318 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
16319 /* ./compiling//compiling_icode.nit:1066 */
16320 if (!once_value_8) {
16321 fra.me.REG[4] = BOX_NativeString("VAL_ISA(");
16322 REGB0 = TAG_Int(8);
16323 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16324 once_value_8 = fra.me.REG[4];
16325 register_static_object(&once_value_8);
16326 } else fra.me.REG[4] = once_value_8;
16327 fra.me.REG[4] = fra.me.REG[4];
16328 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16329 /* ./compiling//compiling_icode.nit:1067 */
16330 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16331 /* ./compiling//compiling_icode.nit:1068 */
16332 if (!once_value_9) {
16333 fra.me.REG[4] = BOX_NativeString(", ");
16334 REGB0 = TAG_Int(2);
16335 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16336 once_value_9 = fra.me.REG[4];
16337 register_static_object(&once_value_9);
16338 } else fra.me.REG[4] = once_value_9;
16339 fra.me.REG[4] = fra.me.REG[4];
16340 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16341 /* ./compiling//compiling_icode.nit:1069 */
16342 fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[1])(fra.me.REG[1]);
16343 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16344 /* ./compiling//compiling_icode.nit:1070 */
16345 if (!once_value_10) {
16346 fra.me.REG[4] = BOX_NativeString("(");
16347 REGB0 = TAG_Int(1);
16348 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16349 once_value_10 = fra.me.REG[4];
16350 register_static_object(&once_value_10);
16351 } else fra.me.REG[4] = once_value_10;
16352 fra.me.REG[4] = fra.me.REG[4];
16353 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16354 /* ./compiling//compiling_icode.nit:1071 */
16355 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16356 /* ./compiling//compiling_icode.nit:1072 */
16357 if (!once_value_11) {
16358 fra.me.REG[4] = BOX_NativeString(")");
16359 REGB0 = TAG_Int(1);
16360 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16361 once_value_11 = fra.me.REG[4];
16362 register_static_object(&once_value_11);
16363 } else fra.me.REG[4] = once_value_11;
16364 fra.me.REG[4] = fra.me.REG[4];
16365 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16366 /* ./compiling//compiling_icode.nit:1073 */
16367 if (!once_value_12) {
16368 fra.me.REG[4] = BOX_NativeString(", ");
16369 REGB0 = TAG_Int(2);
16370 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16371 once_value_12 = fra.me.REG[4];
16372 register_static_object(&once_value_12);
16373 } else fra.me.REG[4] = once_value_12;
16374 fra.me.REG[4] = fra.me.REG[4];
16375 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16376 /* ./compiling//compiling_icode.nit:1074 */
16377 fra.me.REG[1] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[1])(fra.me.REG[1]);
16378 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16379 /* ./compiling//compiling_icode.nit:1075 */
16380 if (!once_value_13) {
16381 fra.me.REG[1] = BOX_NativeString("(");
16382 REGB0 = TAG_Int(1);
16383 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16384 once_value_13 = fra.me.REG[1];
16385 register_static_object(&once_value_13);
16386 } else fra.me.REG[1] = once_value_13;
16387 fra.me.REG[1] = fra.me.REG[1];
16388 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16389 /* ./compiling//compiling_icode.nit:1076 */
16390 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16391 /* ./compiling//compiling_icode.nit:1077 */
16392 if (!once_value_14) {
16393 fra.me.REG[0] = BOX_NativeString(")");
16394 REGB0 = TAG_Int(1);
16395 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16396 once_value_14 = fra.me.REG[0];
16397 register_static_object(&once_value_14);
16398 } else fra.me.REG[0] = once_value_14;
16399 fra.me.REG[0] = fra.me.REG[0];
16400 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16401 /* ./compiling//compiling_icode.nit:1078 */
16402 if (!once_value_15) {
16403 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16404 REGB0 = TAG_Int(10);
16405 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16406 once_value_15 = fra.me.REG[0];
16407 register_static_object(&once_value_15);
16408 } else fra.me.REG[0] = once_value_15;
16409 fra.me.REG[0] = fra.me.REG[0];
16410 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16411 /* ./compiling//compiling_icode.nit:1079 */
16412 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16413 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16414 /* ./compiling//compiling_icode.nit:1080 */
16415 if (!once_value_16) {
16416 fra.me.REG[0] = BOX_NativeString("*/");
16417 REGB0 = TAG_Int(2);
16418 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16419 once_value_16 = fra.me.REG[0];
16420 register_static_object(&once_value_16);
16421 } else fra.me.REG[0] = once_value_16;
16422 fra.me.REG[0] = fra.me.REG[0];
16423 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16424 } else {
16425 /* ./compiling//compiling_icode.nit:1082 */
16426 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
16427 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
16428 /* ./compiling//compiling_icode.nit:1083 */
16429 if (!once_value_17) {
16430 fra.me.REG[1] = BOX_NativeString("VAL_ISA(");
16431 REGB0 = TAG_Int(8);
16432 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
16433 once_value_17 = fra.me.REG[1];
16434 register_static_object(&once_value_17);
16435 } else fra.me.REG[1] = once_value_17;
16436 fra.me.REG[1] = fra.me.REG[1];
16437 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16438 /* ./compiling//compiling_icode.nit:1084 */
16439 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16440 /* ./compiling//compiling_icode.nit:1085 */
16441 if (!once_value_18) {
16442 fra.me.REG[2] = BOX_NativeString(", ");
16443 REGB0 = TAG_Int(2);
16444 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16445 once_value_18 = fra.me.REG[2];
16446 register_static_object(&once_value_18);
16447 } else fra.me.REG[2] = once_value_18;
16448 fra.me.REG[2] = fra.me.REG[2];
16449 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16450 /* ./compiling//compiling_icode.nit:1086 */
16451 fra.me.REG[2] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
16452 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16453 /* ./compiling//compiling_icode.nit:1087 */
16454 if (!once_value_19) {
16455 fra.me.REG[2] = BOX_NativeString(", ");
16456 REGB0 = TAG_Int(2);
16457 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
16458 once_value_19 = fra.me.REG[2];
16459 register_static_object(&once_value_19);
16460 } else fra.me.REG[2] = once_value_19;
16461 fra.me.REG[2] = fra.me.REG[2];
16462 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
16463 /* ./compiling//compiling_icode.nit:1088 */
16464 fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
16465 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16466 /* ./compiling//compiling_icode.nit:1089 */
16467 if (!once_value_20) {
16468 fra.me.REG[0] = BOX_NativeString(")) /*cast ");
16469 REGB0 = TAG_Int(10);
16470 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16471 once_value_20 = fra.me.REG[0];
16472 register_static_object(&once_value_20);
16473 } else fra.me.REG[0] = once_value_20;
16474 fra.me.REG[0] = fra.me.REG[0];
16475 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16476 /* ./compiling//compiling_icode.nit:1090 */
16477 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
16478 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16479 /* ./compiling//compiling_icode.nit:1091 */
16480 if (!once_value_21) {
16481 fra.me.REG[5] = BOX_NativeString("*/");
16482 REGB0 = TAG_Int(2);
16483 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16484 once_value_21 = fra.me.REG[5];
16485 register_static_object(&once_value_21);
16486 } else fra.me.REG[5] = once_value_21;
16487 fra.me.REG[5] = fra.me.REG[5];
16488 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
16489 }
16490 label1: while(0);
16491 stack_frame_head = fra.me.prev;
16492 return;
16493 }
16494 void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
16495 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16496 val_t REGB0;
16497 val_t tmp;
16498 static val_t once_value_2; /* Once value */
16499 static val_t once_value_3; /* Once value */
16500 static val_t once_value_4; /* Once value */
16501 static val_t once_value_5; /* Once value */
16502 static val_t once_value_6; /* Once value */
16503 static val_t once_value_7; /* Once value */
16504 static val_t once_value_8; /* Once value */
16505 static val_t once_value_9; /* Once value */
16506 static val_t once_value_10; /* Once value */
16507 static val_t once_value_11; /* Once value */
16508 static val_t once_value_12; /* Once value */
16509 static val_t once_value_13; /* Once value */
16510 static val_t once_value_14; /* Once value */
16511 static val_t once_value_15; /* Once value */
16512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16513 fra.me.file = LOCATE_compiling___compiling_icode;
16514 fra.me.line = 1097;
16515 fra.me.meth = LOCATE_compiling___compiling_icode___IIs___compile_to_c;
16516 fra.me.has_broke = 0;
16517 fra.me.REG_size = 6;
16518 fra.me.REG[0] = NIT_NULL;
16519 fra.me.REG[1] = NIT_NULL;
16520 fra.me.REG[2] = NIT_NULL;
16521 fra.me.REG[3] = NIT_NULL;
16522 fra.me.REG[4] = NIT_NULL;
16523 fra.me.REG[5] = NIT_NULL;
16524 fra.me.REG[0] = p0;
16525 fra.me.REG[1] = p1;
16526 /* ./compiling//compiling_icode.nit:1099 */
16527 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16529 if (UNTAG_Bool(REGB0)) {
16530 goto label1;
16531 }
16532 /* ./compiling//compiling_icode.nit:1100 */
16533 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16534 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16535 /* ./compiling//compiling_icode.nit:1101 */
16536 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16537 /* ./compiling//compiling_icode.nit:1102 */
16538 if (!once_value_2) {
16539 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
16540 REGB0 = TAG_Int(9);
16541 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16542 once_value_2 = fra.me.REG[3];
16543 register_static_object(&once_value_2);
16544 } else fra.me.REG[3] = once_value_2;
16545 fra.me.REG[3] = fra.me.REG[3];
16546 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16547 /* ./compiling//compiling_icode.nit:1103 */
16548 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16549 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
16550 /* ./compiling//compiling_icode.nit:1104 */
16551 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16552 fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
16553 /* ./compiling//compiling_icode.nit:1105 */
16554 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16555 if (UNTAG_Bool(REGB0)) {
16556 /* ./compiling//compiling_icode.nit:1106 */
16557 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16558 if (UNTAG_Bool(REGB0)) {
16559 /* ./compiling//compiling_icode.nit:1107 */
16560 if (!once_value_3) {
16561 fra.me.REG[5] = BOX_NativeString("1)");
16562 REGB0 = TAG_Int(2);
16563 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16564 once_value_3 = fra.me.REG[5];
16565 register_static_object(&once_value_3);
16566 } else fra.me.REG[5] = once_value_3;
16567 fra.me.REG[5] = fra.me.REG[5];
16568 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16569 /* ./compiling//compiling_icode.nit:1108 */
16570 goto label1;
16571 } else {
16572 /* ./compiling//compiling_icode.nit:1109 */
16573 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16574 if (UNTAG_Bool(REGB0)) {
16575 /* ./compiling//compiling_icode.nit:1110 */
16576 fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16577 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
16578 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16579 /* ./compiling//compiling_icode.nit:1111 */
16580 if (!once_value_4) {
16581 fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
16582 REGB0 = TAG_Int(11);
16583 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16584 once_value_4 = fra.me.REG[5];
16585 register_static_object(&once_value_4);
16586 } else fra.me.REG[5] = once_value_4;
16587 fra.me.REG[5] = fra.me.REG[5];
16588 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16589 /* ./compiling//compiling_icode.nit:1112 */
16590 goto label1;
16591 } else {
16592 /* ./compiling//compiling_icode.nit:1114 */
16593 if (!once_value_5) {
16594 fra.me.REG[5] = BOX_NativeString("0)");
16595 REGB0 = TAG_Int(2);
16596 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
16597 once_value_5 = fra.me.REG[5];
16598 register_static_object(&once_value_5);
16599 } else fra.me.REG[5] = once_value_5;
16600 fra.me.REG[5] = fra.me.REG[5];
16601 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
16602 /* ./compiling//compiling_icode.nit:1115 */
16603 goto label1;
16604 }
16605 }
16606 } else {
16607 /* ./compiling//compiling_icode.nit:1117 */
16608 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
16609 if (UNTAG_Bool(REGB0)) {
16610 /* ./compiling//compiling_icode.nit:1118 */
16611 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16612 if (UNTAG_Bool(REGB0)) {
16613 /* ./compiling//compiling_icode.nit:1119 */
16614 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16615 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16616 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16617 /* ./compiling//compiling_icode.nit:1120 */
16618 if (!once_value_6) {
16619 fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
16620 REGB0 = TAG_Int(11);
16621 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16622 once_value_6 = fra.me.REG[3];
16623 register_static_object(&once_value_6);
16624 } else fra.me.REG[3] = once_value_6;
16625 fra.me.REG[3] = fra.me.REG[3];
16626 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16627 /* ./compiling//compiling_icode.nit:1121 */
16628 goto label1;
16629 } else {
16630 /* ./compiling//compiling_icode.nit:1122 */
16631 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16632 if (UNTAG_Bool(REGB0)) {
16633 /* ./compiling//compiling_icode.nit:1123 */
16634 if (!once_value_7) {
16635 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
16636 REGB0 = TAG_Int(12);
16637 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16638 once_value_7 = fra.me.REG[3];
16639 register_static_object(&once_value_7);
16640 } else fra.me.REG[3] = once_value_7;
16641 fra.me.REG[3] = fra.me.REG[3];
16642 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16643 } else {
16644 /* ./compiling//compiling_icode.nit:1125 */
16645 if (!once_value_8) {
16646 fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
16647 REGB0 = TAG_Int(12);
16648 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16649 once_value_8 = fra.me.REG[3];
16650 register_static_object(&once_value_8);
16651 } else fra.me.REG[3] = once_value_8;
16652 fra.me.REG[3] = fra.me.REG[3];
16653 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16654 /* ./compiling//compiling_icode.nit:1126 */
16655 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16656 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16657 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16658 /* ./compiling//compiling_icode.nit:1127 */
16659 if (!once_value_9) {
16660 fra.me.REG[3] = BOX_NativeString(",");
16661 REGB0 = TAG_Int(1);
16662 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16663 once_value_9 = fra.me.REG[3];
16664 register_static_object(&once_value_9);
16665 } else fra.me.REG[3] = once_value_9;
16666 fra.me.REG[3] = fra.me.REG[3];
16667 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16668 /* ./compiling//compiling_icode.nit:1128 */
16669 fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16670 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16671 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16672 /* ./compiling//compiling_icode.nit:1129 */
16673 if (!once_value_10) {
16674 fra.me.REG[3] = BOX_NativeString("))");
16675 REGB0 = TAG_Int(2);
16676 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16677 once_value_10 = fra.me.REG[3];
16678 register_static_object(&once_value_10);
16679 } else fra.me.REG[3] = once_value_10;
16680 fra.me.REG[3] = fra.me.REG[3];
16681 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16682 /* ./compiling//compiling_icode.nit:1130 */
16683 goto label1;
16684 }
16685 }
16686 } else {
16687 /* ./compiling//compiling_icode.nit:1133 */
16688 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
16689 if (UNTAG_Bool(REGB0)) {
16690 /* ./compiling//compiling_icode.nit:1134 */
16691 if (!once_value_11) {
16692 fra.me.REG[3] = BOX_NativeString("0)");
16693 REGB0 = TAG_Int(2);
16694 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16695 once_value_11 = fra.me.REG[3];
16696 register_static_object(&once_value_11);
16697 } else fra.me.REG[3] = once_value_11;
16698 fra.me.REG[3] = fra.me.REG[3];
16699 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16700 /* ./compiling//compiling_icode.nit:1135 */
16701 goto label1;
16702 } else {
16703 /* ./compiling//compiling_icode.nit:1136 */
16704 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
16705 if (UNTAG_Bool(REGB0)) {
16706 /* ./compiling//compiling_icode.nit:1137 */
16707 if (!once_value_12) {
16708 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
16709 REGB0 = TAG_Int(12);
16710 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16711 once_value_12 = fra.me.REG[4];
16712 register_static_object(&once_value_12);
16713 } else fra.me.REG[4] = once_value_12;
16714 fra.me.REG[4] = fra.me.REG[4];
16715 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16716 } else {
16717 /* ./compiling//compiling_icode.nit:1139 */
16718 if (!once_value_13) {
16719 fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
16720 REGB0 = TAG_Int(12);
16721 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16722 once_value_13 = fra.me.REG[4];
16723 register_static_object(&once_value_13);
16724 } else fra.me.REG[4] = once_value_13;
16725 fra.me.REG[4] = fra.me.REG[4];
16726 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16727 }
16728 }
16729 }
16730 }
16731 /* ./compiling//compiling_icode.nit:1142 */
16732 fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
16733 fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16734 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16735 /* ./compiling//compiling_icode.nit:1143 */
16736 if (!once_value_14) {
16737 fra.me.REG[4] = BOX_NativeString(",");
16738 REGB0 = TAG_Int(1);
16739 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
16740 once_value_14 = fra.me.REG[4];
16741 register_static_object(&once_value_14);
16742 } else fra.me.REG[4] = once_value_14;
16743 fra.me.REG[4] = fra.me.REG[4];
16744 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16745 /* ./compiling//compiling_icode.nit:1144 */
16746 fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
16747 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16748 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16749 /* ./compiling//compiling_icode.nit:1145 */
16750 if (!once_value_15) {
16751 fra.me.REG[0] = BOX_NativeString("))");
16752 REGB0 = TAG_Int(2);
16753 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16754 once_value_15 = fra.me.REG[0];
16755 register_static_object(&once_value_15);
16756 } else fra.me.REG[0] = once_value_15;
16757 fra.me.REG[0] = fra.me.REG[0];
16758 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16759 label1: while(0);
16760 stack_frame_head = fra.me.prev;
16761 return;
16762 }
16763 void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
16764 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16765 val_t REGB0;
16766 val_t tmp;
16767 static val_t once_value_2; /* Once value */
16768 static val_t once_value_3; /* Once value */
16769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16770 fra.me.file = LOCATE_compiling___compiling_icode;
16771 fra.me.line = 1150;
16772 fra.me.meth = LOCATE_compiling___compiling_icode___INot___compile_to_c;
16773 fra.me.has_broke = 0;
16774 fra.me.REG_size = 4;
16775 fra.me.REG[0] = NIT_NULL;
16776 fra.me.REG[1] = NIT_NULL;
16777 fra.me.REG[2] = NIT_NULL;
16778 fra.me.REG[3] = NIT_NULL;
16779 fra.me.REG[0] = p0;
16780 fra.me.REG[1] = p1;
16781 /* ./compiling//compiling_icode.nit:1152 */
16782 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
16783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16784 if (UNTAG_Bool(REGB0)) {
16785 goto label1;
16786 }
16787 /* ./compiling//compiling_icode.nit:1153 */
16788 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
16789 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16790 /* ./compiling//compiling_icode.nit:1154 */
16791 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16792 /* ./compiling//compiling_icode.nit:1155 */
16793 if (!once_value_2) {
16794 fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
16795 REGB0 = TAG_Int(21);
16796 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
16797 once_value_2 = fra.me.REG[3];
16798 register_static_object(&once_value_2);
16799 } else fra.me.REG[3] = once_value_2;
16800 fra.me.REG[3] = fra.me.REG[3];
16801 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16802 /* ./compiling//compiling_icode.nit:1156 */
16803 fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
16804 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16805 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16806 /* ./compiling//compiling_icode.nit:1157 */
16807 if (!once_value_3) {
16808 fra.me.REG[0] = BOX_NativeString("))");
16809 REGB0 = TAG_Int(2);
16810 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
16811 once_value_3 = fra.me.REG[0];
16812 register_static_object(&once_value_3);
16813 } else fra.me.REG[0] = once_value_3;
16814 fra.me.REG[0] = fra.me.REG[0];
16815 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16816 label1: while(0);
16817 stack_frame_head = fra.me.prev;
16818 return;
16819 }
16820 void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
16821 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16822 val_t REGB0;
16823 val_t REGB1;
16824 val_t tmp;
16825 static val_t once_value_1; /* Once value */
16826 static val_t once_value_2; /* Once value */
16827 static val_t once_value_3; /* Once value */
16828 static val_t once_value_4; /* Once value */
16829 static val_t once_value_5; /* Once value */
16830 static val_t once_value_6; /* Once value */
16831 static val_t once_value_7; /* Once value */
16832 static val_t once_value_8; /* Once value */
16833 static val_t once_value_9; /* Once value */
16834 static val_t once_value_10; /* Once value */
16835 static val_t once_value_11; /* Once value */
16836 static val_t once_value_12; /* Once value */
16837 static val_t once_value_13; /* Once value */
16838 static val_t once_value_14; /* Once value */
16839 static val_t once_value_15; /* Once value */
16840 static val_t once_value_16; /* Once value */
16841 static val_t once_value_17; /* Once value */
16842 static val_t once_value_18; /* Once value */
16843 static val_t once_value_19; /* Once value */
16844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16845 fra.me.file = LOCATE_compiling___compiling_icode;
16846 fra.me.line = 1162;
16847 fra.me.meth = LOCATE_compiling___compiling_icode___IOnce___compile_to_c;
16848 fra.me.has_broke = 0;
16849 fra.me.REG_size = 6;
16850 fra.me.REG[0] = NIT_NULL;
16851 fra.me.REG[1] = NIT_NULL;
16852 fra.me.REG[2] = NIT_NULL;
16853 fra.me.REG[3] = NIT_NULL;
16854 fra.me.REG[4] = NIT_NULL;
16855 fra.me.REG[5] = NIT_NULL;
16856 fra.me.REG[0] = p0;
16857 fra.me.REG[1] = p1;
16858 /* ./compiling//compiling_icode.nit:1162 */
16859 fra.me.REG[2] = fra.me.REG[0];
16860 /* ./compiling//compiling_icode.nit:1164 */
16861 fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
16862 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16863 /* ./compiling//compiling_icode.nit:1165 */
16864 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
16865 /* ./compiling//compiling_icode.nit:1166 */
16866 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
16867 REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
16868 if (UNTAG_Bool(REGB1)) {
16869 } else {
16870 nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 1166);
16871 }
16872 /* ./compiling//compiling_icode.nit:1167 */
16873 fra.me.REG[0] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
16874 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
16875 if (UNTAG_Bool(REGB1)) {
16876 /* ./compiling//compiling_icode.nit:1168 */
16877 REGB1 = TAG_Int(5);
16878 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
16879 if (!once_value_1) {
16880 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
16881 REGB1 = TAG_Int(24);
16882 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16883 once_value_1 = fra.me.REG[4];
16884 register_static_object(&once_value_1);
16885 } else fra.me.REG[4] = once_value_1;
16886 fra.me.REG[4] = fra.me.REG[4];
16887 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16888 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
16889 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16890 if (!once_value_2) {
16891 fra.me.REG[4] = BOX_NativeString("; static int once_bool_");
16892 REGB1 = TAG_Int(23);
16893 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16894 once_value_2 = fra.me.REG[4];
16895 register_static_object(&once_value_2);
16896 } else fra.me.REG[4] = once_value_2;
16897 fra.me.REG[4] = fra.me.REG[4];
16898 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16899 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
16900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16901 if (!once_value_3) {
16902 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
16903 REGB1 = TAG_Int(18);
16904 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16905 once_value_3 = fra.me.REG[4];
16906 register_static_object(&once_value_3);
16907 } else fra.me.REG[4] = once_value_3;
16908 fra.me.REG[4] = fra.me.REG[4];
16909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16910 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
16911 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16912 /* ./compiling//compiling_icode.nit:1169 */
16913 REGB1 = TAG_Int(3);
16914 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
16915 if (!once_value_4) {
16916 fra.me.REG[4] = BOX_NativeString("if (!once_bool_");
16917 REGB1 = TAG_Int(15);
16918 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16919 once_value_4 = fra.me.REG[4];
16920 register_static_object(&once_value_4);
16921 } else fra.me.REG[4] = once_value_4;
16922 fra.me.REG[4] = fra.me.REG[4];
16923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16924 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
16925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16926 if (!once_value_5) {
16927 fra.me.REG[4] = BOX_NativeString(") {");
16928 REGB1 = TAG_Int(3);
16929 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16930 once_value_5 = fra.me.REG[4];
16931 register_static_object(&once_value_5);
16932 } else fra.me.REG[4] = once_value_5;
16933 fra.me.REG[4] = fra.me.REG[4];
16934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16935 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
16936 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16937 } else {
16938 /* ./compiling//compiling_icode.nit:1172 */
16939 REGB1 = TAG_Int(3);
16940 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
16941 if (!once_value_6) {
16942 fra.me.REG[4] = BOX_NativeString("static val_t once_value_");
16943 REGB1 = TAG_Int(24);
16944 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16945 once_value_6 = fra.me.REG[4];
16946 register_static_object(&once_value_6);
16947 } else fra.me.REG[4] = once_value_6;
16948 fra.me.REG[4] = fra.me.REG[4];
16949 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16950 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
16951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16952 if (!once_value_7) {
16953 fra.me.REG[4] = BOX_NativeString("; /* Once value */");
16954 REGB1 = TAG_Int(18);
16955 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16956 once_value_7 = fra.me.REG[4];
16957 register_static_object(&once_value_7);
16958 } else fra.me.REG[4] = once_value_7;
16959 fra.me.REG[4] = fra.me.REG[4];
16960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16961 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
16962 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16963 /* ./compiling//compiling_icode.nit:1173 */
16964 REGB1 = TAG_Int(3);
16965 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
16966 if (!once_value_8) {
16967 fra.me.REG[4] = BOX_NativeString("if (!once_value_");
16968 REGB1 = TAG_Int(16);
16969 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16970 once_value_8 = fra.me.REG[4];
16971 register_static_object(&once_value_8);
16972 } else fra.me.REG[4] = once_value_8;
16973 fra.me.REG[4] = fra.me.REG[4];
16974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16975 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
16976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16977 if (!once_value_9) {
16978 fra.me.REG[4] = BOX_NativeString(") {");
16979 REGB1 = TAG_Int(3);
16980 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
16981 once_value_9 = fra.me.REG[4];
16982 register_static_object(&once_value_9);
16983 } else fra.me.REG[4] = once_value_9;
16984 fra.me.REG[4] = fra.me.REG[4];
16985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
16986 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
16987 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16988 }
16989 /* ./compiling//compiling_icode.nit:1175 */
16990 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
16991 /* ./compiling//compiling_icode.nit:1176 */
16992 fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
16993 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
16994 /* ./compiling//compiling_icode.nit:1177 */
16995 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16996 /* ./compiling//compiling_icode.nit:1178 */
16997 REGB1 = TAG_Int(5);
16998 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
16999 if (!once_value_10) {
17000 fra.me.REG[5] = BOX_NativeString("once_value_");
17001 REGB1 = TAG_Int(11);
17002 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17003 once_value_10 = fra.me.REG[5];
17004 register_static_object(&once_value_10);
17005 } else fra.me.REG[5] = once_value_10;
17006 fra.me.REG[5] = fra.me.REG[5];
17007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17008 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17010 if (!once_value_11) {
17011 fra.me.REG[5] = BOX_NativeString(" = ");
17012 REGB1 = TAG_Int(3);
17013 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17014 once_value_11 = fra.me.REG[5];
17015 register_static_object(&once_value_11);
17016 } else fra.me.REG[5] = once_value_11;
17017 fra.me.REG[5] = fra.me.REG[5];
17018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
17020 if (!once_value_12) {
17021 fra.me.REG[5] = BOX_NativeString(";");
17022 REGB1 = TAG_Int(1);
17023 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17024 once_value_12 = fra.me.REG[5];
17025 register_static_object(&once_value_12);
17026 } else fra.me.REG[5] = once_value_12;
17027 fra.me.REG[5] = fra.me.REG[5];
17028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17029 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17030 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17031 /* ./compiling//compiling_icode.nit:1179 */
17032 REGB1 = TAG_Int(3);
17033 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17034 if (!once_value_13) {
17035 fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_");
17036 REGB1 = TAG_Int(35);
17037 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17038 once_value_13 = fra.me.REG[5];
17039 register_static_object(&once_value_13);
17040 } else fra.me.REG[5] = once_value_13;
17041 fra.me.REG[5] = fra.me.REG[5];
17042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17043 fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17045 if (!once_value_14) {
17046 fra.me.REG[5] = BOX_NativeString(");");
17047 REGB1 = TAG_Int(2);
17048 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
17049 once_value_14 = fra.me.REG[5];
17050 register_static_object(&once_value_14);
17051 } else fra.me.REG[5] = once_value_14;
17052 fra.me.REG[5] = fra.me.REG[5];
17053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
17054 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
17055 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17056 /* ./compiling//compiling_icode.nit:1180 */
17057 fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
17058 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
17059 if (UNTAG_Bool(REGB1)) {
17060 REGB1 = TAG_Int(3);
17061 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17062 if (!once_value_15) {
17063 fra.me.REG[4] = BOX_NativeString("once_bool_");
17064 REGB1 = TAG_Int(10);
17065 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17066 once_value_15 = fra.me.REG[4];
17067 register_static_object(&once_value_15);
17068 } else fra.me.REG[4] = once_value_15;
17069 fra.me.REG[4] = fra.me.REG[4];
17070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17071 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17073 if (!once_value_16) {
17074 fra.me.REG[4] = BOX_NativeString(" = true;");
17075 REGB1 = TAG_Int(8);
17076 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17077 once_value_16 = fra.me.REG[4];
17078 register_static_object(&once_value_16);
17079 } else fra.me.REG[4] = once_value_16;
17080 fra.me.REG[4] = fra.me.REG[4];
17081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17082 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17083 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17084 }
17085 /* ./compiling//compiling_icode.nit:1181 */
17086 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17087 /* ./compiling//compiling_icode.nit:1182 */
17088 REGB1 = TAG_Int(5);
17089 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17090 if (!once_value_17) {
17091 fra.me.REG[4] = BOX_NativeString("} else ");
17092 REGB1 = TAG_Int(7);
17093 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17094 once_value_17 = fra.me.REG[4];
17095 register_static_object(&once_value_17);
17096 } else fra.me.REG[4] = once_value_17;
17097 fra.me.REG[4] = fra.me.REG[4];
17098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17100 if (!once_value_18) {
17101 fra.me.REG[4] = BOX_NativeString(" = once_value_");
17102 REGB1 = TAG_Int(14);
17103 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
17104 once_value_18 = fra.me.REG[4];
17105 register_static_object(&once_value_18);
17106 } else fra.me.REG[4] = once_value_18;
17107 fra.me.REG[4] = fra.me.REG[4];
17108 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17109 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
17110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17111 if (!once_value_19) {
17112 fra.me.REG[4] = BOX_NativeString(";");
17113 REGB0 = TAG_Int(1);
17114 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17115 once_value_19 = fra.me.REG[4];
17116 register_static_object(&once_value_19);
17117 } else fra.me.REG[4] = once_value_19;
17118 fra.me.REG[4] = fra.me.REG[4];
17119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17120 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17121 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17122 /* ./compiling//compiling_icode.nit:1183 */
17123 fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
17124 /* ./compiling//compiling_icode.nit:1184 */
17125 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17126 stack_frame_head = fra.me.prev;
17127 return;
17128 }
17129 void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
17130 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17131 val_t REGB0;
17132 val_t REGB1;
17133 val_t tmp;
17134 static val_t once_value_1; /* Once value */
17135 static val_t once_value_2; /* Once value */
17136 static val_t once_value_3; /* Once value */
17137 static val_t once_value_4; /* Once value */
17138 static val_t once_value_5; /* Once value */
17139 static val_t once_value_6; /* Once value */
17140 static val_t once_value_7; /* Once value */
17141 static val_t once_value_8; /* Once value */
17142 static val_t once_value_9; /* Once value */
17143 static val_t once_value_10; /* Once value */
17144 static val_t once_value_11; /* Once value */
17145 static val_t once_value_12; /* Once value */
17146 static val_t once_value_13; /* Once value */
17147 static val_t once_value_14; /* Once value */
17148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17149 fra.me.file = LOCATE_compiling___compiling_icode;
17150 fra.me.line = 1189;
17151 fra.me.meth = LOCATE_compiling___compiling_icode___IClosCall___compile_to_c;
17152 fra.me.has_broke = 0;
17153 fra.me.REG_size = 7;
17154 fra.me.REG[0] = NIT_NULL;
17155 fra.me.REG[1] = NIT_NULL;
17156 fra.me.REG[2] = NIT_NULL;
17157 fra.me.REG[3] = NIT_NULL;
17158 fra.me.REG[4] = NIT_NULL;
17159 fra.me.REG[5] = NIT_NULL;
17160 fra.me.REG[6] = NIT_NULL;
17161 fra.me.REG[0] = p0;
17162 fra.me.REG[1] = p1;
17163 /* ./compiling//compiling_icode.nit:1191 */
17164 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17165 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17166 /* ./compiling//compiling_icode.nit:1194 */
17167 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17168 if (UNTAG_Bool(REGB0)) {
17169 /* ./compiling//compiling_icode.nit:1195 */
17170 REGB0 = TAG_Int(3);
17171 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17172 if (!once_value_1) {
17173 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17174 REGB0 = TAG_Int(22);
17175 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17176 once_value_1 = fra.me.REG[3];
17177 register_static_object(&once_value_1);
17178 } else fra.me.REG[3] = once_value_1;
17179 fra.me.REG[3] = fra.me.REG[3];
17180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17181 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17182 fra.me.REG[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17183 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17185 if (!once_value_2) {
17186 fra.me.REG[4] = BOX_NativeString("]");
17187 REGB0 = TAG_Int(1);
17188 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17189 once_value_2 = fra.me.REG[4];
17190 register_static_object(&once_value_2);
17191 } else fra.me.REG[4] = once_value_2;
17192 fra.me.REG[4] = fra.me.REG[4];
17193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17194 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17195 /* ./compiling//compiling_icode.nit:1196 */
17196 REGB0 = TAG_Int(1);
17197 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17198 if (!once_value_3) {
17199 fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx");
17200 REGB0 = TAG_Int(20);
17201 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17202 once_value_3 = fra.me.REG[3];
17203 register_static_object(&once_value_3);
17204 } else fra.me.REG[3] = once_value_3;
17205 fra.me.REG[3] = fra.me.REG[3];
17206 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17207 } else {
17208 /* ./compiling//compiling_icode.nit:1198 */
17209 REGB0 = TAG_Int(3);
17210 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17211 if (!once_value_4) {
17212 fra.me.REG[5] = BOX_NativeString("CREG[");
17213 REGB0 = TAG_Int(5);
17214 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17215 once_value_4 = fra.me.REG[5];
17216 register_static_object(&once_value_4);
17217 } else fra.me.REG[5] = once_value_4;
17218 fra.me.REG[5] = fra.me.REG[5];
17219 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17220 fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17221 fra.me.REG[6] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17222 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17224 if (!once_value_5) {
17225 fra.me.REG[6] = BOX_NativeString("]");
17226 REGB0 = TAG_Int(1);
17227 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17228 once_value_5 = fra.me.REG[6];
17229 register_static_object(&once_value_5);
17230 } else fra.me.REG[6] = once_value_5;
17231 fra.me.REG[6] = fra.me.REG[6];
17232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17233 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17234 fra.me.REG[2] = fra.me.REG[3];
17235 /* ./compiling//compiling_icode.nit:1199 */
17236 REGB0 = TAG_Int(1);
17237 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17238 if (!once_value_6) {
17239 fra.me.REG[6] = BOX_NativeString("closctx_param");
17240 REGB0 = TAG_Int(13);
17241 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17242 once_value_6 = fra.me.REG[6];
17243 register_static_object(&once_value_6);
17244 } else fra.me.REG[6] = once_value_6;
17245 fra.me.REG[6] = fra.me.REG[6];
17246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17247 fra.me.REG[4] = fra.me.REG[3];
17248 }
17249 /* ./compiling//compiling_icode.nit:1201 */
17250 fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
17251 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17252 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
17253 /* ./compiling//compiling_icode.nit:1203 */
17254 REGB0 = TAG_Int(7);
17255 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17256 if (!once_value_7) {
17257 fra.me.REG[6] = BOX_NativeString("((");
17258 REGB0 = TAG_Int(2);
17259 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17260 once_value_7 = fra.me.REG[6];
17261 register_static_object(&once_value_7);
17262 } else fra.me.REG[6] = once_value_7;
17263 fra.me.REG[6] = fra.me.REG[6];
17264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17265 fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
17266 fra.me.REG[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17267 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
17268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17269 if (!once_value_8) {
17270 fra.me.REG[5] = BOX_NativeString(")(");
17271 REGB0 = TAG_Int(2);
17272 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
17273 once_value_8 = fra.me.REG[5];
17274 register_static_object(&once_value_8);
17275 } else fra.me.REG[5] = once_value_8;
17276 fra.me.REG[5] = fra.me.REG[5];
17277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
17278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17279 if (!once_value_9) {
17280 fra.me.REG[2] = BOX_NativeString("))(");
17281 REGB0 = TAG_Int(3);
17282 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17283 once_value_9 = fra.me.REG[2];
17284 register_static_object(&once_value_9);
17285 } else fra.me.REG[2] = once_value_9;
17286 fra.me.REG[2] = fra.me.REG[2];
17287 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17288 if (!once_value_10) {
17289 fra.me.REG[2] = BOX_NativeString(", ");
17290 REGB0 = TAG_Int(2);
17291 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17292 once_value_10 = fra.me.REG[2];
17293 register_static_object(&once_value_10);
17294 } else fra.me.REG[2] = once_value_10;
17295 fra.me.REG[2] = fra.me.REG[2];
17296 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
17297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17298 if (!once_value_11) {
17299 fra.me.REG[2] = BOX_NativeString(")");
17300 REGB0 = TAG_Int(1);
17301 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
17302 once_value_11 = fra.me.REG[2];
17303 register_static_object(&once_value_11);
17304 } else fra.me.REG[2] = once_value_11;
17305 fra.me.REG[2] = fra.me.REG[2];
17306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
17307 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17308 /* ./compiling//compiling_icode.nit:1204 */
17309 fra.me.REG[2] = NEW_Writer_compiling___compiling_writer___Writer___init();
17310 /* ./compiling//compiling_icode.nit:1205 */
17311 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17312 /* ./compiling//compiling_icode.nit:1206 */
17313 CALL_compiling___compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
17314 /* ./compiling//compiling_icode.nit:1209 */
17315 REGB0 = TAG_Int(3);
17316 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17317 if (!once_value_12) {
17318 fra.me.REG[3] = BOX_NativeString("if (");
17319 REGB0 = TAG_Int(4);
17320 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17321 once_value_12 = fra.me.REG[3];
17322 register_static_object(&once_value_12);
17323 } else fra.me.REG[3] = once_value_12;
17324 fra.me.REG[3] = fra.me.REG[3];
17325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17326 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
17327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17328 if (!once_value_13) {
17329 fra.me.REG[4] = BOX_NativeString("->has_broke) {");
17330 REGB0 = TAG_Int(14);
17331 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17332 once_value_13 = fra.me.REG[4];
17333 register_static_object(&once_value_13);
17334 } else fra.me.REG[4] = once_value_13;
17335 fra.me.REG[4] = fra.me.REG[4];
17336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17337 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
17338 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17339 /* ./compiling//compiling_icode.nit:1210 */
17340 CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
17341 /* ./compiling//compiling_icode.nit:1211 */
17342 fra.me.REG[0] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
17343 /* ./compiling//compiling_icode.nit:1212 */
17344 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17345 if (UNTAG_Bool(REGB0)) {
17346 } else {
17347 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17348 if (UNTAG_Bool(REGB1)) {
17349 REGB1 = TAG_Bool(false);
17350 REGB0 = REGB1;
17351 } else {
17352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
17353 REGB0 = REGB1;
17354 }
17355 }
17356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17357 if (UNTAG_Bool(REGB0)) {
17358 /* ./compiling//compiling_icode.nit:1213 */
17359 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
17360 if (UNTAG_Bool(REGB0)) {
17361 nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 1213);
17362 }
17363 CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17364 }
17365 /* ./compiling//compiling_icode.nit:1215 */
17366 fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
17367 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
17368 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17369 /* ./compiling//compiling_icode.nit:1216 */
17370 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17371 /* ./compiling//compiling_icode.nit:1217 */
17372 if (!once_value_14) {
17373 fra.me.REG[0] = BOX_NativeString("}");
17374 REGB0 = TAG_Int(1);
17375 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17376 once_value_14 = fra.me.REG[0];
17377 register_static_object(&once_value_14);
17378 } else fra.me.REG[0] = once_value_14;
17379 fra.me.REG[0] = fra.me.REG[0];
17380 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17381 stack_frame_head = fra.me.prev;
17382 return;
17383 }
17384 void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
17385 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17386 val_t REGB0;
17387 val_t tmp;
17388 static val_t once_value_2; /* Once value */
17389 static val_t once_value_3; /* Once value */
17390 static val_t once_value_4; /* Once value */
17391 static val_t once_value_5; /* Once value */
17392 static val_t once_value_6; /* Once value */
17393 static val_t once_value_7; /* Once value */
17394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17395 fra.me.file = LOCATE_compiling___compiling_icode;
17396 fra.me.line = 1222;
17397 fra.me.meth = LOCATE_compiling___compiling_icode___IHasClos___compile_to_c;
17398 fra.me.has_broke = 0;
17399 fra.me.REG_size = 5;
17400 fra.me.REG[0] = NIT_NULL;
17401 fra.me.REG[1] = NIT_NULL;
17402 fra.me.REG[2] = NIT_NULL;
17403 fra.me.REG[3] = NIT_NULL;
17404 fra.me.REG[4] = NIT_NULL;
17405 fra.me.REG[0] = p0;
17406 fra.me.REG[1] = p1;
17407 /* ./compiling//compiling_icode.nit:1224 */
17408 REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
17409 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17410 if (UNTAG_Bool(REGB0)) {
17411 goto label1;
17412 }
17413 /* ./compiling//compiling_icode.nit:1225 */
17414 fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
17415 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17416 /* ./compiling//compiling_icode.nit:1226 */
17417 fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
17418 /* ./compiling//compiling_icode.nit:1227 */
17419 if (!once_value_2) {
17420 fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
17421 REGB0 = TAG_Int(9);
17422 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17423 once_value_2 = fra.me.REG[3];
17424 register_static_object(&once_value_2);
17425 } else fra.me.REG[3] = once_value_2;
17426 fra.me.REG[3] = fra.me.REG[3];
17427 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17428 /* ./compiling//compiling_icode.nit:1228 */
17429 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17430 if (UNTAG_Bool(REGB0)) {
17431 /* ./compiling//compiling_icode.nit:1229 */
17432 if (!once_value_3) {
17433 fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
17434 REGB0 = TAG_Int(22);
17435 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
17436 once_value_3 = fra.me.REG[3];
17437 register_static_object(&once_value_3);
17438 } else fra.me.REG[3] = once_value_3;
17439 fra.me.REG[3] = fra.me.REG[3];
17440 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17441 /* ./compiling//compiling_icode.nit:1230 */
17442 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17443 fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17444 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17445 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17446 /* ./compiling//compiling_icode.nit:1231 */
17447 if (!once_value_4) {
17448 fra.me.REG[4] = BOX_NativeString("]");
17449 REGB0 = TAG_Int(1);
17450 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17451 once_value_4 = fra.me.REG[4];
17452 register_static_object(&once_value_4);
17453 } else fra.me.REG[4] = once_value_4;
17454 fra.me.REG[4] = fra.me.REG[4];
17455 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17456 } else {
17457 /* ./compiling//compiling_icode.nit:1233 */
17458 if (!once_value_5) {
17459 fra.me.REG[4] = BOX_NativeString("CREG[");
17460 REGB0 = TAG_Int(5);
17461 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
17462 once_value_5 = fra.me.REG[4];
17463 register_static_object(&once_value_5);
17464 } else fra.me.REG[4] = once_value_5;
17465 fra.me.REG[4] = fra.me.REG[4];
17466 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17467 /* ./compiling//compiling_icode.nit:1234 */
17468 fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
17469 fra.me.REG[0] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
17470 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17471 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17472 /* ./compiling//compiling_icode.nit:1235 */
17473 if (!once_value_6) {
17474 fra.me.REG[0] = BOX_NativeString("]");
17475 REGB0 = TAG_Int(1);
17476 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17477 once_value_6 = fra.me.REG[0];
17478 register_static_object(&once_value_6);
17479 } else fra.me.REG[0] = once_value_6;
17480 fra.me.REG[0] = fra.me.REG[0];
17481 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17482 }
17483 /* ./compiling//compiling_icode.nit:1237 */
17484 if (!once_value_7) {
17485 fra.me.REG[0] = BOX_NativeString(" != NULL)");
17486 REGB0 = TAG_Int(9);
17487 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
17488 once_value_7 = fra.me.REG[0];
17489 register_static_object(&once_value_7);
17490 } else fra.me.REG[0] = once_value_7;
17491 fra.me.REG[0] = fra.me.REG[0];
17492 CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17493 label1: while(0);
17494 stack_frame_head = fra.me.prev;
17495 return;
17496 }
17497 val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){
17498 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17499 val_t REGB0;
17500 val_t REGB1;
17501 val_t REGB2;
17502 val_t tmp;
17503 static val_t once_value_1; /* Once value */
17504 static val_t once_value_2; /* Once value */
17505 static val_t once_value_3; /* Once value */
17506 static val_t once_value_4; /* Once value */
17507 static val_t once_value_5; /* Once value */
17508 static val_t once_value_6; /* Once value */
17509 static val_t once_value_7; /* Once value */
17510 static val_t once_value_8; /* Once value */
17511 static val_t once_value_9; /* Once value */
17512 static val_t once_value_10; /* Once value */
17513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17514 fra.me.file = LOCATE_compiling___compiling_icode;
17515 fra.me.line = 1242;
17516 fra.me.meth = LOCATE_compiling___compiling_icode___IClosureDef___compile_closure;
17517 fra.me.has_broke = 0;
17518 fra.me.REG_size = 9;
17519 fra.me.REG[0] = NIT_NULL;
17520 fra.me.REG[1] = NIT_NULL;
17521 fra.me.REG[2] = NIT_NULL;
17522 fra.me.REG[3] = NIT_NULL;
17523 fra.me.REG[4] = NIT_NULL;
17524 fra.me.REG[5] = NIT_NULL;
17525 fra.me.REG[6] = NIT_NULL;
17526 fra.me.REG[7] = NIT_NULL;
17527 fra.me.REG[8] = NIT_NULL;
17528 fra.me.REG[0] = p0;
17529 fra.me.REG[1] = p1;
17530 /* ./compiling//compiling_icode.nit:1246 */
17531 fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17532 /* ./compiling//compiling_icode.nit:1249 */
17533 REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
17534 /* ./compiling//compiling_icode.nit:1250 */
17535 REGB1 = TAG_Bool(true);
17536 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
17537 /* ./compiling//compiling_icode.nit:1253 */
17538 fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
17539 /* ./compiling//compiling_icode.nit:1254 */
17540 fra.me.REG[4] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
17541 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17542 /* ./compiling//compiling_icode.nit:1257 */
17543 fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
17544 /* ./compiling//compiling_icode.nit:1258 */
17545 fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17546 /* ./compiling//compiling_icode.nit:1259 */
17547 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
17548 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17549 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17550 /* ./compiling//compiling_icode.nit:1260 */
17551 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
17552 fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
17553 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17554 /* ./compiling//compiling_icode.nit:1263 */
17555 REGB1 = TAG_Int(5);
17556 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17557 if (!once_value_1) {
17558 fra.me.REG[7] = BOX_NativeString("OC_");
17559 REGB1 = TAG_Int(3);
17560 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17561 once_value_1 = fra.me.REG[7];
17562 register_static_object(&once_value_1);
17563 } else fra.me.REG[7] = once_value_1;
17564 fra.me.REG[7] = fra.me.REG[7];
17565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17566 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]);
17567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17568 if (!once_value_2) {
17569 fra.me.REG[7] = BOX_NativeString("_");
17570 REGB1 = TAG_Int(1);
17571 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17572 once_value_2 = fra.me.REG[7];
17573 register_static_object(&once_value_2);
17574 } else fra.me.REG[7] = once_value_2;
17575 fra.me.REG[7] = fra.me.REG[7];
17576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17577 REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
17578 fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
17579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17580 if (!once_value_3) {
17581 fra.me.REG[7] = BOX_NativeString("");
17582 REGB1 = TAG_Int(0);
17583 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17584 once_value_3 = fra.me.REG[7];
17585 register_static_object(&once_value_3);
17586 } else fra.me.REG[7] = once_value_3;
17587 fra.me.REG[7] = fra.me.REG[7];
17588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
17589 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
17590 /* ./compiling//compiling_icode.nit:1264 */
17591 fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
17592 if (!once_value_4) {
17593 fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
17594 REGB1 = TAG_Int(29);
17595 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17596 once_value_4 = fra.me.REG[8];
17597 register_static_object(&once_value_4);
17598 } else fra.me.REG[8] = once_value_4;
17599 fra.me.REG[8] = fra.me.REG[8];
17600 fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[8], NIT_NULL);
17601 /* ./compiling//compiling_icode.nit:1265 */
17602 fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
17603 fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
17604 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
17605 /* ./compiling//compiling_icode.nit:1267 */
17606 fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[8]);
17607 /* ./compiling//compiling_icode.nit:1268 */
17608 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17609 if (UNTAG_Bool(REGB1)) {
17610 } else {
17611 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
17612 if (UNTAG_Bool(REGB2)) {
17613 REGB2 = TAG_Bool(false);
17614 REGB1 = REGB2;
17615 } else {
17616 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
17617 REGB1 = REGB2;
17618 }
17619 }
17620 if (UNTAG_Bool(REGB1)) {
17621 /* ./compiling//compiling_icode.nit:1269 */
17622 if (!once_value_5) {
17623 fra.me.REG[0] = BOX_NativeString("return;");
17624 REGB1 = TAG_Int(7);
17625 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17626 once_value_5 = fra.me.REG[0];
17627 register_static_object(&once_value_5);
17628 } else fra.me.REG[0] = once_value_5;
17629 fra.me.REG[0] = fra.me.REG[0];
17630 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17631 } else {
17632 /* ./compiling//compiling_icode.nit:1271 */
17633 REGB1 = TAG_Int(3);
17634 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
17635 if (!once_value_6) {
17636 fra.me.REG[7] = BOX_NativeString("return ");
17637 REGB1 = TAG_Int(7);
17638 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
17639 once_value_6 = fra.me.REG[7];
17640 register_static_object(&once_value_6);
17641 } else fra.me.REG[7] = once_value_6;
17642 fra.me.REG[7] = fra.me.REG[7];
17643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
17644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17645 if (!once_value_7) {
17646 fra.me.REG[8] = BOX_NativeString(";");
17647 REGB1 = TAG_Int(1);
17648 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
17649 once_value_7 = fra.me.REG[8];
17650 register_static_object(&once_value_7);
17651 } else fra.me.REG[8] = once_value_7;
17652 fra.me.REG[8] = fra.me.REG[8];
17653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
17654 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
17655 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17656 }
17657 /* ./compiling//compiling_icode.nit:1273 */
17658 CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
17659 /* ./compiling//compiling_icode.nit:1274 */
17660 if (!once_value_8) {
17661 fra.me.REG[0] = BOX_NativeString("}");
17662 REGB1 = TAG_Int(1);
17663 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
17664 once_value_8 = fra.me.REG[0];
17665 register_static_object(&once_value_8);
17666 } else fra.me.REG[0] = once_value_8;
17667 fra.me.REG[0] = fra.me.REG[0];
17668 CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17669 /* ./compiling//compiling_icode.nit:1277 */
17670 CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
17671 /* ./compiling//compiling_icode.nit:1278 */
17672 CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17673 /* ./compiling//compiling_icode.nit:1279 */
17674 CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
17675 /* ./compiling//compiling_icode.nit:1280 */
17676 CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17677 /* ./compiling//compiling_icode.nit:1281 */
17678 REGB0 = TAG_Int(3);
17679 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
17680 if (!once_value_9) {
17681 fra.me.REG[1] = BOX_NativeString("((fun_t)");
17682 REGB0 = TAG_Int(8);
17683 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
17684 once_value_9 = fra.me.REG[1];
17685 register_static_object(&once_value_9);
17686 } else fra.me.REG[1] = once_value_9;
17687 fra.me.REG[1] = fra.me.REG[1];
17688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17690 if (!once_value_10) {
17691 fra.me.REG[6] = BOX_NativeString(")");
17692 REGB0 = TAG_Int(1);
17693 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
17694 once_value_10 = fra.me.REG[6];
17695 register_static_object(&once_value_10);
17696 } else fra.me.REG[6] = once_value_10;
17697 fra.me.REG[6] = fra.me.REG[6];
17698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17699 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
17700 goto label11;
17701 label11: while(0);
17702 stack_frame_head = fra.me.prev;
17703 return fra.me.REG[3];
17704 }