1 /* This C file is generated by NIT to compile module icode_generation. */
2 #include "icode_generation._sep.h"
3 void icode_generation___A2IContext___stmt(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_icode_generation
;
11 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___stmt
;
14 fra
.me
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[2] = NIT_NULL
;
17 fra
.me
.REG
[3] = NIT_NULL
;
20 /* ./syntax//icode_generation.nit:28 */
21 fra
.me
.REG
[2] = fra
.me
.REG
[0];
22 /* ./syntax//icode_generation.nit:30 */
23 fra
.me
.REG
[3] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
24 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
25 if (UNTAG_Bool(REGB0
)) {
27 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
28 if (UNTAG_Bool(REGB1
)) {
29 REGB1
= TAG_Bool(false);
32 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
36 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
37 if (UNTAG_Bool(REGB0
)) {
38 /* ./syntax//icode_generation.nit:31 */
39 fra
.me
.REG
[3] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
40 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
41 if (UNTAG_Bool(REGB0
)) {
42 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 31);
44 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
45 CALL_icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
47 /* ./syntax//icode_generation.nit:32 */
48 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
49 fra
.me
.REG
[3] = CALL_parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
50 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
51 if (UNTAG_Bool(REGB0
)) {
53 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
54 if (UNTAG_Bool(REGB1
)) {
55 REGB1
= TAG_Bool(false);
58 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
62 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
63 if (UNTAG_Bool(REGB0
)) {
64 /* ./syntax//icode_generation.nit:33 */
65 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
66 fra
.me
.REG
[3] = CALL_parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
67 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
68 if (UNTAG_Bool(REGB0
)) {
69 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 33);
71 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
72 CALL_icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
75 /* ./syntax//icode_generation.nit:35 */
76 CALL_SUPER_icode_generation___A2IContext___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
77 stack_frame_head
= fra
.me
.prev
;
80 val_t
icode_generation___A2IContext___add_new_array(val_t p0
, val_t p1
, val_t p2
){
81 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
85 static val_t once_value_1
; /* Once value */
86 static val_t once_value_2
; /* Once value */
87 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
88 fra
.me
.file
= LOCATE_icode_generation
;
90 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___add_new_array
;
93 fra
.me
.REG
[0] = NIT_NULL
;
94 fra
.me
.REG
[1] = NIT_NULL
;
95 fra
.me
.REG
[2] = NIT_NULL
;
96 fra
.me
.REG
[3] = NIT_NULL
;
97 fra
.me
.REG
[4] = NIT_NULL
;
101 /* ./syntax//icode_generation.nit:41 */
102 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
105 fra
.me
.REG
[3] = BOX_NativeString("with_capacity");
107 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
108 once_value_2
= fra
.me
.REG
[3];
109 register_static_object(&once_value_2
);
110 } else fra
.me
.REG
[3] = once_value_2
;
111 fra
.me
.REG
[3] = fra
.me
.REG
[3];
112 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
113 once_value_1
= fra
.me
.REG
[3];
114 register_static_object(&once_value_1
);
115 } else fra
.me
.REG
[3] = once_value_1
;
116 fra
.me
.REG
[3] = fra
.me
.REG
[3];
117 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3]);
118 /* ./syntax//icode_generation.nit:42 */
119 fra
.me
.REG
[2] = CALL_string___Object___to_s(REGB0
)(REGB0
);
120 fra
.me
.REG
[2] = NEW_IIntValue_icode_base___IIntValue___init(fra
.me
.REG
[2]);
121 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
122 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
123 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
124 /* ./syntax//icode_generation.nit:43 */
126 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
127 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
128 fra
.me
.REG
[2] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
129 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]);
132 stack_frame_head
= fra
.me
.prev
;
133 return fra
.me
.REG
[1];
135 void icode_generation___A2IContext___add_call_array_add(val_t p0
, val_t p1
, val_t p2
){
136 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
139 static val_t once_value_1
; /* Once value */
140 static val_t once_value_2
; /* Once value */
141 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
142 fra
.me
.file
= LOCATE_icode_generation
;
144 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___add_call_array_add
;
145 fra
.me
.has_broke
= 0;
147 fra
.me
.REG
[0] = NIT_NULL
;
148 fra
.me
.REG
[1] = NIT_NULL
;
149 fra
.me
.REG
[2] = NIT_NULL
;
150 fra
.me
.REG
[3] = NIT_NULL
;
151 fra
.me
.REG
[4] = NIT_NULL
;
152 fra
.me
.REG
[5] = NIT_NULL
;
156 /* ./syntax//icode_generation.nit:49 */
157 fra
.me
.REG
[3] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
158 /* ./syntax//icode_generation.nit:50 */
159 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
162 fra
.me
.REG
[5] = BOX_NativeString("add");
164 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
165 once_value_2
= fra
.me
.REG
[5];
166 register_static_object(&once_value_2
);
167 } else fra
.me
.REG
[5] = once_value_2
;
168 fra
.me
.REG
[5] = fra
.me
.REG
[5];
169 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
170 once_value_1
= fra
.me
.REG
[5];
171 register_static_object(&once_value_1
);
172 } else fra
.me
.REG
[5] = once_value_1
;
173 fra
.me
.REG
[5] = fra
.me
.REG
[5];
174 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[5]);
175 /* ./syntax//icode_generation.nit:51 */
177 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
178 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
179 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
180 fra
.me
.REG
[3] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[3]);
181 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
182 stack_frame_head
= fra
.me
.prev
;
185 val_t
icode_generation___A2IContext___variable(val_t p0
, val_t p1
){
186 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
189 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
190 fra
.me
.file
= LOCATE_icode_generation
;
192 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___variable
;
193 fra
.me
.has_broke
= 0;
195 fra
.me
.REG
[0] = NIT_NULL
;
196 fra
.me
.REG
[1] = NIT_NULL
;
197 fra
.me
.REG
[2] = NIT_NULL
;
198 fra
.me
.REG
[3] = NIT_NULL
;
201 /* ./syntax//icode_generation.nit:58 */
202 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
203 if (UNTAG_Bool(REGB0
)) {
205 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_icode_generation
, 58);
207 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
208 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
209 if (UNTAG_Bool(REGB0
)) {
210 /* ./syntax//icode_generation.nit:59 */
211 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
212 if (UNTAG_Bool(REGB0
)) {
214 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_icode_generation
, 59);
216 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
217 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
220 /* ./syntax//icode_generation.nit:61 */
221 fra
.me
.REG
[3] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
222 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
223 if (UNTAG_Bool(REGB0
)) {
225 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 61);
227 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
228 /* ./syntax//icode_generation.nit:62 */
229 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
230 if (UNTAG_Bool(REGB0
)) {
232 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_icode_generation
, 62);
234 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
235 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
236 /* ./syntax//icode_generation.nit:63 */
237 fra
.me
.REG
[2] = fra
.me
.REG
[3];
241 stack_frame_head
= fra
.me
.prev
;
242 return fra
.me
.REG
[2];
244 val_t
icode_generation___A2IContext___closurevariables(val_t p0
){
245 struct {struct stack_frame_t me
;} fra
;
248 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
249 fra
.me
.file
= LOCATE_icode_generation
;
251 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___closurevariables
;
252 fra
.me
.has_broke
= 0;
254 fra
.me
.REG
[0] = NIT_NULL
;
256 /* ./syntax//icode_generation.nit:70 */
257 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0])!=NIT_NULL
);
258 if (UNTAG_Bool(REGB0
)) {
260 nit_abort("Uninitialized attribute %s", "_closurevariables", LOCATE_icode_generation
, 70);
262 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0]);
263 stack_frame_head
= fra
.me
.prev
;
264 return fra
.me
.REG
[0];
266 val_t
icode_generation___A2IContext___visitor(val_t p0
){
267 struct {struct stack_frame_t me
;} fra
;
270 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
271 fra
.me
.file
= LOCATE_icode_generation
;
273 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___visitor
;
274 fra
.me
.has_broke
= 0;
276 fra
.me
.REG
[0] = NIT_NULL
;
278 /* ./syntax//icode_generation.nit:73 */
279 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
280 if (UNTAG_Bool(REGB0
)) {
282 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_icode_generation
, 73);
284 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[0]);
285 stack_frame_head
= fra
.me
.prev
;
286 return fra
.me
.REG
[0];
288 val_t
icode_generation___A2IContext___return_seq(val_t p0
){
289 struct {struct stack_frame_t me
;} fra
;
291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
292 fra
.me
.file
= LOCATE_icode_generation
;
294 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_seq
;
295 fra
.me
.has_broke
= 0;
297 fra
.me
.REG
[0] = NIT_NULL
;
299 /* ./syntax//icode_generation.nit:76 */
300 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]);
301 stack_frame_head
= fra
.me
.prev
;
302 return fra
.me
.REG
[0];
304 void icode_generation___A2IContext___return_seq__eq(val_t p0
, val_t p1
){
305 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
307 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
308 fra
.me
.file
= LOCATE_icode_generation
;
310 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_seq__eq
;
311 fra
.me
.has_broke
= 0;
313 fra
.me
.REG
[0] = NIT_NULL
;
314 fra
.me
.REG
[1] = NIT_NULL
;
317 /* ./syntax//icode_generation.nit:76 */
318 ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
319 stack_frame_head
= fra
.me
.prev
;
322 val_t
icode_generation___A2IContext___return_value(val_t p0
){
323 struct {struct stack_frame_t me
;} fra
;
325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
326 fra
.me
.file
= LOCATE_icode_generation
;
328 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_value
;
329 fra
.me
.has_broke
= 0;
331 fra
.me
.REG
[0] = NIT_NULL
;
333 /* ./syntax//icode_generation.nit:79 */
334 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[0]);
335 stack_frame_head
= fra
.me
.prev
;
336 return fra
.me
.REG
[0];
338 void icode_generation___A2IContext___return_value__eq(val_t p0
, val_t p1
){
339 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
341 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
342 fra
.me
.file
= LOCATE_icode_generation
;
344 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_value__eq
;
345 fra
.me
.has_broke
= 0;
347 fra
.me
.REG
[0] = NIT_NULL
;
348 fra
.me
.REG
[1] = NIT_NULL
;
351 /* ./syntax//icode_generation.nit:79 */
352 ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
353 stack_frame_head
= fra
.me
.prev
;
356 val_t
icode_generation___A2IContext___method(val_t p0
){
357 struct {struct stack_frame_t me
;} fra
;
359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
360 fra
.me
.file
= LOCATE_icode_generation
;
362 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___method
;
363 fra
.me
.has_broke
= 0;
365 fra
.me
.REG
[0] = NIT_NULL
;
367 /* ./syntax//icode_generation.nit:82 */
368 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____method(fra
.me
.REG
[0]);
369 stack_frame_head
= fra
.me
.prev
;
370 return fra
.me
.REG
[0];
372 void icode_generation___A2IContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
373 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_A2IContext
].i
;
374 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
376 if (init_table
[itpos0
]) return;
377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
378 fra
.me
.file
= LOCATE_icode_generation
;
380 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___init
;
381 fra
.me
.has_broke
= 0;
383 fra
.me
.REG
[0] = NIT_NULL
;
384 fra
.me
.REG
[1] = NIT_NULL
;
385 fra
.me
.REG
[2] = NIT_NULL
;
386 fra
.me
.REG
[3] = NIT_NULL
;
387 fra
.me
.REG
[4] = NIT_NULL
;
388 fra
.me
.REG
[5] = NIT_NULL
;
393 /* ./syntax//icode_generation.nit:85 */
394 fra
.me
.REG
[4] = fra
.me
.REG
[0];
395 /* ./syntax//icode_generation.nit:87 */
396 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
397 CALL_icode_builder___ICodeBuilder___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
398 /* ./syntax//icode_generation.nit:88 */
399 ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
400 /* ./syntax//icode_generation.nit:89 */
401 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
402 ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
403 /* ./syntax//icode_generation.nit:90 */
404 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
405 ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
406 /* ./syntax//icode_generation.nit:91 */
407 ATTR_icode_generation___A2IContext____method(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
408 stack_frame_head
= fra
.me
.prev
;
409 init_table
[itpos0
] = 1;
412 void icode_generation___A2IContext___invoke_super_init_calls_after(val_t p0
, val_t p1
){
413 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
421 fra
.me
.file
= LOCATE_icode_generation
;
423 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___invoke_super_init_calls_after
;
424 fra
.me
.has_broke
= 0;
426 fra
.me
.REG
[0] = NIT_NULL
;
427 fra
.me
.REG
[1] = NIT_NULL
;
428 fra
.me
.REG
[2] = NIT_NULL
;
429 fra
.me
.REG
[3] = NIT_NULL
;
430 fra
.me
.REG
[4] = NIT_NULL
;
431 fra
.me
.REG
[5] = NIT_NULL
;
434 /* ./syntax//icode_generation.nit:97 */
435 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
436 /* ./syntax//icode_generation.nit:98 */
437 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
438 if (UNTAG_Bool(REGB0
)) {
440 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 98);
442 /* ./syntax//icode_generation.nit:99 */
443 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
444 if (UNTAG_Bool(REGB0
)) {
445 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 99);
447 fra
.me
.REG
[2] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
448 /* ./syntax//icode_generation.nit:100 */
449 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_AConcreteInitPropdef
, ID_AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
450 if (UNTAG_Bool(REGB0
)) {
452 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 100);
454 /* ./syntax//icode_generation.nit:102 */
455 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
456 if (UNTAG_Bool(REGB0
)) {
457 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 102);
459 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
460 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
461 if (UNTAG_Bool(REGB0
)) {
464 /* ./syntax//icode_generation.nit:103 */
466 /* ./syntax//icode_generation.nit:104 */
468 /* ./syntax//icode_generation.nit:105 */
469 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
470 if (UNTAG_Bool(REGB2
)) {
472 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
473 if (UNTAG_Bool(REGB3
)) {
474 REGB3
= TAG_Bool(false);
477 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
481 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
482 if (UNTAG_Bool(REGB2
)) {
483 /* ./syntax//icode_generation.nit:106 */
485 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
486 if (UNTAG_Bool(REGB2
)) {
487 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 106);
489 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
490 /* ./../lib/standard//collection//array.nit:243 */
492 /* ./../lib/standard//collection//array.nit:245 */
494 /* ./../lib/standard//kernel.nit:213 */
495 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
496 /* ./../lib/standard//collection//array.nit:245 */
497 if (UNTAG_Bool(REGB3
)) {
498 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
499 if (UNTAG_Bool(REGB3
)) {
501 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
503 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
504 /* ./../lib/standard//kernel.nit:212 */
505 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
507 /* ./../lib/standard//collection//array.nit:245 */
508 REGB4
= TAG_Bool(false);
511 if (UNTAG_Bool(REGB3
)) {
513 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
515 /* ./../lib/standard//collection//array.nit:246 */
516 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
517 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
518 if (UNTAG_Bool(REGB3
)) {
519 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
521 /* ./../lib/standard//collection//array.nit:654 */
522 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
523 /* ./../lib/standard//collection//array.nit:246 */
526 /* ./syntax//icode_generation.nit:106 */
527 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
528 if (UNTAG_Bool(REGB2
)) {
530 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
531 if (UNTAG_Bool(REGB3
)) {
532 REGB3
= TAG_Bool(false);
535 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
539 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
540 if (UNTAG_Bool(REGB2
)) {
541 /* ./syntax//icode_generation.nit:107 */
543 /* ./../lib/standard//kernel.nit:215 */
544 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
545 /* ./syntax//icode_generation.nit:107 */
548 /* ./syntax//icode_generation.nit:106 */
553 /* ./syntax//icode_generation.nit:109 */
555 /* ./../lib/standard//kernel.nit:215 */
556 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
557 /* ./syntax//icode_generation.nit:109 */
559 /* ./syntax//icode_generation.nit:111 */
561 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
562 if (UNTAG_Bool(REGB2
)) {
563 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 111);
565 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
566 /* ./../lib/standard//collection//array.nit:243 */
568 /* ./../lib/standard//collection//array.nit:245 */
570 /* ./../lib/standard//kernel.nit:213 */
571 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
572 /* ./../lib/standard//collection//array.nit:245 */
573 if (UNTAG_Bool(REGB3
)) {
574 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
575 if (UNTAG_Bool(REGB3
)) {
577 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
579 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
580 /* ./../lib/standard//kernel.nit:212 */
581 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
583 /* ./../lib/standard//collection//array.nit:245 */
584 REGB4
= TAG_Bool(false);
587 if (UNTAG_Bool(REGB3
)) {
589 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
591 /* ./../lib/standard//collection//array.nit:246 */
592 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
593 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
594 if (UNTAG_Bool(REGB3
)) {
595 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
597 /* ./../lib/standard//collection//array.nit:654 */
598 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
599 /* ./../lib/standard//collection//array.nit:246 */
602 /* ./syntax//icode_generation.nit:111 */
603 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
604 if (UNTAG_Bool(REGB2
)) {
606 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
607 if (UNTAG_Bool(REGB3
)) {
608 REGB3
= TAG_Bool(false);
611 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
615 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
616 if (UNTAG_Bool(REGB2
)) {
617 /* ./syntax//icode_generation.nit:112 */
619 /* ./../lib/standard//kernel.nit:215 */
620 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
621 /* ./syntax//icode_generation.nit:112 */
624 /* ./syntax//icode_generation.nit:111 */
629 /* ./syntax//icode_generation.nit:114 */
631 /* ./../lib/standard//kernel.nit:215 */
632 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
633 /* ./syntax//icode_generation.nit:114 */
636 /* ./syntax//icode_generation.nit:116 */
637 fra
.me
.REG
[1] = NIT_NULL
;
638 /* ./syntax//icode_generation.nit:117 */
639 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
640 if (UNTAG_Bool(REGB2
)) {
641 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 117);
643 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
644 /* ./../lib/standard//collection//array.nit:23 */
645 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
646 if (UNTAG_Bool(REGB2
)) {
648 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
650 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
651 /* ./../lib/standard//kernel.nit:212 */
652 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
653 /* ./syntax//icode_generation.nit:117 */
654 if (UNTAG_Bool(REGB2
)) {
655 /* ./syntax//icode_generation.nit:118 */
656 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
657 if (UNTAG_Bool(REGB2
)) {
658 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 118);
660 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
661 /* ./../lib/standard//collection//array.nit:245 */
663 /* ./../lib/standard//kernel.nit:213 */
664 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
665 /* ./../lib/standard//collection//array.nit:245 */
666 if (UNTAG_Bool(REGB2
)) {
667 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
668 if (UNTAG_Bool(REGB2
)) {
670 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
672 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
673 /* ./../lib/standard//kernel.nit:212 */
674 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
676 /* ./../lib/standard//collection//array.nit:245 */
677 REGB3
= TAG_Bool(false);
680 if (UNTAG_Bool(REGB2
)) {
682 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
684 /* ./../lib/standard//collection//array.nit:246 */
685 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
686 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
687 if (UNTAG_Bool(REGB2
)) {
688 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
690 /* ./../lib/standard//collection//array.nit:654 */
691 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
692 /* ./../lib/standard//collection//array.nit:246 */
695 /* ./syntax//icode_generation.nit:118 */
696 fra
.me
.REG
[1] = fra
.me
.REG
[3];
698 /* ./syntax//icode_generation.nit:120 */
699 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
700 if (UNTAG_Bool(REGB1
)) {
701 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 120);
703 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
704 /* ./../lib/standard//collection//array.nit:23 */
705 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
706 if (UNTAG_Bool(REGB1
)) {
708 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
710 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
711 /* ./syntax//icode_generation.nit:121 */
713 /* ./../lib/standard//kernel.nit:212 */
714 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
715 /* ./syntax//icode_generation.nit:121 */
716 if (UNTAG_Bool(REGB2
)) {
717 /* ./syntax//icode_generation.nit:122 */
718 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
719 if (UNTAG_Bool(REGB2
)) {
720 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 122);
722 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
723 /* ./../lib/standard//collection//array.nit:243 */
725 /* ./../lib/standard//collection//array.nit:245 */
727 /* ./../lib/standard//kernel.nit:213 */
728 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
729 /* ./../lib/standard//collection//array.nit:245 */
730 if (UNTAG_Bool(REGB3
)) {
731 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
732 if (UNTAG_Bool(REGB3
)) {
734 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
736 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
737 /* ./../lib/standard//kernel.nit:212 */
738 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
740 /* ./../lib/standard//collection//array.nit:245 */
741 REGB4
= TAG_Bool(false);
744 if (UNTAG_Bool(REGB3
)) {
746 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
748 /* ./../lib/standard//collection//array.nit:246 */
749 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
750 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
751 if (UNTAG_Bool(REGB3
)) {
752 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
754 /* ./../lib/standard//collection//array.nit:654 */
755 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
756 /* ./../lib/standard//collection//array.nit:246 */
759 /* ./syntax//icode_generation.nit:123 */
760 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[1]));
761 if (UNTAG_Bool(REGB2
)) {
763 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
766 if (UNTAG_Bool(REGB2
)) {
769 /* ./syntax//icode_generation.nit:124 */
770 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
771 /* ./syntax//icode_generation.nit:125 */
772 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
773 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
774 if (UNTAG_Bool(REGB2
)) {
775 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 125);
777 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
779 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
780 if (UNTAG_Bool(REGB4
)) {
782 /* ./../lib/standard//kernel.nit:207 */
783 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
784 /* ./syntax//icode_generation.nit:125 */
787 if (UNTAG_Bool(REGB4
)) {
788 /* ./syntax//icode_generation.nit:126 */
789 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
790 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
791 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
792 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
794 /* ./syntax//icode_generation.nit:128 */
795 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
796 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
797 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[5])(fra
.me
.REG
[5], (&(fra
.me
)), ((fun_t
)OC_icode_generation___A2IContext___invoke_super_init_calls_after_9
));
799 /* ./syntax//icode_generation.nit:132 */
800 fra
.me
.REG
[4] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
801 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
802 /* ./syntax//icode_generation.nit:133 */
804 /* ./../lib/standard//kernel.nit:215 */
805 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
806 /* ./syntax//icode_generation.nit:133 */
809 /* ./syntax//icode_generation.nit:121 */
815 stack_frame_head
= fra
.me
.prev
;
818 void OC_icode_generation___A2IContext___invoke_super_init_calls_after_9(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
819 struct {struct stack_frame_t me
;} fra
;
822 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
823 fra
.me
.file
= LOCATE_icode_generation
;
825 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___invoke_super_init_calls_after
;
826 fra
.me
.has_broke
= 0;
828 fra
.me
.REG
[0] = NIT_NULL
;
829 fra
.me
.closure_ctx
= closctx_param
;
830 fra
.me
.closure_funs
= CREG
;
833 /* ./syntax//icode_generation.nit:129 */
834 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
835 stack_frame_head
= fra
.me
.prev
;
838 void icode_generation___A2IContext___generate_stmt(val_t p0
, val_t p1
){
839 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
843 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
844 fra
.me
.file
= LOCATE_icode_generation
;
846 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___generate_stmt
;
847 fra
.me
.has_broke
= 0;
849 fra
.me
.REG
[0] = NIT_NULL
;
850 fra
.me
.REG
[1] = NIT_NULL
;
851 fra
.me
.REG
[2] = NIT_NULL
;
854 /* ./syntax//icode_generation.nit:143 */
855 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
856 if (UNTAG_Bool(REGB0
)) {
858 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
859 if (UNTAG_Bool(REGB1
)) {
860 REGB1
= TAG_Bool(false);
863 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
867 if (UNTAG_Bool(REGB0
)) {
870 /* ./syntax//icode_generation.nit:144 */
871 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
872 /* ./syntax//icode_generation.nit:145 */
873 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
874 /* ./syntax//icode_generation.nit:146 */
875 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
876 if (UNTAG_Bool(REGB0
)) {
877 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 146);
879 CALL_icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
880 /* ./syntax//icode_generation.nit:147 */
881 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
883 stack_frame_head
= fra
.me
.prev
;
886 val_t
icode_generation___A2IContext___generate_expr(val_t p0
, val_t p1
){
887 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
890 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
891 fra
.me
.file
= LOCATE_icode_generation
;
893 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___generate_expr
;
894 fra
.me
.has_broke
= 0;
896 fra
.me
.REG
[0] = NIT_NULL
;
897 fra
.me
.REG
[1] = NIT_NULL
;
898 fra
.me
.REG
[2] = NIT_NULL
;
901 /* ./syntax//icode_generation.nit:153 */
902 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
903 /* ./syntax//icode_generation.nit:154 */
904 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
905 /* ./syntax//icode_generation.nit:155 */
906 fra
.me
.REG
[1] = CALL_icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
907 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
908 if (UNTAG_Bool(REGB0
)) {
910 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 155);
912 /* ./syntax//icode_generation.nit:156 */
913 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
914 /* ./syntax//icode_generation.nit:157 */
917 stack_frame_head
= fra
.me
.prev
;
918 return fra
.me
.REG
[1];
920 val_t
icode_generation___EscapableBlock___break_seq(val_t p0
){
921 struct {struct stack_frame_t me
;} fra
;
923 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
924 fra
.me
.file
= LOCATE_icode_generation
;
926 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_seq
;
927 fra
.me
.has_broke
= 0;
929 fra
.me
.REG
[0] = NIT_NULL
;
931 /* ./syntax//icode_generation.nit:162 */
932 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]);
933 stack_frame_head
= fra
.me
.prev
;
934 return fra
.me
.REG
[0];
936 void icode_generation___EscapableBlock___break_seq__eq(val_t p0
, val_t p1
){
937 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
940 fra
.me
.file
= LOCATE_icode_generation
;
942 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_seq__eq
;
943 fra
.me
.has_broke
= 0;
945 fra
.me
.REG
[0] = NIT_NULL
;
946 fra
.me
.REG
[1] = NIT_NULL
;
949 /* ./syntax//icode_generation.nit:162 */
950 ATTR_icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
951 stack_frame_head
= fra
.me
.prev
;
954 val_t
icode_generation___EscapableBlock___continue_seq(val_t p0
){
955 struct {struct stack_frame_t me
;} fra
;
957 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
958 fra
.me
.file
= LOCATE_icode_generation
;
960 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_seq
;
961 fra
.me
.has_broke
= 0;
963 fra
.me
.REG
[0] = NIT_NULL
;
965 /* ./syntax//icode_generation.nit:165 */
966 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]);
967 stack_frame_head
= fra
.me
.prev
;
968 return fra
.me
.REG
[0];
970 void icode_generation___EscapableBlock___continue_seq__eq(val_t p0
, val_t p1
){
971 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
973 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
974 fra
.me
.file
= LOCATE_icode_generation
;
976 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_seq__eq
;
977 fra
.me
.has_broke
= 0;
979 fra
.me
.REG
[0] = NIT_NULL
;
980 fra
.me
.REG
[1] = NIT_NULL
;
983 /* ./syntax//icode_generation.nit:165 */
984 ATTR_icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
985 stack_frame_head
= fra
.me
.prev
;
988 val_t
icode_generation___EscapableBlock___break_value(val_t p0
){
989 struct {struct stack_frame_t me
;} fra
;
991 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
992 fra
.me
.file
= LOCATE_icode_generation
;
994 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_value
;
995 fra
.me
.has_broke
= 0;
997 fra
.me
.REG
[0] = NIT_NULL
;
999 /* ./syntax//icode_generation.nit:168 */
1000 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]);
1001 stack_frame_head
= fra
.me
.prev
;
1002 return fra
.me
.REG
[0];
1004 void icode_generation___EscapableBlock___break_value__eq(val_t p0
, val_t p1
){
1005 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1007 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1008 fra
.me
.file
= LOCATE_icode_generation
;
1010 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_value__eq
;
1011 fra
.me
.has_broke
= 0;
1012 fra
.me
.REG_size
= 2;
1013 fra
.me
.REG
[0] = NIT_NULL
;
1014 fra
.me
.REG
[1] = NIT_NULL
;
1017 /* ./syntax//icode_generation.nit:168 */
1018 ATTR_icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1019 stack_frame_head
= fra
.me
.prev
;
1022 val_t
icode_generation___EscapableBlock___continue_value(val_t p0
){
1023 struct {struct stack_frame_t me
;} fra
;
1025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1026 fra
.me
.file
= LOCATE_icode_generation
;
1028 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_value
;
1029 fra
.me
.has_broke
= 0;
1030 fra
.me
.REG_size
= 1;
1031 fra
.me
.REG
[0] = NIT_NULL
;
1033 /* ./syntax//icode_generation.nit:171 */
1034 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]);
1035 stack_frame_head
= fra
.me
.prev
;
1036 return fra
.me
.REG
[0];
1038 void icode_generation___EscapableBlock___continue_value__eq(val_t p0
, val_t p1
){
1039 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1041 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1042 fra
.me
.file
= LOCATE_icode_generation
;
1044 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_value__eq
;
1045 fra
.me
.has_broke
= 0;
1046 fra
.me
.REG_size
= 2;
1047 fra
.me
.REG
[0] = NIT_NULL
;
1048 fra
.me
.REG
[1] = NIT_NULL
;
1051 /* ./syntax//icode_generation.nit:171 */
1052 ATTR_icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1053 stack_frame_head
= fra
.me
.prev
;
1056 void icode_generation___MMSrcModule___generate_icode(val_t p0
, val_t p1
){
1057 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1060 fra
.me
.file
= LOCATE_icode_generation
;
1062 fra
.me
.meth
= LOCATE_icode_generation___MMSrcModule___generate_icode
;
1063 fra
.me
.has_broke
= 0;
1064 fra
.me
.REG_size
= 2;
1065 fra
.me
.REG
[0] = NIT_NULL
;
1066 fra
.me
.REG
[1] = NIT_NULL
;
1069 /* ./syntax//icode_generation.nit:179 */
1070 fra
.me
.REG
[1] = NEW_A2IVisitor_icode_generation___A2IVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1071 /* ./syntax//icode_generation.nit:180 */
1072 fra
.me
.REG
[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1073 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_icode_generation___MMSrcModule___generate_icode_1
));
1074 stack_frame_head
= fra
.me
.prev
;
1077 void OC_icode_generation___MMSrcModule___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1078 struct {struct stack_frame_t me
;} fra
;
1081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1082 fra
.me
.file
= LOCATE_icode_generation
;
1084 fra
.me
.meth
= LOCATE_icode_generation___MMSrcModule___generate_icode
;
1085 fra
.me
.has_broke
= 0;
1086 fra
.me
.REG_size
= 1;
1087 fra
.me
.REG
[0] = NIT_NULL
;
1088 fra
.me
.closure_ctx
= closctx_param
;
1089 fra
.me
.closure_funs
= CREG
;
1091 CREG
[0] = clos_fun0
;
1092 /* ./syntax//icode_generation.nit:181 */
1093 fra
.me
.REG
[0] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1094 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_icode_generation___MMSrcModule___generate_icode_2
));
1095 stack_frame_head
= fra
.me
.prev
;
1098 void OC_icode_generation___MMSrcModule___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1099 struct {struct stack_frame_t me
;} fra
;
1103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1104 fra
.me
.file
= LOCATE_icode_generation
;
1106 fra
.me
.meth
= LOCATE_icode_generation___MMSrcModule___generate_icode
;
1107 fra
.me
.has_broke
= 0;
1108 fra
.me
.REG_size
= 1;
1109 fra
.me
.REG
[0] = NIT_NULL
;
1110 fra
.me
.closure_ctx
= closctx_param
;
1111 fra
.me
.closure_funs
= CREG
;
1113 CREG
[0] = clos_fun0
;
1114 /* ./syntax//icode_generation.nit:182 */
1115 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
1116 if (UNTAG_Bool(REGB0
)) {
1117 /* ./syntax//icode_generation.nit:183 */
1118 CALL_icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1120 /* ./syntax//icode_generation.nit:184 */
1121 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMSrcAttribute
, ID_MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1122 if (UNTAG_Bool(REGB0
)) {
1123 /* ./syntax//icode_generation.nit:185 */
1124 CALL_icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1127 stack_frame_head
= fra
.me
.prev
;
1130 val_t
icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1131 struct {struct stack_frame_t me
;} fra
;
1133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1134 fra
.me
.file
= LOCATE_icode_generation
;
1136 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___iroutine
;
1137 fra
.me
.has_broke
= 0;
1138 fra
.me
.REG_size
= 1;
1139 fra
.me
.REG
[0] = NIT_NULL
;
1141 /* ./syntax//icode_generation.nit:193 */
1142 fra
.me
.REG
[0] = ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1143 stack_frame_head
= fra
.me
.prev
;
1144 return fra
.me
.REG
[0];
1146 void icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1147 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1150 fra
.me
.file
= LOCATE_icode_generation
;
1152 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___iroutine__eq
;
1153 fra
.me
.has_broke
= 0;
1154 fra
.me
.REG_size
= 2;
1155 fra
.me
.REG
[0] = NIT_NULL
;
1156 fra
.me
.REG
[1] = NIT_NULL
;
1159 /* ./syntax//icode_generation.nit:193 */
1160 ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1161 stack_frame_head
= fra
.me
.prev
;
1164 void icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1165 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1169 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1170 fra
.me
.file
= LOCATE_icode_generation
;
1172 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___generate_iroutine
;
1173 fra
.me
.has_broke
= 0;
1174 fra
.me
.REG_size
= 4;
1175 fra
.me
.REG
[0] = NIT_NULL
;
1176 fra
.me
.REG
[1] = NIT_NULL
;
1177 fra
.me
.REG
[2] = NIT_NULL
;
1178 fra
.me
.REG
[3] = NIT_NULL
;
1181 /* ./syntax//icode_generation.nit:198 */
1182 fra
.me
.REG
[2] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1183 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1184 if (UNTAG_Bool(REGB0
)) {
1185 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 198);
1187 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1188 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1189 if (UNTAG_Bool(REGB0
)) {
1191 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1192 if (UNTAG_Bool(REGB1
)) {
1193 REGB1
= TAG_Bool(false);
1196 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1200 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1201 if (UNTAG_Bool(REGB0
)) {
1202 /* ./syntax//icode_generation.nit:199 */
1203 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1204 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1205 if (UNTAG_Bool(REGB0
)) {
1206 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 199);
1208 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1209 /* ./syntax//icode_generation.nit:200 */
1210 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1211 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1212 if (UNTAG_Bool(REGB0
)) {
1213 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 200);
1215 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1216 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1217 /* ./syntax//icode_generation.nit:201 */
1218 fra
.me
.REG
[3] = NEW_A2IContext_icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1219 /* ./syntax//icode_generation.nit:202 */
1220 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1221 /* ./syntax//icode_generation.nit:203 */
1222 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1223 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1224 /* ./syntax//icode_generation.nit:204 */
1225 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1226 /* ./syntax//icode_generation.nit:205 */
1227 ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1229 stack_frame_head
= fra
.me
.prev
;
1232 val_t
icode_generation___MMSrcMethod___iroutine(val_t p0
){
1233 struct {struct stack_frame_t me
;} fra
;
1235 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1236 fra
.me
.file
= LOCATE_icode_generation
;
1238 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___iroutine
;
1239 fra
.me
.has_broke
= 0;
1240 fra
.me
.REG_size
= 1;
1241 fra
.me
.REG
[0] = NIT_NULL
;
1243 /* ./syntax//icode_generation.nit:211 */
1244 fra
.me
.REG
[0] = ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1245 stack_frame_head
= fra
.me
.prev
;
1246 return fra
.me
.REG
[0];
1248 void icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1249 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1252 fra
.me
.file
= LOCATE_icode_generation
;
1254 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___iroutine__eq
;
1255 fra
.me
.has_broke
= 0;
1256 fra
.me
.REG_size
= 2;
1257 fra
.me
.REG
[0] = NIT_NULL
;
1258 fra
.me
.REG
[1] = NIT_NULL
;
1261 /* ./syntax//icode_generation.nit:211 */
1262 ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1263 stack_frame_head
= fra
.me
.prev
;
1266 void icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1267 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1272 fra
.me
.file
= LOCATE_icode_generation
;
1274 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___generate_iroutine
;
1275 fra
.me
.has_broke
= 0;
1276 fra
.me
.REG_size
= 4;
1277 fra
.me
.REG
[0] = NIT_NULL
;
1278 fra
.me
.REG
[1] = NIT_NULL
;
1279 fra
.me
.REG
[2] = NIT_NULL
;
1280 fra
.me
.REG
[3] = NIT_NULL
;
1283 /* ./syntax//icode_generation.nit:216 */
1284 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1285 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1286 if (UNTAG_Bool(REGB0
)) {
1287 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 216);
1289 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1290 /* ./syntax//icode_generation.nit:217 */
1291 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1292 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1293 if (UNTAG_Bool(REGB0
)) {
1295 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1296 if (UNTAG_Bool(REGB1
)) {
1297 REGB1
= TAG_Bool(false);
1300 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1304 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1305 if (UNTAG_Bool(REGB0
)) {
1306 /* ./syntax//icode_generation.nit:218 */
1307 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1308 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1309 if (UNTAG_Bool(REGB0
)) {
1310 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 218);
1312 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1313 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1315 /* ./syntax//icode_generation.nit:220 */
1316 fra
.me
.REG
[3] = NEW_A2IContext_icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1317 /* ./syntax//icode_generation.nit:221 */
1318 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1319 /* ./syntax//icode_generation.nit:222 */
1320 CALL_icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1321 /* ./syntax//icode_generation.nit:223 */
1322 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1323 /* ./syntax//icode_generation.nit:224 */
1324 ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1325 stack_frame_head
= fra
.me
.prev
;
1328 void icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1329 struct {struct stack_frame_t me
;} fra
;
1331 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1332 fra
.me
.file
= LOCATE_icode_generation
;
1334 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___inner_generate_iroutine
;
1335 fra
.me
.has_broke
= 0;
1336 fra
.me
.REG_size
= 0;
1337 /* ./syntax//icode_generation.nit:227 */
1338 nit_abort("Deferred method called", NULL
, LOCATE_icode_generation
, 227);
1339 stack_frame_head
= fra
.me
.prev
;
1342 void icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1343 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1347 fra
.me
.file
= LOCATE_icode_generation
;
1349 fra
.me
.meth
= LOCATE_icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1350 fra
.me
.has_broke
= 0;
1351 fra
.me
.REG_size
= 3;
1352 fra
.me
.REG
[0] = NIT_NULL
;
1353 fra
.me
.REG
[1] = NIT_NULL
;
1354 fra
.me
.REG
[2] = NIT_NULL
;
1357 /* ./syntax//icode_generation.nit:234 */
1358 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1359 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1360 if (UNTAG_Bool(REGB0
)) {
1361 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 234);
1363 fra
.me
.REG
[0] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1364 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1365 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1366 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1367 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1368 /* ./syntax//icode_generation.nit:235 */
1369 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1370 stack_frame_head
= fra
.me
.prev
;
1373 void icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1374 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1378 fra
.me
.file
= LOCATE_icode_generation
;
1380 fra
.me
.meth
= LOCATE_icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1381 fra
.me
.has_broke
= 0;
1382 fra
.me
.REG_size
= 4;
1383 fra
.me
.REG
[0] = NIT_NULL
;
1384 fra
.me
.REG
[1] = NIT_NULL
;
1385 fra
.me
.REG
[2] = NIT_NULL
;
1386 fra
.me
.REG
[3] = NIT_NULL
;
1389 /* ./syntax//icode_generation.nit:242 */
1390 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1391 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1392 /* ./syntax//icode_generation.nit:243 */
1393 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1394 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1395 if (UNTAG_Bool(REGB0
)) {
1396 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 243);
1398 fra
.me
.REG
[0] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1400 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1402 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1403 fra
.me
.REG
[2] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1404 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1405 stack_frame_head
= fra
.me
.prev
;
1408 void icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1409 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1412 fra
.me
.file
= LOCATE_icode_generation
;
1414 fra
.me
.meth
= LOCATE_icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1415 fra
.me
.has_broke
= 0;
1416 fra
.me
.REG_size
= 2;
1417 fra
.me
.REG
[0] = NIT_NULL
;
1418 fra
.me
.REG
[1] = NIT_NULL
;
1421 /* ./syntax//icode_generation.nit:250 */
1422 fra
.me
.REG
[1] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1423 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1424 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1425 stack_frame_head
= fra
.me
.prev
;
1428 void icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1429 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1439 fra
.me
.file
= LOCATE_icode_generation
;
1441 fra
.me
.meth
= LOCATE_icode_generation___MMImplicitInit___inner_generate_iroutine
;
1442 fra
.me
.has_broke
= 0;
1443 fra
.me
.REG_size
= 10;
1444 fra
.me
.REG
[0] = NIT_NULL
;
1445 fra
.me
.REG
[1] = NIT_NULL
;
1446 fra
.me
.REG
[2] = NIT_NULL
;
1447 fra
.me
.REG
[3] = NIT_NULL
;
1448 fra
.me
.REG
[4] = NIT_NULL
;
1449 fra
.me
.REG
[5] = NIT_NULL
;
1450 fra
.me
.REG
[6] = NIT_NULL
;
1451 fra
.me
.REG
[7] = NIT_NULL
;
1452 fra
.me
.REG
[8] = NIT_NULL
;
1453 fra
.me
.REG
[9] = NIT_NULL
;
1456 /* ./syntax//icode_generation.nit:257 */
1457 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1458 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1459 /* ./syntax//icode_generation.nit:258 */
1460 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1461 fra
.me
.REG
[3] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1462 /* ./../lib/standard//collection//array.nit:23 */
1463 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1464 if (UNTAG_Bool(REGB1
)) {
1466 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1468 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1469 /* ./../lib/standard//kernel.nit:217 */
1470 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1471 /* ./syntax//icode_generation.nit:259 */
1472 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1473 /* ./syntax//icode_generation.nit:260 */
1474 fra
.me
.REG
[4] = CALL_syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1475 /* ./../lib/standard//collection//array.nit:234 */
1477 /* ./../lib/standard//collection//array.nit:235 */
1478 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1479 if (UNTAG_Bool(REGB2
)) {
1481 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
1483 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1484 /* ./../lib/standard//collection//array.nit:236 */
1485 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1486 /* ./../lib/standard//collection//array.nit:237 */
1488 /* ./../lib/standard//collection//array.nit:23 */
1489 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1490 if (UNTAG_Bool(REGB2
)) {
1492 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1494 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1495 /* ./../lib/standard//kernel.nit:212 */
1496 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1497 /* ./../lib/standard//collection//array.nit:237 */
1498 if (UNTAG_Bool(REGB2
)) {
1499 /* ./../lib/standard//collection//array.nit:238 */
1500 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1501 if (UNTAG_Bool(REGB2
)) {
1502 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
1504 /* ./../lib/standard//collection//array.nit:654 */
1505 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1506 /* ./syntax//icode_generation.nit:261 */
1507 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
1508 if (UNTAG_Bool(REGB2
)) {
1510 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 261);
1512 /* ./syntax//icode_generation.nit:262 */
1514 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB2
);
1515 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1516 /* ./syntax//icode_generation.nit:263 */
1517 fra
.me
.REG
[8] = CALL_syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1518 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[8]));
1519 if (UNTAG_Bool(REGB2
)) {
1521 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1524 if (UNTAG_Bool(REGB2
)) {
1525 /* ./syntax//icode_generation.nit:264 */
1526 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB1
);
1527 /* ./syntax//icode_generation.nit:265 */
1528 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
1529 /* ./syntax//icode_generation.nit:266 */
1531 /* ./../lib/standard//kernel.nit:327 */
1533 /* ./../lib/standard//kernel.nit:332 */
1535 /* ./../lib/standard//kernel.nit:212 */
1536 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1537 /* ./../lib/standard//kernel.nit:332 */
1538 if (UNTAG_Bool(REGB4
)) {
1539 /* ./syntax//icode_generation.nit:266 */
1541 /* ./syntax//icode_generation.nit:267 */
1542 fra
.me
.REG
[9] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
1543 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1544 /* ./../lib/standard//kernel.nit:334 */
1546 /* ./../lib/standard//kernel.nit:215 */
1547 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1548 /* ./../lib/standard//kernel.nit:334 */
1551 /* ./../lib/standard//kernel.nit:332 */
1556 /* ./syntax//icode_generation.nit:269 */
1557 fra
.me
.REG
[8] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1558 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
1560 /* ./syntax//icode_generation.nit:271 */
1561 fra
.me
.REG
[7] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1562 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1564 /* ./../lib/standard//collection//array.nit:239 */
1566 /* ./../lib/standard//kernel.nit:215 */
1567 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1568 /* ./../lib/standard//collection//array.nit:239 */
1571 /* ./../lib/standard//collection//array.nit:237 */
1576 /* ./syntax//icode_generation.nit:274 */
1577 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1578 /* ./../lib/standard//kernel.nit:327 */
1580 /* ./../lib/standard//kernel.nit:332 */
1582 /* ./../lib/standard//kernel.nit:212 */
1583 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1584 /* ./../lib/standard//kernel.nit:332 */
1585 if (UNTAG_Bool(REGB3
)) {
1586 /* ./syntax//icode_generation.nit:274 */
1588 /* ./syntax//icode_generation.nit:275 */
1589 fra
.me
.REG
[5] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1590 /* ./../lib/standard//kernel.nit:217 */
1591 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1592 /* ./../lib/standard//collection//array.nit:245 */
1594 /* ./../lib/standard//kernel.nit:213 */
1595 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1596 /* ./../lib/standard//collection//array.nit:245 */
1597 if (UNTAG_Bool(REGB5
)) {
1598 REGB5
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1599 if (UNTAG_Bool(REGB5
)) {
1601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1603 REGB5
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1604 /* ./../lib/standard//kernel.nit:212 */
1605 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1607 /* ./../lib/standard//collection//array.nit:245 */
1608 REGB6
= TAG_Bool(false);
1611 if (UNTAG_Bool(REGB5
)) {
1613 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1615 /* ./../lib/standard//collection//array.nit:246 */
1616 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
1617 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1618 if (UNTAG_Bool(REGB5
)) {
1619 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1621 /* ./../lib/standard//collection//array.nit:654 */
1622 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1623 /* ./../lib/standard//collection//array.nit:246 */
1626 /* ./syntax//icode_generation.nit:276 */
1627 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
1628 fra
.me
.REG
[4] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[5], fra
.me
.REG
[3], fra
.me
.REG
[4]);
1629 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1630 /* ./../lib/standard//kernel.nit:334 */
1632 /* ./../lib/standard//kernel.nit:215 */
1633 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1634 /* ./../lib/standard//kernel.nit:334 */
1637 /* ./../lib/standard//kernel.nit:332 */
1642 stack_frame_head
= fra
.me
.prev
;
1645 void icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1646 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1648 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1649 fra
.me
.file
= LOCATE_icode_generation
;
1651 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___icode_ctx__eq
;
1652 fra
.me
.has_broke
= 0;
1653 fra
.me
.REG_size
= 2;
1654 fra
.me
.REG
[0] = NIT_NULL
;
1655 fra
.me
.REG
[1] = NIT_NULL
;
1658 /* ./syntax//icode_generation.nit:283 */
1659 ATTR_icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1660 stack_frame_head
= fra
.me
.prev
;
1663 val_t
icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1664 struct {struct stack_frame_t me
;} fra
;
1667 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1668 fra
.me
.file
= LOCATE_icode_generation
;
1670 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___icode_ctx
;
1671 fra
.me
.has_broke
= 0;
1672 fra
.me
.REG_size
= 1;
1673 fra
.me
.REG
[0] = NIT_NULL
;
1675 /* ./syntax//icode_generation.nit:284 */
1676 fra
.me
.REG
[0] = ATTR_icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]);
1677 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1678 if (UNTAG_Bool(REGB0
)) {
1680 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 284);
1684 stack_frame_head
= fra
.me
.prev
;
1685 return fra
.me
.REG
[0];
1687 void icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1688 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1691 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1692 fra
.me
.file
= LOCATE_icode_generation
;
1694 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___visit
;
1695 fra
.me
.has_broke
= 0;
1696 fra
.me
.REG_size
= 2;
1697 fra
.me
.REG
[0] = NIT_NULL
;
1698 fra
.me
.REG
[1] = NIT_NULL
;
1701 /* ./syntax//icode_generation.nit:285 */
1702 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1703 if (UNTAG_Bool(REGB0
)) {
1704 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 285);
1706 CALL_icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1707 stack_frame_head
= fra
.me
.prev
;
1710 void icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1711 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_A2IVisitor
].i
;
1712 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1714 if (init_table
[itpos1
]) return;
1715 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1716 fra
.me
.file
= LOCATE_icode_generation
;
1718 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___init
;
1719 fra
.me
.has_broke
= 0;
1720 fra
.me
.REG_size
= 3;
1721 fra
.me
.REG
[0] = NIT_NULL
;
1722 fra
.me
.REG
[1] = NIT_NULL
;
1723 fra
.me
.REG
[2] = NIT_NULL
;
1727 /* ./syntax//icode_generation.nit:286 */
1728 CALL_syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1729 stack_frame_head
= fra
.me
.prev
;
1730 init_table
[itpos1
] = 1;
1733 void icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1734 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1736 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1737 fra
.me
.file
= LOCATE_icode_generation
;
1739 fra
.me
.meth
= LOCATE_icode_generation___ANode___accept_icode_generation
;
1740 fra
.me
.has_broke
= 0;
1741 fra
.me
.REG_size
= 2;
1742 fra
.me
.REG
[0] = NIT_NULL
;
1743 fra
.me
.REG
[1] = NIT_NULL
;
1746 /* ./syntax//icode_generation.nit:293 */
1747 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1748 stack_frame_head
= fra
.me
.prev
;
1751 void icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1752 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1756 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1757 fra
.me
.file
= LOCATE_icode_generation
;
1759 fra
.me
.meth
= LOCATE_icode_generation___AAttrPropdef___accept_icode_generation
;
1760 fra
.me
.has_broke
= 0;
1761 fra
.me
.REG_size
= 6;
1762 fra
.me
.REG
[0] = NIT_NULL
;
1763 fra
.me
.REG
[1] = NIT_NULL
;
1764 fra
.me
.REG
[2] = NIT_NULL
;
1765 fra
.me
.REG
[3] = NIT_NULL
;
1766 fra
.me
.REG
[4] = NIT_NULL
;
1767 fra
.me
.REG
[5] = NIT_NULL
;
1770 /* ./syntax//icode_generation.nit:297 */
1771 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1772 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1773 /* ./syntax//icode_generation.nit:299 */
1774 fra
.me
.REG
[3] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1775 /* ./syntax//icode_generation.nit:300 */
1776 fra
.me
.REG
[4] = CALL_syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1777 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1778 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1779 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1780 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1781 fra
.me
.REG
[5] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1782 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1783 /* ./syntax//icode_generation.nit:301 */
1784 CALL_SUPER_icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1785 /* ./syntax//icode_generation.nit:302 */
1786 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1787 /* ./syntax//icode_generation.nit:303 */
1788 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1789 if (UNTAG_Bool(REGB0
)) {
1791 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1792 if (UNTAG_Bool(REGB1
)) {
1793 REGB1
= TAG_Bool(false);
1796 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1800 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1801 if (UNTAG_Bool(REGB0
)) {
1802 /* ./syntax//icode_generation.nit:304 */
1803 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1804 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1805 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
1806 if (UNTAG_Bool(REGB0
)) {
1808 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 304);
1810 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1811 fra
.me
.REG
[2] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1812 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1814 stack_frame_head
= fra
.me
.prev
;
1817 void icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1818 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1820 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1821 fra
.me
.file
= LOCATE_icode_generation
;
1823 fra
.me
.meth
= LOCATE_icode_generation___AMethPropdef___accept_icode_generation
;
1824 fra
.me
.has_broke
= 0;
1825 fra
.me
.REG_size
= 4;
1826 fra
.me
.REG
[0] = NIT_NULL
;
1827 fra
.me
.REG
[1] = NIT_NULL
;
1828 fra
.me
.REG
[2] = NIT_NULL
;
1829 fra
.me
.REG
[3] = NIT_NULL
;
1832 /* ./syntax//icode_generation.nit:310 */
1833 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1834 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1835 /* ./syntax//icode_generation.nit:312 */
1836 CALL_SUPER_icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1837 /* ./syntax//icode_generation.nit:313 */
1838 fra
.me
.REG
[3] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1839 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1840 CALL_icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
1841 stack_frame_head
= fra
.me
.prev
;
1844 void icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
1845 struct {struct stack_frame_t me
;} fra
;
1847 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1848 fra
.me
.file
= LOCATE_icode_generation
;
1850 fra
.me
.meth
= LOCATE_icode_generation___AMethPropdef___fill_iroutine
;
1851 fra
.me
.has_broke
= 0;
1852 fra
.me
.REG_size
= 0;
1853 /* ./syntax//icode_generation.nit:316 */
1854 nit_abort("Deferred method called", NULL
, LOCATE_icode_generation
, 316);
1855 stack_frame_head
= fra
.me
.prev
;
1858 void icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1859 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1865 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1866 fra
.me
.file
= LOCATE_icode_generation
;
1868 fra
.me
.meth
= LOCATE_icode_generation___ASignature___fill_iroutine_parameters
;
1869 fra
.me
.has_broke
= 0;
1870 fra
.me
.REG_size
= 6;
1871 fra
.me
.REG
[0] = NIT_NULL
;
1872 fra
.me
.REG
[1] = NIT_NULL
;
1873 fra
.me
.REG
[2] = NIT_NULL
;
1874 fra
.me
.REG
[3] = NIT_NULL
;
1875 fra
.me
.REG
[4] = NIT_NULL
;
1876 fra
.me
.REG
[5] = NIT_NULL
;
1882 /* ./syntax//icode_generation.nit:323 */
1883 fra
.me
.REG
[5] = CALL_parser_nodes___ASignature___n_params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1884 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[5])(fra
.me
.REG
[5], (&(fra
.me
)), ((fun_t
)OC_icode_generation___ASignature___fill_iroutine_parameters_1
));
1885 /* ./syntax//icode_generation.nit:332 */
1887 fra
.me
.REG
[3] = CALL_parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1888 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1889 /* ./../lib/standard//kernel.nit:332 */
1891 /* ./../lib/standard//kernel.nit:212 */
1892 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1893 /* ./../lib/standard//kernel.nit:332 */
1894 if (UNTAG_Bool(REGB2
)) {
1895 /* ./syntax//icode_generation.nit:332 */
1897 /* ./syntax//icode_generation.nit:333 */
1898 fra
.me
.REG
[3] = CALL_parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1899 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
1900 /* ./syntax//icode_generation.nit:334 */
1901 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1902 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1903 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1904 if (UNTAG_Bool(REGB3
)) {
1905 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 334);
1907 fra
.me
.REG
[5] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
1908 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[5]);
1909 /* ./../lib/standard//kernel.nit:334 */
1911 /* ./../lib/standard//kernel.nit:215 */
1912 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1913 /* ./../lib/standard//kernel.nit:334 */
1916 /* ./../lib/standard//kernel.nit:332 */
1921 stack_frame_head
= fra
.me
.prev
;
1924 void OC_icode_generation___ASignature___fill_iroutine_parameters_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1925 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1929 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1930 fra
.me
.file
= LOCATE_icode_generation
;
1932 fra
.me
.meth
= LOCATE_icode_generation___ASignature___fill_iroutine_parameters
;
1933 fra
.me
.has_broke
= 0;
1934 fra
.me
.REG_size
= 4;
1935 fra
.me
.REG
[0] = NIT_NULL
;
1936 fra
.me
.REG
[1] = NIT_NULL
;
1937 fra
.me
.REG
[2] = NIT_NULL
;
1938 fra
.me
.REG
[3] = NIT_NULL
;
1939 fra
.me
.closure_ctx
= closctx_param
;
1940 fra
.me
.closure_funs
= CREG
;
1942 CREG
[0] = clos_fun0
;
1943 /* ./syntax//icode_generation.nit:324 */
1944 fra
.me
.REG
[1] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1945 fra
.me
.REG
[1] = CALL_icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
1946 /* ./syntax//icode_generation.nit:325 */
1947 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1948 fra
.me
.REG
[2] = CALL_static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
1949 /* ./syntax//icode_generation.nit:326 */
1950 fra
.me
.REG
[3] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1951 fra
.me
.REG
[3] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1952 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
1953 if (UNTAG_Bool(REGB0
)) {
1955 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 326);
1957 /* ./syntax//icode_generation.nit:327 */
1958 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1959 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1960 if (UNTAG_Bool(REGB0
)) {
1961 /* ./syntax//icode_generation.nit:328 */
1962 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1963 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
1964 CALL_icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
1966 /* ./syntax//icode_generation.nit:330 */
1967 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1968 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
1969 fra
.me
.REG
[0] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1970 CALL_icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
1971 stack_frame_head
= fra
.me
.prev
;
1974 void icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
1975 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1979 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1980 fra
.me
.file
= LOCATE_icode_generation
;
1982 fra
.me
.meth
= LOCATE_icode_generation___AClosureDecl___accept_icode_generation
;
1983 fra
.me
.has_broke
= 0;
1984 fra
.me
.REG_size
= 7;
1985 fra
.me
.REG
[0] = NIT_NULL
;
1986 fra
.me
.REG
[1] = NIT_NULL
;
1987 fra
.me
.REG
[2] = NIT_NULL
;
1988 fra
.me
.REG
[3] = NIT_NULL
;
1989 fra
.me
.REG
[4] = NIT_NULL
;
1990 fra
.me
.REG
[5] = NIT_NULL
;
1991 fra
.me
.REG
[6] = NIT_NULL
;
1994 /* ./syntax//icode_generation.nit:342 */
1995 fra
.me
.REG
[1] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1996 /* ./syntax//icode_generation.nit:343 */
1997 fra
.me
.REG
[2] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1998 fra
.me
.REG
[2] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1999 fra
.me
.REG
[2] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2000 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
2001 /* ./syntax//icode_generation.nit:344 */
2002 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2003 /* ./syntax//icode_generation.nit:345 */
2004 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2005 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2006 /* ./syntax//icode_generation.nit:346 */
2007 fra
.me
.REG
[4] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2008 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2009 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2010 if (UNTAG_Bool(REGB0
)) {
2011 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 346);
2013 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2014 /* ./syntax//icode_generation.nit:347 */
2015 fra
.me
.REG
[5] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2016 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2017 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2018 if (UNTAG_Bool(REGB0
)) {
2019 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 347);
2021 CALL_icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2022 /* ./syntax//icode_generation.nit:348 */
2023 fra
.me
.REG
[4] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2024 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2025 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2026 if (UNTAG_Bool(REGB0
)) {
2027 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 348);
2029 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2030 /* ./syntax//icode_generation.nit:349 */
2031 fra
.me
.REG
[5] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2032 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2033 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2034 if (UNTAG_Bool(REGB0
)) {
2035 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 349);
2037 CALL_icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2038 /* ./syntax//icode_generation.nit:350 */
2039 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2040 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2041 fra
.me
.REG
[5] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2042 fra
.me
.REG
[5] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2043 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2044 CALL_icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6], NIT_NULL
);
2045 /* ./syntax//icode_generation.nit:352 */
2046 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2047 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2048 if (UNTAG_Bool(REGB0
)) {
2050 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2051 if (UNTAG_Bool(REGB1
)) {
2052 REGB1
= TAG_Bool(false);
2055 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2059 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2060 if (UNTAG_Bool(REGB0
)) {
2061 /* ./syntax//icode_generation.nit:353 */
2062 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2063 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
2064 /* ./syntax//icode_generation.nit:354 */
2065 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2066 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2067 REGB0
= CALL_syntax_base___AClosureDecl___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2068 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2069 if (UNTAG_Bool(REGB1
)) {
2070 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 354);
2072 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
2073 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2074 if (UNTAG_Bool(REGB0
)) {
2075 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 354);
2077 CALL_icode_base___IClosureDecl___default__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
2078 /* ./syntax//icode_generation.nit:357 */
2079 fra
.me
.REG
[0] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2080 fra
.me
.REG
[0] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2081 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2082 if (UNTAG_Bool(REGB0
)) {
2083 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2084 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2085 if (UNTAG_Bool(REGB0
)) {
2087 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2088 if (UNTAG_Bool(REGB1
)) {
2089 REGB1
= TAG_Bool(false);
2092 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2097 REGB1
= TAG_Bool(false);
2100 if (UNTAG_Bool(REGB0
)) {
2101 /* ./syntax//icode_generation.nit:358 */
2102 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2103 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2104 if (UNTAG_Bool(REGB0
)) {
2106 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 358);
2108 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2111 /* ./syntax//icode_generation.nit:361 */
2112 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2113 stack_frame_head
= fra
.me
.prev
;
2116 void icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2117 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2123 fra
.me
.file
= LOCATE_icode_generation
;
2125 fra
.me
.meth
= LOCATE_icode_generation___AConcreteMethPropdef___fill_iroutine
;
2126 fra
.me
.has_broke
= 0;
2127 fra
.me
.REG_size
= 6;
2128 fra
.me
.REG
[0] = NIT_NULL
;
2129 fra
.me
.REG
[1] = NIT_NULL
;
2130 fra
.me
.REG
[2] = NIT_NULL
;
2131 fra
.me
.REG
[3] = NIT_NULL
;
2132 fra
.me
.REG
[4] = NIT_NULL
;
2133 fra
.me
.REG
[5] = NIT_NULL
;
2137 /* ./syntax//icode_generation.nit:368 */
2138 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2139 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2140 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2141 /* ./syntax//icode_generation.nit:369 */
2142 fra
.me
.REG
[4] = CALL_syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2143 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2144 /* ./syntax//icode_generation.nit:370 */
2146 /* ./../lib/standard//collection//array.nit:243 */
2147 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2148 /* ./../lib/standard//collection//array.nit:245 */
2150 /* ./../lib/standard//kernel.nit:213 */
2151 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2152 /* ./../lib/standard//collection//array.nit:245 */
2153 if (UNTAG_Bool(REGB1
)) {
2154 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2155 if (UNTAG_Bool(REGB1
)) {
2157 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
2159 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2160 /* ./../lib/standard//kernel.nit:212 */
2161 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2163 /* ./../lib/standard//collection//array.nit:245 */
2164 REGB2
= TAG_Bool(false);
2167 if (UNTAG_Bool(REGB1
)) {
2169 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
2171 /* ./../lib/standard//collection//array.nit:246 */
2172 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
2173 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2174 if (UNTAG_Bool(REGB1
)) {
2175 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
2177 /* ./../lib/standard//collection//array.nit:654 */
2178 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2179 /* ./../lib/standard//collection//array.nit:246 */
2182 /* ./syntax//icode_generation.nit:370 */
2183 fra
.me
.REG
[5] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2184 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2185 /* ./syntax//icode_generation.nit:371 */
2186 CALL_abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2187 /* ./syntax//icode_generation.nit:373 */
2188 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2189 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2190 /* ./syntax//icode_generation.nit:374 */
2191 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2192 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2193 if (UNTAG_Bool(REGB0
)) {
2194 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 374);
2196 fra
.me
.REG
[2] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2197 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
2198 /* ./syntax//icode_generation.nit:375 */
2199 fra
.me
.REG
[5] = CALL_parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2200 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2201 if (UNTAG_Bool(REGB0
)) {
2203 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2204 if (UNTAG_Bool(REGB1
)) {
2205 REGB1
= TAG_Bool(false);
2208 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2212 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2213 if (UNTAG_Bool(REGB0
)) {
2214 /* ./syntax//icode_generation.nit:376 */
2215 fra
.me
.REG
[5] = CALL_parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2216 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2217 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2218 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2219 if (UNTAG_Bool(REGB0
)) {
2220 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 376);
2222 CALL_icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
2224 /* ./syntax//icode_generation.nit:379 */
2225 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_AConcreteInitPropdef
, ID_AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2226 if (UNTAG_Bool(REGB0
)) {
2227 /* ./syntax//icode_generation.nit:380 */
2228 CALL_icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2230 /* ./syntax//icode_generation.nit:383 */
2231 fra
.me
.REG
[4] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2232 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2233 if (UNTAG_Bool(REGB0
)) {
2235 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2236 if (UNTAG_Bool(REGB1
)) {
2237 REGB1
= TAG_Bool(false);
2240 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2244 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2245 if (UNTAG_Bool(REGB0
)) {
2246 /* ./syntax//icode_generation.nit:384 */
2247 fra
.me
.REG
[0] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2248 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2250 stack_frame_head
= fra
.me
.prev
;
2253 void icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2254 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2257 static val_t once_value_1
; /* Once value */
2258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2259 fra
.me
.file
= LOCATE_icode_generation
;
2261 fra
.me
.meth
= LOCATE_icode_generation___ADeferredMethPropdef___fill_iroutine
;
2262 fra
.me
.has_broke
= 0;
2263 fra
.me
.REG_size
= 3;
2264 fra
.me
.REG
[0] = NIT_NULL
;
2265 fra
.me
.REG
[1] = NIT_NULL
;
2266 fra
.me
.REG
[2] = NIT_NULL
;
2270 /* ./syntax//icode_generation.nit:392 */
2272 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
2273 if (!once_value_1
) {
2274 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2275 REGB0
= TAG_Int(22);
2276 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
2277 once_value_1
= fra
.me
.REG
[0];
2278 register_static_object(&once_value_1
);
2279 } else fra
.me
.REG
[0] = once_value_1
;
2280 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2281 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2282 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2283 stack_frame_head
= fra
.me
.prev
;
2286 void icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2287 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2292 fra
.me
.file
= LOCATE_icode_generation
;
2294 fra
.me
.meth
= LOCATE_icode_generation___AExternMethPropdef___fill_iroutine
;
2295 fra
.me
.has_broke
= 0;
2296 fra
.me
.REG_size
= 5;
2297 fra
.me
.REG
[0] = NIT_NULL
;
2298 fra
.me
.REG
[1] = NIT_NULL
;
2299 fra
.me
.REG
[2] = NIT_NULL
;
2300 fra
.me
.REG
[3] = NIT_NULL
;
2301 fra
.me
.REG
[4] = NIT_NULL
;
2305 /* ./syntax//icode_generation.nit:399 */
2306 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2307 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2308 /* ./syntax//icode_generation.nit:400 */
2309 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2310 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2311 if (UNTAG_Bool(REGB0
)) {
2312 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 400);
2314 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2315 /* ./syntax//icode_generation.nit:401 */
2316 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2317 if (UNTAG_Bool(REGB0
)) {
2319 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2320 if (UNTAG_Bool(REGB1
)) {
2321 REGB1
= TAG_Bool(false);
2324 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2328 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2329 if (UNTAG_Bool(REGB0
)) {
2330 /* ./syntax//icode_generation.nit:402 */
2331 fra
.me
.REG
[4] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2332 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2333 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2335 /* ./syntax//icode_generation.nit:404 */
2336 fra
.me
.REG
[0] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2337 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2339 stack_frame_head
= fra
.me
.prev
;
2342 void icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2343 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2348 fra
.me
.file
= LOCATE_icode_generation
;
2350 fra
.me
.meth
= LOCATE_icode_generation___AInternMethPropdef___fill_iroutine
;
2351 fra
.me
.has_broke
= 0;
2352 fra
.me
.REG_size
= 5;
2353 fra
.me
.REG
[0] = NIT_NULL
;
2354 fra
.me
.REG
[1] = NIT_NULL
;
2355 fra
.me
.REG
[2] = NIT_NULL
;
2356 fra
.me
.REG
[3] = NIT_NULL
;
2357 fra
.me
.REG
[4] = NIT_NULL
;
2361 /* ./syntax//icode_generation.nit:412 */
2362 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2363 fra
.me
.REG
[0] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2364 /* ./syntax//icode_generation.nit:413 */
2365 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2366 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2367 if (UNTAG_Bool(REGB0
)) {
2368 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 413);
2370 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2371 /* ./syntax//icode_generation.nit:414 */
2372 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2373 if (UNTAG_Bool(REGB0
)) {
2375 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2376 if (UNTAG_Bool(REGB1
)) {
2377 REGB1
= TAG_Bool(false);
2380 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2384 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2385 if (UNTAG_Bool(REGB0
)) {
2386 /* ./syntax//icode_generation.nit:415 */
2387 fra
.me
.REG
[4] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2388 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2389 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2391 /* ./syntax//icode_generation.nit:417 */
2392 fra
.me
.REG
[0] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2393 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2395 stack_frame_head
= fra
.me
.prev
;
2398 void icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2399 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2401 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2402 fra
.me
.file
= LOCATE_icode_generation
;
2404 fra
.me
.meth
= LOCATE_icode_generation___AExpr___accept_icode_generation
;
2405 fra
.me
.has_broke
= 0;
2406 fra
.me
.REG_size
= 2;
2407 fra
.me
.REG
[0] = NIT_NULL
;
2408 fra
.me
.REG
[1] = NIT_NULL
;
2411 stack_frame_head
= fra
.me
.prev
;
2414 val_t
icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2415 struct {struct stack_frame_t me
;} fra
;
2417 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2418 fra
.me
.file
= LOCATE_icode_generation
;
2420 fra
.me
.meth
= LOCATE_icode_generation___AExpr___generate_icode
;
2421 fra
.me
.has_broke
= 0;
2422 fra
.me
.REG_size
= 0;
2423 /* ./syntax//icode_generation.nit:427 */
2424 nit_abort("Deferred method called", NULL
, LOCATE_icode_generation
, 427);
2425 stack_frame_head
= fra
.me
.prev
;
2428 val_t
icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2429 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2433 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2434 fra
.me
.file
= LOCATE_icode_generation
;
2436 fra
.me
.meth
= LOCATE_icode_generation___AVardeclExpr___generate_icode
;
2437 fra
.me
.has_broke
= 0;
2438 fra
.me
.REG_size
= 3;
2439 fra
.me
.REG
[0] = NIT_NULL
;
2440 fra
.me
.REG
[1] = NIT_NULL
;
2441 fra
.me
.REG
[2] = NIT_NULL
;
2444 /* ./syntax//icode_generation.nit:435 */
2445 fra
.me
.REG
[2] = CALL_syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2446 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2447 /* ./syntax//icode_generation.nit:436 */
2448 fra
.me
.REG
[0] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2449 /* ./syntax//icode_generation.nit:437 */
2450 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2451 if (UNTAG_Bool(REGB0
)) {
2453 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2454 if (UNTAG_Bool(REGB1
)) {
2455 REGB1
= TAG_Bool(false);
2458 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2462 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2463 if (UNTAG_Bool(REGB0
)) {
2464 /* ./syntax//icode_generation.nit:438 */
2465 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2466 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2468 /* ./syntax//icode_generation.nit:440 */
2469 fra
.me
.REG
[0] = NIT_NULL
;
2472 stack_frame_head
= fra
.me
.prev
;
2473 return fra
.me
.REG
[0];
2475 val_t
icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2476 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2479 fra
.me
.file
= LOCATE_icode_generation
;
2481 fra
.me
.meth
= LOCATE_icode_generation___ABlockExpr___generate_icode
;
2482 fra
.me
.has_broke
= 0;
2483 fra
.me
.REG_size
= 2;
2484 fra
.me
.REG
[0] = NIT_NULL
;
2485 fra
.me
.REG
[1] = NIT_NULL
;
2488 /* ./syntax//icode_generation.nit:447 */
2489 fra
.me
.REG
[0] = CALL_parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2490 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_icode_generation___ABlockExpr___generate_icode_1
));
2491 /* ./syntax//icode_generation.nit:448 */
2492 fra
.me
.REG
[1] = NIT_NULL
;
2495 stack_frame_head
= fra
.me
.prev
;
2496 return fra
.me
.REG
[1];
2498 void OC_icode_generation___ABlockExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2499 struct {struct stack_frame_t me
;} fra
;
2502 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2503 fra
.me
.file
= LOCATE_icode_generation
;
2505 fra
.me
.meth
= LOCATE_icode_generation___ABlockExpr___generate_icode
;
2506 fra
.me
.has_broke
= 0;
2507 fra
.me
.REG_size
= 1;
2508 fra
.me
.REG
[0] = NIT_NULL
;
2509 fra
.me
.closure_ctx
= closctx_param
;
2510 fra
.me
.closure_funs
= CREG
;
2512 CREG
[0] = clos_fun0
;
2513 CALL_icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2514 stack_frame_head
= fra
.me
.prev
;
2517 val_t
icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2518 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2521 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2522 fra
.me
.file
= LOCATE_icode_generation
;
2524 fra
.me
.meth
= LOCATE_icode_generation___ADoExpr___generate_icode
;
2525 fra
.me
.has_broke
= 0;
2526 fra
.me
.REG_size
= 5;
2527 fra
.me
.REG
[0] = NIT_NULL
;
2528 fra
.me
.REG
[1] = NIT_NULL
;
2529 fra
.me
.REG
[2] = NIT_NULL
;
2530 fra
.me
.REG
[3] = NIT_NULL
;
2531 fra
.me
.REG
[4] = NIT_NULL
;
2534 /* ./syntax//icode_generation.nit:455 */
2535 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2536 /* ./syntax//icode_generation.nit:456 */
2537 fra
.me
.REG
[3] = NEW_ISeq_icode_base___ISeq___init();
2538 /* ./syntax//icode_generation.nit:457 */
2539 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2540 /* ./syntax//icode_generation.nit:458 */
2541 fra
.me
.REG
[4] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2542 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2543 if (UNTAG_Bool(REGB0
)) {
2544 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 458);
2546 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2547 /* ./syntax//icode_generation.nit:459 */
2548 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2549 /* ./syntax//icode_generation.nit:461 */
2550 fra
.me
.REG
[0] = CALL_parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2551 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2552 /* ./syntax//icode_generation.nit:463 */
2553 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2554 /* ./syntax//icode_generation.nit:464 */
2555 fra
.me
.REG
[2] = NIT_NULL
;
2558 stack_frame_head
= fra
.me
.prev
;
2559 return fra
.me
.REG
[2];
2561 val_t
icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2562 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2566 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2567 fra
.me
.file
= LOCATE_icode_generation
;
2569 fra
.me
.meth
= LOCATE_icode_generation___AReturnExpr___generate_icode
;
2570 fra
.me
.has_broke
= 0;
2571 fra
.me
.REG_size
= 3;
2572 fra
.me
.REG
[0] = NIT_NULL
;
2573 fra
.me
.REG
[1] = NIT_NULL
;
2574 fra
.me
.REG
[2] = NIT_NULL
;
2577 /* ./syntax//icode_generation.nit:471 */
2578 fra
.me
.REG
[0] = CALL_parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2579 /* ./syntax//icode_generation.nit:472 */
2580 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2581 if (UNTAG_Bool(REGB0
)) {
2583 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2584 if (UNTAG_Bool(REGB1
)) {
2585 REGB1
= TAG_Bool(false);
2588 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2592 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2593 if (UNTAG_Bool(REGB0
)) {
2594 /* ./syntax//icode_generation.nit:473 */
2595 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2596 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2597 if (UNTAG_Bool(REGB0
)) {
2599 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 473);
2601 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2602 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2604 /* ./syntax//icode_generation.nit:475 */
2605 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2606 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2607 if (UNTAG_Bool(REGB0
)) {
2609 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 475);
2611 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2612 /* ./syntax//icode_generation.nit:476 */
2613 fra
.me
.REG
[0] = NIT_NULL
;
2616 stack_frame_head
= fra
.me
.prev
;
2617 return fra
.me
.REG
[0];
2619 val_t
icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
2620 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2624 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2625 fra
.me
.file
= LOCATE_icode_generation
;
2627 fra
.me
.meth
= LOCATE_icode_generation___ABreakExpr___generate_icode
;
2628 fra
.me
.has_broke
= 0;
2629 fra
.me
.REG_size
= 4;
2630 fra
.me
.REG
[0] = NIT_NULL
;
2631 fra
.me
.REG
[1] = NIT_NULL
;
2632 fra
.me
.REG
[2] = NIT_NULL
;
2633 fra
.me
.REG
[3] = NIT_NULL
;
2636 /* ./syntax//icode_generation.nit:483 */
2637 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2638 /* ./syntax//icode_generation.nit:484 */
2639 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2640 if (UNTAG_Bool(REGB0
)) {
2642 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2643 if (UNTAG_Bool(REGB1
)) {
2644 REGB1
= TAG_Bool(false);
2647 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2651 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2652 if (UNTAG_Bool(REGB0
)) {
2653 /* ./syntax//icode_generation.nit:485 */
2654 fra
.me
.REG
[3] = CALL_scope___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2655 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2656 if (UNTAG_Bool(REGB0
)) {
2657 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 485);
2659 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___break_value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2660 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2661 if (UNTAG_Bool(REGB0
)) {
2663 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 485);
2665 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2666 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2668 /* ./syntax//icode_generation.nit:487 */
2669 fra
.me
.REG
[0] = CALL_scope___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2670 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2671 if (UNTAG_Bool(REGB0
)) {
2672 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 487);
2674 fra
.me
.REG
[0] = CALL_icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2675 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2676 if (UNTAG_Bool(REGB0
)) {
2678 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 487);
2680 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2681 /* ./syntax//icode_generation.nit:488 */
2682 fra
.me
.REG
[0] = NIT_NULL
;
2685 stack_frame_head
= fra
.me
.prev
;
2686 return fra
.me
.REG
[0];
2688 val_t
icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
2689 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2694 fra
.me
.file
= LOCATE_icode_generation
;
2696 fra
.me
.meth
= LOCATE_icode_generation___AContinueExpr___generate_icode
;
2697 fra
.me
.has_broke
= 0;
2698 fra
.me
.REG_size
= 4;
2699 fra
.me
.REG
[0] = NIT_NULL
;
2700 fra
.me
.REG
[1] = NIT_NULL
;
2701 fra
.me
.REG
[2] = NIT_NULL
;
2702 fra
.me
.REG
[3] = NIT_NULL
;
2705 /* ./syntax//icode_generation.nit:495 */
2706 fra
.me
.REG
[2] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2707 /* ./syntax//icode_generation.nit:496 */
2708 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2709 if (UNTAG_Bool(REGB0
)) {
2711 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2712 if (UNTAG_Bool(REGB1
)) {
2713 REGB1
= TAG_Bool(false);
2716 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2720 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2721 if (UNTAG_Bool(REGB0
)) {
2722 /* ./syntax//icode_generation.nit:497 */
2723 fra
.me
.REG
[3] = CALL_scope___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2724 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2725 if (UNTAG_Bool(REGB0
)) {
2726 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 497);
2728 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2729 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2730 if (UNTAG_Bool(REGB0
)) {
2732 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 497);
2734 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2735 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2737 /* ./syntax//icode_generation.nit:499 */
2738 fra
.me
.REG
[0] = CALL_scope___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2739 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2740 if (UNTAG_Bool(REGB0
)) {
2741 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 499);
2743 fra
.me
.REG
[0] = CALL_icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2744 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2745 if (UNTAG_Bool(REGB0
)) {
2747 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 499);
2749 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2750 /* ./syntax//icode_generation.nit:500 */
2751 fra
.me
.REG
[0] = NIT_NULL
;
2754 stack_frame_head
= fra
.me
.prev
;
2755 return fra
.me
.REG
[0];
2757 val_t
icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
2758 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2761 static val_t once_value_1
; /* Once value */
2762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2763 fra
.me
.file
= LOCATE_icode_generation
;
2765 fra
.me
.meth
= LOCATE_icode_generation___AAbortExpr___generate_icode
;
2766 fra
.me
.has_broke
= 0;
2767 fra
.me
.REG_size
= 3;
2768 fra
.me
.REG
[0] = NIT_NULL
;
2769 fra
.me
.REG
[1] = NIT_NULL
;
2770 fra
.me
.REG
[2] = NIT_NULL
;
2773 /* ./syntax//icode_generation.nit:507 */
2775 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB0
);
2776 if (!once_value_1
) {
2777 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
2779 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2780 once_value_1
= fra
.me
.REG
[2];
2781 register_static_object(&once_value_1
);
2782 } else fra
.me
.REG
[2] = once_value_1
;
2783 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2784 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2785 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2786 /* ./syntax//icode_generation.nit:508 */
2787 fra
.me
.REG
[0] = NIT_NULL
;
2790 stack_frame_head
= fra
.me
.prev
;
2791 return fra
.me
.REG
[0];
2793 val_t
icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
2794 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2798 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2799 fra
.me
.file
= LOCATE_icode_generation
;
2801 fra
.me
.meth
= LOCATE_icode_generation___AIfExpr___generate_icode
;
2802 fra
.me
.has_broke
= 0;
2803 fra
.me
.REG_size
= 5;
2804 fra
.me
.REG
[0] = NIT_NULL
;
2805 fra
.me
.REG
[1] = NIT_NULL
;
2806 fra
.me
.REG
[2] = NIT_NULL
;
2807 fra
.me
.REG
[3] = NIT_NULL
;
2808 fra
.me
.REG
[4] = NIT_NULL
;
2811 /* ./syntax//icode_generation.nit:515 */
2812 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2813 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2814 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
2815 /* ./syntax//icode_generation.nit:516 */
2816 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2817 /* ./syntax//icode_generation.nit:517 */
2818 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2819 /* ./syntax//icode_generation.nit:519 */
2820 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2821 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2822 if (UNTAG_Bool(REGB0
)) {
2824 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2825 if (UNTAG_Bool(REGB1
)) {
2826 REGB1
= TAG_Bool(false);
2829 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2833 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2834 if (UNTAG_Bool(REGB0
)) {
2835 /* ./syntax//icode_generation.nit:520 */
2836 fra
.me
.REG
[4] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2837 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2838 /* ./syntax//icode_generation.nit:521 */
2839 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2840 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2842 /* ./syntax//icode_generation.nit:524 */
2843 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2844 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2845 if (UNTAG_Bool(REGB0
)) {
2847 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2848 if (UNTAG_Bool(REGB1
)) {
2849 REGB1
= TAG_Bool(false);
2852 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2856 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2857 if (UNTAG_Bool(REGB0
)) {
2858 /* ./syntax//icode_generation.nit:525 */
2859 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2860 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2861 /* ./syntax//icode_generation.nit:526 */
2862 fra
.me
.REG
[0] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2863 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2865 /* ./syntax//icode_generation.nit:529 */
2866 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2867 /* ./syntax//icode_generation.nit:530 */
2868 fra
.me
.REG
[3] = NIT_NULL
;
2871 stack_frame_head
= fra
.me
.prev
;
2872 return fra
.me
.REG
[3];
2874 val_t
icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
2875 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2880 fra
.me
.file
= LOCATE_icode_generation
;
2882 fra
.me
.meth
= LOCATE_icode_generation___AWhileExpr___generate_icode
;
2883 fra
.me
.has_broke
= 0;
2884 fra
.me
.REG_size
= 7;
2885 fra
.me
.REG
[0] = NIT_NULL
;
2886 fra
.me
.REG
[1] = NIT_NULL
;
2887 fra
.me
.REG
[2] = NIT_NULL
;
2888 fra
.me
.REG
[3] = NIT_NULL
;
2889 fra
.me
.REG
[4] = NIT_NULL
;
2890 fra
.me
.REG
[5] = NIT_NULL
;
2891 fra
.me
.REG
[6] = NIT_NULL
;
2894 /* ./syntax//icode_generation.nit:537 */
2895 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2896 /* ./syntax//icode_generation.nit:538 */
2897 fra
.me
.REG
[3] = NEW_ILoop_icode_base___ILoop___init();
2898 /* ./syntax//icode_generation.nit:539 */
2899 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2900 /* ./syntax//icode_generation.nit:540 */
2901 fra
.me
.REG
[4] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2902 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2903 if (UNTAG_Bool(REGB0
)) {
2904 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 540);
2906 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2907 /* ./syntax//icode_generation.nit:541 */
2908 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2909 /* ./syntax//icode_generation.nit:544 */
2910 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2911 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2912 fra
.me
.REG
[4] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[4]);
2913 /* ./syntax//icode_generation.nit:545 */
2914 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2915 /* ./syntax//icode_generation.nit:548 */
2916 fra
.me
.REG
[5] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2917 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2918 if (UNTAG_Bool(REGB0
)) {
2920 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2921 if (UNTAG_Bool(REGB1
)) {
2922 REGB1
= TAG_Bool(false);
2925 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2929 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2930 if (UNTAG_Bool(REGB0
)) {
2931 /* ./syntax//icode_generation.nit:549 */
2932 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2933 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2934 /* ./syntax//icode_generation.nit:550 */
2935 fra
.me
.REG
[5] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2936 fra
.me
.REG
[6] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2937 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2938 if (UNTAG_Bool(REGB0
)) {
2939 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 550);
2941 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2942 /* ./syntax//icode_generation.nit:551 */
2943 fra
.me
.REG
[0] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2944 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2946 /* ./syntax//icode_generation.nit:555 */
2947 fra
.me
.REG
[4] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2948 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2949 /* ./syntax//icode_generation.nit:556 */
2950 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2951 /* ./syntax//icode_generation.nit:558 */
2952 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2953 /* ./syntax//icode_generation.nit:559 */
2954 fra
.me
.REG
[2] = NIT_NULL
;
2957 stack_frame_head
= fra
.me
.prev
;
2958 return fra
.me
.REG
[2];
2960 val_t
icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
2961 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2966 fra
.me
.file
= LOCATE_icode_generation
;
2968 fra
.me
.meth
= LOCATE_icode_generation___ALoopExpr___generate_icode
;
2969 fra
.me
.has_broke
= 0;
2970 fra
.me
.REG_size
= 5;
2971 fra
.me
.REG
[0] = NIT_NULL
;
2972 fra
.me
.REG
[1] = NIT_NULL
;
2973 fra
.me
.REG
[2] = NIT_NULL
;
2974 fra
.me
.REG
[3] = NIT_NULL
;
2975 fra
.me
.REG
[4] = NIT_NULL
;
2978 /* ./syntax//icode_generation.nit:566 */
2979 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2980 /* ./syntax//icode_generation.nit:567 */
2981 fra
.me
.REG
[3] = NEW_ILoop_icode_base___ILoop___init();
2982 /* ./syntax//icode_generation.nit:568 */
2983 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2984 /* ./syntax//icode_generation.nit:569 */
2985 fra
.me
.REG
[4] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2986 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2987 if (UNTAG_Bool(REGB0
)) {
2988 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 569);
2990 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2991 /* ./syntax//icode_generation.nit:570 */
2992 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2993 /* ./syntax//icode_generation.nit:573 */
2994 fra
.me
.REG
[3] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2995 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2996 if (UNTAG_Bool(REGB0
)) {
2998 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2999 if (UNTAG_Bool(REGB1
)) {
3000 REGB1
= TAG_Bool(false);
3003 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3007 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3008 if (UNTAG_Bool(REGB0
)) {
3009 /* ./syntax//icode_generation.nit:574 */
3010 fra
.me
.REG
[3] = NEW_ISeq_icode_base___ISeq___init();
3011 /* ./syntax//icode_generation.nit:575 */
3012 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3013 /* ./syntax//icode_generation.nit:576 */
3014 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3015 /* ./syntax//icode_generation.nit:577 */
3016 fra
.me
.REG
[4] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3017 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3018 if (UNTAG_Bool(REGB0
)) {
3019 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 577);
3021 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3022 /* ./syntax//icode_generation.nit:578 */
3023 fra
.me
.REG
[0] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3024 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3026 /* ./syntax//icode_generation.nit:581 */
3027 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3028 /* ./syntax//icode_generation.nit:582 */
3029 fra
.me
.REG
[2] = NIT_NULL
;
3032 stack_frame_head
= fra
.me
.prev
;
3033 return fra
.me
.REG
[2];
3035 val_t
icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3036 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3040 static val_t once_value_1
; /* Once value */
3041 static val_t once_value_2
; /* Once value */
3042 static val_t once_value_3
; /* Once value */
3043 static val_t once_value_4
; /* Once value */
3044 static val_t once_value_5
; /* Once value */
3045 static val_t once_value_6
; /* Once value */
3046 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3047 fra
.me
.file
= LOCATE_icode_generation
;
3049 fra
.me
.meth
= LOCATE_icode_generation___AForExpr___generate_icode
;
3050 fra
.me
.has_broke
= 0;
3051 fra
.me
.REG_size
= 9;
3052 fra
.me
.REG
[0] = NIT_NULL
;
3053 fra
.me
.REG
[1] = NIT_NULL
;
3054 fra
.me
.REG
[2] = NIT_NULL
;
3055 fra
.me
.REG
[3] = NIT_NULL
;
3056 fra
.me
.REG
[4] = NIT_NULL
;
3057 fra
.me
.REG
[5] = NIT_NULL
;
3058 fra
.me
.REG
[6] = NIT_NULL
;
3059 fra
.me
.REG
[7] = NIT_NULL
;
3060 fra
.me
.REG
[8] = NIT_NULL
;
3063 /* ./syntax//icode_generation.nit:589 */
3064 fra
.me
.REG
[2] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3065 /* ./syntax//icode_generation.nit:590 */
3066 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3067 /* ./syntax//icode_generation.nit:591 */
3068 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3069 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3070 /* ./syntax//icode_generation.nit:595 */
3071 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_ARangeExpr
, ID_ARangeExpr
)) /*cast ARangeExpr*/;
3072 if (UNTAG_Bool(REGB0
)) {
3073 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3074 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3075 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3076 if (UNTAG_Bool(REGB0
)) {
3078 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3082 REGB1
= TAG_Bool(false);
3085 if (UNTAG_Bool(REGB0
)) {
3086 /* ./syntax//icode_generation.nit:600 */
3088 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
3089 fra
.me
.REG
[6] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3090 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3091 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3092 fra
.me
.REG
[6] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3093 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3094 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3095 /* ./syntax//icode_generation.nit:601 */
3096 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_ACrangeExpr
, ID_ACrangeExpr
)) /*cast ACrangeExpr*/;
3097 if (UNTAG_Bool(REGB0
)) {
3098 /* ./syntax//icode_generation.nit:602 */
3099 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3100 if (!once_value_1
) {
3101 if (!once_value_2
) {
3102 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3103 REGB0
= TAG_Int(12);
3104 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3105 once_value_2
= fra
.me
.REG
[7];
3106 register_static_object(&once_value_2
);
3107 } else fra
.me
.REG
[7] = once_value_2
;
3108 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3109 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3110 once_value_1
= fra
.me
.REG
[7];
3111 register_static_object(&once_value_1
);
3112 } else fra
.me
.REG
[7] = once_value_1
;
3113 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3114 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4], fra
.me
.REG
[7]);
3116 /* ./syntax//icode_generation.nit:604 */
3117 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_AOrangeExpr
, ID_AOrangeExpr
)) /*cast AOrangeExpr*/;
3118 if (UNTAG_Bool(REGB0
)) {
3120 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 604);
3122 /* ./syntax//icode_generation.nit:605 */
3123 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3124 if (!once_value_3
) {
3125 if (!once_value_4
) {
3126 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3127 REGB0
= TAG_Int(16);
3128 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
3129 once_value_4
= fra
.me
.REG
[6];
3130 register_static_object(&once_value_4
);
3131 } else fra
.me
.REG
[6] = once_value_4
;
3132 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3133 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3134 once_value_3
= fra
.me
.REG
[6];
3135 register_static_object(&once_value_3
);
3136 } else fra
.me
.REG
[6] = once_value_3
;
3137 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3138 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3139 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3142 /* ./syntax//icode_generation.nit:611 */
3143 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3144 if (!once_value_5
) {
3145 if (!once_value_6
) {
3146 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3148 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3149 once_value_6
= fra
.me
.REG
[4];
3150 register_static_object(&once_value_6
);
3151 } else fra
.me
.REG
[4] = once_value_6
;
3152 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3153 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3154 once_value_5
= fra
.me
.REG
[4];
3155 register_static_object(&once_value_5
);
3156 } else fra
.me
.REG
[4] = once_value_5
;
3157 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3158 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3159 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3160 /* ./syntax//icode_generation.nit:612 */
3162 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
3163 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3164 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3165 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3166 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3168 /* ./syntax//icode_generation.nit:616 */
3169 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3170 if (UNTAG_Bool(REGB0
)) {
3171 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 616);
3173 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3174 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3175 if (UNTAG_Bool(REGB0
)) {
3176 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 616);
3178 fra
.me
.REG
[4] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3179 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3180 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3181 if (UNTAG_Bool(REGB0
)) {
3182 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 616);
3184 fra
.me
.REG
[4] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3185 fra
.me
.REG
[4] = CALL_icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3186 /* ./syntax//icode_generation.nit:617 */
3187 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3188 /* ./syntax//icode_generation.nit:619 */
3189 fra
.me
.REG
[6] = NEW_ISeq_icode_base___ISeq___init();
3190 /* ./syntax//icode_generation.nit:620 */
3191 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3192 /* ./syntax//icode_generation.nit:621 */
3193 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3194 /* ./syntax//icode_generation.nit:622 */
3195 fra
.me
.REG
[2] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3196 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3197 if (UNTAG_Bool(REGB0
)) {
3198 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 622);
3200 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3201 /* ./syntax//icode_generation.nit:623 */
3202 fra
.me
.REG
[2] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3203 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3204 if (UNTAG_Bool(REGB0
)) {
3205 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 623);
3207 CALL_icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3208 /* ./syntax//icode_generation.nit:625 */
3209 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3210 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3211 /* ./syntax//icode_generation.nit:626 */
3212 fra
.me
.REG
[2] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3213 fra
.me
.REG
[8] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3214 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3215 if (UNTAG_Bool(REGB0
)) {
3216 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 626);
3218 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3219 /* ./syntax//icode_generation.nit:627 */
3220 fra
.me
.REG
[8] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3221 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3222 if (UNTAG_Bool(REGB0
)) {
3223 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 627);
3225 CALL_icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3226 /* ./syntax//icode_generation.nit:628 */
3227 fra
.me
.REG
[8] = CALL_syntax_base___AForExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3228 fra
.me
.REG
[8] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3229 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3230 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3231 fra
.me
.REG
[2] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3232 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3233 /* ./syntax//icode_generation.nit:629 */
3234 fra
.me
.REG
[0] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3235 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3236 /* ./syntax//icode_generation.nit:632 */
3237 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3238 /* ./syntax//icode_generation.nit:633 */
3240 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
3241 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3242 CALL_icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[5], fra
.me
.REG
[6]);
3243 /* ./syntax//icode_generation.nit:635 */
3244 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3245 /* ./syntax//icode_generation.nit:636 */
3246 fra
.me
.REG
[3] = NIT_NULL
;
3249 stack_frame_head
= fra
.me
.prev
;
3250 return fra
.me
.REG
[3];
3252 val_t
icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3253 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3257 static val_t once_value_1
; /* Once value */
3258 static val_t once_value_2
; /* Once value */
3259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3260 fra
.me
.file
= LOCATE_icode_generation
;
3262 fra
.me
.meth
= LOCATE_icode_generation___AAssertExpr___generate_icode
;
3263 fra
.me
.has_broke
= 0;
3264 fra
.me
.REG_size
= 5;
3265 fra
.me
.REG
[0] = NIT_NULL
;
3266 fra
.me
.REG
[1] = NIT_NULL
;
3267 fra
.me
.REG
[2] = NIT_NULL
;
3268 fra
.me
.REG
[3] = NIT_NULL
;
3269 fra
.me
.REG
[4] = NIT_NULL
;
3272 /* ./syntax//icode_generation.nit:643 */
3273 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3274 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3275 /* ./syntax//icode_generation.nit:644 */
3276 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
3277 /* ./syntax//icode_generation.nit:645 */
3278 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3279 /* ./syntax//icode_generation.nit:646 */
3280 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3281 /* ./syntax//icode_generation.nit:647 */
3282 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3283 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3284 /* ./syntax//icode_generation.nit:648 */
3285 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3286 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3287 /* ./syntax//icode_generation.nit:649 */
3288 fra
.me
.REG
[0] = CALL_parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3289 /* ./syntax//icode_generation.nit:650 */
3290 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3291 if (UNTAG_Bool(REGB0
)) {
3293 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3294 if (UNTAG_Bool(REGB1
)) {
3295 REGB1
= TAG_Bool(false);
3298 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3302 if (UNTAG_Bool(REGB0
)) {
3303 /* ./syntax//icode_generation.nit:651 */
3305 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
3306 if (!once_value_1
) {
3307 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3308 REGB0
= TAG_Int(13);
3309 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3310 once_value_1
= fra
.me
.REG
[4];
3311 register_static_object(&once_value_1
);
3312 } else fra
.me
.REG
[4] = once_value_1
;
3313 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3314 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3315 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3317 /* ./syntax//icode_generation.nit:653 */
3319 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
3320 if (!once_value_2
) {
3321 fra
.me
.REG
[4] = BOX_NativeString("Assert %s failed");
3322 REGB0
= TAG_Int(17);
3323 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3324 once_value_2
= fra
.me
.REG
[4];
3325 register_static_object(&once_value_2
);
3326 } else fra
.me
.REG
[4] = once_value_2
;
3327 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3328 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3329 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3330 if (UNTAG_Bool(REGB0
)) {
3331 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 653);
3333 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3334 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3335 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3337 /* ./syntax//icode_generation.nit:655 */
3338 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3339 /* ./syntax//icode_generation.nit:656 */
3340 fra
.me
.REG
[3] = NIT_NULL
;
3343 stack_frame_head
= fra
.me
.prev
;
3344 return fra
.me
.REG
[3];
3346 val_t
icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3347 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3350 fra
.me
.file
= LOCATE_icode_generation
;
3352 fra
.me
.meth
= LOCATE_icode_generation___AVarExpr___generate_icode
;
3353 fra
.me
.has_broke
= 0;
3354 fra
.me
.REG_size
= 2;
3355 fra
.me
.REG
[0] = NIT_NULL
;
3356 fra
.me
.REG
[1] = NIT_NULL
;
3359 /* ./syntax//icode_generation.nit:663 */
3360 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3361 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3364 stack_frame_head
= fra
.me
.prev
;
3365 return fra
.me
.REG
[0];
3367 val_t
icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3368 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3371 fra
.me
.file
= LOCATE_icode_generation
;
3373 fra
.me
.meth
= LOCATE_icode_generation___AVarAssignExpr___generate_icode
;
3374 fra
.me
.has_broke
= 0;
3375 fra
.me
.REG_size
= 3;
3376 fra
.me
.REG
[0] = NIT_NULL
;
3377 fra
.me
.REG
[1] = NIT_NULL
;
3378 fra
.me
.REG
[2] = NIT_NULL
;
3381 /* ./syntax//icode_generation.nit:670 */
3382 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3383 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3384 /* ./syntax//icode_generation.nit:671 */
3385 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3386 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3387 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3388 /* ./syntax//icode_generation.nit:672 */
3389 fra
.me
.REG
[2] = NIT_NULL
;
3392 stack_frame_head
= fra
.me
.prev
;
3393 return fra
.me
.REG
[2];
3395 val_t
icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3396 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3400 fra
.me
.file
= LOCATE_icode_generation
;
3402 fra
.me
.meth
= LOCATE_icode_generation___AVarReassignExpr___generate_icode
;
3403 fra
.me
.has_broke
= 0;
3404 fra
.me
.REG_size
= 6;
3405 fra
.me
.REG
[0] = NIT_NULL
;
3406 fra
.me
.REG
[1] = NIT_NULL
;
3407 fra
.me
.REG
[2] = NIT_NULL
;
3408 fra
.me
.REG
[3] = NIT_NULL
;
3409 fra
.me
.REG
[4] = NIT_NULL
;
3410 fra
.me
.REG
[5] = NIT_NULL
;
3413 /* ./syntax//icode_generation.nit:679 */
3414 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3415 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3416 /* ./syntax//icode_generation.nit:680 */
3417 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3418 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3419 /* ./syntax//icode_generation.nit:681 */
3420 fra
.me
.REG
[4] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3422 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
3423 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
3424 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3425 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3426 fra
.me
.REG
[0] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3427 fra
.me
.REG
[0] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3428 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3429 if (UNTAG_Bool(REGB0
)) {
3430 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 681);
3432 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3433 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3434 if (UNTAG_Bool(REGB0
)) {
3436 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 681);
3438 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[0]);
3439 /* ./syntax//icode_generation.nit:682 */
3440 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3441 /* ./syntax//icode_generation.nit:683 */
3442 fra
.me
.REG
[0] = NIT_NULL
;
3445 stack_frame_head
= fra
.me
.prev
;
3446 return fra
.me
.REG
[0];
3448 val_t
icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3449 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3451 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3452 fra
.me
.file
= LOCATE_icode_generation
;
3454 fra
.me
.meth
= LOCATE_icode_generation___ASelfExpr___generate_icode
;
3455 fra
.me
.has_broke
= 0;
3456 fra
.me
.REG_size
= 2;
3457 fra
.me
.REG
[0] = NIT_NULL
;
3458 fra
.me
.REG
[1] = NIT_NULL
;
3461 /* ./syntax//icode_generation.nit:690 */
3462 fra
.me
.REG
[0] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3463 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3466 stack_frame_head
= fra
.me
.prev
;
3467 return fra
.me
.REG
[0];
3469 val_t
icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
3470 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3472 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3473 fra
.me
.file
= LOCATE_icode_generation
;
3475 fra
.me
.meth
= LOCATE_icode_generation___AIfexprExpr___generate_icode
;
3476 fra
.me
.has_broke
= 0;
3477 fra
.me
.REG_size
= 6;
3478 fra
.me
.REG
[0] = NIT_NULL
;
3479 fra
.me
.REG
[1] = NIT_NULL
;
3480 fra
.me
.REG
[2] = NIT_NULL
;
3481 fra
.me
.REG
[3] = NIT_NULL
;
3482 fra
.me
.REG
[4] = NIT_NULL
;
3483 fra
.me
.REG
[5] = NIT_NULL
;
3486 /* ./syntax//icode_generation.nit:698 */
3487 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3488 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3489 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
3490 /* ./syntax//icode_generation.nit:699 */
3491 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3492 /* ./syntax//icode_generation.nit:700 */
3493 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3494 /* ./syntax//icode_generation.nit:703 */
3495 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3496 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3497 /* ./syntax//icode_generation.nit:706 */
3498 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3499 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3500 /* ./syntax//icode_generation.nit:707 */
3501 fra
.me
.REG
[5] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3502 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3503 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3504 /* ./syntax//icode_generation.nit:710 */
3505 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3506 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3507 /* ./syntax//icode_generation.nit:711 */
3508 fra
.me
.REG
[0] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3509 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3510 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
3511 /* ./syntax//icode_generation.nit:713 */
3512 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3513 /* ./syntax//icode_generation.nit:714 */
3516 stack_frame_head
= fra
.me
.prev
;
3517 return fra
.me
.REG
[4];
3519 val_t
icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
3520 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3523 fra
.me
.file
= LOCATE_icode_generation
;
3525 fra
.me
.meth
= LOCATE_icode_generation___AEeExpr___generate_icode
;
3526 fra
.me
.has_broke
= 0;
3527 fra
.me
.REG_size
= 4;
3528 fra
.me
.REG
[0] = NIT_NULL
;
3529 fra
.me
.REG
[1] = NIT_NULL
;
3530 fra
.me
.REG
[2] = NIT_NULL
;
3531 fra
.me
.REG
[3] = NIT_NULL
;
3534 /* ./syntax//icode_generation.nit:721 */
3535 fra
.me
.REG
[2] = CALL_parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3536 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3537 /* ./syntax//icode_generation.nit:722 */
3538 fra
.me
.REG
[3] = CALL_parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3539 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3540 /* ./syntax//icode_generation.nit:723 */
3541 fra
.me
.REG
[3] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3542 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3543 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
3546 stack_frame_head
= fra
.me
.prev
;
3547 return fra
.me
.REG
[0];
3549 val_t
icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
3550 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3552 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3553 fra
.me
.file
= LOCATE_icode_generation
;
3555 fra
.me
.meth
= LOCATE_icode_generation___AOrExpr___generate_icode
;
3556 fra
.me
.has_broke
= 0;
3557 fra
.me
.REG_size
= 6;
3558 fra
.me
.REG
[0] = NIT_NULL
;
3559 fra
.me
.REG
[1] = NIT_NULL
;
3560 fra
.me
.REG
[2] = NIT_NULL
;
3561 fra
.me
.REG
[3] = NIT_NULL
;
3562 fra
.me
.REG
[4] = NIT_NULL
;
3563 fra
.me
.REG
[5] = NIT_NULL
;
3566 /* ./syntax//icode_generation.nit:731 */
3567 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3568 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3569 /* ./syntax//icode_generation.nit:734 */
3570 fra
.me
.REG
[3] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3571 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3572 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
3573 /* ./syntax//icode_generation.nit:735 */
3574 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3575 /* ./syntax//icode_generation.nit:736 */
3576 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3577 /* ./syntax//icode_generation.nit:737 */
3578 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3579 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3580 /* ./syntax//icode_generation.nit:738 */
3581 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3582 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
3583 /* ./syntax//icode_generation.nit:741 */
3584 fra
.me
.REG
[3] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3585 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3586 /* ./syntax//icode_generation.nit:742 */
3587 fra
.me
.REG
[0] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3588 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3589 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3590 /* ./syntax//icode_generation.nit:744 */
3591 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3592 /* ./syntax//icode_generation.nit:745 */
3595 stack_frame_head
= fra
.me
.prev
;
3596 return fra
.me
.REG
[2];
3598 val_t
icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
3599 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3602 fra
.me
.file
= LOCATE_icode_generation
;
3604 fra
.me
.meth
= LOCATE_icode_generation___AAndExpr___generate_icode
;
3605 fra
.me
.has_broke
= 0;
3606 fra
.me
.REG_size
= 6;
3607 fra
.me
.REG
[0] = NIT_NULL
;
3608 fra
.me
.REG
[1] = NIT_NULL
;
3609 fra
.me
.REG
[2] = NIT_NULL
;
3610 fra
.me
.REG
[3] = NIT_NULL
;
3611 fra
.me
.REG
[4] = NIT_NULL
;
3612 fra
.me
.REG
[5] = NIT_NULL
;
3615 /* ./syntax//icode_generation.nit:753 */
3616 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3617 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3618 /* ./syntax//icode_generation.nit:756 */
3619 fra
.me
.REG
[3] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3620 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3621 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
3622 /* ./syntax//icode_generation.nit:757 */
3623 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3624 /* ./syntax//icode_generation.nit:758 */
3625 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3626 /* ./syntax//icode_generation.nit:759 */
3627 fra
.me
.REG
[5] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3628 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3629 /* ./syntax//icode_generation.nit:760 */
3630 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3631 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
3632 /* ./syntax//icode_generation.nit:763 */
3633 fra
.me
.REG
[3] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3634 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3635 /* ./syntax//icode_generation.nit:764 */
3636 fra
.me
.REG
[0] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3637 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3638 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3639 /* ./syntax//icode_generation.nit:766 */
3640 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3641 /* ./syntax//icode_generation.nit:767 */
3644 stack_frame_head
= fra
.me
.prev
;
3645 return fra
.me
.REG
[2];
3647 val_t
icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
3648 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3650 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3651 fra
.me
.file
= LOCATE_icode_generation
;
3653 fra
.me
.meth
= LOCATE_icode_generation___ANotExpr___generate_icode
;
3654 fra
.me
.has_broke
= 0;
3655 fra
.me
.REG_size
= 3;
3656 fra
.me
.REG
[0] = NIT_NULL
;
3657 fra
.me
.REG
[1] = NIT_NULL
;
3658 fra
.me
.REG
[2] = NIT_NULL
;
3661 /* ./syntax//icode_generation.nit:774 */
3662 fra
.me
.REG
[2] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3663 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3664 /* ./syntax//icode_generation.nit:775 */
3665 fra
.me
.REG
[2] = NEW_INot_icode_base___INot___init(fra
.me
.REG
[2]);
3666 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3667 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3670 stack_frame_head
= fra
.me
.prev
;
3671 return fra
.me
.REG
[0];
3673 val_t
icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
3674 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3676 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3677 fra
.me
.file
= LOCATE_icode_generation
;
3679 fra
.me
.meth
= LOCATE_icode_generation___AOrElseExpr___generate_icode
;
3680 fra
.me
.has_broke
= 0;
3681 fra
.me
.REG_size
= 7;
3682 fra
.me
.REG
[0] = NIT_NULL
;
3683 fra
.me
.REG
[1] = NIT_NULL
;
3684 fra
.me
.REG
[2] = NIT_NULL
;
3685 fra
.me
.REG
[3] = NIT_NULL
;
3686 fra
.me
.REG
[4] = NIT_NULL
;
3687 fra
.me
.REG
[5] = NIT_NULL
;
3688 fra
.me
.REG
[6] = NIT_NULL
;
3691 /* ./syntax//icode_generation.nit:783 */
3692 fra
.me
.REG
[2] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3693 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3694 /* ./syntax//icode_generation.nit:786 */
3695 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3696 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3697 /* ./syntax//icode_generation.nit:789 */
3698 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3699 /* ./syntax//icode_generation.nit:790 */
3700 fra
.me
.REG
[4] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3701 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3702 fra
.me
.REG
[5] = CALL_static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3703 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3704 /* ./syntax//icode_generation.nit:791 */
3705 fra
.me
.REG
[5] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[5]);
3706 /* ./syntax//icode_generation.nit:792 */
3707 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3708 /* ./syntax//icode_generation.nit:793 */
3709 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3710 /* ./syntax//icode_generation.nit:796 */
3711 fra
.me
.REG
[6] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3712 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3713 /* ./syntax//icode_generation.nit:797 */
3714 fra
.me
.REG
[0] = CALL_parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3715 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3716 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
3717 /* ./syntax//icode_generation.nit:800 */
3718 fra
.me
.REG
[5] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3719 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3720 /* ./syntax//icode_generation.nit:801 */
3721 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3722 /* ./syntax//icode_generation.nit:803 */
3723 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3724 /* ./syntax//icode_generation.nit:805 */
3727 stack_frame_head
= fra
.me
.prev
;
3728 return fra
.me
.REG
[3];
3730 val_t
icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
3731 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3733 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3734 fra
.me
.file
= LOCATE_icode_generation
;
3736 fra
.me
.meth
= LOCATE_icode_generation___AIsaExpr___generate_icode
;
3737 fra
.me
.has_broke
= 0;
3738 fra
.me
.REG_size
= 4;
3739 fra
.me
.REG
[0] = NIT_NULL
;
3740 fra
.me
.REG
[1] = NIT_NULL
;
3741 fra
.me
.REG
[2] = NIT_NULL
;
3742 fra
.me
.REG
[3] = NIT_NULL
;
3745 /* ./syntax//icode_generation.nit:812 */
3746 fra
.me
.REG
[2] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3747 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3748 /* ./syntax//icode_generation.nit:813 */
3749 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3750 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3751 fra
.me
.REG
[3] = NEW_ITypeCheck_icode_base___ITypeCheck___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3752 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3753 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
3756 stack_frame_head
= fra
.me
.prev
;
3757 return fra
.me
.REG
[0];
3759 val_t
icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
3760 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3763 fra
.me
.file
= LOCATE_icode_generation
;
3765 fra
.me
.meth
= LOCATE_icode_generation___AAsCastExpr___generate_icode
;
3766 fra
.me
.has_broke
= 0;
3767 fra
.me
.REG_size
= 3;
3768 fra
.me
.REG
[0] = NIT_NULL
;
3769 fra
.me
.REG
[1] = NIT_NULL
;
3770 fra
.me
.REG
[2] = NIT_NULL
;
3773 /* ./syntax//icode_generation.nit:820 */
3774 fra
.me
.REG
[2] = CALL_parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3775 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3776 /* ./syntax//icode_generation.nit:821 */
3777 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3778 CALL_icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3779 /* ./syntax//icode_generation.nit:822 */
3782 stack_frame_head
= fra
.me
.prev
;
3783 return fra
.me
.REG
[2];
3785 val_t
icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
3786 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3789 fra
.me
.file
= LOCATE_icode_generation
;
3791 fra
.me
.meth
= LOCATE_icode_generation___AAsNotnullExpr___generate_icode
;
3792 fra
.me
.has_broke
= 0;
3793 fra
.me
.REG_size
= 3;
3794 fra
.me
.REG
[0] = NIT_NULL
;
3795 fra
.me
.REG
[1] = NIT_NULL
;
3796 fra
.me
.REG
[2] = NIT_NULL
;
3799 /* ./syntax//icode_generation.nit:829 */
3800 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3801 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3802 /* ./syntax//icode_generation.nit:830 */
3803 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3804 CALL_icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3805 /* ./syntax//icode_generation.nit:831 */
3808 stack_frame_head
= fra
.me
.prev
;
3809 return fra
.me
.REG
[2];
3811 val_t
icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
3812 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3815 fra
.me
.file
= LOCATE_icode_generation
;
3817 fra
.me
.meth
= LOCATE_icode_generation___ATrueExpr___generate_icode
;
3818 fra
.me
.has_broke
= 0;
3819 fra
.me
.REG_size
= 2;
3820 fra
.me
.REG
[0] = NIT_NULL
;
3821 fra
.me
.REG
[1] = NIT_NULL
;
3824 /* ./syntax//icode_generation.nit:838 */
3825 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3828 stack_frame_head
= fra
.me
.prev
;
3829 return fra
.me
.REG
[1];
3831 val_t
icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
3832 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3834 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3835 fra
.me
.file
= LOCATE_icode_generation
;
3837 fra
.me
.meth
= LOCATE_icode_generation___AFalseExpr___generate_icode
;
3838 fra
.me
.has_broke
= 0;
3839 fra
.me
.REG_size
= 2;
3840 fra
.me
.REG
[0] = NIT_NULL
;
3841 fra
.me
.REG
[1] = NIT_NULL
;
3844 /* ./syntax//icode_generation.nit:845 */
3845 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3848 stack_frame_head
= fra
.me
.prev
;
3849 return fra
.me
.REG
[1];
3851 val_t
icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
3852 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3855 fra
.me
.file
= LOCATE_icode_generation
;
3857 fra
.me
.meth
= LOCATE_icode_generation___AIntExpr___generate_icode
;
3858 fra
.me
.has_broke
= 0;
3859 fra
.me
.REG_size
= 3;
3860 fra
.me
.REG
[0] = NIT_NULL
;
3861 fra
.me
.REG
[1] = NIT_NULL
;
3862 fra
.me
.REG
[2] = NIT_NULL
;
3865 /* ./syntax//icode_generation.nit:852 */
3866 fra
.me
.REG
[2] = CALL_parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3867 fra
.me
.REG
[2] = CALL_lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3868 fra
.me
.REG
[2] = NEW_IIntValue_icode_base___IIntValue___init(fra
.me
.REG
[2]);
3869 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3870 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3873 stack_frame_head
= fra
.me
.prev
;
3874 return fra
.me
.REG
[0];
3876 val_t
icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
3877 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3880 fra
.me
.file
= LOCATE_icode_generation
;
3882 fra
.me
.meth
= LOCATE_icode_generation___AFloatExpr___generate_icode
;
3883 fra
.me
.has_broke
= 0;
3884 fra
.me
.REG_size
= 3;
3885 fra
.me
.REG
[0] = NIT_NULL
;
3886 fra
.me
.REG
[1] = NIT_NULL
;
3887 fra
.me
.REG
[2] = NIT_NULL
;
3890 /* ./syntax//icode_generation.nit:859 */
3891 fra
.me
.REG
[2] = CALL_parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3892 fra
.me
.REG
[2] = CALL_lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3893 fra
.me
.REG
[2] = NEW_IFloatValue_icode_base___IFloatValue___init(fra
.me
.REG
[2]);
3894 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3895 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3898 stack_frame_head
= fra
.me
.prev
;
3899 return fra
.me
.REG
[0];
3901 val_t
icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
3902 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3905 fra
.me
.file
= LOCATE_icode_generation
;
3907 fra
.me
.meth
= LOCATE_icode_generation___ACharExpr___generate_icode
;
3908 fra
.me
.has_broke
= 0;
3909 fra
.me
.REG_size
= 3;
3910 fra
.me
.REG
[0] = NIT_NULL
;
3911 fra
.me
.REG
[1] = NIT_NULL
;
3912 fra
.me
.REG
[2] = NIT_NULL
;
3915 /* ./syntax//icode_generation.nit:866 */
3916 fra
.me
.REG
[2] = CALL_parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3917 fra
.me
.REG
[2] = CALL_lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3918 fra
.me
.REG
[2] = NEW_ICharValue_icode_base___ICharValue___init(fra
.me
.REG
[2]);
3919 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3920 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3923 stack_frame_head
= fra
.me
.prev
;
3924 return fra
.me
.REG
[0];
3926 val_t
icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
3927 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3930 static val_t once_value_1
; /* Once value */
3931 static val_t once_value_2
; /* Once value */
3932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3933 fra
.me
.file
= LOCATE_icode_generation
;
3935 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___generate_icode
;
3936 fra
.me
.has_broke
= 0;
3937 fra
.me
.REG_size
= 9;
3938 fra
.me
.REG
[0] = NIT_NULL
;
3939 fra
.me
.REG
[1] = NIT_NULL
;
3940 fra
.me
.REG
[2] = NIT_NULL
;
3941 fra
.me
.REG
[3] = NIT_NULL
;
3942 fra
.me
.REG
[4] = NIT_NULL
;
3943 fra
.me
.REG
[5] = NIT_NULL
;
3944 fra
.me
.REG
[6] = NIT_NULL
;
3945 fra
.me
.REG
[7] = NIT_NULL
;
3946 fra
.me
.REG
[8] = NIT_NULL
;
3949 /* ./syntax//icode_generation.nit:873 */
3950 CALL_icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3951 /* ./syntax//icode_generation.nit:874 */
3952 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3953 /* ./syntax//icode_generation.nit:875 */
3954 fra
.me
.REG
[3] = NEW_IOnce_icode_base___IOnce___init();
3955 /* ./syntax//icode_generation.nit:876 */
3956 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3957 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3958 /* ./syntax//icode_generation.nit:877 */
3959 fra
.me
.REG
[3] = CALL_icode_base___IOnce___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3960 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3961 /* ./syntax//icode_generation.nit:878 */
3962 fra
.me
.REG
[3] = ATTR_icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]);
3963 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
3964 if (UNTAG_Bool(REGB0
)) {
3966 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 878);
3968 fra
.me
.REG
[3] = NEW_IStringValue_icode_base___IStringValue___init(fra
.me
.REG
[3]);
3969 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3970 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3971 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
3972 /* ./syntax//icode_generation.nit:879 */
3973 fra
.me
.REG
[3] = ATTR_icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]);
3974 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3975 if (UNTAG_Bool(REGB0
)) {
3976 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 879);
3978 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3979 fra
.me
.REG
[3] = NEW_IIntValue_icode_base___IIntValue___init(fra
.me
.REG
[3]);
3980 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3981 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3982 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[6]);
3983 /* ./syntax//icode_generation.nit:880 */
3984 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3985 fra
.me
.REG
[7] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3986 if (!once_value_1
) {
3987 if (!once_value_2
) {
3988 fra
.me
.REG
[8] = BOX_NativeString("with_native");
3989 REGB0
= TAG_Int(11);
3990 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
3991 once_value_2
= fra
.me
.REG
[8];
3992 register_static_object(&once_value_2
);
3993 } else fra
.me
.REG
[8] = once_value_2
;
3994 fra
.me
.REG
[8] = fra
.me
.REG
[8];
3995 fra
.me
.REG
[8] = CALL_symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
3996 once_value_1
= fra
.me
.REG
[8];
3997 register_static_object(&once_value_1
);
3998 } else fra
.me
.REG
[8] = once_value_1
;
3999 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4000 fra
.me
.REG
[8] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[8]);
4001 /* ./syntax//icode_generation.nit:881 */
4002 fra
.me
.REG
[7] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4004 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
4005 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
4006 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
4007 fra
.me
.REG
[3] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[3]);
4008 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4009 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4010 /* ./syntax//icode_generation.nit:882 */
4011 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4012 /* ./syntax//icode_generation.nit:883 */
4013 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4014 /* ./syntax//icode_generation.nit:884 */
4017 stack_frame_head
= fra
.me
.prev
;
4018 return fra
.me
.REG
[4];
4020 val_t
icode_generation___AStringFormExpr___string_text(val_t p0
){
4021 struct {struct stack_frame_t me
;} fra
;
4023 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4024 fra
.me
.file
= LOCATE_icode_generation
;
4026 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___string_text
;
4027 fra
.me
.has_broke
= 0;
4028 fra
.me
.REG_size
= 0;
4029 /* ./syntax//icode_generation.nit:887 */
4030 nit_abort("Deferred method called", NULL
, LOCATE_icode_generation
, 887);
4031 stack_frame_head
= fra
.me
.prev
;
4034 void icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4035 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4044 fra
.me
.file
= LOCATE_icode_generation
;
4046 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___compute_string_infos
;
4047 fra
.me
.has_broke
= 0;
4048 fra
.me
.REG_size
= 3;
4049 fra
.me
.REG
[0] = NIT_NULL
;
4050 fra
.me
.REG
[1] = NIT_NULL
;
4051 fra
.me
.REG
[2] = NIT_NULL
;
4053 /* ./syntax//icode_generation.nit:899 */
4055 /* ./syntax//icode_generation.nit:900 */
4056 fra
.me
.REG
[1] = CALL_icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4057 /* ./syntax//icode_generation.nit:901 */
4058 fra
.me
.REG
[2] = NEW_Buffer_string___Buffer___init();
4059 /* ./syntax//icode_generation.nit:902 */
4061 /* ./syntax//icode_generation.nit:903 */
4063 /* ./../lib/standard//collection//array.nit:23 */
4064 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4065 if (UNTAG_Bool(REGB2
)) {
4067 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
4069 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4070 /* ./../lib/standard//kernel.nit:212 */
4071 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4072 /* ./syntax//icode_generation.nit:903 */
4073 if (UNTAG_Bool(REGB2
)) {
4074 /* ./syntax//icode_generation.nit:904 */
4075 REGB2
= CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4076 /* ./syntax//icode_generation.nit:905 */
4077 REGB3
= TAG_Char('\\');
4078 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4079 if (UNTAG_Bool(REGB4
)) {
4081 /* ./../lib/standard//kernel.nit:347 */
4082 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4083 /* ./syntax//icode_generation.nit:905 */
4086 if (UNTAG_Bool(REGB4
)) {
4087 /* ./syntax//icode_generation.nit:906 */
4089 /* ./../lib/standard//kernel.nit:215 */
4090 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4091 /* ./syntax//icode_generation.nit:906 */
4093 /* ./syntax//icode_generation.nit:907 */
4094 REGB4
= CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4095 /* ./syntax//icode_generation.nit:908 */
4096 REGB3
= TAG_Char('{');
4097 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4098 if (UNTAG_Bool(REGB5
)) {
4100 /* ./../lib/standard//kernel.nit:347 */
4101 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4102 /* ./syntax//icode_generation.nit:908 */
4105 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4106 if (UNTAG_Bool(REGB5
)) {
4107 REGB5
= TAG_Char('}');
4108 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4109 if (UNTAG_Bool(REGB3
)) {
4111 /* ./../lib/standard//kernel.nit:347 */
4112 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4113 /* ./syntax//icode_generation.nit:908 */
4116 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4118 REGB5
= TAG_Bool(false);
4121 if (UNTAG_Bool(REGB3
)) {
4122 /* ./syntax//icode_generation.nit:909 */
4123 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4125 /* ./syntax//icode_generation.nit:911 */
4128 /* ./syntax//icode_generation.nit:913 */
4130 /* ./../lib/standard//kernel.nit:215 */
4131 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4132 /* ./syntax//icode_generation.nit:913 */
4134 /* ./syntax//icode_generation.nit:914 */
4135 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4136 /* ./syntax//icode_generation.nit:915 */
4138 /* ./../lib/standard//kernel.nit:215 */
4139 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4140 /* ./syntax//icode_generation.nit:915 */
4143 /* ./syntax//icode_generation.nit:903 */
4148 /* ./syntax//icode_generation.nit:917 */
4149 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4150 ATTR_icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4151 /* ./syntax//icode_generation.nit:918 */
4152 ATTR_icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4153 stack_frame_head
= fra
.me
.prev
;
4156 val_t
icode_generation___AStringExpr___string_text(val_t p0
){
4157 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4163 fra
.me
.file
= LOCATE_icode_generation
;
4165 fra
.me
.meth
= LOCATE_icode_generation___AStringExpr___string_text
;
4166 fra
.me
.has_broke
= 0;
4167 fra
.me
.REG_size
= 2;
4168 fra
.me
.REG
[0] = NIT_NULL
;
4169 fra
.me
.REG
[1] = NIT_NULL
;
4171 /* ./syntax//icode_generation.nit:923 */
4172 fra
.me
.REG
[1] = CALL_parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4173 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4175 fra
.me
.REG
[0] = CALL_parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4176 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4177 /* ./../lib/standard//collection//array.nit:23 */
4178 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4179 if (UNTAG_Bool(REGB1
)) {
4181 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
4183 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4184 /* ./syntax//icode_generation.nit:923 */
4186 /* ./../lib/standard//kernel.nit:217 */
4187 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4188 /* ./syntax//icode_generation.nit:923 */
4189 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4192 stack_frame_head
= fra
.me
.prev
;
4193 return fra
.me
.REG
[1];
4195 val_t
icode_generation___AStartStringExpr___string_text(val_t p0
){
4196 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4202 fra
.me
.file
= LOCATE_icode_generation
;
4204 fra
.me
.meth
= LOCATE_icode_generation___AStartStringExpr___string_text
;
4205 fra
.me
.has_broke
= 0;
4206 fra
.me
.REG_size
= 2;
4207 fra
.me
.REG
[0] = NIT_NULL
;
4208 fra
.me
.REG
[1] = NIT_NULL
;
4210 /* ./syntax//icode_generation.nit:926 */
4211 fra
.me
.REG
[1] = CALL_parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4212 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4214 fra
.me
.REG
[0] = CALL_parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4215 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4216 /* ./../lib/standard//collection//array.nit:23 */
4217 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4218 if (UNTAG_Bool(REGB1
)) {
4220 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
4222 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4223 /* ./syntax//icode_generation.nit:926 */
4225 /* ./../lib/standard//kernel.nit:217 */
4226 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4227 /* ./syntax//icode_generation.nit:926 */
4228 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4231 stack_frame_head
= fra
.me
.prev
;
4232 return fra
.me
.REG
[1];
4234 val_t
icode_generation___AMidStringExpr___string_text(val_t p0
){
4235 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4241 fra
.me
.file
= LOCATE_icode_generation
;
4243 fra
.me
.meth
= LOCATE_icode_generation___AMidStringExpr___string_text
;
4244 fra
.me
.has_broke
= 0;
4245 fra
.me
.REG_size
= 2;
4246 fra
.me
.REG
[0] = NIT_NULL
;
4247 fra
.me
.REG
[1] = NIT_NULL
;
4249 /* ./syntax//icode_generation.nit:929 */
4250 fra
.me
.REG
[1] = CALL_parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4251 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4253 fra
.me
.REG
[0] = CALL_parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4254 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4255 /* ./../lib/standard//collection//array.nit:23 */
4256 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4257 if (UNTAG_Bool(REGB1
)) {
4259 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
4261 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4262 /* ./syntax//icode_generation.nit:929 */
4264 /* ./../lib/standard//kernel.nit:217 */
4265 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4266 /* ./syntax//icode_generation.nit:929 */
4267 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4270 stack_frame_head
= fra
.me
.prev
;
4271 return fra
.me
.REG
[1];
4273 val_t
icode_generation___AEndStringExpr___string_text(val_t p0
){
4274 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4280 fra
.me
.file
= LOCATE_icode_generation
;
4282 fra
.me
.meth
= LOCATE_icode_generation___AEndStringExpr___string_text
;
4283 fra
.me
.has_broke
= 0;
4284 fra
.me
.REG_size
= 2;
4285 fra
.me
.REG
[0] = NIT_NULL
;
4286 fra
.me
.REG
[1] = NIT_NULL
;
4288 /* ./syntax//icode_generation.nit:932 */
4289 fra
.me
.REG
[1] = CALL_parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4290 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4292 fra
.me
.REG
[0] = CALL_parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4293 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4294 /* ./../lib/standard//collection//array.nit:23 */
4295 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4296 if (UNTAG_Bool(REGB1
)) {
4298 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
4300 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4301 /* ./syntax//icode_generation.nit:932 */
4303 /* ./../lib/standard//kernel.nit:217 */
4304 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4305 /* ./syntax//icode_generation.nit:932 */
4306 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4309 stack_frame_head
= fra
.me
.prev
;
4310 return fra
.me
.REG
[1];
4312 val_t
icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
4313 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4316 static val_t once_value_1
; /* Once value */
4317 static val_t once_value_2
; /* Once value */
4318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4319 fra
.me
.file
= LOCATE_icode_generation
;
4321 fra
.me
.meth
= LOCATE_icode_generation___ASuperstringExpr___generate_icode
;
4322 fra
.me
.has_broke
= 0;
4323 fra
.me
.REG_size
= 6;
4324 fra
.me
.REG
[0] = NIT_NULL
;
4325 fra
.me
.REG
[1] = NIT_NULL
;
4326 fra
.me
.REG
[2] = NIT_NULL
;
4327 fra
.me
.REG
[3] = NIT_NULL
;
4328 fra
.me
.REG
[4] = NIT_NULL
;
4329 fra
.me
.REG
[5] = NIT_NULL
;
4332 /* ./syntax//icode_generation.nit:938 */
4333 fra
.me
.REG
[2] = CALL_syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4334 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4335 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4336 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
4337 /* ./syntax//icode_generation.nit:939 */
4338 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4339 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4340 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4341 if (!once_value_1
) {
4342 if (!once_value_2
) {
4343 fra
.me
.REG
[5] = BOX_NativeString("to_s");
4345 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4346 once_value_2
= fra
.me
.REG
[5];
4347 register_static_object(&once_value_2
);
4348 } else fra
.me
.REG
[5] = once_value_2
;
4349 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4350 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4351 once_value_1
= fra
.me
.REG
[5];
4352 register_static_object(&once_value_1
);
4353 } else fra
.me
.REG
[5] = once_value_1
;
4354 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4355 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4356 /* ./syntax//icode_generation.nit:940 */
4357 fra
.me
.REG
[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4358 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_icode_generation___ASuperstringExpr___generate_icode_3
));
4359 /* ./syntax//icode_generation.nit:947 */
4361 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4362 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4363 fra
.me
.REG
[4] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4364 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4365 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4368 stack_frame_head
= fra
.me
.prev
;
4369 return fra
.me
.REG
[0];
4371 void OC_icode_generation___ASuperstringExpr___generate_icode_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4372 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4378 fra
.me
.file
= LOCATE_icode_generation
;
4380 fra
.me
.meth
= LOCATE_icode_generation___ASuperstringExpr___generate_icode
;
4381 fra
.me
.has_broke
= 0;
4382 fra
.me
.REG_size
= 3;
4383 fra
.me
.REG
[0] = NIT_NULL
;
4384 fra
.me
.REG
[1] = NIT_NULL
;
4385 fra
.me
.REG
[2] = NIT_NULL
;
4386 fra
.me
.closure_ctx
= closctx_param
;
4387 fra
.me
.closure_funs
= CREG
;
4389 CREG
[0] = clos_fun0
;
4390 /* ./syntax//icode_generation.nit:941 */
4391 fra
.me
.REG
[1] = CALL_icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4392 /* ./syntax//icode_generation.nit:942 */
4393 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4394 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4395 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
4396 if (UNTAG_Bool(REGB0
)) {
4398 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4401 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4402 if (UNTAG_Bool(REGB0
)) {
4403 /* ./syntax//icode_generation.nit:943 */
4405 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4406 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4407 fra
.me
.REG
[2] = NEW_ICall_icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
4408 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4409 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4410 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4412 /* ./syntax//icode_generation.nit:945 */
4413 CALL_icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
4414 stack_frame_head
= fra
.me
.prev
;
4417 val_t
icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
4418 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4421 fra
.me
.file
= LOCATE_icode_generation
;
4423 fra
.me
.meth
= LOCATE_icode_generation___ANullExpr___generate_icode
;
4424 fra
.me
.has_broke
= 0;
4425 fra
.me
.REG_size
= 2;
4426 fra
.me
.REG
[0] = NIT_NULL
;
4427 fra
.me
.REG
[1] = NIT_NULL
;
4430 /* ./syntax//icode_generation.nit:954 */
4431 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4434 stack_frame_head
= fra
.me
.prev
;
4435 return fra
.me
.REG
[1];
4437 val_t
icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
4438 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4441 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4442 fra
.me
.file
= LOCATE_icode_generation
;
4444 fra
.me
.meth
= LOCATE_icode_generation___AArrayExpr___generate_icode
;
4445 fra
.me
.has_broke
= 0;
4446 fra
.me
.REG_size
= 4;
4447 fra
.me
.REG
[0] = NIT_NULL
;
4448 fra
.me
.REG
[1] = NIT_NULL
;
4449 fra
.me
.REG
[2] = NIT_NULL
;
4450 fra
.me
.REG
[3] = NIT_NULL
;
4453 /* ./syntax//icode_generation.nit:961 */
4454 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4455 fra
.me
.REG
[3] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4456 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4457 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
4458 /* ./syntax//icode_generation.nit:962 */
4459 fra
.me
.REG
[0] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4460 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_icode_generation___AArrayExpr___generate_icode_1
));
4461 /* ./syntax//icode_generation.nit:966 */
4464 stack_frame_head
= fra
.me
.prev
;
4465 return fra
.me
.REG
[2];
4467 void OC_icode_generation___AArrayExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4468 struct {struct stack_frame_t me
;} fra
;
4471 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4472 fra
.me
.file
= LOCATE_icode_generation
;
4474 fra
.me
.meth
= LOCATE_icode_generation___AArrayExpr___generate_icode
;
4475 fra
.me
.has_broke
= 0;
4476 fra
.me
.REG_size
= 1;
4477 fra
.me
.REG
[0] = NIT_NULL
;
4478 fra
.me
.closure_ctx
= closctx_param
;
4479 fra
.me
.closure_funs
= CREG
;
4481 CREG
[0] = clos_fun0
;
4482 /* ./syntax//icode_generation.nit:963 */
4483 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4484 /* ./syntax//icode_generation.nit:964 */
4485 CALL_icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[0]);
4486 stack_frame_head
= fra
.me
.prev
;
4489 val_t
icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
4490 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4493 static val_t once_value_1
; /* Once value */
4494 static val_t once_value_2
; /* Once value */
4495 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4496 fra
.me
.file
= LOCATE_icode_generation
;
4498 fra
.me
.meth
= LOCATE_icode_generation___ACrangeExpr___generate_icode
;
4499 fra
.me
.has_broke
= 0;
4500 fra
.me
.REG_size
= 7;
4501 fra
.me
.REG
[0] = NIT_NULL
;
4502 fra
.me
.REG
[1] = NIT_NULL
;
4503 fra
.me
.REG
[2] = NIT_NULL
;
4504 fra
.me
.REG
[3] = NIT_NULL
;
4505 fra
.me
.REG
[4] = NIT_NULL
;
4506 fra
.me
.REG
[5] = NIT_NULL
;
4507 fra
.me
.REG
[6] = NIT_NULL
;
4510 /* ./syntax//icode_generation.nit:973 */
4511 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4512 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4513 /* ./syntax//icode_generation.nit:974 */
4514 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4515 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4516 /* ./syntax//icode_generation.nit:975 */
4517 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4518 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4519 if (!once_value_1
) {
4520 if (!once_value_2
) {
4521 fra
.me
.REG
[6] = BOX_NativeString("init");
4523 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4524 once_value_2
= fra
.me
.REG
[6];
4525 register_static_object(&once_value_2
);
4526 } else fra
.me
.REG
[6] = once_value_2
;
4527 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4528 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4529 once_value_1
= fra
.me
.REG
[6];
4530 register_static_object(&once_value_1
);
4531 } else fra
.me
.REG
[6] = once_value_1
;
4532 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4533 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
4534 /* ./syntax//icode_generation.nit:976 */
4535 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4537 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4538 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4539 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4540 fra
.me
.REG
[4] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4541 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4542 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4545 stack_frame_head
= fra
.me
.prev
;
4546 return fra
.me
.REG
[0];
4548 val_t
icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
4549 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4552 static val_t once_value_1
; /* Once value */
4553 static val_t once_value_2
; /* Once value */
4554 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4555 fra
.me
.file
= LOCATE_icode_generation
;
4557 fra
.me
.meth
= LOCATE_icode_generation___AOrangeExpr___generate_icode
;
4558 fra
.me
.has_broke
= 0;
4559 fra
.me
.REG_size
= 7;
4560 fra
.me
.REG
[0] = NIT_NULL
;
4561 fra
.me
.REG
[1] = NIT_NULL
;
4562 fra
.me
.REG
[2] = NIT_NULL
;
4563 fra
.me
.REG
[3] = NIT_NULL
;
4564 fra
.me
.REG
[4] = NIT_NULL
;
4565 fra
.me
.REG
[5] = NIT_NULL
;
4566 fra
.me
.REG
[6] = NIT_NULL
;
4569 /* ./syntax//icode_generation.nit:983 */
4570 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4571 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4572 /* ./syntax//icode_generation.nit:984 */
4573 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4574 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4575 /* ./syntax//icode_generation.nit:985 */
4576 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4577 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4578 if (!once_value_1
) {
4579 if (!once_value_2
) {
4580 fra
.me
.REG
[6] = BOX_NativeString("without_last");
4581 REGB0
= TAG_Int(12);
4582 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4583 once_value_2
= fra
.me
.REG
[6];
4584 register_static_object(&once_value_2
);
4585 } else fra
.me
.REG
[6] = once_value_2
;
4586 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4587 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4588 once_value_1
= fra
.me
.REG
[6];
4589 register_static_object(&once_value_1
);
4590 } else fra
.me
.REG
[6] = once_value_1
;
4591 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4592 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
4593 /* ./syntax//icode_generation.nit:986 */
4594 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4596 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4597 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4598 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4599 fra
.me
.REG
[4] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4600 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4601 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4604 stack_frame_head
= fra
.me
.prev
;
4605 return fra
.me
.REG
[0];
4607 val_t
icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
4608 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4614 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4615 fra
.me
.file
= LOCATE_icode_generation
;
4617 fra
.me
.meth
= LOCATE_icode_generation___ASuperExpr___generate_icode
;
4618 fra
.me
.has_broke
= 0;
4619 fra
.me
.REG_size
= 6;
4620 fra
.me
.REG
[0] = NIT_NULL
;
4621 fra
.me
.REG
[1] = NIT_NULL
;
4622 fra
.me
.REG
[2] = NIT_NULL
;
4623 fra
.me
.REG
[3] = NIT_NULL
;
4624 fra
.me
.REG
[4] = NIT_NULL
;
4625 fra
.me
.REG
[5] = NIT_NULL
;
4628 /* ./syntax//icode_generation.nit:993 */
4629 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4630 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4631 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4633 /* ./../lib/standard//kernel.nit:217 */
4634 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
4635 /* ./syntax//icode_generation.nit:994 */
4636 fra
.me
.REG
[2] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4637 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4638 if (UNTAG_Bool(REGB0
)) {
4640 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4641 if (UNTAG_Bool(REGB2
)) {
4642 REGB2
= TAG_Bool(false);
4645 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4649 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4650 if (UNTAG_Bool(REGB0
)) {
4651 /* ./syntax//icode_generation.nit:995 */
4652 fra
.me
.REG
[2] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4653 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4654 if (UNTAG_Bool(REGB0
)) {
4655 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 995);
4657 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4658 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4659 if (UNTAG_Bool(REGB0
)) {
4660 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 995);
4662 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4665 /* ./syntax//icode_generation.nit:997 */
4667 /* ./../lib/standard//kernel.nit:215 */
4668 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
4669 /* ./syntax//icode_generation.nit:997 */
4670 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4671 /* ./syntax//icode_generation.nit:998 */
4672 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4673 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4675 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
4676 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4677 /* ./syntax//icode_generation.nit:999 */
4678 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4679 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4680 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4681 if (UNTAG_Bool(REGB2
)) {
4683 /* ./../lib/standard//kernel.nit:207 */
4684 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
4685 /* ./syntax//icode_generation.nit:999 */
4688 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4689 if (UNTAG_Bool(REGB2
)) {
4690 /* ./syntax//icode_generation.nit:1000 */
4692 /* ./../lib/standard//kernel.nit:332 */
4694 /* ./../lib/standard//kernel.nit:212 */
4695 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
4696 /* ./../lib/standard//kernel.nit:332 */
4697 if (UNTAG_Bool(REGB0
)) {
4698 /* ./syntax//icode_generation.nit:1000 */
4700 /* ./syntax//icode_generation.nit:1001 */
4701 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4702 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4704 /* ./../lib/standard//kernel.nit:215 */
4705 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
4706 /* ./syntax//icode_generation.nit:1001 */
4707 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
4708 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4709 /* ./../lib/standard//kernel.nit:334 */
4711 /* ./../lib/standard//kernel.nit:215 */
4712 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
4713 /* ./../lib/standard//kernel.nit:334 */
4716 /* ./../lib/standard//kernel.nit:332 */
4722 /* ./syntax//icode_generation.nit:1004 */
4723 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4724 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_icode_generation___ASuperExpr___generate_icode_2
));
4726 /* ./syntax//icode_generation.nit:1008 */
4727 fra
.me
.REG
[3] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4728 /* ./syntax//icode_generation.nit:1009 */
4729 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4730 if (UNTAG_Bool(REGB2
)) {
4732 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4733 if (UNTAG_Bool(REGB1
)) {
4734 REGB1
= TAG_Bool(false);
4737 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4741 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4742 if (UNTAG_Bool(REGB2
)) {
4743 /* ./syntax//icode_generation.nit:1010 */
4744 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4745 if (UNTAG_Bool(REGB2
)) {
4746 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1010);
4748 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4749 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4750 if (UNTAG_Bool(REGB2
)) {
4751 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1010);
4753 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4754 /* ./syntax//icode_generation.nit:1011 */
4755 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4756 if (UNTAG_Bool(REGB2
)) {
4758 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4759 if (UNTAG_Bool(REGB1
)) {
4760 REGB1
= TAG_Bool(false);
4763 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4767 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4768 if (UNTAG_Bool(REGB2
)) {
4769 /* ./syntax//icode_generation.nit:1012 */
4770 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4771 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4]);
4774 /* ./syntax//icode_generation.nit:1014 */
4775 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4776 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4777 /* ./syntax//icode_generation.nit:1015 */
4778 fra
.me
.REG
[4] = NIT_NULL
;
4782 /* ./syntax//icode_generation.nit:1018 */
4783 fra
.me
.REG
[0] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4784 fra
.me
.REG
[3] = fra
.me
.REG
[0];
4785 /* ./syntax//icode_generation.nit:1019 */
4786 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4787 if (UNTAG_Bool(REGB2
)) {
4788 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1019);
4790 fra
.me
.REG
[0] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4791 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4792 if (UNTAG_Bool(REGB2
)) {
4793 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1019);
4795 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4796 /* ./syntax//icode_generation.nit:1020 */
4797 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4798 if (UNTAG_Bool(REGB2
)) {
4800 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4801 if (UNTAG_Bool(REGB1
)) {
4802 REGB1
= TAG_Bool(false);
4805 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
4809 if (UNTAG_Bool(REGB2
)) {
4810 /* ./syntax//icode_generation.nit:1021 */
4811 fra
.me
.REG
[5] = NEW_ISuper_icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4812 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4813 /* ./syntax//icode_generation.nit:1022 */
4814 fra
.me
.REG
[4] = NIT_NULL
;
4817 /* ./syntax//icode_generation.nit:1024 */
4818 fra
.me
.REG
[2] = NEW_ISuper_icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4819 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4820 fra
.me
.REG
[4] = fra
.me
.REG
[0];
4825 stack_frame_head
= fra
.me
.prev
;
4826 return fra
.me
.REG
[4];
4828 void OC_icode_generation___ASuperExpr___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4829 struct {struct stack_frame_t me
;} fra
;
4832 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4833 fra
.me
.file
= LOCATE_icode_generation
;
4835 fra
.me
.meth
= LOCATE_icode_generation___ASuperExpr___generate_icode
;
4836 fra
.me
.has_broke
= 0;
4837 fra
.me
.REG_size
= 1;
4838 fra
.me
.REG
[0] = NIT_NULL
;
4839 fra
.me
.closure_ctx
= closctx_param
;
4840 fra
.me
.closure_funs
= CREG
;
4842 CREG
[0] = clos_fun0
;
4843 /* ./syntax//icode_generation.nit:1005 */
4844 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4845 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4846 stack_frame_head
= fra
.me
.prev
;
4849 val_t
icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
4850 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4854 fra
.me
.file
= LOCATE_icode_generation
;
4856 fra
.me
.meth
= LOCATE_icode_generation___AAttrExpr___generate_icode
;
4857 fra
.me
.has_broke
= 0;
4858 fra
.me
.REG_size
= 4;
4859 fra
.me
.REG
[0] = NIT_NULL
;
4860 fra
.me
.REG
[1] = NIT_NULL
;
4861 fra
.me
.REG
[2] = NIT_NULL
;
4862 fra
.me
.REG
[3] = NIT_NULL
;
4865 /* ./syntax//icode_generation.nit:1033 */
4866 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4867 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4868 /* ./syntax//icode_generation.nit:1034 */
4869 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4870 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4871 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4872 if (UNTAG_Bool(REGB0
)) {
4873 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4875 /* ./syntax//icode_generation.nit:1035 */
4876 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4877 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
4880 stack_frame_head
= fra
.me
.prev
;
4881 return fra
.me
.REG
[2];
4883 val_t
icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
4884 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4887 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4888 fra
.me
.file
= LOCATE_icode_generation
;
4890 fra
.me
.meth
= LOCATE_icode_generation___AAttrAssignExpr___generate_icode
;
4891 fra
.me
.has_broke
= 0;
4892 fra
.me
.REG_size
= 4;
4893 fra
.me
.REG
[0] = NIT_NULL
;
4894 fra
.me
.REG
[1] = NIT_NULL
;
4895 fra
.me
.REG
[2] = NIT_NULL
;
4896 fra
.me
.REG
[3] = NIT_NULL
;
4899 /* ./syntax//icode_generation.nit:1042 */
4900 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4901 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4902 /* ./syntax//icode_generation.nit:1043 */
4903 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4904 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4905 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4906 if (UNTAG_Bool(REGB0
)) {
4907 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4909 /* ./syntax//icode_generation.nit:1044 */
4910 fra
.me
.REG
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4911 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4912 /* ./syntax//icode_generation.nit:1045 */
4913 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4914 fra
.me
.REG
[3] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4915 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4916 /* ./syntax//icode_generation.nit:1046 */
4917 fra
.me
.REG
[3] = NIT_NULL
;
4920 stack_frame_head
= fra
.me
.prev
;
4921 return fra
.me
.REG
[3];
4923 val_t
icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
4924 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4928 fra
.me
.file
= LOCATE_icode_generation
;
4930 fra
.me
.meth
= LOCATE_icode_generation___AAttrReassignExpr___generate_icode
;
4931 fra
.me
.has_broke
= 0;
4932 fra
.me
.REG_size
= 7;
4933 fra
.me
.REG
[0] = NIT_NULL
;
4934 fra
.me
.REG
[1] = NIT_NULL
;
4935 fra
.me
.REG
[2] = NIT_NULL
;
4936 fra
.me
.REG
[3] = NIT_NULL
;
4937 fra
.me
.REG
[4] = NIT_NULL
;
4938 fra
.me
.REG
[5] = NIT_NULL
;
4939 fra
.me
.REG
[6] = NIT_NULL
;
4942 /* ./syntax//icode_generation.nit:1052 */
4943 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4944 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4945 /* ./syntax//icode_generation.nit:1053 */
4946 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4947 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4948 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4949 if (UNTAG_Bool(REGB0
)) {
4950 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4952 /* ./syntax//icode_generation.nit:1054 */
4953 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4954 fra
.me
.REG
[3] = NEW_IAttrRead_icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4955 fra
.me
.REG
[4] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4956 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4957 /* ./syntax//icode_generation.nit:1055 */
4958 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4959 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4960 /* ./syntax//icode_generation.nit:1056 */
4961 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4963 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
4964 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
4965 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
4966 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4967 fra
.me
.REG
[5] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4968 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
4969 /* ./syntax//icode_generation.nit:1057 */
4970 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4971 fra
.me
.REG
[5] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4972 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4973 /* ./syntax//icode_generation.nit:1058 */
4974 fra
.me
.REG
[5] = NIT_NULL
;
4977 stack_frame_head
= fra
.me
.prev
;
4978 return fra
.me
.REG
[5];
4980 val_t
icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
4981 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4985 fra
.me
.file
= LOCATE_icode_generation
;
4987 fra
.me
.meth
= LOCATE_icode_generation___AIssetAttrExpr___generate_icode
;
4988 fra
.me
.has_broke
= 0;
4989 fra
.me
.REG_size
= 4;
4990 fra
.me
.REG
[0] = NIT_NULL
;
4991 fra
.me
.REG
[1] = NIT_NULL
;
4992 fra
.me
.REG
[2] = NIT_NULL
;
4993 fra
.me
.REG
[3] = NIT_NULL
;
4996 /* ./syntax//icode_generation.nit:1065 */
4997 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4998 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4999 /* ./syntax//icode_generation.nit:1066 */
5000 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5001 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5002 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5003 if (UNTAG_Bool(REGB0
)) {
5004 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5006 /* ./syntax//icode_generation.nit:1067 */
5007 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5008 fra
.me
.REG
[2] = NEW_IAttrIsset_icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5009 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5010 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5013 stack_frame_head
= fra
.me
.prev
;
5014 return fra
.me
.REG
[0];
5016 void icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5017 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5030 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5031 fra
.me
.file
= LOCATE_icode_generation
;
5033 fra
.me
.meth
= LOCATE_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5034 fra
.me
.has_broke
= 0;
5035 fra
.me
.REG_size
= 7;
5036 fra
.me
.REG
[0] = NIT_NULL
;
5037 fra
.me
.REG
[1] = NIT_NULL
;
5038 fra
.me
.REG
[2] = NIT_NULL
;
5039 fra
.me
.REG
[3] = NIT_NULL
;
5040 fra
.me
.REG
[4] = NIT_NULL
;
5041 fra
.me
.REG
[5] = NIT_NULL
;
5042 fra
.me
.REG
[6] = NIT_NULL
;
5047 /* ./syntax//icode_generation.nit:1075 */
5048 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5049 /* ./syntax//icode_generation.nit:1076 */
5050 REGB1
= CALL_vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5051 /* ./syntax//icode_generation.nit:1077 */
5052 fra
.me
.REG
[0] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5053 /* ./../lib/standard//collection//array.nit:23 */
5054 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5055 if (UNTAG_Bool(REGB2
)) {
5057 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5059 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5060 /* ./syntax//icode_generation.nit:1079 */
5062 /* ./syntax//icode_generation.nit:1080 */
5064 /* ./../lib/standard//kernel.nit:327 */
5066 /* ./../lib/standard//kernel.nit:332 */
5068 /* ./../lib/standard//kernel.nit:212 */
5069 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5070 /* ./../lib/standard//kernel.nit:332 */
5071 if (UNTAG_Bool(REGB6
)) {
5072 /* ./syntax//icode_generation.nit:1080 */
5074 /* ./syntax//icode_generation.nit:1082 */
5075 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5076 /* ./syntax//icode_generation.nit:1083 */
5077 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5078 if (UNTAG_Bool(REGB7
)) {
5080 /* ./../lib/standard//kernel.nit:207 */
5081 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5082 /* ./syntax//icode_generation.nit:1083 */
5085 if (UNTAG_Bool(REGB7
)) {
5086 /* ./syntax//icode_generation.nit:1084 */
5087 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5088 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5089 /* ./../lib/standard//kernel.nit:217 */
5090 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5091 /* ./syntax//icode_generation.nit:1084 */
5092 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], REGB7
);
5093 /* ./syntax//icode_generation.nit:1085 */
5095 /* ./../lib/standard//kernel.nit:217 */
5096 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5097 /* ./../lib/standard//kernel.nit:321 */
5099 /* ./../lib/standard//kernel.nit:211 */
5100 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5101 /* ./../lib/standard//kernel.nit:321 */
5102 if (UNTAG_Bool(REGB8
)) {
5103 /* ./../lib/standard//collection//array.nit:243 */
5104 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5106 /* ./../lib/standard//collection//array.nit:245 */
5108 /* ./../lib/standard//kernel.nit:213 */
5109 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5110 /* ./../lib/standard//collection//array.nit:245 */
5111 if (UNTAG_Bool(REGB9
)) {
5112 REGB9
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5113 if (UNTAG_Bool(REGB9
)) {
5115 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
5117 REGB9
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5118 /* ./../lib/standard//kernel.nit:212 */
5119 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5121 /* ./../lib/standard//collection//array.nit:245 */
5122 REGB10
= TAG_Bool(false);
5125 if (UNTAG_Bool(REGB9
)) {
5127 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
5129 /* ./../lib/standard//collection//array.nit:246 */
5130 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
5131 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5132 if (UNTAG_Bool(REGB9
)) {
5133 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
5135 /* ./../lib/standard//collection//array.nit:654 */
5136 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5137 /* ./../lib/standard//collection//array.nit:246 */
5140 /* ./syntax//icode_generation.nit:1087 */
5141 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5142 CALL_icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
5143 /* ./syntax//icode_generation.nit:1088 */
5145 /* ./../lib/standard//kernel.nit:215 */
5146 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5147 /* ./syntax//icode_generation.nit:1088 */
5149 /* ./../lib/standard//kernel.nit:323 */
5151 /* ./../lib/standard//kernel.nit:215 */
5152 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5153 /* ./../lib/standard//kernel.nit:323 */
5156 /* ./../lib/standard//kernel.nit:321 */
5161 /* ./syntax//icode_generation.nit:1090 */
5162 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5164 /* ./../lib/standard//collection//array.nit:243 */
5165 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5167 /* ./../lib/standard//collection//array.nit:245 */
5169 /* ./../lib/standard//kernel.nit:213 */
5170 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5171 /* ./../lib/standard//collection//array.nit:245 */
5172 if (UNTAG_Bool(REGB6
)) {
5173 REGB6
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5174 if (UNTAG_Bool(REGB6
)) {
5176 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
5178 REGB6
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5179 /* ./../lib/standard//kernel.nit:212 */
5180 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5182 /* ./../lib/standard//collection//array.nit:245 */
5183 REGB8
= TAG_Bool(false);
5186 if (UNTAG_Bool(REGB6
)) {
5188 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
5190 /* ./../lib/standard//collection//array.nit:246 */
5191 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5192 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5193 if (UNTAG_Bool(REGB6
)) {
5194 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
5196 /* ./../lib/standard//collection//array.nit:654 */
5197 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5198 /* ./../lib/standard//collection//array.nit:246 */
5201 /* ./syntax//icode_generation.nit:1092 */
5202 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5203 /* ./syntax//icode_generation.nit:1093 */
5204 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5205 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5206 /* ./syntax//icode_generation.nit:1094 */
5208 /* ./../lib/standard//kernel.nit:215 */
5209 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5210 /* ./syntax//icode_generation.nit:1094 */
5213 /* ./../lib/standard//kernel.nit:334 */
5215 /* ./../lib/standard//kernel.nit:215 */
5216 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5217 /* ./../lib/standard//kernel.nit:334 */
5220 /* ./../lib/standard//kernel.nit:332 */
5225 stack_frame_head
= fra
.me
.prev
;
5228 val_t
icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5229 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5237 fra
.me
.file
= LOCATE_icode_generation
;
5239 fra
.me
.meth
= LOCATE_icode_generation___ASendExpr___generate_icode
;
5240 fra
.me
.has_broke
= 0;
5241 fra
.me
.REG_size
= 16;
5242 fra
.me
.REG
[0] = NIT_NULL
;
5243 fra
.me
.REG
[1] = NIT_NULL
;
5244 fra
.me
.REG
[2] = NIT_NULL
;
5245 fra
.me
.REG
[3] = NIT_NULL
;
5246 fra
.me
.REG
[4] = NIT_NULL
;
5247 fra
.me
.REG
[5] = NIT_NULL
;
5248 fra
.me
.REG
[6] = NIT_NULL
;
5249 fra
.me
.REG
[7] = NIT_NULL
;
5250 fra
.me
.REG
[8] = NIT_NULL
;
5251 fra
.me
.REG
[9] = NIT_NULL
;
5252 fra
.me
.REG
[10] = NIT_NULL
;
5253 fra
.me
.REG
[11] = NIT_NULL
;
5254 fra
.me
.REG
[12] = NIT_NULL
;
5255 fra
.me
.REG
[13] = NIT_NULL
;
5256 fra
.me
.REG
[14] = NIT_NULL
;
5257 fra
.me
.REG
[15] = NIT_NULL
;
5260 /* ./syntax//icode_generation.nit:1103 */
5261 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5262 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5263 /* ./syntax//icode_generation.nit:1104 */
5264 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
5265 /* ./syntax//icode_generation.nit:1105 */
5266 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5267 /* ./syntax//icode_generation.nit:1106 */
5268 fra
.me
.REG
[2] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5269 /* ./syntax//icode_generation.nit:1107 */
5270 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5271 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
5272 if (UNTAG_Bool(REGB0
)) {
5274 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1107);
5276 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5277 /* ./syntax//icode_generation.nit:1108 */
5278 fra
.me
.REG
[4] = NIT_NULL
;
5279 /* ./syntax//icode_generation.nit:1112 */
5280 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5281 /* ./syntax//icode_generation.nit:1113 */
5282 fra
.me
.REG
[6] = NIT_NULL
;
5283 /* ./syntax//icode_generation.nit:1114 */
5284 fra
.me
.REG
[7] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5285 fra
.me
.REG
[7] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5286 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5287 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5288 if (UNTAG_Bool(REGB0
)) {
5289 /* ./syntax//icode_generation.nit:1115 */
5290 fra
.me
.REG
[7] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5291 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5292 /* ./syntax//icode_generation.nit:1116 */
5293 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5294 if (UNTAG_Bool(REGB0
)) {
5296 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5297 if (UNTAG_Bool(REGB1
)) {
5298 REGB1
= TAG_Bool(false);
5301 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
5305 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5306 if (UNTAG_Bool(REGB0
)) {
5307 /* ./syntax//icode_generation.nit:1117 */
5308 fra
.me
.REG
[7] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5309 fra
.me
.REG
[4] = fra
.me
.REG
[7];
5311 /* ./syntax//icode_generation.nit:1119 */
5312 fra
.me
.REG
[7] = NEW_ISeq_icode_base___ISeq___init();
5313 /* ./syntax//icode_generation.nit:1120 */
5314 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5315 /* ./syntax//icode_generation.nit:1121 */
5316 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5317 /* ./syntax//icode_generation.nit:1122 */
5318 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
5319 fra
.me
.REG
[6] = fra
.me
.REG
[8];
5320 /* ./syntax//icode_generation.nit:1123 */
5322 /* ./syntax//icode_generation.nit:1124 */
5323 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5324 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5325 if (UNTAG_Bool(REGB0
)) {
5327 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5328 if (UNTAG_Bool(REGB1
)) {
5329 REGB1
= TAG_Bool(false);
5332 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5336 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5337 if (UNTAG_Bool(REGB0
)) {
5338 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5339 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5340 if (UNTAG_Bool(REGB0
)) {
5341 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1124);
5343 /* ./../lib/standard//collection//array.nit:23 */
5344 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
5345 if (UNTAG_Bool(REGB0
)) {
5347 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5349 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8]);
5351 /* ./syntax//icode_generation.nit:1125 */
5352 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5353 /* ./syntax//icode_generation.nit:1126 */
5354 fra
.me
.REG
[9] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5355 fra
.me
.REG
[9] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5356 /* ./../lib/standard//collection//array.nit:234 */
5358 /* ./../lib/standard//collection//array.nit:235 */
5359 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5360 if (UNTAG_Bool(REGB1
)) {
5362 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5364 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5365 /* ./../lib/standard//collection//array.nit:236 */
5366 fra
.me
.REG
[10] = ATTR_array___Array____items(fra
.me
.REG
[9]);
5367 /* ./../lib/standard//collection//array.nit:237 */
5369 /* ./../lib/standard//collection//array.nit:23 */
5370 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5371 if (UNTAG_Bool(REGB1
)) {
5373 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5375 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5376 /* ./../lib/standard//kernel.nit:212 */
5377 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5378 /* ./../lib/standard//collection//array.nit:237 */
5379 if (UNTAG_Bool(REGB1
)) {
5380 /* ./../lib/standard//collection//array.nit:238 */
5381 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
5382 if (UNTAG_Bool(REGB1
)) {
5383 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5385 /* ./../lib/standard//collection//array.nit:654 */
5386 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
5387 /* ./syntax//icode_generation.nit:1127 */
5388 REGB1
= TAG_Bool(false);
5389 /* ./syntax//icode_generation.nit:1128 */
5390 fra
.me
.REG
[11] = CALL_static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
5391 /* ./syntax//icode_generation.nit:1129 */
5392 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5393 if (UNTAG_Bool(REGB2
)) {
5395 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5396 if (UNTAG_Bool(REGB3
)) {
5397 REGB3
= TAG_Bool(false);
5400 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5404 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5405 if (UNTAG_Bool(REGB2
)) {
5406 /* ./syntax//icode_generation.nit:1130 */
5407 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5408 if (UNTAG_Bool(REGB2
)) {
5409 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1130);
5411 /* ./../lib/standard//collection//array.nit:231 */
5412 fra
.me
.REG
[12] = fra
.me
.REG
[8];
5413 /* ./../lib/standard//collection//array.nit:234 */
5415 /* ./../lib/standard//collection//array.nit:235 */
5416 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5417 if (UNTAG_Bool(REGB3
)) {
5419 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5421 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5422 /* ./../lib/standard//collection//array.nit:236 */
5423 fra
.me
.REG
[13] = ATTR_array___Array____items(fra
.me
.REG
[12]);
5424 /* ./../lib/standard//collection//array.nit:237 */
5426 /* ./../lib/standard//collection//array.nit:23 */
5427 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5428 if (UNTAG_Bool(REGB3
)) {
5430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5432 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5433 /* ./../lib/standard//kernel.nit:212 */
5434 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
5435 /* ./../lib/standard//collection//array.nit:237 */
5436 if (UNTAG_Bool(REGB3
)) {
5437 /* ./../lib/standard//collection//array.nit:238 */
5438 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
5439 if (UNTAG_Bool(REGB3
)) {
5440 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5442 /* ./../lib/standard//collection//array.nit:654 */
5443 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
5444 /* ./syntax//icode_generation.nit:1131 */
5445 fra
.me
.REG
[15] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5446 fra
.me
.REG
[15] = CALL_typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
5447 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
5448 if (UNTAG_Bool(REGB3
)) {
5450 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
5453 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
5454 if (UNTAG_Bool(REGB3
)) {
5457 /* ./syntax//icode_generation.nit:1132 */
5458 REGB3
= TAG_Bool(false);
5459 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
5460 if (UNTAG_Bool(REGB4
)) {
5462 /* ./../lib/standard//kernel.nit:175 */
5463 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
5464 /* ./syntax//icode_generation.nit:1132 */
5467 if (UNTAG_Bool(REGB4
)) {
5469 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 1132);
5471 /* ./syntax//icode_generation.nit:1133 */
5472 REGB4
= TAG_Bool(true);
5474 /* ./syntax//icode_generation.nit:1134 */
5475 fra
.me
.REG
[15] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5476 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5477 if (UNTAG_Bool(REGB4
)) {
5478 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1134);
5480 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
5481 /* ./syntax//icode_generation.nit:1135 */
5482 fra
.me
.REG
[15] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5483 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5484 if (UNTAG_Bool(REGB4
)) {
5485 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1135);
5487 CALL_icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[4]);
5488 /* ./syntax//icode_generation.nit:1136 */
5489 fra
.me
.REG
[14] = CALL_icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
5490 /* ./syntax//icode_generation.nit:1137 */
5491 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5492 if (UNTAG_Bool(REGB4
)) {
5493 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1137);
5495 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
5497 /* ./../lib/standard//collection//array.nit:239 */
5499 /* ./../lib/standard//kernel.nit:215 */
5500 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
5501 /* ./../lib/standard//collection//array.nit:239 */
5504 /* ./../lib/standard//collection//array.nit:237 */
5510 /* ./syntax//icode_generation.nit:1140 */
5511 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5512 if (UNTAG_Bool(REGB1
)) {
5513 /* ./syntax//icode_generation.nit:1141 */
5514 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5515 if (UNTAG_Bool(REGB1
)) {
5516 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1141);
5518 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5520 /* ./../lib/standard//collection//array.nit:239 */
5522 /* ./../lib/standard//kernel.nit:215 */
5523 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5524 /* ./../lib/standard//collection//array.nit:239 */
5527 /* ./../lib/standard//collection//array.nit:237 */
5533 /* ./syntax//icode_generation.nit:1146 */
5534 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[6]);
5535 /* ./syntax//icode_generation.nit:1149 */
5536 fra
.me
.REG
[0] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5537 fra
.me
.REG
[0] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5538 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5539 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5540 if (UNTAG_Bool(REGB0
)) {
5541 /* ./syntax//icode_generation.nit:1150 */
5542 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5543 if (UNTAG_Bool(REGB0
)) {
5545 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5546 if (UNTAG_Bool(REGB1
)) {
5547 REGB1
= TAG_Bool(false);
5550 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5554 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5555 if (UNTAG_Bool(REGB0
)) {
5556 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5557 if (UNTAG_Bool(REGB0
)) {
5559 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5560 if (UNTAG_Bool(REGB1
)) {
5561 REGB1
= TAG_Bool(false);
5564 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5568 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5570 REGB1
= TAG_Bool(false);
5573 if (UNTAG_Bool(REGB0
)) {
5574 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
5576 /* ./syntax//icode_generation.nit:1151 */
5577 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5579 /* ./syntax//icode_generation.nit:1153 */
5580 fra
.me
.REG
[4] = fra
.me
.REG
[6];
5582 /* ./syntax//icode_generation.nit:1156 */
5583 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5584 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5585 if (UNTAG_Bool(REGB0
)) {
5586 /* ./syntax//icode_generation.nit:1157 */
5587 CALL_icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5589 /* ./syntax//icode_generation.nit:1159 */
5592 stack_frame_head
= fra
.me
.prev
;
5593 return fra
.me
.REG
[4];
5595 val_t
icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
5596 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5600 fra
.me
.file
= LOCATE_icode_generation
;
5602 fra
.me
.meth
= LOCATE_icode_generation___ASendReassignExpr___generate_icode
;
5603 fra
.me
.has_broke
= 0;
5604 fra
.me
.REG_size
= 7;
5605 fra
.me
.REG
[0] = NIT_NULL
;
5606 fra
.me
.REG
[1] = NIT_NULL
;
5607 fra
.me
.REG
[2] = NIT_NULL
;
5608 fra
.me
.REG
[3] = NIT_NULL
;
5609 fra
.me
.REG
[4] = NIT_NULL
;
5610 fra
.me
.REG
[5] = NIT_NULL
;
5611 fra
.me
.REG
[6] = NIT_NULL
;
5614 /* ./syntax//icode_generation.nit:1166 */
5615 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5616 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5617 /* ./syntax//icode_generation.nit:1167 */
5618 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5619 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5620 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5621 if (UNTAG_Bool(REGB0
)) {
5622 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5624 /* ./syntax//icode_generation.nit:1168 */
5625 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
5626 /* ./syntax//icode_generation.nit:1169 */
5627 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5628 /* ./syntax//icode_generation.nit:1170 */
5629 fra
.me
.REG
[2] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5630 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5631 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
5632 if (UNTAG_Bool(REGB0
)) {
5634 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1170);
5636 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
5637 /* ./syntax//icode_generation.nit:1172 */
5638 fra
.me
.REG
[2] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5639 fra
.me
.REG
[2] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5640 fra
.me
.REG
[4] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5641 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5642 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5643 if (UNTAG_Bool(REGB0
)) {
5644 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1172);
5646 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5647 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5648 if (UNTAG_Bool(REGB0
)) {
5650 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1172);
5652 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
5653 /* ./syntax//icode_generation.nit:1173 */
5654 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5655 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5656 /* ./syntax//icode_generation.nit:1174 */
5657 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5659 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
5660 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5661 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
5662 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5663 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5664 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5665 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5666 if (UNTAG_Bool(REGB0
)) {
5667 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1174);
5669 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5670 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5671 if (UNTAG_Bool(REGB0
)) {
5673 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1174);
5675 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
5676 /* ./syntax//icode_generation.nit:1175 */
5677 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5678 /* ./syntax//icode_generation.nit:1176 */
5679 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5680 /* ./syntax//icode_generation.nit:1177 */
5681 fra
.me
.REG
[0] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5682 fra
.me
.REG
[3] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[3]);
5683 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5684 /* ./syntax//icode_generation.nit:1178 */
5685 fra
.me
.REG
[3] = NIT_NULL
;
5688 stack_frame_head
= fra
.me
.prev
;
5689 return fra
.me
.REG
[3];
5691 val_t
icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
5692 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5696 fra
.me
.file
= LOCATE_icode_generation
;
5698 fra
.me
.meth
= LOCATE_icode_generation___ANewExpr___generate_icode
;
5699 fra
.me
.has_broke
= 0;
5700 fra
.me
.REG_size
= 5;
5701 fra
.me
.REG
[0] = NIT_NULL
;
5702 fra
.me
.REG
[1] = NIT_NULL
;
5703 fra
.me
.REG
[2] = NIT_NULL
;
5704 fra
.me
.REG
[3] = NIT_NULL
;
5705 fra
.me
.REG
[4] = NIT_NULL
;
5708 /* ./syntax//icode_generation.nit:1185 */
5709 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
5710 /* ./syntax//icode_generation.nit:1186 */
5711 fra
.me
.REG
[3] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5712 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5713 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
5714 if (UNTAG_Bool(REGB0
)) {
5716 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1186);
5718 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5719 /* ./syntax//icode_generation.nit:1187 */
5720 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5721 fra
.me
.REG
[4] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5722 fra
.me
.REG
[2] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[2]);
5723 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5724 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5727 stack_frame_head
= fra
.me
.prev
;
5728 return fra
.me
.REG
[0];
5730 val_t
icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
5731 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5733 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5734 fra
.me
.file
= LOCATE_icode_generation
;
5736 fra
.me
.meth
= LOCATE_icode_generation___AProxyExpr___generate_icode
;
5737 fra
.me
.has_broke
= 0;
5738 fra
.me
.REG_size
= 2;
5739 fra
.me
.REG
[0] = NIT_NULL
;
5740 fra
.me
.REG
[1] = NIT_NULL
;
5743 /* ./syntax//icode_generation.nit:1194 */
5744 fra
.me
.REG
[0] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5745 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5748 stack_frame_head
= fra
.me
.prev
;
5749 return fra
.me
.REG
[0];
5751 val_t
icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
5752 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5755 fra
.me
.file
= LOCATE_icode_generation
;
5757 fra
.me
.meth
= LOCATE_icode_generation___AOnceExpr___generate_icode
;
5758 fra
.me
.has_broke
= 0;
5759 fra
.me
.REG_size
= 5;
5760 fra
.me
.REG
[0] = NIT_NULL
;
5761 fra
.me
.REG
[1] = NIT_NULL
;
5762 fra
.me
.REG
[2] = NIT_NULL
;
5763 fra
.me
.REG
[3] = NIT_NULL
;
5764 fra
.me
.REG
[4] = NIT_NULL
;
5767 /* ./syntax//icode_generation.nit:1201 */
5768 fra
.me
.REG
[2] = NEW_IOnce_icode_base___IOnce___init();
5769 /* ./syntax//icode_generation.nit:1202 */
5770 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5771 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5772 /* ./syntax//icode_generation.nit:1203 */
5773 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5774 /* ./syntax//icode_generation.nit:1204 */
5775 fra
.me
.REG
[2] = CALL_icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5776 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5777 /* ./syntax//icode_generation.nit:1206 */
5778 fra
.me
.REG
[0] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5779 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5780 /* ./syntax//icode_generation.nit:1207 */
5781 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
5782 /* ./syntax//icode_generation.nit:1209 */
5783 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5784 /* ./syntax//icode_generation.nit:1210 */
5787 stack_frame_head
= fra
.me
.prev
;
5788 return fra
.me
.REG
[3];
5790 val_t
icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
5791 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5800 fra
.me
.file
= LOCATE_icode_generation
;
5802 fra
.me
.meth
= LOCATE_icode_generation___AClosureDef___generate_iclosuredef
;
5803 fra
.me
.has_broke
= 0;
5804 fra
.me
.REG_size
= 6;
5805 fra
.me
.REG
[0] = NIT_NULL
;
5806 fra
.me
.REG
[1] = NIT_NULL
;
5807 fra
.me
.REG
[2] = NIT_NULL
;
5808 fra
.me
.REG
[3] = NIT_NULL
;
5809 fra
.me
.REG
[4] = NIT_NULL
;
5810 fra
.me
.REG
[5] = NIT_NULL
;
5813 /* ./syntax//icode_generation.nit:1221 */
5814 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
5815 /* ./syntax//icode_generation.nit:1222 */
5816 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5817 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5818 /* ./syntax//icode_generation.nit:1223 */
5820 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5821 /* ./../lib/standard//kernel.nit:332 */
5823 /* ./../lib/standard//kernel.nit:212 */
5824 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5825 /* ./../lib/standard//kernel.nit:332 */
5826 if (UNTAG_Bool(REGB2
)) {
5827 /* ./syntax//icode_generation.nit:1223 */
5829 /* ./syntax//icode_generation.nit:1224 */
5830 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
5831 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5832 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5833 /* ./../lib/standard//kernel.nit:334 */
5835 /* ./../lib/standard//kernel.nit:215 */
5836 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
5837 /* ./../lib/standard//kernel.nit:334 */
5840 /* ./../lib/standard//kernel.nit:332 */
5845 /* ./syntax//icode_generation.nit:1226 */
5846 fra
.me
.REG
[4] = NIT_NULL
;
5847 /* ./syntax//icode_generation.nit:1227 */
5848 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5849 /* ./syntax//icode_generation.nit:1228 */
5850 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5851 if (UNTAG_Bool(REGB0
)) {
5853 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5854 if (UNTAG_Bool(REGB1
)) {
5855 REGB1
= TAG_Bool(false);
5858 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5862 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5863 if (UNTAG_Bool(REGB0
)) {
5864 /* ./syntax//icode_generation.nit:1229 */
5865 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5866 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5868 /* ./syntax//icode_generation.nit:1232 */
5869 fra
.me
.REG
[4] = NEW_IClosureDef_icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5870 /* ./syntax//icode_generation.nit:1233 */
5871 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5872 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5873 /* ./syntax//icode_generation.nit:1236 */
5874 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5875 /* ./syntax//icode_generation.nit:1237 */
5876 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5877 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5878 /* ./syntax//icode_generation.nit:1238 */
5879 fra
.me
.REG
[3] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5880 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5881 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5882 if (UNTAG_Bool(REGB0
)) {
5883 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1238);
5885 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5886 /* ./syntax//icode_generation.nit:1239 */
5887 fra
.me
.REG
[5] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5888 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5889 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5890 if (UNTAG_Bool(REGB0
)) {
5891 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1239);
5893 CALL_icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5894 /* ./syntax//icode_generation.nit:1242 */
5896 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5897 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5898 if (UNTAG_Bool(REGB1
)) {
5899 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1242);
5901 /* ./../lib/standard//collection//array.nit:23 */
5902 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5903 if (UNTAG_Bool(REGB1
)) {
5905 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5907 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5908 /* ./../lib/standard//kernel.nit:332 */
5910 /* ./../lib/standard//kernel.nit:212 */
5911 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5912 /* ./../lib/standard//kernel.nit:332 */
5913 if (UNTAG_Bool(REGB2
)) {
5914 /* ./syntax//icode_generation.nit:1242 */
5916 /* ./syntax//icode_generation.nit:1243 */
5917 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5918 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5919 if (UNTAG_Bool(REGB3
)) {
5920 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1243);
5922 /* ./../lib/standard//collection//array.nit:243 */
5924 /* ./../lib/standard//collection//array.nit:245 */
5926 /* ./../lib/standard//kernel.nit:213 */
5927 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
5928 /* ./../lib/standard//collection//array.nit:245 */
5929 if (UNTAG_Bool(REGB4
)) {
5930 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5931 if (UNTAG_Bool(REGB4
)) {
5933 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
5935 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5936 /* ./../lib/standard//kernel.nit:212 */
5937 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
5939 /* ./../lib/standard//collection//array.nit:245 */
5940 REGB5
= TAG_Bool(false);
5943 if (UNTAG_Bool(REGB4
)) {
5945 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
5947 /* ./../lib/standard//collection//array.nit:246 */
5948 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
5949 REGB4
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5950 if (UNTAG_Bool(REGB4
)) {
5951 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
5953 /* ./../lib/standard//collection//array.nit:654 */
5954 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB3
)];
5955 /* ./../lib/standard//collection//array.nit:246 */
5958 /* ./syntax//icode_generation.nit:1243 */
5959 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5960 /* ./syntax//icode_generation.nit:1244 */
5961 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5962 fra
.me
.REG
[5] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB2
);
5963 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
5964 /* ./../lib/standard//kernel.nit:334 */
5966 /* ./../lib/standard//kernel.nit:215 */
5967 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
5968 /* ./../lib/standard//kernel.nit:334 */
5971 /* ./../lib/standard//kernel.nit:332 */
5976 /* ./syntax//icode_generation.nit:1247 */
5977 fra
.me
.REG
[5] = CALL_parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5978 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5979 /* ./syntax//icode_generation.nit:1250 */
5980 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5981 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5982 if (UNTAG_Bool(REGB0
)) {
5983 fra
.me
.REG
[5] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5984 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5985 if (UNTAG_Bool(REGB0
)) {
5986 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1250);
5988 fra
.me
.REG
[5] = CALL_icode_generation___EscapableBlock___break_value(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5989 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5990 if (UNTAG_Bool(REGB0
)) {
5992 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5993 if (UNTAG_Bool(REGB1
)) {
5994 REGB1
= TAG_Bool(false);
5997 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6002 REGB1
= TAG_Bool(false);
6005 if (UNTAG_Bool(REGB0
)) {
6006 /* ./syntax//icode_generation.nit:1251 */
6007 fra
.me
.REG
[5] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6008 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6009 if (UNTAG_Bool(REGB0
)) {
6010 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1251);
6012 fra
.me
.REG
[5] = CALL_icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6013 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
6014 if (UNTAG_Bool(REGB0
)) {
6016 nit_abort("Cast failed", NULL
, LOCATE_icode_generation
, 1251);
6018 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6020 /* ./syntax//icode_generation.nit:1254 */
6021 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6022 /* ./syntax//icode_generation.nit:1255 */
6023 ATTR_icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
6024 /* ./syntax//icode_generation.nit:1256 */
6027 stack_frame_head
= fra
.me
.prev
;
6028 return fra
.me
.REG
[4];
6030 val_t
icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6031 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6036 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6037 fra
.me
.file
= LOCATE_icode_generation
;
6039 fra
.me
.meth
= LOCATE_icode_generation___AClosureCallExpr___generate_icode
;
6040 fra
.me
.has_broke
= 0;
6041 fra
.me
.REG_size
= 9;
6042 fra
.me
.REG
[0] = NIT_NULL
;
6043 fra
.me
.REG
[1] = NIT_NULL
;
6044 fra
.me
.REG
[2] = NIT_NULL
;
6045 fra
.me
.REG
[3] = NIT_NULL
;
6046 fra
.me
.REG
[4] = NIT_NULL
;
6047 fra
.me
.REG
[5] = NIT_NULL
;
6048 fra
.me
.REG
[6] = NIT_NULL
;
6049 fra
.me
.REG
[7] = NIT_NULL
;
6050 fra
.me
.REG
[8] = NIT_NULL
;
6053 /* ./syntax//icode_generation.nit:1264 */
6054 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
6055 /* ./syntax//icode_generation.nit:1265 */
6056 fra
.me
.REG
[3] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6057 fra
.me
.REG
[3] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6058 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6059 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6060 /* ./syntax//icode_generation.nit:1268 */
6061 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6062 fra
.me
.REG
[4] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6063 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6064 /* ./syntax//icode_generation.nit:1269 */
6065 fra
.me
.REG
[3] = NEW_IClosCall_icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6066 /* ./syntax//icode_generation.nit:1270 */
6067 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6068 /* ./syntax//icode_generation.nit:1273 */
6069 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6070 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6072 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6073 if (UNTAG_Bool(REGB2
)) {
6075 /* ./../lib/standard//kernel.nit:207 */
6076 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6077 /* ./syntax//icode_generation.nit:1273 */
6080 if (UNTAG_Bool(REGB2
)) {
6081 /* ./syntax//icode_generation.nit:1274 */
6082 fra
.me
.REG
[6] = NEW_ISeq_icode_base___ISeq___init();
6083 /* ./syntax//icode_generation.nit:1275 */
6084 CALL_icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6085 /* ./syntax//icode_generation.nit:1276 */
6086 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6087 /* ./syntax//icode_generation.nit:1277 */
6088 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6089 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6090 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6091 if (UNTAG_Bool(REGB2
)) {
6092 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1277);
6094 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6095 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6096 /* ./syntax//icode_generation.nit:1278 */
6097 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6099 /* ./syntax//icode_generation.nit:1282 */
6100 fra
.me
.REG
[6] = NIT_NULL
;
6101 /* ./syntax//icode_generation.nit:1283 */
6102 fra
.me
.REG
[7] = CALL_icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6103 /* ./syntax//icode_generation.nit:1284 */
6104 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6105 if (UNTAG_Bool(REGB2
)) {
6107 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6108 if (UNTAG_Bool(REGB1
)) {
6109 REGB1
= TAG_Bool(false);
6112 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6116 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6117 if (UNTAG_Bool(REGB2
)) {
6118 /* ./syntax//icode_generation.nit:1285 */
6119 fra
.me
.REG
[4] = NEW_IHasClos_icode_base___IHasClos___init(fra
.me
.REG
[4]);
6120 fra
.me
.REG
[8] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6121 fra
.me
.REG
[8] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6122 fra
.me
.REG
[8] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[8]);
6123 fra
.me
.REG
[8] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[8]);
6124 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6125 /* ./syntax//icode_generation.nit:1286 */
6126 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6127 /* ./syntax//icode_generation.nit:1287 */
6128 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6129 if (UNTAG_Bool(REGB2
)) {
6130 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1287);
6132 fra
.me
.REG
[8] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6133 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6135 /* ./syntax//icode_generation.nit:1291 */
6136 fra
.me
.REG
[8] = NIT_NULL
;
6137 /* ./syntax//icode_generation.nit:1292 */
6138 fra
.me
.REG
[0] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6139 fra
.me
.REG
[0] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6140 fra
.me
.REG
[0] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6141 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6142 /* ./syntax//icode_generation.nit:1293 */
6143 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6144 if (UNTAG_Bool(REGB2
)) {
6146 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6147 if (UNTAG_Bool(REGB1
)) {
6148 REGB1
= TAG_Bool(false);
6151 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6155 if (UNTAG_Bool(REGB2
)) {
6156 /* ./syntax//icode_generation.nit:1294 */
6157 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6159 /* ./syntax//icode_generation.nit:1296 */
6160 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6161 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6163 /* ./syntax//icode_generation.nit:1300 */
6164 fra
.me
.REG
[3] = NIT_NULL
;
6165 /* ./syntax//icode_generation.nit:1301 */
6166 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6167 if (UNTAG_Bool(REGB2
)) {
6169 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6170 if (UNTAG_Bool(REGB1
)) {
6171 REGB1
= TAG_Bool(false);
6174 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6178 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6179 if (UNTAG_Bool(REGB2
)) {
6180 /* ./syntax//icode_generation.nit:1302 */
6181 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6182 if (UNTAG_Bool(REGB2
)) {
6184 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6185 if (UNTAG_Bool(REGB1
)) {
6186 REGB1
= TAG_Bool(false);
6189 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6193 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6194 if (UNTAG_Bool(REGB2
)) {
6196 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 1302);
6198 /* ./syntax//icode_generation.nit:1303 */
6199 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6200 if (UNTAG_Bool(REGB2
)) {
6202 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6203 if (UNTAG_Bool(REGB1
)) {
6204 REGB1
= TAG_Bool(false);
6207 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6211 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6212 if (UNTAG_Bool(REGB2
)) {
6213 /* ./syntax//icode_generation.nit:1304 */
6214 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6215 if (UNTAG_Bool(REGB2
)) {
6217 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6218 if (UNTAG_Bool(REGB1
)) {
6219 REGB1
= TAG_Bool(false);
6222 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6226 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6227 if (UNTAG_Bool(REGB2
)) {
6229 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 1304);
6231 /* ./syntax//icode_generation.nit:1305 */
6232 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6233 fra
.me
.REG
[3] = fra
.me
.REG
[0];
6234 /* ./syntax//icode_generation.nit:1306 */
6235 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
6237 /* ./syntax//icode_generation.nit:1308 */
6238 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6239 if (UNTAG_Bool(REGB2
)) {
6240 nit_abort("Reciever is null", NULL
, LOCATE_icode_generation
, 1308);
6242 fra
.me
.REG
[6] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6243 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6244 /* ./syntax//icode_generation.nit:1309 */
6245 fra
.me
.REG
[2] = CALL_icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[2], NIT_NULL
);
6246 /* ./syntax//icode_generation.nit:1310 */
6247 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6248 if (UNTAG_Bool(REGB2
)) {
6250 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6251 if (UNTAG_Bool(REGB1
)) {
6252 REGB1
= TAG_Bool(false);
6255 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6259 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6260 if (UNTAG_Bool(REGB2
)) {
6261 /* ./syntax//icode_generation.nit:1311 */
6262 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6263 if (UNTAG_Bool(REGB2
)) {
6265 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6266 if (UNTAG_Bool(REGB1
)) {
6267 REGB1
= TAG_Bool(false);
6270 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6274 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6275 if (UNTAG_Bool(REGB2
)) {
6277 nit_abort("Assert failed", NULL
, LOCATE_icode_generation
, 1311);
6279 /* ./syntax//icode_generation.nit:1312 */
6280 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6282 /* ./syntax//icode_generation.nit:1314 */
6283 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6285 /* ./syntax//icode_generation.nit:1316 */
6286 fra
.me
.REG
[3] = fra
.me
.REG
[8];
6288 /* ./syntax//icode_generation.nit:1318 */
6291 stack_frame_head
= fra
.me
.prev
;
6292 return fra
.me
.REG
[3];