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:278 */
529 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
537 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
538 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
552 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
554 /* ./../lib/standard//collection//array.nit:280 */
555 REGB4
= TAG_Bool(false);
558 if (UNTAG_Bool(REGB3
)) {
560 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
562 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
568 /* ./../lib/standard//collection//array.nit:718 */
569 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
570 /* ./../lib/standard//collection//array.nit:281 */
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:235 */
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:235 */
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:278 */
615 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
623 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
624 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
638 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
640 /* ./../lib/standard//collection//array.nit:280 */
641 REGB4
= TAG_Bool(false);
644 if (UNTAG_Bool(REGB3
)) {
646 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
648 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
654 /* ./../lib/standard//collection//array.nit:718 */
655 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
656 /* ./../lib/standard//collection//array.nit:281 */
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:235 */
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:235 */
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:24 */
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
, 24);
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:232 */
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:280 */
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:233 */
731 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
732 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
746 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
748 /* ./../lib/standard//collection//array.nit:280 */
749 REGB3
= TAG_Bool(false);
752 if (UNTAG_Bool(REGB2
)) {
754 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
756 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
762 /* ./../lib/standard//collection//array.nit:718 */
763 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
764 /* ./../lib/standard//collection//array.nit:281 */
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:24 */
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
, 24);
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:232 */
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:278 */
802 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
810 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
811 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
825 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
827 /* ./../lib/standard//collection//array.nit:280 */
828 REGB4
= TAG_Bool(false);
831 if (UNTAG_Bool(REGB3
)) {
833 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
835 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
841 /* ./../lib/standard//collection//array.nit:718 */
842 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
843 /* ./../lib/standard//collection//array.nit:281 */
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:227 */
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:235 */
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 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1165 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
));
1166 stack_frame_head
= fra
.me
.prev
;
1169 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
){
1170 struct {struct stack_frame_t me
;} fra
;
1173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1174 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1176 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1177 fra
.me
.has_broke
= 0;
1178 fra
.me
.REG_size
= 1;
1179 fra
.me
.REG
[0] = NIT_NULL
;
1180 fra
.me
.closure_ctx
= closctx_param
;
1181 fra
.me
.closure_funs
= CREG
;
1183 CREG
[0] = clos_fun0
;
1184 /* ./syntax//icode_generation.nit:184 */
1185 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1186 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1187 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
));
1188 stack_frame_head
= fra
.me
.prev
;
1191 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
){
1192 struct {struct stack_frame_t me
;} fra
;
1196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1197 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1199 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1200 fra
.me
.has_broke
= 0;
1201 fra
.me
.REG_size
= 1;
1202 fra
.me
.REG
[0] = NIT_NULL
;
1203 fra
.me
.closure_ctx
= closctx_param
;
1204 fra
.me
.closure_funs
= CREG
;
1206 CREG
[0] = clos_fun0
;
1207 /* ./syntax//icode_generation.nit:185 */
1208 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1209 if (UNTAG_Bool(REGB0
)) {
1210 /* ./syntax//icode_generation.nit:186 */
1211 CALL_syntax___icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1213 /* ./syntax//icode_generation.nit:187 */
1214 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcAttribute
, ID_syntax___syntax_base___MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1215 if (UNTAG_Bool(REGB0
)) {
1216 /* ./syntax//icode_generation.nit:188 */
1217 CALL_syntax___icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1220 stack_frame_head
= fra
.me
.prev
;
1223 val_t
syntax___icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1224 struct {struct stack_frame_t me
;} fra
;
1226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1227 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1229 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine
;
1230 fra
.me
.has_broke
= 0;
1231 fra
.me
.REG_size
= 1;
1232 fra
.me
.REG
[0] = NIT_NULL
;
1234 /* ./syntax//icode_generation.nit:196 */
1235 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1236 stack_frame_head
= fra
.me
.prev
;
1237 return fra
.me
.REG
[0];
1239 void syntax___icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1240 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1242 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1243 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1245 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine__eq
;
1246 fra
.me
.has_broke
= 0;
1247 fra
.me
.REG_size
= 2;
1248 fra
.me
.REG
[0] = NIT_NULL
;
1249 fra
.me
.REG
[1] = NIT_NULL
;
1252 /* ./syntax//icode_generation.nit:196 */
1253 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1254 stack_frame_head
= fra
.me
.prev
;
1257 void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1258 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1262 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1263 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1265 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___generate_iroutine
;
1266 fra
.me
.has_broke
= 0;
1267 fra
.me
.REG_size
= 4;
1268 fra
.me
.REG
[0] = NIT_NULL
;
1269 fra
.me
.REG
[1] = NIT_NULL
;
1270 fra
.me
.REG
[2] = NIT_NULL
;
1271 fra
.me
.REG
[3] = NIT_NULL
;
1274 /* ./syntax//icode_generation.nit:201 */
1275 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1276 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1277 if (UNTAG_Bool(REGB0
)) {
1278 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 201);
1280 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1281 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1282 if (UNTAG_Bool(REGB0
)) {
1284 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1285 if (UNTAG_Bool(REGB1
)) {
1286 REGB1
= TAG_Bool(false);
1289 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1293 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1294 if (UNTAG_Bool(REGB0
)) {
1295 /* ./syntax//icode_generation.nit:202 */
1296 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1297 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1298 if (UNTAG_Bool(REGB0
)) {
1299 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 202);
1301 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1302 /* ./syntax//icode_generation.nit:203 */
1303 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1304 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1305 if (UNTAG_Bool(REGB0
)) {
1306 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 203);
1308 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1309 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1310 /* ./syntax//icode_generation.nit:204 */
1311 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1312 /* ./syntax//icode_generation.nit:205 */
1313 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1314 /* ./syntax//icode_generation.nit:206 */
1315 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1316 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1317 /* ./syntax//icode_generation.nit:207 */
1318 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1319 /* ./syntax//icode_generation.nit:208 */
1320 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1322 stack_frame_head
= fra
.me
.prev
;
1325 val_t
syntax___icode_generation___MMSrcMethod___iroutine(val_t p0
){
1326 struct {struct stack_frame_t me
;} fra
;
1328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1329 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1331 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine
;
1332 fra
.me
.has_broke
= 0;
1333 fra
.me
.REG_size
= 1;
1334 fra
.me
.REG
[0] = NIT_NULL
;
1336 /* ./syntax//icode_generation.nit:214 */
1337 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1338 stack_frame_head
= fra
.me
.prev
;
1339 return fra
.me
.REG
[0];
1341 void syntax___icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1342 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1344 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1345 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1347 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine__eq
;
1348 fra
.me
.has_broke
= 0;
1349 fra
.me
.REG_size
= 2;
1350 fra
.me
.REG
[0] = NIT_NULL
;
1351 fra
.me
.REG
[1] = NIT_NULL
;
1354 /* ./syntax//icode_generation.nit:214 */
1355 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1356 stack_frame_head
= fra
.me
.prev
;
1359 void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1360 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1365 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1367 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___generate_iroutine
;
1368 fra
.me
.has_broke
= 0;
1369 fra
.me
.REG_size
= 4;
1370 fra
.me
.REG
[0] = NIT_NULL
;
1371 fra
.me
.REG
[1] = NIT_NULL
;
1372 fra
.me
.REG
[2] = NIT_NULL
;
1373 fra
.me
.REG
[3] = NIT_NULL
;
1376 /* ./syntax//icode_generation.nit:219 */
1377 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1378 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1379 if (UNTAG_Bool(REGB0
)) {
1380 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 219);
1382 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1383 /* ./syntax//icode_generation.nit:220 */
1384 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1385 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1386 if (UNTAG_Bool(REGB0
)) {
1388 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1389 if (UNTAG_Bool(REGB1
)) {
1390 REGB1
= TAG_Bool(false);
1393 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1397 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1398 if (UNTAG_Bool(REGB0
)) {
1399 /* ./syntax//icode_generation.nit:221 */
1400 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1401 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1402 if (UNTAG_Bool(REGB0
)) {
1403 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 221);
1405 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1406 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1408 /* ./syntax//icode_generation.nit:223 */
1409 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1410 /* ./syntax//icode_generation.nit:224 */
1411 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1412 /* ./syntax//icode_generation.nit:225 */
1413 CALL_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1414 /* ./syntax//icode_generation.nit:226 */
1415 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1416 /* ./syntax//icode_generation.nit:227 */
1417 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1418 stack_frame_head
= fra
.me
.prev
;
1421 void syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1422 struct {struct stack_frame_t me
;} fra
;
1424 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1425 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1427 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine
;
1428 fra
.me
.has_broke
= 0;
1429 fra
.me
.REG_size
= 0;
1430 /* ./syntax//icode_generation.nit:230 */
1431 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 230);
1432 stack_frame_head
= fra
.me
.prev
;
1435 void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1436 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1439 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1440 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1442 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1443 fra
.me
.has_broke
= 0;
1444 fra
.me
.REG_size
= 3;
1445 fra
.me
.REG
[0] = NIT_NULL
;
1446 fra
.me
.REG
[1] = NIT_NULL
;
1447 fra
.me
.REG
[2] = NIT_NULL
;
1450 /* ./syntax//icode_generation.nit:237 */
1451 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1452 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1453 if (UNTAG_Bool(REGB0
)) {
1454 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 237);
1456 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1457 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1458 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1459 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1460 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]);
1461 /* ./syntax//icode_generation.nit:238 */
1462 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1463 stack_frame_head
= fra
.me
.prev
;
1466 void syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1467 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1471 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1473 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1474 fra
.me
.has_broke
= 0;
1475 fra
.me
.REG_size
= 4;
1476 fra
.me
.REG
[0] = NIT_NULL
;
1477 fra
.me
.REG
[1] = NIT_NULL
;
1478 fra
.me
.REG
[2] = NIT_NULL
;
1479 fra
.me
.REG
[3] = NIT_NULL
;
1482 /* ./syntax//icode_generation.nit:245 */
1483 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1484 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1485 /* ./syntax//icode_generation.nit:246 */
1486 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1487 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1488 if (UNTAG_Bool(REGB0
)) {
1489 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 246);
1491 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1493 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1495 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1496 fra
.me
.REG
[2] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1497 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1498 stack_frame_head
= fra
.me
.prev
;
1501 void syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1502 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1505 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1507 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1508 fra
.me
.has_broke
= 0;
1509 fra
.me
.REG_size
= 2;
1510 fra
.me
.REG
[0] = NIT_NULL
;
1511 fra
.me
.REG
[1] = NIT_NULL
;
1514 /* ./syntax//icode_generation.nit:253 */
1515 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1516 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1517 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1518 stack_frame_head
= fra
.me
.prev
;
1521 void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1522 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1532 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1534 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMImplicitInit___inner_generate_iroutine
;
1535 fra
.me
.has_broke
= 0;
1536 fra
.me
.REG_size
= 10;
1537 fra
.me
.REG
[0] = NIT_NULL
;
1538 fra
.me
.REG
[1] = NIT_NULL
;
1539 fra
.me
.REG
[2] = NIT_NULL
;
1540 fra
.me
.REG
[3] = NIT_NULL
;
1541 fra
.me
.REG
[4] = NIT_NULL
;
1542 fra
.me
.REG
[5] = NIT_NULL
;
1543 fra
.me
.REG
[6] = NIT_NULL
;
1544 fra
.me
.REG
[7] = NIT_NULL
;
1545 fra
.me
.REG
[8] = NIT_NULL
;
1546 fra
.me
.REG
[9] = NIT_NULL
;
1549 /* ./syntax//icode_generation.nit:260 */
1550 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1551 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1552 /* ./syntax//icode_generation.nit:261 */
1553 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1554 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1555 /* ./../lib/standard//collection//array.nit:24 */
1556 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1557 if (UNTAG_Bool(REGB1
)) {
1559 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1561 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1562 /* ./../lib/standard//kernel.nit:237 */
1563 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1564 /* ./syntax//icode_generation.nit:262 */
1565 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1566 /* ./syntax//icode_generation.nit:263 */
1567 fra
.me
.REG
[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1568 /* ./../lib/standard//collection//array.nit:269 */
1570 /* ./../lib/standard//collection//array.nit:270 */
1571 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1572 if (UNTAG_Bool(REGB2
)) {
1574 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1576 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1577 /* ./../lib/standard//collection//array.nit:271 */
1578 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1579 /* ./../lib/standard//collection//array.nit:272 */
1581 /* ./../lib/standard//collection//array.nit:24 */
1582 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1583 if (UNTAG_Bool(REGB2
)) {
1585 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1587 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1588 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1589 if (UNTAG_Bool(REGB3
)) {
1591 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1593 /* ./../lib/standard//kernel.nit:232 */
1594 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1595 /* ./../lib/standard//collection//array.nit:272 */
1596 if (UNTAG_Bool(REGB2
)) {
1597 /* ./../lib/standard//collection//array.nit:273 */
1598 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1599 if (UNTAG_Bool(REGB2
)) {
1600 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1602 /* ./../lib/standard//collection//array.nit:718 */
1603 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1604 /* ./syntax//icode_generation.nit:264 */
1605 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1606 if (UNTAG_Bool(REGB2
)) {
1608 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 264);
1610 /* ./syntax//icode_generation.nit:265 */
1612 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1614 /* ./syntax//icode_generation.nit:266 */
1615 fra
.me
.REG
[8] = CALL_syntax___syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1616 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[8]));
1617 if (UNTAG_Bool(REGB2
)) {
1619 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1622 if (UNTAG_Bool(REGB2
)) {
1623 /* ./syntax//icode_generation.nit:267 */
1624 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1625 /* ./syntax//icode_generation.nit:268 */
1626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
1627 /* ./syntax//icode_generation.nit:269 */
1629 /* ./../lib/standard//kernel.nit:347 */
1631 /* ./../lib/standard//kernel.nit:352 */
1633 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1634 if (UNTAG_Bool(REGB4
)) {
1636 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1638 /* ./../lib/standard//kernel.nit:232 */
1639 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1640 /* ./../lib/standard//kernel.nit:352 */
1641 if (UNTAG_Bool(REGB4
)) {
1642 /* ./syntax//icode_generation.nit:269 */
1644 /* ./syntax//icode_generation.nit:270 */
1645 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
1646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1647 /* ./../lib/standard//kernel.nit:354 */
1649 /* ./../lib/standard//kernel.nit:235 */
1650 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1651 /* ./../lib/standard//kernel.nit:354 */
1654 /* ./../lib/standard//kernel.nit:352 */
1659 /* ./syntax//icode_generation.nit:272 */
1660 fra
.me
.REG
[8] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1661 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
1663 /* ./syntax//icode_generation.nit:274 */
1664 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1665 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1667 /* ./../lib/standard//collection//array.nit:274 */
1669 /* ./../lib/standard//kernel.nit:235 */
1670 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1671 /* ./../lib/standard//collection//array.nit:274 */
1674 /* ./../lib/standard//collection//array.nit:272 */
1679 /* ./syntax//icode_generation.nit:277 */
1680 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1681 /* ./../lib/standard//kernel.nit:347 */
1683 /* ./../lib/standard//kernel.nit:352 */
1685 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1686 if (UNTAG_Bool(REGB3
)) {
1688 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1690 /* ./../lib/standard//kernel.nit:232 */
1691 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1692 /* ./../lib/standard//kernel.nit:352 */
1693 if (UNTAG_Bool(REGB3
)) {
1694 /* ./syntax//icode_generation.nit:277 */
1696 /* ./syntax//icode_generation.nit:278 */
1697 fra
.me
.REG
[5] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1698 /* ./../lib/standard//kernel.nit:237 */
1699 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1700 /* ./../lib/standard//collection//array.nit:280 */
1702 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1703 if (UNTAG_Bool(REGB6
)) {
1705 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1707 /* ./../lib/standard//kernel.nit:233 */
1708 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1709 /* ./../lib/standard//collection//array.nit:280 */
1710 if (UNTAG_Bool(REGB5
)) {
1711 REGB5
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1712 if (UNTAG_Bool(REGB5
)) {
1714 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1716 REGB5
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1717 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1718 if (UNTAG_Bool(REGB6
)) {
1720 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1722 /* ./../lib/standard//kernel.nit:232 */
1723 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1725 /* ./../lib/standard//collection//array.nit:280 */
1726 REGB6
= TAG_Bool(false);
1729 if (UNTAG_Bool(REGB5
)) {
1731 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1733 /* ./../lib/standard//collection//array.nit:281 */
1734 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1735 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1736 if (UNTAG_Bool(REGB5
)) {
1737 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1739 /* ./../lib/standard//collection//array.nit:718 */
1740 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1741 /* ./../lib/standard//collection//array.nit:281 */
1744 /* ./syntax//icode_generation.nit:279 */
1745 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
1746 fra
.me
.REG
[4] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[5], fra
.me
.REG
[3], fra
.me
.REG
[4]);
1747 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1748 /* ./../lib/standard//kernel.nit:354 */
1750 /* ./../lib/standard//kernel.nit:235 */
1751 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1752 /* ./../lib/standard//kernel.nit:354 */
1755 /* ./../lib/standard//kernel.nit:352 */
1760 stack_frame_head
= fra
.me
.prev
;
1763 void syntax___icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1764 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1767 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1769 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx__eq
;
1770 fra
.me
.has_broke
= 0;
1771 fra
.me
.REG_size
= 2;
1772 fra
.me
.REG
[0] = NIT_NULL
;
1773 fra
.me
.REG
[1] = NIT_NULL
;
1776 /* ./syntax//icode_generation.nit:286 */
1777 ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1778 stack_frame_head
= fra
.me
.prev
;
1781 val_t
syntax___icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1782 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1785 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1786 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1788 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx
;
1789 fra
.me
.has_broke
= 0;
1790 fra
.me
.REG_size
= 2;
1791 fra
.me
.REG
[0] = NIT_NULL
;
1792 fra
.me
.REG
[1] = NIT_NULL
;
1794 /* ./syntax//icode_generation.nit:287 */
1795 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1796 fra
.me
.REG
[1] = ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[1]);
1797 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1798 if (UNTAG_Bool(REGB0
)) {
1800 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 287);
1804 stack_frame_head
= fra
.me
.prev
;
1805 return fra
.me
.REG
[1];
1807 void syntax___icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1808 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1811 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1812 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1814 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___visit
;
1815 fra
.me
.has_broke
= 0;
1816 fra
.me
.REG_size
= 2;
1817 fra
.me
.REG
[0] = NIT_NULL
;
1818 fra
.me
.REG
[1] = NIT_NULL
;
1821 /* ./syntax//icode_generation.nit:288 */
1822 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1823 if (UNTAG_Bool(REGB0
)) {
1824 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 288);
1826 CALL_syntax___icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1827 stack_frame_head
= fra
.me
.prev
;
1830 void syntax___icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1831 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IVisitor
].i
;
1832 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1834 if (init_table
[itpos1
]) return;
1835 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1836 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1838 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___init
;
1839 fra
.me
.has_broke
= 0;
1840 fra
.me
.REG_size
= 3;
1841 fra
.me
.REG
[0] = NIT_NULL
;
1842 fra
.me
.REG
[1] = NIT_NULL
;
1843 fra
.me
.REG
[2] = NIT_NULL
;
1847 /* ./syntax//icode_generation.nit:289 */
1848 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1849 stack_frame_head
= fra
.me
.prev
;
1850 init_table
[itpos1
] = 1;
1853 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1854 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1856 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1857 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1859 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANode___accept_icode_generation
;
1860 fra
.me
.has_broke
= 0;
1861 fra
.me
.REG_size
= 2;
1862 fra
.me
.REG
[0] = NIT_NULL
;
1863 fra
.me
.REG
[1] = NIT_NULL
;
1866 /* ./syntax//icode_generation.nit:296 */
1867 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1868 stack_frame_head
= fra
.me
.prev
;
1871 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1872 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1876 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1877 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1879 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
;
1880 fra
.me
.has_broke
= 0;
1881 fra
.me
.REG_size
= 6;
1882 fra
.me
.REG
[0] = NIT_NULL
;
1883 fra
.me
.REG
[1] = NIT_NULL
;
1884 fra
.me
.REG
[2] = NIT_NULL
;
1885 fra
.me
.REG
[3] = NIT_NULL
;
1886 fra
.me
.REG
[4] = NIT_NULL
;
1887 fra
.me
.REG
[5] = NIT_NULL
;
1890 /* ./syntax//icode_generation.nit:300 */
1891 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1892 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1893 /* ./syntax//icode_generation.nit:302 */
1894 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1895 /* ./syntax//icode_generation.nit:303 */
1896 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1897 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1898 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1899 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1900 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1901 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1902 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1903 /* ./syntax//icode_generation.nit:304 */
1904 CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1905 /* ./syntax//icode_generation.nit:305 */
1906 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1907 /* ./syntax//icode_generation.nit:306 */
1908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1909 if (UNTAG_Bool(REGB0
)) {
1911 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1912 if (UNTAG_Bool(REGB1
)) {
1913 REGB1
= TAG_Bool(false);
1916 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1921 if (UNTAG_Bool(REGB0
)) {
1922 /* ./syntax//icode_generation.nit:307 */
1923 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1924 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1925 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*/;
1926 if (UNTAG_Bool(REGB0
)) {
1928 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 307);
1930 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1931 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1932 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1934 stack_frame_head
= fra
.me
.prev
;
1937 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1938 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1940 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1941 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1943 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
;
1944 fra
.me
.has_broke
= 0;
1945 fra
.me
.REG_size
= 4;
1946 fra
.me
.REG
[0] = NIT_NULL
;
1947 fra
.me
.REG
[1] = NIT_NULL
;
1948 fra
.me
.REG
[2] = NIT_NULL
;
1949 fra
.me
.REG
[3] = NIT_NULL
;
1952 /* ./syntax//icode_generation.nit:313 */
1953 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1954 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1955 /* ./syntax//icode_generation.nit:315 */
1956 CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1957 /* ./syntax//icode_generation.nit:316 */
1958 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1959 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1960 CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
1961 stack_frame_head
= fra
.me
.prev
;
1964 void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
1965 struct {struct stack_frame_t me
;} fra
;
1967 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1968 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1970 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
;
1971 fra
.me
.has_broke
= 0;
1972 fra
.me
.REG_size
= 0;
1973 /* ./syntax//icode_generation.nit:319 */
1974 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 319);
1975 stack_frame_head
= fra
.me
.prev
;
1978 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1979 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1985 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1986 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1988 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
1989 fra
.me
.has_broke
= 0;
1990 fra
.me
.REG_size
= 7;
1991 fra
.me
.REG
[0] = NIT_NULL
;
1992 fra
.me
.REG
[1] = NIT_NULL
;
1993 fra
.me
.REG
[2] = NIT_NULL
;
1994 fra
.me
.REG
[3] = NIT_NULL
;
1995 fra
.me
.REG
[4] = NIT_NULL
;
1996 fra
.me
.REG
[5] = NIT_NULL
;
1997 fra
.me
.REG
[6] = NIT_NULL
;
2003 /* ./syntax//icode_generation.nit:324 */
2004 fra
.me
.REG
[5] = fra
.me
.REG
[0];
2005 /* ./syntax//icode_generation.nit:326 */
2006 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2007 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
));
2008 /* ./syntax//icode_generation.nit:335 */
2010 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2011 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2012 /* ./../lib/standard//kernel.nit:352 */
2014 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2015 if (UNTAG_Bool(REGB2
)) {
2017 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2019 /* ./../lib/standard//kernel.nit:232 */
2020 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2021 /* ./../lib/standard//kernel.nit:352 */
2022 if (UNTAG_Bool(REGB2
)) {
2023 /* ./syntax//icode_generation.nit:335 */
2025 /* ./syntax//icode_generation.nit:336 */
2026 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2027 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
2028 /* ./syntax//icode_generation.nit:337 */
2029 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2030 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2031 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2032 if (UNTAG_Bool(REGB3
)) {
2033 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 337);
2035 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
2036 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2037 /* ./../lib/standard//kernel.nit:354 */
2039 /* ./../lib/standard//kernel.nit:235 */
2040 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
2041 /* ./../lib/standard//kernel.nit:354 */
2044 /* ./../lib/standard//kernel.nit:352 */
2049 stack_frame_head
= fra
.me
.prev
;
2052 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
){
2053 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2057 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2058 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2060 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2061 fra
.me
.has_broke
= 0;
2062 fra
.me
.REG_size
= 4;
2063 fra
.me
.REG
[0] = NIT_NULL
;
2064 fra
.me
.REG
[1] = NIT_NULL
;
2065 fra
.me
.REG
[2] = NIT_NULL
;
2066 fra
.me
.REG
[3] = NIT_NULL
;
2067 fra
.me
.closure_ctx
= closctx_param
;
2068 fra
.me
.closure_funs
= CREG
;
2070 CREG
[0] = clos_fun0
;
2071 /* ./syntax//icode_generation.nit:327 */
2072 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2073 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
2074 /* ./syntax//icode_generation.nit:328 */
2075 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2076 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
2077 /* ./syntax//icode_generation.nit:329 */
2078 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2079 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2080 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*/;
2081 if (UNTAG_Bool(REGB0
)) {
2083 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 329);
2085 /* ./syntax//icode_generation.nit:330 */
2086 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2087 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2088 if (UNTAG_Bool(REGB0
)) {
2089 /* ./syntax//icode_generation.nit:331 */
2090 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2091 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2092 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2094 /* ./syntax//icode_generation.nit:333 */
2095 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2096 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2097 fra
.me
.REG
[0] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2098 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2099 stack_frame_head
= fra
.me
.prev
;
2102 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
2103 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2107 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2108 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2110 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
;
2111 fra
.me
.has_broke
= 0;
2112 fra
.me
.REG_size
= 8;
2113 fra
.me
.REG
[0] = NIT_NULL
;
2114 fra
.me
.REG
[1] = NIT_NULL
;
2115 fra
.me
.REG
[2] = NIT_NULL
;
2116 fra
.me
.REG
[3] = NIT_NULL
;
2117 fra
.me
.REG
[4] = NIT_NULL
;
2118 fra
.me
.REG
[5] = NIT_NULL
;
2119 fra
.me
.REG
[6] = NIT_NULL
;
2120 fra
.me
.REG
[7] = NIT_NULL
;
2123 /* ./syntax//icode_generation.nit:343 */
2124 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2125 /* ./syntax//icode_generation.nit:345 */
2126 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2127 /* ./syntax//icode_generation.nit:346 */
2128 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2129 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2130 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2131 fra
.me
.REG
[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2132 /* ./syntax//icode_generation.nit:347 */
2133 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2134 /* ./syntax//icode_generation.nit:348 */
2135 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2136 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2137 /* ./syntax//icode_generation.nit:349 */
2138 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2139 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2140 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2141 if (UNTAG_Bool(REGB0
)) {
2142 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 349);
2144 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2145 /* ./syntax//icode_generation.nit:350 */
2146 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2147 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2148 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2149 if (UNTAG_Bool(REGB0
)) {
2150 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 350);
2152 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2153 /* ./syntax//icode_generation.nit:351 */
2154 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2155 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2156 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2157 if (UNTAG_Bool(REGB0
)) {
2158 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 351);
2160 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2161 /* ./syntax//icode_generation.nit:352 */
2162 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2163 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2164 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2165 if (UNTAG_Bool(REGB0
)) {
2166 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 352);
2168 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2169 /* ./syntax//icode_generation.nit:353 */
2170 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2171 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2172 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2173 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2174 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2175 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
);
2176 /* ./syntax//icode_generation.nit:355 */
2177 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2178 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2179 if (UNTAG_Bool(REGB0
)) {
2181 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2182 if (UNTAG_Bool(REGB1
)) {
2183 REGB1
= TAG_Bool(false);
2186 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2190 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2191 if (UNTAG_Bool(REGB0
)) {
2192 /* ./syntax//icode_generation.nit:356 */
2193 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2194 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2195 /* ./syntax//icode_generation.nit:357 */
2196 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2197 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2198 REGB0
= CALL_syntax___syntax_base___AClosureDecl___position(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2199 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2200 if (UNTAG_Bool(REGB1
)) {
2201 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2203 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
2204 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2205 if (UNTAG_Bool(REGB0
)) {
2206 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2208 CALL_icode___icode_base___IClosureDecl___default__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2209 /* ./syntax//icode_generation.nit:360 */
2210 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2211 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2212 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2213 if (UNTAG_Bool(REGB0
)) {
2214 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2215 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2216 if (UNTAG_Bool(REGB0
)) {
2218 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2219 if (UNTAG_Bool(REGB1
)) {
2220 REGB1
= TAG_Bool(false);
2223 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2228 REGB1
= TAG_Bool(false);
2231 if (UNTAG_Bool(REGB0
)) {
2232 /* ./syntax//icode_generation.nit:361 */
2233 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2234 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2235 if (UNTAG_Bool(REGB0
)) {
2237 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 361);
2239 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2242 /* ./syntax//icode_generation.nit:364 */
2243 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2244 stack_frame_head
= fra
.me
.prev
;
2247 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2248 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2254 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2256 fra
.me
.meth
= LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
;
2257 fra
.me
.has_broke
= 0;
2258 fra
.me
.REG_size
= 6;
2259 fra
.me
.REG
[0] = NIT_NULL
;
2260 fra
.me
.REG
[1] = NIT_NULL
;
2261 fra
.me
.REG
[2] = NIT_NULL
;
2262 fra
.me
.REG
[3] = NIT_NULL
;
2263 fra
.me
.REG
[4] = NIT_NULL
;
2264 fra
.me
.REG
[5] = NIT_NULL
;
2268 /* ./syntax//icode_generation.nit:371 */
2269 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2270 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2271 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2272 /* ./syntax//icode_generation.nit:372 */
2273 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2274 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2275 /* ./syntax//icode_generation.nit:373 */
2277 /* ./../lib/standard//collection//array.nit:278 */
2278 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2279 /* ./../lib/standard//collection//array.nit:280 */
2281 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2282 if (UNTAG_Bool(REGB2
)) {
2284 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2286 /* ./../lib/standard//kernel.nit:233 */
2287 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2288 /* ./../lib/standard//collection//array.nit:280 */
2289 if (UNTAG_Bool(REGB1
)) {
2290 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2291 if (UNTAG_Bool(REGB1
)) {
2293 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
2295 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2296 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2297 if (UNTAG_Bool(REGB2
)) {
2299 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2301 /* ./../lib/standard//kernel.nit:232 */
2302 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2304 /* ./../lib/standard//collection//array.nit:280 */
2305 REGB2
= TAG_Bool(false);
2308 if (UNTAG_Bool(REGB1
)) {
2310 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
2312 /* ./../lib/standard//collection//array.nit:281 */
2313 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
2314 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2315 if (UNTAG_Bool(REGB1
)) {
2316 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
2318 /* ./../lib/standard//collection//array.nit:718 */
2319 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2320 /* ./../lib/standard//collection//array.nit:281 */
2323 /* ./syntax//icode_generation.nit:373 */
2324 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2325 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2326 /* ./syntax//icode_generation.nit:374 */
2327 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2328 /* ./syntax//icode_generation.nit:375 */
2329 CALL_standard___collection___abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2330 /* ./syntax//icode_generation.nit:377 */
2331 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2332 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2333 /* ./syntax//icode_generation.nit:378 */
2334 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2335 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2336 if (UNTAG_Bool(REGB0
)) {
2337 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 378);
2339 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2340 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
2341 /* ./syntax//icode_generation.nit:379 */
2342 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2343 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2344 if (UNTAG_Bool(REGB0
)) {
2346 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2347 if (UNTAG_Bool(REGB1
)) {
2348 REGB1
= TAG_Bool(false);
2351 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2355 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2356 if (UNTAG_Bool(REGB0
)) {
2357 /* ./syntax//icode_generation.nit:380 */
2358 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2359 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2360 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2361 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2362 if (UNTAG_Bool(REGB0
)) {
2363 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 380);
2365 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]);
2367 /* ./syntax//icode_generation.nit:383 */
2368 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2369 if (UNTAG_Bool(REGB0
)) {
2370 /* ./syntax//icode_generation.nit:384 */
2371 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2373 /* ./syntax//icode_generation.nit:387 */
2374 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2375 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2376 if (UNTAG_Bool(REGB0
)) {
2378 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2379 if (UNTAG_Bool(REGB1
)) {
2380 REGB1
= TAG_Bool(false);
2383 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2387 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2388 if (UNTAG_Bool(REGB0
)) {
2389 /* ./syntax//icode_generation.nit:388 */
2390 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2391 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2393 /* ./syntax//icode_generation.nit:390 */
2394 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2395 stack_frame_head
= fra
.me
.prev
;
2398 void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2399 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2402 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2403 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2405 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2406 fra
.me
.has_broke
= 0;
2407 fra
.me
.REG_size
= 3;
2408 fra
.me
.REG
[0] = NIT_NULL
;
2409 fra
.me
.REG
[1] = NIT_NULL
;
2410 fra
.me
.REG
[2] = NIT_NULL
;
2414 /* ./syntax//icode_generation.nit:398 */
2415 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMMethSrcMethod
, ID_syntax___syntax_base___MMMethSrcMethod
)) /*cast MMMethSrcMethod*/;
2416 if (UNTAG_Bool(REGB0
)) {
2418 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 398);
2420 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2421 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1
));
2422 stack_frame_head
= fra
.me
.prev
;
2425 void OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2426 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2431 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2433 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2434 fra
.me
.has_broke
= 0;
2435 fra
.me
.REG_size
= 3;
2436 fra
.me
.REG
[0] = NIT_NULL
;
2437 fra
.me
.REG
[1] = NIT_NULL
;
2438 fra
.me
.REG
[2] = NIT_NULL
;
2439 fra
.me
.closure_ctx
= closctx_param
;
2440 fra
.me
.closure_funs
= CREG
;
2442 CREG
[0] = clos_fun0
;
2443 /* ./syntax//icode_generation.nit:400 */
2444 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2445 /* ./syntax//icode_generation.nit:402 */
2446 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2447 if (UNTAG_Bool(REGB0
)) {
2448 /* ./syntax//icode_generation.nit:403 */
2449 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2450 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2451 if (UNTAG_Bool(REGB0
)) {
2452 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 403);
2454 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2455 fra
.me
.REG
[2] = NEW_List_standard___collection___list___List___init();
2456 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2458 /* ./syntax//icode_generation.nit:405 */
2459 fra
.me
.REG
[1] = NEW_List_standard___collection___list___List___init();
2460 fra
.me
.REG
[1] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2461 fra
.me
.REG
[2] = fra
.me
.REG
[1];
2463 /* ./syntax//icode_generation.nit:407 */
2464 REGB0
= TAG_Bool(true);
2465 CALL_icode___icode_base___IAbsCall___is_explicit_from_extern__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2466 /* ./syntax//icode_generation.nit:408 */
2467 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
2468 stack_frame_head
= fra
.me
.prev
;
2471 void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2472 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2478 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2480 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
;
2481 fra
.me
.has_broke
= 0;
2482 fra
.me
.REG_size
= 8;
2483 fra
.me
.REG
[0] = NIT_NULL
;
2484 fra
.me
.REG
[1] = NIT_NULL
;
2485 fra
.me
.REG
[2] = NIT_NULL
;
2486 fra
.me
.REG
[3] = NIT_NULL
;
2487 fra
.me
.REG
[4] = NIT_NULL
;
2488 fra
.me
.REG
[5] = NIT_NULL
;
2489 fra
.me
.REG
[6] = NIT_NULL
;
2490 fra
.me
.REG
[7] = NIT_NULL
;
2494 /* ./syntax//icode_generation.nit:414 */
2495 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2496 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2497 /* ./syntax//icode_generation.nit:416 */
2498 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2499 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2500 /* ./syntax//icode_generation.nit:417 */
2501 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2502 /* ./syntax//icode_generation.nit:418 */
2503 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2504 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2505 if (UNTAG_Bool(REGB1
)) {
2506 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 418);
2508 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2510 /* ./../lib/standard//kernel.nit:235 */
2511 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
2512 /* ./syntax//icode_generation.nit:418 */
2513 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
2514 if (UNTAG_Bool(REGB1
)) {
2516 /* ./../lib/standard//kernel.nit:227 */
2517 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
2518 /* ./syntax//icode_generation.nit:418 */
2521 if (UNTAG_Bool(REGB1
)) {
2523 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 418);
2525 /* ./syntax//icode_generation.nit:419 */
2526 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2527 if (UNTAG_Bool(REGB1
)) {
2528 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 419);
2530 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2531 /* ./syntax//icode_generation.nit:420 */
2532 REGB1
= TAG_Bool(0);
2533 if (UNTAG_Bool(REGB1
)) {
2535 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2538 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2539 if (UNTAG_Bool(REGB1
)) {
2540 /* ./syntax//icode_generation.nit:421 */
2541 fra
.me
.REG
[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[6]);
2542 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2543 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5], fra
.me
.REG
[6]);
2544 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2546 /* ./syntax//icode_generation.nit:424 */
2547 CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2548 stack_frame_head
= fra
.me
.prev
;
2551 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2552 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2555 static val_t once_value_1
; /* Once value */
2556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2557 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2559 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2560 fra
.me
.has_broke
= 0;
2561 fra
.me
.REG_size
= 3;
2562 fra
.me
.REG
[0] = NIT_NULL
;
2563 fra
.me
.REG
[1] = NIT_NULL
;
2564 fra
.me
.REG
[2] = NIT_NULL
;
2568 /* ./syntax//icode_generation.nit:431 */
2570 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2571 if (!once_value_1
) {
2572 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2573 REGB0
= TAG_Int(22);
2574 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2575 once_value_1
= fra
.me
.REG
[0];
2576 register_static_object(&once_value_1
);
2577 } else fra
.me
.REG
[0] = once_value_1
;
2578 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2580 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2581 stack_frame_head
= fra
.me
.prev
;
2584 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2585 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2589 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2590 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2592 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2593 fra
.me
.has_broke
= 0;
2594 fra
.me
.REG_size
= 8;
2595 fra
.me
.REG
[0] = NIT_NULL
;
2596 fra
.me
.REG
[1] = NIT_NULL
;
2597 fra
.me
.REG
[2] = NIT_NULL
;
2598 fra
.me
.REG
[3] = NIT_NULL
;
2599 fra
.me
.REG
[4] = NIT_NULL
;
2600 fra
.me
.REG
[5] = NIT_NULL
;
2601 fra
.me
.REG
[6] = NIT_NULL
;
2602 fra
.me
.REG
[7] = NIT_NULL
;
2606 /* ./syntax//icode_generation.nit:436 */
2607 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2608 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2609 /* ./syntax//icode_generation.nit:438 */
2610 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2611 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2612 /* ./syntax//icode_generation.nit:439 */
2613 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2614 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2615 if (UNTAG_Bool(REGB0
)) {
2616 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 439);
2618 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2619 /* ./syntax//icode_generation.nit:440 */
2620 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2621 if (UNTAG_Bool(REGB0
)) {
2623 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2624 if (UNTAG_Bool(REGB1
)) {
2625 REGB1
= TAG_Bool(false);
2628 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2632 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2633 if (UNTAG_Bool(REGB0
)) {
2634 /* ./syntax//icode_generation.nit:441 */
2635 fra
.me
.REG
[7] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2636 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2637 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2639 /* ./syntax//icode_generation.nit:443 */
2640 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2641 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2643 /* ./syntax//icode_generation.nit:446 */
2644 CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2645 stack_frame_head
= fra
.me
.prev
;
2648 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2649 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2653 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2654 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2656 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2657 fra
.me
.has_broke
= 0;
2658 fra
.me
.REG_size
= 5;
2659 fra
.me
.REG
[0] = NIT_NULL
;
2660 fra
.me
.REG
[1] = NIT_NULL
;
2661 fra
.me
.REG
[2] = NIT_NULL
;
2662 fra
.me
.REG
[3] = NIT_NULL
;
2663 fra
.me
.REG
[4] = NIT_NULL
;
2667 /* ./syntax//icode_generation.nit:453 */
2668 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2669 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2670 /* ./syntax//icode_generation.nit:454 */
2671 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2672 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2673 if (UNTAG_Bool(REGB0
)) {
2674 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 454);
2676 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2677 /* ./syntax//icode_generation.nit:455 */
2678 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2679 if (UNTAG_Bool(REGB0
)) {
2681 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2682 if (UNTAG_Bool(REGB1
)) {
2683 REGB1
= TAG_Bool(false);
2686 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2690 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2691 if (UNTAG_Bool(REGB0
)) {
2692 /* ./syntax//icode_generation.nit:456 */
2693 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2694 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]);
2695 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2697 /* ./syntax//icode_generation.nit:458 */
2698 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2699 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2701 stack_frame_head
= fra
.me
.prev
;
2704 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2705 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2707 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2708 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2710 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2711 fra
.me
.has_broke
= 0;
2712 fra
.me
.REG_size
= 2;
2713 fra
.me
.REG
[0] = NIT_NULL
;
2714 fra
.me
.REG
[1] = NIT_NULL
;
2717 stack_frame_head
= fra
.me
.prev
;
2720 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2721 struct {struct stack_frame_t me
;} fra
;
2723 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2724 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2726 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2727 fra
.me
.has_broke
= 0;
2728 fra
.me
.REG_size
= 0;
2729 /* ./syntax//icode_generation.nit:468 */
2730 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 468);
2731 stack_frame_head
= fra
.me
.prev
;
2734 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2735 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2740 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2742 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2743 fra
.me
.has_broke
= 0;
2744 fra
.me
.REG_size
= 3;
2745 fra
.me
.REG
[0] = NIT_NULL
;
2746 fra
.me
.REG
[1] = NIT_NULL
;
2747 fra
.me
.REG
[2] = NIT_NULL
;
2750 /* ./syntax//icode_generation.nit:476 */
2751 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2752 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2753 /* ./syntax//icode_generation.nit:477 */
2754 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2755 /* ./syntax//icode_generation.nit:478 */
2756 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2757 if (UNTAG_Bool(REGB0
)) {
2759 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2760 if (UNTAG_Bool(REGB1
)) {
2761 REGB1
= TAG_Bool(false);
2764 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2768 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2769 if (UNTAG_Bool(REGB0
)) {
2770 /* ./syntax//icode_generation.nit:479 */
2771 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2772 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2774 /* ./syntax//icode_generation.nit:481 */
2775 fra
.me
.REG
[0] = NIT_NULL
;
2778 stack_frame_head
= fra
.me
.prev
;
2779 return fra
.me
.REG
[0];
2781 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2782 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2784 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2785 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2787 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2788 fra
.me
.has_broke
= 0;
2789 fra
.me
.REG_size
= 2;
2790 fra
.me
.REG
[0] = NIT_NULL
;
2791 fra
.me
.REG
[1] = NIT_NULL
;
2794 /* ./syntax//icode_generation.nit:488 */
2795 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2796 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
));
2797 /* ./syntax//icode_generation.nit:489 */
2798 fra
.me
.REG
[1] = NIT_NULL
;
2801 stack_frame_head
= fra
.me
.prev
;
2802 return fra
.me
.REG
[1];
2804 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
){
2805 struct {struct stack_frame_t me
;} fra
;
2808 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2809 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2811 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2812 fra
.me
.has_broke
= 0;
2813 fra
.me
.REG_size
= 1;
2814 fra
.me
.REG
[0] = NIT_NULL
;
2815 fra
.me
.closure_ctx
= closctx_param
;
2816 fra
.me
.closure_funs
= CREG
;
2818 CREG
[0] = clos_fun0
;
2819 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2820 stack_frame_head
= fra
.me
.prev
;
2823 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2824 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2827 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2828 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2830 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2831 fra
.me
.has_broke
= 0;
2832 fra
.me
.REG_size
= 5;
2833 fra
.me
.REG
[0] = NIT_NULL
;
2834 fra
.me
.REG
[1] = NIT_NULL
;
2835 fra
.me
.REG
[2] = NIT_NULL
;
2836 fra
.me
.REG
[3] = NIT_NULL
;
2837 fra
.me
.REG
[4] = NIT_NULL
;
2840 /* ./syntax//icode_generation.nit:496 */
2841 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2842 /* ./syntax//icode_generation.nit:497 */
2843 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2844 /* ./syntax//icode_generation.nit:498 */
2845 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2846 /* ./syntax//icode_generation.nit:499 */
2847 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2848 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2849 if (UNTAG_Bool(REGB0
)) {
2850 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 499);
2852 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2853 /* ./syntax//icode_generation.nit:500 */
2854 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2855 /* ./syntax//icode_generation.nit:502 */
2856 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2857 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2858 /* ./syntax//icode_generation.nit:504 */
2859 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2860 /* ./syntax//icode_generation.nit:505 */
2861 fra
.me
.REG
[2] = NIT_NULL
;
2864 stack_frame_head
= fra
.me
.prev
;
2865 return fra
.me
.REG
[2];
2867 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2868 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2872 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2873 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2875 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2876 fra
.me
.has_broke
= 0;
2877 fra
.me
.REG_size
= 4;
2878 fra
.me
.REG
[0] = NIT_NULL
;
2879 fra
.me
.REG
[1] = NIT_NULL
;
2880 fra
.me
.REG
[2] = NIT_NULL
;
2881 fra
.me
.REG
[3] = NIT_NULL
;
2884 /* ./syntax//icode_generation.nit:510 */
2885 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2886 /* ./syntax//icode_generation.nit:512 */
2887 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2888 /* ./syntax//icode_generation.nit:513 */
2889 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2890 if (UNTAG_Bool(REGB0
)) {
2892 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2893 if (UNTAG_Bool(REGB1
)) {
2894 REGB1
= TAG_Bool(false);
2897 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2901 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2902 if (UNTAG_Bool(REGB0
)) {
2903 /* ./syntax//icode_generation.nit:514 */
2904 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2905 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2906 if (UNTAG_Bool(REGB0
)) {
2908 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 514);
2910 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2911 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2913 /* ./syntax//icode_generation.nit:516 */
2914 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2915 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2916 if (UNTAG_Bool(REGB0
)) {
2918 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 516);
2920 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2921 /* ./syntax//icode_generation.nit:517 */
2922 fra
.me
.REG
[2] = NIT_NULL
;
2925 stack_frame_head
= fra
.me
.prev
;
2926 return fra
.me
.REG
[2];
2928 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
2929 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2933 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2934 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2936 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
2937 fra
.me
.has_broke
= 0;
2938 fra
.me
.REG_size
= 5;
2939 fra
.me
.REG
[0] = NIT_NULL
;
2940 fra
.me
.REG
[1] = NIT_NULL
;
2941 fra
.me
.REG
[2] = NIT_NULL
;
2942 fra
.me
.REG
[3] = NIT_NULL
;
2943 fra
.me
.REG
[4] = NIT_NULL
;
2946 /* ./syntax//icode_generation.nit:522 */
2947 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2948 /* ./syntax//icode_generation.nit:524 */
2949 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2950 /* ./syntax//icode_generation.nit:525 */
2951 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2952 if (UNTAG_Bool(REGB0
)) {
2954 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2955 if (UNTAG_Bool(REGB1
)) {
2956 REGB1
= TAG_Bool(false);
2959 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2963 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2964 if (UNTAG_Bool(REGB0
)) {
2965 /* ./syntax//icode_generation.nit:526 */
2966 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2967 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2968 if (UNTAG_Bool(REGB0
)) {
2969 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 526);
2971 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2972 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
2973 if (UNTAG_Bool(REGB0
)) {
2975 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 526);
2977 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2978 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2980 /* ./syntax//icode_generation.nit:528 */
2981 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2982 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2983 if (UNTAG_Bool(REGB0
)) {
2984 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 528);
2986 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2987 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2988 if (UNTAG_Bool(REGB0
)) {
2990 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 528);
2992 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2993 /* ./syntax//icode_generation.nit:529 */
2994 fra
.me
.REG
[2] = NIT_NULL
;
2997 stack_frame_head
= fra
.me
.prev
;
2998 return fra
.me
.REG
[2];
3000 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
3001 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3006 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3008 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
3009 fra
.me
.has_broke
= 0;
3010 fra
.me
.REG_size
= 5;
3011 fra
.me
.REG
[0] = NIT_NULL
;
3012 fra
.me
.REG
[1] = NIT_NULL
;
3013 fra
.me
.REG
[2] = NIT_NULL
;
3014 fra
.me
.REG
[3] = NIT_NULL
;
3015 fra
.me
.REG
[4] = NIT_NULL
;
3018 /* ./syntax//icode_generation.nit:534 */
3019 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3020 /* ./syntax//icode_generation.nit:536 */
3021 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3022 /* ./syntax//icode_generation.nit:537 */
3023 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3024 if (UNTAG_Bool(REGB0
)) {
3026 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3027 if (UNTAG_Bool(REGB1
)) {
3028 REGB1
= TAG_Bool(false);
3031 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3035 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3036 if (UNTAG_Bool(REGB0
)) {
3037 /* ./syntax//icode_generation.nit:538 */
3038 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3039 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3040 if (UNTAG_Bool(REGB0
)) {
3041 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 538);
3043 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3044 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3045 if (UNTAG_Bool(REGB0
)) {
3047 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 538);
3049 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3050 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3052 /* ./syntax//icode_generation.nit:540 */
3053 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3054 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3055 if (UNTAG_Bool(REGB0
)) {
3056 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 540);
3058 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3059 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3060 if (UNTAG_Bool(REGB0
)) {
3062 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 540);
3064 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3065 /* ./syntax//icode_generation.nit:541 */
3066 fra
.me
.REG
[2] = NIT_NULL
;
3069 stack_frame_head
= fra
.me
.prev
;
3070 return fra
.me
.REG
[2];
3072 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
3073 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3076 static val_t once_value_1
; /* Once value */
3077 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3078 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3080 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
3081 fra
.me
.has_broke
= 0;
3082 fra
.me
.REG_size
= 3;
3083 fra
.me
.REG
[0] = NIT_NULL
;
3084 fra
.me
.REG
[1] = NIT_NULL
;
3085 fra
.me
.REG
[2] = NIT_NULL
;
3088 /* ./syntax//icode_generation.nit:548 */
3090 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3091 if (!once_value_1
) {
3092 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
3094 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3095 once_value_1
= fra
.me
.REG
[2];
3096 register_static_object(&once_value_1
);
3097 } else fra
.me
.REG
[2] = once_value_1
;
3098 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3100 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3101 /* ./syntax//icode_generation.nit:549 */
3102 fra
.me
.REG
[0] = NIT_NULL
;
3105 stack_frame_head
= fra
.me
.prev
;
3106 return fra
.me
.REG
[0];
3108 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
3109 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3113 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3114 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3116 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
3117 fra
.me
.has_broke
= 0;
3118 fra
.me
.REG_size
= 5;
3119 fra
.me
.REG
[0] = NIT_NULL
;
3120 fra
.me
.REG
[1] = NIT_NULL
;
3121 fra
.me
.REG
[2] = NIT_NULL
;
3122 fra
.me
.REG
[3] = NIT_NULL
;
3123 fra
.me
.REG
[4] = NIT_NULL
;
3126 /* ./syntax//icode_generation.nit:556 */
3127 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3128 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3129 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3130 /* ./syntax//icode_generation.nit:557 */
3131 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3132 /* ./syntax//icode_generation.nit:558 */
3133 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3134 /* ./syntax//icode_generation.nit:560 */
3135 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3136 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3137 if (UNTAG_Bool(REGB0
)) {
3139 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3140 if (UNTAG_Bool(REGB1
)) {
3141 REGB1
= TAG_Bool(false);
3144 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3148 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3149 if (UNTAG_Bool(REGB0
)) {
3150 /* ./syntax//icode_generation.nit:561 */
3151 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3152 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3153 /* ./syntax//icode_generation.nit:562 */
3154 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3155 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3157 /* ./syntax//icode_generation.nit:565 */
3158 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3159 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3160 if (UNTAG_Bool(REGB0
)) {
3162 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3163 if (UNTAG_Bool(REGB1
)) {
3164 REGB1
= TAG_Bool(false);
3167 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3171 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3172 if (UNTAG_Bool(REGB0
)) {
3173 /* ./syntax//icode_generation.nit:566 */
3174 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3175 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3176 /* ./syntax//icode_generation.nit:567 */
3177 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3178 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3180 /* ./syntax//icode_generation.nit:570 */
3181 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3182 /* ./syntax//icode_generation.nit:571 */
3183 fra
.me
.REG
[3] = NIT_NULL
;
3186 stack_frame_head
= fra
.me
.prev
;
3187 return fra
.me
.REG
[3];
3189 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3190 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3195 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3197 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3198 fra
.me
.has_broke
= 0;
3199 fra
.me
.REG_size
= 7;
3200 fra
.me
.REG
[0] = NIT_NULL
;
3201 fra
.me
.REG
[1] = NIT_NULL
;
3202 fra
.me
.REG
[2] = NIT_NULL
;
3203 fra
.me
.REG
[3] = NIT_NULL
;
3204 fra
.me
.REG
[4] = NIT_NULL
;
3205 fra
.me
.REG
[5] = NIT_NULL
;
3206 fra
.me
.REG
[6] = NIT_NULL
;
3209 /* ./syntax//icode_generation.nit:578 */
3210 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3211 /* ./syntax//icode_generation.nit:579 */
3212 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3213 /* ./syntax//icode_generation.nit:580 */
3214 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3215 /* ./syntax//icode_generation.nit:581 */
3216 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3217 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3218 if (UNTAG_Bool(REGB0
)) {
3219 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 581);
3221 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3222 /* ./syntax//icode_generation.nit:582 */
3223 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3224 /* ./syntax//icode_generation.nit:585 */
3225 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3226 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3227 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3228 /* ./syntax//icode_generation.nit:586 */
3229 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3230 /* ./syntax//icode_generation.nit:589 */
3231 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3232 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3233 if (UNTAG_Bool(REGB0
)) {
3235 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3236 if (UNTAG_Bool(REGB1
)) {
3237 REGB1
= TAG_Bool(false);
3240 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3244 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3245 if (UNTAG_Bool(REGB0
)) {
3246 /* ./syntax//icode_generation.nit:590 */
3247 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3248 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3249 /* ./syntax//icode_generation.nit:591 */
3250 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3251 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3252 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3253 if (UNTAG_Bool(REGB0
)) {
3254 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 591);
3256 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3257 /* ./syntax//icode_generation.nit:592 */
3258 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3259 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3261 /* ./syntax//icode_generation.nit:596 */
3262 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3263 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3264 /* ./syntax//icode_generation.nit:597 */
3265 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3266 /* ./syntax//icode_generation.nit:599 */
3267 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3268 /* ./syntax//icode_generation.nit:600 */
3269 fra
.me
.REG
[2] = NIT_NULL
;
3272 stack_frame_head
= fra
.me
.prev
;
3273 return fra
.me
.REG
[2];
3275 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3276 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3280 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3281 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3283 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3284 fra
.me
.has_broke
= 0;
3285 fra
.me
.REG_size
= 5;
3286 fra
.me
.REG
[0] = NIT_NULL
;
3287 fra
.me
.REG
[1] = NIT_NULL
;
3288 fra
.me
.REG
[2] = NIT_NULL
;
3289 fra
.me
.REG
[3] = NIT_NULL
;
3290 fra
.me
.REG
[4] = NIT_NULL
;
3293 /* ./syntax//icode_generation.nit:607 */
3294 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3295 /* ./syntax//icode_generation.nit:608 */
3296 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3297 /* ./syntax//icode_generation.nit:609 */
3298 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3299 /* ./syntax//icode_generation.nit:610 */
3300 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3301 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3302 if (UNTAG_Bool(REGB0
)) {
3303 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 610);
3305 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3306 /* ./syntax//icode_generation.nit:611 */
3307 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3308 /* ./syntax//icode_generation.nit:614 */
3309 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3310 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3311 if (UNTAG_Bool(REGB0
)) {
3313 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3314 if (UNTAG_Bool(REGB1
)) {
3315 REGB1
= TAG_Bool(false);
3318 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3322 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3323 if (UNTAG_Bool(REGB0
)) {
3324 /* ./syntax//icode_generation.nit:615 */
3325 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3326 /* ./syntax//icode_generation.nit:616 */
3327 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3328 /* ./syntax//icode_generation.nit:617 */
3329 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3330 /* ./syntax//icode_generation.nit:618 */
3331 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3332 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3333 if (UNTAG_Bool(REGB0
)) {
3334 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 618);
3336 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3337 /* ./syntax//icode_generation.nit:619 */
3338 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3339 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3341 /* ./syntax//icode_generation.nit:622 */
3342 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3343 /* ./syntax//icode_generation.nit:623 */
3344 fra
.me
.REG
[2] = NIT_NULL
;
3347 stack_frame_head
= fra
.me
.prev
;
3348 return fra
.me
.REG
[2];
3350 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3351 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3359 static val_t once_value_1
; /* Once value */
3360 static val_t once_value_2
; /* Once value */
3361 static val_t once_value_3
; /* Once value */
3362 static val_t once_value_4
; /* Once value */
3363 static val_t once_value_5
; /* Once value */
3364 static val_t once_value_6
; /* Once value */
3365 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3366 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3368 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3369 fra
.me
.has_broke
= 0;
3370 fra
.me
.REG_size
= 9;
3371 fra
.me
.REG
[0] = NIT_NULL
;
3372 fra
.me
.REG
[1] = NIT_NULL
;
3373 fra
.me
.REG
[2] = NIT_NULL
;
3374 fra
.me
.REG
[3] = NIT_NULL
;
3375 fra
.me
.REG
[4] = NIT_NULL
;
3376 fra
.me
.REG
[5] = NIT_NULL
;
3377 fra
.me
.REG
[6] = NIT_NULL
;
3378 fra
.me
.REG
[7] = NIT_NULL
;
3379 fra
.me
.REG
[8] = NIT_NULL
;
3382 /* ./syntax//icode_generation.nit:630 */
3383 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3384 /* ./syntax//icode_generation.nit:631 */
3385 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3386 /* ./syntax//icode_generation.nit:632 */
3387 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3388 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3389 /* ./syntax//icode_generation.nit:636 */
3390 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3391 if (UNTAG_Bool(REGB0
)) {
3392 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3393 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3394 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3395 if (UNTAG_Bool(REGB0
)) {
3397 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3401 REGB1
= TAG_Bool(false);
3404 if (UNTAG_Bool(REGB0
)) {
3405 /* ./syntax//icode_generation.nit:641 */
3407 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3408 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3409 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3411 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3412 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3414 /* ./syntax//icode_generation.nit:642 */
3415 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3416 if (UNTAG_Bool(REGB0
)) {
3417 /* ./syntax//icode_generation.nit:643 */
3418 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3419 if (!once_value_1
) {
3420 if (!once_value_2
) {
3421 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3422 REGB0
= TAG_Int(12);
3423 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3424 once_value_2
= fra
.me
.REG
[7];
3425 register_static_object(&once_value_2
);
3426 } else fra
.me
.REG
[7] = once_value_2
;
3427 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3428 fra
.me
.REG
[7] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3429 once_value_1
= fra
.me
.REG
[7];
3430 register_static_object(&once_value_1
);
3431 } else fra
.me
.REG
[7] = once_value_1
;
3432 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3433 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]);
3435 /* ./syntax//icode_generation.nit:645 */
3436 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3437 if (UNTAG_Bool(REGB0
)) {
3439 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 645);
3441 /* ./syntax//icode_generation.nit:646 */
3442 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3443 if (!once_value_3
) {
3444 if (!once_value_4
) {
3445 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3446 REGB0
= TAG_Int(16);
3447 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3448 once_value_4
= fra
.me
.REG
[6];
3449 register_static_object(&once_value_4
);
3450 } else fra
.me
.REG
[6] = once_value_4
;
3451 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3452 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3453 once_value_3
= fra
.me
.REG
[6];
3454 register_static_object(&once_value_3
);
3455 } else fra
.me
.REG
[6] = once_value_3
;
3456 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3457 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]);
3458 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3461 /* ./syntax//icode_generation.nit:652 */
3462 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3463 if (!once_value_5
) {
3464 if (!once_value_6
) {
3465 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3467 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3468 once_value_6
= fra
.me
.REG
[4];
3469 register_static_object(&once_value_6
);
3470 } else fra
.me
.REG
[4] = once_value_6
;
3471 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3472 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3473 once_value_5
= fra
.me
.REG
[4];
3474 register_static_object(&once_value_5
);
3475 } else fra
.me
.REG
[4] = once_value_5
;
3476 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3477 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]);
3478 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3479 /* ./syntax//icode_generation.nit:653 */
3481 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3482 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3483 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3485 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3487 /* ./syntax//icode_generation.nit:657 */
3488 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3489 if (UNTAG_Bool(REGB0
)) {
3490 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3492 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3493 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3494 if (UNTAG_Bool(REGB0
)) {
3495 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3497 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3498 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3499 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3500 if (UNTAG_Bool(REGB0
)) {
3501 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3503 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3504 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3505 /* ./syntax//icode_generation.nit:658 */
3506 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3507 /* ./syntax//icode_generation.nit:660 */
3508 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3509 /* ./syntax//icode_generation.nit:661 */
3510 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3511 /* ./syntax//icode_generation.nit:662 */
3512 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3513 /* ./syntax//icode_generation.nit:663 */
3514 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3515 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3516 if (UNTAG_Bool(REGB0
)) {
3517 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 663);
3519 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3520 /* ./syntax//icode_generation.nit:664 */
3521 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3522 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3523 if (UNTAG_Bool(REGB0
)) {
3524 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 664);
3526 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3527 /* ./syntax//icode_generation.nit:666 */
3528 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3529 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3530 /* ./syntax//icode_generation.nit:667 */
3531 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3532 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3533 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3534 if (UNTAG_Bool(REGB0
)) {
3535 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 667);
3537 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3538 /* ./syntax//icode_generation.nit:668 */
3539 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3540 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3541 if (UNTAG_Bool(REGB0
)) {
3542 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 668);
3544 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3545 /* ./syntax//icode_generation.nit:669 */
3547 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3548 /* ./../lib/standard//collection//array.nit:24 */
3549 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3550 if (UNTAG_Bool(REGB1
)) {
3552 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
3554 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3555 /* ./../lib/standard//kernel.nit:352 */
3557 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3558 if (UNTAG_Bool(REGB2
)) {
3560 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3562 /* ./../lib/standard//kernel.nit:232 */
3563 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3564 /* ./../lib/standard//kernel.nit:352 */
3565 if (UNTAG_Bool(REGB2
)) {
3566 /* ./syntax//icode_generation.nit:669 */
3568 /* ./syntax//icode_generation.nit:670 */
3569 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3570 /* ./../lib/standard//collection//array.nit:278 */
3572 /* ./../lib/standard//collection//array.nit:280 */
3574 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3575 if (UNTAG_Bool(REGB5
)) {
3577 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3579 /* ./../lib/standard//kernel.nit:233 */
3580 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3581 /* ./../lib/standard//collection//array.nit:280 */
3582 if (UNTAG_Bool(REGB4
)) {
3583 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3584 if (UNTAG_Bool(REGB4
)) {
3586 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
3588 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3589 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3590 if (UNTAG_Bool(REGB5
)) {
3592 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3594 /* ./../lib/standard//kernel.nit:232 */
3595 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3597 /* ./../lib/standard//collection//array.nit:280 */
3598 REGB5
= TAG_Bool(false);
3601 if (UNTAG_Bool(REGB4
)) {
3603 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
3605 /* ./../lib/standard//collection//array.nit:281 */
3606 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3607 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3608 if (UNTAG_Bool(REGB4
)) {
3609 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
3611 /* ./../lib/standard//collection//array.nit:718 */
3612 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3613 /* ./../lib/standard//collection//array.nit:281 */
3616 /* ./syntax//icode_generation.nit:670 */
3617 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3618 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3619 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3620 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3621 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3622 /* ./../lib/standard//kernel.nit:354 */
3624 /* ./../lib/standard//kernel.nit:235 */
3625 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3626 /* ./../lib/standard//kernel.nit:354 */
3629 /* ./../lib/standard//kernel.nit:352 */
3634 /* ./syntax//icode_generation.nit:672 */
3635 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3636 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3637 /* ./syntax//icode_generation.nit:675 */
3638 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3639 /* ./syntax//icode_generation.nit:676 */
3641 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3643 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]);
3644 /* ./syntax//icode_generation.nit:678 */
3645 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3646 /* ./syntax//icode_generation.nit:679 */
3647 fra
.me
.REG
[3] = NIT_NULL
;
3650 stack_frame_head
= fra
.me
.prev
;
3651 return fra
.me
.REG
[3];
3653 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3654 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3658 static val_t once_value_1
; /* Once value */
3659 static val_t once_value_2
; /* Once value */
3660 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3661 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3663 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3664 fra
.me
.has_broke
= 0;
3665 fra
.me
.REG_size
= 5;
3666 fra
.me
.REG
[0] = NIT_NULL
;
3667 fra
.me
.REG
[1] = NIT_NULL
;
3668 fra
.me
.REG
[2] = NIT_NULL
;
3669 fra
.me
.REG
[3] = NIT_NULL
;
3670 fra
.me
.REG
[4] = NIT_NULL
;
3673 /* ./syntax//icode_generation.nit:686 */
3674 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3675 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3676 /* ./syntax//icode_generation.nit:687 */
3677 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3678 /* ./syntax//icode_generation.nit:688 */
3679 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3680 /* ./syntax//icode_generation.nit:689 */
3681 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3682 /* ./syntax//icode_generation.nit:690 */
3683 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3684 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3685 /* ./syntax//icode_generation.nit:691 */
3686 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3687 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3688 /* ./syntax//icode_generation.nit:692 */
3689 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3690 /* ./syntax//icode_generation.nit:693 */
3691 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3692 if (UNTAG_Bool(REGB0
)) {
3694 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3695 if (UNTAG_Bool(REGB1
)) {
3696 REGB1
= TAG_Bool(false);
3699 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3703 if (UNTAG_Bool(REGB0
)) {
3704 /* ./syntax//icode_generation.nit:694 */
3706 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3707 if (!once_value_1
) {
3708 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3709 REGB0
= TAG_Int(13);
3710 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3711 once_value_1
= fra
.me
.REG
[4];
3712 register_static_object(&once_value_1
);
3713 } else fra
.me
.REG
[4] = once_value_1
;
3714 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3716 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3718 /* ./syntax//icode_generation.nit:696 */
3720 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3721 if (!once_value_2
) {
3722 fra
.me
.REG
[4] = BOX_NativeString("Assert %s failed");
3723 REGB0
= TAG_Int(17);
3724 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3725 once_value_2
= fra
.me
.REG
[4];
3726 register_static_object(&once_value_2
);
3727 } else fra
.me
.REG
[4] = once_value_2
;
3728 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3730 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3731 if (UNTAG_Bool(REGB0
)) {
3732 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 696);
3734 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3735 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3736 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3738 /* ./syntax//icode_generation.nit:698 */
3739 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3740 /* ./syntax//icode_generation.nit:699 */
3741 fra
.me
.REG
[3] = NIT_NULL
;
3744 stack_frame_head
= fra
.me
.prev
;
3745 return fra
.me
.REG
[3];
3747 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3748 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3750 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3751 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3753 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3754 fra
.me
.has_broke
= 0;
3755 fra
.me
.REG_size
= 2;
3756 fra
.me
.REG
[0] = NIT_NULL
;
3757 fra
.me
.REG
[1] = NIT_NULL
;
3760 /* ./syntax//icode_generation.nit:706 */
3761 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3762 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3765 stack_frame_head
= fra
.me
.prev
;
3766 return fra
.me
.REG
[0];
3768 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3769 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3771 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3772 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3774 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3775 fra
.me
.has_broke
= 0;
3776 fra
.me
.REG_size
= 3;
3777 fra
.me
.REG
[0] = NIT_NULL
;
3778 fra
.me
.REG
[1] = NIT_NULL
;
3779 fra
.me
.REG
[2] = NIT_NULL
;
3782 /* ./syntax//icode_generation.nit:713 */
3783 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3784 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3785 /* ./syntax//icode_generation.nit:714 */
3786 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3787 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3788 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3789 /* ./syntax//icode_generation.nit:715 */
3790 fra
.me
.REG
[2] = NIT_NULL
;
3793 stack_frame_head
= fra
.me
.prev
;
3794 return fra
.me
.REG
[2];
3796 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3797 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3800 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3801 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3803 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3804 fra
.me
.has_broke
= 0;
3805 fra
.me
.REG_size
= 7;
3806 fra
.me
.REG
[0] = NIT_NULL
;
3807 fra
.me
.REG
[1] = NIT_NULL
;
3808 fra
.me
.REG
[2] = NIT_NULL
;
3809 fra
.me
.REG
[3] = NIT_NULL
;
3810 fra
.me
.REG
[4] = NIT_NULL
;
3811 fra
.me
.REG
[5] = NIT_NULL
;
3812 fra
.me
.REG
[6] = NIT_NULL
;
3815 /* ./syntax//icode_generation.nit:720 */
3816 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3817 /* ./syntax//icode_generation.nit:722 */
3818 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3819 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3820 /* ./syntax//icode_generation.nit:723 */
3821 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3822 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3823 /* ./syntax//icode_generation.nit:724 */
3824 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3826 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3829 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3830 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3831 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3832 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3833 if (UNTAG_Bool(REGB0
)) {
3834 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 724);
3836 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3837 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*/;
3838 if (UNTAG_Bool(REGB0
)) {
3840 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 724);
3842 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]);
3843 /* ./syntax//icode_generation.nit:725 */
3844 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3845 /* ./syntax//icode_generation.nit:726 */
3846 fra
.me
.REG
[2] = NIT_NULL
;
3849 stack_frame_head
= fra
.me
.prev
;
3850 return fra
.me
.REG
[2];
3852 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3853 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3855 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3856 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3858 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3859 fra
.me
.has_broke
= 0;
3860 fra
.me
.REG_size
= 2;
3861 fra
.me
.REG
[0] = NIT_NULL
;
3862 fra
.me
.REG
[1] = NIT_NULL
;
3865 /* ./syntax//icode_generation.nit:733 */
3866 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3867 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3870 stack_frame_head
= fra
.me
.prev
;
3871 return fra
.me
.REG
[0];
3873 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
3874 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3876 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3877 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3879 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
3880 fra
.me
.has_broke
= 0;
3881 fra
.me
.REG_size
= 6;
3882 fra
.me
.REG
[0] = NIT_NULL
;
3883 fra
.me
.REG
[1] = NIT_NULL
;
3884 fra
.me
.REG
[2] = NIT_NULL
;
3885 fra
.me
.REG
[3] = NIT_NULL
;
3886 fra
.me
.REG
[4] = NIT_NULL
;
3887 fra
.me
.REG
[5] = NIT_NULL
;
3890 /* ./syntax//icode_generation.nit:741 */
3891 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3892 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3893 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3894 /* ./syntax//icode_generation.nit:742 */
3895 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3896 /* ./syntax//icode_generation.nit:743 */
3897 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3898 /* ./syntax//icode_generation.nit:746 */
3899 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3900 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3901 /* ./syntax//icode_generation.nit:749 */
3902 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3903 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3904 /* ./syntax//icode_generation.nit:750 */
3905 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3906 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3907 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3908 /* ./syntax//icode_generation.nit:753 */
3909 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3910 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3911 /* ./syntax//icode_generation.nit:754 */
3912 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3913 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3914 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
3915 /* ./syntax//icode_generation.nit:756 */
3916 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3917 /* ./syntax//icode_generation.nit:757 */
3920 stack_frame_head
= fra
.me
.prev
;
3921 return fra
.me
.REG
[4];
3923 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
3924 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3926 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3927 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3929 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
3930 fra
.me
.has_broke
= 0;
3931 fra
.me
.REG_size
= 4;
3932 fra
.me
.REG
[0] = NIT_NULL
;
3933 fra
.me
.REG
[1] = NIT_NULL
;
3934 fra
.me
.REG
[2] = NIT_NULL
;
3935 fra
.me
.REG
[3] = NIT_NULL
;
3938 /* ./syntax//icode_generation.nit:764 */
3939 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3940 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3941 /* ./syntax//icode_generation.nit:765 */
3942 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3943 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3944 /* ./syntax//icode_generation.nit:766 */
3945 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3946 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3947 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]);
3950 stack_frame_head
= fra
.me
.prev
;
3951 return fra
.me
.REG
[0];
3953 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
3954 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3956 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3957 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3959 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
3960 fra
.me
.has_broke
= 0;
3961 fra
.me
.REG_size
= 6;
3962 fra
.me
.REG
[0] = NIT_NULL
;
3963 fra
.me
.REG
[1] = NIT_NULL
;
3964 fra
.me
.REG
[2] = NIT_NULL
;
3965 fra
.me
.REG
[3] = NIT_NULL
;
3966 fra
.me
.REG
[4] = NIT_NULL
;
3967 fra
.me
.REG
[5] = NIT_NULL
;
3970 /* ./syntax//icode_generation.nit:774 */
3971 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3972 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3973 /* ./syntax//icode_generation.nit:777 */
3974 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3975 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3976 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
3977 /* ./syntax//icode_generation.nit:778 */
3978 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3979 /* ./syntax//icode_generation.nit:779 */
3980 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3981 /* ./syntax//icode_generation.nit:780 */
3982 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3983 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3984 /* ./syntax//icode_generation.nit:781 */
3985 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3986 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
3987 /* ./syntax//icode_generation.nit:784 */
3988 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3989 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3990 /* ./syntax//icode_generation.nit:785 */
3991 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3992 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3993 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
3994 /* ./syntax//icode_generation.nit:787 */
3995 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3996 /* ./syntax//icode_generation.nit:788 */
3999 stack_frame_head
= fra
.me
.prev
;
4000 return fra
.me
.REG
[2];
4002 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
4003 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4006 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4008 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
4009 fra
.me
.has_broke
= 0;
4010 fra
.me
.REG_size
= 6;
4011 fra
.me
.REG
[0] = NIT_NULL
;
4012 fra
.me
.REG
[1] = NIT_NULL
;
4013 fra
.me
.REG
[2] = NIT_NULL
;
4014 fra
.me
.REG
[3] = NIT_NULL
;
4015 fra
.me
.REG
[4] = NIT_NULL
;
4016 fra
.me
.REG
[5] = NIT_NULL
;
4019 /* ./syntax//icode_generation.nit:796 */
4020 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4021 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4022 /* ./syntax//icode_generation.nit:799 */
4023 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4024 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4025 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4026 /* ./syntax//icode_generation.nit:800 */
4027 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4028 /* ./syntax//icode_generation.nit:801 */
4029 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4030 /* ./syntax//icode_generation.nit:802 */
4031 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4032 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4033 /* ./syntax//icode_generation.nit:803 */
4034 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4035 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4036 /* ./syntax//icode_generation.nit:806 */
4037 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4038 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4039 /* ./syntax//icode_generation.nit:807 */
4040 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4041 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4042 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4043 /* ./syntax//icode_generation.nit:809 */
4044 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4045 /* ./syntax//icode_generation.nit:810 */
4048 stack_frame_head
= fra
.me
.prev
;
4049 return fra
.me
.REG
[2];
4051 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
4052 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4055 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4057 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
4058 fra
.me
.has_broke
= 0;
4059 fra
.me
.REG_size
= 3;
4060 fra
.me
.REG
[0] = NIT_NULL
;
4061 fra
.me
.REG
[1] = NIT_NULL
;
4062 fra
.me
.REG
[2] = NIT_NULL
;
4065 /* ./syntax//icode_generation.nit:817 */
4066 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4067 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4068 /* ./syntax//icode_generation.nit:818 */
4069 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
4070 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4071 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]);
4074 stack_frame_head
= fra
.me
.prev
;
4075 return fra
.me
.REG
[0];
4077 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
4078 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4080 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4081 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4083 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
4084 fra
.me
.has_broke
= 0;
4085 fra
.me
.REG_size
= 7;
4086 fra
.me
.REG
[0] = NIT_NULL
;
4087 fra
.me
.REG
[1] = NIT_NULL
;
4088 fra
.me
.REG
[2] = NIT_NULL
;
4089 fra
.me
.REG
[3] = NIT_NULL
;
4090 fra
.me
.REG
[4] = NIT_NULL
;
4091 fra
.me
.REG
[5] = NIT_NULL
;
4092 fra
.me
.REG
[6] = NIT_NULL
;
4095 /* ./syntax//icode_generation.nit:826 */
4096 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4097 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4098 /* ./syntax//icode_generation.nit:829 */
4099 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4100 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4101 /* ./syntax//icode_generation.nit:832 */
4102 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4103 /* ./syntax//icode_generation.nit:833 */
4104 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4105 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4106 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4107 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]);
4108 /* ./syntax//icode_generation.nit:834 */
4109 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
4110 /* ./syntax//icode_generation.nit:835 */
4111 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4112 /* ./syntax//icode_generation.nit:836 */
4113 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4114 /* ./syntax//icode_generation.nit:839 */
4115 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4116 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4117 /* ./syntax//icode_generation.nit:840 */
4118 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4119 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4120 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4121 /* ./syntax//icode_generation.nit:843 */
4122 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4123 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4124 /* ./syntax//icode_generation.nit:844 */
4125 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4126 /* ./syntax//icode_generation.nit:846 */
4127 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4128 /* ./syntax//icode_generation.nit:848 */
4131 stack_frame_head
= fra
.me
.prev
;
4132 return fra
.me
.REG
[3];
4134 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
4135 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4138 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4139 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4141 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
4142 fra
.me
.has_broke
= 0;
4143 fra
.me
.REG_size
= 5;
4144 fra
.me
.REG
[0] = NIT_NULL
;
4145 fra
.me
.REG
[1] = NIT_NULL
;
4146 fra
.me
.REG
[2] = NIT_NULL
;
4147 fra
.me
.REG
[3] = NIT_NULL
;
4148 fra
.me
.REG
[4] = NIT_NULL
;
4151 /* ./syntax//icode_generation.nit:853 */
4152 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4153 /* ./syntax//icode_generation.nit:855 */
4154 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4155 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4156 /* ./syntax//icode_generation.nit:856 */
4157 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4158 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4159 if (UNTAG_Bool(REGB0
)) {
4161 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 856);
4163 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4164 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4165 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4166 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4167 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]);
4170 stack_frame_head
= fra
.me
.prev
;
4171 return fra
.me
.REG
[2];
4173 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4174 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4177 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4179 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4180 fra
.me
.has_broke
= 0;
4181 fra
.me
.REG_size
= 3;
4182 fra
.me
.REG
[0] = NIT_NULL
;
4183 fra
.me
.REG
[1] = NIT_NULL
;
4184 fra
.me
.REG
[2] = NIT_NULL
;
4187 /* ./syntax//icode_generation.nit:863 */
4188 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4189 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4190 /* ./syntax//icode_generation.nit:864 */
4191 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4192 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4193 /* ./syntax//icode_generation.nit:865 */
4196 stack_frame_head
= fra
.me
.prev
;
4197 return fra
.me
.REG
[2];
4199 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4200 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4203 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4205 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4206 fra
.me
.has_broke
= 0;
4207 fra
.me
.REG_size
= 3;
4208 fra
.me
.REG
[0] = NIT_NULL
;
4209 fra
.me
.REG
[1] = NIT_NULL
;
4210 fra
.me
.REG
[2] = NIT_NULL
;
4213 /* ./syntax//icode_generation.nit:872 */
4214 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4215 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4216 /* ./syntax//icode_generation.nit:873 */
4217 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4218 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4219 /* ./syntax//icode_generation.nit:874 */
4222 stack_frame_head
= fra
.me
.prev
;
4223 return fra
.me
.REG
[2];
4225 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4226 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4229 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4231 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4232 fra
.me
.has_broke
= 0;
4233 fra
.me
.REG_size
= 2;
4234 fra
.me
.REG
[0] = NIT_NULL
;
4235 fra
.me
.REG
[1] = NIT_NULL
;
4238 /* ./syntax//icode_generation.nit:881 */
4239 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4242 stack_frame_head
= fra
.me
.prev
;
4243 return fra
.me
.REG
[1];
4245 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4246 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4248 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4249 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4251 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4252 fra
.me
.has_broke
= 0;
4253 fra
.me
.REG_size
= 2;
4254 fra
.me
.REG
[0] = NIT_NULL
;
4255 fra
.me
.REG
[1] = NIT_NULL
;
4258 /* ./syntax//icode_generation.nit:888 */
4259 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4262 stack_frame_head
= fra
.me
.prev
;
4263 return fra
.me
.REG
[1];
4265 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4266 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4268 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4269 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4271 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4272 fra
.me
.has_broke
= 0;
4273 fra
.me
.REG_size
= 3;
4274 fra
.me
.REG
[0] = NIT_NULL
;
4275 fra
.me
.REG
[1] = NIT_NULL
;
4276 fra
.me
.REG
[2] = NIT_NULL
;
4279 /* ./syntax//icode_generation.nit:895 */
4280 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4281 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4282 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4283 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4284 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]);
4287 stack_frame_head
= fra
.me
.prev
;
4288 return fra
.me
.REG
[0];
4290 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4291 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4294 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4296 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4297 fra
.me
.has_broke
= 0;
4298 fra
.me
.REG_size
= 3;
4299 fra
.me
.REG
[0] = NIT_NULL
;
4300 fra
.me
.REG
[1] = NIT_NULL
;
4301 fra
.me
.REG
[2] = NIT_NULL
;
4304 /* ./syntax//icode_generation.nit:902 */
4305 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4306 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4307 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4308 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4309 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]);
4312 stack_frame_head
= fra
.me
.prev
;
4313 return fra
.me
.REG
[0];
4315 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4316 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4319 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4321 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4322 fra
.me
.has_broke
= 0;
4323 fra
.me
.REG_size
= 3;
4324 fra
.me
.REG
[0] = NIT_NULL
;
4325 fra
.me
.REG
[1] = NIT_NULL
;
4326 fra
.me
.REG
[2] = NIT_NULL
;
4329 /* ./syntax//icode_generation.nit:909 */
4330 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4331 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4332 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4333 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4334 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]);
4337 stack_frame_head
= fra
.me
.prev
;
4338 return fra
.me
.REG
[0];
4340 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4341 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4344 static val_t once_value_1
; /* Once value */
4345 static val_t once_value_2
; /* Once value */
4346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4347 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4349 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4350 fra
.me
.has_broke
= 0;
4351 fra
.me
.REG_size
= 9;
4352 fra
.me
.REG
[0] = NIT_NULL
;
4353 fra
.me
.REG
[1] = NIT_NULL
;
4354 fra
.me
.REG
[2] = NIT_NULL
;
4355 fra
.me
.REG
[3] = NIT_NULL
;
4356 fra
.me
.REG
[4] = NIT_NULL
;
4357 fra
.me
.REG
[5] = NIT_NULL
;
4358 fra
.me
.REG
[6] = NIT_NULL
;
4359 fra
.me
.REG
[7] = NIT_NULL
;
4360 fra
.me
.REG
[8] = NIT_NULL
;
4363 /* ./syntax//icode_generation.nit:914 */
4364 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4365 /* ./syntax//icode_generation.nit:916 */
4366 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4367 /* ./syntax//icode_generation.nit:917 */
4368 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4369 /* ./syntax//icode_generation.nit:918 */
4370 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4371 /* ./syntax//icode_generation.nit:919 */
4372 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4373 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]);
4374 /* ./syntax//icode_generation.nit:920 */
4375 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4376 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4377 /* ./syntax//icode_generation.nit:921 */
4378 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4379 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4380 if (UNTAG_Bool(REGB0
)) {
4382 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 921);
4384 fra
.me
.REG
[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[4]);
4385 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4386 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4387 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]);
4388 /* ./syntax//icode_generation.nit:922 */
4389 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4390 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4391 if (UNTAG_Bool(REGB0
)) {
4392 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 922);
4394 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4395 fra
.me
.REG
[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[4]);
4396 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4397 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4398 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]);
4399 /* ./syntax//icode_generation.nit:923 */
4400 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4401 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4402 if (!once_value_1
) {
4403 if (!once_value_2
) {
4404 fra
.me
.REG
[8] = BOX_NativeString("with_native");
4405 REGB0
= TAG_Int(11);
4406 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4407 once_value_2
= fra
.me
.REG
[8];
4408 register_static_object(&once_value_2
);
4409 } else fra
.me
.REG
[8] = once_value_2
;
4410 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4411 fra
.me
.REG
[8] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4412 once_value_1
= fra
.me
.REG
[8];
4413 register_static_object(&once_value_1
);
4414 } else fra
.me
.REG
[8] = once_value_1
;
4415 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4416 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]);
4417 /* ./syntax//icode_generation.nit:924 */
4418 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4420 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4423 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[4]);
4424 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4425 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]);
4426 /* ./syntax//icode_generation.nit:925 */
4427 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4428 /* ./syntax//icode_generation.nit:926 */
4429 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4430 /* ./syntax//icode_generation.nit:927 */
4433 stack_frame_head
= fra
.me
.prev
;
4434 return fra
.me
.REG
[5];
4436 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4437 struct {struct stack_frame_t me
;} fra
;
4439 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4440 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4442 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4443 fra
.me
.has_broke
= 0;
4444 fra
.me
.REG_size
= 0;
4445 /* ./syntax//icode_generation.nit:930 */
4446 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 930);
4447 stack_frame_head
= fra
.me
.prev
;
4450 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4451 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} 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___AStringFormExpr___compute_string_infos
;
4463 fra
.me
.has_broke
= 0;
4464 fra
.me
.REG_size
= 3;
4465 fra
.me
.REG
[0] = NIT_NULL
;
4466 fra
.me
.REG
[1] = NIT_NULL
;
4467 fra
.me
.REG
[2] = NIT_NULL
;
4469 /* ./syntax//icode_generation.nit:942 */
4471 /* ./syntax//icode_generation.nit:943 */
4472 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4473 /* ./syntax//icode_generation.nit:944 */
4474 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4475 /* ./syntax//icode_generation.nit:945 */
4477 /* ./syntax//icode_generation.nit:946 */
4479 /* ./../lib/standard//collection//array.nit:24 */
4480 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4481 if (UNTAG_Bool(REGB2
)) {
4483 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4485 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4486 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4487 if (UNTAG_Bool(REGB3
)) {
4489 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4491 /* ./../lib/standard//kernel.nit:232 */
4492 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4493 /* ./syntax//icode_generation.nit:946 */
4494 if (UNTAG_Bool(REGB2
)) {
4495 /* ./syntax//icode_generation.nit:947 */
4496 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4497 /* ./syntax//icode_generation.nit:948 */
4498 REGB3
= TAG_Char('\\');
4499 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4500 if (UNTAG_Bool(REGB4
)) {
4502 /* ./../lib/standard//kernel.nit:378 */
4503 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4504 /* ./syntax//icode_generation.nit:948 */
4507 if (UNTAG_Bool(REGB4
)) {
4508 /* ./syntax//icode_generation.nit:949 */
4510 /* ./../lib/standard//kernel.nit:235 */
4511 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4512 /* ./syntax//icode_generation.nit:949 */
4514 /* ./syntax//icode_generation.nit:950 */
4515 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4516 /* ./syntax//icode_generation.nit:951 */
4517 REGB3
= TAG_Char('{');
4518 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4519 if (UNTAG_Bool(REGB5
)) {
4521 /* ./../lib/standard//kernel.nit:378 */
4522 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4523 /* ./syntax//icode_generation.nit:951 */
4526 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4527 if (UNTAG_Bool(REGB5
)) {
4528 REGB5
= TAG_Char('}');
4529 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4530 if (UNTAG_Bool(REGB3
)) {
4532 /* ./../lib/standard//kernel.nit:378 */
4533 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4534 /* ./syntax//icode_generation.nit:951 */
4537 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4539 REGB5
= TAG_Bool(false);
4542 if (UNTAG_Bool(REGB3
)) {
4543 /* ./syntax//icode_generation.nit:952 */
4544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4546 /* ./syntax//icode_generation.nit:954 */
4549 /* ./syntax//icode_generation.nit:956 */
4551 /* ./../lib/standard//kernel.nit:235 */
4552 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4553 /* ./syntax//icode_generation.nit:956 */
4555 /* ./syntax//icode_generation.nit:957 */
4556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4557 /* ./syntax//icode_generation.nit:958 */
4559 /* ./../lib/standard//kernel.nit:235 */
4560 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4561 /* ./syntax//icode_generation.nit:958 */
4564 /* ./syntax//icode_generation.nit:946 */
4569 /* ./syntax//icode_generation.nit:960 */
4570 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4571 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4572 /* ./syntax//icode_generation.nit:961 */
4573 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4574 stack_frame_head
= fra
.me
.prev
;
4577 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4578 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4583 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4584 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4586 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
4587 fra
.me
.has_broke
= 0;
4588 fra
.me
.REG_size
= 2;
4589 fra
.me
.REG
[0] = NIT_NULL
;
4590 fra
.me
.REG
[1] = NIT_NULL
;
4592 /* ./syntax//icode_generation.nit:966 */
4593 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4594 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4596 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4597 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4598 /* ./../lib/standard//collection//array.nit:24 */
4599 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4600 if (UNTAG_Bool(REGB1
)) {
4602 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4604 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4605 /* ./syntax//icode_generation.nit:966 */
4607 /* ./../lib/standard//kernel.nit:237 */
4608 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4609 /* ./syntax//icode_generation.nit:966 */
4610 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4613 stack_frame_head
= fra
.me
.prev
;
4614 return fra
.me
.REG
[1];
4616 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4617 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4622 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4623 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4625 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4626 fra
.me
.has_broke
= 0;
4627 fra
.me
.REG_size
= 2;
4628 fra
.me
.REG
[0] = NIT_NULL
;
4629 fra
.me
.REG
[1] = NIT_NULL
;
4631 /* ./syntax//icode_generation.nit:969 */
4632 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4633 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4635 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4636 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4637 /* ./../lib/standard//collection//array.nit:24 */
4638 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4639 if (UNTAG_Bool(REGB1
)) {
4641 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4643 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4644 /* ./syntax//icode_generation.nit:969 */
4646 /* ./../lib/standard//kernel.nit:237 */
4647 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4648 /* ./syntax//icode_generation.nit:969 */
4649 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4652 stack_frame_head
= fra
.me
.prev
;
4653 return fra
.me
.REG
[1];
4655 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4656 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4661 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4662 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4664 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4665 fra
.me
.has_broke
= 0;
4666 fra
.me
.REG_size
= 2;
4667 fra
.me
.REG
[0] = NIT_NULL
;
4668 fra
.me
.REG
[1] = NIT_NULL
;
4670 /* ./syntax//icode_generation.nit:972 */
4671 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4672 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4674 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4675 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4676 /* ./../lib/standard//collection//array.nit:24 */
4677 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4678 if (UNTAG_Bool(REGB1
)) {
4680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4682 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4683 /* ./syntax//icode_generation.nit:972 */
4685 /* ./../lib/standard//kernel.nit:237 */
4686 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4687 /* ./syntax//icode_generation.nit:972 */
4688 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4691 stack_frame_head
= fra
.me
.prev
;
4692 return fra
.me
.REG
[1];
4694 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4695 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4701 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4703 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4704 fra
.me
.has_broke
= 0;
4705 fra
.me
.REG_size
= 2;
4706 fra
.me
.REG
[0] = NIT_NULL
;
4707 fra
.me
.REG
[1] = NIT_NULL
;
4709 /* ./syntax//icode_generation.nit:975 */
4710 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4711 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4713 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4714 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4715 /* ./../lib/standard//collection//array.nit:24 */
4716 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4717 if (UNTAG_Bool(REGB1
)) {
4719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4721 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4722 /* ./syntax//icode_generation.nit:975 */
4724 /* ./../lib/standard//kernel.nit:237 */
4725 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4726 /* ./syntax//icode_generation.nit:975 */
4727 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4730 stack_frame_head
= fra
.me
.prev
;
4731 return fra
.me
.REG
[1];
4733 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
4734 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4737 static val_t once_value_1
; /* Once value */
4738 static val_t once_value_2
; /* Once value */
4739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4740 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4742 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4743 fra
.me
.has_broke
= 0;
4744 fra
.me
.REG_size
= 6;
4745 fra
.me
.REG
[0] = NIT_NULL
;
4746 fra
.me
.REG
[1] = NIT_NULL
;
4747 fra
.me
.REG
[2] = NIT_NULL
;
4748 fra
.me
.REG
[3] = NIT_NULL
;
4749 fra
.me
.REG
[4] = NIT_NULL
;
4750 fra
.me
.REG
[5] = NIT_NULL
;
4753 /* ./syntax//icode_generation.nit:981 */
4754 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4755 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4756 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4757 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
);
4758 /* ./syntax//icode_generation.nit:982 */
4759 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4760 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4761 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4762 if (!once_value_1
) {
4763 if (!once_value_2
) {
4764 fra
.me
.REG
[5] = BOX_NativeString("to_s");
4766 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4767 once_value_2
= fra
.me
.REG
[5];
4768 register_static_object(&once_value_2
);
4769 } else fra
.me
.REG
[5] = once_value_2
;
4770 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4771 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4772 once_value_1
= fra
.me
.REG
[5];
4773 register_static_object(&once_value_1
);
4774 } else fra
.me
.REG
[5] = once_value_1
;
4775 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4776 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]);
4777 /* ./syntax//icode_generation.nit:983 */
4778 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4779 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
));
4780 /* ./syntax//icode_generation.nit:990 */
4782 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4784 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4785 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4786 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]);
4789 stack_frame_head
= fra
.me
.prev
;
4790 return fra
.me
.REG
[0];
4792 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
){
4793 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4798 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4799 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4801 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4802 fra
.me
.has_broke
= 0;
4803 fra
.me
.REG_size
= 3;
4804 fra
.me
.REG
[0] = NIT_NULL
;
4805 fra
.me
.REG
[1] = NIT_NULL
;
4806 fra
.me
.REG
[2] = NIT_NULL
;
4807 fra
.me
.closure_ctx
= closctx_param
;
4808 fra
.me
.closure_funs
= CREG
;
4810 CREG
[0] = clos_fun0
;
4811 /* ./syntax//icode_generation.nit:984 */
4812 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4813 /* ./syntax//icode_generation.nit:985 */
4814 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4815 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4816 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
4817 if (UNTAG_Bool(REGB0
)) {
4819 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4822 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4823 if (UNTAG_Bool(REGB0
)) {
4824 /* ./syntax//icode_generation.nit:986 */
4826 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4828 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
4829 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4830 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4831 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4833 /* ./syntax//icode_generation.nit:988 */
4834 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
4835 stack_frame_head
= fra
.me
.prev
;
4838 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
4839 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4841 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4842 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4844 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
4845 fra
.me
.has_broke
= 0;
4846 fra
.me
.REG_size
= 2;
4847 fra
.me
.REG
[0] = NIT_NULL
;
4848 fra
.me
.REG
[1] = NIT_NULL
;
4851 /* ./syntax//icode_generation.nit:997 */
4852 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4855 stack_frame_head
= fra
.me
.prev
;
4856 return fra
.me
.REG
[1];
4858 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
4859 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4862 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4863 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4865 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4866 fra
.me
.has_broke
= 0;
4867 fra
.me
.REG_size
= 4;
4868 fra
.me
.REG
[0] = NIT_NULL
;
4869 fra
.me
.REG
[1] = NIT_NULL
;
4870 fra
.me
.REG
[2] = NIT_NULL
;
4871 fra
.me
.REG
[3] = NIT_NULL
;
4874 /* ./syntax//icode_generation.nit:1004 */
4875 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4876 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4877 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4878 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
);
4879 /* ./syntax//icode_generation.nit:1005 */
4880 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4881 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
));
4882 /* ./syntax//icode_generation.nit:1009 */
4885 stack_frame_head
= fra
.me
.prev
;
4886 return fra
.me
.REG
[2];
4888 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
){
4889 struct {struct stack_frame_t me
;} fra
;
4892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4893 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4895 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4896 fra
.me
.has_broke
= 0;
4897 fra
.me
.REG_size
= 1;
4898 fra
.me
.REG
[0] = NIT_NULL
;
4899 fra
.me
.closure_ctx
= closctx_param
;
4900 fra
.me
.closure_funs
= CREG
;
4902 CREG
[0] = clos_fun0
;
4903 /* ./syntax//icode_generation.nit:1006 */
4904 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4905 /* ./syntax//icode_generation.nit:1007 */
4906 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[0]);
4907 stack_frame_head
= fra
.me
.prev
;
4910 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
4911 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4914 static val_t once_value_1
; /* Once value */
4915 static val_t once_value_2
; /* Once value */
4916 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4917 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4919 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
4920 fra
.me
.has_broke
= 0;
4921 fra
.me
.REG_size
= 7;
4922 fra
.me
.REG
[0] = NIT_NULL
;
4923 fra
.me
.REG
[1] = NIT_NULL
;
4924 fra
.me
.REG
[2] = NIT_NULL
;
4925 fra
.me
.REG
[3] = NIT_NULL
;
4926 fra
.me
.REG
[4] = NIT_NULL
;
4927 fra
.me
.REG
[5] = NIT_NULL
;
4928 fra
.me
.REG
[6] = NIT_NULL
;
4931 /* ./syntax//icode_generation.nit:1016 */
4932 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4933 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4934 /* ./syntax//icode_generation.nit:1017 */
4935 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4936 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4937 /* ./syntax//icode_generation.nit:1018 */
4938 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4939 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4940 if (!once_value_1
) {
4941 if (!once_value_2
) {
4942 fra
.me
.REG
[6] = BOX_NativeString("init");
4944 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4945 once_value_2
= fra
.me
.REG
[6];
4946 register_static_object(&once_value_2
);
4947 } else fra
.me
.REG
[6] = once_value_2
;
4948 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4949 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4950 once_value_1
= fra
.me
.REG
[6];
4951 register_static_object(&once_value_1
);
4952 } else fra
.me
.REG
[6] = once_value_1
;
4953 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4954 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]);
4955 /* ./syntax//icode_generation.nit:1019 */
4956 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4958 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4961 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4962 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4963 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]);
4966 stack_frame_head
= fra
.me
.prev
;
4967 return fra
.me
.REG
[0];
4969 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
4970 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4973 static val_t once_value_1
; /* Once value */
4974 static val_t once_value_2
; /* Once value */
4975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4976 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4978 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
4979 fra
.me
.has_broke
= 0;
4980 fra
.me
.REG_size
= 7;
4981 fra
.me
.REG
[0] = NIT_NULL
;
4982 fra
.me
.REG
[1] = NIT_NULL
;
4983 fra
.me
.REG
[2] = NIT_NULL
;
4984 fra
.me
.REG
[3] = NIT_NULL
;
4985 fra
.me
.REG
[4] = NIT_NULL
;
4986 fra
.me
.REG
[5] = NIT_NULL
;
4987 fra
.me
.REG
[6] = NIT_NULL
;
4990 /* ./syntax//icode_generation.nit:1026 */
4991 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4992 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4993 /* ./syntax//icode_generation.nit:1027 */
4994 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4995 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4996 /* ./syntax//icode_generation.nit:1028 */
4997 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4998 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4999 if (!once_value_1
) {
5000 if (!once_value_2
) {
5001 fra
.me
.REG
[6] = BOX_NativeString("without_last");
5002 REGB0
= TAG_Int(12);
5003 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5004 once_value_2
= fra
.me
.REG
[6];
5005 register_static_object(&once_value_2
);
5006 } else fra
.me
.REG
[6] = once_value_2
;
5007 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5008 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5009 once_value_1
= fra
.me
.REG
[6];
5010 register_static_object(&once_value_1
);
5011 } else fra
.me
.REG
[6] = once_value_1
;
5012 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5013 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]);
5014 /* ./syntax//icode_generation.nit:1029 */
5015 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5017 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5020 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5021 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5022 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]);
5025 stack_frame_head
= fra
.me
.prev
;
5026 return fra
.me
.REG
[0];
5028 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
5029 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5035 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5036 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5038 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5039 fra
.me
.has_broke
= 0;
5040 fra
.me
.REG_size
= 6;
5041 fra
.me
.REG
[0] = NIT_NULL
;
5042 fra
.me
.REG
[1] = NIT_NULL
;
5043 fra
.me
.REG
[2] = NIT_NULL
;
5044 fra
.me
.REG
[3] = NIT_NULL
;
5045 fra
.me
.REG
[4] = NIT_NULL
;
5046 fra
.me
.REG
[5] = NIT_NULL
;
5049 /* ./syntax//icode_generation.nit:1036 */
5050 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5051 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5052 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5054 /* ./../lib/standard//kernel.nit:237 */
5055 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
5056 /* ./syntax//icode_generation.nit:1037 */
5057 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5058 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5059 if (UNTAG_Bool(REGB0
)) {
5061 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5062 if (UNTAG_Bool(REGB2
)) {
5063 REGB2
= TAG_Bool(false);
5066 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5070 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5071 if (UNTAG_Bool(REGB0
)) {
5072 /* ./syntax//icode_generation.nit:1038 */
5073 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5074 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5075 if (UNTAG_Bool(REGB0
)) {
5076 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1038);
5078 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5079 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5080 if (UNTAG_Bool(REGB0
)) {
5081 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1038);
5083 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5086 /* ./syntax//icode_generation.nit:1040 */
5088 /* ./../lib/standard//kernel.nit:235 */
5089 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
5090 /* ./syntax//icode_generation.nit:1040 */
5091 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5092 /* ./syntax//icode_generation.nit:1041 */
5093 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5094 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5096 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5098 /* ./syntax//icode_generation.nit:1042 */
5099 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5100 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5101 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
5102 if (UNTAG_Bool(REGB2
)) {
5104 /* ./../lib/standard//kernel.nit:227 */
5105 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
5106 /* ./syntax//icode_generation.nit:1042 */
5109 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5110 if (UNTAG_Bool(REGB2
)) {
5111 /* ./syntax//icode_generation.nit:1043 */
5113 /* ./../lib/standard//kernel.nit:352 */
5115 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5116 if (UNTAG_Bool(REGB0
)) {
5118 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5120 /* ./../lib/standard//kernel.nit:232 */
5121 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
5122 /* ./../lib/standard//kernel.nit:352 */
5123 if (UNTAG_Bool(REGB0
)) {
5124 /* ./syntax//icode_generation.nit:1043 */
5126 /* ./syntax//icode_generation.nit:1044 */
5127 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5128 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5130 /* ./../lib/standard//kernel.nit:235 */
5131 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
5132 /* ./syntax//icode_generation.nit:1044 */
5133 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
5134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5135 /* ./../lib/standard//kernel.nit:354 */
5137 /* ./../lib/standard//kernel.nit:235 */
5138 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
5139 /* ./../lib/standard//kernel.nit:354 */
5142 /* ./../lib/standard//kernel.nit:352 */
5148 /* ./syntax//icode_generation.nit:1047 */
5149 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5150 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
));
5152 /* ./syntax//icode_generation.nit:1051 */
5153 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5154 /* ./syntax//icode_generation.nit:1052 */
5155 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5156 if (UNTAG_Bool(REGB2
)) {
5158 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5159 if (UNTAG_Bool(REGB1
)) {
5160 REGB1
= TAG_Bool(false);
5163 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5167 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5168 if (UNTAG_Bool(REGB2
)) {
5169 /* ./syntax//icode_generation.nit:1053 */
5170 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5171 if (UNTAG_Bool(REGB2
)) {
5172 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5174 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5175 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5176 if (UNTAG_Bool(REGB2
)) {
5177 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5179 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5180 /* ./syntax//icode_generation.nit:1054 */
5181 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5182 if (UNTAG_Bool(REGB2
)) {
5184 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5185 if (UNTAG_Bool(REGB1
)) {
5186 REGB1
= TAG_Bool(false);
5189 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5193 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5194 if (UNTAG_Bool(REGB2
)) {
5195 /* ./syntax//icode_generation.nit:1055 */
5196 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5197 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]);
5200 /* ./syntax//icode_generation.nit:1057 */
5201 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5202 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5203 /* ./syntax//icode_generation.nit:1058 */
5204 fra
.me
.REG
[4] = NIT_NULL
;
5208 /* ./syntax//icode_generation.nit:1061 */
5209 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5210 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5211 /* ./syntax//icode_generation.nit:1062 */
5212 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5213 if (UNTAG_Bool(REGB2
)) {
5214 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5216 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5217 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5218 if (UNTAG_Bool(REGB2
)) {
5219 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5221 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5222 /* ./syntax//icode_generation.nit:1063 */
5223 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5224 if (UNTAG_Bool(REGB2
)) {
5226 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5227 if (UNTAG_Bool(REGB1
)) {
5228 REGB1
= TAG_Bool(false);
5231 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5235 if (UNTAG_Bool(REGB2
)) {
5236 /* ./syntax//icode_generation.nit:1064 */
5237 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5238 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5239 /* ./syntax//icode_generation.nit:1065 */
5240 fra
.me
.REG
[4] = NIT_NULL
;
5243 /* ./syntax//icode_generation.nit:1067 */
5244 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5245 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]);
5246 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5251 stack_frame_head
= fra
.me
.prev
;
5252 return fra
.me
.REG
[4];
5254 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
){
5255 struct {struct stack_frame_t me
;} fra
;
5258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5259 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5261 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5262 fra
.me
.has_broke
= 0;
5263 fra
.me
.REG_size
= 1;
5264 fra
.me
.REG
[0] = NIT_NULL
;
5265 fra
.me
.closure_ctx
= closctx_param
;
5266 fra
.me
.closure_funs
= CREG
;
5268 CREG
[0] = clos_fun0
;
5269 /* ./syntax//icode_generation.nit:1048 */
5270 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5271 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5272 stack_frame_head
= fra
.me
.prev
;
5275 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5276 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5280 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5282 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5283 fra
.me
.has_broke
= 0;
5284 fra
.me
.REG_size
= 4;
5285 fra
.me
.REG
[0] = NIT_NULL
;
5286 fra
.me
.REG
[1] = NIT_NULL
;
5287 fra
.me
.REG
[2] = NIT_NULL
;
5288 fra
.me
.REG
[3] = NIT_NULL
;
5291 /* ./syntax//icode_generation.nit:1076 */
5292 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5293 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5294 /* ./syntax//icode_generation.nit:1077 */
5295 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5296 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5297 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5298 if (UNTAG_Bool(REGB0
)) {
5299 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5301 /* ./syntax//icode_generation.nit:1078 */
5302 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5303 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]);
5306 stack_frame_head
= fra
.me
.prev
;
5307 return fra
.me
.REG
[2];
5309 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5310 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5314 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5316 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5317 fra
.me
.has_broke
= 0;
5318 fra
.me
.REG_size
= 4;
5319 fra
.me
.REG
[0] = NIT_NULL
;
5320 fra
.me
.REG
[1] = NIT_NULL
;
5321 fra
.me
.REG
[2] = NIT_NULL
;
5322 fra
.me
.REG
[3] = NIT_NULL
;
5325 /* ./syntax//icode_generation.nit:1085 */
5326 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5327 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5328 /* ./syntax//icode_generation.nit:1086 */
5329 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5330 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5331 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5332 if (UNTAG_Bool(REGB0
)) {
5333 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5335 /* ./syntax//icode_generation.nit:1087 */
5336 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5337 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5338 /* ./syntax//icode_generation.nit:1088 */
5339 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5340 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5341 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5342 /* ./syntax//icode_generation.nit:1089 */
5343 fra
.me
.REG
[3] = NIT_NULL
;
5346 stack_frame_head
= fra
.me
.prev
;
5347 return fra
.me
.REG
[3];
5349 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5350 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5354 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5356 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5357 fra
.me
.has_broke
= 0;
5358 fra
.me
.REG_size
= 7;
5359 fra
.me
.REG
[0] = NIT_NULL
;
5360 fra
.me
.REG
[1] = NIT_NULL
;
5361 fra
.me
.REG
[2] = NIT_NULL
;
5362 fra
.me
.REG
[3] = NIT_NULL
;
5363 fra
.me
.REG
[4] = NIT_NULL
;
5364 fra
.me
.REG
[5] = NIT_NULL
;
5365 fra
.me
.REG
[6] = NIT_NULL
;
5368 /* ./syntax//icode_generation.nit:1095 */
5369 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5370 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5371 /* ./syntax//icode_generation.nit:1096 */
5372 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5373 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5374 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5375 if (UNTAG_Bool(REGB0
)) {
5376 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5378 /* ./syntax//icode_generation.nit:1097 */
5379 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5380 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5381 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5382 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]);
5383 /* ./syntax//icode_generation.nit:1098 */
5384 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5385 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5386 /* ./syntax//icode_generation.nit:1099 */
5387 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5389 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5392 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5393 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5394 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]);
5395 /* ./syntax//icode_generation.nit:1100 */
5396 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5397 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5398 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5399 /* ./syntax//icode_generation.nit:1101 */
5400 fra
.me
.REG
[5] = NIT_NULL
;
5403 stack_frame_head
= fra
.me
.prev
;
5404 return fra
.me
.REG
[5];
5406 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5407 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5411 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5413 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5414 fra
.me
.has_broke
= 0;
5415 fra
.me
.REG_size
= 4;
5416 fra
.me
.REG
[0] = NIT_NULL
;
5417 fra
.me
.REG
[1] = NIT_NULL
;
5418 fra
.me
.REG
[2] = NIT_NULL
;
5419 fra
.me
.REG
[3] = NIT_NULL
;
5422 /* ./syntax//icode_generation.nit:1108 */
5423 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5424 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5425 /* ./syntax//icode_generation.nit:1109 */
5426 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5427 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5428 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5429 if (UNTAG_Bool(REGB0
)) {
5430 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5432 /* ./syntax//icode_generation.nit:1110 */
5433 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5434 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5435 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5436 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]);
5439 stack_frame_head
= fra
.me
.prev
;
5440 return fra
.me
.REG
[0];
5442 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5443 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5456 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5457 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5459 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5460 fra
.me
.has_broke
= 0;
5461 fra
.me
.REG_size
= 7;
5462 fra
.me
.REG
[0] = NIT_NULL
;
5463 fra
.me
.REG
[1] = NIT_NULL
;
5464 fra
.me
.REG
[2] = NIT_NULL
;
5465 fra
.me
.REG
[3] = NIT_NULL
;
5466 fra
.me
.REG
[4] = NIT_NULL
;
5467 fra
.me
.REG
[5] = NIT_NULL
;
5468 fra
.me
.REG
[6] = NIT_NULL
;
5473 /* ./syntax//icode_generation.nit:1118 */
5474 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5475 /* ./syntax//icode_generation.nit:1119 */
5476 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5477 /* ./syntax//icode_generation.nit:1120 */
5478 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5479 /* ./../lib/standard//collection//array.nit:24 */
5480 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5481 if (UNTAG_Bool(REGB2
)) {
5483 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5485 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5486 /* ./syntax//icode_generation.nit:1122 */
5488 /* ./syntax//icode_generation.nit:1123 */
5490 /* ./../lib/standard//kernel.nit:347 */
5492 /* ./../lib/standard//kernel.nit:352 */
5494 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5495 if (UNTAG_Bool(REGB6
)) {
5497 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5499 /* ./../lib/standard//kernel.nit:232 */
5500 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5501 /* ./../lib/standard//kernel.nit:352 */
5502 if (UNTAG_Bool(REGB6
)) {
5503 /* ./syntax//icode_generation.nit:1123 */
5505 /* ./syntax//icode_generation.nit:1125 */
5506 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5507 /* ./syntax//icode_generation.nit:1126 */
5508 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5509 if (UNTAG_Bool(REGB7
)) {
5511 /* ./../lib/standard//kernel.nit:227 */
5512 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5513 /* ./syntax//icode_generation.nit:1126 */
5516 if (UNTAG_Bool(REGB7
)) {
5517 /* ./syntax//icode_generation.nit:1127 */
5518 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5519 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5520 /* ./../lib/standard//kernel.nit:237 */
5521 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5522 /* ./syntax//icode_generation.nit:1127 */
5523 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
);
5524 /* ./syntax//icode_generation.nit:1128 */
5526 /* ./../lib/standard//kernel.nit:237 */
5527 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5528 /* ./../lib/standard//kernel.nit:341 */
5530 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5531 if (UNTAG_Bool(REGB8
)) {
5533 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5535 /* ./../lib/standard//kernel.nit:231 */
5536 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5537 /* ./../lib/standard//kernel.nit:341 */
5538 if (UNTAG_Bool(REGB8
)) {
5539 /* ./../lib/standard//collection//array.nit:278 */
5540 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5542 /* ./../lib/standard//collection//array.nit:280 */
5544 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5545 if (UNTAG_Bool(REGB10
)) {
5547 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5549 /* ./../lib/standard//kernel.nit:233 */
5550 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5551 /* ./../lib/standard//collection//array.nit:280 */
5552 if (UNTAG_Bool(REGB9
)) {
5553 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5554 if (UNTAG_Bool(REGB9
)) {
5556 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5558 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5559 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5560 if (UNTAG_Bool(REGB10
)) {
5562 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5564 /* ./../lib/standard//kernel.nit:232 */
5565 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5567 /* ./../lib/standard//collection//array.nit:280 */
5568 REGB10
= TAG_Bool(false);
5571 if (UNTAG_Bool(REGB9
)) {
5573 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
5575 /* ./../lib/standard//collection//array.nit:281 */
5576 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5577 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5578 if (UNTAG_Bool(REGB9
)) {
5579 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5581 /* ./../lib/standard//collection//array.nit:718 */
5582 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5583 /* ./../lib/standard//collection//array.nit:281 */
5586 /* ./syntax//icode_generation.nit:1130 */
5587 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5588 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]);
5589 /* ./syntax//icode_generation.nit:1131 */
5591 /* ./../lib/standard//kernel.nit:235 */
5592 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5593 /* ./syntax//icode_generation.nit:1131 */
5595 /* ./../lib/standard//kernel.nit:343 */
5597 /* ./../lib/standard//kernel.nit:235 */
5598 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5599 /* ./../lib/standard//kernel.nit:343 */
5602 /* ./../lib/standard//kernel.nit:341 */
5607 /* ./syntax//icode_generation.nit:1133 */
5608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5610 /* ./../lib/standard//collection//array.nit:278 */
5611 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5613 /* ./../lib/standard//collection//array.nit:280 */
5615 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5616 if (UNTAG_Bool(REGB8
)) {
5618 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5620 /* ./../lib/standard//kernel.nit:233 */
5621 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5622 /* ./../lib/standard//collection//array.nit:280 */
5623 if (UNTAG_Bool(REGB6
)) {
5624 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5625 if (UNTAG_Bool(REGB6
)) {
5627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5629 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5630 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5631 if (UNTAG_Bool(REGB8
)) {
5633 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5635 /* ./../lib/standard//kernel.nit:232 */
5636 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5638 /* ./../lib/standard//collection//array.nit:280 */
5639 REGB8
= TAG_Bool(false);
5642 if (UNTAG_Bool(REGB6
)) {
5644 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
5646 /* ./../lib/standard//collection//array.nit:281 */
5647 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5648 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5649 if (UNTAG_Bool(REGB6
)) {
5650 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5652 /* ./../lib/standard//collection//array.nit:718 */
5653 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5654 /* ./../lib/standard//collection//array.nit:281 */
5657 /* ./syntax//icode_generation.nit:1135 */
5658 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5659 /* ./syntax//icode_generation.nit:1136 */
5660 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5662 /* ./syntax//icode_generation.nit:1137 */
5664 /* ./../lib/standard//kernel.nit:235 */
5665 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5666 /* ./syntax//icode_generation.nit:1137 */
5669 /* ./../lib/standard//kernel.nit:354 */
5671 /* ./../lib/standard//kernel.nit:235 */
5672 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5673 /* ./../lib/standard//kernel.nit:354 */
5676 /* ./../lib/standard//kernel.nit:352 */
5681 stack_frame_head
= fra
.me
.prev
;
5684 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5685 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5693 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5695 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
5696 fra
.me
.has_broke
= 0;
5697 fra
.me
.REG_size
= 16;
5698 fra
.me
.REG
[0] = NIT_NULL
;
5699 fra
.me
.REG
[1] = NIT_NULL
;
5700 fra
.me
.REG
[2] = NIT_NULL
;
5701 fra
.me
.REG
[3] = NIT_NULL
;
5702 fra
.me
.REG
[4] = NIT_NULL
;
5703 fra
.me
.REG
[5] = NIT_NULL
;
5704 fra
.me
.REG
[6] = NIT_NULL
;
5705 fra
.me
.REG
[7] = NIT_NULL
;
5706 fra
.me
.REG
[8] = NIT_NULL
;
5707 fra
.me
.REG
[9] = NIT_NULL
;
5708 fra
.me
.REG
[10] = NIT_NULL
;
5709 fra
.me
.REG
[11] = NIT_NULL
;
5710 fra
.me
.REG
[12] = NIT_NULL
;
5711 fra
.me
.REG
[13] = NIT_NULL
;
5712 fra
.me
.REG
[14] = NIT_NULL
;
5713 fra
.me
.REG
[15] = NIT_NULL
;
5716 /* ./syntax//icode_generation.nit:1144 */
5717 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5718 /* ./syntax//icode_generation.nit:1146 */
5719 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5720 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5721 /* ./syntax//icode_generation.nit:1147 */
5722 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
5723 /* ./syntax//icode_generation.nit:1148 */
5724 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5725 /* ./syntax//icode_generation.nit:1149 */
5726 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5727 /* ./syntax//icode_generation.nit:1150 */
5728 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5729 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*/;
5730 if (UNTAG_Bool(REGB0
)) {
5732 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1150);
5734 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]);
5735 /* ./syntax//icode_generation.nit:1151 */
5736 fra
.me
.REG
[5] = NIT_NULL
;
5737 /* ./syntax//icode_generation.nit:1155 */
5738 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5739 /* ./syntax//icode_generation.nit:1156 */
5740 fra
.me
.REG
[6] = NIT_NULL
;
5741 /* ./syntax//icode_generation.nit:1157 */
5742 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5743 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5744 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5745 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5746 if (UNTAG_Bool(REGB0
)) {
5747 /* ./syntax//icode_generation.nit:1158 */
5748 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5749 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5750 /* ./syntax//icode_generation.nit:1159 */
5751 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5752 if (UNTAG_Bool(REGB0
)) {
5754 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5755 if (UNTAG_Bool(REGB1
)) {
5756 REGB1
= TAG_Bool(false);
5759 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
5763 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5764 if (UNTAG_Bool(REGB0
)) {
5765 /* ./syntax//icode_generation.nit:1160 */
5766 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5767 fra
.me
.REG
[5] = fra
.me
.REG
[7];
5769 /* ./syntax//icode_generation.nit:1162 */
5770 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
5771 /* ./syntax//icode_generation.nit:1163 */
5772 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5773 /* ./syntax//icode_generation.nit:1164 */
5774 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5775 /* ./syntax//icode_generation.nit:1165 */
5776 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
5777 fra
.me
.REG
[6] = fra
.me
.REG
[8];
5778 /* ./syntax//icode_generation.nit:1166 */
5780 /* ./syntax//icode_generation.nit:1167 */
5781 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5782 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5783 if (UNTAG_Bool(REGB0
)) {
5785 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5786 if (UNTAG_Bool(REGB1
)) {
5787 REGB1
= TAG_Bool(false);
5790 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5794 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5795 if (UNTAG_Bool(REGB0
)) {
5796 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5797 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5798 if (UNTAG_Bool(REGB0
)) {
5799 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1167);
5801 /* ./../lib/standard//collection//array.nit:24 */
5802 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
5803 if (UNTAG_Bool(REGB0
)) {
5805 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5807 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
5809 /* ./syntax//icode_generation.nit:1168 */
5810 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5811 /* ./syntax//icode_generation.nit:1169 */
5812 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5813 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5814 /* ./../lib/standard//collection//array.nit:269 */
5816 /* ./../lib/standard//collection//array.nit:270 */
5817 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5818 if (UNTAG_Bool(REGB1
)) {
5820 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5822 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5823 /* ./../lib/standard//collection//array.nit:271 */
5824 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
5825 /* ./../lib/standard//collection//array.nit:272 */
5827 /* ./../lib/standard//collection//array.nit:24 */
5828 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5829 if (UNTAG_Bool(REGB1
)) {
5831 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5833 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5834 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5835 if (UNTAG_Bool(REGB2
)) {
5837 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5839 /* ./../lib/standard//kernel.nit:232 */
5840 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5841 /* ./../lib/standard//collection//array.nit:272 */
5842 if (UNTAG_Bool(REGB1
)) {
5843 /* ./../lib/standard//collection//array.nit:273 */
5844 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
5845 if (UNTAG_Bool(REGB1
)) {
5846 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5848 /* ./../lib/standard//collection//array.nit:718 */
5849 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
5850 /* ./syntax//icode_generation.nit:1170 */
5851 REGB1
= TAG_Bool(false);
5852 /* ./syntax//icode_generation.nit:1171 */
5853 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
5854 /* ./syntax//icode_generation.nit:1172 */
5855 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5856 if (UNTAG_Bool(REGB2
)) {
5858 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5859 if (UNTAG_Bool(REGB3
)) {
5860 REGB3
= TAG_Bool(false);
5863 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5867 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5868 if (UNTAG_Bool(REGB2
)) {
5869 /* ./syntax//icode_generation.nit:1173 */
5870 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5871 if (UNTAG_Bool(REGB2
)) {
5872 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1173);
5874 /* ./../lib/standard//collection//array.nit:266 */
5875 fra
.me
.REG
[12] = fra
.me
.REG
[8];
5876 /* ./../lib/standard//collection//array.nit:269 */
5878 /* ./../lib/standard//collection//array.nit:270 */
5879 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5880 if (UNTAG_Bool(REGB3
)) {
5882 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5884 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5885 /* ./../lib/standard//collection//array.nit:271 */
5886 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
5887 /* ./../lib/standard//collection//array.nit:272 */
5889 /* ./../lib/standard//collection//array.nit:24 */
5890 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5891 if (UNTAG_Bool(REGB3
)) {
5893 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5895 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5896 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5897 if (UNTAG_Bool(REGB4
)) {
5899 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5901 /* ./../lib/standard//kernel.nit:232 */
5902 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
5903 /* ./../lib/standard//collection//array.nit:272 */
5904 if (UNTAG_Bool(REGB3
)) {
5905 /* ./../lib/standard//collection//array.nit:273 */
5906 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
5907 if (UNTAG_Bool(REGB3
)) {
5908 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5910 /* ./../lib/standard//collection//array.nit:718 */
5911 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
5912 /* ./syntax//icode_generation.nit:1174 */
5913 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5914 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
5915 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
5916 if (UNTAG_Bool(REGB3
)) {
5918 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
5921 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
5922 if (UNTAG_Bool(REGB3
)) {
5925 /* ./syntax//icode_generation.nit:1175 */
5926 REGB3
= TAG_Bool(false);
5927 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
5928 if (UNTAG_Bool(REGB4
)) {
5930 /* ./../lib/standard//kernel.nit:195 */
5931 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
5932 /* ./syntax//icode_generation.nit:1175 */
5935 if (UNTAG_Bool(REGB4
)) {
5937 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1175);
5939 /* ./syntax//icode_generation.nit:1176 */
5940 REGB4
= TAG_Bool(true);
5942 /* ./syntax//icode_generation.nit:1177 */
5943 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5944 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5945 if (UNTAG_Bool(REGB4
)) {
5946 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1177);
5948 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
5949 /* ./syntax//icode_generation.nit:1178 */
5950 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
5951 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
5952 if (UNTAG_Bool(REGB4
)) {
5953 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1178);
5955 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
5956 /* ./syntax//icode_generation.nit:1179 */
5957 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
5958 /* ./syntax//icode_generation.nit:1180 */
5959 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5960 if (UNTAG_Bool(REGB4
)) {
5961 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1180);
5963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
5965 /* ./../lib/standard//collection//array.nit:274 */
5967 /* ./../lib/standard//kernel.nit:235 */
5968 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
5969 /* ./../lib/standard//collection//array.nit:274 */
5972 /* ./../lib/standard//collection//array.nit:272 */
5978 /* ./syntax//icode_generation.nit:1183 */
5979 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5980 if (UNTAG_Bool(REGB1
)) {
5981 /* ./syntax//icode_generation.nit:1184 */
5982 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5983 if (UNTAG_Bool(REGB1
)) {
5984 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1184);
5986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5988 /* ./../lib/standard//collection//array.nit:274 */
5990 /* ./../lib/standard//kernel.nit:235 */
5991 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5992 /* ./../lib/standard//collection//array.nit:274 */
5995 /* ./../lib/standard//collection//array.nit:272 */
6001 /* ./syntax//icode_generation.nit:1189 */
6002 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]);
6003 /* ./syntax//icode_generation.nit:1192 */
6004 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6005 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6006 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6007 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6008 if (UNTAG_Bool(REGB0
)) {
6009 /* ./syntax//icode_generation.nit:1193 */
6010 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6011 if (UNTAG_Bool(REGB0
)) {
6013 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6014 if (UNTAG_Bool(REGB1
)) {
6015 REGB1
= TAG_Bool(false);
6018 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6022 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6023 if (UNTAG_Bool(REGB0
)) {
6024 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6025 if (UNTAG_Bool(REGB0
)) {
6027 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6028 if (UNTAG_Bool(REGB1
)) {
6029 REGB1
= TAG_Bool(false);
6032 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6036 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6038 REGB1
= TAG_Bool(false);
6041 if (UNTAG_Bool(REGB0
)) {
6042 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
6044 /* ./syntax//icode_generation.nit:1194 */
6045 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6047 /* ./syntax//icode_generation.nit:1196 */
6048 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6050 /* ./syntax//icode_generation.nit:1199 */
6051 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6052 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6053 if (UNTAG_Bool(REGB0
)) {
6054 /* ./syntax//icode_generation.nit:1200 */
6055 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6057 /* ./syntax//icode_generation.nit:1202 */
6060 stack_frame_head
= fra
.me
.prev
;
6061 return fra
.me
.REG
[5];
6063 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
6064 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6067 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6068 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6070 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
6071 fra
.me
.has_broke
= 0;
6072 fra
.me
.REG_size
= 8;
6073 fra
.me
.REG
[0] = NIT_NULL
;
6074 fra
.me
.REG
[1] = NIT_NULL
;
6075 fra
.me
.REG
[2] = NIT_NULL
;
6076 fra
.me
.REG
[3] = NIT_NULL
;
6077 fra
.me
.REG
[4] = NIT_NULL
;
6078 fra
.me
.REG
[5] = NIT_NULL
;
6079 fra
.me
.REG
[6] = NIT_NULL
;
6080 fra
.me
.REG
[7] = NIT_NULL
;
6083 /* ./syntax//icode_generation.nit:1207 */
6084 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6085 /* ./syntax//icode_generation.nit:1209 */
6086 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6087 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6088 /* ./syntax//icode_generation.nit:1210 */
6089 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6090 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6091 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6092 if (UNTAG_Bool(REGB0
)) {
6093 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6095 /* ./syntax//icode_generation.nit:1211 */
6096 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6097 /* ./syntax//icode_generation.nit:1212 */
6098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6099 /* ./syntax//icode_generation.nit:1213 */
6100 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6101 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6102 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*/;
6103 if (UNTAG_Bool(REGB0
)) {
6105 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1213);
6107 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]);
6108 /* ./syntax//icode_generation.nit:1215 */
6109 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6110 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6111 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6112 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6113 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6114 if (UNTAG_Bool(REGB0
)) {
6115 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1215);
6117 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6118 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*/;
6119 if (UNTAG_Bool(REGB0
)) {
6121 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1215);
6123 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]);
6124 /* ./syntax//icode_generation.nit:1216 */
6125 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6126 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6127 /* ./syntax//icode_generation.nit:1217 */
6128 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6130 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
6132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6133 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6134 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6135 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6136 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6137 if (UNTAG_Bool(REGB0
)) {
6138 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1217);
6140 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6141 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*/;
6142 if (UNTAG_Bool(REGB0
)) {
6144 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1217);
6146 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]);
6147 /* ./syntax//icode_generation.nit:1218 */
6148 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6149 /* ./syntax//icode_generation.nit:1219 */
6150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6151 /* ./syntax//icode_generation.nit:1220 */
6152 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6153 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6154 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6155 /* ./syntax//icode_generation.nit:1221 */
6156 fra
.me
.REG
[4] = NIT_NULL
;
6159 stack_frame_head
= fra
.me
.prev
;
6160 return fra
.me
.REG
[4];
6162 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6163 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6166 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6167 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6169 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6170 fra
.me
.has_broke
= 0;
6171 fra
.me
.REG_size
= 5;
6172 fra
.me
.REG
[0] = NIT_NULL
;
6173 fra
.me
.REG
[1] = NIT_NULL
;
6174 fra
.me
.REG
[2] = NIT_NULL
;
6175 fra
.me
.REG
[3] = NIT_NULL
;
6176 fra
.me
.REG
[4] = NIT_NULL
;
6179 /* ./syntax//icode_generation.nit:1226 */
6180 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6181 /* ./syntax//icode_generation.nit:1228 */
6182 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6183 /* ./syntax//icode_generation.nit:1229 */
6184 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6185 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6186 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*/;
6187 if (UNTAG_Bool(REGB0
)) {
6189 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1229);
6191 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]);
6192 /* ./syntax//icode_generation.nit:1230 */
6193 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6194 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6195 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6196 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6197 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]);
6200 stack_frame_head
= fra
.me
.prev
;
6201 return fra
.me
.REG
[2];
6203 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6204 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6207 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6209 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6210 fra
.me
.has_broke
= 0;
6211 fra
.me
.REG_size
= 2;
6212 fra
.me
.REG
[0] = NIT_NULL
;
6213 fra
.me
.REG
[1] = NIT_NULL
;
6216 /* ./syntax//icode_generation.nit:1237 */
6217 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6218 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6221 stack_frame_head
= fra
.me
.prev
;
6222 return fra
.me
.REG
[0];
6224 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6225 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6227 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6228 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6230 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6231 fra
.me
.has_broke
= 0;
6232 fra
.me
.REG_size
= 5;
6233 fra
.me
.REG
[0] = NIT_NULL
;
6234 fra
.me
.REG
[1] = NIT_NULL
;
6235 fra
.me
.REG
[2] = NIT_NULL
;
6236 fra
.me
.REG
[3] = NIT_NULL
;
6237 fra
.me
.REG
[4] = NIT_NULL
;
6240 /* ./syntax//icode_generation.nit:1244 */
6241 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6242 /* ./syntax//icode_generation.nit:1245 */
6243 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6244 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]);
6245 /* ./syntax//icode_generation.nit:1246 */
6246 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6247 /* ./syntax//icode_generation.nit:1247 */
6248 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6249 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6250 /* ./syntax//icode_generation.nit:1249 */
6251 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6252 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6253 /* ./syntax//icode_generation.nit:1250 */
6254 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6255 /* ./syntax//icode_generation.nit:1252 */
6256 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6257 /* ./syntax//icode_generation.nit:1253 */
6260 stack_frame_head
= fra
.me
.prev
;
6261 return fra
.me
.REG
[3];
6263 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6264 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6273 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6275 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6276 fra
.me
.has_broke
= 0;
6277 fra
.me
.REG_size
= 7;
6278 fra
.me
.REG
[0] = NIT_NULL
;
6279 fra
.me
.REG
[1] = NIT_NULL
;
6280 fra
.me
.REG
[2] = NIT_NULL
;
6281 fra
.me
.REG
[3] = NIT_NULL
;
6282 fra
.me
.REG
[4] = NIT_NULL
;
6283 fra
.me
.REG
[5] = NIT_NULL
;
6284 fra
.me
.REG
[6] = NIT_NULL
;
6287 /* ./syntax//icode_generation.nit:1261 */
6288 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6289 /* ./syntax//icode_generation.nit:1264 */
6290 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6291 /* ./syntax//icode_generation.nit:1265 */
6292 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6293 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6294 /* ./syntax//icode_generation.nit:1266 */
6296 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6297 /* ./../lib/standard//kernel.nit:352 */
6299 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6300 if (UNTAG_Bool(REGB2
)) {
6302 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6304 /* ./../lib/standard//kernel.nit:232 */
6305 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6306 /* ./../lib/standard//kernel.nit:352 */
6307 if (UNTAG_Bool(REGB2
)) {
6308 /* ./syntax//icode_generation.nit:1266 */
6310 /* ./syntax//icode_generation.nit:1267 */
6311 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6312 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6314 /* ./../lib/standard//kernel.nit:354 */
6316 /* ./../lib/standard//kernel.nit:235 */
6317 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6318 /* ./../lib/standard//kernel.nit:354 */
6321 /* ./../lib/standard//kernel.nit:352 */
6326 /* ./syntax//icode_generation.nit:1269 */
6327 fra
.me
.REG
[5] = NIT_NULL
;
6328 /* ./syntax//icode_generation.nit:1270 */
6329 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6330 /* ./syntax//icode_generation.nit:1271 */
6331 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6332 if (UNTAG_Bool(REGB0
)) {
6334 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6335 if (UNTAG_Bool(REGB1
)) {
6336 REGB1
= TAG_Bool(false);
6339 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6343 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6344 if (UNTAG_Bool(REGB0
)) {
6345 /* ./syntax//icode_generation.nit:1272 */
6346 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6347 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6349 /* ./syntax//icode_generation.nit:1275 */
6350 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6351 /* ./syntax//icode_generation.nit:1276 */
6352 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6353 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6354 /* ./syntax//icode_generation.nit:1279 */
6355 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6356 /* ./syntax//icode_generation.nit:1280 */
6357 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6358 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6359 /* ./syntax//icode_generation.nit:1281 */
6360 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6361 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6362 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6363 if (UNTAG_Bool(REGB0
)) {
6364 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1281);
6366 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6367 /* ./syntax//icode_generation.nit:1282 */
6368 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6369 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6370 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6371 if (UNTAG_Bool(REGB0
)) {
6372 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1282);
6374 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6375 /* ./syntax//icode_generation.nit:1285 */
6377 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6378 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6379 if (UNTAG_Bool(REGB1
)) {
6380 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1285);
6382 /* ./../lib/standard//collection//array.nit:24 */
6383 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6384 if (UNTAG_Bool(REGB1
)) {
6386 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6388 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6389 /* ./../lib/standard//kernel.nit:352 */
6391 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6392 if (UNTAG_Bool(REGB2
)) {
6394 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6396 /* ./../lib/standard//kernel.nit:232 */
6397 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6398 /* ./../lib/standard//kernel.nit:352 */
6399 if (UNTAG_Bool(REGB2
)) {
6400 /* ./syntax//icode_generation.nit:1285 */
6402 /* ./syntax//icode_generation.nit:1286 */
6403 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6404 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6405 if (UNTAG_Bool(REGB3
)) {
6406 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1286);
6408 /* ./../lib/standard//collection//array.nit:278 */
6410 /* ./../lib/standard//collection//array.nit:280 */
6412 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6413 if (UNTAG_Bool(REGB5
)) {
6415 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6417 /* ./../lib/standard//kernel.nit:233 */
6418 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6419 /* ./../lib/standard//collection//array.nit:280 */
6420 if (UNTAG_Bool(REGB4
)) {
6421 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6422 if (UNTAG_Bool(REGB4
)) {
6424 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
6426 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6427 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6428 if (UNTAG_Bool(REGB5
)) {
6430 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6432 /* ./../lib/standard//kernel.nit:232 */
6433 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6435 /* ./../lib/standard//collection//array.nit:280 */
6436 REGB5
= TAG_Bool(false);
6439 if (UNTAG_Bool(REGB4
)) {
6441 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
6443 /* ./../lib/standard//collection//array.nit:281 */
6444 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6445 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6446 if (UNTAG_Bool(REGB4
)) {
6447 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
6449 /* ./../lib/standard//collection//array.nit:718 */
6450 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6451 /* ./../lib/standard//collection//array.nit:281 */
6454 /* ./syntax//icode_generation.nit:1286 */
6455 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6456 /* ./syntax//icode_generation.nit:1287 */
6457 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6458 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6459 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6460 /* ./../lib/standard//kernel.nit:354 */
6462 /* ./../lib/standard//kernel.nit:235 */
6463 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6464 /* ./../lib/standard//kernel.nit:354 */
6467 /* ./../lib/standard//kernel.nit:352 */
6472 /* ./syntax//icode_generation.nit:1290 */
6473 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6474 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6475 /* ./syntax//icode_generation.nit:1293 */
6476 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6477 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6478 if (UNTAG_Bool(REGB0
)) {
6479 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6480 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6481 if (UNTAG_Bool(REGB0
)) {
6482 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1293);
6484 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6485 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6486 if (UNTAG_Bool(REGB0
)) {
6488 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6489 if (UNTAG_Bool(REGB1
)) {
6490 REGB1
= TAG_Bool(false);
6493 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6498 REGB1
= TAG_Bool(false);
6501 if (UNTAG_Bool(REGB0
)) {
6502 /* ./syntax//icode_generation.nit:1294 */
6503 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6504 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6505 if (UNTAG_Bool(REGB0
)) {
6506 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1294);
6508 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6509 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6510 if (UNTAG_Bool(REGB0
)) {
6512 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1294);
6514 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6516 /* ./syntax//icode_generation.nit:1297 */
6517 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6518 /* ./syntax//icode_generation.nit:1298 */
6519 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6520 /* ./syntax//icode_generation.nit:1299 */
6523 stack_frame_head
= fra
.me
.prev
;
6524 return fra
.me
.REG
[5];
6526 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6527 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6532 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6533 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6535 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6536 fra
.me
.has_broke
= 0;
6537 fra
.me
.REG_size
= 9;
6538 fra
.me
.REG
[0] = NIT_NULL
;
6539 fra
.me
.REG
[1] = NIT_NULL
;
6540 fra
.me
.REG
[2] = NIT_NULL
;
6541 fra
.me
.REG
[3] = NIT_NULL
;
6542 fra
.me
.REG
[4] = NIT_NULL
;
6543 fra
.me
.REG
[5] = NIT_NULL
;
6544 fra
.me
.REG
[6] = NIT_NULL
;
6545 fra
.me
.REG
[7] = NIT_NULL
;
6546 fra
.me
.REG
[8] = NIT_NULL
;
6549 /* ./syntax//icode_generation.nit:1307 */
6550 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6551 /* ./syntax//icode_generation.nit:1308 */
6552 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6553 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6554 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6555 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]);
6556 /* ./syntax//icode_generation.nit:1311 */
6557 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6558 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6559 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6560 /* ./syntax//icode_generation.nit:1312 */
6561 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6562 /* ./syntax//icode_generation.nit:1313 */
6563 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6564 /* ./syntax//icode_generation.nit:1316 */
6565 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6566 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6568 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6569 if (UNTAG_Bool(REGB2
)) {
6571 /* ./../lib/standard//kernel.nit:227 */
6572 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6573 /* ./syntax//icode_generation.nit:1316 */
6576 if (UNTAG_Bool(REGB2
)) {
6577 /* ./syntax//icode_generation.nit:1317 */
6578 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6579 /* ./syntax//icode_generation.nit:1318 */
6580 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6581 /* ./syntax//icode_generation.nit:1319 */
6582 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6583 /* ./syntax//icode_generation.nit:1320 */
6584 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6585 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6586 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6587 if (UNTAG_Bool(REGB2
)) {
6588 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1320);
6590 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6591 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6592 /* ./syntax//icode_generation.nit:1321 */
6593 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6595 /* ./syntax//icode_generation.nit:1325 */
6596 fra
.me
.REG
[6] = NIT_NULL
;
6597 /* ./syntax//icode_generation.nit:1326 */
6598 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6599 /* ./syntax//icode_generation.nit:1327 */
6600 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6601 if (UNTAG_Bool(REGB2
)) {
6603 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6604 if (UNTAG_Bool(REGB1
)) {
6605 REGB1
= TAG_Bool(false);
6608 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6612 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6613 if (UNTAG_Bool(REGB2
)) {
6614 /* ./syntax//icode_generation.nit:1328 */
6615 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6616 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6617 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6618 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]);
6619 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6620 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6621 /* ./syntax//icode_generation.nit:1329 */
6622 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6623 /* ./syntax//icode_generation.nit:1330 */
6624 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6625 if (UNTAG_Bool(REGB2
)) {
6626 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1330);
6628 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6629 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6631 /* ./syntax//icode_generation.nit:1334 */
6632 fra
.me
.REG
[8] = NIT_NULL
;
6633 /* ./syntax//icode_generation.nit:1335 */
6634 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6635 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6636 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6637 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6638 /* ./syntax//icode_generation.nit:1336 */
6639 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6640 if (UNTAG_Bool(REGB2
)) {
6642 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6643 if (UNTAG_Bool(REGB1
)) {
6644 REGB1
= TAG_Bool(false);
6647 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6651 if (UNTAG_Bool(REGB2
)) {
6652 /* ./syntax//icode_generation.nit:1337 */
6653 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6655 /* ./syntax//icode_generation.nit:1339 */
6656 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]);
6657 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6659 /* ./syntax//icode_generation.nit:1343 */
6660 fra
.me
.REG
[3] = NIT_NULL
;
6661 /* ./syntax//icode_generation.nit:1344 */
6662 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6663 if (UNTAG_Bool(REGB2
)) {
6665 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6666 if (UNTAG_Bool(REGB1
)) {
6667 REGB1
= TAG_Bool(false);
6670 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6674 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6675 if (UNTAG_Bool(REGB2
)) {
6676 /* ./syntax//icode_generation.nit:1345 */
6677 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6678 if (UNTAG_Bool(REGB2
)) {
6680 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6681 if (UNTAG_Bool(REGB1
)) {
6682 REGB1
= TAG_Bool(false);
6685 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6689 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6690 if (UNTAG_Bool(REGB2
)) {
6692 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1345);
6694 /* ./syntax//icode_generation.nit:1346 */
6695 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6696 if (UNTAG_Bool(REGB2
)) {
6698 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6699 if (UNTAG_Bool(REGB1
)) {
6700 REGB1
= TAG_Bool(false);
6703 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6707 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6708 if (UNTAG_Bool(REGB2
)) {
6709 /* ./syntax//icode_generation.nit:1347 */
6710 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6711 if (UNTAG_Bool(REGB2
)) {
6713 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6714 if (UNTAG_Bool(REGB1
)) {
6715 REGB1
= TAG_Bool(false);
6718 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6722 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6723 if (UNTAG_Bool(REGB2
)) {
6725 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1347);
6727 /* ./syntax//icode_generation.nit:1348 */
6728 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6729 fra
.me
.REG
[3] = fra
.me
.REG
[0];
6730 /* ./syntax//icode_generation.nit:1349 */
6731 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
6733 /* ./syntax//icode_generation.nit:1351 */
6734 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6735 if (UNTAG_Bool(REGB2
)) {
6736 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1351);
6738 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6739 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6740 /* ./syntax//icode_generation.nit:1352 */
6741 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
);
6742 /* ./syntax//icode_generation.nit:1353 */
6743 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6744 if (UNTAG_Bool(REGB2
)) {
6746 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6747 if (UNTAG_Bool(REGB1
)) {
6748 REGB1
= TAG_Bool(false);
6751 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6755 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6756 if (UNTAG_Bool(REGB2
)) {
6757 /* ./syntax//icode_generation.nit:1354 */
6758 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6759 if (UNTAG_Bool(REGB2
)) {
6761 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6762 if (UNTAG_Bool(REGB1
)) {
6763 REGB1
= TAG_Bool(false);
6766 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6770 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6771 if (UNTAG_Bool(REGB2
)) {
6773 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1354);
6775 /* ./syntax//icode_generation.nit:1355 */
6776 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6778 /* ./syntax//icode_generation.nit:1357 */
6779 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6781 /* ./syntax//icode_generation.nit:1359 */
6782 fra
.me
.REG
[3] = fra
.me
.REG
[8];
6784 /* ./syntax//icode_generation.nit:1361 */
6787 stack_frame_head
= fra
.me
.prev
;
6788 return fra
.me
.REG
[3];