1 /* This C file is generated by NIT to compile module syntax___icode_generation. */
2 #include "syntax___icode_generation._sep.h"
3 void syntax___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_syntax___icode_generation
;
11 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___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_syntax___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_syntax___icode_generation
, 31);
44 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
45 CALL_icode___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_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
49 fra
.me
.REG
[3] = CALL_parser___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_standard___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_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
66 fra
.me
.REG
[3] = CALL_parser___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_syntax___icode_generation
, 33);
71 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
72 CALL_icode___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_syntax___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
syntax___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_syntax___icode_generation
;
90 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___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_standard___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___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_standard___string___Object___to_s(REGB0
)(REGB0
);
120 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
121 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
122 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
123 fra
.me
.REG
[4] = CALL_icode___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_standard___collection___array___Array___with_capacity(REGB0
);
127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
128 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
129 fra
.me
.REG
[1] = CALL_icode___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 syntax___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_syntax___icode_generation
;
144 fra
.me
.meth
= LOCATE_syntax___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___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
158 /* ./syntax//icode_generation.nit:50 */
159 fra
.me
.REG
[4] = CALL_syntax___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_standard___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_standard___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___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_standard___collection___array___Array___with_capacity(REGB0
);
178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
179 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
180 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[3]);
181 CALL_icode___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
syntax___icode_generation___A2IContext___variable(val_t p0
, val_t p1
){
186 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
189 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
190 fra
.me
.file
= LOCATE_syntax___icode_generation
;
192 fra
.me
.meth
= LOCATE_syntax___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
;
199 fra
.me
.REG
[4] = NIT_NULL
;
202 /* ./syntax//icode_generation.nit:54 */
203 fra
.me
.REG
[2] = fra
.me
.REG
[0];
204 /* ./syntax//icode_generation.nit:58 */
205 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
206 if (UNTAG_Bool(REGB0
)) {
208 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 58);
210 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
211 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
212 if (UNTAG_Bool(REGB0
)) {
213 /* ./syntax//icode_generation.nit:59 */
214 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
215 if (UNTAG_Bool(REGB0
)) {
217 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 59);
219 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
220 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
223 /* ./syntax//icode_generation.nit:61 */
224 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
225 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
226 if (UNTAG_Bool(REGB0
)) {
228 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 61);
230 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
231 /* ./syntax//icode_generation.nit:62 */
232 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
233 if (UNTAG_Bool(REGB0
)) {
235 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 62);
237 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
238 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4]);
239 /* ./syntax//icode_generation.nit:63 */
240 fra
.me
.REG
[3] = fra
.me
.REG
[4];
244 stack_frame_head
= fra
.me
.prev
;
245 return fra
.me
.REG
[3];
247 val_t
syntax___icode_generation___A2IContext___closurevariables(val_t p0
){
248 struct {struct stack_frame_t me
;} fra
;
251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
252 fra
.me
.file
= LOCATE_syntax___icode_generation
;
254 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___closurevariables
;
255 fra
.me
.has_broke
= 0;
257 fra
.me
.REG
[0] = NIT_NULL
;
259 /* ./syntax//icode_generation.nit:70 */
260 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0])!=NIT_NULL
);
261 if (UNTAG_Bool(REGB0
)) {
263 nit_abort("Uninitialized attribute %s", "_closurevariables", LOCATE_syntax___icode_generation
, 70);
265 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0]);
266 stack_frame_head
= fra
.me
.prev
;
267 return fra
.me
.REG
[0];
269 val_t
syntax___icode_generation___A2IContext___visitor(val_t p0
){
270 struct {struct stack_frame_t me
;} fra
;
273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
274 fra
.me
.file
= LOCATE_syntax___icode_generation
;
276 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___visitor
;
277 fra
.me
.has_broke
= 0;
279 fra
.me
.REG
[0] = NIT_NULL
;
281 /* ./syntax//icode_generation.nit:73 */
282 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
283 if (UNTAG_Bool(REGB0
)) {
285 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___icode_generation
, 73);
287 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0]);
288 stack_frame_head
= fra
.me
.prev
;
289 return fra
.me
.REG
[0];
291 val_t
syntax___icode_generation___A2IContext___return_seq(val_t p0
){
292 struct {struct stack_frame_t me
;} fra
;
294 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
295 fra
.me
.file
= LOCATE_syntax___icode_generation
;
297 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq
;
298 fra
.me
.has_broke
= 0;
300 fra
.me
.REG
[0] = NIT_NULL
;
302 /* ./syntax//icode_generation.nit:76 */
303 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]);
304 stack_frame_head
= fra
.me
.prev
;
305 return fra
.me
.REG
[0];
307 void syntax___icode_generation___A2IContext___return_seq__eq(val_t p0
, val_t p1
){
308 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
311 fra
.me
.file
= LOCATE_syntax___icode_generation
;
313 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq__eq
;
314 fra
.me
.has_broke
= 0;
316 fra
.me
.REG
[0] = NIT_NULL
;
317 fra
.me
.REG
[1] = NIT_NULL
;
320 /* ./syntax//icode_generation.nit:76 */
321 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
322 stack_frame_head
= fra
.me
.prev
;
325 val_t
syntax___icode_generation___A2IContext___return_value(val_t p0
){
326 struct {struct stack_frame_t me
;} fra
;
328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
329 fra
.me
.file
= LOCATE_syntax___icode_generation
;
331 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value
;
332 fra
.me
.has_broke
= 0;
334 fra
.me
.REG
[0] = NIT_NULL
;
336 /* ./syntax//icode_generation.nit:79 */
337 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]);
338 stack_frame_head
= fra
.me
.prev
;
339 return fra
.me
.REG
[0];
341 void syntax___icode_generation___A2IContext___return_value__eq(val_t p0
, val_t p1
){
342 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
344 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
345 fra
.me
.file
= LOCATE_syntax___icode_generation
;
347 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value__eq
;
348 fra
.me
.has_broke
= 0;
350 fra
.me
.REG
[0] = NIT_NULL
;
351 fra
.me
.REG
[1] = NIT_NULL
;
354 /* ./syntax//icode_generation.nit:79 */
355 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
356 stack_frame_head
= fra
.me
.prev
;
359 val_t
syntax___icode_generation___A2IContext___method(val_t p0
){
360 struct {struct stack_frame_t me
;} fra
;
362 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
363 fra
.me
.file
= LOCATE_syntax___icode_generation
;
365 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___method
;
366 fra
.me
.has_broke
= 0;
368 fra
.me
.REG
[0] = NIT_NULL
;
370 /* ./syntax//icode_generation.nit:82 */
371 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[0]);
372 stack_frame_head
= fra
.me
.prev
;
373 return fra
.me
.REG
[0];
375 val_t
syntax___icode_generation___A2IContext___selfreg(val_t p0
){
376 struct {struct stack_frame_t me
;} fra
;
378 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
379 fra
.me
.file
= LOCATE_syntax___icode_generation
;
381 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg
;
382 fra
.me
.has_broke
= 0;
384 fra
.me
.REG
[0] = NIT_NULL
;
386 /* ./syntax//icode_generation.nit:85 */
387 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]);
388 stack_frame_head
= fra
.me
.prev
;
389 return fra
.me
.REG
[0];
391 void syntax___icode_generation___A2IContext___selfreg__eq(val_t p0
, val_t p1
){
392 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
395 fra
.me
.file
= LOCATE_syntax___icode_generation
;
397 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg__eq
;
398 fra
.me
.has_broke
= 0;
400 fra
.me
.REG
[0] = NIT_NULL
;
401 fra
.me
.REG
[1] = NIT_NULL
;
404 /* ./syntax//icode_generation.nit:85 */
405 ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
406 stack_frame_head
= fra
.me
.prev
;
409 void syntax___icode_generation___A2IContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
410 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IContext
].i
;
411 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
413 if (init_table
[itpos0
]) return;
414 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
415 fra
.me
.file
= LOCATE_syntax___icode_generation
;
417 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___init
;
418 fra
.me
.has_broke
= 0;
420 fra
.me
.REG
[0] = NIT_NULL
;
421 fra
.me
.REG
[1] = NIT_NULL
;
422 fra
.me
.REG
[2] = NIT_NULL
;
423 fra
.me
.REG
[3] = NIT_NULL
;
424 fra
.me
.REG
[4] = NIT_NULL
;
425 fra
.me
.REG
[5] = NIT_NULL
;
430 /* ./syntax//icode_generation.nit:88 */
431 fra
.me
.REG
[4] = fra
.me
.REG
[0];
432 /* ./syntax//icode_generation.nit:90 */
433 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
434 CALL_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
435 /* ./syntax//icode_generation.nit:91 */
436 ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
437 /* ./syntax//icode_generation.nit:92 */
438 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
439 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
440 /* ./syntax//icode_generation.nit:93 */
441 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
442 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
443 /* ./syntax//icode_generation.nit:94 */
444 ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
445 stack_frame_head
= fra
.me
.prev
;
446 init_table
[itpos0
] = 1;
449 void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_t p0
, val_t p1
){
450 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
458 fra
.me
.file
= LOCATE_syntax___icode_generation
;
460 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
461 fra
.me
.has_broke
= 0;
463 fra
.me
.REG
[0] = NIT_NULL
;
464 fra
.me
.REG
[1] = NIT_NULL
;
465 fra
.me
.REG
[2] = NIT_NULL
;
466 fra
.me
.REG
[3] = NIT_NULL
;
467 fra
.me
.REG
[4] = NIT_NULL
;
468 fra
.me
.REG
[5] = NIT_NULL
;
471 /* ./syntax//icode_generation.nit:100 */
472 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
473 /* ./syntax//icode_generation.nit:101 */
474 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
475 if (UNTAG_Bool(REGB0
)) {
477 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 101);
479 /* ./syntax//icode_generation.nit:102 */
480 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
481 if (UNTAG_Bool(REGB0
)) {
482 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 102);
484 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
485 /* ./syntax//icode_generation.nit:103 */
486 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
487 if (UNTAG_Bool(REGB0
)) {
489 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 103);
491 /* ./syntax//icode_generation.nit:105 */
492 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
493 if (UNTAG_Bool(REGB0
)) {
494 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 105);
496 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
497 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
498 if (UNTAG_Bool(REGB0
)) {
501 /* ./syntax//icode_generation.nit:106 */
503 /* ./syntax//icode_generation.nit:107 */
505 /* ./syntax//icode_generation.nit:108 */
506 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
507 if (UNTAG_Bool(REGB2
)) {
509 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
510 if (UNTAG_Bool(REGB3
)) {
511 REGB3
= TAG_Bool(false);
514 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
518 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
519 if (UNTAG_Bool(REGB2
)) {
520 /* ./syntax//icode_generation.nit:109 */
522 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
523 if (UNTAG_Bool(REGB2
)) {
524 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 109);
526 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
527 /* ./../lib/standard//collection//array.nit:241 */
529 /* ./../lib/standard//collection//array.nit:243 */
531 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
532 if (UNTAG_Bool(REGB4
)) {
534 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
536 /* ./../lib/standard//kernel.nit:216 */
537 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
538 /* ./../lib/standard//collection//array.nit:243 */
539 if (UNTAG_Bool(REGB3
)) {
540 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
541 if (UNTAG_Bool(REGB3
)) {
543 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
545 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
546 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
547 if (UNTAG_Bool(REGB4
)) {
549 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
551 /* ./../lib/standard//kernel.nit:215 */
552 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
554 /* ./../lib/standard//collection//array.nit:243 */
555 REGB4
= TAG_Bool(false);
558 if (UNTAG_Bool(REGB3
)) {
560 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
562 /* ./../lib/standard//collection//array.nit:244 */
563 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
564 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
565 if (UNTAG_Bool(REGB3
)) {
566 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
568 /* ./../lib/standard//collection//array.nit:652 */
569 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
570 /* ./../lib/standard//collection//array.nit:244 */
573 /* ./syntax//icode_generation.nit:109 */
574 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
575 if (UNTAG_Bool(REGB2
)) {
577 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
578 if (UNTAG_Bool(REGB3
)) {
579 REGB3
= TAG_Bool(false);
582 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
586 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
587 if (UNTAG_Bool(REGB2
)) {
588 /* ./syntax//icode_generation.nit:110 */
590 /* ./../lib/standard//kernel.nit:218 */
591 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
592 /* ./syntax//icode_generation.nit:110 */
595 /* ./syntax//icode_generation.nit:109 */
600 /* ./syntax//icode_generation.nit:112 */
602 /* ./../lib/standard//kernel.nit:218 */
603 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
604 /* ./syntax//icode_generation.nit:112 */
606 /* ./syntax//icode_generation.nit:114 */
608 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
609 if (UNTAG_Bool(REGB2
)) {
610 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 114);
612 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
613 /* ./../lib/standard//collection//array.nit:241 */
615 /* ./../lib/standard//collection//array.nit:243 */
617 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
618 if (UNTAG_Bool(REGB4
)) {
620 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
622 /* ./../lib/standard//kernel.nit:216 */
623 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
624 /* ./../lib/standard//collection//array.nit:243 */
625 if (UNTAG_Bool(REGB3
)) {
626 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
627 if (UNTAG_Bool(REGB3
)) {
629 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
631 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
632 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
633 if (UNTAG_Bool(REGB4
)) {
635 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
637 /* ./../lib/standard//kernel.nit:215 */
638 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
640 /* ./../lib/standard//collection//array.nit:243 */
641 REGB4
= TAG_Bool(false);
644 if (UNTAG_Bool(REGB3
)) {
646 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
648 /* ./../lib/standard//collection//array.nit:244 */
649 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
650 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
651 if (UNTAG_Bool(REGB3
)) {
652 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
654 /* ./../lib/standard//collection//array.nit:652 */
655 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
656 /* ./../lib/standard//collection//array.nit:244 */
659 /* ./syntax//icode_generation.nit:114 */
660 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
661 if (UNTAG_Bool(REGB2
)) {
663 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
664 if (UNTAG_Bool(REGB3
)) {
665 REGB3
= TAG_Bool(false);
668 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
672 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
673 if (UNTAG_Bool(REGB2
)) {
674 /* ./syntax//icode_generation.nit:115 */
676 /* ./../lib/standard//kernel.nit:218 */
677 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
678 /* ./syntax//icode_generation.nit:115 */
681 /* ./syntax//icode_generation.nit:114 */
686 /* ./syntax//icode_generation.nit:117 */
688 /* ./../lib/standard//kernel.nit:218 */
689 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
690 /* ./syntax//icode_generation.nit:117 */
693 /* ./syntax//icode_generation.nit:119 */
694 fra
.me
.REG
[1] = NIT_NULL
;
695 /* ./syntax//icode_generation.nit:120 */
696 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
697 if (UNTAG_Bool(REGB2
)) {
698 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 120);
700 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
701 /* ./../lib/standard//collection//array.nit:23 */
702 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
703 if (UNTAG_Bool(REGB2
)) {
705 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
707 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
708 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
709 if (UNTAG_Bool(REGB3
)) {
711 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
713 /* ./../lib/standard//kernel.nit:215 */
714 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
715 /* ./syntax//icode_generation.nit:120 */
716 if (UNTAG_Bool(REGB2
)) {
717 /* ./syntax//icode_generation.nit:121 */
718 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
719 if (UNTAG_Bool(REGB2
)) {
720 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 121);
722 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
723 /* ./../lib/standard//collection//array.nit:243 */
725 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
726 if (UNTAG_Bool(REGB3
)) {
728 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
730 /* ./../lib/standard//kernel.nit:216 */
731 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
732 /* ./../lib/standard//collection//array.nit:243 */
733 if (UNTAG_Bool(REGB2
)) {
734 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
735 if (UNTAG_Bool(REGB2
)) {
737 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
739 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
740 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
741 if (UNTAG_Bool(REGB3
)) {
743 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
745 /* ./../lib/standard//kernel.nit:215 */
746 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
748 /* ./../lib/standard//collection//array.nit:243 */
749 REGB3
= TAG_Bool(false);
752 if (UNTAG_Bool(REGB2
)) {
754 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
756 /* ./../lib/standard//collection//array.nit:244 */
757 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
758 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
759 if (UNTAG_Bool(REGB2
)) {
760 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
762 /* ./../lib/standard//collection//array.nit:652 */
763 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
764 /* ./../lib/standard//collection//array.nit:244 */
767 /* ./syntax//icode_generation.nit:121 */
768 fra
.me
.REG
[1] = fra
.me
.REG
[3];
770 /* ./syntax//icode_generation.nit:123 */
771 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
772 if (UNTAG_Bool(REGB1
)) {
773 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 123);
775 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
776 /* ./../lib/standard//collection//array.nit:23 */
777 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
778 if (UNTAG_Bool(REGB1
)) {
780 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
782 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
783 /* ./syntax//icode_generation.nit:124 */
785 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
786 if (UNTAG_Bool(REGB2
)) {
788 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
790 /* ./../lib/standard//kernel.nit:215 */
791 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
792 /* ./syntax//icode_generation.nit:124 */
793 if (UNTAG_Bool(REGB2
)) {
794 /* ./syntax//icode_generation.nit:125 */
795 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
796 if (UNTAG_Bool(REGB2
)) {
797 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 125);
799 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
800 /* ./../lib/standard//collection//array.nit:241 */
802 /* ./../lib/standard//collection//array.nit:243 */
804 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
805 if (UNTAG_Bool(REGB4
)) {
807 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
809 /* ./../lib/standard//kernel.nit:216 */
810 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
811 /* ./../lib/standard//collection//array.nit:243 */
812 if (UNTAG_Bool(REGB3
)) {
813 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
814 if (UNTAG_Bool(REGB3
)) {
816 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
818 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
819 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
820 if (UNTAG_Bool(REGB4
)) {
822 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
824 /* ./../lib/standard//kernel.nit:215 */
825 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
827 /* ./../lib/standard//collection//array.nit:243 */
828 REGB4
= TAG_Bool(false);
831 if (UNTAG_Bool(REGB3
)) {
833 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
835 /* ./../lib/standard//collection//array.nit:244 */
836 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
837 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
838 if (UNTAG_Bool(REGB3
)) {
839 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
841 /* ./../lib/standard//collection//array.nit:652 */
842 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
843 /* ./../lib/standard//collection//array.nit:244 */
846 /* ./syntax//icode_generation.nit:126 */
847 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[1]));
848 if (UNTAG_Bool(REGB2
)) {
850 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
853 if (UNTAG_Bool(REGB2
)) {
856 /* ./syntax//icode_generation.nit:127 */
857 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
858 /* ./syntax//icode_generation.nit:128 */
859 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
860 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
861 if (UNTAG_Bool(REGB2
)) {
862 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 128);
864 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
866 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
867 if (UNTAG_Bool(REGB4
)) {
869 /* ./../lib/standard//kernel.nit:210 */
870 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
871 /* ./syntax//icode_generation.nit:128 */
874 if (UNTAG_Bool(REGB4
)) {
875 /* ./syntax//icode_generation.nit:129 */
876 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
877 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
878 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
881 /* ./syntax//icode_generation.nit:131 */
882 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
883 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
884 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[5])(fra
.me
.REG
[5], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___A2IContext___invoke_super_init_calls_after_9
));
886 /* ./syntax//icode_generation.nit:135 */
887 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
888 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
889 /* ./syntax//icode_generation.nit:136 */
891 /* ./../lib/standard//kernel.nit:218 */
892 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
893 /* ./syntax//icode_generation.nit:136 */
896 /* ./syntax//icode_generation.nit:124 */
902 stack_frame_head
= fra
.me
.prev
;
905 void OC_syntax___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
){
906 struct {struct stack_frame_t me
;} fra
;
909 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
910 fra
.me
.file
= LOCATE_syntax___icode_generation
;
912 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
913 fra
.me
.has_broke
= 0;
915 fra
.me
.REG
[0] = NIT_NULL
;
916 fra
.me
.closure_ctx
= closctx_param
;
917 fra
.me
.closure_funs
= CREG
;
920 /* ./syntax//icode_generation.nit:132 */
921 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
922 stack_frame_head
= fra
.me
.prev
;
925 void syntax___icode_generation___A2IContext___generate_stmt(val_t p0
, val_t p1
){
926 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
930 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
931 fra
.me
.file
= LOCATE_syntax___icode_generation
;
933 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_stmt
;
934 fra
.me
.has_broke
= 0;
936 fra
.me
.REG
[0] = NIT_NULL
;
937 fra
.me
.REG
[1] = NIT_NULL
;
938 fra
.me
.REG
[2] = NIT_NULL
;
941 /* ./syntax//icode_generation.nit:146 */
942 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
943 if (UNTAG_Bool(REGB0
)) {
945 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
946 if (UNTAG_Bool(REGB1
)) {
947 REGB1
= TAG_Bool(false);
950 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
954 if (UNTAG_Bool(REGB0
)) {
957 /* ./syntax//icode_generation.nit:147 */
958 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
959 /* ./syntax//icode_generation.nit:148 */
960 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
961 /* ./syntax//icode_generation.nit:149 */
962 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
963 if (UNTAG_Bool(REGB0
)) {
964 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 149);
966 CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
967 /* ./syntax//icode_generation.nit:150 */
968 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
970 stack_frame_head
= fra
.me
.prev
;
973 val_t
syntax___icode_generation___A2IContext___generate_expr(val_t p0
, val_t p1
){
974 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
977 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
978 fra
.me
.file
= LOCATE_syntax___icode_generation
;
980 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_expr
;
981 fra
.me
.has_broke
= 0;
983 fra
.me
.REG
[0] = NIT_NULL
;
984 fra
.me
.REG
[1] = NIT_NULL
;
985 fra
.me
.REG
[2] = NIT_NULL
;
986 fra
.me
.REG
[3] = NIT_NULL
;
989 /* ./syntax//icode_generation.nit:153 */
990 fra
.me
.REG
[2] = fra
.me
.REG
[0];
991 /* ./syntax//icode_generation.nit:156 */
992 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
993 /* ./syntax//icode_generation.nit:157 */
994 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
995 /* ./syntax//icode_generation.nit:158 */
996 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
997 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
998 if (UNTAG_Bool(REGB0
)) {
1000 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 158);
1002 /* ./syntax//icode_generation.nit:159 */
1003 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
1004 /* ./syntax//icode_generation.nit:160 */
1007 stack_frame_head
= fra
.me
.prev
;
1008 return fra
.me
.REG
[1];
1010 val_t
syntax___icode_generation___EscapableBlock___break_seq(val_t p0
){
1011 struct {struct stack_frame_t me
;} fra
;
1013 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1014 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1016 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq
;
1017 fra
.me
.has_broke
= 0;
1018 fra
.me
.REG_size
= 1;
1019 fra
.me
.REG
[0] = NIT_NULL
;
1021 /* ./syntax//icode_generation.nit:165 */
1022 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]);
1023 stack_frame_head
= fra
.me
.prev
;
1024 return fra
.me
.REG
[0];
1026 void syntax___icode_generation___EscapableBlock___break_seq__eq(val_t p0
, val_t p1
){
1027 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1029 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1030 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1032 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq__eq
;
1033 fra
.me
.has_broke
= 0;
1034 fra
.me
.REG_size
= 2;
1035 fra
.me
.REG
[0] = NIT_NULL
;
1036 fra
.me
.REG
[1] = NIT_NULL
;
1039 /* ./syntax//icode_generation.nit:165 */
1040 ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1041 stack_frame_head
= fra
.me
.prev
;
1044 val_t
syntax___icode_generation___EscapableBlock___continue_seq(val_t p0
){
1045 struct {struct stack_frame_t me
;} fra
;
1047 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1048 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1050 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq
;
1051 fra
.me
.has_broke
= 0;
1052 fra
.me
.REG_size
= 1;
1053 fra
.me
.REG
[0] = NIT_NULL
;
1055 /* ./syntax//icode_generation.nit:168 */
1056 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]);
1057 stack_frame_head
= fra
.me
.prev
;
1058 return fra
.me
.REG
[0];
1060 void syntax___icode_generation___EscapableBlock___continue_seq__eq(val_t p0
, val_t p1
){
1061 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1063 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1064 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1066 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq__eq
;
1067 fra
.me
.has_broke
= 0;
1068 fra
.me
.REG_size
= 2;
1069 fra
.me
.REG
[0] = NIT_NULL
;
1070 fra
.me
.REG
[1] = NIT_NULL
;
1073 /* ./syntax//icode_generation.nit:168 */
1074 ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1075 stack_frame_head
= fra
.me
.prev
;
1078 val_t
syntax___icode_generation___EscapableBlock___break_value(val_t p0
){
1079 struct {struct stack_frame_t me
;} fra
;
1081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1082 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1084 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value
;
1085 fra
.me
.has_broke
= 0;
1086 fra
.me
.REG_size
= 1;
1087 fra
.me
.REG
[0] = NIT_NULL
;
1089 /* ./syntax//icode_generation.nit:171 */
1090 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]);
1091 stack_frame_head
= fra
.me
.prev
;
1092 return fra
.me
.REG
[0];
1094 void syntax___icode_generation___EscapableBlock___break_value__eq(val_t p0
, val_t p1
){
1095 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1097 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1098 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1100 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value__eq
;
1101 fra
.me
.has_broke
= 0;
1102 fra
.me
.REG_size
= 2;
1103 fra
.me
.REG
[0] = NIT_NULL
;
1104 fra
.me
.REG
[1] = NIT_NULL
;
1107 /* ./syntax//icode_generation.nit:171 */
1108 ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1109 stack_frame_head
= fra
.me
.prev
;
1112 val_t
syntax___icode_generation___EscapableBlock___continue_value(val_t p0
){
1113 struct {struct stack_frame_t me
;} fra
;
1115 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1116 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1118 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value
;
1119 fra
.me
.has_broke
= 0;
1120 fra
.me
.REG_size
= 1;
1121 fra
.me
.REG
[0] = NIT_NULL
;
1123 /* ./syntax//icode_generation.nit:174 */
1124 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]);
1125 stack_frame_head
= fra
.me
.prev
;
1126 return fra
.me
.REG
[0];
1128 void syntax___icode_generation___EscapableBlock___continue_value__eq(val_t p0
, val_t p1
){
1129 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1132 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1134 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value__eq
;
1135 fra
.me
.has_broke
= 0;
1136 fra
.me
.REG_size
= 2;
1137 fra
.me
.REG
[0] = NIT_NULL
;
1138 fra
.me
.REG
[1] = NIT_NULL
;
1141 /* ./syntax//icode_generation.nit:174 */
1142 ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1143 stack_frame_head
= fra
.me
.prev
;
1146 void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0
, val_t p1
){
1147 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1150 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1152 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1153 fra
.me
.has_broke
= 0;
1154 fra
.me
.REG_size
= 3;
1155 fra
.me
.REG
[0] = NIT_NULL
;
1156 fra
.me
.REG
[1] = NIT_NULL
;
1157 fra
.me
.REG
[2] = NIT_NULL
;
1160 /* ./syntax//icode_generation.nit:182 */
1161 fra
.me
.REG
[1] = NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1162 /* ./syntax//icode_generation.nit:183 */
1163 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1164 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___MMSrcModule___generate_icode_1
));
1165 stack_frame_head
= fra
.me
.prev
;
1168 void OC_syntax___icode_generation___MMSrcModule___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1169 struct {struct stack_frame_t me
;} fra
;
1172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1173 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1175 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1176 fra
.me
.has_broke
= 0;
1177 fra
.me
.REG_size
= 1;
1178 fra
.me
.REG
[0] = NIT_NULL
;
1179 fra
.me
.closure_ctx
= closctx_param
;
1180 fra
.me
.closure_funs
= CREG
;
1182 CREG
[0] = clos_fun0
;
1183 /* ./syntax//icode_generation.nit:184 */
1184 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1185 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_syntax___icode_generation___MMSrcModule___generate_icode_2
));
1186 stack_frame_head
= fra
.me
.prev
;
1189 void OC_syntax___icode_generation___MMSrcModule___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1190 struct {struct stack_frame_t me
;} fra
;
1194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1195 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1197 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1198 fra
.me
.has_broke
= 0;
1199 fra
.me
.REG_size
= 1;
1200 fra
.me
.REG
[0] = NIT_NULL
;
1201 fra
.me
.closure_ctx
= closctx_param
;
1202 fra
.me
.closure_funs
= CREG
;
1204 CREG
[0] = clos_fun0
;
1205 /* ./syntax//icode_generation.nit:185 */
1206 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1207 if (UNTAG_Bool(REGB0
)) {
1208 /* ./syntax//icode_generation.nit:186 */
1209 CALL_syntax___icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1211 /* ./syntax//icode_generation.nit:187 */
1212 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcAttribute
, ID_syntax___syntax_base___MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1213 if (UNTAG_Bool(REGB0
)) {
1214 /* ./syntax//icode_generation.nit:188 */
1215 CALL_syntax___icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1218 stack_frame_head
= fra
.me
.prev
;
1221 val_t
syntax___icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1222 struct {struct stack_frame_t me
;} fra
;
1224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1225 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1227 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine
;
1228 fra
.me
.has_broke
= 0;
1229 fra
.me
.REG_size
= 1;
1230 fra
.me
.REG
[0] = NIT_NULL
;
1232 /* ./syntax//icode_generation.nit:196 */
1233 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1234 stack_frame_head
= fra
.me
.prev
;
1235 return fra
.me
.REG
[0];
1237 void syntax___icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1238 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1241 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1243 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine__eq
;
1244 fra
.me
.has_broke
= 0;
1245 fra
.me
.REG_size
= 2;
1246 fra
.me
.REG
[0] = NIT_NULL
;
1247 fra
.me
.REG
[1] = NIT_NULL
;
1250 /* ./syntax//icode_generation.nit:196 */
1251 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1252 stack_frame_head
= fra
.me
.prev
;
1255 void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1256 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1261 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1263 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___generate_iroutine
;
1264 fra
.me
.has_broke
= 0;
1265 fra
.me
.REG_size
= 4;
1266 fra
.me
.REG
[0] = NIT_NULL
;
1267 fra
.me
.REG
[1] = NIT_NULL
;
1268 fra
.me
.REG
[2] = NIT_NULL
;
1269 fra
.me
.REG
[3] = NIT_NULL
;
1272 /* ./syntax//icode_generation.nit:201 */
1273 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1274 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1275 if (UNTAG_Bool(REGB0
)) {
1276 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 201);
1278 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1279 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1280 if (UNTAG_Bool(REGB0
)) {
1282 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1283 if (UNTAG_Bool(REGB1
)) {
1284 REGB1
= TAG_Bool(false);
1287 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1291 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1292 if (UNTAG_Bool(REGB0
)) {
1293 /* ./syntax//icode_generation.nit:202 */
1294 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1295 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1296 if (UNTAG_Bool(REGB0
)) {
1297 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 202);
1299 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1300 /* ./syntax//icode_generation.nit:203 */
1301 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1302 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1303 if (UNTAG_Bool(REGB0
)) {
1304 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 203);
1306 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1307 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1308 /* ./syntax//icode_generation.nit:204 */
1309 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1310 /* ./syntax//icode_generation.nit:205 */
1311 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1312 /* ./syntax//icode_generation.nit:206 */
1313 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1314 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1315 /* ./syntax//icode_generation.nit:207 */
1316 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1317 /* ./syntax//icode_generation.nit:208 */
1318 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1320 stack_frame_head
= fra
.me
.prev
;
1323 val_t
syntax___icode_generation___MMSrcMethod___iroutine(val_t p0
){
1324 struct {struct stack_frame_t me
;} fra
;
1326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1327 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1329 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine
;
1330 fra
.me
.has_broke
= 0;
1331 fra
.me
.REG_size
= 1;
1332 fra
.me
.REG
[0] = NIT_NULL
;
1334 /* ./syntax//icode_generation.nit:214 */
1335 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1336 stack_frame_head
= fra
.me
.prev
;
1337 return fra
.me
.REG
[0];
1339 void syntax___icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1340 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1343 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1345 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine__eq
;
1346 fra
.me
.has_broke
= 0;
1347 fra
.me
.REG_size
= 2;
1348 fra
.me
.REG
[0] = NIT_NULL
;
1349 fra
.me
.REG
[1] = NIT_NULL
;
1352 /* ./syntax//icode_generation.nit:214 */
1353 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1354 stack_frame_head
= fra
.me
.prev
;
1357 void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1358 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1362 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1363 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1365 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___generate_iroutine
;
1366 fra
.me
.has_broke
= 0;
1367 fra
.me
.REG_size
= 4;
1368 fra
.me
.REG
[0] = NIT_NULL
;
1369 fra
.me
.REG
[1] = NIT_NULL
;
1370 fra
.me
.REG
[2] = NIT_NULL
;
1371 fra
.me
.REG
[3] = NIT_NULL
;
1374 /* ./syntax//icode_generation.nit:219 */
1375 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1376 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1377 if (UNTAG_Bool(REGB0
)) {
1378 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 219);
1380 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1381 /* ./syntax//icode_generation.nit:220 */
1382 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1383 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1384 if (UNTAG_Bool(REGB0
)) {
1386 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1387 if (UNTAG_Bool(REGB1
)) {
1388 REGB1
= TAG_Bool(false);
1391 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1395 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1396 if (UNTAG_Bool(REGB0
)) {
1397 /* ./syntax//icode_generation.nit:221 */
1398 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1399 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1400 if (UNTAG_Bool(REGB0
)) {
1401 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 221);
1403 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1404 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1406 /* ./syntax//icode_generation.nit:223 */
1407 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1408 /* ./syntax//icode_generation.nit:224 */
1409 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1410 /* ./syntax//icode_generation.nit:225 */
1411 CALL_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1412 /* ./syntax//icode_generation.nit:226 */
1413 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1414 /* ./syntax//icode_generation.nit:227 */
1415 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1416 stack_frame_head
= fra
.me
.prev
;
1419 void syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1420 struct {struct stack_frame_t me
;} fra
;
1422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1423 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1425 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine
;
1426 fra
.me
.has_broke
= 0;
1427 fra
.me
.REG_size
= 0;
1428 /* ./syntax//icode_generation.nit:230 */
1429 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 230);
1430 stack_frame_head
= fra
.me
.prev
;
1433 void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1434 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1438 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1440 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1441 fra
.me
.has_broke
= 0;
1442 fra
.me
.REG_size
= 3;
1443 fra
.me
.REG
[0] = NIT_NULL
;
1444 fra
.me
.REG
[1] = NIT_NULL
;
1445 fra
.me
.REG
[2] = NIT_NULL
;
1448 /* ./syntax//icode_generation.nit:237 */
1449 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1450 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1451 if (UNTAG_Bool(REGB0
)) {
1452 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 237);
1454 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1455 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1456 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1457 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1458 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1459 /* ./syntax//icode_generation.nit:238 */
1460 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1461 stack_frame_head
= fra
.me
.prev
;
1464 void syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1465 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1468 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1469 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1471 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1472 fra
.me
.has_broke
= 0;
1473 fra
.me
.REG_size
= 4;
1474 fra
.me
.REG
[0] = NIT_NULL
;
1475 fra
.me
.REG
[1] = NIT_NULL
;
1476 fra
.me
.REG
[2] = NIT_NULL
;
1477 fra
.me
.REG
[3] = NIT_NULL
;
1480 /* ./syntax//icode_generation.nit:245 */
1481 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1482 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1483 /* ./syntax//icode_generation.nit:246 */
1484 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1485 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1486 if (UNTAG_Bool(REGB0
)) {
1487 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 246);
1489 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1491 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1493 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1494 fra
.me
.REG
[2] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1495 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1496 stack_frame_head
= fra
.me
.prev
;
1499 void syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1500 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1502 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1503 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1505 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1506 fra
.me
.has_broke
= 0;
1507 fra
.me
.REG_size
= 2;
1508 fra
.me
.REG
[0] = NIT_NULL
;
1509 fra
.me
.REG
[1] = NIT_NULL
;
1512 /* ./syntax//icode_generation.nit:253 */
1513 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1514 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1515 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1516 stack_frame_head
= fra
.me
.prev
;
1519 void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1520 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1530 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1532 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMImplicitInit___inner_generate_iroutine
;
1533 fra
.me
.has_broke
= 0;
1534 fra
.me
.REG_size
= 10;
1535 fra
.me
.REG
[0] = NIT_NULL
;
1536 fra
.me
.REG
[1] = NIT_NULL
;
1537 fra
.me
.REG
[2] = NIT_NULL
;
1538 fra
.me
.REG
[3] = NIT_NULL
;
1539 fra
.me
.REG
[4] = NIT_NULL
;
1540 fra
.me
.REG
[5] = NIT_NULL
;
1541 fra
.me
.REG
[6] = NIT_NULL
;
1542 fra
.me
.REG
[7] = NIT_NULL
;
1543 fra
.me
.REG
[8] = NIT_NULL
;
1544 fra
.me
.REG
[9] = NIT_NULL
;
1547 /* ./syntax//icode_generation.nit:260 */
1548 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1549 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1550 /* ./syntax//icode_generation.nit:261 */
1551 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1552 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1553 /* ./../lib/standard//collection//array.nit:23 */
1554 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1555 if (UNTAG_Bool(REGB1
)) {
1557 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1559 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1560 /* ./../lib/standard//kernel.nit:220 */
1561 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1562 /* ./syntax//icode_generation.nit:262 */
1563 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1564 /* ./syntax//icode_generation.nit:263 */
1565 fra
.me
.REG
[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1566 /* ./../lib/standard//collection//array.nit:232 */
1568 /* ./../lib/standard//collection//array.nit:233 */
1569 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1570 if (UNTAG_Bool(REGB2
)) {
1572 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
1574 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1575 /* ./../lib/standard//collection//array.nit:234 */
1576 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1577 /* ./../lib/standard//collection//array.nit:235 */
1579 /* ./../lib/standard//collection//array.nit:23 */
1580 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1581 if (UNTAG_Bool(REGB2
)) {
1583 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1585 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1586 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1587 if (UNTAG_Bool(REGB3
)) {
1589 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1591 /* ./../lib/standard//kernel.nit:215 */
1592 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1593 /* ./../lib/standard//collection//array.nit:235 */
1594 if (UNTAG_Bool(REGB2
)) {
1595 /* ./../lib/standard//collection//array.nit:236 */
1596 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1597 if (UNTAG_Bool(REGB2
)) {
1598 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
1600 /* ./../lib/standard//collection//array.nit:652 */
1601 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1602 /* ./syntax//icode_generation.nit:264 */
1603 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1604 if (UNTAG_Bool(REGB2
)) {
1606 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 264);
1608 /* ./syntax//icode_generation.nit:265 */
1610 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1612 /* ./syntax//icode_generation.nit:266 */
1613 fra
.me
.REG
[8] = CALL_syntax___syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1614 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[8]));
1615 if (UNTAG_Bool(REGB2
)) {
1617 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1620 if (UNTAG_Bool(REGB2
)) {
1621 /* ./syntax//icode_generation.nit:267 */
1622 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1623 /* ./syntax//icode_generation.nit:268 */
1624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
1625 /* ./syntax//icode_generation.nit:269 */
1627 /* ./../lib/standard//kernel.nit:330 */
1629 /* ./../lib/standard//kernel.nit:335 */
1631 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1632 if (UNTAG_Bool(REGB4
)) {
1634 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1636 /* ./../lib/standard//kernel.nit:215 */
1637 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1638 /* ./../lib/standard//kernel.nit:335 */
1639 if (UNTAG_Bool(REGB4
)) {
1640 /* ./syntax//icode_generation.nit:269 */
1642 /* ./syntax//icode_generation.nit:270 */
1643 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
1644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1645 /* ./../lib/standard//kernel.nit:337 */
1647 /* ./../lib/standard//kernel.nit:218 */
1648 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1649 /* ./../lib/standard//kernel.nit:337 */
1652 /* ./../lib/standard//kernel.nit:335 */
1657 /* ./syntax//icode_generation.nit:272 */
1658 fra
.me
.REG
[8] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1659 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
1661 /* ./syntax//icode_generation.nit:274 */
1662 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1663 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1665 /* ./../lib/standard//collection//array.nit:237 */
1667 /* ./../lib/standard//kernel.nit:218 */
1668 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1669 /* ./../lib/standard//collection//array.nit:237 */
1672 /* ./../lib/standard//collection//array.nit:235 */
1677 /* ./syntax//icode_generation.nit:277 */
1678 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1679 /* ./../lib/standard//kernel.nit:330 */
1681 /* ./../lib/standard//kernel.nit:335 */
1683 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1684 if (UNTAG_Bool(REGB3
)) {
1686 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1688 /* ./../lib/standard//kernel.nit:215 */
1689 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1690 /* ./../lib/standard//kernel.nit:335 */
1691 if (UNTAG_Bool(REGB3
)) {
1692 /* ./syntax//icode_generation.nit:277 */
1694 /* ./syntax//icode_generation.nit:278 */
1695 fra
.me
.REG
[5] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1696 /* ./../lib/standard//kernel.nit:220 */
1697 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1698 /* ./../lib/standard//collection//array.nit:243 */
1700 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1701 if (UNTAG_Bool(REGB6
)) {
1703 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1705 /* ./../lib/standard//kernel.nit:216 */
1706 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1707 /* ./../lib/standard//collection//array.nit:243 */
1708 if (UNTAG_Bool(REGB5
)) {
1709 REGB5
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1710 if (UNTAG_Bool(REGB5
)) {
1712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
1714 REGB5
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1715 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1716 if (UNTAG_Bool(REGB6
)) {
1718 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1720 /* ./../lib/standard//kernel.nit:215 */
1721 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1723 /* ./../lib/standard//collection//array.nit:243 */
1724 REGB6
= TAG_Bool(false);
1727 if (UNTAG_Bool(REGB5
)) {
1729 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
1731 /* ./../lib/standard//collection//array.nit:244 */
1732 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1733 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1734 if (UNTAG_Bool(REGB5
)) {
1735 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
1737 /* ./../lib/standard//collection//array.nit:652 */
1738 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1739 /* ./../lib/standard//collection//array.nit:244 */
1742 /* ./syntax//icode_generation.nit:279 */
1743 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
1744 fra
.me
.REG
[4] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[5], fra
.me
.REG
[3], fra
.me
.REG
[4]);
1745 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1746 /* ./../lib/standard//kernel.nit:337 */
1748 /* ./../lib/standard//kernel.nit:218 */
1749 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1750 /* ./../lib/standard//kernel.nit:337 */
1753 /* ./../lib/standard//kernel.nit:335 */
1758 stack_frame_head
= fra
.me
.prev
;
1761 void syntax___icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1762 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1764 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1765 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1767 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx__eq
;
1768 fra
.me
.has_broke
= 0;
1769 fra
.me
.REG_size
= 2;
1770 fra
.me
.REG
[0] = NIT_NULL
;
1771 fra
.me
.REG
[1] = NIT_NULL
;
1774 /* ./syntax//icode_generation.nit:286 */
1775 ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1776 stack_frame_head
= fra
.me
.prev
;
1779 val_t
syntax___icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1780 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1783 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1784 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1786 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx
;
1787 fra
.me
.has_broke
= 0;
1788 fra
.me
.REG_size
= 2;
1789 fra
.me
.REG
[0] = NIT_NULL
;
1790 fra
.me
.REG
[1] = NIT_NULL
;
1792 /* ./syntax//icode_generation.nit:287 */
1793 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1794 fra
.me
.REG
[1] = ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[1]);
1795 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1796 if (UNTAG_Bool(REGB0
)) {
1798 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 287);
1802 stack_frame_head
= fra
.me
.prev
;
1803 return fra
.me
.REG
[1];
1805 void syntax___icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1806 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1810 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1812 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___visit
;
1813 fra
.me
.has_broke
= 0;
1814 fra
.me
.REG_size
= 2;
1815 fra
.me
.REG
[0] = NIT_NULL
;
1816 fra
.me
.REG
[1] = NIT_NULL
;
1819 /* ./syntax//icode_generation.nit:288 */
1820 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1821 if (UNTAG_Bool(REGB0
)) {
1822 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 288);
1824 CALL_syntax___icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1825 stack_frame_head
= fra
.me
.prev
;
1828 void syntax___icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1829 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IVisitor
].i
;
1830 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1832 if (init_table
[itpos1
]) return;
1833 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1834 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1836 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___init
;
1837 fra
.me
.has_broke
= 0;
1838 fra
.me
.REG_size
= 3;
1839 fra
.me
.REG
[0] = NIT_NULL
;
1840 fra
.me
.REG
[1] = NIT_NULL
;
1841 fra
.me
.REG
[2] = NIT_NULL
;
1845 /* ./syntax//icode_generation.nit:289 */
1846 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1847 stack_frame_head
= fra
.me
.prev
;
1848 init_table
[itpos1
] = 1;
1851 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1852 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1855 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1857 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANode___accept_icode_generation
;
1858 fra
.me
.has_broke
= 0;
1859 fra
.me
.REG_size
= 2;
1860 fra
.me
.REG
[0] = NIT_NULL
;
1861 fra
.me
.REG
[1] = NIT_NULL
;
1864 /* ./syntax//icode_generation.nit:296 */
1865 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1866 stack_frame_head
= fra
.me
.prev
;
1869 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1870 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1875 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1877 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
;
1878 fra
.me
.has_broke
= 0;
1879 fra
.me
.REG_size
= 6;
1880 fra
.me
.REG
[0] = NIT_NULL
;
1881 fra
.me
.REG
[1] = NIT_NULL
;
1882 fra
.me
.REG
[2] = NIT_NULL
;
1883 fra
.me
.REG
[3] = NIT_NULL
;
1884 fra
.me
.REG
[4] = NIT_NULL
;
1885 fra
.me
.REG
[5] = NIT_NULL
;
1888 /* ./syntax//icode_generation.nit:300 */
1889 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1890 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1891 /* ./syntax//icode_generation.nit:302 */
1892 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1893 /* ./syntax//icode_generation.nit:303 */
1894 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1895 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1896 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1897 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1898 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1899 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1900 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1901 /* ./syntax//icode_generation.nit:304 */
1902 CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1903 /* ./syntax//icode_generation.nit:305 */
1904 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1905 /* ./syntax//icode_generation.nit:306 */
1906 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1907 if (UNTAG_Bool(REGB0
)) {
1909 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1910 if (UNTAG_Bool(REGB1
)) {
1911 REGB1
= TAG_Bool(false);
1914 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1918 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1919 if (UNTAG_Bool(REGB0
)) {
1920 /* ./syntax//icode_generation.nit:307 */
1921 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1922 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1923 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
1924 if (UNTAG_Bool(REGB0
)) {
1926 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 307);
1928 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1929 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1930 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1932 stack_frame_head
= fra
.me
.prev
;
1935 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1936 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1939 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1941 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
;
1942 fra
.me
.has_broke
= 0;
1943 fra
.me
.REG_size
= 4;
1944 fra
.me
.REG
[0] = NIT_NULL
;
1945 fra
.me
.REG
[1] = NIT_NULL
;
1946 fra
.me
.REG
[2] = NIT_NULL
;
1947 fra
.me
.REG
[3] = NIT_NULL
;
1950 /* ./syntax//icode_generation.nit:313 */
1951 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1952 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1953 /* ./syntax//icode_generation.nit:315 */
1954 CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1955 /* ./syntax//icode_generation.nit:316 */
1956 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1957 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1958 CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
1959 stack_frame_head
= fra
.me
.prev
;
1962 void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
1963 struct {struct stack_frame_t me
;} fra
;
1965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1966 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1968 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
;
1969 fra
.me
.has_broke
= 0;
1970 fra
.me
.REG_size
= 0;
1971 /* ./syntax//icode_generation.nit:319 */
1972 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 319);
1973 stack_frame_head
= fra
.me
.prev
;
1976 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1977 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1983 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1984 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1986 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
1987 fra
.me
.has_broke
= 0;
1988 fra
.me
.REG_size
= 7;
1989 fra
.me
.REG
[0] = NIT_NULL
;
1990 fra
.me
.REG
[1] = NIT_NULL
;
1991 fra
.me
.REG
[2] = NIT_NULL
;
1992 fra
.me
.REG
[3] = NIT_NULL
;
1993 fra
.me
.REG
[4] = NIT_NULL
;
1994 fra
.me
.REG
[5] = NIT_NULL
;
1995 fra
.me
.REG
[6] = NIT_NULL
;
2001 /* ./syntax//icode_generation.nit:324 */
2002 fra
.me
.REG
[5] = fra
.me
.REG
[0];
2003 /* ./syntax//icode_generation.nit:326 */
2004 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2005 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[6])(fra
.me
.REG
[6], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1
));
2006 /* ./syntax//icode_generation.nit:335 */
2008 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2009 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2010 /* ./../lib/standard//kernel.nit:335 */
2012 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2013 if (UNTAG_Bool(REGB2
)) {
2015 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2017 /* ./../lib/standard//kernel.nit:215 */
2018 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2019 /* ./../lib/standard//kernel.nit:335 */
2020 if (UNTAG_Bool(REGB2
)) {
2021 /* ./syntax//icode_generation.nit:335 */
2023 /* ./syntax//icode_generation.nit:336 */
2024 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2025 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
2026 /* ./syntax//icode_generation.nit:337 */
2027 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2028 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2029 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2030 if (UNTAG_Bool(REGB3
)) {
2031 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 337);
2033 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
2034 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2035 /* ./../lib/standard//kernel.nit:337 */
2037 /* ./../lib/standard//kernel.nit:218 */
2038 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
2039 /* ./../lib/standard//kernel.nit:337 */
2042 /* ./../lib/standard//kernel.nit:335 */
2047 stack_frame_head
= fra
.me
.prev
;
2050 void OC_syntax___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
){
2051 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2055 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2056 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2058 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2059 fra
.me
.has_broke
= 0;
2060 fra
.me
.REG_size
= 4;
2061 fra
.me
.REG
[0] = NIT_NULL
;
2062 fra
.me
.REG
[1] = NIT_NULL
;
2063 fra
.me
.REG
[2] = NIT_NULL
;
2064 fra
.me
.REG
[3] = NIT_NULL
;
2065 fra
.me
.closure_ctx
= closctx_param
;
2066 fra
.me
.closure_funs
= CREG
;
2068 CREG
[0] = clos_fun0
;
2069 /* ./syntax//icode_generation.nit:327 */
2070 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2071 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
2072 /* ./syntax//icode_generation.nit:328 */
2073 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2074 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
2075 /* ./syntax//icode_generation.nit:329 */
2076 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2077 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2078 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
2079 if (UNTAG_Bool(REGB0
)) {
2081 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 329);
2083 /* ./syntax//icode_generation.nit:330 */
2084 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2085 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2086 if (UNTAG_Bool(REGB0
)) {
2087 /* ./syntax//icode_generation.nit:331 */
2088 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2089 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2090 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2092 /* ./syntax//icode_generation.nit:333 */
2093 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2094 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2095 fra
.me
.REG
[0] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2096 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2097 stack_frame_head
= fra
.me
.prev
;
2100 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
2101 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2105 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2106 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2108 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
;
2109 fra
.me
.has_broke
= 0;
2110 fra
.me
.REG_size
= 8;
2111 fra
.me
.REG
[0] = NIT_NULL
;
2112 fra
.me
.REG
[1] = NIT_NULL
;
2113 fra
.me
.REG
[2] = NIT_NULL
;
2114 fra
.me
.REG
[3] = NIT_NULL
;
2115 fra
.me
.REG
[4] = NIT_NULL
;
2116 fra
.me
.REG
[5] = NIT_NULL
;
2117 fra
.me
.REG
[6] = NIT_NULL
;
2118 fra
.me
.REG
[7] = NIT_NULL
;
2121 /* ./syntax//icode_generation.nit:343 */
2122 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2123 /* ./syntax//icode_generation.nit:345 */
2124 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2125 /* ./syntax//icode_generation.nit:346 */
2126 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2127 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2128 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2129 fra
.me
.REG
[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2130 /* ./syntax//icode_generation.nit:347 */
2131 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2132 /* ./syntax//icode_generation.nit:348 */
2133 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2134 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2135 /* ./syntax//icode_generation.nit:349 */
2136 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2137 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2138 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2139 if (UNTAG_Bool(REGB0
)) {
2140 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 349);
2142 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2143 /* ./syntax//icode_generation.nit:350 */
2144 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2145 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2146 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2147 if (UNTAG_Bool(REGB0
)) {
2148 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 350);
2150 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2151 /* ./syntax//icode_generation.nit:351 */
2152 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2153 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2154 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2155 if (UNTAG_Bool(REGB0
)) {
2156 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 351);
2158 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2159 /* ./syntax//icode_generation.nit:352 */
2160 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2161 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2162 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2163 if (UNTAG_Bool(REGB0
)) {
2164 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 352);
2166 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2167 /* ./syntax//icode_generation.nit:353 */
2168 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2169 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2170 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2171 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2172 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2173 CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[7], NIT_NULL
);
2174 /* ./syntax//icode_generation.nit:355 */
2175 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2176 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2177 if (UNTAG_Bool(REGB0
)) {
2179 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2180 if (UNTAG_Bool(REGB1
)) {
2181 REGB1
= TAG_Bool(false);
2184 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2189 if (UNTAG_Bool(REGB0
)) {
2190 /* ./syntax//icode_generation.nit:356 */
2191 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2192 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2193 /* ./syntax//icode_generation.nit:357 */
2194 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2195 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2196 REGB0
= CALL_syntax___syntax_base___AClosureDecl___position(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2197 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2198 if (UNTAG_Bool(REGB1
)) {
2199 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2201 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
2202 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2203 if (UNTAG_Bool(REGB0
)) {
2204 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2206 CALL_icode___icode_base___IClosureDecl___default__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2207 /* ./syntax//icode_generation.nit:360 */
2208 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2209 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2210 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2211 if (UNTAG_Bool(REGB0
)) {
2212 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2213 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2214 if (UNTAG_Bool(REGB0
)) {
2216 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2217 if (UNTAG_Bool(REGB1
)) {
2218 REGB1
= TAG_Bool(false);
2221 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2226 REGB1
= TAG_Bool(false);
2229 if (UNTAG_Bool(REGB0
)) {
2230 /* ./syntax//icode_generation.nit:361 */
2231 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2232 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2233 if (UNTAG_Bool(REGB0
)) {
2235 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 361);
2237 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2240 /* ./syntax//icode_generation.nit:364 */
2241 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2242 stack_frame_head
= fra
.me
.prev
;
2245 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2246 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2252 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2254 fra
.me
.meth
= LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
;
2255 fra
.me
.has_broke
= 0;
2256 fra
.me
.REG_size
= 6;
2257 fra
.me
.REG
[0] = NIT_NULL
;
2258 fra
.me
.REG
[1] = NIT_NULL
;
2259 fra
.me
.REG
[2] = NIT_NULL
;
2260 fra
.me
.REG
[3] = NIT_NULL
;
2261 fra
.me
.REG
[4] = NIT_NULL
;
2262 fra
.me
.REG
[5] = NIT_NULL
;
2266 /* ./syntax//icode_generation.nit:371 */
2267 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2268 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2269 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2270 /* ./syntax//icode_generation.nit:372 */
2271 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2272 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2273 /* ./syntax//icode_generation.nit:373 */
2275 /* ./../lib/standard//collection//array.nit:241 */
2276 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2277 /* ./../lib/standard//collection//array.nit:243 */
2279 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2280 if (UNTAG_Bool(REGB2
)) {
2282 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2284 /* ./../lib/standard//kernel.nit:216 */
2285 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2286 /* ./../lib/standard//collection//array.nit:243 */
2287 if (UNTAG_Bool(REGB1
)) {
2288 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2289 if (UNTAG_Bool(REGB1
)) {
2291 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
2293 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2294 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2295 if (UNTAG_Bool(REGB2
)) {
2297 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2299 /* ./../lib/standard//kernel.nit:215 */
2300 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2302 /* ./../lib/standard//collection//array.nit:243 */
2303 REGB2
= TAG_Bool(false);
2306 if (UNTAG_Bool(REGB1
)) {
2308 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
2310 /* ./../lib/standard//collection//array.nit:244 */
2311 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
2312 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2313 if (UNTAG_Bool(REGB1
)) {
2314 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
2316 /* ./../lib/standard//collection//array.nit:652 */
2317 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2318 /* ./../lib/standard//collection//array.nit:244 */
2321 /* ./syntax//icode_generation.nit:373 */
2322 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2323 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2324 /* ./syntax//icode_generation.nit:374 */
2325 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2326 /* ./syntax//icode_generation.nit:375 */
2327 CALL_standard___collection___abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2328 /* ./syntax//icode_generation.nit:377 */
2329 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2330 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2331 /* ./syntax//icode_generation.nit:378 */
2332 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2333 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2334 if (UNTAG_Bool(REGB0
)) {
2335 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 378);
2337 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2338 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
2339 /* ./syntax//icode_generation.nit:379 */
2340 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2341 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2342 if (UNTAG_Bool(REGB0
)) {
2344 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2345 if (UNTAG_Bool(REGB1
)) {
2346 REGB1
= TAG_Bool(false);
2349 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2353 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2354 if (UNTAG_Bool(REGB0
)) {
2355 /* ./syntax//icode_generation.nit:380 */
2356 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2357 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2358 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2359 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2360 if (UNTAG_Bool(REGB0
)) {
2361 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 380);
2363 CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[5]);
2365 /* ./syntax//icode_generation.nit:383 */
2366 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2367 if (UNTAG_Bool(REGB0
)) {
2368 /* ./syntax//icode_generation.nit:384 */
2369 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2371 /* ./syntax//icode_generation.nit:387 */
2372 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2373 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2374 if (UNTAG_Bool(REGB0
)) {
2376 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2377 if (UNTAG_Bool(REGB1
)) {
2378 REGB1
= TAG_Bool(false);
2381 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2386 if (UNTAG_Bool(REGB0
)) {
2387 /* ./syntax//icode_generation.nit:388 */
2388 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2389 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2391 /* ./syntax//icode_generation.nit:390 */
2392 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2393 stack_frame_head
= fra
.me
.prev
;
2396 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2397 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2400 static val_t once_value_1
; /* Once value */
2401 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2402 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2404 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2405 fra
.me
.has_broke
= 0;
2406 fra
.me
.REG_size
= 3;
2407 fra
.me
.REG
[0] = NIT_NULL
;
2408 fra
.me
.REG
[1] = NIT_NULL
;
2409 fra
.me
.REG
[2] = NIT_NULL
;
2413 /* ./syntax//icode_generation.nit:397 */
2415 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2416 if (!once_value_1
) {
2417 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2418 REGB0
= TAG_Int(22);
2419 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2420 once_value_1
= fra
.me
.REG
[0];
2421 register_static_object(&once_value_1
);
2422 } else fra
.me
.REG
[0] = once_value_1
;
2423 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2425 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2426 stack_frame_head
= fra
.me
.prev
;
2429 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2430 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2434 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2435 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2437 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2438 fra
.me
.has_broke
= 0;
2439 fra
.me
.REG_size
= 5;
2440 fra
.me
.REG
[0] = NIT_NULL
;
2441 fra
.me
.REG
[1] = NIT_NULL
;
2442 fra
.me
.REG
[2] = NIT_NULL
;
2443 fra
.me
.REG
[3] = NIT_NULL
;
2444 fra
.me
.REG
[4] = NIT_NULL
;
2448 /* ./syntax//icode_generation.nit:404 */
2449 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2450 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2451 /* ./syntax//icode_generation.nit:405 */
2452 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2453 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2454 if (UNTAG_Bool(REGB0
)) {
2455 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 405);
2457 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2458 /* ./syntax//icode_generation.nit:406 */
2459 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2460 if (UNTAG_Bool(REGB0
)) {
2462 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2463 if (UNTAG_Bool(REGB1
)) {
2464 REGB1
= TAG_Bool(false);
2467 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2471 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2472 if (UNTAG_Bool(REGB0
)) {
2473 /* ./syntax//icode_generation.nit:407 */
2474 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2475 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2476 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2478 /* ./syntax//icode_generation.nit:409 */
2479 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2480 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2482 stack_frame_head
= fra
.me
.prev
;
2485 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2486 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2490 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2491 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2493 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2494 fra
.me
.has_broke
= 0;
2495 fra
.me
.REG_size
= 5;
2496 fra
.me
.REG
[0] = NIT_NULL
;
2497 fra
.me
.REG
[1] = NIT_NULL
;
2498 fra
.me
.REG
[2] = NIT_NULL
;
2499 fra
.me
.REG
[3] = NIT_NULL
;
2500 fra
.me
.REG
[4] = NIT_NULL
;
2504 /* ./syntax//icode_generation.nit:417 */
2505 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2506 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2507 /* ./syntax//icode_generation.nit:418 */
2508 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2509 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2510 if (UNTAG_Bool(REGB0
)) {
2511 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 418);
2513 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2514 /* ./syntax//icode_generation.nit:419 */
2515 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2516 if (UNTAG_Bool(REGB0
)) {
2518 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2519 if (UNTAG_Bool(REGB1
)) {
2520 REGB1
= TAG_Bool(false);
2523 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2527 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2528 if (UNTAG_Bool(REGB0
)) {
2529 /* ./syntax//icode_generation.nit:420 */
2530 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2531 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2532 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2534 /* ./syntax//icode_generation.nit:422 */
2535 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2536 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2538 stack_frame_head
= fra
.me
.prev
;
2541 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2542 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2544 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2545 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2547 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2548 fra
.me
.has_broke
= 0;
2549 fra
.me
.REG_size
= 2;
2550 fra
.me
.REG
[0] = NIT_NULL
;
2551 fra
.me
.REG
[1] = NIT_NULL
;
2554 stack_frame_head
= fra
.me
.prev
;
2557 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2558 struct {struct stack_frame_t me
;} fra
;
2560 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2561 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2563 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2564 fra
.me
.has_broke
= 0;
2565 fra
.me
.REG_size
= 0;
2566 /* ./syntax//icode_generation.nit:432 */
2567 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 432);
2568 stack_frame_head
= fra
.me
.prev
;
2571 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2572 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2577 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2579 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2580 fra
.me
.has_broke
= 0;
2581 fra
.me
.REG_size
= 3;
2582 fra
.me
.REG
[0] = NIT_NULL
;
2583 fra
.me
.REG
[1] = NIT_NULL
;
2584 fra
.me
.REG
[2] = NIT_NULL
;
2587 /* ./syntax//icode_generation.nit:440 */
2588 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2589 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2590 /* ./syntax//icode_generation.nit:441 */
2591 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2592 /* ./syntax//icode_generation.nit:442 */
2593 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2594 if (UNTAG_Bool(REGB0
)) {
2596 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2597 if (UNTAG_Bool(REGB1
)) {
2598 REGB1
= TAG_Bool(false);
2601 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2605 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2606 if (UNTAG_Bool(REGB0
)) {
2607 /* ./syntax//icode_generation.nit:443 */
2608 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2609 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2611 /* ./syntax//icode_generation.nit:445 */
2612 fra
.me
.REG
[0] = NIT_NULL
;
2615 stack_frame_head
= fra
.me
.prev
;
2616 return fra
.me
.REG
[0];
2618 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2619 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2621 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2622 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2624 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2625 fra
.me
.has_broke
= 0;
2626 fra
.me
.REG_size
= 2;
2627 fra
.me
.REG
[0] = NIT_NULL
;
2628 fra
.me
.REG
[1] = NIT_NULL
;
2631 /* ./syntax//icode_generation.nit:452 */
2632 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2633 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ABlockExpr___generate_icode_1
));
2634 /* ./syntax//icode_generation.nit:453 */
2635 fra
.me
.REG
[1] = NIT_NULL
;
2638 stack_frame_head
= fra
.me
.prev
;
2639 return fra
.me
.REG
[1];
2641 void OC_syntax___icode_generation___ABlockExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2642 struct {struct stack_frame_t me
;} fra
;
2645 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2646 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2648 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2649 fra
.me
.has_broke
= 0;
2650 fra
.me
.REG_size
= 1;
2651 fra
.me
.REG
[0] = NIT_NULL
;
2652 fra
.me
.closure_ctx
= closctx_param
;
2653 fra
.me
.closure_funs
= CREG
;
2655 CREG
[0] = clos_fun0
;
2656 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2657 stack_frame_head
= fra
.me
.prev
;
2660 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2661 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2664 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2665 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2667 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2668 fra
.me
.has_broke
= 0;
2669 fra
.me
.REG_size
= 5;
2670 fra
.me
.REG
[0] = NIT_NULL
;
2671 fra
.me
.REG
[1] = NIT_NULL
;
2672 fra
.me
.REG
[2] = NIT_NULL
;
2673 fra
.me
.REG
[3] = NIT_NULL
;
2674 fra
.me
.REG
[4] = NIT_NULL
;
2677 /* ./syntax//icode_generation.nit:460 */
2678 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2679 /* ./syntax//icode_generation.nit:461 */
2680 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2681 /* ./syntax//icode_generation.nit:462 */
2682 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2683 /* ./syntax//icode_generation.nit:463 */
2684 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2685 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2686 if (UNTAG_Bool(REGB0
)) {
2687 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 463);
2689 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2690 /* ./syntax//icode_generation.nit:464 */
2691 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2692 /* ./syntax//icode_generation.nit:466 */
2693 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2694 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2695 /* ./syntax//icode_generation.nit:468 */
2696 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2697 /* ./syntax//icode_generation.nit:469 */
2698 fra
.me
.REG
[2] = NIT_NULL
;
2701 stack_frame_head
= fra
.me
.prev
;
2702 return fra
.me
.REG
[2];
2704 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2705 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2709 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2710 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2712 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2713 fra
.me
.has_broke
= 0;
2714 fra
.me
.REG_size
= 4;
2715 fra
.me
.REG
[0] = NIT_NULL
;
2716 fra
.me
.REG
[1] = NIT_NULL
;
2717 fra
.me
.REG
[2] = NIT_NULL
;
2718 fra
.me
.REG
[3] = NIT_NULL
;
2721 /* ./syntax//icode_generation.nit:474 */
2722 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2723 /* ./syntax//icode_generation.nit:476 */
2724 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2725 /* ./syntax//icode_generation.nit:477 */
2726 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2727 if (UNTAG_Bool(REGB0
)) {
2729 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2730 if (UNTAG_Bool(REGB1
)) {
2731 REGB1
= TAG_Bool(false);
2734 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2738 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2739 if (UNTAG_Bool(REGB0
)) {
2740 /* ./syntax//icode_generation.nit:478 */
2741 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2742 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2743 if (UNTAG_Bool(REGB0
)) {
2745 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 478);
2747 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2748 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2750 /* ./syntax//icode_generation.nit:480 */
2751 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2752 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2753 if (UNTAG_Bool(REGB0
)) {
2755 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 480);
2757 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2758 /* ./syntax//icode_generation.nit:481 */
2759 fra
.me
.REG
[2] = NIT_NULL
;
2762 stack_frame_head
= fra
.me
.prev
;
2763 return fra
.me
.REG
[2];
2765 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
2766 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2770 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2771 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2773 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
2774 fra
.me
.has_broke
= 0;
2775 fra
.me
.REG_size
= 5;
2776 fra
.me
.REG
[0] = NIT_NULL
;
2777 fra
.me
.REG
[1] = NIT_NULL
;
2778 fra
.me
.REG
[2] = NIT_NULL
;
2779 fra
.me
.REG
[3] = NIT_NULL
;
2780 fra
.me
.REG
[4] = NIT_NULL
;
2783 /* ./syntax//icode_generation.nit:486 */
2784 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2785 /* ./syntax//icode_generation.nit:488 */
2786 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2787 /* ./syntax//icode_generation.nit:489 */
2788 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2789 if (UNTAG_Bool(REGB0
)) {
2791 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2792 if (UNTAG_Bool(REGB1
)) {
2793 REGB1
= TAG_Bool(false);
2796 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2800 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2801 if (UNTAG_Bool(REGB0
)) {
2802 /* ./syntax//icode_generation.nit:490 */
2803 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2804 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2805 if (UNTAG_Bool(REGB0
)) {
2806 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 490);
2808 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2809 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
2810 if (UNTAG_Bool(REGB0
)) {
2812 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 490);
2814 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2815 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2817 /* ./syntax//icode_generation.nit:492 */
2818 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2819 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2820 if (UNTAG_Bool(REGB0
)) {
2821 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 492);
2823 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2824 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2825 if (UNTAG_Bool(REGB0
)) {
2827 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 492);
2829 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2830 /* ./syntax//icode_generation.nit:493 */
2831 fra
.me
.REG
[2] = NIT_NULL
;
2834 stack_frame_head
= fra
.me
.prev
;
2835 return fra
.me
.REG
[2];
2837 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
2838 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2842 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2843 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2845 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
2846 fra
.me
.has_broke
= 0;
2847 fra
.me
.REG_size
= 5;
2848 fra
.me
.REG
[0] = NIT_NULL
;
2849 fra
.me
.REG
[1] = NIT_NULL
;
2850 fra
.me
.REG
[2] = NIT_NULL
;
2851 fra
.me
.REG
[3] = NIT_NULL
;
2852 fra
.me
.REG
[4] = NIT_NULL
;
2855 /* ./syntax//icode_generation.nit:498 */
2856 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2857 /* ./syntax//icode_generation.nit:500 */
2858 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2859 /* ./syntax//icode_generation.nit:501 */
2860 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2861 if (UNTAG_Bool(REGB0
)) {
2863 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2864 if (UNTAG_Bool(REGB1
)) {
2865 REGB1
= TAG_Bool(false);
2868 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2872 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2873 if (UNTAG_Bool(REGB0
)) {
2874 /* ./syntax//icode_generation.nit:502 */
2875 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2876 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2877 if (UNTAG_Bool(REGB0
)) {
2878 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 502);
2880 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2881 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
2882 if (UNTAG_Bool(REGB0
)) {
2884 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 502);
2886 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2887 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2889 /* ./syntax//icode_generation.nit:504 */
2890 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2891 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2892 if (UNTAG_Bool(REGB0
)) {
2893 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 504);
2895 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2896 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2897 if (UNTAG_Bool(REGB0
)) {
2899 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 504);
2901 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2902 /* ./syntax//icode_generation.nit:505 */
2903 fra
.me
.REG
[2] = NIT_NULL
;
2906 stack_frame_head
= fra
.me
.prev
;
2907 return fra
.me
.REG
[2];
2909 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
2910 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2913 static val_t once_value_1
; /* Once value */
2914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2915 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2917 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
2918 fra
.me
.has_broke
= 0;
2919 fra
.me
.REG_size
= 3;
2920 fra
.me
.REG
[0] = NIT_NULL
;
2921 fra
.me
.REG
[1] = NIT_NULL
;
2922 fra
.me
.REG
[2] = NIT_NULL
;
2925 /* ./syntax//icode_generation.nit:512 */
2927 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2928 if (!once_value_1
) {
2929 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
2931 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2932 once_value_1
= fra
.me
.REG
[2];
2933 register_static_object(&once_value_1
);
2934 } else fra
.me
.REG
[2] = once_value_1
;
2935 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2936 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2937 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2938 /* ./syntax//icode_generation.nit:513 */
2939 fra
.me
.REG
[0] = NIT_NULL
;
2942 stack_frame_head
= fra
.me
.prev
;
2943 return fra
.me
.REG
[0];
2945 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
2946 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2950 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2951 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2953 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
2954 fra
.me
.has_broke
= 0;
2955 fra
.me
.REG_size
= 5;
2956 fra
.me
.REG
[0] = NIT_NULL
;
2957 fra
.me
.REG
[1] = NIT_NULL
;
2958 fra
.me
.REG
[2] = NIT_NULL
;
2959 fra
.me
.REG
[3] = NIT_NULL
;
2960 fra
.me
.REG
[4] = NIT_NULL
;
2963 /* ./syntax//icode_generation.nit:520 */
2964 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2965 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2966 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
2967 /* ./syntax//icode_generation.nit:521 */
2968 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2969 /* ./syntax//icode_generation.nit:522 */
2970 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2971 /* ./syntax//icode_generation.nit:524 */
2972 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2973 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2974 if (UNTAG_Bool(REGB0
)) {
2976 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2977 if (UNTAG_Bool(REGB1
)) {
2978 REGB1
= TAG_Bool(false);
2981 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2985 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2986 if (UNTAG_Bool(REGB0
)) {
2987 /* ./syntax//icode_generation.nit:525 */
2988 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2989 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2990 /* ./syntax//icode_generation.nit:526 */
2991 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2992 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2994 /* ./syntax//icode_generation.nit:529 */
2995 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2996 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2997 if (UNTAG_Bool(REGB0
)) {
2999 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3000 if (UNTAG_Bool(REGB1
)) {
3001 REGB1
= TAG_Bool(false);
3004 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3008 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3009 if (UNTAG_Bool(REGB0
)) {
3010 /* ./syntax//icode_generation.nit:530 */
3011 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3012 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3013 /* ./syntax//icode_generation.nit:531 */
3014 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3015 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3017 /* ./syntax//icode_generation.nit:534 */
3018 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3019 /* ./syntax//icode_generation.nit:535 */
3020 fra
.me
.REG
[3] = NIT_NULL
;
3023 stack_frame_head
= fra
.me
.prev
;
3024 return fra
.me
.REG
[3];
3026 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3027 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3031 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3032 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3034 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3035 fra
.me
.has_broke
= 0;
3036 fra
.me
.REG_size
= 7;
3037 fra
.me
.REG
[0] = NIT_NULL
;
3038 fra
.me
.REG
[1] = NIT_NULL
;
3039 fra
.me
.REG
[2] = NIT_NULL
;
3040 fra
.me
.REG
[3] = NIT_NULL
;
3041 fra
.me
.REG
[4] = NIT_NULL
;
3042 fra
.me
.REG
[5] = NIT_NULL
;
3043 fra
.me
.REG
[6] = NIT_NULL
;
3046 /* ./syntax//icode_generation.nit:542 */
3047 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3048 /* ./syntax//icode_generation.nit:543 */
3049 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3050 /* ./syntax//icode_generation.nit:544 */
3051 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3052 /* ./syntax//icode_generation.nit:545 */
3053 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3054 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3055 if (UNTAG_Bool(REGB0
)) {
3056 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 545);
3058 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3059 /* ./syntax//icode_generation.nit:546 */
3060 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3061 /* ./syntax//icode_generation.nit:549 */
3062 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3063 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3064 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3065 /* ./syntax//icode_generation.nit:550 */
3066 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3067 /* ./syntax//icode_generation.nit:553 */
3068 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3069 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3070 if (UNTAG_Bool(REGB0
)) {
3072 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3073 if (UNTAG_Bool(REGB1
)) {
3074 REGB1
= TAG_Bool(false);
3077 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3081 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3082 if (UNTAG_Bool(REGB0
)) {
3083 /* ./syntax//icode_generation.nit:554 */
3084 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3085 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3086 /* ./syntax//icode_generation.nit:555 */
3087 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3088 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3089 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3090 if (UNTAG_Bool(REGB0
)) {
3091 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 555);
3093 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3094 /* ./syntax//icode_generation.nit:556 */
3095 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3096 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3098 /* ./syntax//icode_generation.nit:560 */
3099 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3100 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3101 /* ./syntax//icode_generation.nit:561 */
3102 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3103 /* ./syntax//icode_generation.nit:563 */
3104 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3105 /* ./syntax//icode_generation.nit:564 */
3106 fra
.me
.REG
[2] = NIT_NULL
;
3109 stack_frame_head
= fra
.me
.prev
;
3110 return fra
.me
.REG
[2];
3112 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3113 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3117 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3118 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3120 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3121 fra
.me
.has_broke
= 0;
3122 fra
.me
.REG_size
= 5;
3123 fra
.me
.REG
[0] = NIT_NULL
;
3124 fra
.me
.REG
[1] = NIT_NULL
;
3125 fra
.me
.REG
[2] = NIT_NULL
;
3126 fra
.me
.REG
[3] = NIT_NULL
;
3127 fra
.me
.REG
[4] = NIT_NULL
;
3130 /* ./syntax//icode_generation.nit:571 */
3131 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3132 /* ./syntax//icode_generation.nit:572 */
3133 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3134 /* ./syntax//icode_generation.nit:573 */
3135 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3136 /* ./syntax//icode_generation.nit:574 */
3137 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3138 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3139 if (UNTAG_Bool(REGB0
)) {
3140 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 574);
3142 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3143 /* ./syntax//icode_generation.nit:575 */
3144 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3145 /* ./syntax//icode_generation.nit:578 */
3146 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3147 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3148 if (UNTAG_Bool(REGB0
)) {
3150 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3151 if (UNTAG_Bool(REGB1
)) {
3152 REGB1
= TAG_Bool(false);
3155 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3159 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3160 if (UNTAG_Bool(REGB0
)) {
3161 /* ./syntax//icode_generation.nit:579 */
3162 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3163 /* ./syntax//icode_generation.nit:580 */
3164 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3165 /* ./syntax//icode_generation.nit:581 */
3166 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3167 /* ./syntax//icode_generation.nit:582 */
3168 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3169 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3170 if (UNTAG_Bool(REGB0
)) {
3171 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 582);
3173 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3174 /* ./syntax//icode_generation.nit:583 */
3175 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3176 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3178 /* ./syntax//icode_generation.nit:586 */
3179 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3180 /* ./syntax//icode_generation.nit:587 */
3181 fra
.me
.REG
[2] = NIT_NULL
;
3184 stack_frame_head
= fra
.me
.prev
;
3185 return fra
.me
.REG
[2];
3187 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3188 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3196 static val_t once_value_1
; /* Once value */
3197 static val_t once_value_2
; /* Once value */
3198 static val_t once_value_3
; /* Once value */
3199 static val_t once_value_4
; /* Once value */
3200 static val_t once_value_5
; /* Once value */
3201 static val_t once_value_6
; /* Once value */
3202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3203 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3205 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3206 fra
.me
.has_broke
= 0;
3207 fra
.me
.REG_size
= 9;
3208 fra
.me
.REG
[0] = NIT_NULL
;
3209 fra
.me
.REG
[1] = NIT_NULL
;
3210 fra
.me
.REG
[2] = NIT_NULL
;
3211 fra
.me
.REG
[3] = NIT_NULL
;
3212 fra
.me
.REG
[4] = NIT_NULL
;
3213 fra
.me
.REG
[5] = NIT_NULL
;
3214 fra
.me
.REG
[6] = NIT_NULL
;
3215 fra
.me
.REG
[7] = NIT_NULL
;
3216 fra
.me
.REG
[8] = NIT_NULL
;
3219 /* ./syntax//icode_generation.nit:594 */
3220 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3221 /* ./syntax//icode_generation.nit:595 */
3222 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3223 /* ./syntax//icode_generation.nit:596 */
3224 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3225 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3226 /* ./syntax//icode_generation.nit:600 */
3227 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3228 if (UNTAG_Bool(REGB0
)) {
3229 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3230 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3231 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3232 if (UNTAG_Bool(REGB0
)) {
3234 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3238 REGB1
= TAG_Bool(false);
3241 if (UNTAG_Bool(REGB0
)) {
3242 /* ./syntax//icode_generation.nit:605 */
3244 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3245 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3246 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3248 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3249 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3251 /* ./syntax//icode_generation.nit:606 */
3252 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3253 if (UNTAG_Bool(REGB0
)) {
3254 /* ./syntax//icode_generation.nit:607 */
3255 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3256 if (!once_value_1
) {
3257 if (!once_value_2
) {
3258 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3259 REGB0
= TAG_Int(12);
3260 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3261 once_value_2
= fra
.me
.REG
[7];
3262 register_static_object(&once_value_2
);
3263 } else fra
.me
.REG
[7] = once_value_2
;
3264 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3265 fra
.me
.REG
[7] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3266 once_value_1
= fra
.me
.REG
[7];
3267 register_static_object(&once_value_1
);
3268 } else fra
.me
.REG
[7] = once_value_1
;
3269 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3270 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4], fra
.me
.REG
[7]);
3272 /* ./syntax//icode_generation.nit:609 */
3273 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3274 if (UNTAG_Bool(REGB0
)) {
3276 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 609);
3278 /* ./syntax//icode_generation.nit:610 */
3279 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3280 if (!once_value_3
) {
3281 if (!once_value_4
) {
3282 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3283 REGB0
= TAG_Int(16);
3284 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3285 once_value_4
= fra
.me
.REG
[6];
3286 register_static_object(&once_value_4
);
3287 } else fra
.me
.REG
[6] = once_value_4
;
3288 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3289 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3290 once_value_3
= fra
.me
.REG
[6];
3291 register_static_object(&once_value_3
);
3292 } else fra
.me
.REG
[6] = once_value_3
;
3293 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3294 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3295 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3298 /* ./syntax//icode_generation.nit:616 */
3299 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3300 if (!once_value_5
) {
3301 if (!once_value_6
) {
3302 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3304 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3305 once_value_6
= fra
.me
.REG
[4];
3306 register_static_object(&once_value_6
);
3307 } else fra
.me
.REG
[4] = once_value_6
;
3308 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3309 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3310 once_value_5
= fra
.me
.REG
[4];
3311 register_static_object(&once_value_5
);
3312 } else fra
.me
.REG
[4] = once_value_5
;
3313 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3314 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3315 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3316 /* ./syntax//icode_generation.nit:617 */
3318 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3319 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3320 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3322 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3324 /* ./syntax//icode_generation.nit:621 */
3325 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3326 if (UNTAG_Bool(REGB0
)) {
3327 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 621);
3329 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3330 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3331 if (UNTAG_Bool(REGB0
)) {
3332 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 621);
3334 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3335 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3336 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3337 if (UNTAG_Bool(REGB0
)) {
3338 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 621);
3340 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3341 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3342 /* ./syntax//icode_generation.nit:622 */
3343 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3344 /* ./syntax//icode_generation.nit:624 */
3345 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3346 /* ./syntax//icode_generation.nit:625 */
3347 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3348 /* ./syntax//icode_generation.nit:626 */
3349 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3350 /* ./syntax//icode_generation.nit:627 */
3351 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3352 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3353 if (UNTAG_Bool(REGB0
)) {
3354 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 627);
3356 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3357 /* ./syntax//icode_generation.nit:628 */
3358 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3359 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3360 if (UNTAG_Bool(REGB0
)) {
3361 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 628);
3363 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3364 /* ./syntax//icode_generation.nit:630 */
3365 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3366 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3367 /* ./syntax//icode_generation.nit:631 */
3368 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3369 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3370 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3371 if (UNTAG_Bool(REGB0
)) {
3372 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 631);
3374 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3375 /* ./syntax//icode_generation.nit:632 */
3376 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3377 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3378 if (UNTAG_Bool(REGB0
)) {
3379 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 632);
3381 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3382 /* ./syntax//icode_generation.nit:633 */
3384 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3385 /* ./../lib/standard//collection//array.nit:23 */
3386 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3387 if (UNTAG_Bool(REGB1
)) {
3389 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
3391 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3392 /* ./../lib/standard//kernel.nit:335 */
3394 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3395 if (UNTAG_Bool(REGB2
)) {
3397 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3399 /* ./../lib/standard//kernel.nit:215 */
3400 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3401 /* ./../lib/standard//kernel.nit:335 */
3402 if (UNTAG_Bool(REGB2
)) {
3403 /* ./syntax//icode_generation.nit:633 */
3405 /* ./syntax//icode_generation.nit:634 */
3406 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3407 /* ./../lib/standard//collection//array.nit:241 */
3409 /* ./../lib/standard//collection//array.nit:243 */
3411 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3412 if (UNTAG_Bool(REGB5
)) {
3414 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3416 /* ./../lib/standard//kernel.nit:216 */
3417 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3418 /* ./../lib/standard//collection//array.nit:243 */
3419 if (UNTAG_Bool(REGB4
)) {
3420 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3421 if (UNTAG_Bool(REGB4
)) {
3423 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
3425 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3426 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3427 if (UNTAG_Bool(REGB5
)) {
3429 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3431 /* ./../lib/standard//kernel.nit:215 */
3432 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3434 /* ./../lib/standard//collection//array.nit:243 */
3435 REGB5
= TAG_Bool(false);
3438 if (UNTAG_Bool(REGB4
)) {
3440 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
3442 /* ./../lib/standard//collection//array.nit:244 */
3443 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3444 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3445 if (UNTAG_Bool(REGB4
)) {
3446 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
3448 /* ./../lib/standard//collection//array.nit:652 */
3449 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3450 /* ./../lib/standard//collection//array.nit:244 */
3453 /* ./syntax//icode_generation.nit:634 */
3454 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3455 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3456 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3457 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3458 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3459 /* ./../lib/standard//kernel.nit:337 */
3461 /* ./../lib/standard//kernel.nit:218 */
3462 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3463 /* ./../lib/standard//kernel.nit:337 */
3466 /* ./../lib/standard//kernel.nit:335 */
3471 /* ./syntax//icode_generation.nit:636 */
3472 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3473 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3474 /* ./syntax//icode_generation.nit:639 */
3475 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3476 /* ./syntax//icode_generation.nit:640 */
3478 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3480 CALL_icode___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]);
3481 /* ./syntax//icode_generation.nit:642 */
3482 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3483 /* ./syntax//icode_generation.nit:643 */
3484 fra
.me
.REG
[3] = NIT_NULL
;
3487 stack_frame_head
= fra
.me
.prev
;
3488 return fra
.me
.REG
[3];
3490 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3491 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3495 static val_t once_value_1
; /* Once value */
3496 static val_t once_value_2
; /* Once value */
3497 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3498 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3500 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3501 fra
.me
.has_broke
= 0;
3502 fra
.me
.REG_size
= 5;
3503 fra
.me
.REG
[0] = NIT_NULL
;
3504 fra
.me
.REG
[1] = NIT_NULL
;
3505 fra
.me
.REG
[2] = NIT_NULL
;
3506 fra
.me
.REG
[3] = NIT_NULL
;
3507 fra
.me
.REG
[4] = NIT_NULL
;
3510 /* ./syntax//icode_generation.nit:650 */
3511 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3512 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3513 /* ./syntax//icode_generation.nit:651 */
3514 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3515 /* ./syntax//icode_generation.nit:652 */
3516 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3517 /* ./syntax//icode_generation.nit:653 */
3518 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3519 /* ./syntax//icode_generation.nit:654 */
3520 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3521 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3522 /* ./syntax//icode_generation.nit:655 */
3523 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3524 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3525 /* ./syntax//icode_generation.nit:656 */
3526 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3527 /* ./syntax//icode_generation.nit:657 */
3528 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3529 if (UNTAG_Bool(REGB0
)) {
3531 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3532 if (UNTAG_Bool(REGB1
)) {
3533 REGB1
= TAG_Bool(false);
3536 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3540 if (UNTAG_Bool(REGB0
)) {
3541 /* ./syntax//icode_generation.nit:658 */
3543 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3544 if (!once_value_1
) {
3545 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3546 REGB0
= TAG_Int(13);
3547 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3548 once_value_1
= fra
.me
.REG
[4];
3549 register_static_object(&once_value_1
);
3550 } else fra
.me
.REG
[4] = once_value_1
;
3551 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3553 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3555 /* ./syntax//icode_generation.nit:660 */
3557 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3558 if (!once_value_2
) {
3559 fra
.me
.REG
[4] = BOX_NativeString("Assert %s failed");
3560 REGB0
= TAG_Int(17);
3561 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3562 once_value_2
= fra
.me
.REG
[4];
3563 register_static_object(&once_value_2
);
3564 } else fra
.me
.REG
[4] = once_value_2
;
3565 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3567 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3568 if (UNTAG_Bool(REGB0
)) {
3569 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 660);
3571 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3573 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3575 /* ./syntax//icode_generation.nit:662 */
3576 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3577 /* ./syntax//icode_generation.nit:663 */
3578 fra
.me
.REG
[3] = NIT_NULL
;
3581 stack_frame_head
= fra
.me
.prev
;
3582 return fra
.me
.REG
[3];
3584 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3585 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3587 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3588 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3590 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3591 fra
.me
.has_broke
= 0;
3592 fra
.me
.REG_size
= 2;
3593 fra
.me
.REG
[0] = NIT_NULL
;
3594 fra
.me
.REG
[1] = NIT_NULL
;
3597 /* ./syntax//icode_generation.nit:670 */
3598 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3599 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3602 stack_frame_head
= fra
.me
.prev
;
3603 return fra
.me
.REG
[0];
3605 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3606 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3609 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3611 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3612 fra
.me
.has_broke
= 0;
3613 fra
.me
.REG_size
= 3;
3614 fra
.me
.REG
[0] = NIT_NULL
;
3615 fra
.me
.REG
[1] = NIT_NULL
;
3616 fra
.me
.REG
[2] = NIT_NULL
;
3619 /* ./syntax//icode_generation.nit:677 */
3620 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3621 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3622 /* ./syntax//icode_generation.nit:678 */
3623 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3624 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3625 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3626 /* ./syntax//icode_generation.nit:679 */
3627 fra
.me
.REG
[2] = NIT_NULL
;
3630 stack_frame_head
= fra
.me
.prev
;
3631 return fra
.me
.REG
[2];
3633 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3634 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3638 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3640 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3641 fra
.me
.has_broke
= 0;
3642 fra
.me
.REG_size
= 7;
3643 fra
.me
.REG
[0] = NIT_NULL
;
3644 fra
.me
.REG
[1] = NIT_NULL
;
3645 fra
.me
.REG
[2] = NIT_NULL
;
3646 fra
.me
.REG
[3] = NIT_NULL
;
3647 fra
.me
.REG
[4] = NIT_NULL
;
3648 fra
.me
.REG
[5] = NIT_NULL
;
3649 fra
.me
.REG
[6] = NIT_NULL
;
3652 /* ./syntax//icode_generation.nit:684 */
3653 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3654 /* ./syntax//icode_generation.nit:686 */
3655 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3656 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3657 /* ./syntax//icode_generation.nit:687 */
3658 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3659 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3660 /* ./syntax//icode_generation.nit:688 */
3661 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3663 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3666 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3667 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3668 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3669 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3670 if (UNTAG_Bool(REGB0
)) {
3671 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 688);
3673 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3674 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
3675 if (UNTAG_Bool(REGB0
)) {
3677 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 688);
3679 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[2]);
3680 /* ./syntax//icode_generation.nit:689 */
3681 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3682 /* ./syntax//icode_generation.nit:690 */
3683 fra
.me
.REG
[2] = NIT_NULL
;
3686 stack_frame_head
= fra
.me
.prev
;
3687 return fra
.me
.REG
[2];
3689 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3690 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3693 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3695 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3696 fra
.me
.has_broke
= 0;
3697 fra
.me
.REG_size
= 2;
3698 fra
.me
.REG
[0] = NIT_NULL
;
3699 fra
.me
.REG
[1] = NIT_NULL
;
3702 /* ./syntax//icode_generation.nit:697 */
3703 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3704 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3707 stack_frame_head
= fra
.me
.prev
;
3708 return fra
.me
.REG
[0];
3710 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
3711 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3713 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3714 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3716 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
3717 fra
.me
.has_broke
= 0;
3718 fra
.me
.REG_size
= 6;
3719 fra
.me
.REG
[0] = NIT_NULL
;
3720 fra
.me
.REG
[1] = NIT_NULL
;
3721 fra
.me
.REG
[2] = NIT_NULL
;
3722 fra
.me
.REG
[3] = NIT_NULL
;
3723 fra
.me
.REG
[4] = NIT_NULL
;
3724 fra
.me
.REG
[5] = NIT_NULL
;
3727 /* ./syntax//icode_generation.nit:705 */
3728 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3729 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3730 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3731 /* ./syntax//icode_generation.nit:706 */
3732 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3733 /* ./syntax//icode_generation.nit:707 */
3734 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3735 /* ./syntax//icode_generation.nit:710 */
3736 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3737 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3738 /* ./syntax//icode_generation.nit:713 */
3739 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3740 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3741 /* ./syntax//icode_generation.nit:714 */
3742 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3743 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3744 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3745 /* ./syntax//icode_generation.nit:717 */
3746 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3747 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3748 /* ./syntax//icode_generation.nit:718 */
3749 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3750 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3751 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
3752 /* ./syntax//icode_generation.nit:720 */
3753 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3754 /* ./syntax//icode_generation.nit:721 */
3757 stack_frame_head
= fra
.me
.prev
;
3758 return fra
.me
.REG
[4];
3760 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
3761 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3763 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3764 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3766 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
3767 fra
.me
.has_broke
= 0;
3768 fra
.me
.REG_size
= 4;
3769 fra
.me
.REG
[0] = NIT_NULL
;
3770 fra
.me
.REG
[1] = NIT_NULL
;
3771 fra
.me
.REG
[2] = NIT_NULL
;
3772 fra
.me
.REG
[3] = NIT_NULL
;
3775 /* ./syntax//icode_generation.nit:728 */
3776 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3777 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3778 /* ./syntax//icode_generation.nit:729 */
3779 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3780 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3781 /* ./syntax//icode_generation.nit:730 */
3782 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3783 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3784 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
3787 stack_frame_head
= fra
.me
.prev
;
3788 return fra
.me
.REG
[0];
3790 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
3791 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3793 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3794 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3796 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
3797 fra
.me
.has_broke
= 0;
3798 fra
.me
.REG_size
= 6;
3799 fra
.me
.REG
[0] = NIT_NULL
;
3800 fra
.me
.REG
[1] = NIT_NULL
;
3801 fra
.me
.REG
[2] = NIT_NULL
;
3802 fra
.me
.REG
[3] = NIT_NULL
;
3803 fra
.me
.REG
[4] = NIT_NULL
;
3804 fra
.me
.REG
[5] = NIT_NULL
;
3807 /* ./syntax//icode_generation.nit:738 */
3808 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3809 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3810 /* ./syntax//icode_generation.nit:741 */
3811 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3812 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3813 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
3814 /* ./syntax//icode_generation.nit:742 */
3815 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3816 /* ./syntax//icode_generation.nit:743 */
3817 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3818 /* ./syntax//icode_generation.nit:744 */
3819 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3820 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3821 /* ./syntax//icode_generation.nit:745 */
3822 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3823 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
3824 /* ./syntax//icode_generation.nit:748 */
3825 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3826 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3827 /* ./syntax//icode_generation.nit:749 */
3828 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3829 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3830 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3831 /* ./syntax//icode_generation.nit:751 */
3832 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3833 /* ./syntax//icode_generation.nit:752 */
3836 stack_frame_head
= fra
.me
.prev
;
3837 return fra
.me
.REG
[2];
3839 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
3840 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3842 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3843 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3845 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
3846 fra
.me
.has_broke
= 0;
3847 fra
.me
.REG_size
= 6;
3848 fra
.me
.REG
[0] = NIT_NULL
;
3849 fra
.me
.REG
[1] = NIT_NULL
;
3850 fra
.me
.REG
[2] = NIT_NULL
;
3851 fra
.me
.REG
[3] = NIT_NULL
;
3852 fra
.me
.REG
[4] = NIT_NULL
;
3853 fra
.me
.REG
[5] = NIT_NULL
;
3856 /* ./syntax//icode_generation.nit:760 */
3857 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3858 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3859 /* ./syntax//icode_generation.nit:763 */
3860 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3861 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3862 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
3863 /* ./syntax//icode_generation.nit:764 */
3864 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3865 /* ./syntax//icode_generation.nit:765 */
3866 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3867 /* ./syntax//icode_generation.nit:766 */
3868 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3869 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3870 /* ./syntax//icode_generation.nit:767 */
3871 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3872 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
3873 /* ./syntax//icode_generation.nit:770 */
3874 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3875 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3876 /* ./syntax//icode_generation.nit:771 */
3877 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3878 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3879 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3880 /* ./syntax//icode_generation.nit:773 */
3881 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3882 /* ./syntax//icode_generation.nit:774 */
3885 stack_frame_head
= fra
.me
.prev
;
3886 return fra
.me
.REG
[2];
3888 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
3889 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3891 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3892 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3894 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
3895 fra
.me
.has_broke
= 0;
3896 fra
.me
.REG_size
= 3;
3897 fra
.me
.REG
[0] = NIT_NULL
;
3898 fra
.me
.REG
[1] = NIT_NULL
;
3899 fra
.me
.REG
[2] = NIT_NULL
;
3902 /* ./syntax//icode_generation.nit:781 */
3903 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3904 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3905 /* ./syntax//icode_generation.nit:782 */
3906 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
3907 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3908 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3911 stack_frame_head
= fra
.me
.prev
;
3912 return fra
.me
.REG
[0];
3914 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
3915 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3918 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3920 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
3921 fra
.me
.has_broke
= 0;
3922 fra
.me
.REG_size
= 7;
3923 fra
.me
.REG
[0] = NIT_NULL
;
3924 fra
.me
.REG
[1] = NIT_NULL
;
3925 fra
.me
.REG
[2] = NIT_NULL
;
3926 fra
.me
.REG
[3] = NIT_NULL
;
3927 fra
.me
.REG
[4] = NIT_NULL
;
3928 fra
.me
.REG
[5] = NIT_NULL
;
3929 fra
.me
.REG
[6] = NIT_NULL
;
3932 /* ./syntax//icode_generation.nit:790 */
3933 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3934 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3935 /* ./syntax//icode_generation.nit:793 */
3936 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3937 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3938 /* ./syntax//icode_generation.nit:796 */
3939 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3940 /* ./syntax//icode_generation.nit:797 */
3941 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3942 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3943 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3944 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3945 /* ./syntax//icode_generation.nit:798 */
3946 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
3947 /* ./syntax//icode_generation.nit:799 */
3948 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3949 /* ./syntax//icode_generation.nit:800 */
3950 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3951 /* ./syntax//icode_generation.nit:803 */
3952 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3953 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3954 /* ./syntax//icode_generation.nit:804 */
3955 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3956 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3957 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
3958 /* ./syntax//icode_generation.nit:807 */
3959 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3960 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3961 /* ./syntax//icode_generation.nit:808 */
3962 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3963 /* ./syntax//icode_generation.nit:810 */
3964 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3965 /* ./syntax//icode_generation.nit:812 */
3968 stack_frame_head
= fra
.me
.prev
;
3969 return fra
.me
.REG
[3];
3971 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
3972 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3976 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3978 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
3979 fra
.me
.has_broke
= 0;
3980 fra
.me
.REG_size
= 5;
3981 fra
.me
.REG
[0] = NIT_NULL
;
3982 fra
.me
.REG
[1] = NIT_NULL
;
3983 fra
.me
.REG
[2] = NIT_NULL
;
3984 fra
.me
.REG
[3] = NIT_NULL
;
3985 fra
.me
.REG
[4] = NIT_NULL
;
3988 /* ./syntax//icode_generation.nit:817 */
3989 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3990 /* ./syntax//icode_generation.nit:819 */
3991 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3992 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3993 /* ./syntax//icode_generation.nit:820 */
3994 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3995 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3996 if (UNTAG_Bool(REGB0
)) {
3998 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 820);
4000 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4001 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4002 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4003 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4004 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
4007 stack_frame_head
= fra
.me
.prev
;
4008 return fra
.me
.REG
[2];
4010 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4011 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4013 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4014 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4016 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4017 fra
.me
.has_broke
= 0;
4018 fra
.me
.REG_size
= 3;
4019 fra
.me
.REG
[0] = NIT_NULL
;
4020 fra
.me
.REG
[1] = NIT_NULL
;
4021 fra
.me
.REG
[2] = NIT_NULL
;
4024 /* ./syntax//icode_generation.nit:827 */
4025 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4026 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4027 /* ./syntax//icode_generation.nit:828 */
4028 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4029 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4030 /* ./syntax//icode_generation.nit:829 */
4033 stack_frame_head
= fra
.me
.prev
;
4034 return fra
.me
.REG
[2];
4036 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4037 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4039 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4040 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4042 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4043 fra
.me
.has_broke
= 0;
4044 fra
.me
.REG_size
= 3;
4045 fra
.me
.REG
[0] = NIT_NULL
;
4046 fra
.me
.REG
[1] = NIT_NULL
;
4047 fra
.me
.REG
[2] = NIT_NULL
;
4050 /* ./syntax//icode_generation.nit:836 */
4051 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4052 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4053 /* ./syntax//icode_generation.nit:837 */
4054 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4055 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4056 /* ./syntax//icode_generation.nit:838 */
4059 stack_frame_head
= fra
.me
.prev
;
4060 return fra
.me
.REG
[2];
4062 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4063 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4065 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4066 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4068 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4069 fra
.me
.has_broke
= 0;
4070 fra
.me
.REG_size
= 2;
4071 fra
.me
.REG
[0] = NIT_NULL
;
4072 fra
.me
.REG
[1] = NIT_NULL
;
4075 /* ./syntax//icode_generation.nit:845 */
4076 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4079 stack_frame_head
= fra
.me
.prev
;
4080 return fra
.me
.REG
[1];
4082 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4083 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4085 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4086 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4088 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4089 fra
.me
.has_broke
= 0;
4090 fra
.me
.REG_size
= 2;
4091 fra
.me
.REG
[0] = NIT_NULL
;
4092 fra
.me
.REG
[1] = NIT_NULL
;
4095 /* ./syntax//icode_generation.nit:852 */
4096 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4099 stack_frame_head
= fra
.me
.prev
;
4100 return fra
.me
.REG
[1];
4102 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4103 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4105 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4106 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4108 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4109 fra
.me
.has_broke
= 0;
4110 fra
.me
.REG_size
= 3;
4111 fra
.me
.REG
[0] = NIT_NULL
;
4112 fra
.me
.REG
[1] = NIT_NULL
;
4113 fra
.me
.REG
[2] = NIT_NULL
;
4116 /* ./syntax//icode_generation.nit:859 */
4117 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4118 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4119 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4120 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4121 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4124 stack_frame_head
= fra
.me
.prev
;
4125 return fra
.me
.REG
[0];
4127 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4128 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4130 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4131 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4133 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4134 fra
.me
.has_broke
= 0;
4135 fra
.me
.REG_size
= 3;
4136 fra
.me
.REG
[0] = NIT_NULL
;
4137 fra
.me
.REG
[1] = NIT_NULL
;
4138 fra
.me
.REG
[2] = NIT_NULL
;
4141 /* ./syntax//icode_generation.nit:866 */
4142 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4143 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4144 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4145 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4146 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4149 stack_frame_head
= fra
.me
.prev
;
4150 return fra
.me
.REG
[0];
4152 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4153 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4155 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4156 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4158 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4159 fra
.me
.has_broke
= 0;
4160 fra
.me
.REG_size
= 3;
4161 fra
.me
.REG
[0] = NIT_NULL
;
4162 fra
.me
.REG
[1] = NIT_NULL
;
4163 fra
.me
.REG
[2] = NIT_NULL
;
4166 /* ./syntax//icode_generation.nit:873 */
4167 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4168 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4169 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4170 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4171 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4174 stack_frame_head
= fra
.me
.prev
;
4175 return fra
.me
.REG
[0];
4177 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4178 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4181 static val_t once_value_1
; /* Once value */
4182 static val_t once_value_2
; /* Once value */
4183 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4184 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4186 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4187 fra
.me
.has_broke
= 0;
4188 fra
.me
.REG_size
= 9;
4189 fra
.me
.REG
[0] = NIT_NULL
;
4190 fra
.me
.REG
[1] = NIT_NULL
;
4191 fra
.me
.REG
[2] = NIT_NULL
;
4192 fra
.me
.REG
[3] = NIT_NULL
;
4193 fra
.me
.REG
[4] = NIT_NULL
;
4194 fra
.me
.REG
[5] = NIT_NULL
;
4195 fra
.me
.REG
[6] = NIT_NULL
;
4196 fra
.me
.REG
[7] = NIT_NULL
;
4197 fra
.me
.REG
[8] = NIT_NULL
;
4200 /* ./syntax//icode_generation.nit:878 */
4201 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4202 /* ./syntax//icode_generation.nit:880 */
4203 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4204 /* ./syntax//icode_generation.nit:881 */
4205 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4206 /* ./syntax//icode_generation.nit:882 */
4207 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4208 /* ./syntax//icode_generation.nit:883 */
4209 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4210 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4211 /* ./syntax//icode_generation.nit:884 */
4212 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4213 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4214 /* ./syntax//icode_generation.nit:885 */
4215 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4216 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4217 if (UNTAG_Bool(REGB0
)) {
4219 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 885);
4221 fra
.me
.REG
[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[4]);
4222 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4223 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4224 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4225 /* ./syntax//icode_generation.nit:886 */
4226 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4227 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4228 if (UNTAG_Bool(REGB0
)) {
4229 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 886);
4231 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4232 fra
.me
.REG
[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[4]);
4233 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4234 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4235 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4236 /* ./syntax//icode_generation.nit:887 */
4237 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4238 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4239 if (!once_value_1
) {
4240 if (!once_value_2
) {
4241 fra
.me
.REG
[8] = BOX_NativeString("with_native");
4242 REGB0
= TAG_Int(11);
4243 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4244 once_value_2
= fra
.me
.REG
[8];
4245 register_static_object(&once_value_2
);
4246 } else fra
.me
.REG
[8] = once_value_2
;
4247 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4248 fra
.me
.REG
[8] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4249 once_value_1
= fra
.me
.REG
[8];
4250 register_static_object(&once_value_1
);
4251 } else fra
.me
.REG
[8] = once_value_1
;
4252 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4253 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7], fra
.me
.REG
[8]);
4254 /* ./syntax//icode_generation.nit:888 */
4255 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4257 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4260 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[4]);
4261 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4262 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[2]);
4263 /* ./syntax//icode_generation.nit:889 */
4264 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4265 /* ./syntax//icode_generation.nit:890 */
4266 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4267 /* ./syntax//icode_generation.nit:891 */
4270 stack_frame_head
= fra
.me
.prev
;
4271 return fra
.me
.REG
[5];
4273 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4274 struct {struct stack_frame_t me
;} fra
;
4276 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4277 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4279 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4280 fra
.me
.has_broke
= 0;
4281 fra
.me
.REG_size
= 0;
4282 /* ./syntax//icode_generation.nit:894 */
4283 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 894);
4284 stack_frame_head
= fra
.me
.prev
;
4287 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4288 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4296 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4297 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4299 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
;
4300 fra
.me
.has_broke
= 0;
4301 fra
.me
.REG_size
= 3;
4302 fra
.me
.REG
[0] = NIT_NULL
;
4303 fra
.me
.REG
[1] = NIT_NULL
;
4304 fra
.me
.REG
[2] = NIT_NULL
;
4306 /* ./syntax//icode_generation.nit:906 */
4308 /* ./syntax//icode_generation.nit:907 */
4309 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4310 /* ./syntax//icode_generation.nit:908 */
4311 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4312 /* ./syntax//icode_generation.nit:909 */
4314 /* ./syntax//icode_generation.nit:910 */
4316 /* ./../lib/standard//collection//array.nit:23 */
4317 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4318 if (UNTAG_Bool(REGB2
)) {
4320 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4322 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4323 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4324 if (UNTAG_Bool(REGB3
)) {
4326 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4328 /* ./../lib/standard//kernel.nit:215 */
4329 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4330 /* ./syntax//icode_generation.nit:910 */
4331 if (UNTAG_Bool(REGB2
)) {
4332 /* ./syntax//icode_generation.nit:911 */
4333 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4334 /* ./syntax//icode_generation.nit:912 */
4335 REGB3
= TAG_Char('\\');
4336 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4337 if (UNTAG_Bool(REGB4
)) {
4339 /* ./../lib/standard//kernel.nit:350 */
4340 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4341 /* ./syntax//icode_generation.nit:912 */
4344 if (UNTAG_Bool(REGB4
)) {
4345 /* ./syntax//icode_generation.nit:913 */
4347 /* ./../lib/standard//kernel.nit:218 */
4348 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4349 /* ./syntax//icode_generation.nit:913 */
4351 /* ./syntax//icode_generation.nit:914 */
4352 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4353 /* ./syntax//icode_generation.nit:915 */
4354 REGB3
= TAG_Char('{');
4355 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4356 if (UNTAG_Bool(REGB5
)) {
4358 /* ./../lib/standard//kernel.nit:350 */
4359 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4360 /* ./syntax//icode_generation.nit:915 */
4363 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4364 if (UNTAG_Bool(REGB5
)) {
4365 REGB5
= TAG_Char('}');
4366 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4367 if (UNTAG_Bool(REGB3
)) {
4369 /* ./../lib/standard//kernel.nit:350 */
4370 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4371 /* ./syntax//icode_generation.nit:915 */
4374 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4376 REGB5
= TAG_Bool(false);
4379 if (UNTAG_Bool(REGB3
)) {
4380 /* ./syntax//icode_generation.nit:916 */
4381 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4383 /* ./syntax//icode_generation.nit:918 */
4386 /* ./syntax//icode_generation.nit:920 */
4388 /* ./../lib/standard//kernel.nit:218 */
4389 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4390 /* ./syntax//icode_generation.nit:920 */
4392 /* ./syntax//icode_generation.nit:921 */
4393 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4394 /* ./syntax//icode_generation.nit:922 */
4396 /* ./../lib/standard//kernel.nit:218 */
4397 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4398 /* ./syntax//icode_generation.nit:922 */
4401 /* ./syntax//icode_generation.nit:910 */
4406 /* ./syntax//icode_generation.nit:924 */
4407 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4408 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4409 /* ./syntax//icode_generation.nit:925 */
4410 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4411 stack_frame_head
= fra
.me
.prev
;
4414 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4415 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_syntax___icode_generation
;
4423 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
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
;
4429 /* ./syntax//icode_generation.nit:930 */
4430 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4431 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4433 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4434 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4435 /* ./../lib/standard//collection//array.nit:23 */
4436 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4437 if (UNTAG_Bool(REGB1
)) {
4439 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4441 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4442 /* ./syntax//icode_generation.nit:930 */
4444 /* ./../lib/standard//kernel.nit:220 */
4445 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4446 /* ./syntax//icode_generation.nit:930 */
4447 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4450 stack_frame_head
= fra
.me
.prev
;
4451 return fra
.me
.REG
[1];
4453 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4454 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4459 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4460 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4462 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4463 fra
.me
.has_broke
= 0;
4464 fra
.me
.REG_size
= 2;
4465 fra
.me
.REG
[0] = NIT_NULL
;
4466 fra
.me
.REG
[1] = NIT_NULL
;
4468 /* ./syntax//icode_generation.nit:933 */
4469 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4470 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4472 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4473 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4474 /* ./../lib/standard//collection//array.nit:23 */
4475 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4476 if (UNTAG_Bool(REGB1
)) {
4478 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4480 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4481 /* ./syntax//icode_generation.nit:933 */
4483 /* ./../lib/standard//kernel.nit:220 */
4484 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4485 /* ./syntax//icode_generation.nit:933 */
4486 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4489 stack_frame_head
= fra
.me
.prev
;
4490 return fra
.me
.REG
[1];
4492 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4493 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4499 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4501 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4502 fra
.me
.has_broke
= 0;
4503 fra
.me
.REG_size
= 2;
4504 fra
.me
.REG
[0] = NIT_NULL
;
4505 fra
.me
.REG
[1] = NIT_NULL
;
4507 /* ./syntax//icode_generation.nit:936 */
4508 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4509 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4511 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4512 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4513 /* ./../lib/standard//collection//array.nit:23 */
4514 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4515 if (UNTAG_Bool(REGB1
)) {
4517 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4519 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4520 /* ./syntax//icode_generation.nit:936 */
4522 /* ./../lib/standard//kernel.nit:220 */
4523 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4524 /* ./syntax//icode_generation.nit:936 */
4525 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4528 stack_frame_head
= fra
.me
.prev
;
4529 return fra
.me
.REG
[1];
4531 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4532 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4537 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4538 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4540 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4541 fra
.me
.has_broke
= 0;
4542 fra
.me
.REG_size
= 2;
4543 fra
.me
.REG
[0] = NIT_NULL
;
4544 fra
.me
.REG
[1] = NIT_NULL
;
4546 /* ./syntax//icode_generation.nit:939 */
4547 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4548 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4550 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4551 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4552 /* ./../lib/standard//collection//array.nit:23 */
4553 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4554 if (UNTAG_Bool(REGB1
)) {
4556 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4558 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4559 /* ./syntax//icode_generation.nit:939 */
4561 /* ./../lib/standard//kernel.nit:220 */
4562 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4563 /* ./syntax//icode_generation.nit:939 */
4564 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4567 stack_frame_head
= fra
.me
.prev
;
4568 return fra
.me
.REG
[1];
4570 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
4571 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4574 static val_t once_value_1
; /* Once value */
4575 static val_t once_value_2
; /* Once value */
4576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4577 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4579 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4580 fra
.me
.has_broke
= 0;
4581 fra
.me
.REG_size
= 6;
4582 fra
.me
.REG
[0] = NIT_NULL
;
4583 fra
.me
.REG
[1] = NIT_NULL
;
4584 fra
.me
.REG
[2] = NIT_NULL
;
4585 fra
.me
.REG
[3] = NIT_NULL
;
4586 fra
.me
.REG
[4] = NIT_NULL
;
4587 fra
.me
.REG
[5] = NIT_NULL
;
4590 /* ./syntax//icode_generation.nit:945 */
4591 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4592 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4593 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4594 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
4595 /* ./syntax//icode_generation.nit:946 */
4596 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4597 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4598 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4599 if (!once_value_1
) {
4600 if (!once_value_2
) {
4601 fra
.me
.REG
[5] = BOX_NativeString("to_s");
4603 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4604 once_value_2
= fra
.me
.REG
[5];
4605 register_static_object(&once_value_2
);
4606 } else fra
.me
.REG
[5] = once_value_2
;
4607 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4608 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4609 once_value_1
= fra
.me
.REG
[5];
4610 register_static_object(&once_value_1
);
4611 } else fra
.me
.REG
[5] = once_value_1
;
4612 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4613 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4614 /* ./syntax//icode_generation.nit:947 */
4615 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4616 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3
));
4617 /* ./syntax//icode_generation.nit:954 */
4619 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4621 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4622 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4623 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4626 stack_frame_head
= fra
.me
.prev
;
4627 return fra
.me
.REG
[0];
4629 void OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4630 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4635 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4636 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4638 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4639 fra
.me
.has_broke
= 0;
4640 fra
.me
.REG_size
= 3;
4641 fra
.me
.REG
[0] = NIT_NULL
;
4642 fra
.me
.REG
[1] = NIT_NULL
;
4643 fra
.me
.REG
[2] = NIT_NULL
;
4644 fra
.me
.closure_ctx
= closctx_param
;
4645 fra
.me
.closure_funs
= CREG
;
4647 CREG
[0] = clos_fun0
;
4648 /* ./syntax//icode_generation.nit:948 */
4649 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4650 /* ./syntax//icode_generation.nit:949 */
4651 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4652 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4653 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
4654 if (UNTAG_Bool(REGB0
)) {
4656 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4659 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4660 if (UNTAG_Bool(REGB0
)) {
4661 /* ./syntax//icode_generation.nit:950 */
4663 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4665 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
4666 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4667 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4668 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4670 /* ./syntax//icode_generation.nit:952 */
4671 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
4672 stack_frame_head
= fra
.me
.prev
;
4675 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
4676 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4678 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4679 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4681 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
4682 fra
.me
.has_broke
= 0;
4683 fra
.me
.REG_size
= 2;
4684 fra
.me
.REG
[0] = NIT_NULL
;
4685 fra
.me
.REG
[1] = NIT_NULL
;
4688 /* ./syntax//icode_generation.nit:961 */
4689 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4692 stack_frame_head
= fra
.me
.prev
;
4693 return fra
.me
.REG
[1];
4695 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
4696 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4699 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4700 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4702 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4703 fra
.me
.has_broke
= 0;
4704 fra
.me
.REG_size
= 4;
4705 fra
.me
.REG
[0] = NIT_NULL
;
4706 fra
.me
.REG
[1] = NIT_NULL
;
4707 fra
.me
.REG
[2] = NIT_NULL
;
4708 fra
.me
.REG
[3] = NIT_NULL
;
4711 /* ./syntax//icode_generation.nit:968 */
4712 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4713 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4714 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4715 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
4716 /* ./syntax//icode_generation.nit:969 */
4717 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4718 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___AArrayExpr___generate_icode_1
));
4719 /* ./syntax//icode_generation.nit:973 */
4722 stack_frame_head
= fra
.me
.prev
;
4723 return fra
.me
.REG
[2];
4725 void OC_syntax___icode_generation___AArrayExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4726 struct {struct stack_frame_t me
;} fra
;
4729 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4730 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4732 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4733 fra
.me
.has_broke
= 0;
4734 fra
.me
.REG_size
= 1;
4735 fra
.me
.REG
[0] = NIT_NULL
;
4736 fra
.me
.closure_ctx
= closctx_param
;
4737 fra
.me
.closure_funs
= CREG
;
4739 CREG
[0] = clos_fun0
;
4740 /* ./syntax//icode_generation.nit:970 */
4741 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4742 /* ./syntax//icode_generation.nit:971 */
4743 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[0]);
4744 stack_frame_head
= fra
.me
.prev
;
4747 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
4748 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4751 static val_t once_value_1
; /* Once value */
4752 static val_t once_value_2
; /* Once value */
4753 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4754 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4756 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
4757 fra
.me
.has_broke
= 0;
4758 fra
.me
.REG_size
= 7;
4759 fra
.me
.REG
[0] = NIT_NULL
;
4760 fra
.me
.REG
[1] = NIT_NULL
;
4761 fra
.me
.REG
[2] = NIT_NULL
;
4762 fra
.me
.REG
[3] = NIT_NULL
;
4763 fra
.me
.REG
[4] = NIT_NULL
;
4764 fra
.me
.REG
[5] = NIT_NULL
;
4765 fra
.me
.REG
[6] = NIT_NULL
;
4768 /* ./syntax//icode_generation.nit:980 */
4769 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4770 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4771 /* ./syntax//icode_generation.nit:981 */
4772 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4773 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4774 /* ./syntax//icode_generation.nit:982 */
4775 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4776 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4777 if (!once_value_1
) {
4778 if (!once_value_2
) {
4779 fra
.me
.REG
[6] = BOX_NativeString("init");
4781 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4782 once_value_2
= fra
.me
.REG
[6];
4783 register_static_object(&once_value_2
);
4784 } else fra
.me
.REG
[6] = once_value_2
;
4785 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4786 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4787 once_value_1
= fra
.me
.REG
[6];
4788 register_static_object(&once_value_1
);
4789 } else fra
.me
.REG
[6] = once_value_1
;
4790 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4791 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
4792 /* ./syntax//icode_generation.nit:983 */
4793 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4795 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4798 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4799 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4800 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4803 stack_frame_head
= fra
.me
.prev
;
4804 return fra
.me
.REG
[0];
4806 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
4807 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4810 static val_t once_value_1
; /* Once value */
4811 static val_t once_value_2
; /* Once value */
4812 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4813 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4815 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
4816 fra
.me
.has_broke
= 0;
4817 fra
.me
.REG_size
= 7;
4818 fra
.me
.REG
[0] = NIT_NULL
;
4819 fra
.me
.REG
[1] = NIT_NULL
;
4820 fra
.me
.REG
[2] = NIT_NULL
;
4821 fra
.me
.REG
[3] = NIT_NULL
;
4822 fra
.me
.REG
[4] = NIT_NULL
;
4823 fra
.me
.REG
[5] = NIT_NULL
;
4824 fra
.me
.REG
[6] = NIT_NULL
;
4827 /* ./syntax//icode_generation.nit:990 */
4828 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4829 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4830 /* ./syntax//icode_generation.nit:991 */
4831 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4832 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4833 /* ./syntax//icode_generation.nit:992 */
4834 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4835 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4836 if (!once_value_1
) {
4837 if (!once_value_2
) {
4838 fra
.me
.REG
[6] = BOX_NativeString("without_last");
4839 REGB0
= TAG_Int(12);
4840 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4841 once_value_2
= fra
.me
.REG
[6];
4842 register_static_object(&once_value_2
);
4843 } else fra
.me
.REG
[6] = once_value_2
;
4844 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4845 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4846 once_value_1
= fra
.me
.REG
[6];
4847 register_static_object(&once_value_1
);
4848 } else fra
.me
.REG
[6] = once_value_1
;
4849 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4850 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
4851 /* ./syntax//icode_generation.nit:993 */
4852 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4854 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4857 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4858 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4859 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4862 stack_frame_head
= fra
.me
.prev
;
4863 return fra
.me
.REG
[0];
4865 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
4866 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4872 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4873 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4875 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
4876 fra
.me
.has_broke
= 0;
4877 fra
.me
.REG_size
= 6;
4878 fra
.me
.REG
[0] = NIT_NULL
;
4879 fra
.me
.REG
[1] = NIT_NULL
;
4880 fra
.me
.REG
[2] = NIT_NULL
;
4881 fra
.me
.REG
[3] = NIT_NULL
;
4882 fra
.me
.REG
[4] = NIT_NULL
;
4883 fra
.me
.REG
[5] = NIT_NULL
;
4886 /* ./syntax//icode_generation.nit:1000 */
4887 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4888 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4889 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4891 /* ./../lib/standard//kernel.nit:220 */
4892 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
4893 /* ./syntax//icode_generation.nit:1001 */
4894 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4895 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4896 if (UNTAG_Bool(REGB0
)) {
4898 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4899 if (UNTAG_Bool(REGB2
)) {
4900 REGB2
= TAG_Bool(false);
4903 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4907 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4908 if (UNTAG_Bool(REGB0
)) {
4909 /* ./syntax//icode_generation.nit:1002 */
4910 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4911 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4912 if (UNTAG_Bool(REGB0
)) {
4913 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1002);
4915 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4916 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4917 if (UNTAG_Bool(REGB0
)) {
4918 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1002);
4920 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4923 /* ./syntax//icode_generation.nit:1004 */
4925 /* ./../lib/standard//kernel.nit:218 */
4926 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
4927 /* ./syntax//icode_generation.nit:1004 */
4928 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4929 /* ./syntax//icode_generation.nit:1005 */
4930 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4931 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4933 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
4934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4935 /* ./syntax//icode_generation.nit:1006 */
4936 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4937 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4938 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4939 if (UNTAG_Bool(REGB2
)) {
4941 /* ./../lib/standard//kernel.nit:210 */
4942 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
4943 /* ./syntax//icode_generation.nit:1006 */
4946 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4947 if (UNTAG_Bool(REGB2
)) {
4948 /* ./syntax//icode_generation.nit:1007 */
4950 /* ./../lib/standard//kernel.nit:335 */
4952 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
4953 if (UNTAG_Bool(REGB0
)) {
4955 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4957 /* ./../lib/standard//kernel.nit:215 */
4958 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
4959 /* ./../lib/standard//kernel.nit:335 */
4960 if (UNTAG_Bool(REGB0
)) {
4961 /* ./syntax//icode_generation.nit:1007 */
4963 /* ./syntax//icode_generation.nit:1008 */
4964 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4965 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4967 /* ./../lib/standard//kernel.nit:218 */
4968 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
4969 /* ./syntax//icode_generation.nit:1008 */
4970 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
4971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4972 /* ./../lib/standard//kernel.nit:337 */
4974 /* ./../lib/standard//kernel.nit:218 */
4975 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
4976 /* ./../lib/standard//kernel.nit:337 */
4979 /* ./../lib/standard//kernel.nit:335 */
4985 /* ./syntax//icode_generation.nit:1011 */
4986 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4987 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASuperExpr___generate_icode_2
));
4989 /* ./syntax//icode_generation.nit:1015 */
4990 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4991 /* ./syntax//icode_generation.nit:1016 */
4992 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4993 if (UNTAG_Bool(REGB2
)) {
4995 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4996 if (UNTAG_Bool(REGB1
)) {
4997 REGB1
= TAG_Bool(false);
5000 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5004 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5005 if (UNTAG_Bool(REGB2
)) {
5006 /* ./syntax//icode_generation.nit:1017 */
5007 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5008 if (UNTAG_Bool(REGB2
)) {
5009 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1017);
5011 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5012 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5013 if (UNTAG_Bool(REGB2
)) {
5014 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1017);
5016 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5017 /* ./syntax//icode_generation.nit:1018 */
5018 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5019 if (UNTAG_Bool(REGB2
)) {
5021 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5022 if (UNTAG_Bool(REGB1
)) {
5023 REGB1
= TAG_Bool(false);
5026 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5030 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5031 if (UNTAG_Bool(REGB2
)) {
5032 /* ./syntax//icode_generation.nit:1019 */
5033 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5034 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4]);
5037 /* ./syntax//icode_generation.nit:1021 */
5038 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5039 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5040 /* ./syntax//icode_generation.nit:1022 */
5041 fra
.me
.REG
[4] = NIT_NULL
;
5045 /* ./syntax//icode_generation.nit:1025 */
5046 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5047 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5048 /* ./syntax//icode_generation.nit:1026 */
5049 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5050 if (UNTAG_Bool(REGB2
)) {
5051 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1026);
5053 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5054 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5055 if (UNTAG_Bool(REGB2
)) {
5056 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1026);
5058 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5059 /* ./syntax//icode_generation.nit:1027 */
5060 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5061 if (UNTAG_Bool(REGB2
)) {
5063 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5064 if (UNTAG_Bool(REGB1
)) {
5065 REGB1
= TAG_Bool(false);
5068 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5072 if (UNTAG_Bool(REGB2
)) {
5073 /* ./syntax//icode_generation.nit:1028 */
5074 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5075 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5076 /* ./syntax//icode_generation.nit:1029 */
5077 fra
.me
.REG
[4] = NIT_NULL
;
5080 /* ./syntax//icode_generation.nit:1031 */
5081 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5082 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5083 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5088 stack_frame_head
= fra
.me
.prev
;
5089 return fra
.me
.REG
[4];
5091 void OC_syntax___icode_generation___ASuperExpr___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5092 struct {struct stack_frame_t me
;} fra
;
5095 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5096 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5098 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5099 fra
.me
.has_broke
= 0;
5100 fra
.me
.REG_size
= 1;
5101 fra
.me
.REG
[0] = NIT_NULL
;
5102 fra
.me
.closure_ctx
= closctx_param
;
5103 fra
.me
.closure_funs
= CREG
;
5105 CREG
[0] = clos_fun0
;
5106 /* ./syntax//icode_generation.nit:1012 */
5107 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5108 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5109 stack_frame_head
= fra
.me
.prev
;
5112 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5113 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5116 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5117 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5119 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5120 fra
.me
.has_broke
= 0;
5121 fra
.me
.REG_size
= 4;
5122 fra
.me
.REG
[0] = NIT_NULL
;
5123 fra
.me
.REG
[1] = NIT_NULL
;
5124 fra
.me
.REG
[2] = NIT_NULL
;
5125 fra
.me
.REG
[3] = NIT_NULL
;
5128 /* ./syntax//icode_generation.nit:1040 */
5129 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5130 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5131 /* ./syntax//icode_generation.nit:1041 */
5132 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5133 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5134 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5135 if (UNTAG_Bool(REGB0
)) {
5136 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5138 /* ./syntax//icode_generation.nit:1042 */
5139 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5140 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
5143 stack_frame_head
= fra
.me
.prev
;
5144 return fra
.me
.REG
[2];
5146 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5147 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5150 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5151 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5153 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5154 fra
.me
.has_broke
= 0;
5155 fra
.me
.REG_size
= 4;
5156 fra
.me
.REG
[0] = NIT_NULL
;
5157 fra
.me
.REG
[1] = NIT_NULL
;
5158 fra
.me
.REG
[2] = NIT_NULL
;
5159 fra
.me
.REG
[3] = NIT_NULL
;
5162 /* ./syntax//icode_generation.nit:1049 */
5163 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5164 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5165 /* ./syntax//icode_generation.nit:1050 */
5166 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5167 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5168 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5169 if (UNTAG_Bool(REGB0
)) {
5170 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5172 /* ./syntax//icode_generation.nit:1051 */
5173 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5174 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5175 /* ./syntax//icode_generation.nit:1052 */
5176 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5177 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5178 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5179 /* ./syntax//icode_generation.nit:1053 */
5180 fra
.me
.REG
[3] = NIT_NULL
;
5183 stack_frame_head
= fra
.me
.prev
;
5184 return fra
.me
.REG
[3];
5186 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5187 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5191 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5193 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5194 fra
.me
.has_broke
= 0;
5195 fra
.me
.REG_size
= 7;
5196 fra
.me
.REG
[0] = NIT_NULL
;
5197 fra
.me
.REG
[1] = NIT_NULL
;
5198 fra
.me
.REG
[2] = NIT_NULL
;
5199 fra
.me
.REG
[3] = NIT_NULL
;
5200 fra
.me
.REG
[4] = NIT_NULL
;
5201 fra
.me
.REG
[5] = NIT_NULL
;
5202 fra
.me
.REG
[6] = NIT_NULL
;
5205 /* ./syntax//icode_generation.nit:1059 */
5206 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5207 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5208 /* ./syntax//icode_generation.nit:1060 */
5209 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5210 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5211 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5212 if (UNTAG_Bool(REGB0
)) {
5213 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5215 /* ./syntax//icode_generation.nit:1061 */
5216 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5217 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5218 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5219 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5220 /* ./syntax//icode_generation.nit:1062 */
5221 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5222 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5223 /* ./syntax//icode_generation.nit:1063 */
5224 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5226 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5229 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5230 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5231 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
5232 /* ./syntax//icode_generation.nit:1064 */
5233 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5234 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5235 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5236 /* ./syntax//icode_generation.nit:1065 */
5237 fra
.me
.REG
[5] = NIT_NULL
;
5240 stack_frame_head
= fra
.me
.prev
;
5241 return fra
.me
.REG
[5];
5243 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5244 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5247 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5248 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5250 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5251 fra
.me
.has_broke
= 0;
5252 fra
.me
.REG_size
= 4;
5253 fra
.me
.REG
[0] = NIT_NULL
;
5254 fra
.me
.REG
[1] = NIT_NULL
;
5255 fra
.me
.REG
[2] = NIT_NULL
;
5256 fra
.me
.REG
[3] = NIT_NULL
;
5259 /* ./syntax//icode_generation.nit:1072 */
5260 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5261 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5262 /* ./syntax//icode_generation.nit:1073 */
5263 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5264 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5265 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5266 if (UNTAG_Bool(REGB0
)) {
5267 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5269 /* ./syntax//icode_generation.nit:1074 */
5270 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5271 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5272 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5273 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5276 stack_frame_head
= fra
.me
.prev
;
5277 return fra
.me
.REG
[0];
5279 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5280 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5294 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5296 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5297 fra
.me
.has_broke
= 0;
5298 fra
.me
.REG_size
= 7;
5299 fra
.me
.REG
[0] = NIT_NULL
;
5300 fra
.me
.REG
[1] = NIT_NULL
;
5301 fra
.me
.REG
[2] = NIT_NULL
;
5302 fra
.me
.REG
[3] = NIT_NULL
;
5303 fra
.me
.REG
[4] = NIT_NULL
;
5304 fra
.me
.REG
[5] = NIT_NULL
;
5305 fra
.me
.REG
[6] = NIT_NULL
;
5310 /* ./syntax//icode_generation.nit:1082 */
5311 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5312 /* ./syntax//icode_generation.nit:1083 */
5313 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5314 /* ./syntax//icode_generation.nit:1084 */
5315 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5316 /* ./../lib/standard//collection//array.nit:23 */
5317 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5318 if (UNTAG_Bool(REGB2
)) {
5320 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5322 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5323 /* ./syntax//icode_generation.nit:1086 */
5325 /* ./syntax//icode_generation.nit:1087 */
5327 /* ./../lib/standard//kernel.nit:330 */
5329 /* ./../lib/standard//kernel.nit:335 */
5331 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5332 if (UNTAG_Bool(REGB6
)) {
5334 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5336 /* ./../lib/standard//kernel.nit:215 */
5337 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5338 /* ./../lib/standard//kernel.nit:335 */
5339 if (UNTAG_Bool(REGB6
)) {
5340 /* ./syntax//icode_generation.nit:1087 */
5342 /* ./syntax//icode_generation.nit:1089 */
5343 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5344 /* ./syntax//icode_generation.nit:1090 */
5345 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5346 if (UNTAG_Bool(REGB7
)) {
5348 /* ./../lib/standard//kernel.nit:210 */
5349 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5350 /* ./syntax//icode_generation.nit:1090 */
5353 if (UNTAG_Bool(REGB7
)) {
5354 /* ./syntax//icode_generation.nit:1091 */
5355 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5356 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5357 /* ./../lib/standard//kernel.nit:220 */
5358 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5359 /* ./syntax//icode_generation.nit:1091 */
5360 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], REGB7
);
5361 /* ./syntax//icode_generation.nit:1092 */
5363 /* ./../lib/standard//kernel.nit:220 */
5364 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5365 /* ./../lib/standard//kernel.nit:324 */
5367 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5368 if (UNTAG_Bool(REGB8
)) {
5370 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5372 /* ./../lib/standard//kernel.nit:214 */
5373 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5374 /* ./../lib/standard//kernel.nit:324 */
5375 if (UNTAG_Bool(REGB8
)) {
5376 /* ./../lib/standard//collection//array.nit:241 */
5377 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5379 /* ./../lib/standard//collection//array.nit:243 */
5381 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5382 if (UNTAG_Bool(REGB10
)) {
5384 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5386 /* ./../lib/standard//kernel.nit:216 */
5387 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5388 /* ./../lib/standard//collection//array.nit:243 */
5389 if (UNTAG_Bool(REGB9
)) {
5390 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5391 if (UNTAG_Bool(REGB9
)) {
5393 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
5395 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5396 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5397 if (UNTAG_Bool(REGB10
)) {
5399 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5401 /* ./../lib/standard//kernel.nit:215 */
5402 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5404 /* ./../lib/standard//collection//array.nit:243 */
5405 REGB10
= TAG_Bool(false);
5408 if (UNTAG_Bool(REGB9
)) {
5410 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
5412 /* ./../lib/standard//collection//array.nit:244 */
5413 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5414 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5415 if (UNTAG_Bool(REGB9
)) {
5416 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
5418 /* ./../lib/standard//collection//array.nit:652 */
5419 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5420 /* ./../lib/standard//collection//array.nit:244 */
5423 /* ./syntax//icode_generation.nit:1094 */
5424 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5425 CALL_syntax___icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
5426 /* ./syntax//icode_generation.nit:1095 */
5428 /* ./../lib/standard//kernel.nit:218 */
5429 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5430 /* ./syntax//icode_generation.nit:1095 */
5432 /* ./../lib/standard//kernel.nit:326 */
5434 /* ./../lib/standard//kernel.nit:218 */
5435 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5436 /* ./../lib/standard//kernel.nit:326 */
5439 /* ./../lib/standard//kernel.nit:324 */
5444 /* ./syntax//icode_generation.nit:1097 */
5445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5447 /* ./../lib/standard//collection//array.nit:241 */
5448 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5450 /* ./../lib/standard//collection//array.nit:243 */
5452 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5453 if (UNTAG_Bool(REGB8
)) {
5455 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5457 /* ./../lib/standard//kernel.nit:216 */
5458 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5459 /* ./../lib/standard//collection//array.nit:243 */
5460 if (UNTAG_Bool(REGB6
)) {
5461 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5462 if (UNTAG_Bool(REGB6
)) {
5464 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
5466 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5467 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5468 if (UNTAG_Bool(REGB8
)) {
5470 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5472 /* ./../lib/standard//kernel.nit:215 */
5473 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5475 /* ./../lib/standard//collection//array.nit:243 */
5476 REGB8
= TAG_Bool(false);
5479 if (UNTAG_Bool(REGB6
)) {
5481 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
5483 /* ./../lib/standard//collection//array.nit:244 */
5484 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5485 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5486 if (UNTAG_Bool(REGB6
)) {
5487 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
5489 /* ./../lib/standard//collection//array.nit:652 */
5490 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5491 /* ./../lib/standard//collection//array.nit:244 */
5494 /* ./syntax//icode_generation.nit:1099 */
5495 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5496 /* ./syntax//icode_generation.nit:1100 */
5497 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5499 /* ./syntax//icode_generation.nit:1101 */
5501 /* ./../lib/standard//kernel.nit:218 */
5502 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5503 /* ./syntax//icode_generation.nit:1101 */
5506 /* ./../lib/standard//kernel.nit:337 */
5508 /* ./../lib/standard//kernel.nit:218 */
5509 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5510 /* ./../lib/standard//kernel.nit:337 */
5513 /* ./../lib/standard//kernel.nit:335 */
5518 stack_frame_head
= fra
.me
.prev
;
5521 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5522 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5530 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5532 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
5533 fra
.me
.has_broke
= 0;
5534 fra
.me
.REG_size
= 16;
5535 fra
.me
.REG
[0] = NIT_NULL
;
5536 fra
.me
.REG
[1] = NIT_NULL
;
5537 fra
.me
.REG
[2] = NIT_NULL
;
5538 fra
.me
.REG
[3] = NIT_NULL
;
5539 fra
.me
.REG
[4] = NIT_NULL
;
5540 fra
.me
.REG
[5] = NIT_NULL
;
5541 fra
.me
.REG
[6] = NIT_NULL
;
5542 fra
.me
.REG
[7] = NIT_NULL
;
5543 fra
.me
.REG
[8] = NIT_NULL
;
5544 fra
.me
.REG
[9] = NIT_NULL
;
5545 fra
.me
.REG
[10] = NIT_NULL
;
5546 fra
.me
.REG
[11] = NIT_NULL
;
5547 fra
.me
.REG
[12] = NIT_NULL
;
5548 fra
.me
.REG
[13] = NIT_NULL
;
5549 fra
.me
.REG
[14] = NIT_NULL
;
5550 fra
.me
.REG
[15] = NIT_NULL
;
5553 /* ./syntax//icode_generation.nit:1108 */
5554 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5555 /* ./syntax//icode_generation.nit:1110 */
5556 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5557 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5558 /* ./syntax//icode_generation.nit:1111 */
5559 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
5560 /* ./syntax//icode_generation.nit:1112 */
5561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5562 /* ./syntax//icode_generation.nit:1113 */
5563 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5564 /* ./syntax//icode_generation.nit:1114 */
5565 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5566 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
5567 if (UNTAG_Bool(REGB0
)) {
5569 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1114);
5571 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5572 /* ./syntax//icode_generation.nit:1115 */
5573 fra
.me
.REG
[5] = NIT_NULL
;
5574 /* ./syntax//icode_generation.nit:1119 */
5575 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5576 /* ./syntax//icode_generation.nit:1120 */
5577 fra
.me
.REG
[6] = NIT_NULL
;
5578 /* ./syntax//icode_generation.nit:1121 */
5579 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5580 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5581 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5582 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5583 if (UNTAG_Bool(REGB0
)) {
5584 /* ./syntax//icode_generation.nit:1122 */
5585 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5586 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5587 /* ./syntax//icode_generation.nit:1123 */
5588 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5589 if (UNTAG_Bool(REGB0
)) {
5591 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5592 if (UNTAG_Bool(REGB1
)) {
5593 REGB1
= TAG_Bool(false);
5596 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
5600 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5601 if (UNTAG_Bool(REGB0
)) {
5602 /* ./syntax//icode_generation.nit:1124 */
5603 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5604 fra
.me
.REG
[5] = fra
.me
.REG
[7];
5606 /* ./syntax//icode_generation.nit:1126 */
5607 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
5608 /* ./syntax//icode_generation.nit:1127 */
5609 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5610 /* ./syntax//icode_generation.nit:1128 */
5611 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5612 /* ./syntax//icode_generation.nit:1129 */
5613 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
5614 fra
.me
.REG
[6] = fra
.me
.REG
[8];
5615 /* ./syntax//icode_generation.nit:1130 */
5617 /* ./syntax//icode_generation.nit:1131 */
5618 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5619 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5620 if (UNTAG_Bool(REGB0
)) {
5622 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5623 if (UNTAG_Bool(REGB1
)) {
5624 REGB1
= TAG_Bool(false);
5627 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5631 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5632 if (UNTAG_Bool(REGB0
)) {
5633 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5634 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5635 if (UNTAG_Bool(REGB0
)) {
5636 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1131);
5638 /* ./../lib/standard//collection//array.nit:23 */
5639 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
5640 if (UNTAG_Bool(REGB0
)) {
5642 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5644 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
5646 /* ./syntax//icode_generation.nit:1132 */
5647 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5648 /* ./syntax//icode_generation.nit:1133 */
5649 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5650 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5651 /* ./../lib/standard//collection//array.nit:232 */
5653 /* ./../lib/standard//collection//array.nit:233 */
5654 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5655 if (UNTAG_Bool(REGB1
)) {
5657 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
5659 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5660 /* ./../lib/standard//collection//array.nit:234 */
5661 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
5662 /* ./../lib/standard//collection//array.nit:235 */
5664 /* ./../lib/standard//collection//array.nit:23 */
5665 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5666 if (UNTAG_Bool(REGB1
)) {
5668 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5670 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5671 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5672 if (UNTAG_Bool(REGB2
)) {
5674 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5676 /* ./../lib/standard//kernel.nit:215 */
5677 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5678 /* ./../lib/standard//collection//array.nit:235 */
5679 if (UNTAG_Bool(REGB1
)) {
5680 /* ./../lib/standard//collection//array.nit:236 */
5681 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
5682 if (UNTAG_Bool(REGB1
)) {
5683 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
5685 /* ./../lib/standard//collection//array.nit:652 */
5686 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
5687 /* ./syntax//icode_generation.nit:1134 */
5688 REGB1
= TAG_Bool(false);
5689 /* ./syntax//icode_generation.nit:1135 */
5690 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
5691 /* ./syntax//icode_generation.nit:1136 */
5692 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5693 if (UNTAG_Bool(REGB2
)) {
5695 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5696 if (UNTAG_Bool(REGB3
)) {
5697 REGB3
= TAG_Bool(false);
5700 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5704 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5705 if (UNTAG_Bool(REGB2
)) {
5706 /* ./syntax//icode_generation.nit:1137 */
5707 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5708 if (UNTAG_Bool(REGB2
)) {
5709 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1137);
5711 /* ./../lib/standard//collection//array.nit:229 */
5712 fra
.me
.REG
[12] = fra
.me
.REG
[8];
5713 /* ./../lib/standard//collection//array.nit:232 */
5715 /* ./../lib/standard//collection//array.nit:233 */
5716 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5717 if (UNTAG_Bool(REGB3
)) {
5719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
5721 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5722 /* ./../lib/standard//collection//array.nit:234 */
5723 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
5724 /* ./../lib/standard//collection//array.nit:235 */
5726 /* ./../lib/standard//collection//array.nit:23 */
5727 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5728 if (UNTAG_Bool(REGB3
)) {
5730 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5732 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5733 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5734 if (UNTAG_Bool(REGB4
)) {
5736 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5738 /* ./../lib/standard//kernel.nit:215 */
5739 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
5740 /* ./../lib/standard//collection//array.nit:235 */
5741 if (UNTAG_Bool(REGB3
)) {
5742 /* ./../lib/standard//collection//array.nit:236 */
5743 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
5744 if (UNTAG_Bool(REGB3
)) {
5745 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
5747 /* ./../lib/standard//collection//array.nit:652 */
5748 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
5749 /* ./syntax//icode_generation.nit:1138 */
5750 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5751 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
5752 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
5753 if (UNTAG_Bool(REGB3
)) {
5755 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
5758 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
5759 if (UNTAG_Bool(REGB3
)) {
5762 /* ./syntax//icode_generation.nit:1139 */
5763 REGB3
= TAG_Bool(false);
5764 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
5765 if (UNTAG_Bool(REGB4
)) {
5767 /* ./../lib/standard//kernel.nit:178 */
5768 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
5769 /* ./syntax//icode_generation.nit:1139 */
5772 if (UNTAG_Bool(REGB4
)) {
5774 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1139);
5776 /* ./syntax//icode_generation.nit:1140 */
5777 REGB4
= TAG_Bool(true);
5779 /* ./syntax//icode_generation.nit:1141 */
5780 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5781 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5782 if (UNTAG_Bool(REGB4
)) {
5783 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1141);
5785 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
5786 /* ./syntax//icode_generation.nit:1142 */
5787 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5788 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5789 if (UNTAG_Bool(REGB4
)) {
5790 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1142);
5792 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
5793 /* ./syntax//icode_generation.nit:1143 */
5794 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
5795 /* ./syntax//icode_generation.nit:1144 */
5796 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5797 if (UNTAG_Bool(REGB4
)) {
5798 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1144);
5800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
5802 /* ./../lib/standard//collection//array.nit:237 */
5804 /* ./../lib/standard//kernel.nit:218 */
5805 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
5806 /* ./../lib/standard//collection//array.nit:237 */
5809 /* ./../lib/standard//collection//array.nit:235 */
5815 /* ./syntax//icode_generation.nit:1147 */
5816 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5817 if (UNTAG_Bool(REGB1
)) {
5818 /* ./syntax//icode_generation.nit:1148 */
5819 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5820 if (UNTAG_Bool(REGB1
)) {
5821 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1148);
5823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5825 /* ./../lib/standard//collection//array.nit:237 */
5827 /* ./../lib/standard//kernel.nit:218 */
5828 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5829 /* ./../lib/standard//collection//array.nit:237 */
5832 /* ./../lib/standard//collection//array.nit:235 */
5838 /* ./syntax//icode_generation.nit:1153 */
5839 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[6]);
5840 /* ./syntax//icode_generation.nit:1156 */
5841 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5842 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5843 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5844 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5845 if (UNTAG_Bool(REGB0
)) {
5846 /* ./syntax//icode_generation.nit:1157 */
5847 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5848 if (UNTAG_Bool(REGB0
)) {
5850 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5851 if (UNTAG_Bool(REGB1
)) {
5852 REGB1
= TAG_Bool(false);
5855 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5859 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5860 if (UNTAG_Bool(REGB0
)) {
5861 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5862 if (UNTAG_Bool(REGB0
)) {
5864 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5865 if (UNTAG_Bool(REGB1
)) {
5866 REGB1
= TAG_Bool(false);
5869 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5873 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5875 REGB1
= TAG_Bool(false);
5878 if (UNTAG_Bool(REGB0
)) {
5879 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5881 /* ./syntax//icode_generation.nit:1158 */
5882 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5884 /* ./syntax//icode_generation.nit:1160 */
5885 fra
.me
.REG
[5] = fra
.me
.REG
[6];
5887 /* ./syntax//icode_generation.nit:1163 */
5888 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5889 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5890 if (UNTAG_Bool(REGB0
)) {
5891 /* ./syntax//icode_generation.nit:1164 */
5892 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5894 /* ./syntax//icode_generation.nit:1166 */
5897 stack_frame_head
= fra
.me
.prev
;
5898 return fra
.me
.REG
[5];
5900 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
5901 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
5904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5905 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5907 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
5908 fra
.me
.has_broke
= 0;
5909 fra
.me
.REG_size
= 8;
5910 fra
.me
.REG
[0] = NIT_NULL
;
5911 fra
.me
.REG
[1] = NIT_NULL
;
5912 fra
.me
.REG
[2] = NIT_NULL
;
5913 fra
.me
.REG
[3] = NIT_NULL
;
5914 fra
.me
.REG
[4] = NIT_NULL
;
5915 fra
.me
.REG
[5] = NIT_NULL
;
5916 fra
.me
.REG
[6] = NIT_NULL
;
5917 fra
.me
.REG
[7] = NIT_NULL
;
5920 /* ./syntax//icode_generation.nit:1171 */
5921 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5922 /* ./syntax//icode_generation.nit:1173 */
5923 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5924 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5925 /* ./syntax//icode_generation.nit:1174 */
5926 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5927 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5928 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5929 if (UNTAG_Bool(REGB0
)) {
5930 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5932 /* ./syntax//icode_generation.nit:1175 */
5933 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
5934 /* ./syntax//icode_generation.nit:1176 */
5935 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5936 /* ./syntax//icode_generation.nit:1177 */
5937 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5938 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5939 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
5940 if (UNTAG_Bool(REGB0
)) {
5942 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1177);
5944 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
5945 /* ./syntax//icode_generation.nit:1179 */
5946 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5947 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5948 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5949 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5950 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5951 if (UNTAG_Bool(REGB0
)) {
5952 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1179);
5954 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5955 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
5956 if (UNTAG_Bool(REGB0
)) {
5958 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1179);
5960 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
5961 /* ./syntax//icode_generation.nit:1180 */
5962 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5963 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5964 /* ./syntax//icode_generation.nit:1181 */
5965 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5967 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
5969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
5970 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5971 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5972 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5973 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5974 if (UNTAG_Bool(REGB0
)) {
5975 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1181);
5977 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5978 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
5979 if (UNTAG_Bool(REGB0
)) {
5981 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1181);
5983 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[6]);
5984 /* ./syntax//icode_generation.nit:1182 */
5985 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5986 /* ./syntax//icode_generation.nit:1183 */
5987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
5988 /* ./syntax//icode_generation.nit:1184 */
5989 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5990 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5991 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5992 /* ./syntax//icode_generation.nit:1185 */
5993 fra
.me
.REG
[4] = NIT_NULL
;
5996 stack_frame_head
= fra
.me
.prev
;
5997 return fra
.me
.REG
[4];
5999 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6000 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6003 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6004 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6006 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6007 fra
.me
.has_broke
= 0;
6008 fra
.me
.REG_size
= 5;
6009 fra
.me
.REG
[0] = NIT_NULL
;
6010 fra
.me
.REG
[1] = NIT_NULL
;
6011 fra
.me
.REG
[2] = NIT_NULL
;
6012 fra
.me
.REG
[3] = NIT_NULL
;
6013 fra
.me
.REG
[4] = NIT_NULL
;
6016 /* ./syntax//icode_generation.nit:1190 */
6017 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6018 /* ./syntax//icode_generation.nit:1192 */
6019 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6020 /* ./syntax//icode_generation.nit:1193 */
6021 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6022 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6023 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
6024 if (UNTAG_Bool(REGB0
)) {
6026 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1193);
6028 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
6029 /* ./syntax//icode_generation.nit:1194 */
6030 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6031 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6032 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6033 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6034 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6037 stack_frame_head
= fra
.me
.prev
;
6038 return fra
.me
.REG
[2];
6040 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6041 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6044 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6046 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6047 fra
.me
.has_broke
= 0;
6048 fra
.me
.REG_size
= 2;
6049 fra
.me
.REG
[0] = NIT_NULL
;
6050 fra
.me
.REG
[1] = NIT_NULL
;
6053 /* ./syntax//icode_generation.nit:1201 */
6054 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6055 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6058 stack_frame_head
= fra
.me
.prev
;
6059 return fra
.me
.REG
[0];
6061 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6062 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6064 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6065 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6067 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6068 fra
.me
.has_broke
= 0;
6069 fra
.me
.REG_size
= 5;
6070 fra
.me
.REG
[0] = NIT_NULL
;
6071 fra
.me
.REG
[1] = NIT_NULL
;
6072 fra
.me
.REG
[2] = NIT_NULL
;
6073 fra
.me
.REG
[3] = NIT_NULL
;
6074 fra
.me
.REG
[4] = NIT_NULL
;
6077 /* ./syntax//icode_generation.nit:1208 */
6078 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6079 /* ./syntax//icode_generation.nit:1209 */
6080 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6081 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6082 /* ./syntax//icode_generation.nit:1210 */
6083 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6084 /* ./syntax//icode_generation.nit:1211 */
6085 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6086 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6087 /* ./syntax//icode_generation.nit:1213 */
6088 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6089 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6090 /* ./syntax//icode_generation.nit:1214 */
6091 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6092 /* ./syntax//icode_generation.nit:1216 */
6093 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6094 /* ./syntax//icode_generation.nit:1217 */
6097 stack_frame_head
= fra
.me
.prev
;
6098 return fra
.me
.REG
[3];
6100 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6101 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6109 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6110 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6112 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6113 fra
.me
.has_broke
= 0;
6114 fra
.me
.REG_size
= 7;
6115 fra
.me
.REG
[0] = NIT_NULL
;
6116 fra
.me
.REG
[1] = NIT_NULL
;
6117 fra
.me
.REG
[2] = NIT_NULL
;
6118 fra
.me
.REG
[3] = NIT_NULL
;
6119 fra
.me
.REG
[4] = NIT_NULL
;
6120 fra
.me
.REG
[5] = NIT_NULL
;
6121 fra
.me
.REG
[6] = NIT_NULL
;
6124 /* ./syntax//icode_generation.nit:1225 */
6125 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6126 /* ./syntax//icode_generation.nit:1228 */
6127 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6128 /* ./syntax//icode_generation.nit:1229 */
6129 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6130 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6131 /* ./syntax//icode_generation.nit:1230 */
6133 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6134 /* ./../lib/standard//kernel.nit:335 */
6136 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6137 if (UNTAG_Bool(REGB2
)) {
6139 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6141 /* ./../lib/standard//kernel.nit:215 */
6142 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6143 /* ./../lib/standard//kernel.nit:335 */
6144 if (UNTAG_Bool(REGB2
)) {
6145 /* ./syntax//icode_generation.nit:1230 */
6147 /* ./syntax//icode_generation.nit:1231 */
6148 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6149 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6151 /* ./../lib/standard//kernel.nit:337 */
6153 /* ./../lib/standard//kernel.nit:218 */
6154 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6155 /* ./../lib/standard//kernel.nit:337 */
6158 /* ./../lib/standard//kernel.nit:335 */
6163 /* ./syntax//icode_generation.nit:1233 */
6164 fra
.me
.REG
[5] = NIT_NULL
;
6165 /* ./syntax//icode_generation.nit:1234 */
6166 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6167 /* ./syntax//icode_generation.nit:1235 */
6168 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6169 if (UNTAG_Bool(REGB0
)) {
6171 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6172 if (UNTAG_Bool(REGB1
)) {
6173 REGB1
= TAG_Bool(false);
6176 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6180 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6181 if (UNTAG_Bool(REGB0
)) {
6182 /* ./syntax//icode_generation.nit:1236 */
6183 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6184 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6186 /* ./syntax//icode_generation.nit:1239 */
6187 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6188 /* ./syntax//icode_generation.nit:1240 */
6189 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6190 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6191 /* ./syntax//icode_generation.nit:1243 */
6192 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6193 /* ./syntax//icode_generation.nit:1244 */
6194 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6195 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6196 /* ./syntax//icode_generation.nit:1245 */
6197 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6198 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6199 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6200 if (UNTAG_Bool(REGB0
)) {
6201 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1245);
6203 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6204 /* ./syntax//icode_generation.nit:1246 */
6205 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6206 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6207 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6208 if (UNTAG_Bool(REGB0
)) {
6209 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1246);
6211 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6212 /* ./syntax//icode_generation.nit:1249 */
6214 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6215 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6216 if (UNTAG_Bool(REGB1
)) {
6217 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1249);
6219 /* ./../lib/standard//collection//array.nit:23 */
6220 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6221 if (UNTAG_Bool(REGB1
)) {
6223 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6225 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6226 /* ./../lib/standard//kernel.nit:335 */
6228 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6229 if (UNTAG_Bool(REGB2
)) {
6231 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6233 /* ./../lib/standard//kernel.nit:215 */
6234 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6235 /* ./../lib/standard//kernel.nit:335 */
6236 if (UNTAG_Bool(REGB2
)) {
6237 /* ./syntax//icode_generation.nit:1249 */
6239 /* ./syntax//icode_generation.nit:1250 */
6240 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6241 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6242 if (UNTAG_Bool(REGB3
)) {
6243 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1250);
6245 /* ./../lib/standard//collection//array.nit:241 */
6247 /* ./../lib/standard//collection//array.nit:243 */
6249 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6250 if (UNTAG_Bool(REGB5
)) {
6252 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6254 /* ./../lib/standard//kernel.nit:216 */
6255 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6256 /* ./../lib/standard//collection//array.nit:243 */
6257 if (UNTAG_Bool(REGB4
)) {
6258 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6259 if (UNTAG_Bool(REGB4
)) {
6261 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
6263 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6264 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6265 if (UNTAG_Bool(REGB5
)) {
6267 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6269 /* ./../lib/standard//kernel.nit:215 */
6270 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6272 /* ./../lib/standard//collection//array.nit:243 */
6273 REGB5
= TAG_Bool(false);
6276 if (UNTAG_Bool(REGB4
)) {
6278 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
6280 /* ./../lib/standard//collection//array.nit:244 */
6281 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6282 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6283 if (UNTAG_Bool(REGB4
)) {
6284 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
6286 /* ./../lib/standard//collection//array.nit:652 */
6287 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6288 /* ./../lib/standard//collection//array.nit:244 */
6291 /* ./syntax//icode_generation.nit:1250 */
6292 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6293 /* ./syntax//icode_generation.nit:1251 */
6294 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6295 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6296 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6297 /* ./../lib/standard//kernel.nit:337 */
6299 /* ./../lib/standard//kernel.nit:218 */
6300 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6301 /* ./../lib/standard//kernel.nit:337 */
6304 /* ./../lib/standard//kernel.nit:335 */
6309 /* ./syntax//icode_generation.nit:1254 */
6310 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6311 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6312 /* ./syntax//icode_generation.nit:1257 */
6313 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6314 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6315 if (UNTAG_Bool(REGB0
)) {
6316 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6317 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6318 if (UNTAG_Bool(REGB0
)) {
6319 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1257);
6321 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6322 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6323 if (UNTAG_Bool(REGB0
)) {
6325 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6326 if (UNTAG_Bool(REGB1
)) {
6327 REGB1
= TAG_Bool(false);
6330 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6335 REGB1
= TAG_Bool(false);
6338 if (UNTAG_Bool(REGB0
)) {
6339 /* ./syntax//icode_generation.nit:1258 */
6340 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6341 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6342 if (UNTAG_Bool(REGB0
)) {
6343 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1258);
6345 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6346 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6347 if (UNTAG_Bool(REGB0
)) {
6349 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1258);
6351 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6353 /* ./syntax//icode_generation.nit:1261 */
6354 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6355 /* ./syntax//icode_generation.nit:1262 */
6356 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6357 /* ./syntax//icode_generation.nit:1263 */
6360 stack_frame_head
= fra
.me
.prev
;
6361 return fra
.me
.REG
[5];
6363 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6364 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6369 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6370 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6372 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6373 fra
.me
.has_broke
= 0;
6374 fra
.me
.REG_size
= 9;
6375 fra
.me
.REG
[0] = NIT_NULL
;
6376 fra
.me
.REG
[1] = NIT_NULL
;
6377 fra
.me
.REG
[2] = NIT_NULL
;
6378 fra
.me
.REG
[3] = NIT_NULL
;
6379 fra
.me
.REG
[4] = NIT_NULL
;
6380 fra
.me
.REG
[5] = NIT_NULL
;
6381 fra
.me
.REG
[6] = NIT_NULL
;
6382 fra
.me
.REG
[7] = NIT_NULL
;
6383 fra
.me
.REG
[8] = NIT_NULL
;
6386 /* ./syntax//icode_generation.nit:1271 */
6387 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6388 /* ./syntax//icode_generation.nit:1272 */
6389 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6390 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6391 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6392 CALL_syntax___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]);
6393 /* ./syntax//icode_generation.nit:1275 */
6394 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6395 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6396 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6397 /* ./syntax//icode_generation.nit:1276 */
6398 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6399 /* ./syntax//icode_generation.nit:1277 */
6400 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6401 /* ./syntax//icode_generation.nit:1280 */
6402 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6403 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6405 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6406 if (UNTAG_Bool(REGB2
)) {
6408 /* ./../lib/standard//kernel.nit:210 */
6409 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6410 /* ./syntax//icode_generation.nit:1280 */
6413 if (UNTAG_Bool(REGB2
)) {
6414 /* ./syntax//icode_generation.nit:1281 */
6415 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6416 /* ./syntax//icode_generation.nit:1282 */
6417 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6418 /* ./syntax//icode_generation.nit:1283 */
6419 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6420 /* ./syntax//icode_generation.nit:1284 */
6421 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6422 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6423 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6424 if (UNTAG_Bool(REGB2
)) {
6425 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1284);
6427 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6428 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6429 /* ./syntax//icode_generation.nit:1285 */
6430 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6432 /* ./syntax//icode_generation.nit:1289 */
6433 fra
.me
.REG
[6] = NIT_NULL
;
6434 /* ./syntax//icode_generation.nit:1290 */
6435 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6436 /* ./syntax//icode_generation.nit:1291 */
6437 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6438 if (UNTAG_Bool(REGB2
)) {
6440 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6441 if (UNTAG_Bool(REGB1
)) {
6442 REGB1
= TAG_Bool(false);
6445 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6449 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6450 if (UNTAG_Bool(REGB2
)) {
6451 /* ./syntax//icode_generation.nit:1292 */
6452 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6453 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6454 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6455 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[8]);
6456 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6457 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6458 /* ./syntax//icode_generation.nit:1293 */
6459 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6460 /* ./syntax//icode_generation.nit:1294 */
6461 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6462 if (UNTAG_Bool(REGB2
)) {
6463 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1294);
6465 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6466 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6468 /* ./syntax//icode_generation.nit:1298 */
6469 fra
.me
.REG
[8] = NIT_NULL
;
6470 /* ./syntax//icode_generation.nit:1299 */
6471 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6472 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6473 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6474 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6475 /* ./syntax//icode_generation.nit:1300 */
6476 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6477 if (UNTAG_Bool(REGB2
)) {
6479 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6480 if (UNTAG_Bool(REGB1
)) {
6481 REGB1
= TAG_Bool(false);
6484 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6488 if (UNTAG_Bool(REGB2
)) {
6489 /* ./syntax//icode_generation.nit:1301 */
6490 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6492 /* ./syntax//icode_generation.nit:1303 */
6493 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6494 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6496 /* ./syntax//icode_generation.nit:1307 */
6497 fra
.me
.REG
[3] = NIT_NULL
;
6498 /* ./syntax//icode_generation.nit:1308 */
6499 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6500 if (UNTAG_Bool(REGB2
)) {
6502 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6503 if (UNTAG_Bool(REGB1
)) {
6504 REGB1
= TAG_Bool(false);
6507 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6511 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6512 if (UNTAG_Bool(REGB2
)) {
6513 /* ./syntax//icode_generation.nit:1309 */
6514 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6515 if (UNTAG_Bool(REGB2
)) {
6517 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6518 if (UNTAG_Bool(REGB1
)) {
6519 REGB1
= TAG_Bool(false);
6522 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6526 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6527 if (UNTAG_Bool(REGB2
)) {
6529 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1309);
6531 /* ./syntax//icode_generation.nit:1310 */
6532 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6533 if (UNTAG_Bool(REGB2
)) {
6535 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6536 if (UNTAG_Bool(REGB1
)) {
6537 REGB1
= TAG_Bool(false);
6540 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6544 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6545 if (UNTAG_Bool(REGB2
)) {
6546 /* ./syntax//icode_generation.nit:1311 */
6547 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6548 if (UNTAG_Bool(REGB2
)) {
6550 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6551 if (UNTAG_Bool(REGB1
)) {
6552 REGB1
= TAG_Bool(false);
6555 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6559 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6560 if (UNTAG_Bool(REGB2
)) {
6562 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1311);
6564 /* ./syntax//icode_generation.nit:1312 */
6565 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6566 fra
.me
.REG
[3] = fra
.me
.REG
[0];
6567 /* ./syntax//icode_generation.nit:1313 */
6568 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
6570 /* ./syntax//icode_generation.nit:1315 */
6571 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6572 if (UNTAG_Bool(REGB2
)) {
6573 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1315);
6575 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6576 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6577 /* ./syntax//icode_generation.nit:1316 */
6578 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[2], NIT_NULL
);
6579 /* ./syntax//icode_generation.nit:1317 */
6580 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6581 if (UNTAG_Bool(REGB2
)) {
6583 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6584 if (UNTAG_Bool(REGB1
)) {
6585 REGB1
= TAG_Bool(false);
6588 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6592 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6593 if (UNTAG_Bool(REGB2
)) {
6594 /* ./syntax//icode_generation.nit:1318 */
6595 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6596 if (UNTAG_Bool(REGB2
)) {
6598 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6599 if (UNTAG_Bool(REGB1
)) {
6600 REGB1
= TAG_Bool(false);
6603 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6607 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6608 if (UNTAG_Bool(REGB2
)) {
6610 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1318);
6612 /* ./syntax//icode_generation.nit:1319 */
6613 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6615 /* ./syntax//icode_generation.nit:1321 */
6616 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6618 /* ./syntax//icode_generation.nit:1323 */
6619 fra
.me
.REG
[3] = fra
.me
.REG
[8];
6621 /* ./syntax//icode_generation.nit:1325 */
6624 stack_frame_head
= fra
.me
.prev
;
6625 return fra
.me
.REG
[3];