1 /* This C file is generated by NIT to compile module icode_builder. */
2 #include "icode_builder._sep.h"
3 void icode_builder___ICodeBuilder___stmt(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_icode_builder
;
10 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___stmt
;
13 fra
.me
.REG
[0] = NIT_NULL
;
14 fra
.me
.REG
[1] = NIT_NULL
;
15 fra
.me
.REG
[2] = NIT_NULL
;
18 fra
.me
.REG
[2] = ATTR_icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
19 /* ./icode//icode_builder.nit:28 */
20 CALL_icode_base___ICode___location__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
21 REGB0
= TAG_Bool(ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
22 /* ./icode//icode_builder.nit:29 */
23 if (UNTAG_Bool(REGB0
)) {
25 fprintf(stderr
, "Uninitialized attribute %s", "_seq");
26 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 29);
29 fra
.me
.REG
[0] = ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
30 fra
.me
.REG
[0] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
31 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
32 stack_frame_head
= fra
.me
.prev
;
35 val_t
icode_builder___ICodeBuilder___expr(val_t p0
, val_t p1
, val_t p2
){
36 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
40 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
41 fra
.me
.file
= LOCATE_icode_builder
;
43 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___expr
;
46 fra
.me
.REG
[0] = NIT_NULL
;
47 fra
.me
.REG
[1] = NIT_NULL
;
48 fra
.me
.REG
[2] = NIT_NULL
;
49 fra
.me
.REG
[3] = NIT_NULL
;
53 /* ./icode//icode_builder.nit:35 */
54 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
55 fra
.me
.REG
[3] = CALL_icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
56 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
57 /* ./icode//icode_builder.nit:36 */
58 if (UNTAG_Bool(REGB0
)) {
60 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
61 if (UNTAG_Bool(REGB1
)) {
62 REGB1
= TAG_Bool(false);
65 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
69 if (UNTAG_Bool(REGB0
)) {
71 fprintf(stderr
, "Assert failed");
72 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 36);
75 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
76 /* ./icode//icode_builder.nit:38 */
77 CALL_icode_base___ICode___result__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
78 /* ./icode//icode_builder.nit:39 */
81 stack_frame_head
= fra
.me
.prev
;
84 void icode_builder___ICodeBuilder___add_assignment(val_t p0
, val_t p1
, val_t p2
){
85 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
87 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
88 fra
.me
.file
= LOCATE_icode_builder
;
90 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_assignment
;
93 fra
.me
.REG
[0] = NIT_NULL
;
94 fra
.me
.REG
[1] = NIT_NULL
;
95 fra
.me
.REG
[2] = NIT_NULL
;
99 fra
.me
.REG
[2] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
100 /* ./icode//icode_builder.nit:45 */
101 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
102 stack_frame_head
= fra
.me
.prev
;
105 void icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0
, val_t p1
){
106 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
109 static val_t once_value_1
; /* Once value */
110 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
111 fra
.me
.file
= LOCATE_icode_builder
;
113 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_null_reciever_check
;
114 fra
.me
.has_broke
= 0;
116 fra
.me
.REG
[0] = NIT_NULL
;
117 fra
.me
.REG
[1] = NIT_NULL
;
118 fra
.me
.REG
[2] = NIT_NULL
;
119 fra
.me
.REG
[3] = NIT_NULL
;
122 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
123 fra
.me
.REG
[2] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
124 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
125 fra
.me
.REG
[1] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
126 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
127 fra
.me
.REG
[1] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[1]);
128 /* ./icode//icode_builder.nit:54 */
129 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
130 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
131 fra
.me
.REG
[1] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
132 /* ./icode//icode_builder.nit:56 */
133 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
135 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
136 /* ./icode//icode_builder.nit:57 */
138 fra
.me
.REG
[3] = BOX_NativeString("Reciever is null");
140 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
141 once_value_1
= fra
.me
.REG
[3];
142 register_static_object(&once_value_1
);
143 } else fra
.me
.REG
[3] = once_value_1
;
144 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
145 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
146 /* ./icode//icode_builder.nit:58 */
147 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
148 stack_frame_head
= fra
.me
.prev
;
151 void icode_builder___ICodeBuilder___add_type_cast(val_t p0
, val_t p1
, val_t p2
){
152 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
155 static val_t once_value_1
; /* Once value */
156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
157 fra
.me
.file
= LOCATE_icode_builder
;
159 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_type_cast
;
160 fra
.me
.has_broke
= 0;
162 fra
.me
.REG
[0] = NIT_NULL
;
163 fra
.me
.REG
[1] = NIT_NULL
;
164 fra
.me
.REG
[2] = NIT_NULL
;
165 fra
.me
.REG
[3] = NIT_NULL
;
169 fra
.me
.REG
[2] = NEW_ITypeCheck_icode_base___ITypeCheck___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
170 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
171 fra
.me
.REG
[1] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
172 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
173 fra
.me
.REG
[1] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[1]);
174 /* ./icode//icode_builder.nit:66 */
175 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
176 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
177 fra
.me
.REG
[1] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
178 /* ./icode//icode_builder.nit:68 */
179 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
181 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
182 /* ./icode//icode_builder.nit:69 */
184 fra
.me
.REG
[3] = BOX_NativeString("Cast failed");
186 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
187 once_value_1
= fra
.me
.REG
[3];
188 register_static_object(&once_value_1
);
189 } else fra
.me
.REG
[3] = once_value_1
;
190 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
191 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
192 /* ./icode//icode_builder.nit:70 */
193 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
194 stack_frame_head
= fra
.me
.prev
;
197 void icode_builder___ICodeBuilder___add_attr_check(val_t p0
, val_t p1
, val_t p2
){
198 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
201 static val_t once_value_1
; /* Once value */
202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
203 fra
.me
.file
= LOCATE_icode_builder
;
205 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_attr_check
;
206 fra
.me
.has_broke
= 0;
208 fra
.me
.REG
[0] = NIT_NULL
;
209 fra
.me
.REG
[1] = NIT_NULL
;
210 fra
.me
.REG
[2] = NIT_NULL
;
211 fra
.me
.REG
[3] = NIT_NULL
;
212 fra
.me
.REG
[4] = NIT_NULL
;
216 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
217 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
218 /* ./icode//icode_builder.nit:76 */
219 if (UNTAG_Bool(REGB0
)) {
220 fprintf(stderr
, "Reciever is null");
221 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 76);
224 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
225 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
226 if (UNTAG_Bool(REGB0
)) {
227 fprintf(stderr
, "Reciever is null");
228 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 76);
231 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
232 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
233 if (UNTAG_Bool(REGB0
)) {
234 fra
.me
.REG
[2] = NEW_IAttrIsset_icode_base___IAttrIsset___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
235 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
236 fra
.me
.REG
[3] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
237 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
238 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
239 /* ./icode//icode_builder.nit:79 */
240 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
241 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
242 fra
.me
.REG
[3] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
243 /* ./icode//icode_builder.nit:81 */
244 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
246 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
247 /* ./icode//icode_builder.nit:82 */
249 fra
.me
.REG
[4] = BOX_NativeString("Uninitialized attribute %s");
251 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
252 once_value_1
= fra
.me
.REG
[4];
253 register_static_object(&once_value_1
);
254 } else fra
.me
.REG
[4] = once_value_1
;
255 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
256 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
257 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
258 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[1]);
259 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
260 /* ./icode//icode_builder.nit:83 */
261 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
263 stack_frame_head
= fra
.me
.prev
;
266 val_t
icode_builder___ICodeBuilder___add_attr_read(val_t p0
, val_t p1
, val_t p2
){
267 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
270 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
271 fra
.me
.file
= LOCATE_icode_builder
;
273 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_attr_read
;
274 fra
.me
.has_broke
= 0;
276 fra
.me
.REG
[0] = NIT_NULL
;
277 fra
.me
.REG
[1] = NIT_NULL
;
278 fra
.me
.REG
[2] = NIT_NULL
;
282 /* ./icode//icode_builder.nit:90 */
283 CALL_icode_builder___ICodeBuilder___add_attr_check(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
284 fra
.me
.REG
[2] = NEW_IAttrRead_icode_base___IAttrRead___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
285 fra
.me
.REG
[1] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
286 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
287 /* ./icode//icode_builder.nit:91 */
288 if (UNTAG_Bool(REGB0
)) {
289 fprintf(stderr
, "Reciever is null");
290 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 91);
293 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
294 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
295 if (UNTAG_Bool(REGB0
)) {
297 fprintf(stderr
, "Cast failed");
298 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 91);
301 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
304 stack_frame_head
= fra
.me
.prev
;
305 return fra
.me
.REG
[1];
307 void icode_builder___ICodeBuilder___add_abort(val_t p0
, val_t p1
){
308 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
312 fra
.me
.file
= LOCATE_icode_builder
;
314 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_abort
;
315 fra
.me
.has_broke
= 0;
317 fra
.me
.REG
[0] = NIT_NULL
;
318 fra
.me
.REG
[1] = NIT_NULL
;
319 fra
.me
.REG
[2] = NIT_NULL
;
322 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_Array
, ID_Array
)) /*cast Array[String]*/;
323 /* ./icode//icode_builder.nit:94 */
324 if (UNTAG_Bool(REGB0
)) {
326 fprintf(stderr
, "Cast failed");
327 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 94);
330 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
331 fra
.me
.REG
[2] = NEW_IAbort_icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
332 /* ./icode//icode_builder.nit:97 */
333 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
334 stack_frame_head
= fra
.me
.prev
;
337 void icode_builder___ICodeBuilder___add_return_value(val_t p0
, val_t p1
){
338 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
341 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
342 fra
.me
.file
= LOCATE_icode_builder
;
344 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_return_value
;
345 fra
.me
.has_broke
= 0;
347 fra
.me
.REG
[0] = NIT_NULL
;
348 fra
.me
.REG
[1] = NIT_NULL
;
349 fra
.me
.REG
[2] = NIT_NULL
;
352 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
353 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
354 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
355 /* ./icode//icode_builder.nit:104 */
356 if (UNTAG_Bool(REGB0
)) {
358 fprintf(stderr
, "Cast failed");
359 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 104);
362 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
363 stack_frame_head
= fra
.me
.prev
;
366 val_t
icode_builder___ICodeBuilder___add_call(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
367 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
372 static val_t once_value_1
; /* Once value */
373 static val_t once_value_2
; /* Once value */
374 static val_t once_value_3
; /* Once value */
375 static val_t once_value_4
; /* Once value */
376 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
377 fra
.me
.file
= LOCATE_icode_builder
;
379 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_call
;
380 fra
.me
.has_broke
= 0;
381 fra
.me
.REG_size
= 11;
382 fra
.me
.REG
[0] = NIT_NULL
;
383 fra
.me
.REG
[1] = NIT_NULL
;
384 fra
.me
.REG
[2] = NIT_NULL
;
385 fra
.me
.REG
[3] = NIT_NULL
;
386 fra
.me
.REG
[4] = NIT_NULL
;
387 fra
.me
.REG
[5] = NIT_NULL
;
388 fra
.me
.REG
[6] = NIT_NULL
;
389 fra
.me
.REG
[7] = NIT_NULL
;
390 fra
.me
.REG
[8] = NIT_NULL
;
391 fra
.me
.REG
[9] = NIT_NULL
;
392 fra
.me
.REG
[10] = NIT_NULL
;
397 /* ./icode//icode_builder.nit:110 */
400 fra
.me
.REG
[4] = BOX_NativeString("==");
402 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
403 once_value_2
= fra
.me
.REG
[4];
404 register_static_object(&once_value_2
);
405 } else fra
.me
.REG
[4] = once_value_2
;
406 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
407 once_value_1
= fra
.me
.REG
[4];
408 register_static_object(&once_value_1
);
409 } else fra
.me
.REG
[4] = once_value_1
;
410 /* ./icode//icode_builder.nit:113 */
413 fra
.me
.REG
[5] = BOX_NativeString("!=");
415 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
416 once_value_4
= fra
.me
.REG
[5];
417 register_static_object(&once_value_4
);
418 } else fra
.me
.REG
[5] = once_value_4
;
419 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
420 once_value_3
= fra
.me
.REG
[5];
421 register_static_object(&once_value_3
);
422 } else fra
.me
.REG
[5] = once_value_3
;
423 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
424 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[6],fra
.me
.REG
[5]));
425 /* ./icode//icode_builder.nit:114 */
426 if (UNTAG_Bool(REGB0
)) {
428 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
431 if (UNTAG_Bool(REGB0
)) {
432 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
433 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
434 /* ./icode//icode_builder.nit:115 */
435 if (UNTAG_Bool(REGB0
)) {
436 fprintf(stderr
, "Reciever is null");
437 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 115);
440 fra
.me
.REG
[5] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
441 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
442 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
443 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], fra
.me
.REG
[3]);
444 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
445 /* ./icode//icode_builder.nit:116 */
446 if (UNTAG_Bool(REGB0
)) {
448 fprintf(stderr
, "Cast failed");
449 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 116);
452 fra
.me
.REG
[5] = NEW_INot_icode_base___INot___init(fra
.me
.REG
[5]);
453 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
454 fra
.me
.REG
[6] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
455 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[6]);
456 /* ./icode//icode_builder.nit:117 */
459 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
460 /* ./icode//icode_builder.nit:123 */
461 CALL_icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
462 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
463 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
464 /* ./icode//icode_builder.nit:124 */
465 if (UNTAG_Bool(REGB0
)) {
467 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
470 if (UNTAG_Bool(REGB0
)) {
471 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
472 fra
.me
.REG
[4] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
473 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
475 fra
.me
.REG
[3] = fra
.me
.REG
[2];
477 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
478 /* ./../lib/standard//collection//array.nit:233 */
479 if (UNTAG_Bool(REGB1
)) {
480 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
481 if (UNTAG_Bool(REGB1
)) {
483 fprintf(stderr
, "Uninitialized attribute %s", "_length");
484 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
487 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
488 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
489 /* ./../lib/standard//collection//array.nit:233 */
491 REGB2
= TAG_Bool(false);
494 if (UNTAG_Bool(REGB1
)) {
496 fprintf(stderr
, "Assert %s failed", "'index'");
497 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
500 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
501 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
502 /* ./../lib/standard//collection//array.nit:234 */
503 if (UNTAG_Bool(REGB1
)) {
504 fprintf(stderr
, "Reciever is null");
505 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
508 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
509 /* ./../lib/standard//collection//array.nit:234 */
513 fra
.me
.REG
[7] = fra
.me
.REG
[2];
515 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
516 /* ./../lib/standard//collection//array.nit:233 */
517 if (UNTAG_Bool(REGB1
)) {
518 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
519 if (UNTAG_Bool(REGB1
)) {
521 fprintf(stderr
, "Uninitialized attribute %s", "_length");
522 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
525 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
526 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
527 /* ./../lib/standard//collection//array.nit:233 */
529 REGB2
= TAG_Bool(false);
532 if (UNTAG_Bool(REGB1
)) {
534 fprintf(stderr
, "Assert %s failed", "'index'");
535 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
538 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
539 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
540 /* ./../lib/standard//collection//array.nit:234 */
541 if (UNTAG_Bool(REGB1
)) {
542 fprintf(stderr
, "Reciever is null");
543 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
546 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
547 /* ./../lib/standard//collection//array.nit:234 */
550 fra
.me
.REG
[7] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[3], fra
.me
.REG
[7]);
551 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
552 fra
.me
.REG
[3] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
553 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7], fra
.me
.REG
[3]);
554 fra
.me
.REG
[7] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
555 /* ./icode//icode_builder.nit:130 */
556 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
557 fra
.me
.REG
[8] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
558 fra
.me
.REG
[9] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
559 /* ./icode//icode_builder.nit:132 */
560 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[9]);
561 /* ./icode//icode_builder.nit:133 */
562 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[3]);
563 fra
.me
.REG
[9] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
564 /* ./icode//icode_builder.nit:135 */
565 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[9]);
567 fra
.me
.REG
[9] = fra
.me
.REG
[2];
569 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
570 /* ./../lib/standard//collection//array.nit:233 */
571 if (UNTAG_Bool(REGB1
)) {
572 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
573 if (UNTAG_Bool(REGB1
)) {
575 fprintf(stderr
, "Uninitialized attribute %s", "_length");
576 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
579 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9]);
580 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
581 /* ./../lib/standard//collection//array.nit:233 */
583 REGB2
= TAG_Bool(false);
586 if (UNTAG_Bool(REGB1
)) {
588 fprintf(stderr
, "Assert %s failed", "'index'");
589 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
592 fra
.me
.REG
[9] = ATTR_array___Array____items(fra
.me
.REG
[9]);
593 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
594 /* ./../lib/standard//collection//array.nit:234 */
595 if (UNTAG_Bool(REGB1
)) {
596 fprintf(stderr
, "Reciever is null");
597 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
600 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB0
)];
601 /* ./../lib/standard//collection//array.nit:234 */
604 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
605 /* ./icode//icode_builder.nit:137 */
606 if (UNTAG_Bool(REGB0
)) {
607 fprintf(stderr
, "Reciever is null");
608 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 137);
611 fra
.me
.REG
[9] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
612 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
613 if (UNTAG_Bool(REGB0
)) {
614 fra
.me
.REG
[9] = CALL_icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
616 fra
.me
.REG
[10] = fra
.me
.REG
[2];
618 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
619 /* ./../lib/standard//collection//array.nit:233 */
620 if (UNTAG_Bool(REGB1
)) {
621 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[10])!=NIT_NULL
);
622 if (UNTAG_Bool(REGB1
)) {
624 fprintf(stderr
, "Uninitialized attribute %s", "_length");
625 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
628 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[10]);
629 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
630 /* ./../lib/standard//collection//array.nit:233 */
632 REGB2
= TAG_Bool(false);
635 if (UNTAG_Bool(REGB1
)) {
637 fprintf(stderr
, "Assert %s failed", "'index'");
638 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
641 fra
.me
.REG
[10] = ATTR_array___Array____items(fra
.me
.REG
[10]);
642 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
643 /* ./../lib/standard//collection//array.nit:234 */
644 if (UNTAG_Bool(REGB1
)) {
645 fprintf(stderr
, "Reciever is null");
646 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
649 fra
.me
.REG
[10] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
650 /* ./../lib/standard//collection//array.nit:234 */
653 fra
.me
.REG
[9] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[10], fra
.me
.REG
[9]);
654 fra
.me
.REG
[10] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
655 fra
.me
.REG
[10] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
656 fra
.me
.REG
[10] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[9], fra
.me
.REG
[10]);
657 fra
.me
.REG
[3] = fra
.me
.REG
[10];
658 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
659 fra
.me
.REG
[7] = fra
.me
.REG
[3];
660 /* ./icode//icode_builder.nit:141 */
661 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
662 fra
.me
.REG
[3] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
663 /* ./icode//icode_builder.nit:142 */
664 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
665 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
666 /* ./icode//icode_builder.nit:143 */
667 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[3]);
668 fra
.me
.REG
[7] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
669 /* ./icode//icode_builder.nit:144 */
670 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[7]);
672 fra
.me
.REG
[7] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
673 fra
.me
.REG
[7] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
674 fra
.me
.REG
[7] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[7]);
675 /* ./icode//icode_builder.nit:147 */
676 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[7]);
677 /* ./icode//icode_builder.nit:148 */
678 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
679 fra
.me
.REG
[6] = fra
.me
.REG
[4];
680 /* ./icode//icode_builder.nit:149 */
683 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
684 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
685 /* ./icode//icode_builder.nit:152 */
686 if (UNTAG_Bool(REGB0
)) {
687 fprintf(stderr
, "Reciever is null");
688 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 152);
691 fra
.me
.REG
[4] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
692 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
693 if (UNTAG_Bool(REGB0
)) {
694 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
695 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
697 fra
.me
.REG
[1] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
698 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
699 /* ./icode//icode_builder.nit:153 */
700 if (UNTAG_Bool(REGB0
)) {
701 fprintf(stderr
, "Reciever is null");
702 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 153);
705 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
706 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
707 /* ./icode//icode_builder.nit:154 */
708 if (UNTAG_Bool(REGB0
)) {
710 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
711 if (UNTAG_Bool(REGB1
)) {
712 REGB1
= TAG_Bool(false);
715 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
719 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
720 if (UNTAG_Bool(REGB0
)) {
721 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[1]);
722 fra
.me
.REG
[6] = fra
.me
.REG
[1];
723 /* ./icode//icode_builder.nit:155 */
726 /* ./icode//icode_builder.nit:157 */
727 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
728 fra
.me
.REG
[6] = NIT_NULL
;
729 /* ./icode//icode_builder.nit:158 */
733 stack_frame_head
= fra
.me
.prev
;
734 return fra
.me
.REG
[6];
736 void icode_builder___ICodeBuilder___add_escape(val_t p0
, val_t p1
){
737 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
741 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
742 fra
.me
.file
= LOCATE_icode_builder
;
744 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___add_escape
;
745 fra
.me
.has_broke
= 0;
747 fra
.me
.REG
[0] = NIT_NULL
;
748 fra
.me
.REG
[1] = NIT_NULL
;
749 fra
.me
.REG
[2] = NIT_NULL
;
750 fra
.me
.REG
[3] = NIT_NULL
;
753 fra
.me
.REG
[2] = CALL_icode_base___ISeq___iescape_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
754 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
755 /* ./icode//icode_builder.nit:167 */
756 if (UNTAG_Bool(REGB0
)) {
758 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
759 if (UNTAG_Bool(REGB1
)) {
760 REGB1
= TAG_Bool(false);
763 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
767 if (UNTAG_Bool(REGB0
)) {
768 fra
.me
.REG
[3] = NEW_IEscapeMark_icode_base___IEscapeMark___init();
769 fra
.me
.REG
[2] = fra
.me
.REG
[3];
770 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
771 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___escape_marks(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
772 /* ./icode//icode_builder.nit:169 */
773 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
774 /* ./icode//icode_builder.nit:170 */
775 CALL_icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
777 fra
.me
.REG
[2] = NEW_IEscape_icode_base___IEscape___init(fra
.me
.REG
[2]);
778 /* ./icode//icode_builder.nit:172 */
779 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
780 stack_frame_head
= fra
.me
.prev
;
783 val_t
icode_builder___ICodeBuilder___lit_null_reg(val_t p0
){
784 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
786 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
787 fra
.me
.file
= LOCATE_icode_builder
;
789 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___lit_null_reg
;
790 fra
.me
.has_broke
= 0;
792 fra
.me
.REG
[0] = NIT_NULL
;
793 fra
.me
.REG
[1] = NIT_NULL
;
795 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
796 fra
.me
.REG
[1] = CALL_static_type___MMModule___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
797 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
798 /* ./icode//icode_builder.nit:178 */
801 stack_frame_head
= fra
.me
.prev
;
802 return fra
.me
.REG
[1];
804 val_t
icode_builder___ICodeBuilder___lit_true_reg(val_t p0
){
805 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
808 static val_t once_value_1
; /* Once value */
809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
810 fra
.me
.file
= LOCATE_icode_builder
;
812 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___lit_true_reg
;
813 fra
.me
.has_broke
= 0;
815 fra
.me
.REG
[0] = NIT_NULL
;
816 fra
.me
.REG
[1] = NIT_NULL
;
817 fra
.me
.REG
[2] = NIT_NULL
;
819 /* ./icode//icode_builder.nit:184 */
821 fra
.me
.REG
[1] = BOX_NativeString("TAG_Bool(true)");
823 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
824 once_value_1
= fra
.me
.REG
[1];
825 register_static_object(&once_value_1
);
826 } else fra
.me
.REG
[1] = once_value_1
;
827 fra
.me
.REG
[1] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[1], NIT_NULL
);
828 REGB0
= TAG_Bool(true);
829 /* ./icode//icode_builder.nit:185 */
830 CALL_icode_base___INative___is_pure__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
831 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
832 fra
.me
.REG
[2] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
833 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
834 /* ./icode//icode_builder.nit:186 */
837 stack_frame_head
= fra
.me
.prev
;
838 return fra
.me
.REG
[2];
840 val_t
icode_builder___ICodeBuilder___lit_false_reg(val_t p0
){
841 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
844 static val_t once_value_1
; /* Once value */
845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
846 fra
.me
.file
= LOCATE_icode_builder
;
848 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___lit_false_reg
;
849 fra
.me
.has_broke
= 0;
851 fra
.me
.REG
[0] = NIT_NULL
;
852 fra
.me
.REG
[1] = NIT_NULL
;
853 fra
.me
.REG
[2] = NIT_NULL
;
855 /* ./icode//icode_builder.nit:192 */
857 fra
.me
.REG
[1] = BOX_NativeString("TAG_Bool(false)");
859 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
860 once_value_1
= fra
.me
.REG
[1];
861 register_static_object(&once_value_1
);
862 } else fra
.me
.REG
[1] = once_value_1
;
863 fra
.me
.REG
[1] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[1], NIT_NULL
);
864 REGB0
= TAG_Bool(true);
865 /* ./icode//icode_builder.nit:193 */
866 CALL_icode_base___INative___is_pure__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
867 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
868 fra
.me
.REG
[2] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
869 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
870 /* ./icode//icode_builder.nit:194 */
873 stack_frame_head
= fra
.me
.prev
;
874 return fra
.me
.REG
[2];
876 val_t
icode_builder___ICodeBuilder___new_register(val_t p0
, val_t p1
){
877 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
880 fra
.me
.file
= LOCATE_icode_builder
;
882 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___new_register
;
883 fra
.me
.has_broke
= 0;
885 fra
.me
.REG
[0] = NIT_NULL
;
886 fra
.me
.REG
[1] = NIT_NULL
;
889 fra
.me
.REG
[1] = NEW_IRegister_icode_base___IRegister___init(fra
.me
.REG
[1]);
890 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
891 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___registers(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
892 /* ./icode//icode_builder.nit:201 */
893 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
894 /* ./icode//icode_builder.nit:202 */
897 stack_frame_head
= fra
.me
.prev
;
898 return fra
.me
.REG
[1];
900 val_t
icode_builder___ICodeBuilder___module(val_t p0
){
901 struct {struct stack_frame_t me
;} fra
;
904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
905 fra
.me
.file
= LOCATE_icode_builder
;
907 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___module
;
908 fra
.me
.has_broke
= 0;
910 fra
.me
.REG
[0] = NIT_NULL
;
912 REGB0
= TAG_Bool(ATTR_icode_builder___ICodeBuilder____module(fra
.me
.REG
[0])!=NIT_NULL
);
913 /* ./icode//icode_builder.nit:205 */
914 if (UNTAG_Bool(REGB0
)) {
916 fprintf(stderr
, "Uninitialized attribute %s", "_module");
917 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 205);
920 fra
.me
.REG
[0] = ATTR_icode_builder___ICodeBuilder____module(fra
.me
.REG
[0]);
921 stack_frame_head
= fra
.me
.prev
;
922 return fra
.me
.REG
[0];
924 val_t
icode_builder___ICodeBuilder___iroutine(val_t p0
){
925 struct {struct stack_frame_t me
;} fra
;
928 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
929 fra
.me
.file
= LOCATE_icode_builder
;
931 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___iroutine
;
932 fra
.me
.has_broke
= 0;
934 fra
.me
.REG
[0] = NIT_NULL
;
936 REGB0
= TAG_Bool(ATTR_icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0])!=NIT_NULL
);
937 /* ./icode//icode_builder.nit:208 */
938 if (UNTAG_Bool(REGB0
)) {
940 fprintf(stderr
, "Uninitialized attribute %s", "_iroutine");
941 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 208);
944 fra
.me
.REG
[0] = ATTR_icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]);
945 stack_frame_head
= fra
.me
.prev
;
946 return fra
.me
.REG
[0];
948 val_t
icode_builder___ICodeBuilder___seq(val_t p0
){
949 struct {struct stack_frame_t me
;} fra
;
952 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
953 fra
.me
.file
= LOCATE_icode_builder
;
955 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___seq
;
956 fra
.me
.has_broke
= 0;
958 fra
.me
.REG
[0] = NIT_NULL
;
960 REGB0
= TAG_Bool(ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
961 /* ./icode//icode_builder.nit:211 */
962 if (UNTAG_Bool(REGB0
)) {
964 fprintf(stderr
, "Uninitialized attribute %s", "_seq");
965 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 211);
968 fra
.me
.REG
[0] = ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
969 stack_frame_head
= fra
.me
.prev
;
970 return fra
.me
.REG
[0];
972 void icode_builder___ICodeBuilder___seq__eq(val_t p0
, val_t p1
){
973 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
976 fra
.me
.file
= LOCATE_icode_builder
;
978 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___seq__eq
;
979 fra
.me
.has_broke
= 0;
981 fra
.me
.REG
[0] = NIT_NULL
;
982 fra
.me
.REG
[1] = NIT_NULL
;
985 /* ./icode//icode_builder.nit:211 */
986 ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
987 stack_frame_head
= fra
.me
.prev
;
990 void icode_builder___ICodeBuilder___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
991 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_ICodeBuilder
].i
;
992 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
994 if (init_table
[itpos0
]) return;
995 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
996 fra
.me
.file
= LOCATE_icode_builder
;
998 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___init
;
999 fra
.me
.has_broke
= 0;
1000 fra
.me
.REG_size
= 3;
1001 fra
.me
.REG
[0] = NIT_NULL
;
1002 fra
.me
.REG
[1] = NIT_NULL
;
1003 fra
.me
.REG
[2] = NIT_NULL
;
1007 /* ./icode//icode_builder.nit:216 */
1008 ATTR_icode_builder___ICodeBuilder____module(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1009 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1010 /* ./icode//icode_builder.nit:217 */
1011 ATTR_icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1012 /* ./icode//icode_builder.nit:218 */
1013 ATTR_icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1014 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1015 /* ./icode//icode_builder.nit:219 */
1016 ATTR_icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1017 stack_frame_head
= fra
.me
.prev
;
1018 init_table
[itpos0
] = 1;
1021 val_t
icode_builder___ICodeBuilder___current_location(val_t p0
){
1022 struct {struct stack_frame_t me
;} fra
;
1024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1025 fra
.me
.file
= LOCATE_icode_builder
;
1027 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___current_location
;
1028 fra
.me
.has_broke
= 0;
1029 fra
.me
.REG_size
= 1;
1030 fra
.me
.REG
[0] = NIT_NULL
;
1032 fra
.me
.REG
[0] = ATTR_icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
1033 /* ./icode//icode_builder.nit:222 */
1034 stack_frame_head
= fra
.me
.prev
;
1035 return fra
.me
.REG
[0];
1037 void icode_builder___ICodeBuilder___current_location__eq(val_t p0
, val_t p1
){
1038 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1040 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1041 fra
.me
.file
= LOCATE_icode_builder
;
1043 fra
.me
.meth
= LOCATE_icode_builder___ICodeBuilder___current_location__eq
;
1044 fra
.me
.has_broke
= 0;
1045 fra
.me
.REG_size
= 2;
1046 fra
.me
.REG
[0] = NIT_NULL
;
1047 fra
.me
.REG
[1] = NIT_NULL
;
1050 /* ./icode//icode_builder.nit:222 */
1051 ATTR_icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1052 stack_frame_head
= fra
.me
.prev
;
1055 val_t
icode_builder___MMSignature___generate_empty_iroutine(val_t p0
){
1056 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1060 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1061 fra
.me
.file
= LOCATE_icode_builder
;
1063 fra
.me
.meth
= LOCATE_icode_builder___MMSignature___generate_empty_iroutine
;
1064 fra
.me
.has_broke
= 0;
1065 fra
.me
.REG_size
= 4;
1066 fra
.me
.REG
[0] = NIT_NULL
;
1067 fra
.me
.REG
[1] = NIT_NULL
;
1068 fra
.me
.REG
[2] = NIT_NULL
;
1069 fra
.me
.REG
[3] = NIT_NULL
;
1071 fra
.me
.REG
[1] = NEW_Array_array___Array___init();
1072 fra
.me
.REG
[2] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1073 fra
.me
.REG
[2] = NEW_IRegister_icode_base___IRegister___init(fra
.me
.REG
[2]);
1074 /* ./icode//icode_builder.nit:231 */
1075 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1077 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1078 fra
.me
.REG
[2] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
1079 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1080 /* ./icode//icode_builder.nit:232 */
1082 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1083 if (UNTAG_Bool(REGB1
)) {
1084 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1085 fra
.me
.REG
[3] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB1
);
1086 fra
.me
.REG
[3] = NEW_IRegister_icode_base___IRegister___init(fra
.me
.REG
[3]);
1087 /* ./icode//icode_builder.nit:233 */
1088 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1090 /* ./icode//icode_builder.nit:232 */
1093 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1096 fra
.me
.REG
[2] = NIT_NULL
;
1097 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1098 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1099 /* ./icode//icode_builder.nit:237 */
1100 if (UNTAG_Bool(REGB1
)) {
1102 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1103 if (UNTAG_Bool(REGB0
)) {
1104 REGB0
= TAG_Bool(false);
1107 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1111 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1112 if (UNTAG_Bool(REGB1
)) {
1113 fra
.me
.REG
[3] = NEW_IRegister_icode_base___IRegister___init(fra
.me
.REG
[3]);
1114 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1115 /* ./icode//icode_builder.nit:238 */
1117 fra
.me
.REG
[2] = NEW_IRoutine_icode_base___IRoutine___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1118 fra
.me
.REG
[1] = NIT_NULL
;
1119 fra
.me
.REG
[3] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1120 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1121 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1122 /* ./icode//icode_builder.nit:242 */
1123 if (UNTAG_Bool(REGB1
)) {
1124 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
1125 fra
.me
.REG
[1] = fra
.me
.REG
[3];
1126 fra
.me
.REG
[0] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1127 fra
.me
.REG
[0] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1128 /* ./icode//icode_builder.nit:244 */
1130 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1131 if (UNTAG_Bool(REGB1
)) {
1132 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1133 fra
.me
.REG
[3] = NEW_IClosureDecl_icode_base___IClosureDecl___init(fra
.me
.REG
[3]);
1134 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1135 /* ./icode//icode_builder.nit:245 */
1136 if (UNTAG_Bool(REGB1
)) {
1137 fprintf(stderr
, "Reciever is null");
1138 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 245);
1141 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1143 /* ./icode//icode_builder.nit:244 */
1146 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1149 /* ./icode//icode_builder.nit:247 */
1150 CALL_icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1152 /* ./icode//icode_builder.nit:249 */
1155 stack_frame_head
= fra
.me
.prev
;
1156 return fra
.me
.REG
[2];
1158 val_t
icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0
, val_t p1
){
1159 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1163 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1164 fra
.me
.file
= LOCATE_icode_builder
;
1166 fra
.me
.meth
= LOCATE_icode_builder___MMSignature___generate_empty_iclosuredef
;
1167 fra
.me
.has_broke
= 0;
1168 fra
.me
.REG_size
= 5;
1169 fra
.me
.REG
[0] = NIT_NULL
;
1170 fra
.me
.REG
[1] = NIT_NULL
;
1171 fra
.me
.REG
[2] = NIT_NULL
;
1172 fra
.me
.REG
[3] = NIT_NULL
;
1173 fra
.me
.REG
[4] = NIT_NULL
;
1176 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
1178 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1179 fra
.me
.REG
[3] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
1180 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1181 /* ./icode//icode_builder.nit:256 */
1183 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1184 if (UNTAG_Bool(REGB1
)) {
1185 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1186 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB1
);
1187 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1188 /* ./icode//icode_builder.nit:257 */
1189 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1191 /* ./icode//icode_builder.nit:256 */
1194 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1197 fra
.me
.REG
[3] = NIT_NULL
;
1198 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1199 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1200 /* ./icode//icode_builder.nit:261 */
1201 if (UNTAG_Bool(REGB1
)) {
1203 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1204 if (UNTAG_Bool(REGB0
)) {
1205 REGB0
= TAG_Bool(false);
1208 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1212 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1213 if (UNTAG_Bool(REGB1
)) {
1214 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1215 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1216 /* ./icode//icode_builder.nit:262 */
1218 fra
.me
.REG
[3] = NEW_IClosureDef_icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1219 fra
.me
.REG
[2] = NIT_NULL
;
1220 fra
.me
.REG
[4] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1221 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1222 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1223 /* ./icode//icode_builder.nit:266 */
1224 if (UNTAG_Bool(REGB1
)) {
1225 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
1226 fra
.me
.REG
[2] = fra
.me
.REG
[4];
1227 fra
.me
.REG
[0] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1228 fra
.me
.REG
[0] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1229 /* ./icode//icode_builder.nit:268 */
1231 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1232 if (UNTAG_Bool(REGB1
)) {
1233 fra
.me
.REG
[4] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1234 fra
.me
.REG
[4] = NEW_IClosureDecl_icode_base___IClosureDecl___init(fra
.me
.REG
[4]);
1235 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1236 /* ./icode//icode_builder.nit:269 */
1237 if (UNTAG_Bool(REGB1
)) {
1238 fprintf(stderr
, "Reciever is null");
1239 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_builder
, 269);
1242 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1244 /* ./icode//icode_builder.nit:268 */
1247 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1250 /* ./icode//icode_builder.nit:271 */
1251 CALL_icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1253 /* ./icode//icode_builder.nit:273 */
1256 stack_frame_head
= fra
.me
.prev
;
1257 return fra
.me
.REG
[3];