1 /* This C file is generated by NIT to compile module compiling_icode. */
2 #include "compiling_icode._sep.h"
3 val_t
compiling_icode___I2CCompilerVisitor___register(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
8 static val_t once_value_1
; /* Once value */
9 static val_t once_value_3
; /* Once value */
10 static val_t once_value_4
; /* Once value */
11 static val_t once_value_5
; /* Once value */
12 static val_t once_value_6
; /* Once value */
13 static val_t once_value_7
; /* Once value */
14 static val_t once_value_8
; /* Once value */
15 static val_t once_value_9
; /* Once value */
16 static val_t once_value_10
; /* Once value */
17 static val_t once_value_11
; /* Once value */
18 static val_t once_value_12
; /* Once value */
19 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
20 fra
.me
.file
= LOCATE_compiling_icode
;
22 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___register
;
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
;
35 fra
.me
.REG
[2] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
36 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
37 /* ./compiling//compiling_icode.nit:34 */
38 if (UNTAG_Bool(REGB0
)) {
40 fra
.me
.REG
[2] = BOX_NativeString("NIT_NULL");
42 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
43 once_value_1
= fra
.me
.REG
[2];
44 register_static_object(&once_value_1
);
45 } else fra
.me
.REG
[2] = once_value_1
;
48 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
49 /* ./compiling//compiling_icode.nit:35 */
50 if (UNTAG_Bool(REGB0
)) {
52 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
53 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 35);
56 fra
.me
.REG
[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
57 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
58 /* ./compiling//compiling_icode.nit:36 */
59 if (UNTAG_Bool(REGB0
)) {
60 REGB0
= CALL_allocate_iregister_slots___IRegister___is_local(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
61 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
63 REGB1
= TAG_Bool(false);
66 if (UNTAG_Bool(REGB0
)) {
67 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra
.me
.REG
[0])!=NIT_NULL
);
68 if (UNTAG_Bool(REGB0
)) {
70 fprintf(stderr
, "Uninitialized attribute %s", "_ids2");
71 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 36);
74 fra
.me
.REG
[4] = ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra
.me
.REG
[0]);
75 fra
.me
.REG
[3] = fra
.me
.REG
[4];
77 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
78 /* ./compiling//compiling_icode.nit:37 */
79 if (UNTAG_Bool(REGB0
)) {
80 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
81 fra
.me
.REG
[2] = fra
.me
.REG
[4];
82 /* ./compiling//compiling_icode.nit:38 */
85 fra
.me
.REG
[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
86 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
87 /* ./compiling//compiling_icode.nit:41 */
88 if (UNTAG_Bool(REGB0
)) {
90 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
91 if (UNTAG_Bool(REGB1
)) {
92 REGB1
= TAG_Bool(false);
95 REGB1
= TAG_Bool((fra
.me
.REG
[4])==(NIT_NULL
));
97 /* ./compiling//compiling_icode.nit:41 */
100 if (UNTAG_Bool(REGB0
)) {
101 /* ./compiling//compiling_icode.nit:43 */
103 fra
.me
.REG
[5] = BOX_NativeString("NIT_NULL");
105 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
106 once_value_3
= fra
.me
.REG
[5];
107 register_static_object(&once_value_3
);
108 } else fra
.me
.REG
[5] = once_value_3
;
109 /* ./compiling//compiling_icode.nit:44 */
110 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[5]);
111 fra
.me
.REG
[2] = fra
.me
.REG
[5];
112 /* ./compiling//compiling_icode.nit:45 */
115 REGB0
= CALL_allocate_iregister_slots___IRegister___in_tag_slots(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
116 /* ./compiling//compiling_icode.nit:49 */
117 if (UNTAG_Bool(REGB0
)) {
118 /* ./compiling//compiling_icode.nit:50 */
120 fra
.me
.REG
[5] = NEW_HashMap_hash_collection___HashMap___init();
121 once_value_4
= fra
.me
.REG
[5];
122 register_static_object(&once_value_4
);
123 } else fra
.me
.REG
[5] = once_value_4
;
124 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
125 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
126 /* ./compiling//compiling_icode.nit:51 */
127 if (UNTAG_Bool(REGB0
)) {
129 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
131 fra
.me
.REG
[7] = BOX_NativeString("REGB");
133 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
134 once_value_5
= fra
.me
.REG
[7];
135 register_static_object(&once_value_5
);
136 } else fra
.me
.REG
[7] = once_value_5
;
137 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
138 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
139 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
141 fra
.me
.REG
[7] = BOX_NativeString("");
143 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
144 once_value_6
= fra
.me
.REG
[7];
145 register_static_object(&once_value_6
);
146 } else fra
.me
.REG
[7] = once_value_6
;
147 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
148 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
149 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[6]);
152 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
153 /* ./compiling//compiling_icode.nit:52 */
154 if (UNTAG_Bool(REGB0
)) {
155 REGB0
= CALL_allocate_iregister_slots___IRegister___is_local(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
156 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
158 REGB1
= TAG_Bool(false);
161 if (UNTAG_Bool(REGB0
)) {
162 /* ./compiling//compiling_icode.nit:53 */
164 fra
.me
.REG
[0] = NEW_HashMap_hash_collection___HashMap___init();
165 once_value_7
= fra
.me
.REG
[0];
166 register_static_object(&once_value_7
);
167 } else fra
.me
.REG
[0] = once_value_7
;
168 fra
.me
.REG
[5] = fra
.me
.REG
[0];
169 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
170 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
171 /* ./compiling//compiling_icode.nit:54 */
172 if (UNTAG_Bool(REGB0
)) {
174 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB0
);
176 fra
.me
.REG
[6] = BOX_NativeString("closctx->REG[");
178 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
179 once_value_8
= fra
.me
.REG
[6];
180 register_static_object(&once_value_8
);
181 } else fra
.me
.REG
[6] = once_value_8
;
182 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
183 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
184 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
186 fra
.me
.REG
[6] = BOX_NativeString("]");
188 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
189 once_value_9
= fra
.me
.REG
[6];
190 register_static_object(&once_value_9
);
191 } else fra
.me
.REG
[6] = once_value_9
;
192 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
193 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
194 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[0]);
197 /* ./compiling//compiling_icode.nit:56 */
198 if (!once_value_10
) {
199 fra
.me
.REG
[0] = NEW_HashMap_hash_collection___HashMap___init();
200 once_value_10
= fra
.me
.REG
[0];
201 register_static_object(&once_value_10
);
202 } else fra
.me
.REG
[0] = once_value_10
;
203 fra
.me
.REG
[5] = fra
.me
.REG
[0];
204 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
205 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
206 /* ./compiling//compiling_icode.nit:57 */
207 if (UNTAG_Bool(REGB0
)) {
209 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB0
);
210 if (!once_value_11
) {
211 fra
.me
.REG
[6] = BOX_NativeString("fra.me.REG[");
213 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
214 once_value_11
= fra
.me
.REG
[6];
215 register_static_object(&once_value_11
);
216 } else fra
.me
.REG
[6] = once_value_11
;
217 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
218 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
219 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
220 if (!once_value_12
) {
221 fra
.me
.REG
[6] = BOX_NativeString("]");
223 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
224 once_value_12
= fra
.me
.REG
[6];
225 register_static_object(&once_value_12
);
226 } else fra
.me
.REG
[6] = once_value_12
;
227 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
228 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
229 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[0]);
233 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
234 /* ./compiling//compiling_icode.nit:60 */
235 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[4]);
236 fra
.me
.REG
[2] = fra
.me
.REG
[4];
237 /* ./compiling//compiling_icode.nit:61 */
242 stack_frame_head
= fra
.me
.prev
;
243 return fra
.me
.REG
[2];
245 val_t
compiling_icode___I2CCompilerVisitor___registers(val_t p0
, val_t p1
){
246 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
250 fra
.me
.file
= LOCATE_compiling_icode
;
252 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___registers
;
253 fra
.me
.has_broke
= 0;
255 fra
.me
.REG
[0] = NIT_NULL
;
256 fra
.me
.REG
[1] = NIT_NULL
;
257 fra
.me
.REG
[2] = NIT_NULL
;
258 fra
.me
.REG
[3] = NIT_NULL
;
261 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
262 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
263 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
264 /* ./compiling//compiling_icode.nit:70 */
266 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
267 if (UNTAG_Bool(REGB0
)) {
268 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
269 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
270 /* ./compiling//compiling_icode.nit:71 */
271 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
273 /* ./compiling//compiling_icode.nit:70 */
276 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
279 /* ./compiling//compiling_icode.nit:73 */
282 stack_frame_head
= fra
.me
.prev
;
283 return fra
.me
.REG
[2];
285 val_t
compiling_icode___I2CCompilerVisitor___new_number(val_t p0
){
286 struct {struct stack_frame_t me
;} fra
;
290 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
291 fra
.me
.file
= LOCATE_compiling_icode
;
293 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___new_number
;
294 fra
.me
.has_broke
= 0;
296 fra
.me
.REG
[0] = NIT_NULL
;
298 REGB0
= ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra
.me
.REG
[0]);
300 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
301 /* ./compiling//compiling_icode.nit:80 */
302 ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra
.me
.REG
[0]) = REGB1
;
303 REGB1
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra
.me
.REG
[0])!=NIT_NULL
);
304 /* ./compiling//compiling_icode.nit:81 */
305 if (UNTAG_Bool(REGB1
)) {
307 fprintf(stderr
, "Uninitialized attribute %s", "_last_number");
308 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 81);
311 REGB1
= ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra
.me
.REG
[0]);
314 stack_frame_head
= fra
.me
.prev
;
317 val_t
compiling_icode___I2CCompilerVisitor___lab(val_t p0
, val_t p1
){
318 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
321 static val_t once_value_2
; /* Once value */
322 static val_t once_value_3
; /* Once value */
323 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
324 fra
.me
.file
= LOCATE_compiling_icode
;
326 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___lab
;
327 fra
.me
.has_broke
= 0;
329 fra
.me
.REG
[0] = NIT_NULL
;
330 fra
.me
.REG
[1] = NIT_NULL
;
331 fra
.me
.REG
[2] = NIT_NULL
;
332 fra
.me
.REG
[3] = NIT_NULL
;
333 fra
.me
.REG
[4] = NIT_NULL
;
336 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
337 /* ./compiling//compiling_icode.nit:87 */
338 if (UNTAG_Bool(REGB0
)) {
340 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
341 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 87);
344 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
345 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
346 if (UNTAG_Bool(REGB0
)) {
347 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
348 /* ./compiling//compiling_icode.nit:88 */
349 if (UNTAG_Bool(REGB0
)) {
351 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
352 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 88);
355 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
356 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
360 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
361 /* ./compiling//compiling_icode.nit:90 */
363 fra
.me
.REG
[4] = BOX_NativeString("label");
365 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
366 once_value_2
= fra
.me
.REG
[4];
367 register_static_object(&once_value_2
);
368 } else fra
.me
.REG
[4] = once_value_2
;
369 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
370 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___new_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
371 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
372 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
374 fra
.me
.REG
[4] = BOX_NativeString("");
376 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
377 once_value_3
= fra
.me
.REG
[4];
378 register_static_object(&once_value_3
);
379 } else fra
.me
.REG
[4] = once_value_3
;
380 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
381 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
382 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
383 /* ./compiling//compiling_icode.nit:91 */
384 if (UNTAG_Bool(REGB0
)) {
386 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
387 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 91);
390 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
391 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
392 fra
.me
.REG
[2] = fra
.me
.REG
[3];
393 /* ./compiling//compiling_icode.nit:92 */
397 stack_frame_head
= fra
.me
.prev
;
398 return fra
.me
.REG
[2];
400 val_t
compiling_icode___I2CCompilerVisitor___closures(val_t p0
){
401 struct {struct stack_frame_t me
;} fra
;
404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
405 fra
.me
.file
= LOCATE_compiling_icode
;
407 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___closures
;
408 fra
.me
.has_broke
= 0;
410 fra
.me
.REG
[0] = NIT_NULL
;
412 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closures(fra
.me
.REG
[0])!=NIT_NULL
);
413 /* ./compiling//compiling_icode.nit:96 */
414 if (UNTAG_Bool(REGB0
)) {
416 fprintf(stderr
, "Uninitialized attribute %s", "_closures");
417 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 96);
420 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____closures(fra
.me
.REG
[0]);
421 stack_frame_head
= fra
.me
.prev
;
422 return fra
.me
.REG
[0];
424 val_t
compiling_icode___I2CCompilerVisitor___clostypes(val_t p0
){
425 struct {struct stack_frame_t me
;} fra
;
428 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
429 fra
.me
.file
= LOCATE_compiling_icode
;
431 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___clostypes
;
432 fra
.me
.has_broke
= 0;
434 fra
.me
.REG
[0] = NIT_NULL
;
436 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra
.me
.REG
[0])!=NIT_NULL
);
437 /* ./compiling//compiling_icode.nit:99 */
438 if (UNTAG_Bool(REGB0
)) {
440 fprintf(stderr
, "Uninitialized attribute %s", "_clostypes");
441 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 99);
444 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra
.me
.REG
[0]);
445 stack_frame_head
= fra
.me
.prev
;
446 return fra
.me
.REG
[0];
448 val_t
compiling_icode___I2CCompilerVisitor___local_labels(val_t p0
){
449 struct {struct stack_frame_t me
;} fra
;
452 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
453 fra
.me
.file
= LOCATE_compiling_icode
;
455 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___local_labels
;
456 fra
.me
.has_broke
= 0;
458 fra
.me
.REG
[0] = NIT_NULL
;
460 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra
.me
.REG
[0])!=NIT_NULL
);
461 /* ./compiling//compiling_icode.nit:102 */
462 if (UNTAG_Bool(REGB0
)) {
464 fprintf(stderr
, "Uninitialized attribute %s", "_local_labels");
465 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 102);
468 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra
.me
.REG
[0]);
469 stack_frame_head
= fra
.me
.prev
;
470 return fra
.me
.REG
[0];
472 void compiling_icode___I2CCompilerVisitor___local_labels__eq(val_t p0
, val_t p1
){
473 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
476 fra
.me
.file
= LOCATE_compiling_icode
;
478 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___local_labels__eq
;
479 fra
.me
.has_broke
= 0;
481 fra
.me
.REG
[0] = NIT_NULL
;
482 fra
.me
.REG
[1] = NIT_NULL
;
485 /* ./compiling//compiling_icode.nit:102 */
486 ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
487 stack_frame_head
= fra
.me
.prev
;
490 val_t
compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0
){
491 struct {struct stack_frame_t me
;} fra
;
494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
495 fra
.me
.file
= LOCATE_compiling_icode
;
497 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___escaped_labels
;
498 fra
.me
.has_broke
= 0;
500 fra
.me
.REG
[0] = NIT_NULL
;
502 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0])!=NIT_NULL
);
503 /* ./compiling//compiling_icode.nit:105 */
504 if (UNTAG_Bool(REGB0
)) {
506 fprintf(stderr
, "Uninitialized attribute %s", "_escaped_labels");
507 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 105);
510 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]);
511 stack_frame_head
= fra
.me
.prev
;
512 return fra
.me
.REG
[0];
514 void compiling_icode___I2CCompilerVisitor___escaped_labels__eq(val_t p0
, val_t p1
){
515 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
517 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
518 fra
.me
.file
= LOCATE_compiling_icode
;
520 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___escaped_labels__eq
;
521 fra
.me
.has_broke
= 0;
523 fra
.me
.REG
[0] = NIT_NULL
;
524 fra
.me
.REG
[1] = NIT_NULL
;
527 /* ./compiling//compiling_icode.nit:105 */
528 ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
529 stack_frame_head
= fra
.me
.prev
;
532 val_t
compiling_icode___I2CCompilerVisitor___register_escape_label(val_t p0
, val_t p1
){
533 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
538 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
539 fra
.me
.file
= LOCATE_compiling_icode
;
541 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___register_escape_label
;
542 fra
.me
.has_broke
= 0;
544 fra
.me
.REG
[0] = NIT_NULL
;
545 fra
.me
.REG
[1] = NIT_NULL
;
546 fra
.me
.REG
[2] = NIT_NULL
;
549 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0])!=NIT_NULL
);
550 /* ./compiling//compiling_icode.nit:112 */
551 if (UNTAG_Bool(REGB0
)) {
553 fprintf(stderr
, "Uninitialized attribute %s", "_escaped_labels");
554 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 112);
557 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]);
558 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
559 if (UNTAG_Bool(REGB0
)) {
560 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0])!=NIT_NULL
);
561 /* ./compiling//compiling_icode.nit:113 */
562 if (UNTAG_Bool(REGB0
)) {
564 fprintf(stderr
, "Uninitialized attribute %s", "_escaped_labels");
565 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 113);
568 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]);
569 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
570 REGB0
= fra
.me
.REG
[2];
573 REGB1
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0])!=NIT_NULL
);
574 /* ./compiling//compiling_icode.nit:115 */
575 if (UNTAG_Bool(REGB1
)) {
577 fprintf(stderr
, "Uninitialized attribute %s", "_escaped_labels");
578 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 115);
581 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]);
582 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
584 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
585 REGB1
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0])!=NIT_NULL
);
586 /* ./compiling//compiling_icode.nit:116 */
587 if (UNTAG_Bool(REGB1
)) {
589 fprintf(stderr
, "Uninitialized attribute %s", "_escaped_labels");
590 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 116);
593 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra
.me
.REG
[0]);
594 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], REGB2
);
596 /* ./compiling//compiling_icode.nit:117 */
600 stack_frame_head
= fra
.me
.prev
;
603 void compiling_icode___I2CCompilerVisitor___add_label(val_t p0
, val_t p1
){
604 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
607 static val_t once_value_1
; /* Once value */
608 static val_t once_value_2
; /* Once value */
609 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
610 fra
.me
.file
= LOCATE_compiling_icode
;
612 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_label
;
613 fra
.me
.has_broke
= 0;
615 fra
.me
.REG
[0] = NIT_NULL
;
616 fra
.me
.REG
[1] = NIT_NULL
;
617 fra
.me
.REG
[2] = NIT_NULL
;
618 fra
.me
.REG
[3] = NIT_NULL
;
621 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
622 /* ./compiling//compiling_icode.nit:124 */
623 if (UNTAG_Bool(REGB0
)) {
625 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
626 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 124);
629 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
630 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
631 if (UNTAG_Bool(REGB0
)) {
633 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
634 /* ./compiling//compiling_icode.nit:125 */
636 fra
.me
.REG
[3] = BOX_NativeString("");
638 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
639 once_value_1
= fra
.me
.REG
[3];
640 register_static_object(&once_value_1
);
641 } else fra
.me
.REG
[3] = once_value_1
;
642 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
643 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0])!=NIT_NULL
);
644 if (UNTAG_Bool(REGB0
)) {
646 fprintf(stderr
, "Uninitialized attribute %s", "_ids");
647 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 125);
650 fra
.me
.REG
[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra
.me
.REG
[0]);
651 fra
.me
.REG
[1] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
652 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
654 fra
.me
.REG
[1] = BOX_NativeString(": while(0);");
656 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
657 once_value_2
= fra
.me
.REG
[1];
658 register_static_object(&once_value_2
);
659 } else fra
.me
.REG
[1] = once_value_2
;
660 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
661 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
662 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
664 stack_frame_head
= fra
.me
.prev
;
667 void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0
, val_t p1
){
668 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
672 static val_t once_value_1
; /* Once value */
673 static val_t once_value_2
; /* Once value */
674 static val_t once_value_3
; /* Once value */
675 static val_t once_value_4
; /* Once value */
676 static val_t once_value_5
; /* Once value */
677 static val_t once_value_6
; /* Once value */
678 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
679 fra
.me
.file
= LOCATE_compiling_icode
;
681 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_goto
;
682 fra
.me
.has_broke
= 0;
684 fra
.me
.REG
[0] = NIT_NULL
;
685 fra
.me
.REG
[1] = NIT_NULL
;
686 fra
.me
.REG
[2] = NIT_NULL
;
687 fra
.me
.REG
[3] = NIT_NULL
;
690 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
691 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
692 /* ./compiling//compiling_icode.nit:132 */
693 if (UNTAG_Bool(REGB0
)) {
695 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
696 /* ./compiling//compiling_icode.nit:133 */
698 fra
.me
.REG
[3] = BOX_NativeString("goto ");
700 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
701 once_value_1
= fra
.me
.REG
[3];
702 register_static_object(&once_value_1
);
703 } else fra
.me
.REG
[3] = once_value_1
;
704 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
705 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
706 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
708 fra
.me
.REG
[3] = BOX_NativeString(";");
710 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
711 once_value_2
= fra
.me
.REG
[3];
712 register_static_object(&once_value_2
);
713 } else fra
.me
.REG
[3] = once_value_2
;
714 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
715 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
716 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
718 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
719 /* ./compiling//compiling_icode.nit:135 */
720 if (UNTAG_Bool(REGB0
)) {
722 fprintf(stderr
, "Assert failed");
723 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 135);
726 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
728 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB1
);
729 /* ./compiling//compiling_icode.nit:137 */
731 fra
.me
.REG
[2] = BOX_NativeString("closctx->has_broke = ");
733 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB1
);
734 once_value_3
= fra
.me
.REG
[2];
735 register_static_object(&once_value_3
);
736 } else fra
.me
.REG
[2] = once_value_3
;
737 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
738 fra
.me
.REG
[2] = CALL_string___Object___to_s(REGB0
)(REGB0
);
739 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
741 fra
.me
.REG
[2] = BOX_NativeString(";");
743 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
744 once_value_4
= fra
.me
.REG
[2];
745 register_static_object(&once_value_4
);
746 } else fra
.me
.REG
[2] = once_value_4
;
747 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
748 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
749 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
751 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
752 /* ./compiling//compiling_icode.nit:138 */
754 fra
.me
.REG
[2] = BOX_NativeString("goto ");
756 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
757 once_value_5
= fra
.me
.REG
[2];
758 register_static_object(&once_value_5
);
759 } else fra
.me
.REG
[2] = once_value_5
;
760 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
761 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
762 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
763 if (UNTAG_Bool(REGB0
)) {
765 fprintf(stderr
, "Cast failed");
766 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 138);
769 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
770 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
772 fra
.me
.REG
[2] = BOX_NativeString(";");
774 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
775 once_value_6
= fra
.me
.REG
[2];
776 register_static_object(&once_value_6
);
777 } else fra
.me
.REG
[2] = once_value_6
;
778 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
779 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
780 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
782 stack_frame_head
= fra
.me
.prev
;
785 val_t
compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0
){
786 struct {struct stack_frame_t me
;} fra
;
789 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
790 fra
.me
.file
= LOCATE_compiling_icode
;
792 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___marks_to_seq
;
793 fra
.me
.has_broke
= 0;
795 fra
.me
.REG
[0] = NIT_NULL
;
797 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra
.me
.REG
[0])!=NIT_NULL
);
798 /* ./compiling//compiling_icode.nit:142 */
799 if (UNTAG_Bool(REGB0
)) {
801 fprintf(stderr
, "Uninitialized attribute %s", "_marks_to_seq");
802 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 142);
805 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra
.me
.REG
[0]);
806 stack_frame_head
= fra
.me
.prev
;
807 return fra
.me
.REG
[0];
809 val_t
compiling_icode___I2CCompilerVisitor___closure(val_t p0
){
810 struct {struct stack_frame_t me
;} fra
;
813 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
814 fra
.me
.file
= LOCATE_compiling_icode
;
816 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___closure
;
817 fra
.me
.has_broke
= 0;
819 fra
.me
.REG
[0] = NIT_NULL
;
821 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closure(fra
.me
.REG
[0])!=NIT_NULL
);
822 /* ./compiling//compiling_icode.nit:145 */
823 if (UNTAG_Bool(REGB0
)) {
825 fprintf(stderr
, "Uninitialized attribute %s", "_closure");
826 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 145);
829 REGB0
= ATTR_compiling_icode___I2CCompilerVisitor____closure(fra
.me
.REG
[0]);
830 stack_frame_head
= fra
.me
.prev
;
833 void compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0
, val_t p1
){
834 struct {struct stack_frame_t me
;} fra
;
837 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
838 fra
.me
.file
= LOCATE_compiling_icode
;
840 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___closure__eq
;
841 fra
.me
.has_broke
= 0;
843 fra
.me
.REG
[0] = NIT_NULL
;
846 /* ./compiling//compiling_icode.nit:145 */
847 ATTR_compiling_icode___I2CCompilerVisitor____closure(fra
.me
.REG
[0]) = REGB0
;
848 stack_frame_head
= fra
.me
.prev
;
851 val_t
compiling_icode___I2CCompilerVisitor___visitor(val_t p0
){
852 struct {struct stack_frame_t me
;} fra
;
855 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
856 fra
.me
.file
= LOCATE_compiling_icode
;
858 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___visitor
;
859 fra
.me
.has_broke
= 0;
861 fra
.me
.REG
[0] = NIT_NULL
;
863 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
864 /* ./compiling//compiling_icode.nit:148 */
865 if (UNTAG_Bool(REGB0
)) {
867 fprintf(stderr
, "Uninitialized attribute %s", "_visitor");
868 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 148);
871 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra
.me
.REG
[0]);
872 stack_frame_head
= fra
.me
.prev
;
873 return fra
.me
.REG
[0];
875 val_t
compiling_icode___I2CCompilerVisitor___iroutine(val_t p0
){
876 struct {struct stack_frame_t me
;} fra
;
879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
880 fra
.me
.file
= LOCATE_compiling_icode
;
882 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___iroutine
;
883 fra
.me
.has_broke
= 0;
885 fra
.me
.REG
[0] = NIT_NULL
;
887 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra
.me
.REG
[0])!=NIT_NULL
);
888 /* ./compiling//compiling_icode.nit:151 */
889 if (UNTAG_Bool(REGB0
)) {
891 fprintf(stderr
, "Uninitialized attribute %s", "_iroutine");
892 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 151);
895 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra
.me
.REG
[0]);
896 stack_frame_head
= fra
.me
.prev
;
897 return fra
.me
.REG
[0];
899 val_t
compiling_icode___I2CCompilerVisitor___return_label(val_t p0
){
900 struct {struct stack_frame_t me
;} fra
;
902 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
903 fra
.me
.file
= LOCATE_compiling_icode
;
905 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___return_label
;
906 fra
.me
.has_broke
= 0;
908 fra
.me
.REG
[0] = NIT_NULL
;
910 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra
.me
.REG
[0]);
911 /* ./compiling//compiling_icode.nit:154 */
912 stack_frame_head
= fra
.me
.prev
;
913 return fra
.me
.REG
[0];
915 void compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0
, val_t p1
){
916 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
918 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
919 fra
.me
.file
= LOCATE_compiling_icode
;
921 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___return_label__eq
;
922 fra
.me
.has_broke
= 0;
924 fra
.me
.REG
[0] = NIT_NULL
;
925 fra
.me
.REG
[1] = NIT_NULL
;
928 /* ./compiling//compiling_icode.nit:154 */
929 ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
930 stack_frame_head
= fra
.me
.prev
;
933 void compiling_icode___I2CCompilerVisitor___add_decl(val_t p0
, val_t p1
){
934 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
937 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
938 fra
.me
.file
= LOCATE_compiling_icode
;
940 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_decl
;
941 fra
.me
.has_broke
= 0;
943 fra
.me
.REG
[0] = NIT_NULL
;
944 fra
.me
.REG
[1] = NIT_NULL
;
945 fra
.me
.REG
[2] = NIT_NULL
;
948 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
950 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
951 /* ./compiling//compiling_icode.nit:159 */
952 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
953 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
954 stack_frame_head
= fra
.me
.prev
;
957 void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0
, val_t p1
){
958 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
962 static val_t once_value_1
; /* Once value */
963 static val_t once_value_2
; /* Once value */
964 static val_t once_value_3
; /* Once value */
965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
966 fra
.me
.file
= LOCATE_compiling_icode
;
968 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_instr
;
969 fra
.me
.has_broke
= 0;
971 fra
.me
.REG
[0] = NIT_NULL
;
972 fra
.me
.REG
[1] = NIT_NULL
;
973 fra
.me
.REG
[2] = NIT_NULL
;
974 fra
.me
.REG
[3] = NIT_NULL
;
975 fra
.me
.REG
[4] = NIT_NULL
;
976 fra
.me
.REG
[5] = NIT_NULL
;
979 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra
.me
.REG
[0]);
980 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
981 /* ./compiling//compiling_icode.nit:165 */
982 if (UNTAG_Bool(REGB0
)) {
984 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
985 if (UNTAG_Bool(REGB1
)) {
986 REGB1
= TAG_Bool(false);
989 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
993 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
994 if (UNTAG_Bool(REGB0
)) {
995 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
997 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
998 /* ./compiling//compiling_icode.nit:166 */
1000 fra
.me
.REG
[5] = BOX_NativeString("/* ");
1002 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
1003 once_value_1
= fra
.me
.REG
[5];
1004 register_static_object(&once_value_1
);
1005 } else fra
.me
.REG
[5] = once_value_1
;
1006 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1007 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1008 if (UNTAG_Bool(REGB0
)) {
1009 fprintf(stderr
, "Reciever is null");
1010 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 166);
1013 fra
.me
.REG
[5] = CALL_location___Location___file(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1014 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1015 if (!once_value_2
) {
1016 fra
.me
.REG
[5] = BOX_NativeString(":");
1018 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
1019 once_value_2
= fra
.me
.REG
[5];
1020 register_static_object(&once_value_2
);
1021 } else fra
.me
.REG
[5] = once_value_2
;
1022 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1023 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1024 if (UNTAG_Bool(REGB0
)) {
1025 fprintf(stderr
, "Reciever is null");
1026 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 166);
1029 REGB0
= CALL_location___Location___line_start(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1030 fra
.me
.REG
[2] = CALL_string___Object___to_s(REGB0
)(REGB0
);
1031 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1032 if (!once_value_3
) {
1033 fra
.me
.REG
[2] = BOX_NativeString(" */");
1035 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
1036 once_value_3
= fra
.me
.REG
[2];
1037 register_static_object(&once_value_3
);
1038 } else fra
.me
.REG
[2] = once_value_3
;
1039 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1040 CALL_compiling_base___CompilerVisitor___add_instr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1041 /* ./compiling//compiling_icode.nit:167 */
1042 ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra
.me
.REG
[0]) = NIT_NULL
;
1044 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1046 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
1047 /* ./compiling//compiling_icode.nit:169 */
1048 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1049 CALL_compiling_base___CompilerVisitor___add_instr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
1050 stack_frame_head
= fra
.me
.prev
;
1053 void compiling_icode___I2CCompilerVisitor___indent(val_t p0
){
1054 struct {struct stack_frame_t me
;} fra
;
1056 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1057 fra
.me
.file
= LOCATE_compiling_icode
;
1059 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___indent
;
1060 fra
.me
.has_broke
= 0;
1061 fra
.me
.REG_size
= 1;
1062 fra
.me
.REG
[0] = NIT_NULL
;
1064 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1065 /* ./compiling//compiling_icode.nit:174 */
1066 CALL_compiling_base___CompilerVisitor___indent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1067 stack_frame_head
= fra
.me
.prev
;
1070 void compiling_icode___I2CCompilerVisitor___unindent(val_t p0
){
1071 struct {struct stack_frame_t me
;} fra
;
1073 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1074 fra
.me
.file
= LOCATE_compiling_icode
;
1076 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___unindent
;
1077 fra
.me
.has_broke
= 0;
1078 fra
.me
.REG_size
= 1;
1079 fra
.me
.REG
[0] = NIT_NULL
;
1081 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1082 /* ./compiling//compiling_icode.nit:179 */
1083 CALL_compiling_base___CompilerVisitor___unindent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1084 stack_frame_head
= fra
.me
.prev
;
1087 void compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0
, val_t p1
, val_t p2
){
1088 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1091 fra
.me
.file
= LOCATE_compiling_icode
;
1093 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_assignment
;
1094 fra
.me
.has_broke
= 0;
1095 fra
.me
.REG_size
= 3;
1096 fra
.me
.REG
[0] = NIT_NULL
;
1097 fra
.me
.REG
[1] = NIT_NULL
;
1098 fra
.me
.REG
[2] = NIT_NULL
;
1102 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1103 /* ./compiling//compiling_icode.nit:184 */
1104 CALL_compiling_base___CompilerVisitor___add_assignment(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1105 stack_frame_head
= fra
.me
.prev
;
1108 void compiling_icode___I2CCompilerVisitor___add_location(val_t p0
, val_t p1
){
1109 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1115 fra
.me
.file
= LOCATE_compiling_icode
;
1117 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___add_location
;
1118 fra
.me
.has_broke
= 0;
1119 fra
.me
.REG_size
= 5;
1120 fra
.me
.REG
[0] = NIT_NULL
;
1121 fra
.me
.REG
[1] = NIT_NULL
;
1122 fra
.me
.REG
[2] = NIT_NULL
;
1123 fra
.me
.REG
[3] = NIT_NULL
;
1124 fra
.me
.REG
[4] = NIT_NULL
;
1127 fra
.me
.REG
[2] = ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra
.me
.REG
[0]);
1128 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1129 /* ./compiling//compiling_icode.nit:195 */
1130 if (UNTAG_Bool(REGB0
)) {
1132 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1133 if (UNTAG_Bool(REGB1
)) {
1134 REGB1
= TAG_Bool(false);
1137 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1141 if (UNTAG_Bool(REGB0
)) {
1142 REGB0
= TAG_Bool(true);
1144 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1145 if (UNTAG_Bool(REGB1
)) {
1147 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1148 if (UNTAG_Bool(REGB2
)) {
1149 REGB2
= TAG_Bool(false);
1152 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1158 if (UNTAG_Bool(REGB0
)) {
1161 /* ./compiling//compiling_icode.nit:196 */
1162 ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1163 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1164 /* ./compiling//compiling_icode.nit:197 */
1165 if (UNTAG_Bool(REGB0
)) {
1167 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1168 if (UNTAG_Bool(REGB1
)) {
1169 REGB1
= TAG_Bool(false);
1172 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1176 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1177 if (UNTAG_Bool(REGB0
)) {
1178 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1179 if (UNTAG_Bool(REGB0
)) {
1180 fprintf(stderr
, "Reciever is null");
1181 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 197);
1184 fra
.me
.REG
[3] = CALL_location___Location___file(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1185 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1186 if (UNTAG_Bool(REGB0
)) {
1187 fprintf(stderr
, "Reciever is null");
1188 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 197);
1191 fra
.me
.REG
[4] = CALL_location___Location___file(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1192 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
1193 if (UNTAG_Bool(REGB0
)) {
1195 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1199 REGB1
= TAG_Bool(false);
1202 if (UNTAG_Bool(REGB0
)) {
1203 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1204 if (UNTAG_Bool(REGB0
)) {
1205 fprintf(stderr
, "Reciever is null");
1206 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 197);
1209 REGB0
= CALL_location___Location___line_start(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1210 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1211 if (UNTAG_Bool(REGB1
)) {
1212 fprintf(stderr
, "Reciever is null");
1213 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 197);
1216 REGB1
= CALL_location___Location___line_start(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1217 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1218 if (UNTAG_Bool(REGB2
)) {
1220 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1222 /* ./compiling//compiling_icode.nit:197 */
1225 REGB1
= TAG_Bool(false);
1228 if (UNTAG_Bool(REGB2
)) {
1229 /* ./compiling//compiling_icode.nit:198 */
1232 /* ./compiling//compiling_icode.nit:200 */
1233 ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1236 stack_frame_head
= fra
.me
.prev
;
1239 val_t
compiling_icode___I2CCompilerVisitor___basecname(val_t p0
){
1240 struct {struct stack_frame_t me
;} fra
;
1243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1244 fra
.me
.file
= LOCATE_compiling_icode
;
1246 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___basecname
;
1247 fra
.me
.has_broke
= 0;
1248 fra
.me
.REG_size
= 1;
1249 fra
.me
.REG
[0] = NIT_NULL
;
1251 REGB0
= TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra
.me
.REG
[0])!=NIT_NULL
);
1252 /* ./compiling//compiling_icode.nit:204 */
1253 if (UNTAG_Bool(REGB0
)) {
1255 fprintf(stderr
, "Uninitialized attribute %s", "_basecname");
1256 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 204);
1259 fra
.me
.REG
[0] = ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra
.me
.REG
[0]);
1260 stack_frame_head
= fra
.me
.prev
;
1261 return fra
.me
.REG
[0];
1263 void compiling_icode___I2CCompilerVisitor___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
1264 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_I2CCompilerVisitor
].i
;
1265 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1267 if (init_table
[itpos0
]) return;
1268 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1269 fra
.me
.file
= LOCATE_compiling_icode
;
1271 fra
.me
.meth
= LOCATE_compiling_icode___I2CCompilerVisitor___init
;
1272 fra
.me
.has_broke
= 0;
1273 fra
.me
.REG_size
= 4;
1274 fra
.me
.REG
[0] = NIT_NULL
;
1275 fra
.me
.REG
[1] = NIT_NULL
;
1276 fra
.me
.REG
[2] = NIT_NULL
;
1277 fra
.me
.REG
[3] = NIT_NULL
;
1282 /* ./compiling//compiling_icode.nit:209 */
1283 ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1284 /* ./compiling//compiling_icode.nit:210 */
1285 ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1286 /* ./compiling//compiling_icode.nit:211 */
1287 ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
1288 stack_frame_head
= fra
.me
.prev
;
1289 init_table
[itpos0
] = 1;
1292 val_t
compiling_icode___IRoutine___compile_signature_to_c(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, val_t p5
){
1293 struct {struct stack_frame_t me
; val_t MORE_REG
[13];} fra
;
1298 static val_t once_value_1
; /* Once value */
1299 static val_t once_value_2
; /* Once value */
1300 static val_t once_value_3
; /* Once value */
1301 static val_t once_value_4
; /* Once value */
1302 static val_t once_value_6
; /* Once value */
1303 static val_t once_value_7
; /* Once value */
1304 static val_t once_value_8
; /* Once value */
1305 static val_t once_value_9
; /* Once value */
1306 static val_t once_value_10
; /* Once value */
1307 static val_t once_value_11
; /* Once value */
1308 static val_t once_value_13
; /* Once value */
1309 static val_t once_value_14
; /* Once value */
1310 static val_t once_value_15
; /* Once value */
1311 static val_t once_value_16
; /* Once value */
1312 static val_t once_value_17
; /* Once value */
1313 static val_t once_value_18
; /* Once value */
1314 static val_t once_value_19
; /* Once value */
1315 static val_t once_value_20
; /* Once value */
1316 static val_t once_value_21
; /* Once value */
1317 static val_t once_value_22
; /* Once value */
1318 static val_t once_value_23
; /* Once value */
1319 static val_t once_value_25
; /* Once value */
1320 static val_t once_value_26
; /* Once value */
1321 static val_t once_value_27
; /* Once value */
1322 static val_t once_value_28
; /* Once value */
1323 static val_t once_value_29
; /* Once value */
1324 static val_t once_value_30
; /* Once value */
1325 static val_t once_value_31
; /* Once value */
1326 static val_t once_value_32
; /* Once value */
1327 static val_t once_value_33
; /* Once value */
1328 static val_t once_value_34
; /* Once value */
1329 static val_t once_value_35
; /* Once value */
1330 static val_t once_value_36
; /* Once value */
1331 static val_t once_value_37
; /* Once value */
1332 static val_t once_value_38
; /* Once value */
1333 static val_t once_value_39
; /* Once value */
1334 static val_t once_value_40
; /* Once value */
1335 static val_t once_value_41
; /* Once value */
1336 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1337 fra
.me
.file
= LOCATE_compiling_icode
;
1339 fra
.me
.meth
= LOCATE_compiling_icode___IRoutine___compile_signature_to_c
;
1340 fra
.me
.has_broke
= 0;
1341 fra
.me
.REG_size
= 14;
1342 fra
.me
.REG
[0] = NIT_NULL
;
1343 fra
.me
.REG
[1] = NIT_NULL
;
1344 fra
.me
.REG
[2] = NIT_NULL
;
1345 fra
.me
.REG
[3] = NIT_NULL
;
1346 fra
.me
.REG
[4] = NIT_NULL
;
1347 fra
.me
.REG
[5] = NIT_NULL
;
1348 fra
.me
.REG
[6] = NIT_NULL
;
1349 fra
.me
.REG
[7] = NIT_NULL
;
1350 fra
.me
.REG
[8] = NIT_NULL
;
1351 fra
.me
.REG
[9] = NIT_NULL
;
1352 fra
.me
.REG
[10] = NIT_NULL
;
1353 fra
.me
.REG
[11] = NIT_NULL
;
1354 fra
.me
.REG
[12] = NIT_NULL
;
1355 fra
.me
.REG
[13] = NIT_NULL
;
1362 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
1363 fra
.me
.REG
[7] = NEW_Array_array___Array___init();
1364 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1365 /* ./compiling//compiling_icode.nit:224 */
1366 if (UNTAG_Bool(REGB0
)) {
1368 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1369 if (UNTAG_Bool(REGB1
)) {
1370 REGB1
= TAG_Bool(false);
1373 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1377 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1378 if (UNTAG_Bool(REGB0
)) {
1379 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[4]);
1382 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1383 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1384 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
1385 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1386 /* ./compiling//compiling_icode.nit:225 */
1388 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1389 if (UNTAG_Bool(REGB1
)) {
1390 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1392 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB0
);
1393 /* ./compiling//compiling_icode.nit:226 */
1394 if (!once_value_1
) {
1395 fra
.me
.REG
[9] = BOX_NativeString("p");
1397 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB0
);
1398 once_value_1
= fra
.me
.REG
[9];
1399 register_static_object(&once_value_1
);
1400 } else fra
.me
.REG
[9] = once_value_1
;
1401 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1402 fra
.me
.REG
[9] = CALL_string___Object___to_s(REGB1
)(REGB1
);
1403 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1404 if (!once_value_2
) {
1405 fra
.me
.REG
[9] = BOX_NativeString("");
1407 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB0
);
1408 once_value_2
= fra
.me
.REG
[9];
1409 register_static_object(&once_value_2
);
1410 } else fra
.me
.REG
[9] = once_value_2
;
1411 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1412 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1413 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1415 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB0
);
1416 /* ./compiling//compiling_icode.nit:227 */
1417 if (!once_value_3
) {
1418 fra
.me
.REG
[9] = BOX_NativeString("val_t p");
1420 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB0
);
1421 once_value_3
= fra
.me
.REG
[9];
1422 register_static_object(&once_value_3
);
1423 } else fra
.me
.REG
[9] = once_value_3
;
1424 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1425 fra
.me
.REG
[9] = CALL_string___Object___to_s(REGB1
)(REGB1
);
1426 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1427 if (!once_value_4
) {
1428 fra
.me
.REG
[9] = BOX_NativeString("");
1430 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
1431 once_value_4
= fra
.me
.REG
[9];
1432 register_static_object(&once_value_4
);
1433 } else fra
.me
.REG
[9] = once_value_4
;
1434 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1435 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1436 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
1438 /* ./compiling//compiling_icode.nit:225 */
1441 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1444 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1445 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1446 /* ./compiling//compiling_icode.nit:229 */
1447 if (UNTAG_Bool(REGB1
)) {
1449 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1450 if (UNTAG_Bool(REGB0
)) {
1451 REGB0
= TAG_Bool(false);
1454 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1458 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1459 if (UNTAG_Bool(REGB1
)) {
1460 /* ./compiling//compiling_icode.nit:230 */
1461 if (!once_value_6
) {
1462 fra
.me
.REG
[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
1463 REGB1
= TAG_Int(35);
1464 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
1465 once_value_6
= fra
.me
.REG
[4];
1466 register_static_object(&once_value_6
);
1467 } else fra
.me
.REG
[4] = once_value_6
;
1468 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[4]);
1470 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1471 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1472 /* ./compiling//compiling_icode.nit:231 */
1473 if (UNTAG_Bool(REGB0
)) {
1474 fprintf(stderr
, "Reciever is null");
1475 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 231);
1478 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1479 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB1
, REGB0
);
1480 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1482 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1483 if (UNTAG_Bool(REGB0
)) {
1484 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1486 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB1
);
1487 /* ./compiling//compiling_icode.nit:232 */
1488 if (!once_value_7
) {
1489 fra
.me
.REG
[9] = BOX_NativeString("CLOS_");
1491 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
1492 once_value_7
= fra
.me
.REG
[9];
1493 register_static_object(&once_value_7
);
1494 } else fra
.me
.REG
[9] = once_value_7
;
1495 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1496 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[2]);
1497 if (!once_value_8
) {
1498 fra
.me
.REG
[9] = BOX_NativeString("_");
1500 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
1501 once_value_8
= fra
.me
.REG
[9];
1502 register_static_object(&once_value_8
);
1503 } else fra
.me
.REG
[9] = once_value_8
;
1504 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1505 fra
.me
.REG
[9] = CALL_string___Object___to_s(REGB0
)(REGB0
);
1506 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1507 if (!once_value_9
) {
1508 fra
.me
.REG
[9] = BOX_NativeString("");
1510 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
1511 once_value_9
= fra
.me
.REG
[9];
1512 register_static_object(&once_value_9
);
1513 } else fra
.me
.REG
[9] = once_value_9
;
1514 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1515 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1516 fra
.me
.REG
[9] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1517 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
1518 /* ./compiling//compiling_icode.nit:233 */
1519 if (UNTAG_Bool(REGB1
)) {
1520 fprintf(stderr
, "Reciever is null");
1521 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 233);
1524 fra
.me
.REG
[9] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB0
);
1525 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
1526 if (UNTAG_Bool(REGB1
)) {
1527 fprintf(stderr
, "Reciever is null");
1528 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 233);
1531 fra
.me
.REG
[9] = CALL_icode_base___IClosureDecl___closure(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1532 fra
.me
.REG
[9] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1533 fra
.me
.REG
[10] = NEW_Array_array___Array___init();
1534 /* ./compiling//compiling_icode.nit:235 */
1535 if (!once_value_10
) {
1536 fra
.me
.REG
[11] = BOX_NativeString("struct stack_frame_t *");
1537 REGB1
= TAG_Int(22);
1538 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB1
);
1539 once_value_10
= fra
.me
.REG
[11];
1540 register_static_object(&once_value_10
);
1541 } else fra
.me
.REG
[11] = once_value_10
;
1542 array___Array___add(fra
.me
.REG
[10], fra
.me
.REG
[11]);
1544 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1545 fra
.me
.REG
[11] = NEW_Range_range___Range___without_last(REGB1
, REGB2
);
1546 fra
.me
.REG
[11] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
1547 /* ./compiling//compiling_icode.nit:236 */
1549 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
1550 if (UNTAG_Bool(REGB2
)) {
1551 REGB2
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
1552 /* ./compiling//compiling_icode.nit:237 */
1553 if (!once_value_11
) {
1554 fra
.me
.REG
[12] = BOX_NativeString("val_t");
1556 fra
.me
.REG
[12] = NEW_String_string___String___with_native(fra
.me
.REG
[12], REGB2
);
1557 once_value_11
= fra
.me
.REG
[12];
1558 register_static_object(&once_value_11
);
1559 } else fra
.me
.REG
[12] = once_value_11
;
1560 array___Array___add(fra
.me
.REG
[10], fra
.me
.REG
[12]);
1562 /* ./compiling//compiling_icode.nit:236 */
1565 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
1568 /* ./compiling//compiling_icode.nit:239 */
1569 if (!once_value_13
) {
1570 fra
.me
.REG
[11] = BOX_NativeString("void");
1572 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB2
);
1573 once_value_13
= fra
.me
.REG
[11];
1574 register_static_object(&once_value_13
);
1575 } else fra
.me
.REG
[11] = once_value_13
;
1576 fra
.me
.REG
[9] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1577 REGB2
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
1578 /* ./compiling//compiling_icode.nit:240 */
1579 if (UNTAG_Bool(REGB2
)) {
1581 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
1582 if (UNTAG_Bool(REGB1
)) {
1583 REGB1
= TAG_Bool(false);
1586 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
1590 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1591 if (UNTAG_Bool(REGB2
)) {
1592 if (!once_value_14
) {
1593 fra
.me
.REG
[9] = BOX_NativeString("val_t");
1595 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
1596 once_value_14
= fra
.me
.REG
[9];
1597 register_static_object(&once_value_14
);
1598 } else fra
.me
.REG
[9] = once_value_14
;
1599 fra
.me
.REG
[11] = fra
.me
.REG
[9];
1602 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB2
);
1604 fra
.me
.REG
[12] = NEW_Array_array___Array___with_capacity(REGB2
);
1605 /* ./compiling//compiling_icode.nit:241 */
1606 if (!once_value_15
) {
1607 fra
.me
.REG
[13] = BOX_NativeString("typedef ");
1609 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB2
);
1610 once_value_15
= fra
.me
.REG
[13];
1611 register_static_object(&once_value_15
);
1612 } else fra
.me
.REG
[13] = once_value_15
;
1613 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[13]);
1614 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
1615 if (!once_value_16
) {
1616 fra
.me
.REG
[11] = BOX_NativeString(" (*");
1618 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB2
);
1619 once_value_16
= fra
.me
.REG
[11];
1620 register_static_object(&once_value_16
);
1621 } else fra
.me
.REG
[11] = once_value_16
;
1622 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
1623 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[8]);
1624 if (!once_value_17
) {
1625 fra
.me
.REG
[8] = BOX_NativeString(")(");
1627 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
1628 once_value_17
= fra
.me
.REG
[8];
1629 register_static_object(&once_value_17
);
1630 } else fra
.me
.REG
[8] = once_value_17
;
1631 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[8]);
1632 if (!once_value_18
) {
1633 fra
.me
.REG
[8] = BOX_NativeString(", ");
1635 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
1636 once_value_18
= fra
.me
.REG
[8];
1637 register_static_object(&once_value_18
);
1638 } else fra
.me
.REG
[8] = once_value_18
;
1639 fra
.me
.REG
[8] = CALL_string___Collection___join(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[8]);
1640 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[8]);
1641 if (!once_value_19
) {
1642 fra
.me
.REG
[8] = BOX_NativeString(");");
1644 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
1645 once_value_19
= fra
.me
.REG
[8];
1646 register_static_object(&once_value_19
);
1647 } else fra
.me
.REG
[8] = once_value_19
;
1648 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[8]);
1649 fra
.me
.REG
[12] = CALL_string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
1650 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1651 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9]);
1653 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB2
);
1654 /* ./compiling//compiling_icode.nit:242 */
1655 if (!once_value_20
) {
1656 fra
.me
.REG
[12] = BOX_NativeString("clos_fun");
1658 fra
.me
.REG
[12] = NEW_String_string___String___with_native(fra
.me
.REG
[12], REGB2
);
1659 once_value_20
= fra
.me
.REG
[12];
1660 register_static_object(&once_value_20
);
1661 } else fra
.me
.REG
[12] = once_value_20
;
1662 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1663 fra
.me
.REG
[12] = CALL_string___Object___to_s(REGB0
)(REGB0
);
1664 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1665 if (!once_value_21
) {
1666 fra
.me
.REG
[12] = BOX_NativeString("");
1668 fra
.me
.REG
[12] = NEW_String_string___String___with_native(fra
.me
.REG
[12], REGB2
);
1669 once_value_21
= fra
.me
.REG
[12];
1670 register_static_object(&once_value_21
);
1671 } else fra
.me
.REG
[12] = once_value_21
;
1672 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1673 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1674 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[9]);
1676 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB2
);
1677 /* ./compiling//compiling_icode.nit:243 */
1678 if (!once_value_22
) {
1679 fra
.me
.REG
[12] = BOX_NativeString("fun_t clos_fun");
1680 REGB2
= TAG_Int(14);
1681 fra
.me
.REG
[12] = NEW_String_string___String___with_native(fra
.me
.REG
[12], REGB2
);
1682 once_value_22
= fra
.me
.REG
[12];
1683 register_static_object(&once_value_22
);
1684 } else fra
.me
.REG
[12] = once_value_22
;
1685 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1686 fra
.me
.REG
[12] = CALL_string___Object___to_s(REGB0
)(REGB0
);
1687 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1688 if (!once_value_23
) {
1689 fra
.me
.REG
[12] = BOX_NativeString("");
1691 fra
.me
.REG
[12] = NEW_String_string___String___with_native(fra
.me
.REG
[12], REGB0
);
1692 once_value_23
= fra
.me
.REG
[12];
1693 register_static_object(&once_value_23
);
1694 } else fra
.me
.REG
[12] = once_value_23
;
1695 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[12]);
1696 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1697 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
1699 /* ./compiling//compiling_icode.nit:231 */
1702 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1706 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1707 /* ./compiling//compiling_icode.nit:246 */
1708 if (UNTAG_Bool(REGB0
)) {
1710 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1711 if (UNTAG_Bool(REGB2
)) {
1712 REGB2
= TAG_Bool(false);
1715 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
1719 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1720 if (UNTAG_Bool(REGB0
)) {
1721 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[5]);
1723 /* ./compiling//compiling_icode.nit:247 */
1724 if (!once_value_25
) {
1725 fra
.me
.REG
[5] = BOX_NativeString("void");
1727 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
1728 once_value_25
= fra
.me
.REG
[5];
1729 register_static_object(&once_value_25
);
1730 } else fra
.me
.REG
[5] = once_value_25
;
1731 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1732 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1733 /* ./compiling//compiling_icode.nit:248 */
1734 if (UNTAG_Bool(REGB0
)) {
1736 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1737 if (UNTAG_Bool(REGB2
)) {
1738 REGB2
= TAG_Bool(false);
1741 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1745 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1746 if (UNTAG_Bool(REGB0
)) {
1747 if (!once_value_26
) {
1748 fra
.me
.REG
[0] = BOX_NativeString("val_t");
1750 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1751 once_value_26
= fra
.me
.REG
[0];
1752 register_static_object(&once_value_26
);
1753 } else fra
.me
.REG
[0] = once_value_26
;
1754 fra
.me
.REG
[5] = fra
.me
.REG
[0];
1756 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1757 /* ./compiling//compiling_icode.nit:250 */
1758 if (UNTAG_Bool(REGB0
)) {
1759 /* ./compiling//compiling_icode.nit:251 */
1760 if (!once_value_27
) {
1761 fra
.me
.REG
[0] = BOX_NativeString("void");
1763 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1764 once_value_27
= fra
.me
.REG
[0];
1765 register_static_object(&once_value_27
);
1766 } else fra
.me
.REG
[0] = once_value_27
;
1768 /* ./compiling//compiling_icode.nit:253 */
1769 if (!once_value_28
) {
1770 fra
.me
.REG
[4] = BOX_NativeString(", ");
1772 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
1773 once_value_28
= fra
.me
.REG
[4];
1774 register_static_object(&once_value_28
);
1775 } else fra
.me
.REG
[4] = once_value_28
;
1776 fra
.me
.REG
[4] = CALL_string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
1777 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1779 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1780 /* ./compiling//compiling_icode.nit:255 */
1781 if (UNTAG_Bool(REGB0
)) {
1783 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1784 if (UNTAG_Bool(REGB2
)) {
1785 REGB2
= TAG_Bool(false);
1788 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1792 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1793 if (UNTAG_Bool(REGB0
)) {
1795 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
1796 if (!once_value_29
) {
1797 fra
.me
.REG
[7] = BOX_NativeString("#define LOCATE_");
1798 REGB0
= TAG_Int(15);
1799 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
1800 once_value_29
= fra
.me
.REG
[7];
1801 register_static_object(&once_value_29
);
1802 } else fra
.me
.REG
[7] = once_value_29
;
1803 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
1804 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1805 if (!once_value_30
) {
1806 fra
.me
.REG
[7] = BOX_NativeString(" \"");
1808 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
1809 once_value_30
= fra
.me
.REG
[7];
1810 register_static_object(&once_value_30
);
1811 } else fra
.me
.REG
[7] = once_value_30
;
1812 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
1813 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1814 if (!once_value_31
) {
1815 fra
.me
.REG
[3] = BOX_NativeString("\"");
1817 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1818 once_value_31
= fra
.me
.REG
[3];
1819 register_static_object(&once_value_31
);
1820 } else fra
.me
.REG
[3] = once_value_31
;
1821 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1822 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1825 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
1826 /* ./compiling//compiling_icode.nit:256 */
1827 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1828 if (!once_value_32
) {
1829 fra
.me
.REG
[3] = BOX_NativeString(" ");
1831 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1832 once_value_32
= fra
.me
.REG
[3];
1833 register_static_object(&once_value_32
);
1834 } else fra
.me
.REG
[3] = once_value_32
;
1835 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1836 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1837 if (!once_value_33
) {
1838 fra
.me
.REG
[3] = BOX_NativeString("(");
1840 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1841 once_value_33
= fra
.me
.REG
[3];
1842 register_static_object(&once_value_33
);
1843 } else fra
.me
.REG
[3] = once_value_33
;
1844 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1845 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1846 if (!once_value_34
) {
1847 fra
.me
.REG
[3] = BOX_NativeString(");");
1849 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1850 once_value_34
= fra
.me
.REG
[3];
1851 register_static_object(&once_value_34
);
1852 } else fra
.me
.REG
[3] = once_value_34
;
1853 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1854 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1856 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
1857 /* ./compiling//compiling_icode.nit:257 */
1858 if (!once_value_35
) {
1859 fra
.me
.REG
[3] = BOX_NativeString("typedef ");
1861 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1862 once_value_35
= fra
.me
.REG
[3];
1863 register_static_object(&once_value_35
);
1864 } else fra
.me
.REG
[3] = once_value_35
;
1865 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1866 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1867 if (!once_value_36
) {
1868 fra
.me
.REG
[3] = BOX_NativeString(" (*");
1870 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1871 once_value_36
= fra
.me
.REG
[3];
1872 register_static_object(&once_value_36
);
1873 } else fra
.me
.REG
[3] = once_value_36
;
1874 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1875 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1876 if (!once_value_37
) {
1877 fra
.me
.REG
[3] = BOX_NativeString("_t)(");
1879 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1880 once_value_37
= fra
.me
.REG
[3];
1881 register_static_object(&once_value_37
);
1882 } else fra
.me
.REG
[3] = once_value_37
;
1883 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1884 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1885 if (!once_value_38
) {
1886 fra
.me
.REG
[3] = BOX_NativeString(");");
1888 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1889 once_value_38
= fra
.me
.REG
[3];
1890 register_static_object(&once_value_38
);
1891 } else fra
.me
.REG
[3] = once_value_38
;
1892 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1893 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1895 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
1896 /* ./compiling//compiling_icode.nit:258 */
1897 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1898 if (!once_value_39
) {
1899 fra
.me
.REG
[5] = BOX_NativeString(" ");
1901 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
1902 once_value_39
= fra
.me
.REG
[5];
1903 register_static_object(&once_value_39
);
1904 } else fra
.me
.REG
[5] = once_value_39
;
1905 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1906 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1907 if (!once_value_40
) {
1908 fra
.me
.REG
[2] = BOX_NativeString("(");
1910 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
1911 once_value_40
= fra
.me
.REG
[2];
1912 register_static_object(&once_value_40
);
1913 } else fra
.me
.REG
[2] = once_value_40
;
1914 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1915 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1916 if (!once_value_41
) {
1917 fra
.me
.REG
[0] = BOX_NativeString("){");
1919 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1920 once_value_41
= fra
.me
.REG
[0];
1921 register_static_object(&once_value_41
);
1922 } else fra
.me
.REG
[0] = once_value_41
;
1923 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1924 CALL_compiling_base___CompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1925 /* ./compiling//compiling_icode.nit:259 */
1926 CALL_compiling_base___CompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1927 /* ./compiling//compiling_icode.nit:260 */
1930 stack_frame_head
= fra
.me
.prev
;
1931 return fra
.me
.REG
[6];
1933 val_t
compiling_icode___IRoutine___compile_inside_to_c(val_t p0
, val_t p1
, val_t p2
){
1934 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
1940 static val_t once_value_1
; /* Once value */
1941 static val_t once_value_2
; /* Once value */
1942 static val_t once_value_3
; /* Once value */
1943 static val_t once_value_4
; /* Once value */
1944 static val_t once_value_5
; /* Once value */
1945 static val_t once_value_6
; /* Once value */
1946 static val_t once_value_7
; /* Once value */
1947 static val_t once_value_8
; /* Once value */
1948 static val_t once_value_9
; /* Once value */
1949 static val_t once_value_10
; /* Once value */
1950 static val_t once_value_11
; /* Once value */
1951 static val_t once_value_12
; /* Once value */
1952 static val_t once_value_13
; /* Once value */
1953 static val_t once_value_14
; /* Once value */
1954 static val_t once_value_15
; /* Once value */
1955 static val_t once_value_17
; /* Once value */
1956 static val_t once_value_18
; /* Once value */
1957 static val_t once_value_20
; /* Once value */
1958 static val_t once_value_21
; /* Once value */
1959 static val_t once_value_22
; /* Once value */
1960 static val_t once_value_23
; /* Once value */
1961 static val_t once_value_26
; /* Once value */
1962 static val_t once_value_27
; /* Once value */
1963 static val_t once_value_29
; /* Once value */
1964 static val_t once_value_30
; /* Once value */
1965 static val_t once_value_31
; /* Once value */
1966 static val_t once_value_33
; /* Once value */
1967 static val_t once_value_34
; /* Once value */
1968 static val_t once_value_35
; /* Once value */
1969 static val_t once_value_36
; /* Once value */
1970 static val_t once_value_37
; /* Once value */
1971 static val_t once_value_38
; /* Once value */
1972 static val_t once_value_40
; /* Once value */
1973 static val_t once_value_41
; /* Once value */
1974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1975 fra
.me
.file
= LOCATE_compiling_icode
;
1977 fra
.me
.meth
= LOCATE_compiling_icode___IRoutine___compile_inside_to_c
;
1978 fra
.me
.has_broke
= 0;
1979 fra
.me
.REG_size
= 11;
1980 fra
.me
.REG
[0] = NIT_NULL
;
1981 fra
.me
.REG
[1] = NIT_NULL
;
1982 fra
.me
.REG
[2] = NIT_NULL
;
1983 fra
.me
.REG
[3] = NIT_NULL
;
1984 fra
.me
.REG
[4] = NIT_NULL
;
1985 fra
.me
.REG
[5] = NIT_NULL
;
1986 fra
.me
.REG
[6] = NIT_NULL
;
1987 fra
.me
.REG
[7] = NIT_NULL
;
1988 fra
.me
.REG
[8] = NIT_NULL
;
1989 fra
.me
.REG
[9] = NIT_NULL
;
1990 fra
.me
.REG
[10] = NIT_NULL
;
1995 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1996 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1997 /* ./compiling//compiling_icode.nit:268 */
1998 if (UNTAG_Bool(REGB1
)) {
2000 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2001 if (UNTAG_Bool(REGB2
)) {
2002 REGB2
= TAG_Bool(false);
2005 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2009 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2010 if (UNTAG_Bool(REGB1
)) {
2011 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2012 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2013 /* ./compiling//compiling_icode.nit:269 */
2014 if (UNTAG_Bool(REGB1
)) {
2015 fprintf(stderr
, "Reciever is null");
2016 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 269);
2019 REGB1
= CALL_location___Location___line_start(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2022 REGB1
= CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2024 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
2025 /* ./compiling//compiling_icode.nit:272 */
2026 if (UNTAG_Bool(REGB2
)) {
2028 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB2
);
2029 /* ./compiling//compiling_icode.nit:273 */
2030 if (!once_value_1
) {
2031 fra
.me
.REG
[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG[");
2032 REGB2
= TAG_Int(48);
2033 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB2
);
2034 once_value_1
= fra
.me
.REG
[4];
2035 register_static_object(&once_value_1
);
2036 } else fra
.me
.REG
[4] = once_value_1
;
2037 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2038 REGB2
= CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2040 REGB1
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
2041 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB1
)(REGB1
);
2042 /* ./compiling//compiling_icode.nit:273 */
2043 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2044 if (!once_value_2
) {
2045 fra
.me
.REG
[4] = BOX_NativeString("];} fra;");
2047 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2048 once_value_2
= fra
.me
.REG
[4];
2049 register_static_object(&once_value_2
);
2050 } else fra
.me
.REG
[4] = once_value_2
;
2051 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2052 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2053 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2055 /* ./compiling//compiling_icode.nit:275 */
2056 if (!once_value_3
) {
2057 fra
.me
.REG
[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
2058 REGB1
= TAG_Int(38);
2059 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
2060 once_value_3
= fra
.me
.REG
[3];
2061 register_static_object(&once_value_3
);
2062 } else fra
.me
.REG
[3] = once_value_3
;
2063 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2065 /* ./compiling//compiling_icode.nit:277 */
2066 if (!once_value_4
) {
2067 fra
.me
.REG
[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
2068 REGB1
= TAG_Int(59);
2069 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
2070 once_value_4
= fra
.me
.REG
[3];
2071 register_static_object(&once_value_4
);
2072 } else fra
.me
.REG
[3] = once_value_4
;
2073 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2075 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
2076 /* ./compiling//compiling_icode.nit:278 */
2077 if (!once_value_5
) {
2078 fra
.me
.REG
[4] = BOX_NativeString("fra.me.file = LOCATE_");
2079 REGB1
= TAG_Int(21);
2080 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2081 once_value_5
= fra
.me
.REG
[4];
2082 register_static_object(&once_value_5
);
2083 } else fra
.me
.REG
[4] = once_value_5
;
2084 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2085 fra
.me
.REG
[4] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2086 fra
.me
.REG
[4] = CALL_compiling_base___CompilerVisitor___module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2087 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2088 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2089 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2090 if (!once_value_6
) {
2091 fra
.me
.REG
[4] = BOX_NativeString(";");
2093 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2094 once_value_6
= fra
.me
.REG
[4];
2095 register_static_object(&once_value_6
);
2096 } else fra
.me
.REG
[4] = once_value_6
;
2097 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2098 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2099 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2101 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
2102 /* ./compiling//compiling_icode.nit:279 */
2103 if (!once_value_7
) {
2104 fra
.me
.REG
[4] = BOX_NativeString("fra.me.line = ");
2105 REGB1
= TAG_Int(14);
2106 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2107 once_value_7
= fra
.me
.REG
[4];
2108 register_static_object(&once_value_7
);
2109 } else fra
.me
.REG
[4] = once_value_7
;
2110 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2111 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
2112 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2113 if (!once_value_8
) {
2114 fra
.me
.REG
[4] = BOX_NativeString(";");
2116 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2117 once_value_8
= fra
.me
.REG
[4];
2118 register_static_object(&once_value_8
);
2119 } else fra
.me
.REG
[4] = once_value_8
;
2120 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2121 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2122 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2124 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
2125 /* ./compiling//compiling_icode.nit:280 */
2126 if (!once_value_9
) {
2127 fra
.me
.REG
[4] = BOX_NativeString("fra.me.meth = LOCATE_");
2128 REGB0
= TAG_Int(21);
2129 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2130 once_value_9
= fra
.me
.REG
[4];
2131 register_static_object(&once_value_9
);
2132 } else fra
.me
.REG
[4] = once_value_9
;
2133 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2134 fra
.me
.REG
[4] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2135 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2136 if (!once_value_10
) {
2137 fra
.me
.REG
[4] = BOX_NativeString(";");
2139 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2140 once_value_10
= fra
.me
.REG
[4];
2141 register_static_object(&once_value_10
);
2142 } else fra
.me
.REG
[4] = once_value_10
;
2143 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2144 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2145 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2146 /* ./compiling//compiling_icode.nit:281 */
2147 if (!once_value_11
) {
2148 fra
.me
.REG
[3] = BOX_NativeString("fra.me.has_broke = 0;");
2149 REGB0
= TAG_Int(21);
2150 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2151 once_value_11
= fra
.me
.REG
[3];
2152 register_static_object(&once_value_11
);
2153 } else fra
.me
.REG
[3] = once_value_11
;
2154 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2156 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
2157 /* ./compiling//compiling_icode.nit:282 */
2158 if (!once_value_12
) {
2159 fra
.me
.REG
[4] = BOX_NativeString("fra.me.REG_size = ");
2160 REGB0
= TAG_Int(18);
2161 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2162 once_value_12
= fra
.me
.REG
[4];
2163 register_static_object(&once_value_12
);
2164 } else fra
.me
.REG
[4] = once_value_12
;
2165 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2166 REGB0
= CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2167 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
2168 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2169 if (!once_value_13
) {
2170 fra
.me
.REG
[4] = BOX_NativeString(";");
2172 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2173 once_value_13
= fra
.me
.REG
[4];
2174 register_static_object(&once_value_13
);
2175 } else fra
.me
.REG
[4] = once_value_13
;
2176 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2177 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2178 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2180 REGB1
= CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2181 fra
.me
.REG
[3] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
2182 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2183 /* ./compiling//compiling_icode.nit:285 */
2185 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2186 if (UNTAG_Bool(REGB1
)) {
2187 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2189 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
2190 /* ./compiling//compiling_icode.nit:286 */
2191 if (!once_value_14
) {
2192 fra
.me
.REG
[5] = BOX_NativeString("fra.me.REG[");
2193 REGB0
= TAG_Int(11);
2194 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2195 once_value_14
= fra
.me
.REG
[5];
2196 register_static_object(&once_value_14
);
2197 } else fra
.me
.REG
[5] = once_value_14
;
2198 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2199 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB1
)(REGB1
);
2200 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2201 if (!once_value_15
) {
2202 fra
.me
.REG
[5] = BOX_NativeString("] = NIT_NULL;");
2203 REGB1
= TAG_Int(13);
2204 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
2205 once_value_15
= fra
.me
.REG
[5];
2206 register_static_object(&once_value_15
);
2207 } else fra
.me
.REG
[5] = once_value_15
;
2208 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2209 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2210 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2212 /* ./compiling//compiling_icode.nit:285 */
2215 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2219 REGB0
= CALL_allocate_iregister_slots___IRoutine___tag_slots_nb(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2220 fra
.me
.REG
[3] = NEW_Range_range___Range___without_last(REGB1
, REGB0
);
2221 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2222 /* ./compiling//compiling_icode.nit:288 */
2224 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2225 if (UNTAG_Bool(REGB0
)) {
2226 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2228 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
2229 /* ./compiling//compiling_icode.nit:289 */
2230 if (!once_value_17
) {
2231 fra
.me
.REG
[5] = BOX_NativeString("val_t REGB");
2232 REGB1
= TAG_Int(10);
2233 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
2234 once_value_17
= fra
.me
.REG
[5];
2235 register_static_object(&once_value_17
);
2236 } else fra
.me
.REG
[5] = once_value_17
;
2237 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2238 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB0
)(REGB0
);
2239 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2240 if (!once_value_18
) {
2241 fra
.me
.REG
[5] = BOX_NativeString(";");
2243 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2244 once_value_18
= fra
.me
.REG
[5];
2245 register_static_object(&once_value_18
);
2246 } else fra
.me
.REG
[5] = once_value_18
;
2247 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2248 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2249 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2251 /* ./compiling//compiling_icode.nit:288 */
2254 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2257 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2258 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2259 /* ./compiling//compiling_icode.nit:292 */
2260 if (UNTAG_Bool(REGB0
)) {
2262 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2263 if (UNTAG_Bool(REGB1
)) {
2264 REGB1
= TAG_Bool(false);
2267 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2271 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2272 if (UNTAG_Bool(REGB0
)) {
2274 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
2275 /* ./compiling//compiling_icode.nit:293 */
2276 if (!once_value_20
) {
2277 fra
.me
.REG
[5] = BOX_NativeString("fun_t CREG[");
2278 REGB0
= TAG_Int(11);
2279 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2280 once_value_20
= fra
.me
.REG
[5];
2281 register_static_object(&once_value_20
);
2282 } else fra
.me
.REG
[5] = once_value_20
;
2283 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2284 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2285 if (UNTAG_Bool(REGB0
)) {
2286 fprintf(stderr
, "Reciever is null");
2287 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 293);
2290 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2291 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB0
)(REGB0
);
2292 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2293 if (!once_value_21
) {
2294 fra
.me
.REG
[5] = BOX_NativeString("];");
2296 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2297 once_value_21
= fra
.me
.REG
[5];
2298 register_static_object(&once_value_21
);
2299 } else fra
.me
.REG
[5] = once_value_21
;
2300 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2301 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2302 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2303 /* ./compiling//compiling_icode.nit:294 */
2304 if (!once_value_22
) {
2305 fra
.me
.REG
[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
2306 REGB0
= TAG_Int(35);
2307 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2308 once_value_22
= fra
.me
.REG
[4];
2309 register_static_object(&once_value_22
);
2310 } else fra
.me
.REG
[4] = once_value_22
;
2311 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2312 /* ./compiling//compiling_icode.nit:295 */
2313 if (!once_value_23
) {
2314 fra
.me
.REG
[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
2315 REGB0
= TAG_Int(27);
2316 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2317 once_value_23
= fra
.me
.REG
[4];
2318 register_static_object(&once_value_23
);
2319 } else fra
.me
.REG
[4] = once_value_23
;
2320 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2323 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2324 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2325 /* ./compiling//compiling_icode.nit:298 */
2327 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2328 if (UNTAG_Bool(REGB1
)) {
2329 fra
.me
.REG
[5] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2330 fra
.me
.REG
[6] = CALL_allocate_iregister_slots___IRegister___slot_index(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2331 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2332 /* ./compiling//compiling_icode.nit:299 */
2333 if (UNTAG_Bool(REGB1
)) {
2335 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2336 if (UNTAG_Bool(REGB2
)) {
2337 REGB2
= TAG_Bool(false);
2340 REGB2
= TAG_Bool((fra
.me
.REG
[6])==(NIT_NULL
));
2342 /* ./compiling//compiling_icode.nit:299 */
2345 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2346 if (UNTAG_Bool(REGB1
)) {
2347 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2348 fra
.me
.REG
[6] = fra
.me
.REG
[2];
2351 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
2352 /* ./../lib/standard//collection//array.nit:233 */
2353 if (UNTAG_Bool(REGB2
)) {
2354 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2355 if (UNTAG_Bool(REGB2
)) {
2357 fprintf(stderr
, "Uninitialized attribute %s", "_length");
2358 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2361 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2362 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
2363 /* ./../lib/standard//collection//array.nit:233 */
2365 REGB3
= TAG_Bool(false);
2368 if (UNTAG_Bool(REGB2
)) {
2370 fprintf(stderr
, "Assert %s failed", "'index'");
2371 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2374 fra
.me
.REG
[6] = ATTR_array___Array____items(fra
.me
.REG
[6]);
2375 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2376 /* ./../lib/standard//collection//array.nit:234 */
2377 if (UNTAG_Bool(REGB2
)) {
2378 fprintf(stderr
, "Reciever is null");
2379 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
2382 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB1
)];
2383 /* ./../lib/standard//collection//array.nit:234 */
2386 /* ./compiling//compiling_icode.nit:299 */
2387 CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
2390 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2392 /* ./compiling//compiling_icode.nit:300 */
2394 /* ./compiling//compiling_icode.nit:298 */
2397 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2400 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2401 /* ./compiling//compiling_icode.nit:302 */
2402 if (UNTAG_Bool(REGB0
)) {
2404 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2405 if (UNTAG_Bool(REGB1
)) {
2406 REGB1
= TAG_Bool(false);
2409 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2413 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2414 if (UNTAG_Bool(REGB0
)) {
2416 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2417 /* ./compiling//compiling_icode.nit:303 */
2418 if (UNTAG_Bool(REGB1
)) {
2419 fprintf(stderr
, "Reciever is null");
2420 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 303);
2423 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2424 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
2425 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2427 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2428 if (UNTAG_Bool(REGB1
)) {
2429 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2430 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2431 /* ./compiling//compiling_icode.nit:304 */
2432 if (UNTAG_Bool(REGB0
)) {
2433 fprintf(stderr
, "Reciever is null");
2434 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 304);
2437 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
2439 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
2440 /* ./compiling//compiling_icode.nit:305 */
2441 if (!once_value_26
) {
2442 fra
.me
.REG
[7] = BOX_NativeString("CREG[");
2444 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2445 once_value_26
= fra
.me
.REG
[7];
2446 register_static_object(&once_value_26
);
2447 } else fra
.me
.REG
[7] = once_value_26
;
2448 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2449 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB1
)(REGB1
);
2450 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2451 if (!once_value_27
) {
2452 fra
.me
.REG
[7] = BOX_NativeString("] = ");
2454 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2455 once_value_27
= fra
.me
.REG
[7];
2456 register_static_object(&once_value_27
);
2457 } else fra
.me
.REG
[7] = once_value_27
;
2458 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2459 fra
.me
.REG
[7] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2460 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2461 REGB0
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2462 fra
.me
.REG
[7] = fra
.me
.REG
[2];
2464 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB2
));
2465 /* ./../lib/standard//collection//array.nit:233 */
2466 if (UNTAG_Bool(REGB2
)) {
2467 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
2468 if (UNTAG_Bool(REGB2
)) {
2470 fprintf(stderr
, "Uninitialized attribute %s", "_length");
2471 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2474 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
2475 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
2476 /* ./../lib/standard//collection//array.nit:233 */
2478 REGB3
= TAG_Bool(false);
2481 if (UNTAG_Bool(REGB2
)) {
2483 fprintf(stderr
, "Assert %s failed", "'index'");
2484 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2487 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
2488 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2489 /* ./../lib/standard//collection//array.nit:234 */
2490 if (UNTAG_Bool(REGB2
)) {
2491 fprintf(stderr
, "Reciever is null");
2492 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
2495 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
2496 /* ./../lib/standard//collection//array.nit:234 */
2499 /* ./compiling//compiling_icode.nit:305 */
2500 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2501 if (!once_value_29
) {
2502 fra
.me
.REG
[7] = BOX_NativeString(";");
2504 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2505 once_value_29
= fra
.me
.REG
[7];
2506 register_static_object(&once_value_29
);
2507 } else fra
.me
.REG
[7] = once_value_29
;
2508 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2509 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2510 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2511 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2512 /* ./compiling//compiling_icode.nit:306 */
2513 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6], REGB1
);
2514 fra
.me
.REG
[5] = CALL_icode_base___IClosureDecl___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2515 fra
.me
.REG
[5] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2516 fra
.me
.REG
[7] = NEW_Array_array___Array___init();
2517 /* ./compiling//compiling_icode.nit:309 */
2518 if (!once_value_30
) {
2519 fra
.me
.REG
[8] = BOX_NativeString("struct stack_frame_t *");
2520 REGB1
= TAG_Int(22);
2521 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
2522 once_value_30
= fra
.me
.REG
[8];
2523 register_static_object(&once_value_30
);
2524 } else fra
.me
.REG
[8] = once_value_30
;
2525 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2527 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2528 fra
.me
.REG
[8] = NEW_Range_range___Range___without_last(REGB1
, REGB0
);
2529 fra
.me
.REG
[8] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2530 /* ./compiling//compiling_icode.nit:310 */
2532 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2533 if (UNTAG_Bool(REGB0
)) {
2534 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2535 /* ./compiling//compiling_icode.nit:311 */
2536 if (!once_value_31
) {
2537 fra
.me
.REG
[9] = BOX_NativeString("val_t");
2539 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB0
);
2540 once_value_31
= fra
.me
.REG
[9];
2541 register_static_object(&once_value_31
);
2542 } else fra
.me
.REG
[9] = once_value_31
;
2543 /* ./compiling//compiling_icode.nit:312 */
2544 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
2546 /* ./compiling//compiling_icode.nit:310 */
2549 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2552 /* ./compiling//compiling_icode.nit:314 */
2553 if (!once_value_33
) {
2554 fra
.me
.REG
[8] = BOX_NativeString("void");
2556 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
2557 once_value_33
= fra
.me
.REG
[8];
2558 register_static_object(&once_value_33
);
2559 } else fra
.me
.REG
[8] = once_value_33
;
2560 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2561 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2562 /* ./compiling//compiling_icode.nit:315 */
2563 if (UNTAG_Bool(REGB0
)) {
2565 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2566 if (UNTAG_Bool(REGB1
)) {
2567 REGB1
= TAG_Bool(false);
2570 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2574 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2575 if (UNTAG_Bool(REGB0
)) {
2576 if (!once_value_34
) {
2577 fra
.me
.REG
[5] = BOX_NativeString("val_t");
2579 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2580 once_value_34
= fra
.me
.REG
[5];
2581 register_static_object(&once_value_34
);
2582 } else fra
.me
.REG
[5] = once_value_34
;
2583 fra
.me
.REG
[8] = fra
.me
.REG
[5];
2585 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2587 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB0
);
2588 /* ./compiling//compiling_icode.nit:316 */
2589 if (!once_value_35
) {
2590 fra
.me
.REG
[10] = BOX_NativeString("");
2592 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB0
);
2593 once_value_35
= fra
.me
.REG
[10];
2594 register_static_object(&once_value_35
);
2595 } else fra
.me
.REG
[10] = once_value_35
;
2596 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[10]);
2597 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[8]);
2598 if (!once_value_36
) {
2599 fra
.me
.REG
[8] = BOX_NativeString(" (*)(");
2601 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
2602 once_value_36
= fra
.me
.REG
[8];
2603 register_static_object(&once_value_36
);
2604 } else fra
.me
.REG
[8] = once_value_36
;
2605 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[8]);
2606 if (!once_value_37
) {
2607 fra
.me
.REG
[8] = BOX_NativeString(", ");
2609 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
2610 once_value_37
= fra
.me
.REG
[8];
2611 register_static_object(&once_value_37
);
2612 } else fra
.me
.REG
[8] = once_value_37
;
2613 fra
.me
.REG
[8] = CALL_string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
2614 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[8]);
2615 if (!once_value_38
) {
2616 fra
.me
.REG
[8] = BOX_NativeString(")");
2618 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
2619 once_value_38
= fra
.me
.REG
[8];
2620 register_static_object(&once_value_38
);
2621 } else fra
.me
.REG
[8] = once_value_38
;
2622 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[8]);
2623 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
2624 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[9]);
2626 /* ./compiling//compiling_icode.nit:303 */
2629 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2633 /* ./compiling//compiling_icode.nit:319 */
2634 if (!once_value_40
) {
2635 fra
.me
.REG
[4] = BOX_NativeString("val_t tmp;");
2636 REGB0
= TAG_Int(10);
2637 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2638 once_value_40
= fra
.me
.REG
[4];
2639 register_static_object(&once_value_40
);
2640 } else fra
.me
.REG
[4] = once_value_40
;
2641 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2642 fra
.me
.REG
[4] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2643 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2644 /* ./compiling//compiling_icode.nit:323 */
2645 CALL_compiling_icode___I2CCompilerVisitor___return_label__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2646 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2647 /* ./compiling//compiling_icode.nit:326 */
2648 CALL_compiling_icode___ICode___compile_to_c(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
2649 /* ./compiling//compiling_icode.nit:328 */
2650 if (!once_value_41
) {
2651 fra
.me
.REG
[2] = BOX_NativeString("stack_frame_head = fra.me.prev;");
2652 REGB0
= TAG_Int(31);
2653 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2654 once_value_41
= fra
.me
.REG
[2];
2655 register_static_object(&once_value_41
);
2656 } else fra
.me
.REG
[2] = once_value_41
;
2657 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2658 /* ./compiling//compiling_icode.nit:329 */
2659 CALL_compiling_icode___I2CCompilerVisitor___return_label__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2660 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2661 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2662 /* ./compiling//compiling_icode.nit:331 */
2663 if (UNTAG_Bool(REGB0
)) {
2665 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2666 if (UNTAG_Bool(REGB1
)) {
2667 REGB1
= TAG_Bool(false);
2670 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2674 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2675 if (UNTAG_Bool(REGB0
)) {
2676 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2677 /* ./compiling//compiling_icode.nit:332 */
2680 fra
.me
.REG
[0] = NIT_NULL
;
2681 /* ./compiling//compiling_icode.nit:334 */
2685 stack_frame_head
= fra
.me
.prev
;
2686 return fra
.me
.REG
[0];
2688 val_t
compiling_icode___IRoutine___compile_to_c(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
2689 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2691 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2692 fra
.me
.file
= LOCATE_compiling_icode
;
2694 fra
.me
.meth
= LOCATE_compiling_icode___IRoutine___compile_to_c
;
2695 fra
.me
.has_broke
= 0;
2696 fra
.me
.REG_size
= 5;
2697 fra
.me
.REG
[0] = NIT_NULL
;
2698 fra
.me
.REG
[1] = NIT_NULL
;
2699 fra
.me
.REG
[2] = NIT_NULL
;
2700 fra
.me
.REG
[3] = NIT_NULL
;
2701 fra
.me
.REG
[4] = NIT_NULL
;
2706 fra
.me
.REG
[4] = CALL_compiling_base___CompilerVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2707 /* ./compiling//compiling_icode.nit:343 */
2708 CALL_analysis___IRoutine___optimize(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
2709 fra
.me
.REG
[2] = NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2710 fra
.me
.REG
[3] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2711 /* ./compiling//compiling_icode.nit:345 */
2714 stack_frame_head
= fra
.me
.prev
;
2715 return fra
.me
.REG
[3];
2717 void compiling_icode___ICode___compile_to_c(val_t p0
, val_t p1
){
2718 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2720 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2721 fra
.me
.file
= LOCATE_compiling_icode
;
2723 fra
.me
.meth
= LOCATE_compiling_icode___ICode___compile_to_c
;
2724 fra
.me
.has_broke
= 0;
2725 fra
.me
.REG_size
= 3;
2726 fra
.me
.REG
[0] = NIT_NULL
;
2727 fra
.me
.REG
[1] = NIT_NULL
;
2728 fra
.me
.REG
[2] = NIT_NULL
;
2731 fra
.me
.REG
[2] = CALL_icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2732 /* ./compiling//compiling_icode.nit:353 */
2733 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2734 fra
.me
.REG
[2] = CALL_compiling_icode___ICode___inner_compile_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2735 /* ./compiling//compiling_icode.nit:354 */
2736 CALL_compiling_icode___ICode___store_result(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2737 stack_frame_head
= fra
.me
.prev
;
2740 val_t
compiling_icode___ICode___need_result(val_t p0
){
2741 struct {struct stack_frame_t me
;} fra
;
2745 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2746 fra
.me
.file
= LOCATE_compiling_icode
;
2748 fra
.me
.meth
= LOCATE_compiling_icode___ICode___need_result
;
2749 fra
.me
.has_broke
= 0;
2750 fra
.me
.REG_size
= 1;
2751 fra
.me
.REG
[0] = NIT_NULL
;
2753 fra
.me
.REG
[0] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2754 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2755 /* ./compiling//compiling_icode.nit:361 */
2756 if (UNTAG_Bool(REGB0
)) {
2758 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2759 if (UNTAG_Bool(REGB1
)) {
2760 REGB1
= TAG_Bool(false);
2763 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2767 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2768 if (UNTAG_Bool(REGB0
)) {
2769 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2770 if (UNTAG_Bool(REGB0
)) {
2771 fprintf(stderr
, "Reciever is null");
2772 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 361);
2775 fra
.me
.REG
[0] = CALL_allocate_iregister_slots___IRegister___slot_index(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2776 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2777 if (UNTAG_Bool(REGB0
)) {
2779 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2780 if (UNTAG_Bool(REGB1
)) {
2781 REGB1
= TAG_Bool(false);
2784 REGB1
= TAG_Bool((fra
.me
.REG
[0])==(NIT_NULL
));
2786 /* ./compiling//compiling_icode.nit:361 */
2789 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2791 REGB1
= TAG_Bool(false);
2796 stack_frame_head
= fra
.me
.prev
;
2799 void compiling_icode___ICode___store_result(val_t p0
, val_t p1
, val_t p2
){
2800 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2804 static val_t once_value_1
; /* Once value */
2805 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2806 fra
.me
.file
= LOCATE_compiling_icode
;
2808 fra
.me
.meth
= LOCATE_compiling_icode___ICode___store_result
;
2809 fra
.me
.has_broke
= 0;
2810 fra
.me
.REG_size
= 5;
2811 fra
.me
.REG
[0] = NIT_NULL
;
2812 fra
.me
.REG
[1] = NIT_NULL
;
2813 fra
.me
.REG
[2] = NIT_NULL
;
2814 fra
.me
.REG
[3] = NIT_NULL
;
2815 fra
.me
.REG
[4] = NIT_NULL
;
2819 fra
.me
.REG
[3] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2820 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2821 /* ./compiling//compiling_icode.nit:368 */
2822 if (UNTAG_Bool(REGB0
)) {
2824 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2825 if (UNTAG_Bool(REGB1
)) {
2826 REGB1
= TAG_Bool(false);
2829 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2833 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2834 if (UNTAG_Bool(REGB0
)) {
2835 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2836 if (UNTAG_Bool(REGB0
)) {
2837 fprintf(stderr
, "Reciever is null");
2838 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 368);
2841 fra
.me
.REG
[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2842 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2843 if (UNTAG_Bool(REGB0
)) {
2845 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2846 if (UNTAG_Bool(REGB1
)) {
2847 REGB1
= TAG_Bool(false);
2850 REGB1
= TAG_Bool((fra
.me
.REG
[4])==(NIT_NULL
));
2852 /* ./compiling//compiling_icode.nit:368 */
2855 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2857 REGB1
= TAG_Bool(false);
2860 if (UNTAG_Bool(REGB0
)) {
2861 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2862 /* ./compiling//compiling_icode.nit:369 */
2863 if (UNTAG_Bool(REGB0
)) {
2865 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2866 if (UNTAG_Bool(REGB1
)) {
2867 REGB1
= TAG_Bool(false);
2870 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2874 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2875 if (UNTAG_Bool(REGB0
)) {
2877 fprintf(stderr
, "Assert failed");
2878 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 369);
2881 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2882 /* ./compiling//compiling_icode.nit:370 */
2883 CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2885 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2886 /* ./compiling//compiling_icode.nit:371 */
2887 if (UNTAG_Bool(REGB0
)) {
2889 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2890 if (UNTAG_Bool(REGB1
)) {
2891 REGB1
= TAG_Bool(false);
2894 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2898 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2899 if (UNTAG_Bool(REGB0
)) {
2900 REGB0
= CALL_icode_base___ICode___is_pure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2901 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2903 REGB1
= TAG_Bool(false);
2906 if (UNTAG_Bool(REGB0
)) {
2907 /* ./compiling//compiling_icode.nit:374 */
2908 if (!once_value_1
) {
2909 fra
.me
.REG
[0] = BOX_NativeString(";");
2911 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
2912 once_value_1
= fra
.me
.REG
[0];
2913 register_static_object(&once_value_1
);
2914 } else fra
.me
.REG
[0] = once_value_1
;
2915 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2916 if (UNTAG_Bool(REGB0
)) {
2917 fprintf(stderr
, "Reciever is null");
2918 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 374);
2921 fra
.me
.REG
[0] = CALL_string___String_____plus(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2922 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2925 stack_frame_head
= fra
.me
.prev
;
2928 val_t
compiling_icode___ICode___inner_compile_to_c(val_t p0
, val_t p1
){
2929 struct {struct stack_frame_t me
;} fra
;
2931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2932 fra
.me
.file
= LOCATE_compiling_icode
;
2934 fra
.me
.meth
= LOCATE_compiling_icode___ICode___inner_compile_to_c
;
2935 fra
.me
.has_broke
= 0;
2936 fra
.me
.REG_size
= 0;
2937 /* ./compiling//compiling_icode.nit:378 */
2938 fprintf(stderr
, "Deferred method called");
2939 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 378);
2941 stack_frame_head
= fra
.me
.prev
;
2944 val_t
compiling_icode___ISeq___inner_compile_to_c(val_t p0
, val_t p1
){
2945 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2949 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2950 fra
.me
.file
= LOCATE_compiling_icode
;
2952 fra
.me
.meth
= LOCATE_compiling_icode___ISeq___inner_compile_to_c
;
2953 fra
.me
.has_broke
= 0;
2954 fra
.me
.REG_size
= 4;
2955 fra
.me
.REG
[0] = NIT_NULL
;
2956 fra
.me
.REG
[1] = NIT_NULL
;
2957 fra
.me
.REG
[2] = NIT_NULL
;
2958 fra
.me
.REG
[3] = NIT_NULL
;
2961 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2962 /* ./compiling//compiling_icode.nit:387 */
2963 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2964 fra
.me
.REG
[2] = CALL_icode_base___ISeq___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2965 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2966 /* ./compiling//compiling_icode.nit:389 */
2967 if (UNTAG_Bool(REGB0
)) {
2969 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2970 if (UNTAG_Bool(REGB1
)) {
2971 REGB1
= TAG_Bool(false);
2974 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2978 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2979 if (UNTAG_Bool(REGB0
)) {
2980 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2981 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2983 fra
.me
.REG
[2] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2984 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2985 /* ./compiling//compiling_icode.nit:390 */
2987 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2988 if (UNTAG_Bool(REGB0
)) {
2989 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2990 /* ./compiling//compiling_icode.nit:391 */
2991 CALL_compiling_icode___ICode___compile_to_c(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2993 /* ./compiling//compiling_icode.nit:390 */
2996 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2999 /* ./compiling//compiling_icode.nit:393 */
3000 CALL_compiling_icode___I2CCompilerVisitor___add_label(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3001 fra
.me
.REG
[0] = NIT_NULL
;
3002 /* ./compiling//compiling_icode.nit:394 */
3005 stack_frame_head
= fra
.me
.prev
;
3006 return fra
.me
.REG
[0];
3008 val_t
compiling_icode___IIf___inner_compile_to_c(val_t p0
, val_t p1
){
3009 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3012 static val_t once_value_1
; /* Once value */
3013 static val_t once_value_2
; /* Once value */
3014 static val_t once_value_3
; /* Once value */
3015 static val_t once_value_4
; /* Once value */
3016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3017 fra
.me
.file
= LOCATE_compiling_icode
;
3019 fra
.me
.meth
= LOCATE_compiling_icode___IIf___inner_compile_to_c
;
3020 fra
.me
.has_broke
= 0;
3021 fra
.me
.REG_size
= 4;
3022 fra
.me
.REG
[0] = NIT_NULL
;
3023 fra
.me
.REG
[1] = NIT_NULL
;
3024 fra
.me
.REG
[2] = NIT_NULL
;
3025 fra
.me
.REG
[3] = NIT_NULL
;
3029 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
3030 /* ./compiling//compiling_icode.nit:401 */
3031 if (!once_value_1
) {
3032 fra
.me
.REG
[3] = BOX_NativeString("if (UNTAG_Bool(");
3033 REGB0
= TAG_Int(15);
3034 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3035 once_value_1
= fra
.me
.REG
[3];
3036 register_static_object(&once_value_1
);
3037 } else fra
.me
.REG
[3] = once_value_1
;
3038 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3039 fra
.me
.REG
[3] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3040 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3041 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3042 if (!once_value_2
) {
3043 fra
.me
.REG
[3] = BOX_NativeString(")) {");
3045 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3046 once_value_2
= fra
.me
.REG
[3];
3047 register_static_object(&once_value_2
);
3048 } else fra
.me
.REG
[3] = once_value_2
;
3049 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3050 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3051 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3052 fra
.me
.REG
[2] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3053 fra
.me
.REG
[2] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3054 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3055 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3056 /* ./compiling//compiling_icode.nit:402 */
3057 if (UNTAG_Bool(REGB0
)) {
3058 /* ./compiling//compiling_icode.nit:403 */
3059 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3060 fra
.me
.REG
[2] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3061 /* ./compiling//compiling_icode.nit:404 */
3062 CALL_compiling_icode___ICode___inner_compile_to_c(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3063 /* ./compiling//compiling_icode.nit:405 */
3064 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3066 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3067 fra
.me
.REG
[2] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3068 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3069 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3070 /* ./compiling//compiling_icode.nit:407 */
3071 if (UNTAG_Bool(REGB0
)) {
3072 /* ./compiling//compiling_icode.nit:408 */
3073 if (!once_value_3
) {
3074 fra
.me
.REG
[2] = BOX_NativeString("} else {");
3076 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3077 once_value_3
= fra
.me
.REG
[2];
3078 register_static_object(&once_value_3
);
3079 } else fra
.me
.REG
[2] = once_value_3
;
3080 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3081 /* ./compiling//compiling_icode.nit:409 */
3082 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3083 fra
.me
.REG
[0] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3084 /* ./compiling//compiling_icode.nit:410 */
3085 CALL_compiling_icode___ICode___inner_compile_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3086 /* ./compiling//compiling_icode.nit:411 */
3087 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3089 /* ./compiling//compiling_icode.nit:413 */
3090 if (!once_value_4
) {
3091 fra
.me
.REG
[0] = BOX_NativeString("}");
3093 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3094 once_value_4
= fra
.me
.REG
[0];
3095 register_static_object(&once_value_4
);
3096 } else fra
.me
.REG
[0] = once_value_4
;
3097 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3098 fra
.me
.REG
[0] = NIT_NULL
;
3099 /* ./compiling//compiling_icode.nit:414 */
3102 stack_frame_head
= fra
.me
.prev
;
3103 return fra
.me
.REG
[0];
3105 val_t
compiling_icode___ILoop___inner_compile_to_c(val_t p0
, val_t p1
){
3106 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3110 static val_t once_value_1
; /* Once value */
3111 static val_t once_value_3
; /* Once value */
3112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3113 fra
.me
.file
= LOCATE_compiling_icode
;
3115 fra
.me
.meth
= LOCATE_compiling_icode___ILoop___inner_compile_to_c
;
3116 fra
.me
.has_broke
= 0;
3117 fra
.me
.REG_size
= 4;
3118 fra
.me
.REG
[0] = NIT_NULL
;
3119 fra
.me
.REG
[1] = NIT_NULL
;
3120 fra
.me
.REG
[2] = NIT_NULL
;
3121 fra
.me
.REG
[3] = NIT_NULL
;
3124 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3125 /* ./compiling//compiling_icode.nit:421 */
3126 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3127 fra
.me
.REG
[2] = CALL_icode_base___ISeq___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3128 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3129 /* ./compiling//compiling_icode.nit:423 */
3130 if (UNTAG_Bool(REGB0
)) {
3132 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3133 if (UNTAG_Bool(REGB1
)) {
3134 REGB1
= TAG_Bool(false);
3137 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3141 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3142 if (UNTAG_Bool(REGB0
)) {
3143 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3144 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3146 /* ./compiling//compiling_icode.nit:424 */
3147 if (!once_value_1
) {
3148 fra
.me
.REG
[2] = BOX_NativeString("while(1) {");
3149 REGB0
= TAG_Int(10);
3150 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3151 once_value_1
= fra
.me
.REG
[2];
3152 register_static_object(&once_value_1
);
3153 } else fra
.me
.REG
[2] = once_value_1
;
3154 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3155 /* ./compiling//compiling_icode.nit:425 */
3156 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3157 fra
.me
.REG
[2] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3158 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3159 /* ./compiling//compiling_icode.nit:426 */
3161 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3162 if (UNTAG_Bool(REGB0
)) {
3163 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3164 /* ./compiling//compiling_icode.nit:427 */
3165 CALL_compiling_icode___ICode___compile_to_c(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3167 /* ./compiling//compiling_icode.nit:426 */
3170 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3173 /* ./compiling//compiling_icode.nit:429 */
3174 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3175 /* ./compiling//compiling_icode.nit:430 */
3176 if (!once_value_3
) {
3177 fra
.me
.REG
[2] = BOX_NativeString("}");
3179 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3180 once_value_3
= fra
.me
.REG
[2];
3181 register_static_object(&once_value_3
);
3182 } else fra
.me
.REG
[2] = once_value_3
;
3183 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3184 /* ./compiling//compiling_icode.nit:431 */
3185 CALL_compiling_icode___I2CCompilerVisitor___add_label(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3186 fra
.me
.REG
[0] = NIT_NULL
;
3187 /* ./compiling//compiling_icode.nit:432 */
3190 stack_frame_head
= fra
.me
.prev
;
3191 return fra
.me
.REG
[0];
3193 val_t
compiling_icode___IEscape___inner_compile_to_c(val_t p0
, val_t p1
){
3194 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3197 fra
.me
.file
= LOCATE_compiling_icode
;
3199 fra
.me
.meth
= LOCATE_compiling_icode___IEscape___inner_compile_to_c
;
3200 fra
.me
.has_broke
= 0;
3201 fra
.me
.REG_size
= 3;
3202 fra
.me
.REG
[0] = NIT_NULL
;
3203 fra
.me
.REG
[1] = NIT_NULL
;
3204 fra
.me
.REG
[2] = NIT_NULL
;
3207 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3208 fra
.me
.REG
[0] = CALL_icode_base___IEscape___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3209 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3210 /* ./compiling//compiling_icode.nit:439 */
3211 CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3212 fra
.me
.REG
[0] = NIT_NULL
;
3213 /* ./compiling//compiling_icode.nit:440 */
3216 stack_frame_head
= fra
.me
.prev
;
3217 return fra
.me
.REG
[0];
3219 void compiling_icode___IAbsCall___compile_to_c(val_t p0
, val_t p1
){
3220 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3224 static val_t once_value_1
; /* Once value */
3225 static val_t once_value_2
; /* Once value */
3226 static val_t once_value_3
; /* Once value */
3227 static val_t once_value_5
; /* Once value */
3228 static val_t once_value_6
; /* Once value */
3229 static val_t once_value_7
; /* Once value */
3230 static val_t once_value_8
; /* Once value */
3231 static val_t once_value_9
; /* Once value */
3232 static val_t once_value_10
; /* Once value */
3233 static val_t once_value_11
; /* Once value */
3234 static val_t once_value_12
; /* Once value */
3235 static val_t once_value_13
; /* Once value */
3236 static val_t once_value_15
; /* Once value */
3237 static val_t once_value_16
; /* Once value */
3238 static val_t once_value_17
; /* Once value */
3239 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3240 fra
.me
.file
= LOCATE_compiling_icode
;
3242 fra
.me
.meth
= LOCATE_compiling_icode___IAbsCall___compile_to_c
;
3243 fra
.me
.has_broke
= 0;
3244 fra
.me
.REG_size
= 9;
3245 fra
.me
.REG
[0] = NIT_NULL
;
3246 fra
.me
.REG
[1] = NIT_NULL
;
3247 fra
.me
.REG
[2] = NIT_NULL
;
3248 fra
.me
.REG
[3] = NIT_NULL
;
3249 fra
.me
.REG
[4] = NIT_NULL
;
3250 fra
.me
.REG
[5] = NIT_NULL
;
3251 fra
.me
.REG
[6] = NIT_NULL
;
3252 fra
.me
.REG
[7] = NIT_NULL
;
3253 fra
.me
.REG
[8] = NIT_NULL
;
3256 fra
.me
.REG
[2] = CALL_icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3257 /* ./compiling//compiling_icode.nit:447 */
3258 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3259 fra
.me
.REG
[2] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3260 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3261 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3262 fra
.me
.REG
[4] = CALL_icode_base___ICodeN___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3263 fra
.me
.REG
[5] = NIT_NULL
;
3264 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3265 /* ./compiling//compiling_icode.nit:454 */
3266 if (UNTAG_Bool(REGB0
)) {
3268 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3269 if (UNTAG_Bool(REGB1
)) {
3270 REGB1
= TAG_Bool(false);
3273 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3277 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3278 if (UNTAG_Bool(REGB0
)) {
3279 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3280 /* ./compiling//compiling_icode.nit:456 */
3281 if (UNTAG_Bool(REGB0
)) {
3282 /* ./compiling//compiling_icode.nit:457 */
3283 if (!once_value_1
) {
3284 fra
.me
.REG
[6] = BOX_NativeString("closctx");
3286 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
3287 once_value_1
= fra
.me
.REG
[6];
3288 register_static_object(&once_value_1
);
3289 } else fra
.me
.REG
[6] = once_value_1
;
3290 fra
.me
.REG
[5] = fra
.me
.REG
[6];
3292 /* ./compiling//compiling_icode.nit:459 */
3293 if (!once_value_2
) {
3294 fra
.me
.REG
[6] = BOX_NativeString("(&(fra.me))");
3295 REGB0
= TAG_Int(11);
3296 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
3297 once_value_2
= fra
.me
.REG
[6];
3298 register_static_object(&once_value_2
);
3299 } else fra
.me
.REG
[6] = once_value_2
;
3300 fra
.me
.REG
[5] = fra
.me
.REG
[6];
3302 /* ./compiling//compiling_icode.nit:463 */
3303 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
3304 fra
.me
.REG
[6] = NEW_HashMap_hash_collection___HashMap___init();
3305 /* ./compiling//compiling_icode.nit:466 */
3306 CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3307 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3308 /* ./compiling//compiling_icode.nit:469 */
3310 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3311 if (UNTAG_Bool(REGB0
)) {
3312 fra
.me
.REG
[6] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3313 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
3314 /* ./compiling//compiling_icode.nit:470 */
3315 if (UNTAG_Bool(REGB0
)) {
3317 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
3318 if (UNTAG_Bool(REGB1
)) {
3319 REGB1
= TAG_Bool(false);
3322 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
3326 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3327 if (UNTAG_Bool(REGB0
)) {
3328 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
3329 /* ./compiling//compiling_icode.nit:471 */
3330 if (UNTAG_Bool(REGB0
)) {
3331 fprintf(stderr
, "Reciever is null");
3332 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 471);
3335 fra
.me
.REG
[6] = CALL_compiling_icode___IClosureDef___compile_closure(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
3336 /* ./compiling//compiling_icode.nit:472 */
3337 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3339 /* ./compiling//compiling_icode.nit:474 */
3340 if (!once_value_3
) {
3341 fra
.me
.REG
[6] = BOX_NativeString("NULL");
3343 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
3344 once_value_3
= fra
.me
.REG
[6];
3345 register_static_object(&once_value_3
);
3346 } else fra
.me
.REG
[6] = once_value_3
;
3347 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3350 /* ./compiling//compiling_icode.nit:469 */
3353 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3357 fra
.me
.REG
[2] = CALL_compiling_icode___IAbsCall___compile_call_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
3358 fra
.me
.REG
[4] = fra
.me
.REG
[2];
3359 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3360 /* ./compiling//compiling_icode.nit:484 */
3361 if (UNTAG_Bool(REGB0
)) {
3363 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3364 if (UNTAG_Bool(REGB1
)) {
3365 REGB1
= TAG_Bool(false);
3368 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3372 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3373 if (UNTAG_Bool(REGB0
)) {
3374 fra
.me
.REG
[6] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3375 /* ./compiling//compiling_icode.nit:486 */
3376 CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3377 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3378 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3379 /* ./compiling//compiling_icode.nit:488 */
3380 if (UNTAG_Bool(REGB0
)) {
3381 REGB0
= CALL_compiling_icode___ICode___need_result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3382 /* ./compiling//compiling_icode.nit:490 */
3383 if (UNTAG_Bool(REGB0
)) {
3384 /* ./compiling//compiling_icode.nit:491 */
3385 if (!once_value_5
) {
3386 fra
.me
.REG
[3] = BOX_NativeString("tmp");
3388 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3389 once_value_5
= fra
.me
.REG
[3];
3390 register_static_object(&once_value_5
);
3391 } else fra
.me
.REG
[3] = once_value_5
;
3392 fra
.me
.REG
[4] = fra
.me
.REG
[3];
3393 /* ./compiling//compiling_icode.nit:492 */
3394 CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[2]);
3396 fra
.me
.REG
[4] = NIT_NULL
;
3397 /* ./compiling//compiling_icode.nit:495 */
3398 if (!once_value_6
) {
3399 fra
.me
.REG
[3] = BOX_NativeString(";");
3401 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3402 once_value_6
= fra
.me
.REG
[3];
3403 register_static_object(&once_value_6
);
3404 } else fra
.me
.REG
[3] = once_value_6
;
3405 fra
.me
.REG
[3] = CALL_string___String_____plus(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3406 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3409 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
3410 /* ./compiling//compiling_icode.nit:498 */
3411 if (!once_value_7
) {
3412 fra
.me
.REG
[2] = BOX_NativeString("switch (");
3414 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3415 once_value_7
= fra
.me
.REG
[2];
3416 register_static_object(&once_value_7
);
3417 } else fra
.me
.REG
[2] = once_value_7
;
3418 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3419 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3420 if (!once_value_8
) {
3421 fra
.me
.REG
[2] = BOX_NativeString("->has_broke) {");
3422 REGB0
= TAG_Int(14);
3423 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3424 once_value_8
= fra
.me
.REG
[2];
3425 register_static_object(&once_value_8
);
3426 } else fra
.me
.REG
[2] = once_value_8
;
3427 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3428 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3429 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3430 /* ./compiling//compiling_icode.nit:499 */
3431 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3432 /* ./compiling//compiling_icode.nit:501 */
3433 if (!once_value_9
) {
3434 fra
.me
.REG
[3] = BOX_NativeString("case 0: break;");
3435 REGB0
= TAG_Int(14);
3436 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3437 once_value_9
= fra
.me
.REG
[3];
3438 register_static_object(&once_value_9
);
3439 } else fra
.me
.REG
[3] = once_value_9
;
3440 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3441 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3442 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3443 REGB0
= TAG_Bool(false);
3444 /* ./compiling//compiling_icode.nit:505 */
3446 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3447 if (UNTAG_Bool(REGB1
)) {
3448 fra
.me
.REG
[2] = CALL_abstract_collection___MapIterator___key(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3449 REGB1
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3450 /* ./compiling//compiling_icode.nit:507 */
3451 if (UNTAG_Bool(REGB1
)) {
3453 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB1
);
3454 /* ./compiling//compiling_icode.nit:510 */
3455 if (!once_value_10
) {
3456 fra
.me
.REG
[8] = BOX_NativeString("case ");
3458 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
3459 once_value_10
= fra
.me
.REG
[8];
3460 register_static_object(&once_value_10
);
3461 } else fra
.me
.REG
[8] = once_value_10
;
3462 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3463 fra
.me
.REG
[8] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3464 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
3465 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3466 if (!once_value_11
) {
3467 fra
.me
.REG
[8] = BOX_NativeString(": ");
3469 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
3470 once_value_11
= fra
.me
.REG
[8];
3471 register_static_object(&once_value_11
);
3472 } else fra
.me
.REG
[8] = once_value_11
;
3473 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3474 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[5]);
3475 if (!once_value_12
) {
3476 fra
.me
.REG
[8] = BOX_NativeString("->has_broke = 0; goto ");
3477 REGB1
= TAG_Int(22);
3478 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
3479 once_value_12
= fra
.me
.REG
[8];
3480 register_static_object(&once_value_12
);
3481 } else fra
.me
.REG
[8] = once_value_12
;
3482 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3483 fra
.me
.REG
[8] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3484 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3485 if (!once_value_13
) {
3486 fra
.me
.REG
[8] = BOX_NativeString(";");
3488 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
3489 once_value_13
= fra
.me
.REG
[8];
3490 register_static_object(&once_value_13
);
3491 } else fra
.me
.REG
[8] = once_value_13
;
3492 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
3493 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3494 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
3496 REGB1
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3497 /* ./compiling//compiling_icode.nit:513 */
3498 if (UNTAG_Bool(REGB1
)) {
3500 fprintf(stderr
, "Assert failed");
3501 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 513);
3504 /* ./compiling//compiling_icode.nit:514 */
3505 CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3506 REGB1
= TAG_Bool(true);
3508 /* ./compiling//compiling_icode.nit:515 */
3510 /* ./compiling//compiling_icode.nit:517 */
3511 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3513 /* ./compiling//compiling_icode.nit:505 */
3518 /* ./compiling//compiling_icode.nit:520 */
3519 if (UNTAG_Bool(REGB0
)) {
3521 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
3522 /* ./compiling//compiling_icode.nit:523 */
3523 if (!once_value_15
) {
3524 fra
.me
.REG
[5] = BOX_NativeString("default: goto ");
3525 REGB0
= TAG_Int(14);
3526 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
3527 once_value_15
= fra
.me
.REG
[5];
3528 register_static_object(&once_value_15
);
3529 } else fra
.me
.REG
[5] = once_value_15
;
3530 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
3531 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3532 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
3533 if (UNTAG_Bool(REGB0
)) {
3535 fprintf(stderr
, "Cast failed");
3536 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 523);
3539 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3540 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
3541 if (!once_value_16
) {
3542 fra
.me
.REG
[5] = BOX_NativeString(";");
3544 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
3545 once_value_16
= fra
.me
.REG
[5];
3546 register_static_object(&once_value_16
);
3547 } else fra
.me
.REG
[5] = once_value_16
;
3548 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
3549 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3550 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3552 /* ./compiling//compiling_icode.nit:525 */
3553 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3554 /* ./compiling//compiling_icode.nit:526 */
3555 if (!once_value_17
) {
3556 fra
.me
.REG
[6] = BOX_NativeString("}");
3558 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
3559 once_value_17
= fra
.me
.REG
[6];
3560 register_static_object(&once_value_17
);
3561 } else fra
.me
.REG
[6] = once_value_17
;
3562 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3565 /* ./compiling//compiling_icode.nit:530 */
3566 CALL_compiling_icode___ICode___store_result(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
3567 stack_frame_head
= fra
.me
.prev
;
3570 val_t
compiling_icode___IAbsCall___inner_compile_to_c(val_t p0
, val_t p1
){
3571 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3573 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3574 fra
.me
.file
= LOCATE_compiling_icode
;
3576 fra
.me
.meth
= LOCATE_compiling_icode___IAbsCall___inner_compile_to_c
;
3577 fra
.me
.has_broke
= 0;
3578 fra
.me
.REG_size
= 2;
3579 fra
.me
.REG
[0] = NIT_NULL
;
3580 fra
.me
.REG
[1] = NIT_NULL
;
3583 /* ./compiling//compiling_icode.nit:533 */
3584 fprintf(stderr
, "Aborted");
3585 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 533);
3587 stack_frame_head
= fra
.me
.prev
;
3590 val_t
compiling_icode___IAbsCall___compile_call_to_c(val_t p0
, val_t p1
, val_t p2
){
3591 struct {struct stack_frame_t me
;} fra
;
3593 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3594 fra
.me
.file
= LOCATE_compiling_icode
;
3596 fra
.me
.meth
= LOCATE_compiling_icode___IAbsCall___compile_call_to_c
;
3597 fra
.me
.has_broke
= 0;
3598 fra
.me
.REG_size
= 0;
3599 /* ./compiling//compiling_icode.nit:535 */
3600 fprintf(stderr
, "Deferred method called");
3601 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 535);
3603 stack_frame_head
= fra
.me
.prev
;
3606 val_t
compiling_icode___ICall___compile_call_to_c(val_t p0
, val_t p1
, val_t p2
){
3607 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3612 static val_t once_value_1
; /* Once value */
3613 static val_t once_value_2
; /* Once value */
3614 static val_t once_value_3
; /* Once value */
3615 static val_t once_value_4
; /* Once value */
3616 static val_t once_value_5
; /* Once value */
3617 static val_t once_value_6
; /* Once value */
3618 static val_t once_value_7
; /* Once value */
3619 static val_t once_value_8
; /* Once value */
3620 static val_t once_value_9
; /* Once value */
3621 static val_t once_value_11
; /* Once value */
3622 static val_t once_value_12
; /* Once value */
3623 static val_t once_value_14
; /* Once value */
3624 static val_t once_value_15
; /* Once value */
3625 static val_t once_value_16
; /* Once value */
3626 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3627 fra
.me
.file
= LOCATE_compiling_icode
;
3629 fra
.me
.meth
= LOCATE_compiling_icode___ICall___compile_call_to_c
;
3630 fra
.me
.has_broke
= 0;
3631 fra
.me
.REG_size
= 5;
3632 fra
.me
.REG
[0] = NIT_NULL
;
3633 fra
.me
.REG
[1] = NIT_NULL
;
3634 fra
.me
.REG
[2] = NIT_NULL
;
3635 fra
.me
.REG
[3] = NIT_NULL
;
3636 fra
.me
.REG
[4] = NIT_NULL
;
3640 fra
.me
.REG
[0] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3641 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3642 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3643 /* ./compiling//compiling_icode.nit:543 */
3644 if (UNTAG_Bool(REGB0
)) {
3645 if (!once_value_1
) {
3646 fra
.me
.REG
[1] = BOX_NativeString("init_table");
3647 REGB0
= TAG_Int(10);
3648 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
3649 once_value_1
= fra
.me
.REG
[1];
3650 register_static_object(&once_value_1
);
3651 } else fra
.me
.REG
[1] = once_value_1
;
3652 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3654 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3655 /* ./compiling//compiling_icode.nit:544 */
3656 if (!once_value_2
) {
3657 if (!once_value_3
) {
3658 fra
.me
.REG
[3] = BOX_NativeString("add");
3660 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3661 once_value_3
= fra
.me
.REG
[3];
3662 register_static_object(&once_value_3
);
3663 } else fra
.me
.REG
[3] = once_value_3
;
3664 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3665 once_value_2
= fra
.me
.REG
[3];
3666 register_static_object(&once_value_2
);
3667 } else fra
.me
.REG
[3] = once_value_2
;
3668 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
3669 if (UNTAG_Bool(REGB0
)) {
3671 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3674 if (UNTAG_Bool(REGB0
)) {
3675 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3676 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3677 if (!once_value_4
) {
3678 if (!once_value_5
) {
3679 fra
.me
.REG
[1] = BOX_NativeString("Array");
3681 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
3682 once_value_5
= fra
.me
.REG
[1];
3683 register_static_object(&once_value_5
);
3684 } else fra
.me
.REG
[1] = once_value_5
;
3685 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3686 once_value_4
= fra
.me
.REG
[1];
3687 register_static_object(&once_value_4
);
3688 } else fra
.me
.REG
[1] = once_value_4
;
3689 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
3690 if (UNTAG_Bool(REGB0
)) {
3692 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3696 REGB1
= TAG_Bool(false);
3699 if (UNTAG_Bool(REGB0
)) {
3701 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
3702 /* ./compiling//compiling_icode.nit:545 */
3703 if (!once_value_6
) {
3704 fra
.me
.REG
[3] = BOX_NativeString("");
3706 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3707 once_value_6
= fra
.me
.REG
[3];
3708 register_static_object(&once_value_6
);
3709 } else fra
.me
.REG
[3] = once_value_6
;
3710 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3711 fra
.me
.REG
[3] = CALL_compiling_base___MMLocalProperty___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3712 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3713 if (!once_value_7
) {
3714 fra
.me
.REG
[3] = BOX_NativeString("(");
3716 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3717 once_value_7
= fra
.me
.REG
[3];
3718 register_static_object(&once_value_7
);
3719 } else fra
.me
.REG
[3] = once_value_7
;
3720 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3721 if (!once_value_8
) {
3722 fra
.me
.REG
[3] = BOX_NativeString(", ");
3724 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3725 once_value_8
= fra
.me
.REG
[3];
3726 register_static_object(&once_value_8
);
3727 } else fra
.me
.REG
[3] = once_value_8
;
3728 fra
.me
.REG
[3] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3729 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3730 if (!once_value_9
) {
3731 fra
.me
.REG
[3] = BOX_NativeString(")");
3733 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3734 once_value_9
= fra
.me
.REG
[3];
3735 register_static_object(&once_value_9
);
3736 } else fra
.me
.REG
[3] = once_value_9
;
3737 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3738 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3742 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
3743 /* ./compiling//compiling_icode.nit:547 */
3744 if (!once_value_11
) {
3745 fra
.me
.REG
[4] = BOX_NativeString("");
3747 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3748 once_value_11
= fra
.me
.REG
[4];
3749 register_static_object(&once_value_11
);
3750 } else fra
.me
.REG
[4] = once_value_11
;
3751 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3752 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3753 fra
.me
.REG
[0] = CALL_compiling_base___MMGlobalProperty___meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3754 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3755 if (!once_value_12
) {
3756 fra
.me
.REG
[0] = BOX_NativeString("(");
3758 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3759 once_value_12
= fra
.me
.REG
[0];
3760 register_static_object(&once_value_12
);
3761 } else fra
.me
.REG
[0] = once_value_12
;
3762 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3764 fra
.me
.REG
[0] = fra
.me
.REG
[2];
3766 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
3767 /* ./../lib/standard//collection//array.nit:233 */
3768 if (UNTAG_Bool(REGB1
)) {
3769 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
3770 if (UNTAG_Bool(REGB1
)) {
3772 fprintf(stderr
, "Uninitialized attribute %s", "_length");
3773 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
3776 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
3777 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3778 /* ./../lib/standard//collection//array.nit:233 */
3780 REGB2
= TAG_Bool(false);
3783 if (UNTAG_Bool(REGB1
)) {
3785 fprintf(stderr
, "Assert %s failed", "'index'");
3786 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
3789 fra
.me
.REG
[0] = ATTR_array___Array____items(fra
.me
.REG
[0]);
3790 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3791 /* ./../lib/standard//collection//array.nit:234 */
3792 if (UNTAG_Bool(REGB1
)) {
3793 fprintf(stderr
, "Reciever is null");
3794 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
3797 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
3798 /* ./../lib/standard//collection//array.nit:234 */
3801 /* ./compiling//compiling_icode.nit:547 */
3802 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3803 if (!once_value_14
) {
3804 fra
.me
.REG
[0] = BOX_NativeString(")(");
3806 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3807 once_value_14
= fra
.me
.REG
[0];
3808 register_static_object(&once_value_14
);
3809 } else fra
.me
.REG
[0] = once_value_14
;
3810 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3811 if (!once_value_15
) {
3812 fra
.me
.REG
[0] = BOX_NativeString(", ");
3814 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3815 once_value_15
= fra
.me
.REG
[0];
3816 register_static_object(&once_value_15
);
3817 } else fra
.me
.REG
[0] = once_value_15
;
3818 fra
.me
.REG
[0] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3819 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3820 if (!once_value_16
) {
3821 fra
.me
.REG
[0] = BOX_NativeString(")");
3823 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3824 once_value_16
= fra
.me
.REG
[0];
3825 register_static_object(&once_value_16
);
3826 } else fra
.me
.REG
[0] = once_value_16
;
3827 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3828 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3829 fra
.me
.REG
[1] = fra
.me
.REG
[3];
3833 stack_frame_head
= fra
.me
.prev
;
3834 return fra
.me
.REG
[1];
3836 val_t
compiling_icode___ISuper___compile_call_to_c(val_t p0
, val_t p1
, val_t p2
){
3837 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3842 static val_t once_value_1
; /* Once value */
3843 static val_t once_value_2
; /* Once value */
3844 static val_t once_value_3
; /* Once value */
3845 static val_t once_value_5
; /* Once value */
3846 static val_t once_value_6
; /* Once value */
3847 static val_t once_value_7
; /* Once value */
3848 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3849 fra
.me
.file
= LOCATE_compiling_icode
;
3851 fra
.me
.meth
= LOCATE_compiling_icode___ISuper___compile_call_to_c
;
3852 fra
.me
.has_broke
= 0;
3853 fra
.me
.REG_size
= 4;
3854 fra
.me
.REG
[0] = NIT_NULL
;
3855 fra
.me
.REG
[1] = NIT_NULL
;
3856 fra
.me
.REG
[2] = NIT_NULL
;
3857 fra
.me
.REG
[3] = NIT_NULL
;
3861 fra
.me
.REG
[0] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3862 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3863 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3864 /* ./compiling//compiling_icode.nit:556 */
3865 if (UNTAG_Bool(REGB0
)) {
3866 if (!once_value_1
) {
3867 fra
.me
.REG
[1] = BOX_NativeString("init_table");
3868 REGB0
= TAG_Int(10);
3869 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
3870 once_value_1
= fra
.me
.REG
[1];
3871 register_static_object(&once_value_1
);
3872 } else fra
.me
.REG
[1] = once_value_1
;
3873 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3876 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
3877 /* ./compiling//compiling_icode.nit:557 */
3878 if (!once_value_2
) {
3879 fra
.me
.REG
[3] = BOX_NativeString("");
3881 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3882 once_value_2
= fra
.me
.REG
[3];
3883 register_static_object(&once_value_2
);
3884 } else fra
.me
.REG
[3] = once_value_2
;
3885 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3886 fra
.me
.REG
[0] = CALL_compiling_base___MMLocalProperty___super_meth_call(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3887 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3888 if (!once_value_3
) {
3889 fra
.me
.REG
[0] = BOX_NativeString("(");
3891 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3892 once_value_3
= fra
.me
.REG
[0];
3893 register_static_object(&once_value_3
);
3894 } else fra
.me
.REG
[0] = once_value_3
;
3895 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3897 fra
.me
.REG
[0] = fra
.me
.REG
[2];
3899 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
3900 /* ./../lib/standard//collection//array.nit:233 */
3901 if (UNTAG_Bool(REGB1
)) {
3902 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
3903 if (UNTAG_Bool(REGB1
)) {
3905 fprintf(stderr
, "Uninitialized attribute %s", "_length");
3906 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
3909 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
3910 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3911 /* ./../lib/standard//collection//array.nit:233 */
3913 REGB2
= TAG_Bool(false);
3916 if (UNTAG_Bool(REGB1
)) {
3918 fprintf(stderr
, "Assert %s failed", "'index'");
3919 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
3922 fra
.me
.REG
[0] = ATTR_array___Array____items(fra
.me
.REG
[0]);
3923 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3924 /* ./../lib/standard//collection//array.nit:234 */
3925 if (UNTAG_Bool(REGB1
)) {
3926 fprintf(stderr
, "Reciever is null");
3927 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
3930 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
3931 /* ./../lib/standard//collection//array.nit:234 */
3934 /* ./compiling//compiling_icode.nit:557 */
3935 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3936 if (!once_value_5
) {
3937 fra
.me
.REG
[0] = BOX_NativeString(")(");
3939 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3940 once_value_5
= fra
.me
.REG
[0];
3941 register_static_object(&once_value_5
);
3942 } else fra
.me
.REG
[0] = once_value_5
;
3943 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3944 if (!once_value_6
) {
3945 fra
.me
.REG
[0] = BOX_NativeString(", ");
3947 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3948 once_value_6
= fra
.me
.REG
[0];
3949 register_static_object(&once_value_6
);
3950 } else fra
.me
.REG
[0] = once_value_6
;
3951 fra
.me
.REG
[0] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3952 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3953 if (!once_value_7
) {
3954 fra
.me
.REG
[0] = BOX_NativeString(")");
3956 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
3957 once_value_7
= fra
.me
.REG
[0];
3958 register_static_object(&once_value_7
);
3959 } else fra
.me
.REG
[0] = once_value_7
;
3960 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3961 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3964 stack_frame_head
= fra
.me
.prev
;
3965 return fra
.me
.REG
[1];
3967 val_t
compiling_icode___INew___compile_call_to_c(val_t p0
, val_t p1
, val_t p2
){
3968 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3971 static val_t once_value_1
; /* Once value */
3972 static val_t once_value_2
; /* Once value */
3973 static val_t once_value_3
; /* Once value */
3974 static val_t once_value_4
; /* Once value */
3975 static val_t once_value_5
; /* Once value */
3976 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3977 fra
.me
.file
= LOCATE_compiling_icode
;
3979 fra
.me
.meth
= LOCATE_compiling_icode___INew___compile_call_to_c
;
3980 fra
.me
.has_broke
= 0;
3981 fra
.me
.REG_size
= 4;
3982 fra
.me
.REG
[0] = NIT_NULL
;
3983 fra
.me
.REG
[1] = NIT_NULL
;
3984 fra
.me
.REG
[2] = NIT_NULL
;
3985 fra
.me
.REG
[3] = NIT_NULL
;
3990 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
3991 /* ./compiling//compiling_icode.nit:564 */
3992 if (!once_value_1
) {
3993 fra
.me
.REG
[3] = BOX_NativeString("NEW_");
3995 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3996 once_value_1
= fra
.me
.REG
[3];
3997 register_static_object(&once_value_1
);
3998 } else fra
.me
.REG
[3] = once_value_1
;
3999 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4000 fra
.me
.REG
[3] = CALL_icode_base___INew___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4001 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4002 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4003 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4004 if (!once_value_2
) {
4005 fra
.me
.REG
[3] = BOX_NativeString("_");
4007 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4008 once_value_2
= fra
.me
.REG
[3];
4009 register_static_object(&once_value_2
);
4010 } else fra
.me
.REG
[3] = once_value_2
;
4011 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4012 fra
.me
.REG
[0] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4013 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4014 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4015 fra
.me
.REG
[0] = CALL_compiling_base___MMLocalProperty___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4016 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4017 if (!once_value_3
) {
4018 fra
.me
.REG
[0] = BOX_NativeString("(");
4020 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4021 once_value_3
= fra
.me
.REG
[0];
4022 register_static_object(&once_value_3
);
4023 } else fra
.me
.REG
[0] = once_value_3
;
4024 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4025 if (!once_value_4
) {
4026 fra
.me
.REG
[0] = BOX_NativeString(", ");
4028 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4029 once_value_4
= fra
.me
.REG
[0];
4030 register_static_object(&once_value_4
);
4031 } else fra
.me
.REG
[0] = once_value_4
;
4032 fra
.me
.REG
[0] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4033 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4034 if (!once_value_5
) {
4035 fra
.me
.REG
[0] = BOX_NativeString(")");
4037 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4038 once_value_5
= fra
.me
.REG
[0];
4039 register_static_object(&once_value_5
);
4040 } else fra
.me
.REG
[0] = once_value_5
;
4041 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4042 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4045 stack_frame_head
= fra
.me
.prev
;
4046 return fra
.me
.REG
[1];
4048 val_t
compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0
, val_t p1
){
4049 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4052 static val_t once_value_1
; /* Once value */
4053 static val_t once_value_2
; /* Once value */
4054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4055 fra
.me
.file
= LOCATE_compiling_icode
;
4057 fra
.me
.meth
= LOCATE_compiling_icode___IAllocateInstance___inner_compile_to_c
;
4058 fra
.me
.has_broke
= 0;
4059 fra
.me
.REG_size
= 3;
4060 fra
.me
.REG
[0] = NIT_NULL
;
4061 fra
.me
.REG
[1] = NIT_NULL
;
4062 fra
.me
.REG
[2] = NIT_NULL
;
4066 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
4067 /* ./compiling//compiling_icode.nit:571 */
4068 if (!once_value_1
) {
4069 fra
.me
.REG
[2] = BOX_NativeString("NEW_");
4071 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
4072 once_value_1
= fra
.me
.REG
[2];
4073 register_static_object(&once_value_1
);
4074 } else fra
.me
.REG
[2] = once_value_1
;
4075 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4076 fra
.me
.REG
[0] = CALL_icode_base___IAllocateInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4077 fra
.me
.REG
[0] = CALL_static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4078 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4079 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4080 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4081 if (!once_value_2
) {
4082 fra
.me
.REG
[0] = BOX_NativeString("()");
4084 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4085 once_value_2
= fra
.me
.REG
[0];
4086 register_static_object(&once_value_2
);
4087 } else fra
.me
.REG
[0] = once_value_2
;
4088 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4089 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4092 stack_frame_head
= fra
.me
.prev
;
4093 return fra
.me
.REG
[1];
4095 val_t
compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0
, val_t p1
){
4096 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4099 static val_t once_value_1
; /* Once value */
4100 static val_t once_value_2
; /* Once value */
4101 static val_t once_value_3
; /* Once value */
4102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4103 fra
.me
.file
= LOCATE_compiling_icode
;
4105 fra
.me
.meth
= LOCATE_compiling_icode___ICheckInstance___inner_compile_to_c
;
4106 fra
.me
.has_broke
= 0;
4107 fra
.me
.REG_size
= 4;
4108 fra
.me
.REG
[0] = NIT_NULL
;
4109 fra
.me
.REG
[1] = NIT_NULL
;
4110 fra
.me
.REG
[2] = NIT_NULL
;
4111 fra
.me
.REG
[3] = NIT_NULL
;
4115 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4116 /* ./compiling//compiling_icode.nit:578 */
4117 if (!once_value_1
) {
4118 fra
.me
.REG
[3] = BOX_NativeString("CHECKNEW_");
4120 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4121 once_value_1
= fra
.me
.REG
[3];
4122 register_static_object(&once_value_1
);
4123 } else fra
.me
.REG
[3] = once_value_1
;
4124 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4125 fra
.me
.REG
[3] = CALL_icode_base___ICheckInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4126 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4127 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4128 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4129 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4130 if (!once_value_2
) {
4131 fra
.me
.REG
[3] = BOX_NativeString("(");
4133 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4134 once_value_2
= fra
.me
.REG
[3];
4135 register_static_object(&once_value_2
);
4136 } else fra
.me
.REG
[3] = once_value_2
;
4137 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4138 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4139 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4140 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4141 if (!once_value_3
) {
4142 fra
.me
.REG
[0] = BOX_NativeString(")");
4144 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4145 once_value_3
= fra
.me
.REG
[0];
4146 register_static_object(&once_value_3
);
4147 } else fra
.me
.REG
[0] = once_value_3
;
4148 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4149 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4152 stack_frame_head
= fra
.me
.prev
;
4153 return fra
.me
.REG
[2];
4155 val_t
compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0
, val_t p1
){
4156 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4159 static val_t once_value_1
; /* Once value */
4160 static val_t once_value_2
; /* Once value */
4161 static val_t once_value_3
; /* Once value */
4162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4163 fra
.me
.file
= LOCATE_compiling_icode
;
4165 fra
.me
.meth
= LOCATE_compiling_icode___IInitAttributes___inner_compile_to_c
;
4166 fra
.me
.has_broke
= 0;
4167 fra
.me
.REG_size
= 4;
4168 fra
.me
.REG
[0] = NIT_NULL
;
4169 fra
.me
.REG
[1] = NIT_NULL
;
4170 fra
.me
.REG
[2] = NIT_NULL
;
4171 fra
.me
.REG
[3] = NIT_NULL
;
4175 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4176 /* ./compiling//compiling_icode.nit:585 */
4177 if (!once_value_1
) {
4178 fra
.me
.REG
[3] = BOX_NativeString("INIT_ATTRIBUTES__");
4179 REGB0
= TAG_Int(17);
4180 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4181 once_value_1
= fra
.me
.REG
[3];
4182 register_static_object(&once_value_1
);
4183 } else fra
.me
.REG
[3] = once_value_1
;
4184 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4185 fra
.me
.REG
[3] = CALL_icode_base___IInitAttributes___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4186 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4187 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4188 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4189 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4190 if (!once_value_2
) {
4191 fra
.me
.REG
[3] = BOX_NativeString("(");
4193 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4194 once_value_2
= fra
.me
.REG
[3];
4195 register_static_object(&once_value_2
);
4196 } else fra
.me
.REG
[3] = once_value_2
;
4197 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4198 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4199 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4200 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4201 if (!once_value_3
) {
4202 fra
.me
.REG
[0] = BOX_NativeString(")");
4204 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4205 once_value_3
= fra
.me
.REG
[0];
4206 register_static_object(&once_value_3
);
4207 } else fra
.me
.REG
[0] = once_value_3
;
4208 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4209 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4212 stack_frame_head
= fra
.me
.prev
;
4213 return fra
.me
.REG
[2];
4215 val_t
compiling_icode___IStaticCall___compile_call_to_c(val_t p0
, val_t p1
, val_t p2
){
4216 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4219 static val_t once_value_1
; /* Once value */
4220 static val_t once_value_2
; /* Once value */
4221 static val_t once_value_3
; /* Once value */
4222 static val_t once_value_4
; /* Once value */
4223 static val_t once_value_5
; /* Once value */
4224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4225 fra
.me
.file
= LOCATE_compiling_icode
;
4227 fra
.me
.meth
= LOCATE_compiling_icode___IStaticCall___compile_call_to_c
;
4228 fra
.me
.has_broke
= 0;
4229 fra
.me
.REG_size
= 4;
4230 fra
.me
.REG
[0] = NIT_NULL
;
4231 fra
.me
.REG
[1] = NIT_NULL
;
4232 fra
.me
.REG
[2] = NIT_NULL
;
4233 fra
.me
.REG
[3] = NIT_NULL
;
4237 fra
.me
.REG
[1] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4238 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4239 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4240 /* ./compiling//compiling_icode.nit:593 */
4241 if (UNTAG_Bool(REGB0
)) {
4242 if (!once_value_1
) {
4243 fra
.me
.REG
[1] = BOX_NativeString("init_table");
4244 REGB0
= TAG_Int(10);
4245 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
4246 once_value_1
= fra
.me
.REG
[1];
4247 register_static_object(&once_value_1
);
4248 } else fra
.me
.REG
[1] = once_value_1
;
4249 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4252 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
4253 /* ./compiling//compiling_icode.nit:594 */
4254 if (!once_value_2
) {
4255 fra
.me
.REG
[3] = BOX_NativeString("");
4257 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4258 once_value_2
= fra
.me
.REG
[3];
4259 register_static_object(&once_value_2
);
4260 } else fra
.me
.REG
[3] = once_value_2
;
4261 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4262 fra
.me
.REG
[0] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4263 fra
.me
.REG
[0] = CALL_compiling_base___MMLocalProperty___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4264 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4265 if (!once_value_3
) {
4266 fra
.me
.REG
[0] = BOX_NativeString("(");
4268 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4269 once_value_3
= fra
.me
.REG
[0];
4270 register_static_object(&once_value_3
);
4271 } else fra
.me
.REG
[0] = once_value_3
;
4272 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4273 if (!once_value_4
) {
4274 fra
.me
.REG
[0] = BOX_NativeString(", ");
4276 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4277 once_value_4
= fra
.me
.REG
[0];
4278 register_static_object(&once_value_4
);
4279 } else fra
.me
.REG
[0] = once_value_4
;
4280 fra
.me
.REG
[0] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4281 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4282 if (!once_value_5
) {
4283 fra
.me
.REG
[0] = BOX_NativeString(")");
4285 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4286 once_value_5
= fra
.me
.REG
[0];
4287 register_static_object(&once_value_5
);
4288 } else fra
.me
.REG
[0] = once_value_5
;
4289 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4290 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4293 stack_frame_head
= fra
.me
.prev
;
4294 return fra
.me
.REG
[1];
4296 val_t
compiling_icode___INative___inner_compile_to_c(val_t p0
, val_t p1
){
4297 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4302 static val_t once_value_2
; /* Once value */
4303 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4304 fra
.me
.file
= LOCATE_compiling_icode
;
4306 fra
.me
.meth
= LOCATE_compiling_icode___INative___inner_compile_to_c
;
4307 fra
.me
.has_broke
= 0;
4308 fra
.me
.REG_size
= 7;
4309 fra
.me
.REG
[0] = NIT_NULL
;
4310 fra
.me
.REG
[1] = NIT_NULL
;
4311 fra
.me
.REG
[2] = NIT_NULL
;
4312 fra
.me
.REG
[3] = NIT_NULL
;
4313 fra
.me
.REG
[4] = NIT_NULL
;
4314 fra
.me
.REG
[5] = NIT_NULL
;
4315 fra
.me
.REG
[6] = NIT_NULL
;
4318 fra
.me
.REG
[2] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4319 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4320 /* ./compiling//compiling_icode.nit:601 */
4321 if (UNTAG_Bool(REGB0
)) {
4322 fra
.me
.REG
[2] = CALL_icode_base___INative___code(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4323 /* ./compiling//compiling_icode.nit:602 */
4326 fra
.me
.REG
[3] = NEW_Buffer_string___Buffer___init();
4328 fra
.me
.REG
[4] = CALL_icode_base___INative___code(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4329 /* ./compiling//compiling_icode.nit:606 */
4330 if (!once_value_2
) {
4331 fra
.me
.REG
[5] = BOX_NativeString("@@@");
4333 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
4334 once_value_2
= fra
.me
.REG
[5];
4335 register_static_object(&once_value_2
);
4336 } else fra
.me
.REG
[5] = once_value_2
;
4337 fra
.me
.REG
[5] = CALL_string_search___String___split_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4338 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4339 /* ./compiling//compiling_icode.nit:607 */
4341 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4342 if (UNTAG_Bool(REGB1
)) {
4343 fra
.me
.REG
[6] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4344 /* ./compiling//compiling_icode.nit:608 */
4345 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4346 fra
.me
.REG
[6] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4347 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4348 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4349 /* ./compiling//compiling_icode.nit:609 */
4350 if (UNTAG_Bool(REGB1
)) {
4351 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4352 /* ./../lib/standard//collection//array.nit:23 */
4353 if (UNTAG_Bool(REGB1
)) {
4355 fprintf(stderr
, "Uninitialized attribute %s", "_length");
4356 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
4359 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4361 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4362 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
4363 /* ./compiling//compiling_icode.nit:609 */
4365 REGB1
= TAG_Bool(false);
4368 if (UNTAG_Bool(REGB2
)) {
4369 fra
.me
.REG
[6] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4370 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
4371 fra
.me
.REG
[6] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4372 /* ./compiling//compiling_icode.nit:610 */
4373 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4376 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4378 /* ./compiling//compiling_icode.nit:612 */
4380 /* ./compiling//compiling_icode.nit:607 */
4383 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4386 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4387 fra
.me
.REG
[2] = fra
.me
.REG
[3];
4388 /* ./compiling//compiling_icode.nit:614 */
4392 stack_frame_head
= fra
.me
.prev
;
4393 return fra
.me
.REG
[2];
4395 val_t
compiling_icode___IAbort___inner_compile_to_c(val_t p0
, val_t p1
){
4396 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4400 static val_t once_value_1
; /* Once value */
4401 static val_t once_value_2
; /* Once value */
4402 static val_t once_value_3
; /* Once value */
4403 static val_t once_value_5
; /* Once value */
4404 static val_t once_value_6
; /* Once value */
4405 static val_t once_value_7
; /* Once value */
4406 static val_t once_value_8
; /* Once value */
4407 static val_t once_value_9
; /* Once value */
4408 static val_t once_value_10
; /* Once value */
4409 static val_t once_value_11
; /* Once value */
4410 static val_t once_value_12
; /* Once value */
4411 static val_t once_value_13
; /* Once value */
4412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4413 fra
.me
.file
= LOCATE_compiling_icode
;
4415 fra
.me
.meth
= LOCATE_compiling_icode___IAbort___inner_compile_to_c
;
4416 fra
.me
.has_broke
= 0;
4417 fra
.me
.REG_size
= 7;
4418 fra
.me
.REG
[0] = NIT_NULL
;
4419 fra
.me
.REG
[1] = NIT_NULL
;
4420 fra
.me
.REG
[2] = NIT_NULL
;
4421 fra
.me
.REG
[3] = NIT_NULL
;
4422 fra
.me
.REG
[4] = NIT_NULL
;
4423 fra
.me
.REG
[5] = NIT_NULL
;
4424 fra
.me
.REG
[6] = NIT_NULL
;
4427 /* ./compiling//compiling_icode.nit:622 */
4428 if (!once_value_1
) {
4429 fra
.me
.REG
[2] = BOX_NativeString("fprintf(stderr");
4430 REGB0
= TAG_Int(14);
4431 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
4432 once_value_1
= fra
.me
.REG
[2];
4433 register_static_object(&once_value_1
);
4434 } else fra
.me
.REG
[2] = once_value_1
;
4435 fra
.me
.REG
[2] = NEW_Buffer_string___Buffer___from(fra
.me
.REG
[2]);
4436 fra
.me
.REG
[3] = CALL_icode_base___IAbort___texts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4437 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4438 /* ./compiling//compiling_icode.nit:623 */
4440 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4441 if (UNTAG_Bool(REGB0
)) {
4442 fra
.me
.REG
[4] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4444 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4445 /* ./compiling//compiling_icode.nit:624 */
4446 if (!once_value_2
) {
4447 fra
.me
.REG
[6] = BOX_NativeString(", \"");
4449 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4450 once_value_2
= fra
.me
.REG
[6];
4451 register_static_object(&once_value_2
);
4452 } else fra
.me
.REG
[6] = once_value_2
;
4453 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4454 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4455 if (!once_value_3
) {
4456 fra
.me
.REG
[4] = BOX_NativeString("\"");
4458 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
4459 once_value_3
= fra
.me
.REG
[4];
4460 register_static_object(&once_value_3
);
4461 } else fra
.me
.REG
[4] = once_value_3
;
4462 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4463 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4464 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4466 /* ./compiling//compiling_icode.nit:623 */
4469 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4472 /* ./compiling//compiling_icode.nit:626 */
4473 if (!once_value_5
) {
4474 fra
.me
.REG
[3] = BOX_NativeString(");");
4476 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4477 once_value_5
= fra
.me
.REG
[3];
4478 register_static_object(&once_value_5
);
4479 } else fra
.me
.REG
[3] = once_value_5
;
4480 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4481 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4482 /* ./compiling//compiling_icode.nit:627 */
4483 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4484 fra
.me
.REG
[3] = CALL_icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4485 /* ./compiling//compiling_icode.nit:630 */
4486 if (!once_value_6
) {
4487 fra
.me
.REG
[5] = BOX_NativeString("fprintf(stderr, \" (%s");
4488 REGB0
= TAG_Int(21);
4489 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4490 once_value_6
= fra
.me
.REG
[5];
4491 register_static_object(&once_value_6
);
4492 } else fra
.me
.REG
[5] = once_value_6
;
4493 fra
.me
.REG
[5] = NEW_Buffer_string___Buffer___from(fra
.me
.REG
[5]);
4494 fra
.me
.REG
[2] = fra
.me
.REG
[5];
4495 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4496 /* ./compiling//compiling_icode.nit:631 */
4497 if (UNTAG_Bool(REGB0
)) {
4499 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4500 if (UNTAG_Bool(REGB1
)) {
4501 REGB1
= TAG_Bool(false);
4504 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4508 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4509 if (UNTAG_Bool(REGB0
)) {
4510 /* ./compiling//compiling_icode.nit:632 */
4511 if (!once_value_7
) {
4512 fra
.me
.REG
[5] = BOX_NativeString(":%d");
4514 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4515 once_value_7
= fra
.me
.REG
[5];
4516 register_static_object(&once_value_7
);
4517 } else fra
.me
.REG
[5] = once_value_7
;
4518 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4521 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4522 /* ./compiling//compiling_icode.nit:634 */
4523 if (!once_value_8
) {
4524 fra
.me
.REG
[4] = BOX_NativeString(")\\n\", LOCATE_");
4525 REGB0
= TAG_Int(13);
4526 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
4527 once_value_8
= fra
.me
.REG
[4];
4528 register_static_object(&once_value_8
);
4529 } else fra
.me
.REG
[4] = once_value_8
;
4530 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4531 fra
.me
.REG
[0] = CALL_icode_base___IAbort___module_location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4532 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4533 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4534 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4535 if (!once_value_9
) {
4536 fra
.me
.REG
[0] = BOX_NativeString("");
4538 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4539 once_value_9
= fra
.me
.REG
[0];
4540 register_static_object(&once_value_9
);
4541 } else fra
.me
.REG
[0] = once_value_9
;
4542 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4543 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4544 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4545 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4546 /* ./compiling//compiling_icode.nit:635 */
4547 if (UNTAG_Bool(REGB0
)) {
4549 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4550 if (UNTAG_Bool(REGB1
)) {
4551 REGB1
= TAG_Bool(false);
4554 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4558 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4559 if (UNTAG_Bool(REGB0
)) {
4561 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4562 /* ./compiling//compiling_icode.nit:636 */
4563 if (!once_value_10
) {
4564 fra
.me
.REG
[0] = BOX_NativeString(", ");
4566 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4567 once_value_10
= fra
.me
.REG
[0];
4568 register_static_object(&once_value_10
);
4569 } else fra
.me
.REG
[0] = once_value_10
;
4570 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4571 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4572 if (UNTAG_Bool(REGB0
)) {
4573 fprintf(stderr
, "Reciever is null");
4574 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 636);
4577 REGB0
= CALL_location___Location___line_start(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4578 fra
.me
.REG
[3] = CALL_string___Object___to_s(REGB0
)(REGB0
);
4579 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4580 if (!once_value_11
) {
4581 fra
.me
.REG
[3] = BOX_NativeString("");
4583 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4584 once_value_11
= fra
.me
.REG
[3];
4585 register_static_object(&once_value_11
);
4586 } else fra
.me
.REG
[3] = once_value_11
;
4587 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4588 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4589 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4591 /* ./compiling//compiling_icode.nit:638 */
4592 if (!once_value_12
) {
4593 fra
.me
.REG
[5] = BOX_NativeString(");");
4595 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4596 once_value_12
= fra
.me
.REG
[5];
4597 register_static_object(&once_value_12
);
4598 } else fra
.me
.REG
[5] = once_value_12
;
4599 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
4600 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4601 /* ./compiling//compiling_icode.nit:639 */
4602 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4603 /* ./compiling//compiling_icode.nit:641 */
4604 if (!once_value_13
) {
4605 fra
.me
.REG
[2] = BOX_NativeString("nit_exit(1);");
4606 REGB0
= TAG_Int(12);
4607 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
4608 once_value_13
= fra
.me
.REG
[2];
4609 register_static_object(&once_value_13
);
4610 } else fra
.me
.REG
[2] = once_value_13
;
4611 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4612 fra
.me
.REG
[2] = NIT_NULL
;
4613 /* ./compiling//compiling_icode.nit:642 */
4616 stack_frame_head
= fra
.me
.prev
;
4617 return fra
.me
.REG
[2];
4619 val_t
compiling_icode___IMove___inner_compile_to_c(val_t p0
, val_t p1
){
4620 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4622 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4623 fra
.me
.file
= LOCATE_compiling_icode
;
4625 fra
.me
.meth
= LOCATE_compiling_icode___IMove___inner_compile_to_c
;
4626 fra
.me
.has_broke
= 0;
4627 fra
.me
.REG_size
= 2;
4628 fra
.me
.REG
[0] = NIT_NULL
;
4629 fra
.me
.REG
[1] = NIT_NULL
;
4632 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4633 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4634 /* ./compiling//compiling_icode.nit:649 */
4637 stack_frame_head
= fra
.me
.prev
;
4638 return fra
.me
.REG
[0];
4640 val_t
compiling_icode___IAttrRead___inner_compile_to_c(val_t p0
, val_t p1
){
4641 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4644 static val_t once_value_1
; /* Once value */
4645 static val_t once_value_2
; /* Once value */
4646 static val_t once_value_3
; /* Once value */
4647 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4648 fra
.me
.file
= LOCATE_compiling_icode
;
4650 fra
.me
.meth
= LOCATE_compiling_icode___IAttrRead___inner_compile_to_c
;
4651 fra
.me
.has_broke
= 0;
4652 fra
.me
.REG_size
= 4;
4653 fra
.me
.REG
[0] = NIT_NULL
;
4654 fra
.me
.REG
[1] = NIT_NULL
;
4655 fra
.me
.REG
[2] = NIT_NULL
;
4656 fra
.me
.REG
[3] = NIT_NULL
;
4660 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4661 /* ./compiling//compiling_icode.nit:656 */
4662 if (!once_value_1
) {
4663 fra
.me
.REG
[3] = BOX_NativeString("");
4665 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4666 once_value_1
= fra
.me
.REG
[3];
4667 register_static_object(&once_value_1
);
4668 } else fra
.me
.REG
[3] = once_value_1
;
4669 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4670 fra
.me
.REG
[3] = CALL_icode_base___IAttrRead___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4671 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4672 fra
.me
.REG
[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4673 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4674 if (!once_value_2
) {
4675 fra
.me
.REG
[3] = BOX_NativeString("(");
4677 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4678 once_value_2
= fra
.me
.REG
[3];
4679 register_static_object(&once_value_2
);
4680 } else fra
.me
.REG
[3] = once_value_2
;
4681 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4682 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4683 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4684 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4685 if (!once_value_3
) {
4686 fra
.me
.REG
[0] = BOX_NativeString(")");
4688 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4689 once_value_3
= fra
.me
.REG
[0];
4690 register_static_object(&once_value_3
);
4691 } else fra
.me
.REG
[0] = once_value_3
;
4692 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4693 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4696 stack_frame_head
= fra
.me
.prev
;
4697 return fra
.me
.REG
[2];
4699 val_t
compiling_icode___IAttrIsset___inner_compile_to_c(val_t p0
, val_t p1
){
4700 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4703 static val_t once_value_1
; /* Once value */
4704 static val_t once_value_2
; /* Once value */
4705 static val_t once_value_3
; /* Once value */
4706 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4707 fra
.me
.file
= LOCATE_compiling_icode
;
4709 fra
.me
.meth
= LOCATE_compiling_icode___IAttrIsset___inner_compile_to_c
;
4710 fra
.me
.has_broke
= 0;
4711 fra
.me
.REG_size
= 4;
4712 fra
.me
.REG
[0] = NIT_NULL
;
4713 fra
.me
.REG
[1] = NIT_NULL
;
4714 fra
.me
.REG
[2] = NIT_NULL
;
4715 fra
.me
.REG
[3] = NIT_NULL
;
4719 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4720 /* ./compiling//compiling_icode.nit:663 */
4721 if (!once_value_1
) {
4722 fra
.me
.REG
[3] = BOX_NativeString("TAG_Bool(");
4724 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4725 once_value_1
= fra
.me
.REG
[3];
4726 register_static_object(&once_value_1
);
4727 } else fra
.me
.REG
[3] = once_value_1
;
4728 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4729 fra
.me
.REG
[3] = CALL_icode_base___IAttrIsset___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4730 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4731 fra
.me
.REG
[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4732 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4733 if (!once_value_2
) {
4734 fra
.me
.REG
[3] = BOX_NativeString("(");
4736 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4737 once_value_2
= fra
.me
.REG
[3];
4738 register_static_object(&once_value_2
);
4739 } else fra
.me
.REG
[3] = once_value_2
;
4740 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4741 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4742 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4743 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4744 if (!once_value_3
) {
4745 fra
.me
.REG
[0] = BOX_NativeString(")!=NIT_NULL)");
4746 REGB0
= TAG_Int(12);
4747 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4748 once_value_3
= fra
.me
.REG
[0];
4749 register_static_object(&once_value_3
);
4750 } else fra
.me
.REG
[0] = once_value_3
;
4751 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4752 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4755 stack_frame_head
= fra
.me
.prev
;
4756 return fra
.me
.REG
[2];
4758 val_t
compiling_icode___IAttrWrite___inner_compile_to_c(val_t p0
, val_t p1
){
4759 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4762 static val_t once_value_1
; /* Once value */
4763 static val_t once_value_2
; /* Once value */
4764 static val_t once_value_3
; /* Once value */
4765 static val_t once_value_4
; /* Once value */
4766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4767 fra
.me
.file
= LOCATE_compiling_icode
;
4769 fra
.me
.meth
= LOCATE_compiling_icode___IAttrWrite___inner_compile_to_c
;
4770 fra
.me
.has_broke
= 0;
4771 fra
.me
.REG_size
= 4;
4772 fra
.me
.REG
[0] = NIT_NULL
;
4773 fra
.me
.REG
[1] = NIT_NULL
;
4774 fra
.me
.REG
[2] = NIT_NULL
;
4775 fra
.me
.REG
[3] = NIT_NULL
;
4779 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4780 /* ./compiling//compiling_icode.nit:670 */
4781 if (!once_value_1
) {
4782 fra
.me
.REG
[3] = BOX_NativeString("");
4784 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4785 once_value_1
= fra
.me
.REG
[3];
4786 register_static_object(&once_value_1
);
4787 } else fra
.me
.REG
[3] = once_value_1
;
4788 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4789 fra
.me
.REG
[3] = CALL_icode_base___IAttrWrite___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4790 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4791 fra
.me
.REG
[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4792 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4793 if (!once_value_2
) {
4794 fra
.me
.REG
[3] = BOX_NativeString("(");
4796 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4797 once_value_2
= fra
.me
.REG
[3];
4798 register_static_object(&once_value_2
);
4799 } else fra
.me
.REG
[3] = once_value_2
;
4800 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4801 fra
.me
.REG
[3] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4802 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4803 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4804 if (!once_value_3
) {
4805 fra
.me
.REG
[3] = BOX_NativeString(") = ");
4807 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4808 once_value_3
= fra
.me
.REG
[3];
4809 register_static_object(&once_value_3
);
4810 } else fra
.me
.REG
[3] = once_value_3
;
4811 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4812 fra
.me
.REG
[0] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4813 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4814 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4815 if (!once_value_4
) {
4816 fra
.me
.REG
[0] = BOX_NativeString(";");
4818 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4819 once_value_4
= fra
.me
.REG
[0];
4820 register_static_object(&once_value_4
);
4821 } else fra
.me
.REG
[0] = once_value_4
;
4822 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4823 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4824 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4825 fra
.me
.REG
[2] = NIT_NULL
;
4826 /* ./compiling//compiling_icode.nit:671 */
4829 stack_frame_head
= fra
.me
.prev
;
4830 return fra
.me
.REG
[2];
4832 val_t
compiling_icode___ITypeCheck___inner_compile_to_c(val_t p0
, val_t p1
){
4833 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4837 static val_t once_value_1
; /* Once value */
4838 static val_t once_value_2
; /* Once value */
4839 static val_t once_value_3
; /* Once value */
4840 static val_t once_value_4
; /* Once value */
4841 static val_t once_value_5
; /* Once value */
4842 static val_t once_value_7
; /* Once value */
4843 static val_t once_value_8
; /* Once value */
4844 static val_t once_value_9
; /* Once value */
4845 static val_t once_value_10
; /* Once value */
4846 static val_t once_value_11
; /* Once value */
4847 static val_t once_value_12
; /* Once value */
4848 static val_t once_value_13
; /* Once value */
4849 static val_t once_value_14
; /* Once value */
4850 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4851 fra
.me
.file
= LOCATE_compiling_icode
;
4853 fra
.me
.meth
= LOCATE_compiling_icode___ITypeCheck___inner_compile_to_c
;
4854 fra
.me
.has_broke
= 0;
4855 fra
.me
.REG_size
= 7;
4856 fra
.me
.REG
[0] = NIT_NULL
;
4857 fra
.me
.REG
[1] = NIT_NULL
;
4858 fra
.me
.REG
[2] = NIT_NULL
;
4859 fra
.me
.REG
[3] = NIT_NULL
;
4860 fra
.me
.REG
[4] = NIT_NULL
;
4861 fra
.me
.REG
[5] = NIT_NULL
;
4862 fra
.me
.REG
[6] = NIT_NULL
;
4865 fra
.me
.REG
[2] = CALL_icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4866 fra
.me
.REG
[2] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4867 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4868 fra
.me
.REG
[3] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4869 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4870 /* ./compiling//compiling_icode.nit:681 */
4871 if (!once_value_1
) {
4872 fra
.me
.REG
[1] = BOX_NativeString("");
4874 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
4875 once_value_1
= fra
.me
.REG
[1];
4876 register_static_object(&once_value_1
);
4877 } else fra
.me
.REG
[1] = once_value_1
;
4878 fra
.me
.REG
[4] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4879 fra
.me
.REG
[4] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4880 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4881 /* ./compiling//compiling_icode.nit:682 */
4882 if (UNTAG_Bool(REGB0
)) {
4883 fra
.me
.REG
[4] = CALL_icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4884 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4885 /* ./compiling//compiling_icode.nit:683 */
4886 if (UNTAG_Bool(REGB0
)) {
4888 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4889 /* ./compiling//compiling_icode.nit:684 */
4890 if (!once_value_2
) {
4891 fra
.me
.REG
[5] = BOX_NativeString("(");
4893 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4894 once_value_2
= fra
.me
.REG
[5];
4895 register_static_object(&once_value_2
);
4896 } else fra
.me
.REG
[5] = once_value_2
;
4897 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4898 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4899 if (!once_value_3
) {
4900 fra
.me
.REG
[5] = BOX_NativeString("==NIT_NULL) || ");
4901 REGB0
= TAG_Int(15);
4902 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4903 once_value_3
= fra
.me
.REG
[5];
4904 register_static_object(&once_value_3
);
4905 } else fra
.me
.REG
[5] = once_value_3
;
4906 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4907 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4908 fra
.me
.REG
[1] = fra
.me
.REG
[4];
4910 fra
.me
.REG
[4] = CALL_icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4911 fra
.me
.REG
[4] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4912 fra
.me
.REG
[5] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4913 fra
.me
.REG
[5] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4914 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[5]));
4915 /* ./compiling//compiling_icode.nit:685 */
4916 if (UNTAG_Bool(REGB0
)) {
4918 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4921 if (UNTAG_Bool(REGB0
)) {
4923 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4924 /* ./compiling//compiling_icode.nit:686 */
4925 if (!once_value_4
) {
4926 fra
.me
.REG
[4] = BOX_NativeString("TAG_Bool(");
4928 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
4929 once_value_4
= fra
.me
.REG
[4];
4930 register_static_object(&once_value_4
);
4931 } else fra
.me
.REG
[4] = once_value_4
;
4932 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4933 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4934 if (!once_value_5
) {
4935 fra
.me
.REG
[4] = BOX_NativeString("!=NIT_NULL)");
4936 REGB0
= TAG_Int(11);
4937 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
4938 once_value_5
= fra
.me
.REG
[4];
4939 register_static_object(&once_value_5
);
4940 } else fra
.me
.REG
[4] = once_value_5
;
4941 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4942 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4946 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4947 /* ./compiling//compiling_icode.nit:688 */
4948 if (!once_value_7
) {
4949 fra
.me
.REG
[6] = BOX_NativeString("(");
4951 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4952 once_value_7
= fra
.me
.REG
[6];
4953 register_static_object(&once_value_7
);
4954 } else fra
.me
.REG
[6] = once_value_7
;
4955 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4956 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4957 if (!once_value_8
) {
4958 fra
.me
.REG
[6] = BOX_NativeString("!=NIT_NULL) && ");
4959 REGB0
= TAG_Int(15);
4960 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4961 once_value_8
= fra
.me
.REG
[6];
4962 register_static_object(&once_value_8
);
4963 } else fra
.me
.REG
[6] = once_value_8
;
4964 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4965 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4966 fra
.me
.REG
[1] = fra
.me
.REG
[4];
4970 REGB0
= TAG_Int(11);
4971 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4972 /* ./compiling//compiling_icode.nit:691 */
4973 if (!once_value_9
) {
4974 fra
.me
.REG
[6] = BOX_NativeString("TAG_Bool(");
4976 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4977 once_value_9
= fra
.me
.REG
[6];
4978 register_static_object(&once_value_9
);
4979 } else fra
.me
.REG
[6] = once_value_9
;
4980 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4981 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[1]);
4982 if (!once_value_10
) {
4983 fra
.me
.REG
[1] = BOX_NativeString("VAL_ISA(");
4985 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
4986 once_value_10
= fra
.me
.REG
[1];
4987 register_static_object(&once_value_10
);
4988 } else fra
.me
.REG
[1] = once_value_10
;
4989 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[1]);
4990 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4991 if (!once_value_11
) {
4992 fra
.me
.REG
[3] = BOX_NativeString(", ");
4994 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4995 once_value_11
= fra
.me
.REG
[3];
4996 register_static_object(&once_value_11
);
4997 } else fra
.me
.REG
[3] = once_value_11
;
4998 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4999 fra
.me
.REG
[3] = CALL_compiling_base___MMGlobalClass___color_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5000 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5001 if (!once_value_12
) {
5002 fra
.me
.REG
[3] = BOX_NativeString(", ");
5004 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5005 once_value_12
= fra
.me
.REG
[3];
5006 register_static_object(&once_value_12
);
5007 } else fra
.me
.REG
[3] = once_value_12
;
5008 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5009 fra
.me
.REG
[2] = CALL_compiling_base___MMGlobalClass___id_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5010 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5011 if (!once_value_13
) {
5012 fra
.me
.REG
[2] = BOX_NativeString(")) /*cast ");
5013 REGB0
= TAG_Int(10);
5014 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5015 once_value_13
= fra
.me
.REG
[2];
5016 register_static_object(&once_value_13
);
5017 } else fra
.me
.REG
[2] = once_value_13
;
5018 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5019 fra
.me
.REG
[0] = CALL_icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5020 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5021 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5022 if (!once_value_14
) {
5023 fra
.me
.REG
[0] = BOX_NativeString("*/");
5025 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
5026 once_value_14
= fra
.me
.REG
[0];
5027 register_static_object(&once_value_14
);
5028 } else fra
.me
.REG
[0] = once_value_14
;
5029 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
5030 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5031 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5034 stack_frame_head
= fra
.me
.prev
;
5035 return fra
.me
.REG
[5];
5037 val_t
compiling_icode___IIs___inner_compile_to_c(val_t p0
, val_t p1
){
5038 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5041 static val_t once_value_1
; /* Once value */
5042 static val_t once_value_3
; /* Once value */
5043 static val_t once_value_4
; /* Once value */
5044 static val_t once_value_5
; /* Once value */
5045 static val_t once_value_6
; /* Once value */
5046 static val_t once_value_7
; /* Once value */
5047 static val_t once_value_8
; /* Once value */
5048 static val_t once_value_9
; /* Once value */
5049 static val_t once_value_10
; /* Once value */
5050 static val_t once_value_11
; /* Once value */
5051 static val_t once_value_12
; /* Once value */
5052 static val_t once_value_13
; /* Once value */
5053 static val_t once_value_14
; /* Once value */
5054 static val_t once_value_15
; /* Once value */
5055 static val_t once_value_16
; /* Once value */
5056 static val_t once_value_17
; /* Once value */
5057 static val_t once_value_18
; /* Once value */
5058 static val_t once_value_19
; /* Once value */
5059 static val_t once_value_20
; /* Once value */
5060 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5061 fra
.me
.file
= LOCATE_compiling_icode
;
5063 fra
.me
.meth
= LOCATE_compiling_icode___IIs___inner_compile_to_c
;
5064 fra
.me
.has_broke
= 0;
5065 fra
.me
.REG_size
= 7;
5066 fra
.me
.REG
[0] = NIT_NULL
;
5067 fra
.me
.REG
[1] = NIT_NULL
;
5068 fra
.me
.REG
[2] = NIT_NULL
;
5069 fra
.me
.REG
[3] = NIT_NULL
;
5070 fra
.me
.REG
[4] = NIT_NULL
;
5071 fra
.me
.REG
[5] = NIT_NULL
;
5072 fra
.me
.REG
[6] = NIT_NULL
;
5075 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5076 fra
.me
.REG
[2] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5077 fra
.me
.REG
[3] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5078 fra
.me
.REG
[3] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5079 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
5080 /* ./compiling//compiling_icode.nit:700 */
5081 if (UNTAG_Bool(REGB0
)) {
5082 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
5083 /* ./compiling//compiling_icode.nit:701 */
5084 if (UNTAG_Bool(REGB0
)) {
5085 /* ./compiling//compiling_icode.nit:702 */
5086 if (!once_value_1
) {
5087 fra
.me
.REG
[4] = BOX_NativeString("TAG_Bool(1)");
5088 REGB0
= TAG_Int(11);
5089 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5090 once_value_1
= fra
.me
.REG
[4];
5091 register_static_object(&once_value_1
);
5092 } else fra
.me
.REG
[4] = once_value_1
;
5095 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5096 /* ./compiling//compiling_icode.nit:703 */
5097 if (UNTAG_Bool(REGB0
)) {
5099 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5100 /* ./compiling//compiling_icode.nit:704 */
5101 if (!once_value_3
) {
5102 fra
.me
.REG
[6] = BOX_NativeString("TAG_Bool(");
5104 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5105 once_value_3
= fra
.me
.REG
[6];
5106 register_static_object(&once_value_3
);
5107 } else fra
.me
.REG
[6] = once_value_3
;
5108 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5109 fra
.me
.REG
[6] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5110 fra
.me
.REG
[6] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5111 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5112 if (!once_value_4
) {
5113 fra
.me
.REG
[6] = BOX_NativeString("==NIT_NULL)");
5114 REGB0
= TAG_Int(11);
5115 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5116 once_value_4
= fra
.me
.REG
[6];
5117 register_static_object(&once_value_4
);
5118 } else fra
.me
.REG
[6] = once_value_4
;
5119 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5120 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5121 fra
.me
.REG
[4] = fra
.me
.REG
[5];
5124 /* ./compiling//compiling_icode.nit:706 */
5125 if (!once_value_5
) {
5126 fra
.me
.REG
[5] = BOX_NativeString("TAG_Bool(0)");
5127 REGB0
= TAG_Int(11);
5128 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5129 once_value_5
= fra
.me
.REG
[5];
5130 register_static_object(&once_value_5
);
5131 } else fra
.me
.REG
[5] = once_value_5
;
5132 fra
.me
.REG
[4] = fra
.me
.REG
[5];
5137 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5138 /* ./compiling//compiling_icode.nit:708 */
5139 if (UNTAG_Bool(REGB0
)) {
5140 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
5141 /* ./compiling//compiling_icode.nit:709 */
5142 if (UNTAG_Bool(REGB0
)) {
5144 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5145 /* ./compiling//compiling_icode.nit:710 */
5146 if (!once_value_6
) {
5147 fra
.me
.REG
[5] = BOX_NativeString("TAG_Bool(");
5149 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5150 once_value_6
= fra
.me
.REG
[5];
5151 register_static_object(&once_value_6
);
5152 } else fra
.me
.REG
[5] = once_value_6
;
5153 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5154 fra
.me
.REG
[5] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5155 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5156 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5157 if (!once_value_7
) {
5158 fra
.me
.REG
[5] = BOX_NativeString("==NIT_NULL)");
5159 REGB0
= TAG_Int(11);
5160 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5161 once_value_7
= fra
.me
.REG
[5];
5162 register_static_object(&once_value_7
);
5163 } else fra
.me
.REG
[5] = once_value_7
;
5164 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5165 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5166 fra
.me
.REG
[4] = fra
.me
.REG
[2];
5169 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5170 /* ./compiling//compiling_icode.nit:711 */
5171 if (UNTAG_Bool(REGB0
)) {
5173 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5174 /* ./compiling//compiling_icode.nit:712 */
5175 if (!once_value_8
) {
5176 fra
.me
.REG
[5] = BOX_NativeString("TAG_Bool(IS_EQUAL_NN(");
5177 REGB0
= TAG_Int(21);
5178 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5179 once_value_8
= fra
.me
.REG
[5];
5180 register_static_object(&once_value_8
);
5181 } else fra
.me
.REG
[5] = once_value_8
;
5182 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5183 fra
.me
.REG
[5] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5184 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5185 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5186 if (!once_value_9
) {
5187 fra
.me
.REG
[5] = BOX_NativeString(",");
5189 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5190 once_value_9
= fra
.me
.REG
[5];
5191 register_static_object(&once_value_9
);
5192 } else fra
.me
.REG
[5] = once_value_9
;
5193 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5194 fra
.me
.REG
[5] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5195 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5196 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5197 if (!once_value_10
) {
5198 fra
.me
.REG
[5] = BOX_NativeString("))");
5200 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5201 once_value_10
= fra
.me
.REG
[5];
5202 register_static_object(&once_value_10
);
5203 } else fra
.me
.REG
[5] = once_value_10
;
5204 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5205 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5206 fra
.me
.REG
[4] = fra
.me
.REG
[2];
5210 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5211 /* ./compiling//compiling_icode.nit:714 */
5212 if (!once_value_11
) {
5213 fra
.me
.REG
[5] = BOX_NativeString("TAG_Bool(IS_EQUAL_ON(");
5214 REGB0
= TAG_Int(21);
5215 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5216 once_value_11
= fra
.me
.REG
[5];
5217 register_static_object(&once_value_11
);
5218 } else fra
.me
.REG
[5] = once_value_11
;
5219 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5220 fra
.me
.REG
[5] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5221 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5222 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5223 if (!once_value_12
) {
5224 fra
.me
.REG
[5] = BOX_NativeString(",");
5226 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5227 once_value_12
= fra
.me
.REG
[5];
5228 register_static_object(&once_value_12
);
5229 } else fra
.me
.REG
[5] = once_value_12
;
5230 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5231 fra
.me
.REG
[5] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5232 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5233 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5234 if (!once_value_13
) {
5235 fra
.me
.REG
[5] = BOX_NativeString("))");
5237 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5238 once_value_13
= fra
.me
.REG
[5];
5239 register_static_object(&once_value_13
);
5240 } else fra
.me
.REG
[5] = once_value_13
;
5241 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5242 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5243 fra
.me
.REG
[4] = fra
.me
.REG
[2];
5248 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
5249 /* ./compiling//compiling_icode.nit:717 */
5250 if (UNTAG_Bool(REGB0
)) {
5251 /* ./compiling//compiling_icode.nit:718 */
5252 if (!once_value_14
) {
5253 fra
.me
.REG
[2] = BOX_NativeString("TAG_Bool(0)");
5254 REGB0
= TAG_Int(11);
5255 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5256 once_value_14
= fra
.me
.REG
[2];
5257 register_static_object(&once_value_14
);
5258 } else fra
.me
.REG
[2] = once_value_14
;
5259 fra
.me
.REG
[4] = fra
.me
.REG
[2];
5262 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5263 /* ./compiling//compiling_icode.nit:719 */
5264 if (UNTAG_Bool(REGB0
)) {
5266 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5267 /* ./compiling//compiling_icode.nit:720 */
5268 if (!once_value_15
) {
5269 fra
.me
.REG
[2] = BOX_NativeString("TAG_Bool(IS_EQUAL_ON(");
5270 REGB0
= TAG_Int(21);
5271 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5272 once_value_15
= fra
.me
.REG
[2];
5273 register_static_object(&once_value_15
);
5274 } else fra
.me
.REG
[2] = once_value_15
;
5275 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5276 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5277 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5278 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5279 if (!once_value_16
) {
5280 fra
.me
.REG
[2] = BOX_NativeString(",");
5282 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5283 once_value_16
= fra
.me
.REG
[2];
5284 register_static_object(&once_value_16
);
5285 } else fra
.me
.REG
[2] = once_value_16
;
5286 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5287 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5288 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5289 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5290 if (!once_value_17
) {
5291 fra
.me
.REG
[2] = BOX_NativeString("))");
5293 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5294 once_value_17
= fra
.me
.REG
[2];
5295 register_static_object(&once_value_17
);
5296 } else fra
.me
.REG
[2] = once_value_17
;
5297 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5298 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5299 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5303 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5304 /* ./compiling//compiling_icode.nit:722 */
5305 if (!once_value_18
) {
5306 fra
.me
.REG
[2] = BOX_NativeString("TAG_Bool(IS_EQUAL_OO(");
5307 REGB0
= TAG_Int(21);
5308 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5309 once_value_18
= fra
.me
.REG
[2];
5310 register_static_object(&once_value_18
);
5311 } else fra
.me
.REG
[2] = once_value_18
;
5312 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5313 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5314 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5315 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5316 if (!once_value_19
) {
5317 fra
.me
.REG
[2] = BOX_NativeString(",");
5319 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5320 once_value_19
= fra
.me
.REG
[2];
5321 register_static_object(&once_value_19
);
5322 } else fra
.me
.REG
[2] = once_value_19
;
5323 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5324 fra
.me
.REG
[0] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5325 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5326 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
5327 if (!once_value_20
) {
5328 fra
.me
.REG
[0] = BOX_NativeString("))");
5330 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
5331 once_value_20
= fra
.me
.REG
[0];
5332 register_static_object(&once_value_20
);
5333 } else fra
.me
.REG
[0] = once_value_20
;
5334 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
5335 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5336 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5343 stack_frame_head
= fra
.me
.prev
;
5344 return fra
.me
.REG
[4];
5346 val_t
compiling_icode___INot___inner_compile_to_c(val_t p0
, val_t p1
){
5347 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5350 static val_t once_value_1
; /* Once value */
5351 static val_t once_value_2
; /* Once value */
5352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5353 fra
.me
.file
= LOCATE_compiling_icode
;
5355 fra
.me
.meth
= LOCATE_compiling_icode___INot___inner_compile_to_c
;
5356 fra
.me
.has_broke
= 0;
5357 fra
.me
.REG_size
= 4;
5358 fra
.me
.REG
[0] = NIT_NULL
;
5359 fra
.me
.REG
[1] = NIT_NULL
;
5360 fra
.me
.REG
[2] = NIT_NULL
;
5361 fra
.me
.REG
[3] = NIT_NULL
;
5365 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5366 /* ./compiling//compiling_icode.nit:731 */
5367 if (!once_value_1
) {
5368 fra
.me
.REG
[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
5369 REGB0
= TAG_Int(21);
5370 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5371 once_value_1
= fra
.me
.REG
[3];
5372 register_static_object(&once_value_1
);
5373 } else fra
.me
.REG
[3] = once_value_1
;
5374 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5375 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5376 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5377 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5378 if (!once_value_2
) {
5379 fra
.me
.REG
[0] = BOX_NativeString("))");
5381 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
5382 once_value_2
= fra
.me
.REG
[0];
5383 register_static_object(&once_value_2
);
5384 } else fra
.me
.REG
[0] = once_value_2
;
5385 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5386 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5389 stack_frame_head
= fra
.me
.prev
;
5390 return fra
.me
.REG
[2];
5392 val_t
compiling_icode___IOnce___inner_compile_to_c(val_t p0
, val_t p1
){
5393 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5397 static val_t once_value_1
; /* Once value */
5398 static val_t once_value_2
; /* Once value */
5399 static val_t once_value_3
; /* Once value */
5400 static val_t once_value_4
; /* Once value */
5401 static val_t once_value_5
; /* Once value */
5402 static val_t once_value_6
; /* Once value */
5403 static val_t once_value_7
; /* Once value */
5404 static val_t once_value_8
; /* Once value */
5405 static val_t once_value_9
; /* Once value */
5406 static val_t once_value_10
; /* Once value */
5407 static val_t once_value_11
; /* Once value */
5408 static val_t once_value_12
; /* Once value */
5409 static val_t once_value_13
; /* Once value */
5410 static val_t once_value_14
; /* Once value */
5411 static val_t once_value_15
; /* Once value */
5412 static val_t once_value_16
; /* Once value */
5413 static val_t once_value_17
; /* Once value */
5414 static val_t once_value_18
; /* Once value */
5415 static val_t once_value_19
; /* Once value */
5416 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5417 fra
.me
.file
= LOCATE_compiling_icode
;
5419 fra
.me
.meth
= LOCATE_compiling_icode___IOnce___inner_compile_to_c
;
5420 fra
.me
.has_broke
= 0;
5421 fra
.me
.REG_size
= 5;
5422 fra
.me
.REG
[0] = NIT_NULL
;
5423 fra
.me
.REG
[1] = NIT_NULL
;
5424 fra
.me
.REG
[2] = NIT_NULL
;
5425 fra
.me
.REG
[3] = NIT_NULL
;
5426 fra
.me
.REG
[4] = NIT_NULL
;
5429 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___new_number(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5430 fra
.me
.REG
[2] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5431 REGB1
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
5432 /* ./compiling//compiling_icode.nit:739 */
5433 if (UNTAG_Bool(REGB1
)) {
5435 fprintf(stderr
, "Cast failed");
5436 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 739);
5439 fra
.me
.REG
[3] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5440 REGB1
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5441 /* ./compiling//compiling_icode.nit:740 */
5442 if (UNTAG_Bool(REGB1
)) {
5444 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5445 /* ./compiling//compiling_icode.nit:741 */
5446 if (!once_value_1
) {
5447 fra
.me
.REG
[4] = BOX_NativeString("static val_t once_value_");
5448 REGB1
= TAG_Int(24);
5449 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5450 once_value_1
= fra
.me
.REG
[4];
5451 register_static_object(&once_value_1
);
5452 } else fra
.me
.REG
[4] = once_value_1
;
5453 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5454 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5455 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5456 if (!once_value_2
) {
5457 fra
.me
.REG
[4] = BOX_NativeString("; static int once_bool_");
5458 REGB1
= TAG_Int(23);
5459 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5460 once_value_2
= fra
.me
.REG
[4];
5461 register_static_object(&once_value_2
);
5462 } else fra
.me
.REG
[4] = once_value_2
;
5463 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5464 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5465 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5466 if (!once_value_3
) {
5467 fra
.me
.REG
[4] = BOX_NativeString("; /* Once value */");
5468 REGB1
= TAG_Int(18);
5469 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5470 once_value_3
= fra
.me
.REG
[4];
5471 register_static_object(&once_value_3
);
5472 } else fra
.me
.REG
[4] = once_value_3
;
5473 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5474 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5475 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5477 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5478 /* ./compiling//compiling_icode.nit:742 */
5479 if (!once_value_4
) {
5480 fra
.me
.REG
[4] = BOX_NativeString("if (!once_bool_");
5481 REGB1
= TAG_Int(15);
5482 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5483 once_value_4
= fra
.me
.REG
[4];
5484 register_static_object(&once_value_4
);
5485 } else fra
.me
.REG
[4] = once_value_4
;
5486 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5487 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5488 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5489 if (!once_value_5
) {
5490 fra
.me
.REG
[4] = BOX_NativeString(") {");
5492 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5493 once_value_5
= fra
.me
.REG
[4];
5494 register_static_object(&once_value_5
);
5495 } else fra
.me
.REG
[4] = once_value_5
;
5496 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5497 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5498 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5501 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5502 /* ./compiling//compiling_icode.nit:745 */
5503 if (!once_value_6
) {
5504 fra
.me
.REG
[4] = BOX_NativeString("static val_t once_value_");
5505 REGB1
= TAG_Int(24);
5506 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5507 once_value_6
= fra
.me
.REG
[4];
5508 register_static_object(&once_value_6
);
5509 } else fra
.me
.REG
[4] = once_value_6
;
5510 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5511 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5512 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5513 if (!once_value_7
) {
5514 fra
.me
.REG
[4] = BOX_NativeString("; /* Once value */");
5515 REGB1
= TAG_Int(18);
5516 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5517 once_value_7
= fra
.me
.REG
[4];
5518 register_static_object(&once_value_7
);
5519 } else fra
.me
.REG
[4] = once_value_7
;
5520 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5521 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5522 CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5524 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5525 /* ./compiling//compiling_icode.nit:746 */
5526 if (!once_value_8
) {
5527 fra
.me
.REG
[4] = BOX_NativeString("if (!once_value_");
5528 REGB1
= TAG_Int(16);
5529 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5530 once_value_8
= fra
.me
.REG
[4];
5531 register_static_object(&once_value_8
);
5532 } else fra
.me
.REG
[4] = once_value_8
;
5533 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5534 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5535 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5536 if (!once_value_9
) {
5537 fra
.me
.REG
[4] = BOX_NativeString(") {");
5539 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5540 once_value_9
= fra
.me
.REG
[4];
5541 register_static_object(&once_value_9
);
5542 } else fra
.me
.REG
[4] = once_value_9
;
5543 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5544 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5545 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5547 /* ./compiling//compiling_icode.nit:748 */
5548 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5549 fra
.me
.REG
[3] = CALL_icode_base___IOnce___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5550 /* ./compiling//compiling_icode.nit:749 */
5551 CALL_compiling_icode___ICode___compile_to_c(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
5552 fra
.me
.REG
[0] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5553 REGB1
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
5554 /* ./compiling//compiling_icode.nit:750 */
5555 if (UNTAG_Bool(REGB1
)) {
5557 fprintf(stderr
, "Cast failed");
5558 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 750);
5561 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5563 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5564 /* ./compiling//compiling_icode.nit:751 */
5565 if (!once_value_10
) {
5566 fra
.me
.REG
[4] = BOX_NativeString("once_value_");
5567 REGB1
= TAG_Int(11);
5568 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5569 once_value_10
= fra
.me
.REG
[4];
5570 register_static_object(&once_value_10
);
5571 } else fra
.me
.REG
[4] = once_value_10
;
5572 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5573 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5574 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5575 if (!once_value_11
) {
5576 fra
.me
.REG
[4] = BOX_NativeString(" = ");
5578 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5579 once_value_11
= fra
.me
.REG
[4];
5580 register_static_object(&once_value_11
);
5581 } else fra
.me
.REG
[4] = once_value_11
;
5582 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5583 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[0]);
5584 if (!once_value_12
) {
5585 fra
.me
.REG
[4] = BOX_NativeString(";");
5587 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5588 once_value_12
= fra
.me
.REG
[4];
5589 register_static_object(&once_value_12
);
5590 } else fra
.me
.REG
[4] = once_value_12
;
5591 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5592 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5593 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5595 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5596 /* ./compiling//compiling_icode.nit:752 */
5597 if (!once_value_13
) {
5598 fra
.me
.REG
[4] = BOX_NativeString("register_static_object(&once_value_");
5599 REGB1
= TAG_Int(35);
5600 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5601 once_value_13
= fra
.me
.REG
[4];
5602 register_static_object(&once_value_13
);
5603 } else fra
.me
.REG
[4] = once_value_13
;
5604 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5605 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5606 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5607 if (!once_value_14
) {
5608 fra
.me
.REG
[4] = BOX_NativeString(");");
5610 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
5611 once_value_14
= fra
.me
.REG
[4];
5612 register_static_object(&once_value_14
);
5613 } else fra
.me
.REG
[4] = once_value_14
;
5614 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5615 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5616 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5617 fra
.me
.REG
[2] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5618 REGB1
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5619 /* ./compiling//compiling_icode.nit:753 */
5620 if (UNTAG_Bool(REGB1
)) {
5622 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB1
);
5623 if (!once_value_15
) {
5624 fra
.me
.REG
[3] = BOX_NativeString("once_bool_");
5625 REGB1
= TAG_Int(10);
5626 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5627 once_value_15
= fra
.me
.REG
[3];
5628 register_static_object(&once_value_15
);
5629 } else fra
.me
.REG
[3] = once_value_15
;
5630 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5631 fra
.me
.REG
[3] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5632 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5633 if (!once_value_16
) {
5634 fra
.me
.REG
[3] = BOX_NativeString(" = true;");
5636 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5637 once_value_16
= fra
.me
.REG
[3];
5638 register_static_object(&once_value_16
);
5639 } else fra
.me
.REG
[3] = once_value_16
;
5640 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5641 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5642 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5644 /* ./compiling//compiling_icode.nit:754 */
5645 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5647 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB1
);
5648 /* ./compiling//compiling_icode.nit:755 */
5649 if (!once_value_17
) {
5650 fra
.me
.REG
[3] = BOX_NativeString("} else ");
5652 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5653 once_value_17
= fra
.me
.REG
[3];
5654 register_static_object(&once_value_17
);
5655 } else fra
.me
.REG
[3] = once_value_17
;
5656 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5657 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
5658 if (!once_value_18
) {
5659 fra
.me
.REG
[3] = BOX_NativeString(" = once_value_");
5660 REGB1
= TAG_Int(14);
5661 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5662 once_value_18
= fra
.me
.REG
[3];
5663 register_static_object(&once_value_18
);
5664 } else fra
.me
.REG
[3] = once_value_18
;
5665 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5666 fra
.me
.REG
[3] = CALL_string___Object___to_s(REGB0
)(REGB0
);
5667 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5668 if (!once_value_19
) {
5669 fra
.me
.REG
[3] = BOX_NativeString(";");
5671 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5672 once_value_19
= fra
.me
.REG
[3];
5673 register_static_object(&once_value_19
);
5674 } else fra
.me
.REG
[3] = once_value_19
;
5675 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5676 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5677 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5678 /* ./compiling//compiling_icode.nit:756 */
5681 stack_frame_head
= fra
.me
.prev
;
5682 return fra
.me
.REG
[0];
5684 void compiling_icode___IClosCall___compile_to_c(val_t p0
, val_t p1
){
5685 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5689 static val_t once_value_1
; /* Once value */
5690 static val_t once_value_2
; /* Once value */
5691 static val_t once_value_3
; /* Once value */
5692 static val_t once_value_4
; /* Once value */
5693 static val_t once_value_5
; /* Once value */
5694 static val_t once_value_6
; /* Once value */
5695 static val_t once_value_7
; /* Once value */
5696 static val_t once_value_8
; /* Once value */
5697 static val_t once_value_9
; /* Once value */
5698 static val_t once_value_10
; /* Once value */
5699 static val_t once_value_11
; /* Once value */
5700 static val_t once_value_12
; /* Once value */
5701 static val_t once_value_13
; /* Once value */
5702 static val_t once_value_14
; /* Once value */
5703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5704 fra
.me
.file
= LOCATE_compiling_icode
;
5706 fra
.me
.meth
= LOCATE_compiling_icode___IClosCall___compile_to_c
;
5707 fra
.me
.has_broke
= 0;
5708 fra
.me
.REG_size
= 7;
5709 fra
.me
.REG
[0] = NIT_NULL
;
5710 fra
.me
.REG
[1] = NIT_NULL
;
5711 fra
.me
.REG
[2] = NIT_NULL
;
5712 fra
.me
.REG
[3] = NIT_NULL
;
5713 fra
.me
.REG
[4] = NIT_NULL
;
5714 fra
.me
.REG
[5] = NIT_NULL
;
5715 fra
.me
.REG
[6] = NIT_NULL
;
5718 fra
.me
.REG
[2] = CALL_icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5719 /* ./compiling//compiling_icode.nit:763 */
5720 CALL_compiling_icode___I2CCompilerVisitor___add_location(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5721 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5722 /* ./compiling//compiling_icode.nit:766 */
5723 if (UNTAG_Bool(REGB0
)) {
5725 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5726 /* ./compiling//compiling_icode.nit:767 */
5727 if (!once_value_1
) {
5728 fra
.me
.REG
[3] = BOX_NativeString("closctx->closure_funs[");
5729 REGB0
= TAG_Int(22);
5730 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5731 once_value_1
= fra
.me
.REG
[3];
5732 register_static_object(&once_value_1
);
5733 } else fra
.me
.REG
[3] = once_value_1
;
5734 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5735 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5736 fra
.me
.REG
[4] = CALL_icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5737 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5738 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5739 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5740 if (!once_value_2
) {
5741 fra
.me
.REG
[4] = BOX_NativeString("]");
5743 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5744 once_value_2
= fra
.me
.REG
[4];
5745 register_static_object(&once_value_2
);
5746 } else fra
.me
.REG
[4] = once_value_2
;
5747 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5748 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5750 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
5751 /* ./compiling//compiling_icode.nit:768 */
5752 if (!once_value_3
) {
5753 fra
.me
.REG
[3] = BOX_NativeString("closctx->closure_ctx");
5754 REGB0
= TAG_Int(20);
5755 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5756 once_value_3
= fra
.me
.REG
[3];
5757 register_static_object(&once_value_3
);
5758 } else fra
.me
.REG
[3] = once_value_3
;
5759 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5762 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5763 /* ./compiling//compiling_icode.nit:770 */
5764 if (!once_value_4
) {
5765 fra
.me
.REG
[5] = BOX_NativeString("CREG[");
5767 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5768 once_value_4
= fra
.me
.REG
[5];
5769 register_static_object(&once_value_4
);
5770 } else fra
.me
.REG
[5] = once_value_4
;
5771 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5772 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5773 fra
.me
.REG
[6] = CALL_icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5774 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5775 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5776 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5777 if (!once_value_5
) {
5778 fra
.me
.REG
[6] = BOX_NativeString("]");
5780 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5781 once_value_5
= fra
.me
.REG
[6];
5782 register_static_object(&once_value_5
);
5783 } else fra
.me
.REG
[6] = once_value_5
;
5784 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5785 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5786 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5788 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5789 /* ./compiling//compiling_icode.nit:771 */
5790 if (!once_value_6
) {
5791 fra
.me
.REG
[6] = BOX_NativeString("closctx_param");
5792 REGB0
= TAG_Int(13);
5793 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5794 once_value_6
= fra
.me
.REG
[6];
5795 register_static_object(&once_value_6
);
5796 } else fra
.me
.REG
[6] = once_value_6
;
5797 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5798 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5800 fra
.me
.REG
[3] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5801 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5802 /* ./compiling//compiling_icode.nit:773 */
5803 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5805 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5806 /* ./compiling//compiling_icode.nit:775 */
5807 if (!once_value_7
) {
5808 fra
.me
.REG
[6] = BOX_NativeString("((");
5810 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5811 once_value_7
= fra
.me
.REG
[6];
5812 register_static_object(&once_value_7
);
5813 } else fra
.me
.REG
[6] = once_value_7
;
5814 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5815 fra
.me
.REG
[6] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5816 fra
.me
.REG
[5] = CALL_icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5817 fra
.me
.REG
[5] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5818 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5819 if (!once_value_8
) {
5820 fra
.me
.REG
[5] = BOX_NativeString(")(");
5822 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5823 once_value_8
= fra
.me
.REG
[5];
5824 register_static_object(&once_value_8
);
5825 } else fra
.me
.REG
[5] = once_value_8
;
5826 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5827 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5828 if (!once_value_9
) {
5829 fra
.me
.REG
[2] = BOX_NativeString("))(");
5831 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5832 once_value_9
= fra
.me
.REG
[2];
5833 register_static_object(&once_value_9
);
5834 } else fra
.me
.REG
[2] = once_value_9
;
5835 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5836 if (!once_value_10
) {
5837 fra
.me
.REG
[2] = BOX_NativeString(", ");
5839 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5840 once_value_10
= fra
.me
.REG
[2];
5841 register_static_object(&once_value_10
);
5842 } else fra
.me
.REG
[2] = once_value_10
;
5843 fra
.me
.REG
[2] = CALL_string___Collection___join(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5844 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5845 if (!once_value_11
) {
5846 fra
.me
.REG
[2] = BOX_NativeString(")");
5848 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5849 once_value_11
= fra
.me
.REG
[2];
5850 register_static_object(&once_value_11
);
5851 } else fra
.me
.REG
[2] = once_value_11
;
5852 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5853 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5854 /* ./compiling//compiling_icode.nit:776 */
5855 CALL_compiling_icode___ICode___store_result(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
5857 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5858 /* ./compiling//compiling_icode.nit:779 */
5859 if (!once_value_12
) {
5860 fra
.me
.REG
[2] = BOX_NativeString("if (");
5862 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5863 once_value_12
= fra
.me
.REG
[2];
5864 register_static_object(&once_value_12
);
5865 } else fra
.me
.REG
[2] = once_value_12
;
5866 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5867 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5868 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5869 if (!once_value_13
) {
5870 fra
.me
.REG
[4] = BOX_NativeString("->has_broke) {");
5871 REGB0
= TAG_Int(14);
5872 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5873 once_value_13
= fra
.me
.REG
[4];
5874 register_static_object(&once_value_13
);
5875 } else fra
.me
.REG
[4] = once_value_13
;
5876 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5877 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5878 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5879 /* ./compiling//compiling_icode.nit:780 */
5880 CALL_compiling_icode___I2CCompilerVisitor___indent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5881 fra
.me
.REG
[0] = CALL_icode_base___IClosCall___break_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5882 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5883 /* ./compiling//compiling_icode.nit:782 */
5884 if (UNTAG_Bool(REGB0
)) {
5886 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5887 if (UNTAG_Bool(REGB1
)) {
5888 REGB1
= TAG_Bool(false);
5891 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5895 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5896 if (UNTAG_Bool(REGB0
)) {
5897 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5898 /* ./compiling//compiling_icode.nit:783 */
5899 if (UNTAG_Bool(REGB0
)) {
5900 fprintf(stderr
, "Reciever is null");
5901 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 783);
5904 CALL_compiling_icode___ICode___compile_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5906 fra
.me
.REG
[0] = CALL_compiling_icode___I2CCompilerVisitor___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5907 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5908 /* ./compiling//compiling_icode.nit:785 */
5909 CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5910 /* ./compiling//compiling_icode.nit:786 */
5911 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5912 /* ./compiling//compiling_icode.nit:787 */
5913 if (!once_value_14
) {
5914 fra
.me
.REG
[0] = BOX_NativeString("}");
5916 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
5917 once_value_14
= fra
.me
.REG
[0];
5918 register_static_object(&once_value_14
);
5919 } else fra
.me
.REG
[0] = once_value_14
;
5920 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5921 stack_frame_head
= fra
.me
.prev
;
5924 val_t
compiling_icode___IClosCall___inner_compile_to_c(val_t p0
, val_t p1
){
5925 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5928 fra
.me
.file
= LOCATE_compiling_icode
;
5930 fra
.me
.meth
= LOCATE_compiling_icode___IClosCall___inner_compile_to_c
;
5931 fra
.me
.has_broke
= 0;
5932 fra
.me
.REG_size
= 2;
5933 fra
.me
.REG
[0] = NIT_NULL
;
5934 fra
.me
.REG
[1] = NIT_NULL
;
5937 /* ./compiling//compiling_icode.nit:790 */
5938 fprintf(stderr
, "Aborted");
5939 fprintf(stderr
, " (%s:%d)\n", LOCATE_compiling_icode
, 790);
5941 stack_frame_head
= fra
.me
.prev
;
5944 val_t
compiling_icode___IHasClos___inner_compile_to_c(val_t p0
, val_t p1
){
5945 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5948 static val_t once_value_1
; /* Once value */
5949 static val_t once_value_2
; /* Once value */
5950 static val_t once_value_3
; /* Once value */
5951 static val_t once_value_4
; /* Once value */
5952 static val_t once_value_5
; /* Once value */
5953 static val_t once_value_6
; /* Once value */
5954 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5955 fra
.me
.file
= LOCATE_compiling_icode
;
5957 fra
.me
.meth
= LOCATE_compiling_icode___IHasClos___inner_compile_to_c
;
5958 fra
.me
.has_broke
= 0;
5959 fra
.me
.REG_size
= 5;
5960 fra
.me
.REG
[0] = NIT_NULL
;
5961 fra
.me
.REG
[1] = NIT_NULL
;
5962 fra
.me
.REG
[2] = NIT_NULL
;
5963 fra
.me
.REG
[3] = NIT_NULL
;
5964 fra
.me
.REG
[4] = NIT_NULL
;
5967 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5968 /* ./compiling//compiling_icode.nit:797 */
5969 if (UNTAG_Bool(REGB0
)) {
5971 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
5972 /* ./compiling//compiling_icode.nit:798 */
5973 if (!once_value_1
) {
5974 fra
.me
.REG
[3] = BOX_NativeString("closctx->closure_funs[");
5975 REGB0
= TAG_Int(22);
5976 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5977 once_value_1
= fra
.me
.REG
[3];
5978 register_static_object(&once_value_1
);
5979 } else fra
.me
.REG
[3] = once_value_1
;
5980 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5981 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5982 fra
.me
.REG
[4] = CALL_icode_base___IHasClos___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5983 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5984 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5985 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5986 if (!once_value_2
) {
5987 fra
.me
.REG
[4] = BOX_NativeString("]");
5989 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5990 once_value_2
= fra
.me
.REG
[4];
5991 register_static_object(&once_value_2
);
5992 } else fra
.me
.REG
[4] = once_value_2
;
5993 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5994 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5997 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
5998 /* ./compiling//compiling_icode.nit:800 */
5999 if (!once_value_3
) {
6000 fra
.me
.REG
[3] = BOX_NativeString("CREG[");
6002 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6003 once_value_3
= fra
.me
.REG
[3];
6004 register_static_object(&once_value_3
);
6005 } else fra
.me
.REG
[3] = once_value_3
;
6006 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6007 fra
.me
.REG
[1] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6008 fra
.me
.REG
[0] = CALL_icode_base___IHasClos___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6009 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6010 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6011 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
6012 if (!once_value_4
) {
6013 fra
.me
.REG
[0] = BOX_NativeString("]");
6015 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
6016 once_value_4
= fra
.me
.REG
[0];
6017 register_static_object(&once_value_4
);
6018 } else fra
.me
.REG
[0] = once_value_4
;
6019 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
6020 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6021 fra
.me
.REG
[2] = fra
.me
.REG
[4];
6024 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
6025 /* ./compiling//compiling_icode.nit:802 */
6026 if (!once_value_5
) {
6027 fra
.me
.REG
[0] = BOX_NativeString("TAG_Bool(");
6029 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
6030 once_value_5
= fra
.me
.REG
[0];
6031 register_static_object(&once_value_5
);
6032 } else fra
.me
.REG
[0] = once_value_5
;
6033 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
6034 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6035 if (!once_value_6
) {
6036 fra
.me
.REG
[2] = BOX_NativeString(" != NULL)");
6038 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6039 once_value_6
= fra
.me
.REG
[2];
6040 register_static_object(&once_value_6
);
6041 } else fra
.me
.REG
[2] = once_value_6
;
6042 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6043 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6046 stack_frame_head
= fra
.me
.prev
;
6047 return fra
.me
.REG
[4];
6049 val_t
compiling_icode___IClosureDef___compile_closure(val_t p0
, val_t p1
){
6050 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6055 static val_t once_value_1
; /* Once value */
6056 static val_t once_value_2
; /* Once value */
6057 static val_t once_value_3
; /* Once value */
6058 static val_t once_value_4
; /* Once value */
6059 static val_t once_value_5
; /* Once value */
6060 static val_t once_value_6
; /* Once value */
6061 static val_t once_value_7
; /* Once value */
6062 static val_t once_value_8
; /* Once value */
6063 static val_t once_value_9
; /* Once value */
6064 static val_t once_value_10
; /* Once value */
6065 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6066 fra
.me
.file
= LOCATE_compiling_icode
;
6068 fra
.me
.meth
= LOCATE_compiling_icode___IClosureDef___compile_closure
;
6069 fra
.me
.has_broke
= 0;
6070 fra
.me
.REG_size
= 9;
6071 fra
.me
.REG
[0] = NIT_NULL
;
6072 fra
.me
.REG
[1] = NIT_NULL
;
6073 fra
.me
.REG
[2] = NIT_NULL
;
6074 fra
.me
.REG
[3] = NIT_NULL
;
6075 fra
.me
.REG
[4] = NIT_NULL
;
6076 fra
.me
.REG
[5] = NIT_NULL
;
6077 fra
.me
.REG
[6] = NIT_NULL
;
6078 fra
.me
.REG
[7] = NIT_NULL
;
6079 fra
.me
.REG
[8] = NIT_NULL
;
6082 fra
.me
.REG
[2] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6083 REGB0
= CALL_compiling_icode___I2CCompilerVisitor___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6084 REGB1
= TAG_Bool(true);
6085 /* ./compiling//compiling_icode.nit:815 */
6086 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
6087 fra
.me
.REG
[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6088 fra
.me
.REG
[4] = NEW_HashSet_hash_collection___HashSet___init();
6089 /* ./compiling//compiling_icode.nit:819 */
6090 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6091 fra
.me
.REG
[4] = CALL_compiling_base___CompilerVisitor___ctx(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6092 fra
.me
.REG
[5] = NEW_CContext_compiling_base___CContext___init();
6093 /* ./compiling//compiling_icode.nit:823 */
6094 CALL_compiling_base___CompilerVisitor___ctx__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
6095 fra
.me
.REG
[5] = CALL_compiling_base___CompilerVisitor___out_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6096 fra
.me
.REG
[6] = CALL_compiling_base___CompilerVisitor___ctx(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6097 /* ./compiling//compiling_icode.nit:824 */
6098 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6100 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
6101 /* ./compiling//compiling_icode.nit:827 */
6102 if (!once_value_1
) {
6103 fra
.me
.REG
[5] = BOX_NativeString("OC_");
6105 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6106 once_value_1
= fra
.me
.REG
[5];
6107 register_static_object(&once_value_1
);
6108 } else fra
.me
.REG
[5] = once_value_1
;
6109 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6110 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6111 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6112 if (!once_value_2
) {
6113 fra
.me
.REG
[5] = BOX_NativeString("_");
6115 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6116 once_value_2
= fra
.me
.REG
[5];
6117 register_static_object(&once_value_2
);
6118 } else fra
.me
.REG
[5] = once_value_2
;
6119 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6120 REGB1
= CALL_compiling_icode___I2CCompilerVisitor___new_number(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6121 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB1
)(REGB1
);
6122 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6123 if (!once_value_3
) {
6124 fra
.me
.REG
[5] = BOX_NativeString("");
6126 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6127 once_value_3
= fra
.me
.REG
[5];
6128 register_static_object(&once_value_3
);
6129 } else fra
.me
.REG
[5] = once_value_3
;
6130 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6131 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6132 fra
.me
.REG
[5] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6133 /* ./compiling//compiling_icode.nit:828 */
6134 if (!once_value_4
) {
6135 fra
.me
.REG
[7] = BOX_NativeString("struct stack_frame_t *closctx");
6136 REGB1
= TAG_Int(29);
6137 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
6138 once_value_4
= fra
.me
.REG
[7];
6139 register_static_object(&once_value_4
);
6140 } else fra
.me
.REG
[7] = once_value_4
;
6141 fra
.me
.REG
[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[6], NIT_NULL
, fra
.me
.REG
[7], NIT_NULL
);
6142 fra
.me
.REG
[5] = CALL_compiling_base___CompilerVisitor___ctx(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6143 fra
.me
.REG
[8] = NEW_CContext_compiling_base___CContext___init();
6144 /* ./compiling//compiling_icode.nit:830 */
6145 CALL_compiling_base___CompilerVisitor___ctx__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
6146 fra
.me
.REG
[7] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[7]);
6147 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6148 /* ./compiling//compiling_icode.nit:832 */
6149 if (UNTAG_Bool(REGB1
)) {
6151 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6152 if (UNTAG_Bool(REGB2
)) {
6153 REGB2
= TAG_Bool(false);
6156 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6160 if (UNTAG_Bool(REGB1
)) {
6161 /* ./compiling//compiling_icode.nit:833 */
6162 if (!once_value_5
) {
6163 fra
.me
.REG
[0] = BOX_NativeString("return;");
6165 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB1
);
6166 once_value_5
= fra
.me
.REG
[0];
6167 register_static_object(&once_value_5
);
6168 } else fra
.me
.REG
[0] = once_value_5
;
6169 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6172 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB1
);
6173 /* ./compiling//compiling_icode.nit:835 */
6174 if (!once_value_6
) {
6175 fra
.me
.REG
[8] = BOX_NativeString("return ");
6177 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
6178 once_value_6
= fra
.me
.REG
[8];
6179 register_static_object(&once_value_6
);
6180 } else fra
.me
.REG
[8] = once_value_6
;
6181 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[8]);
6182 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[7]);
6183 if (!once_value_7
) {
6184 fra
.me
.REG
[7] = BOX_NativeString(";");
6186 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
6187 once_value_7
= fra
.me
.REG
[7];
6188 register_static_object(&once_value_7
);
6189 } else fra
.me
.REG
[7] = once_value_7
;
6190 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[7]);
6191 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6192 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6194 fra
.me
.REG
[0] = CALL_compiling_base___CompilerVisitor___ctx(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6195 /* ./compiling//compiling_icode.nit:837 */
6196 CALL_compiling_base___CContext___append(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
6197 /* ./compiling//compiling_icode.nit:838 */
6198 CALL_compiling_base___CompilerVisitor___ctx__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
6199 /* ./compiling//compiling_icode.nit:839 */
6200 CALL_compiling_icode___I2CCompilerVisitor___unindent(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6201 /* ./compiling//compiling_icode.nit:840 */
6202 if (!once_value_8
) {
6203 fra
.me
.REG
[5] = BOX_NativeString("}");
6205 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6206 once_value_8
= fra
.me
.REG
[5];
6207 register_static_object(&once_value_8
);
6208 } else fra
.me
.REG
[5] = once_value_8
;
6209 CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6210 /* ./compiling//compiling_icode.nit:843 */
6211 CALL_compiling_base___CompilerVisitor___ctx__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6212 /* ./compiling//compiling_icode.nit:844 */
6213 CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
6214 /* ./compiling//compiling_icode.nit:845 */
6215 CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6217 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
6218 /* ./compiling//compiling_icode.nit:846 */
6219 if (!once_value_9
) {
6220 fra
.me
.REG
[1] = BOX_NativeString("((fun_t)");
6222 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
6223 once_value_9
= fra
.me
.REG
[1];
6224 register_static_object(&once_value_9
);
6225 } else fra
.me
.REG
[1] = once_value_9
;
6226 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[1]);
6227 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6228 if (!once_value_10
) {
6229 fra
.me
.REG
[6] = BOX_NativeString(")");
6231 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6232 once_value_10
= fra
.me
.REG
[6];
6233 register_static_object(&once_value_10
);
6234 } else fra
.me
.REG
[6] = once_value_10
;
6235 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6236 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6239 stack_frame_head
= fra
.me
.prev
;
6240 return fra
.me
.REG
[3];