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
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
16 fra
.me
.REG
[1] = NIT_NULL
;
17 fra
.me
.REG
[2] = NIT_NULL
;
18 fra
.me
.REG
[3] = NIT_NULL
;
21 /* ./syntax//icode_generation.nit:28 */
22 fra
.me
.REG
[2] = fra
.me
.REG
[0];
23 /* ./syntax//icode_generation.nit:30 */
24 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
25 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
26 if (UNTAG_Bool(REGB0
)) {
28 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
29 if (UNTAG_Bool(REGB1
)) {
30 REGB1
= TAG_Bool(false);
33 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
37 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
38 if (UNTAG_Bool(REGB0
)) {
39 /* ./syntax//icode_generation.nit:31 */
40 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
41 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
42 if (UNTAG_Bool(REGB0
)) {
43 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 31);
45 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
46 CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
48 /* ./syntax//icode_generation.nit:32 */
49 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
50 fra
.me
.REG
[3] = CALL_parser___parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
51 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
52 if (UNTAG_Bool(REGB0
)) {
54 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
55 if (UNTAG_Bool(REGB1
)) {
56 REGB1
= TAG_Bool(false);
59 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
63 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
64 if (UNTAG_Bool(REGB0
)) {
65 /* ./syntax//icode_generation.nit:33 */
66 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
67 fra
.me
.REG
[3] = CALL_parser___parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
68 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
69 if (UNTAG_Bool(REGB0
)) {
70 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 33);
72 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
73 CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
76 /* ./syntax//icode_generation.nit:35 */
77 CALL_SUPER_syntax___icode_generation___A2IContext___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
78 stack_frame_head
= fra
.me
.prev
;
81 val_t
syntax___icode_generation___A2IContext___add_new_array(val_t p0
, val_t p1
, val_t p2
){
82 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
86 static val_t once_value_1
; /* Once value */
87 static val_t once_value_2
; /* Once value */
88 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
89 fra
.me
.file
= LOCATE_syntax___icode_generation
;
91 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___add_new_array
;
94 fra
.me
.nitni_local_ref_head
= NULL
;
95 fra
.me
.REG
[0] = NIT_NULL
;
96 fra
.me
.REG
[1] = NIT_NULL
;
97 fra
.me
.REG
[2] = NIT_NULL
;
98 fra
.me
.REG
[3] = NIT_NULL
;
99 fra
.me
.REG
[4] = NIT_NULL
;
103 /* ./syntax//icode_generation.nit:41 */
104 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
107 fra
.me
.REG
[3] = BOX_NativeString("with_capacity");
109 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
110 once_value_2
= fra
.me
.REG
[3];
111 register_static_object(&once_value_2
);
112 } else fra
.me
.REG
[3] = once_value_2
;
113 fra
.me
.REG
[3] = fra
.me
.REG
[3];
114 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
115 once_value_1
= fra
.me
.REG
[3];
116 register_static_object(&once_value_1
);
117 } else fra
.me
.REG
[3] = once_value_1
;
118 fra
.me
.REG
[3] = fra
.me
.REG
[3];
119 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]);
120 /* ./syntax//icode_generation.nit:42 */
121 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
122 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
123 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
124 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
125 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]);
126 /* ./syntax//icode_generation.nit:43 */
128 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
130 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
131 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]);
134 stack_frame_head
= fra
.me
.prev
;
135 return fra
.me
.REG
[1];
137 void syntax___icode_generation___A2IContext___add_call_array_add(val_t p0
, val_t p1
, val_t p2
){
138 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
141 static val_t once_value_1
; /* Once value */
142 static val_t once_value_2
; /* Once value */
143 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
144 fra
.me
.file
= LOCATE_syntax___icode_generation
;
146 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___add_call_array_add
;
147 fra
.me
.has_broke
= 0;
149 fra
.me
.nitni_local_ref_head
= NULL
;
150 fra
.me
.REG
[0] = NIT_NULL
;
151 fra
.me
.REG
[1] = NIT_NULL
;
152 fra
.me
.REG
[2] = NIT_NULL
;
153 fra
.me
.REG
[3] = NIT_NULL
;
154 fra
.me
.REG
[4] = NIT_NULL
;
155 fra
.me
.REG
[5] = NIT_NULL
;
159 /* ./syntax//icode_generation.nit:49 */
160 fra
.me
.REG
[3] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
161 /* ./syntax//icode_generation.nit:50 */
162 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
165 fra
.me
.REG
[5] = BOX_NativeString("add");
167 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
168 once_value_2
= fra
.me
.REG
[5];
169 register_static_object(&once_value_2
);
170 } else fra
.me
.REG
[5] = once_value_2
;
171 fra
.me
.REG
[5] = fra
.me
.REG
[5];
172 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
173 once_value_1
= fra
.me
.REG
[5];
174 register_static_object(&once_value_1
);
175 } else fra
.me
.REG
[5] = once_value_1
;
176 fra
.me
.REG
[5] = fra
.me
.REG
[5];
177 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]);
178 /* ./syntax//icode_generation.nit:51 */
180 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
181 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
183 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[3]);
184 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
185 stack_frame_head
= fra
.me
.prev
;
188 val_t
syntax___icode_generation___A2IContext___variable(val_t p0
, val_t p1
){
189 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
192 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
193 fra
.me
.file
= LOCATE_syntax___icode_generation
;
195 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___variable
;
196 fra
.me
.has_broke
= 0;
198 fra
.me
.nitni_local_ref_head
= NULL
;
199 fra
.me
.REG
[0] = NIT_NULL
;
200 fra
.me
.REG
[1] = NIT_NULL
;
201 fra
.me
.REG
[2] = NIT_NULL
;
202 fra
.me
.REG
[3] = NIT_NULL
;
203 fra
.me
.REG
[4] = NIT_NULL
;
206 /* ./syntax//icode_generation.nit:54 */
207 fra
.me
.REG
[2] = fra
.me
.REG
[0];
208 /* ./syntax//icode_generation.nit:58 */
209 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
210 if (UNTAG_Bool(REGB0
)) {
212 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 58);
214 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
215 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
216 if (UNTAG_Bool(REGB0
)) {
217 /* ./syntax//icode_generation.nit:59 */
218 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
219 if (UNTAG_Bool(REGB0
)) {
221 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 59);
223 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
224 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
227 /* ./syntax//icode_generation.nit:61 */
228 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
229 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*/;
230 if (UNTAG_Bool(REGB0
)) {
232 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 61);
234 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
235 /* ./syntax//icode_generation.nit:62 */
236 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
237 if (UNTAG_Bool(REGB0
)) {
239 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 62);
241 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
242 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4]);
243 /* ./syntax//icode_generation.nit:63 */
244 fra
.me
.REG
[3] = fra
.me
.REG
[4];
248 stack_frame_head
= fra
.me
.prev
;
249 return fra
.me
.REG
[3];
251 val_t
syntax___icode_generation___A2IContext___closurevariables(val_t p0
){
252 struct {struct stack_frame_t me
;} fra
;
255 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
256 fra
.me
.file
= LOCATE_syntax___icode_generation
;
258 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___closurevariables
;
259 fra
.me
.has_broke
= 0;
261 fra
.me
.nitni_local_ref_head
= NULL
;
262 fra
.me
.REG
[0] = NIT_NULL
;
264 /* ./syntax//icode_generation.nit:70 */
265 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0])!=NIT_NULL
);
266 if (UNTAG_Bool(REGB0
)) {
268 nit_abort("Uninitialized attribute %s", "_closurevariables", LOCATE_syntax___icode_generation
, 70);
270 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0]);
271 stack_frame_head
= fra
.me
.prev
;
272 return fra
.me
.REG
[0];
274 val_t
syntax___icode_generation___A2IContext___visitor(val_t p0
){
275 struct {struct stack_frame_t me
;} fra
;
278 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
279 fra
.me
.file
= LOCATE_syntax___icode_generation
;
281 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___visitor
;
282 fra
.me
.has_broke
= 0;
284 fra
.me
.nitni_local_ref_head
= NULL
;
285 fra
.me
.REG
[0] = NIT_NULL
;
287 /* ./syntax//icode_generation.nit:73 */
288 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
289 if (UNTAG_Bool(REGB0
)) {
291 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___icode_generation
, 73);
293 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0]);
294 stack_frame_head
= fra
.me
.prev
;
295 return fra
.me
.REG
[0];
297 val_t
syntax___icode_generation___A2IContext___return_seq(val_t p0
){
298 struct {struct stack_frame_t me
;} fra
;
300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
301 fra
.me
.file
= LOCATE_syntax___icode_generation
;
303 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq
;
304 fra
.me
.has_broke
= 0;
306 fra
.me
.nitni_local_ref_head
= NULL
;
307 fra
.me
.REG
[0] = NIT_NULL
;
309 /* ./syntax//icode_generation.nit:76 */
310 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]);
311 stack_frame_head
= fra
.me
.prev
;
312 return fra
.me
.REG
[0];
314 void syntax___icode_generation___A2IContext___return_seq__eq(val_t p0
, val_t p1
){
315 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
318 fra
.me
.file
= LOCATE_syntax___icode_generation
;
320 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq__eq
;
321 fra
.me
.has_broke
= 0;
323 fra
.me
.nitni_local_ref_head
= NULL
;
324 fra
.me
.REG
[0] = NIT_NULL
;
325 fra
.me
.REG
[1] = NIT_NULL
;
328 /* ./syntax//icode_generation.nit:76 */
329 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
330 stack_frame_head
= fra
.me
.prev
;
333 val_t
syntax___icode_generation___A2IContext___return_value(val_t p0
){
334 struct {struct stack_frame_t me
;} fra
;
336 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
337 fra
.me
.file
= LOCATE_syntax___icode_generation
;
339 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value
;
340 fra
.me
.has_broke
= 0;
342 fra
.me
.nitni_local_ref_head
= NULL
;
343 fra
.me
.REG
[0] = NIT_NULL
;
345 /* ./syntax//icode_generation.nit:79 */
346 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]);
347 stack_frame_head
= fra
.me
.prev
;
348 return fra
.me
.REG
[0];
350 void syntax___icode_generation___A2IContext___return_value__eq(val_t p0
, val_t p1
){
351 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
354 fra
.me
.file
= LOCATE_syntax___icode_generation
;
356 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value__eq
;
357 fra
.me
.has_broke
= 0;
359 fra
.me
.nitni_local_ref_head
= NULL
;
360 fra
.me
.REG
[0] = NIT_NULL
;
361 fra
.me
.REG
[1] = NIT_NULL
;
364 /* ./syntax//icode_generation.nit:79 */
365 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
366 stack_frame_head
= fra
.me
.prev
;
369 val_t
syntax___icode_generation___A2IContext___method(val_t p0
){
370 struct {struct stack_frame_t me
;} fra
;
372 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
373 fra
.me
.file
= LOCATE_syntax___icode_generation
;
375 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___method
;
376 fra
.me
.has_broke
= 0;
378 fra
.me
.nitni_local_ref_head
= NULL
;
379 fra
.me
.REG
[0] = NIT_NULL
;
381 /* ./syntax//icode_generation.nit:82 */
382 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[0]);
383 stack_frame_head
= fra
.me
.prev
;
384 return fra
.me
.REG
[0];
386 val_t
syntax___icode_generation___A2IContext___selfreg(val_t p0
){
387 struct {struct stack_frame_t me
;} fra
;
389 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
390 fra
.me
.file
= LOCATE_syntax___icode_generation
;
392 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg
;
393 fra
.me
.has_broke
= 0;
395 fra
.me
.nitni_local_ref_head
= NULL
;
396 fra
.me
.REG
[0] = NIT_NULL
;
398 /* ./syntax//icode_generation.nit:85 */
399 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]);
400 stack_frame_head
= fra
.me
.prev
;
401 return fra
.me
.REG
[0];
403 void syntax___icode_generation___A2IContext___selfreg__eq(val_t p0
, val_t p1
){
404 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
406 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
407 fra
.me
.file
= LOCATE_syntax___icode_generation
;
409 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg__eq
;
410 fra
.me
.has_broke
= 0;
412 fra
.me
.nitni_local_ref_head
= NULL
;
413 fra
.me
.REG
[0] = NIT_NULL
;
414 fra
.me
.REG
[1] = NIT_NULL
;
417 /* ./syntax//icode_generation.nit:85 */
418 ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
419 stack_frame_head
= fra
.me
.prev
;
422 void syntax___icode_generation___A2IContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
423 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IContext
].i
;
424 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
426 if (init_table
[itpos0
]) return;
427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
428 fra
.me
.file
= LOCATE_syntax___icode_generation
;
430 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___init
;
431 fra
.me
.has_broke
= 0;
433 fra
.me
.nitni_local_ref_head
= NULL
;
434 fra
.me
.REG
[0] = NIT_NULL
;
435 fra
.me
.REG
[1] = NIT_NULL
;
436 fra
.me
.REG
[2] = NIT_NULL
;
437 fra
.me
.REG
[3] = NIT_NULL
;
438 fra
.me
.REG
[4] = NIT_NULL
;
439 fra
.me
.REG
[5] = NIT_NULL
;
444 /* ./syntax//icode_generation.nit:88 */
445 fra
.me
.REG
[4] = fra
.me
.REG
[0];
446 /* ./syntax//icode_generation.nit:90 */
447 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
448 CALL_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
449 /* ./syntax//icode_generation.nit:91 */
450 ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
451 /* ./syntax//icode_generation.nit:92 */
452 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
453 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
454 /* ./syntax//icode_generation.nit:93 */
455 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
456 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
457 /* ./syntax//icode_generation.nit:94 */
458 ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
459 stack_frame_head
= fra
.me
.prev
;
460 init_table
[itpos0
] = 1;
463 void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_t p0
, val_t p1
){
464 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
471 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
472 fra
.me
.file
= LOCATE_syntax___icode_generation
;
474 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
475 fra
.me
.has_broke
= 0;
477 fra
.me
.nitni_local_ref_head
= NULL
;
478 fra
.me
.REG
[0] = NIT_NULL
;
479 fra
.me
.REG
[1] = NIT_NULL
;
480 fra
.me
.REG
[2] = NIT_NULL
;
481 fra
.me
.REG
[3] = NIT_NULL
;
482 fra
.me
.REG
[4] = NIT_NULL
;
483 fra
.me
.REG
[5] = NIT_NULL
;
486 /* ./syntax//icode_generation.nit:100 */
487 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
488 /* ./syntax//icode_generation.nit:101 */
489 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*/;
490 if (UNTAG_Bool(REGB0
)) {
492 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 101);
494 /* ./syntax//icode_generation.nit:102 */
495 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
496 if (UNTAG_Bool(REGB0
)) {
497 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 102);
499 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
500 /* ./syntax//icode_generation.nit:103 */
501 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*/;
502 if (UNTAG_Bool(REGB0
)) {
504 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 103);
506 /* ./syntax//icode_generation.nit:105 */
507 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
508 if (UNTAG_Bool(REGB0
)) {
509 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 105);
511 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
512 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
513 if (UNTAG_Bool(REGB0
)) {
516 /* ./syntax//icode_generation.nit:106 */
518 /* ./syntax//icode_generation.nit:107 */
520 /* ./syntax//icode_generation.nit:108 */
521 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
522 if (UNTAG_Bool(REGB2
)) {
524 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
525 if (UNTAG_Bool(REGB3
)) {
526 REGB3
= TAG_Bool(false);
529 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
533 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
534 if (UNTAG_Bool(REGB2
)) {
535 /* ./syntax//icode_generation.nit:109 */
537 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
538 if (UNTAG_Bool(REGB2
)) {
539 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 109);
541 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
542 /* ./../lib/standard//collection//array.nit:278 */
544 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
552 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
553 /* ./../lib/standard//collection//array.nit:280 */
554 if (UNTAG_Bool(REGB3
)) {
555 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
556 if (UNTAG_Bool(REGB3
)) {
558 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
560 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
561 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
562 if (UNTAG_Bool(REGB4
)) {
564 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
566 /* ./../lib/standard//kernel.nit:232 */
567 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
569 /* ./../lib/standard//collection//array.nit:280 */
570 REGB4
= TAG_Bool(false);
573 if (UNTAG_Bool(REGB3
)) {
575 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
577 /* ./../lib/standard//collection//array.nit:281 */
578 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
579 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
580 if (UNTAG_Bool(REGB3
)) {
581 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
583 /* ./../lib/standard//collection//array.nit:718 */
584 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
585 /* ./../lib/standard//collection//array.nit:281 */
588 /* ./syntax//icode_generation.nit:109 */
589 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
590 if (UNTAG_Bool(REGB2
)) {
592 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
593 if (UNTAG_Bool(REGB3
)) {
594 REGB3
= TAG_Bool(false);
597 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
601 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
602 if (UNTAG_Bool(REGB2
)) {
603 /* ./syntax//icode_generation.nit:110 */
605 /* ./../lib/standard//kernel.nit:235 */
606 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
607 /* ./syntax//icode_generation.nit:110 */
610 /* ./syntax//icode_generation.nit:109 */
615 /* ./syntax//icode_generation.nit:112 */
617 /* ./../lib/standard//kernel.nit:235 */
618 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
619 /* ./syntax//icode_generation.nit:112 */
621 /* ./syntax//icode_generation.nit:114 */
623 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
624 if (UNTAG_Bool(REGB2
)) {
625 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 114);
627 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
628 /* ./../lib/standard//collection//array.nit:278 */
630 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
638 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
639 /* ./../lib/standard//collection//array.nit:280 */
640 if (UNTAG_Bool(REGB3
)) {
641 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
642 if (UNTAG_Bool(REGB3
)) {
644 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
646 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
647 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
648 if (UNTAG_Bool(REGB4
)) {
650 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
652 /* ./../lib/standard//kernel.nit:232 */
653 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
655 /* ./../lib/standard//collection//array.nit:280 */
656 REGB4
= TAG_Bool(false);
659 if (UNTAG_Bool(REGB3
)) {
661 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
663 /* ./../lib/standard//collection//array.nit:281 */
664 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
665 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
666 if (UNTAG_Bool(REGB3
)) {
667 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
669 /* ./../lib/standard//collection//array.nit:718 */
670 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
671 /* ./../lib/standard//collection//array.nit:281 */
674 /* ./syntax//icode_generation.nit:114 */
675 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
676 if (UNTAG_Bool(REGB2
)) {
678 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
679 if (UNTAG_Bool(REGB3
)) {
680 REGB3
= TAG_Bool(false);
683 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
687 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
688 if (UNTAG_Bool(REGB2
)) {
689 /* ./syntax//icode_generation.nit:115 */
691 /* ./../lib/standard//kernel.nit:235 */
692 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
693 /* ./syntax//icode_generation.nit:115 */
696 /* ./syntax//icode_generation.nit:114 */
701 /* ./syntax//icode_generation.nit:117 */
703 /* ./../lib/standard//kernel.nit:235 */
704 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
705 /* ./syntax//icode_generation.nit:117 */
708 /* ./syntax//icode_generation.nit:119 */
709 fra
.me
.REG
[1] = NIT_NULL
;
710 /* ./syntax//icode_generation.nit:120 */
711 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
712 if (UNTAG_Bool(REGB2
)) {
713 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 120);
715 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
716 /* ./../lib/standard//collection//array.nit:24 */
717 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
718 if (UNTAG_Bool(REGB2
)) {
720 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
722 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
723 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
724 if (UNTAG_Bool(REGB3
)) {
726 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
728 /* ./../lib/standard//kernel.nit:232 */
729 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
730 /* ./syntax//icode_generation.nit:120 */
731 if (UNTAG_Bool(REGB2
)) {
732 /* ./syntax//icode_generation.nit:121 */
733 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
734 if (UNTAG_Bool(REGB2
)) {
735 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 121);
737 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
738 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
746 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
747 /* ./../lib/standard//collection//array.nit:280 */
748 if (UNTAG_Bool(REGB2
)) {
749 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
750 if (UNTAG_Bool(REGB2
)) {
752 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
754 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
755 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
756 if (UNTAG_Bool(REGB3
)) {
758 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
760 /* ./../lib/standard//kernel.nit:232 */
761 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
763 /* ./../lib/standard//collection//array.nit:280 */
764 REGB3
= TAG_Bool(false);
767 if (UNTAG_Bool(REGB2
)) {
769 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
771 /* ./../lib/standard//collection//array.nit:281 */
772 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
773 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
774 if (UNTAG_Bool(REGB2
)) {
775 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
777 /* ./../lib/standard//collection//array.nit:718 */
778 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
779 /* ./../lib/standard//collection//array.nit:281 */
782 /* ./syntax//icode_generation.nit:121 */
783 fra
.me
.REG
[1] = fra
.me
.REG
[3];
785 /* ./syntax//icode_generation.nit:123 */
786 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
787 if (UNTAG_Bool(REGB1
)) {
788 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 123);
790 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
791 /* ./../lib/standard//collection//array.nit:24 */
792 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
793 if (UNTAG_Bool(REGB1
)) {
795 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
797 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
798 /* ./syntax//icode_generation.nit:124 */
800 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
801 if (UNTAG_Bool(REGB2
)) {
803 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
805 /* ./../lib/standard//kernel.nit:232 */
806 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
807 /* ./syntax//icode_generation.nit:124 */
808 if (UNTAG_Bool(REGB2
)) {
809 /* ./syntax//icode_generation.nit:125 */
810 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
811 if (UNTAG_Bool(REGB2
)) {
812 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 125);
814 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
815 /* ./../lib/standard//collection//array.nit:278 */
817 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
825 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
826 /* ./../lib/standard//collection//array.nit:280 */
827 if (UNTAG_Bool(REGB3
)) {
828 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
829 if (UNTAG_Bool(REGB3
)) {
831 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
833 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
834 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
835 if (UNTAG_Bool(REGB4
)) {
837 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
839 /* ./../lib/standard//kernel.nit:232 */
840 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
842 /* ./../lib/standard//collection//array.nit:280 */
843 REGB4
= TAG_Bool(false);
846 if (UNTAG_Bool(REGB3
)) {
848 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
850 /* ./../lib/standard//collection//array.nit:281 */
851 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
852 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
853 if (UNTAG_Bool(REGB3
)) {
854 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
856 /* ./../lib/standard//collection//array.nit:718 */
857 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
858 /* ./../lib/standard//collection//array.nit:281 */
861 /* ./syntax//icode_generation.nit:126 */
862 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[1]));
863 if (UNTAG_Bool(REGB2
)) {
865 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
868 if (UNTAG_Bool(REGB2
)) {
871 /* ./syntax//icode_generation.nit:127 */
872 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
873 /* ./syntax//icode_generation.nit:128 */
874 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
875 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
876 if (UNTAG_Bool(REGB2
)) {
877 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 128);
879 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
881 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
882 if (UNTAG_Bool(REGB4
)) {
884 /* ./../lib/standard//kernel.nit:227 */
885 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
886 /* ./syntax//icode_generation.nit:128 */
889 if (UNTAG_Bool(REGB4
)) {
890 /* ./syntax//icode_generation.nit:129 */
891 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
892 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
893 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
896 /* ./syntax//icode_generation.nit:131 */
897 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
898 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
899 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
));
901 /* ./syntax//icode_generation.nit:135 */
902 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
903 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
904 /* ./syntax//icode_generation.nit:136 */
906 /* ./../lib/standard//kernel.nit:235 */
907 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
908 /* ./syntax//icode_generation.nit:136 */
911 /* ./syntax//icode_generation.nit:124 */
917 stack_frame_head
= fra
.me
.prev
;
920 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
){
921 struct {struct stack_frame_t me
;} fra
;
924 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
925 fra
.me
.file
= LOCATE_syntax___icode_generation
;
927 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
928 fra
.me
.has_broke
= 0;
930 fra
.me
.nitni_local_ref_head
= NULL
;
931 fra
.me
.REG
[0] = NIT_NULL
;
932 fra
.me
.closure_ctx
= closctx_param
;
933 fra
.me
.closure_funs
= CREG
;
936 /* ./syntax//icode_generation.nit:132 */
937 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
938 stack_frame_head
= fra
.me
.prev
;
941 void syntax___icode_generation___A2IContext___generate_stmt(val_t p0
, val_t p1
){
942 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
947 fra
.me
.file
= LOCATE_syntax___icode_generation
;
949 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_stmt
;
950 fra
.me
.has_broke
= 0;
952 fra
.me
.nitni_local_ref_head
= NULL
;
953 fra
.me
.REG
[0] = NIT_NULL
;
954 fra
.me
.REG
[1] = NIT_NULL
;
955 fra
.me
.REG
[2] = NIT_NULL
;
958 /* ./syntax//icode_generation.nit:146 */
959 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
960 if (UNTAG_Bool(REGB0
)) {
962 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
963 if (UNTAG_Bool(REGB1
)) {
964 REGB1
= TAG_Bool(false);
967 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
971 if (UNTAG_Bool(REGB0
)) {
974 /* ./syntax//icode_generation.nit:147 */
975 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
976 /* ./syntax//icode_generation.nit:148 */
977 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
978 /* ./syntax//icode_generation.nit:149 */
979 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
980 if (UNTAG_Bool(REGB0
)) {
981 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 149);
983 CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
984 /* ./syntax//icode_generation.nit:150 */
985 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
987 stack_frame_head
= fra
.me
.prev
;
990 val_t
syntax___icode_generation___A2IContext___generate_expr(val_t p0
, val_t p1
){
991 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
994 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
995 fra
.me
.file
= LOCATE_syntax___icode_generation
;
997 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_expr
;
998 fra
.me
.has_broke
= 0;
1000 fra
.me
.nitni_local_ref_head
= NULL
;
1001 fra
.me
.REG
[0] = NIT_NULL
;
1002 fra
.me
.REG
[1] = NIT_NULL
;
1003 fra
.me
.REG
[2] = NIT_NULL
;
1004 fra
.me
.REG
[3] = NIT_NULL
;
1007 /* ./syntax//icode_generation.nit:153 */
1008 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1009 /* ./syntax//icode_generation.nit:156 */
1010 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
1011 /* ./syntax//icode_generation.nit:157 */
1012 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1013 /* ./syntax//icode_generation.nit:158 */
1014 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1015 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1016 if (UNTAG_Bool(REGB0
)) {
1018 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 158);
1020 /* ./syntax//icode_generation.nit:159 */
1021 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
1022 /* ./syntax//icode_generation.nit:160 */
1025 stack_frame_head
= fra
.me
.prev
;
1026 return fra
.me
.REG
[1];
1028 val_t
syntax___icode_generation___EscapableBlock___break_seq(val_t p0
){
1029 struct {struct stack_frame_t me
;} fra
;
1031 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1032 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1034 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq
;
1035 fra
.me
.has_broke
= 0;
1036 fra
.me
.REG_size
= 1;
1037 fra
.me
.nitni_local_ref_head
= NULL
;
1038 fra
.me
.REG
[0] = NIT_NULL
;
1040 /* ./syntax//icode_generation.nit:165 */
1041 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]);
1042 stack_frame_head
= fra
.me
.prev
;
1043 return fra
.me
.REG
[0];
1045 void syntax___icode_generation___EscapableBlock___break_seq__eq(val_t p0
, val_t p1
){
1046 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1048 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1049 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1051 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq__eq
;
1052 fra
.me
.has_broke
= 0;
1053 fra
.me
.REG_size
= 2;
1054 fra
.me
.nitni_local_ref_head
= NULL
;
1055 fra
.me
.REG
[0] = NIT_NULL
;
1056 fra
.me
.REG
[1] = NIT_NULL
;
1059 /* ./syntax//icode_generation.nit:165 */
1060 ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1061 stack_frame_head
= fra
.me
.prev
;
1064 val_t
syntax___icode_generation___EscapableBlock___continue_seq(val_t p0
){
1065 struct {struct stack_frame_t me
;} fra
;
1067 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1068 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1070 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq
;
1071 fra
.me
.has_broke
= 0;
1072 fra
.me
.REG_size
= 1;
1073 fra
.me
.nitni_local_ref_head
= NULL
;
1074 fra
.me
.REG
[0] = NIT_NULL
;
1076 /* ./syntax//icode_generation.nit:168 */
1077 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]);
1078 stack_frame_head
= fra
.me
.prev
;
1079 return fra
.me
.REG
[0];
1081 void syntax___icode_generation___EscapableBlock___continue_seq__eq(val_t p0
, val_t p1
){
1082 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1084 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1085 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1087 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq__eq
;
1088 fra
.me
.has_broke
= 0;
1089 fra
.me
.REG_size
= 2;
1090 fra
.me
.nitni_local_ref_head
= NULL
;
1091 fra
.me
.REG
[0] = NIT_NULL
;
1092 fra
.me
.REG
[1] = NIT_NULL
;
1095 /* ./syntax//icode_generation.nit:168 */
1096 ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1097 stack_frame_head
= fra
.me
.prev
;
1100 val_t
syntax___icode_generation___EscapableBlock___break_value(val_t p0
){
1101 struct {struct stack_frame_t me
;} fra
;
1103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1104 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1106 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value
;
1107 fra
.me
.has_broke
= 0;
1108 fra
.me
.REG_size
= 1;
1109 fra
.me
.nitni_local_ref_head
= NULL
;
1110 fra
.me
.REG
[0] = NIT_NULL
;
1112 /* ./syntax//icode_generation.nit:171 */
1113 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]);
1114 stack_frame_head
= fra
.me
.prev
;
1115 return fra
.me
.REG
[0];
1117 void syntax___icode_generation___EscapableBlock___break_value__eq(val_t p0
, val_t p1
){
1118 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1120 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1121 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1123 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value__eq
;
1124 fra
.me
.has_broke
= 0;
1125 fra
.me
.REG_size
= 2;
1126 fra
.me
.nitni_local_ref_head
= NULL
;
1127 fra
.me
.REG
[0] = NIT_NULL
;
1128 fra
.me
.REG
[1] = NIT_NULL
;
1131 /* ./syntax//icode_generation.nit:171 */
1132 ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1133 stack_frame_head
= fra
.me
.prev
;
1136 val_t
syntax___icode_generation___EscapableBlock___continue_value(val_t p0
){
1137 struct {struct stack_frame_t me
;} fra
;
1139 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1140 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1142 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value
;
1143 fra
.me
.has_broke
= 0;
1144 fra
.me
.REG_size
= 1;
1145 fra
.me
.nitni_local_ref_head
= NULL
;
1146 fra
.me
.REG
[0] = NIT_NULL
;
1148 /* ./syntax//icode_generation.nit:174 */
1149 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]);
1150 stack_frame_head
= fra
.me
.prev
;
1151 return fra
.me
.REG
[0];
1153 void syntax___icode_generation___EscapableBlock___continue_value__eq(val_t p0
, val_t p1
){
1154 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1157 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1159 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value__eq
;
1160 fra
.me
.has_broke
= 0;
1161 fra
.me
.REG_size
= 2;
1162 fra
.me
.nitni_local_ref_head
= NULL
;
1163 fra
.me
.REG
[0] = NIT_NULL
;
1164 fra
.me
.REG
[1] = NIT_NULL
;
1167 /* ./syntax//icode_generation.nit:174 */
1168 ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1169 stack_frame_head
= fra
.me
.prev
;
1172 void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0
, val_t p1
){
1173 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1175 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1176 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1178 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1179 fra
.me
.has_broke
= 0;
1180 fra
.me
.REG_size
= 3;
1181 fra
.me
.nitni_local_ref_head
= NULL
;
1182 fra
.me
.REG
[0] = NIT_NULL
;
1183 fra
.me
.REG
[1] = NIT_NULL
;
1184 fra
.me
.REG
[2] = NIT_NULL
;
1187 /* ./syntax//icode_generation.nit:182 */
1188 fra
.me
.REG
[1] = NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1189 /* ./syntax//icode_generation.nit:183 */
1190 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1191 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1192 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
));
1193 stack_frame_head
= fra
.me
.prev
;
1196 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
){
1197 struct {struct stack_frame_t me
;} fra
;
1200 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1201 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1203 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1204 fra
.me
.has_broke
= 0;
1205 fra
.me
.REG_size
= 1;
1206 fra
.me
.nitni_local_ref_head
= NULL
;
1207 fra
.me
.REG
[0] = NIT_NULL
;
1208 fra
.me
.closure_ctx
= closctx_param
;
1209 fra
.me
.closure_funs
= CREG
;
1211 CREG
[0] = clos_fun0
;
1212 /* ./syntax//icode_generation.nit:184 */
1213 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1214 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1215 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
));
1216 stack_frame_head
= fra
.me
.prev
;
1219 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
){
1220 struct {struct stack_frame_t me
;} fra
;
1224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1225 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1227 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1228 fra
.me
.has_broke
= 0;
1229 fra
.me
.REG_size
= 1;
1230 fra
.me
.nitni_local_ref_head
= NULL
;
1231 fra
.me
.REG
[0] = NIT_NULL
;
1232 fra
.me
.closure_ctx
= closctx_param
;
1233 fra
.me
.closure_funs
= CREG
;
1235 CREG
[0] = clos_fun0
;
1236 /* ./syntax//icode_generation.nit:185 */
1237 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1238 if (UNTAG_Bool(REGB0
)) {
1239 /* ./syntax//icode_generation.nit:186 */
1240 CALL_syntax___icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1242 /* ./syntax//icode_generation.nit:187 */
1243 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcAttribute
, ID_syntax___syntax_base___MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1244 if (UNTAG_Bool(REGB0
)) {
1245 /* ./syntax//icode_generation.nit:188 */
1246 CALL_syntax___icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1249 stack_frame_head
= fra
.me
.prev
;
1252 val_t
syntax___icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1253 struct {struct stack_frame_t me
;} fra
;
1255 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1256 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1258 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine
;
1259 fra
.me
.has_broke
= 0;
1260 fra
.me
.REG_size
= 1;
1261 fra
.me
.nitni_local_ref_head
= NULL
;
1262 fra
.me
.REG
[0] = NIT_NULL
;
1264 /* ./syntax//icode_generation.nit:196 */
1265 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1266 stack_frame_head
= fra
.me
.prev
;
1267 return fra
.me
.REG
[0];
1269 void syntax___icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1270 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1273 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1275 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine__eq
;
1276 fra
.me
.has_broke
= 0;
1277 fra
.me
.REG_size
= 2;
1278 fra
.me
.nitni_local_ref_head
= NULL
;
1279 fra
.me
.REG
[0] = NIT_NULL
;
1280 fra
.me
.REG
[1] = NIT_NULL
;
1283 /* ./syntax//icode_generation.nit:196 */
1284 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1285 stack_frame_head
= fra
.me
.prev
;
1288 void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1289 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1294 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1296 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___generate_iroutine
;
1297 fra
.me
.has_broke
= 0;
1298 fra
.me
.REG_size
= 4;
1299 fra
.me
.nitni_local_ref_head
= NULL
;
1300 fra
.me
.REG
[0] = NIT_NULL
;
1301 fra
.me
.REG
[1] = NIT_NULL
;
1302 fra
.me
.REG
[2] = NIT_NULL
;
1303 fra
.me
.REG
[3] = NIT_NULL
;
1306 /* ./syntax//icode_generation.nit:201 */
1307 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1308 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1309 if (UNTAG_Bool(REGB0
)) {
1310 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 201);
1312 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1313 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1314 if (UNTAG_Bool(REGB0
)) {
1316 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1317 if (UNTAG_Bool(REGB1
)) {
1318 REGB1
= TAG_Bool(false);
1321 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1325 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1326 if (UNTAG_Bool(REGB0
)) {
1327 /* ./syntax//icode_generation.nit:202 */
1328 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1329 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1330 if (UNTAG_Bool(REGB0
)) {
1331 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 202);
1333 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1334 /* ./syntax//icode_generation.nit:203 */
1335 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1336 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1337 if (UNTAG_Bool(REGB0
)) {
1338 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 203);
1340 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1341 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1342 /* ./syntax//icode_generation.nit:204 */
1343 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1344 /* ./syntax//icode_generation.nit:205 */
1345 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1346 /* ./syntax//icode_generation.nit:206 */
1347 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1348 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1349 /* ./syntax//icode_generation.nit:207 */
1350 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1351 /* ./syntax//icode_generation.nit:208 */
1352 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1354 stack_frame_head
= fra
.me
.prev
;
1357 val_t
syntax___icode_generation___MMSrcMethod___iroutine(val_t p0
){
1358 struct {struct stack_frame_t me
;} fra
;
1360 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1361 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1363 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine
;
1364 fra
.me
.has_broke
= 0;
1365 fra
.me
.REG_size
= 1;
1366 fra
.me
.nitni_local_ref_head
= NULL
;
1367 fra
.me
.REG
[0] = NIT_NULL
;
1369 /* ./syntax//icode_generation.nit:214 */
1370 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1371 stack_frame_head
= fra
.me
.prev
;
1372 return fra
.me
.REG
[0];
1374 void syntax___icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1375 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1378 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1380 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine__eq
;
1381 fra
.me
.has_broke
= 0;
1382 fra
.me
.REG_size
= 2;
1383 fra
.me
.nitni_local_ref_head
= NULL
;
1384 fra
.me
.REG
[0] = NIT_NULL
;
1385 fra
.me
.REG
[1] = NIT_NULL
;
1388 /* ./syntax//icode_generation.nit:214 */
1389 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1390 stack_frame_head
= fra
.me
.prev
;
1393 void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1394 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1398 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1399 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1401 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___generate_iroutine
;
1402 fra
.me
.has_broke
= 0;
1403 fra
.me
.REG_size
= 4;
1404 fra
.me
.nitni_local_ref_head
= NULL
;
1405 fra
.me
.REG
[0] = NIT_NULL
;
1406 fra
.me
.REG
[1] = NIT_NULL
;
1407 fra
.me
.REG
[2] = NIT_NULL
;
1408 fra
.me
.REG
[3] = NIT_NULL
;
1411 /* ./syntax//icode_generation.nit:219 */
1412 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1413 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1414 if (UNTAG_Bool(REGB0
)) {
1415 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 219);
1417 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1418 /* ./syntax//icode_generation.nit:220 */
1419 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1420 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1421 if (UNTAG_Bool(REGB0
)) {
1423 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1424 if (UNTAG_Bool(REGB1
)) {
1425 REGB1
= TAG_Bool(false);
1428 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1432 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1433 if (UNTAG_Bool(REGB0
)) {
1434 /* ./syntax//icode_generation.nit:221 */
1435 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1436 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1437 if (UNTAG_Bool(REGB0
)) {
1438 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 221);
1440 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1441 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1443 /* ./syntax//icode_generation.nit:223 */
1444 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1445 /* ./syntax//icode_generation.nit:224 */
1446 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1447 /* ./syntax//icode_generation.nit:225 */
1448 CALL_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1449 /* ./syntax//icode_generation.nit:226 */
1450 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1451 /* ./syntax//icode_generation.nit:227 */
1452 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1453 stack_frame_head
= fra
.me
.prev
;
1456 void syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1457 struct {struct stack_frame_t me
;} fra
;
1459 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1460 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1462 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine
;
1463 fra
.me
.has_broke
= 0;
1464 fra
.me
.REG_size
= 0;
1465 fra
.me
.nitni_local_ref_head
= NULL
;
1466 /* ./syntax//icode_generation.nit:230 */
1467 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 230);
1468 stack_frame_head
= fra
.me
.prev
;
1471 void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1472 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1476 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1478 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1479 fra
.me
.has_broke
= 0;
1480 fra
.me
.REG_size
= 3;
1481 fra
.me
.nitni_local_ref_head
= NULL
;
1482 fra
.me
.REG
[0] = NIT_NULL
;
1483 fra
.me
.REG
[1] = NIT_NULL
;
1484 fra
.me
.REG
[2] = NIT_NULL
;
1487 /* ./syntax//icode_generation.nit:237 */
1488 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1489 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1490 if (UNTAG_Bool(REGB0
)) {
1491 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 237);
1493 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1494 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1495 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1496 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1497 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]);
1498 /* ./syntax//icode_generation.nit:238 */
1499 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1500 stack_frame_head
= fra
.me
.prev
;
1503 void syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1504 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1508 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1510 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1511 fra
.me
.has_broke
= 0;
1512 fra
.me
.REG_size
= 4;
1513 fra
.me
.nitni_local_ref_head
= NULL
;
1514 fra
.me
.REG
[0] = NIT_NULL
;
1515 fra
.me
.REG
[1] = NIT_NULL
;
1516 fra
.me
.REG
[2] = NIT_NULL
;
1517 fra
.me
.REG
[3] = NIT_NULL
;
1520 /* ./syntax//icode_generation.nit:245 */
1521 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1522 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1523 /* ./syntax//icode_generation.nit:246 */
1524 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1525 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1526 if (UNTAG_Bool(REGB0
)) {
1527 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 246);
1529 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1531 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1533 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1534 fra
.me
.REG
[2] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1535 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1536 stack_frame_head
= fra
.me
.prev
;
1539 void syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1540 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1542 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1543 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1545 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1546 fra
.me
.has_broke
= 0;
1547 fra
.me
.REG_size
= 2;
1548 fra
.me
.nitni_local_ref_head
= NULL
;
1549 fra
.me
.REG
[0] = NIT_NULL
;
1550 fra
.me
.REG
[1] = NIT_NULL
;
1553 /* ./syntax//icode_generation.nit:253 */
1554 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1555 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1556 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1557 stack_frame_head
= fra
.me
.prev
;
1560 void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1561 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1570 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1571 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1573 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMImplicitInit___inner_generate_iroutine
;
1574 fra
.me
.has_broke
= 0;
1575 fra
.me
.REG_size
= 10;
1576 fra
.me
.nitni_local_ref_head
= NULL
;
1577 fra
.me
.REG
[0] = NIT_NULL
;
1578 fra
.me
.REG
[1] = NIT_NULL
;
1579 fra
.me
.REG
[2] = NIT_NULL
;
1580 fra
.me
.REG
[3] = NIT_NULL
;
1581 fra
.me
.REG
[4] = NIT_NULL
;
1582 fra
.me
.REG
[5] = NIT_NULL
;
1583 fra
.me
.REG
[6] = NIT_NULL
;
1584 fra
.me
.REG
[7] = NIT_NULL
;
1585 fra
.me
.REG
[8] = NIT_NULL
;
1586 fra
.me
.REG
[9] = NIT_NULL
;
1589 /* ./syntax//icode_generation.nit:260 */
1590 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1591 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1592 /* ./syntax//icode_generation.nit:261 */
1593 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1594 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1595 /* ./../lib/standard//collection//array.nit:24 */
1596 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1597 if (UNTAG_Bool(REGB1
)) {
1599 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1601 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1602 /* ./../lib/standard//kernel.nit:237 */
1603 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1604 /* ./syntax//icode_generation.nit:262 */
1605 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1606 /* ./syntax//icode_generation.nit:263 */
1607 fra
.me
.REG
[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1608 /* ./../lib/standard//collection//array.nit:269 */
1610 /* ./../lib/standard//collection//array.nit:270 */
1611 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1612 if (UNTAG_Bool(REGB2
)) {
1614 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1616 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1617 /* ./../lib/standard//collection//array.nit:271 */
1618 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1619 /* ./../lib/standard//collection//array.nit:272 */
1621 /* ./../lib/standard//collection//array.nit:24 */
1622 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1623 if (UNTAG_Bool(REGB2
)) {
1625 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1627 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1628 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1629 if (UNTAG_Bool(REGB3
)) {
1631 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1633 /* ./../lib/standard//kernel.nit:232 */
1634 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1635 /* ./../lib/standard//collection//array.nit:272 */
1636 if (UNTAG_Bool(REGB2
)) {
1637 /* ./../lib/standard//collection//array.nit:273 */
1638 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1639 if (UNTAG_Bool(REGB2
)) {
1640 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1642 /* ./../lib/standard//collection//array.nit:718 */
1643 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1644 /* ./syntax//icode_generation.nit:264 */
1645 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1646 if (UNTAG_Bool(REGB2
)) {
1648 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 264);
1650 /* ./syntax//icode_generation.nit:265 */
1652 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1654 /* ./syntax//icode_generation.nit:266 */
1655 fra
.me
.REG
[8] = CALL_syntax___syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1656 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[8]));
1657 if (UNTAG_Bool(REGB2
)) {
1659 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1662 if (UNTAG_Bool(REGB2
)) {
1663 /* ./syntax//icode_generation.nit:267 */
1664 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1665 /* ./syntax//icode_generation.nit:268 */
1666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
1667 /* ./syntax//icode_generation.nit:269 */
1669 /* ./../lib/standard//kernel.nit:347 */
1671 /* ./../lib/standard//kernel.nit:352 */
1673 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1674 if (UNTAG_Bool(REGB4
)) {
1676 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1678 /* ./../lib/standard//kernel.nit:232 */
1679 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1680 /* ./../lib/standard//kernel.nit:352 */
1681 if (UNTAG_Bool(REGB4
)) {
1682 /* ./syntax//icode_generation.nit:269 */
1684 /* ./syntax//icode_generation.nit:270 */
1685 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
1686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1687 /* ./../lib/standard//kernel.nit:354 */
1689 /* ./../lib/standard//kernel.nit:235 */
1690 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1691 /* ./../lib/standard//kernel.nit:354 */
1694 /* ./../lib/standard//kernel.nit:352 */
1699 /* ./syntax//icode_generation.nit:272 */
1700 fra
.me
.REG
[8] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1701 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
1703 /* ./syntax//icode_generation.nit:274 */
1704 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1705 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1707 /* ./../lib/standard//collection//array.nit:274 */
1709 /* ./../lib/standard//kernel.nit:235 */
1710 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1711 /* ./../lib/standard//collection//array.nit:274 */
1714 /* ./../lib/standard//collection//array.nit:272 */
1719 /* ./syntax//icode_generation.nit:277 */
1720 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1721 /* ./../lib/standard//kernel.nit:347 */
1723 /* ./../lib/standard//kernel.nit:352 */
1725 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1726 if (UNTAG_Bool(REGB3
)) {
1728 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1730 /* ./../lib/standard//kernel.nit:232 */
1731 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1732 /* ./../lib/standard//kernel.nit:352 */
1733 if (UNTAG_Bool(REGB3
)) {
1734 /* ./syntax//icode_generation.nit:277 */
1736 /* ./syntax//icode_generation.nit:278 */
1737 fra
.me
.REG
[5] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1738 /* ./../lib/standard//kernel.nit:237 */
1739 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1740 /* ./../lib/standard//collection//array.nit:280 */
1742 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1743 if (UNTAG_Bool(REGB6
)) {
1745 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1747 /* ./../lib/standard//kernel.nit:233 */
1748 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1749 /* ./../lib/standard//collection//array.nit:280 */
1750 if (UNTAG_Bool(REGB5
)) {
1751 REGB5
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1752 if (UNTAG_Bool(REGB5
)) {
1754 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1756 REGB5
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1757 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1758 if (UNTAG_Bool(REGB6
)) {
1760 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1762 /* ./../lib/standard//kernel.nit:232 */
1763 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1765 /* ./../lib/standard//collection//array.nit:280 */
1766 REGB6
= TAG_Bool(false);
1769 if (UNTAG_Bool(REGB5
)) {
1771 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1773 /* ./../lib/standard//collection//array.nit:281 */
1774 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1775 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1776 if (UNTAG_Bool(REGB5
)) {
1777 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1779 /* ./../lib/standard//collection//array.nit:718 */
1780 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1781 /* ./../lib/standard//collection//array.nit:281 */
1784 /* ./syntax//icode_generation.nit:279 */
1785 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
1786 fra
.me
.REG
[4] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[5], fra
.me
.REG
[3], fra
.me
.REG
[4]);
1787 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1788 /* ./../lib/standard//kernel.nit:354 */
1790 /* ./../lib/standard//kernel.nit:235 */
1791 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1792 /* ./../lib/standard//kernel.nit:354 */
1795 /* ./../lib/standard//kernel.nit:352 */
1800 stack_frame_head
= fra
.me
.prev
;
1803 void syntax___icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1804 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1806 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1807 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1809 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx__eq
;
1810 fra
.me
.has_broke
= 0;
1811 fra
.me
.REG_size
= 2;
1812 fra
.me
.nitni_local_ref_head
= NULL
;
1813 fra
.me
.REG
[0] = NIT_NULL
;
1814 fra
.me
.REG
[1] = NIT_NULL
;
1817 /* ./syntax//icode_generation.nit:286 */
1818 ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1819 stack_frame_head
= fra
.me
.prev
;
1822 val_t
syntax___icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1823 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1826 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1827 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1829 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx
;
1830 fra
.me
.has_broke
= 0;
1831 fra
.me
.REG_size
= 2;
1832 fra
.me
.nitni_local_ref_head
= NULL
;
1833 fra
.me
.REG
[0] = NIT_NULL
;
1834 fra
.me
.REG
[1] = NIT_NULL
;
1836 /* ./syntax//icode_generation.nit:287 */
1837 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1838 fra
.me
.REG
[1] = ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[1]);
1839 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1840 if (UNTAG_Bool(REGB0
)) {
1842 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 287);
1846 stack_frame_head
= fra
.me
.prev
;
1847 return fra
.me
.REG
[1];
1849 void syntax___icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1850 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1854 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1856 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___visit
;
1857 fra
.me
.has_broke
= 0;
1858 fra
.me
.REG_size
= 2;
1859 fra
.me
.nitni_local_ref_head
= NULL
;
1860 fra
.me
.REG
[0] = NIT_NULL
;
1861 fra
.me
.REG
[1] = NIT_NULL
;
1864 /* ./syntax//icode_generation.nit:288 */
1865 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1866 if (UNTAG_Bool(REGB0
)) {
1867 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 288);
1869 CALL_syntax___icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1870 stack_frame_head
= fra
.me
.prev
;
1873 void syntax___icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1874 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IVisitor
].i
;
1875 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1877 if (init_table
[itpos1
]) return;
1878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1879 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1881 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___init
;
1882 fra
.me
.has_broke
= 0;
1883 fra
.me
.REG_size
= 3;
1884 fra
.me
.nitni_local_ref_head
= NULL
;
1885 fra
.me
.REG
[0] = NIT_NULL
;
1886 fra
.me
.REG
[1] = NIT_NULL
;
1887 fra
.me
.REG
[2] = NIT_NULL
;
1891 /* ./syntax//icode_generation.nit:289 */
1892 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1893 stack_frame_head
= fra
.me
.prev
;
1894 init_table
[itpos1
] = 1;
1897 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1898 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1900 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1901 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1903 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANode___accept_icode_generation
;
1904 fra
.me
.has_broke
= 0;
1905 fra
.me
.REG_size
= 2;
1906 fra
.me
.nitni_local_ref_head
= NULL
;
1907 fra
.me
.REG
[0] = NIT_NULL
;
1908 fra
.me
.REG
[1] = NIT_NULL
;
1911 /* ./syntax//icode_generation.nit:296 */
1912 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1913 stack_frame_head
= fra
.me
.prev
;
1916 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1917 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1921 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1922 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1924 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
;
1925 fra
.me
.has_broke
= 0;
1926 fra
.me
.REG_size
= 6;
1927 fra
.me
.nitni_local_ref_head
= NULL
;
1928 fra
.me
.REG
[0] = NIT_NULL
;
1929 fra
.me
.REG
[1] = NIT_NULL
;
1930 fra
.me
.REG
[2] = NIT_NULL
;
1931 fra
.me
.REG
[3] = NIT_NULL
;
1932 fra
.me
.REG
[4] = NIT_NULL
;
1933 fra
.me
.REG
[5] = NIT_NULL
;
1936 /* ./syntax//icode_generation.nit:300 */
1937 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1938 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1939 /* ./syntax//icode_generation.nit:302 */
1940 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1941 /* ./syntax//icode_generation.nit:303 */
1942 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1943 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1944 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1945 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1946 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1947 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1948 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1949 /* ./syntax//icode_generation.nit:304 */
1950 CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1951 /* ./syntax//icode_generation.nit:305 */
1952 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1953 /* ./syntax//icode_generation.nit:306 */
1954 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1955 if (UNTAG_Bool(REGB0
)) {
1957 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1958 if (UNTAG_Bool(REGB1
)) {
1959 REGB1
= TAG_Bool(false);
1962 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1966 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1967 if (UNTAG_Bool(REGB0
)) {
1968 /* ./syntax//icode_generation.nit:307 */
1969 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1970 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1971 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*/;
1972 if (UNTAG_Bool(REGB0
)) {
1974 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 307);
1976 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1977 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1978 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1980 stack_frame_head
= fra
.me
.prev
;
1983 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1984 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1986 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1987 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1989 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
;
1990 fra
.me
.has_broke
= 0;
1991 fra
.me
.REG_size
= 4;
1992 fra
.me
.nitni_local_ref_head
= NULL
;
1993 fra
.me
.REG
[0] = NIT_NULL
;
1994 fra
.me
.REG
[1] = NIT_NULL
;
1995 fra
.me
.REG
[2] = NIT_NULL
;
1996 fra
.me
.REG
[3] = NIT_NULL
;
1999 /* ./syntax//icode_generation.nit:313 */
2000 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2001 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2002 /* ./syntax//icode_generation.nit:315 */
2003 CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2004 /* ./syntax//icode_generation.nit:316 */
2005 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2006 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2007 CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
2008 stack_frame_head
= fra
.me
.prev
;
2011 void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2012 struct {struct stack_frame_t me
;} fra
;
2014 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2015 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2017 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
;
2018 fra
.me
.has_broke
= 0;
2019 fra
.me
.REG_size
= 0;
2020 fra
.me
.nitni_local_ref_head
= NULL
;
2021 /* ./syntax//icode_generation.nit:319 */
2022 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 319);
2023 stack_frame_head
= fra
.me
.prev
;
2026 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
2027 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2034 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2036 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2037 fra
.me
.has_broke
= 0;
2038 fra
.me
.REG_size
= 7;
2039 fra
.me
.nitni_local_ref_head
= NULL
;
2040 fra
.me
.REG
[0] = NIT_NULL
;
2041 fra
.me
.REG
[1] = NIT_NULL
;
2042 fra
.me
.REG
[2] = NIT_NULL
;
2043 fra
.me
.REG
[3] = NIT_NULL
;
2044 fra
.me
.REG
[4] = NIT_NULL
;
2045 fra
.me
.REG
[5] = NIT_NULL
;
2046 fra
.me
.REG
[6] = NIT_NULL
;
2052 /* ./syntax//icode_generation.nit:324 */
2053 fra
.me
.REG
[5] = fra
.me
.REG
[0];
2054 /* ./syntax//icode_generation.nit:326 */
2055 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2056 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
));
2057 /* ./syntax//icode_generation.nit:335 */
2059 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2060 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2061 /* ./../lib/standard//kernel.nit:352 */
2063 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2064 if (UNTAG_Bool(REGB2
)) {
2066 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2068 /* ./../lib/standard//kernel.nit:232 */
2069 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2070 /* ./../lib/standard//kernel.nit:352 */
2071 if (UNTAG_Bool(REGB2
)) {
2072 /* ./syntax//icode_generation.nit:335 */
2074 /* ./syntax//icode_generation.nit:336 */
2075 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2076 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
2077 /* ./syntax//icode_generation.nit:337 */
2078 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2079 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2080 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2081 if (UNTAG_Bool(REGB3
)) {
2082 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 337);
2084 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
2085 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2086 /* ./../lib/standard//kernel.nit:354 */
2088 /* ./../lib/standard//kernel.nit:235 */
2089 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
2090 /* ./../lib/standard//kernel.nit:354 */
2093 /* ./../lib/standard//kernel.nit:352 */
2098 stack_frame_head
= fra
.me
.prev
;
2101 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
){
2102 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2106 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2107 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2109 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2110 fra
.me
.has_broke
= 0;
2111 fra
.me
.REG_size
= 4;
2112 fra
.me
.nitni_local_ref_head
= NULL
;
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
.closure_ctx
= closctx_param
;
2118 fra
.me
.closure_funs
= CREG
;
2120 CREG
[0] = clos_fun0
;
2121 /* ./syntax//icode_generation.nit:327 */
2122 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2123 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
2124 /* ./syntax//icode_generation.nit:328 */
2125 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2126 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
2127 /* ./syntax//icode_generation.nit:329 */
2128 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2129 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2130 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*/;
2131 if (UNTAG_Bool(REGB0
)) {
2133 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 329);
2135 /* ./syntax//icode_generation.nit:330 */
2136 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2137 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2138 if (UNTAG_Bool(REGB0
)) {
2139 /* ./syntax//icode_generation.nit:331 */
2140 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2141 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2142 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2144 /* ./syntax//icode_generation.nit:333 */
2145 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2146 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2147 fra
.me
.REG
[0] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2148 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2149 stack_frame_head
= fra
.me
.prev
;
2152 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
2153 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2158 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2160 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
;
2161 fra
.me
.has_broke
= 0;
2162 fra
.me
.REG_size
= 8;
2163 fra
.me
.nitni_local_ref_head
= NULL
;
2164 fra
.me
.REG
[0] = NIT_NULL
;
2165 fra
.me
.REG
[1] = NIT_NULL
;
2166 fra
.me
.REG
[2] = NIT_NULL
;
2167 fra
.me
.REG
[3] = NIT_NULL
;
2168 fra
.me
.REG
[4] = NIT_NULL
;
2169 fra
.me
.REG
[5] = NIT_NULL
;
2170 fra
.me
.REG
[6] = NIT_NULL
;
2171 fra
.me
.REG
[7] = NIT_NULL
;
2174 /* ./syntax//icode_generation.nit:343 */
2175 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2176 /* ./syntax//icode_generation.nit:345 */
2177 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2178 /* ./syntax//icode_generation.nit:346 */
2179 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2180 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2181 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2182 fra
.me
.REG
[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2183 /* ./syntax//icode_generation.nit:347 */
2184 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2185 /* ./syntax//icode_generation.nit:348 */
2186 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2187 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2188 /* ./syntax//icode_generation.nit:349 */
2189 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2190 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2191 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2192 if (UNTAG_Bool(REGB0
)) {
2193 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 349);
2195 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2196 /* ./syntax//icode_generation.nit:350 */
2197 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2198 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2199 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2200 if (UNTAG_Bool(REGB0
)) {
2201 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 350);
2203 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2204 /* ./syntax//icode_generation.nit:351 */
2205 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2206 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2207 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2208 if (UNTAG_Bool(REGB0
)) {
2209 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 351);
2211 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2212 /* ./syntax//icode_generation.nit:352 */
2213 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2214 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2215 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2216 if (UNTAG_Bool(REGB0
)) {
2217 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 352);
2219 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2220 /* ./syntax//icode_generation.nit:353 */
2221 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2222 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2223 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2224 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2225 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2226 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
);
2227 /* ./syntax//icode_generation.nit:355 */
2228 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2229 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2230 if (UNTAG_Bool(REGB0
)) {
2232 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2233 if (UNTAG_Bool(REGB1
)) {
2234 REGB1
= TAG_Bool(false);
2237 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2241 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2242 if (UNTAG_Bool(REGB0
)) {
2243 /* ./syntax//icode_generation.nit:356 */
2244 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2245 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2246 /* ./syntax//icode_generation.nit:357 */
2247 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2248 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2249 REGB0
= CALL_syntax___syntax_base___AClosureDecl___position(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2250 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2251 if (UNTAG_Bool(REGB1
)) {
2252 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2254 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
2255 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2256 if (UNTAG_Bool(REGB0
)) {
2257 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2259 CALL_icode___icode_base___IClosureDecl___default__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2260 /* ./syntax//icode_generation.nit:360 */
2261 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2262 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2263 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2264 if (UNTAG_Bool(REGB0
)) {
2265 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2266 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2267 if (UNTAG_Bool(REGB0
)) {
2269 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2270 if (UNTAG_Bool(REGB1
)) {
2271 REGB1
= TAG_Bool(false);
2274 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2279 REGB1
= TAG_Bool(false);
2282 if (UNTAG_Bool(REGB0
)) {
2283 /* ./syntax//icode_generation.nit:361 */
2284 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2285 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2286 if (UNTAG_Bool(REGB0
)) {
2288 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 361);
2290 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2293 /* ./syntax//icode_generation.nit:364 */
2294 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2295 stack_frame_head
= fra
.me
.prev
;
2298 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2299 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2305 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2307 fra
.me
.meth
= LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
;
2308 fra
.me
.has_broke
= 0;
2309 fra
.me
.REG_size
= 6;
2310 fra
.me
.nitni_local_ref_head
= NULL
;
2311 fra
.me
.REG
[0] = NIT_NULL
;
2312 fra
.me
.REG
[1] = NIT_NULL
;
2313 fra
.me
.REG
[2] = NIT_NULL
;
2314 fra
.me
.REG
[3] = NIT_NULL
;
2315 fra
.me
.REG
[4] = NIT_NULL
;
2316 fra
.me
.REG
[5] = NIT_NULL
;
2320 /* ./syntax//icode_generation.nit:371 */
2321 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2322 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2323 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2324 /* ./syntax//icode_generation.nit:372 */
2325 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2326 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2327 /* ./syntax//icode_generation.nit:373 */
2329 /* ./../lib/standard//collection//array.nit:278 */
2330 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2331 /* ./../lib/standard//collection//array.nit:280 */
2333 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2334 if (UNTAG_Bool(REGB2
)) {
2336 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2338 /* ./../lib/standard//kernel.nit:233 */
2339 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2340 /* ./../lib/standard//collection//array.nit:280 */
2341 if (UNTAG_Bool(REGB1
)) {
2342 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2343 if (UNTAG_Bool(REGB1
)) {
2345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
2347 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2348 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2349 if (UNTAG_Bool(REGB2
)) {
2351 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2353 /* ./../lib/standard//kernel.nit:232 */
2354 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2356 /* ./../lib/standard//collection//array.nit:280 */
2357 REGB2
= TAG_Bool(false);
2360 if (UNTAG_Bool(REGB1
)) {
2362 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
2364 /* ./../lib/standard//collection//array.nit:281 */
2365 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
2366 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2367 if (UNTAG_Bool(REGB1
)) {
2368 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
2370 /* ./../lib/standard//collection//array.nit:718 */
2371 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2372 /* ./../lib/standard//collection//array.nit:281 */
2375 /* ./syntax//icode_generation.nit:373 */
2376 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2377 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2378 /* ./syntax//icode_generation.nit:374 */
2379 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2380 /* ./syntax//icode_generation.nit:375 */
2381 CALL_standard___collection___abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2382 /* ./syntax//icode_generation.nit:377 */
2383 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2384 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2385 /* ./syntax//icode_generation.nit:378 */
2386 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2387 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2388 if (UNTAG_Bool(REGB0
)) {
2389 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 378);
2391 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2392 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
2393 /* ./syntax//icode_generation.nit:379 */
2394 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2395 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2396 if (UNTAG_Bool(REGB0
)) {
2398 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2399 if (UNTAG_Bool(REGB1
)) {
2400 REGB1
= TAG_Bool(false);
2403 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2407 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2408 if (UNTAG_Bool(REGB0
)) {
2409 /* ./syntax//icode_generation.nit:380 */
2410 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2411 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2412 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2413 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2414 if (UNTAG_Bool(REGB0
)) {
2415 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 380);
2417 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]);
2419 /* ./syntax//icode_generation.nit:383 */
2420 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2421 if (UNTAG_Bool(REGB0
)) {
2422 /* ./syntax//icode_generation.nit:384 */
2423 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2425 /* ./syntax//icode_generation.nit:387 */
2426 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2427 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2428 if (UNTAG_Bool(REGB0
)) {
2430 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2431 if (UNTAG_Bool(REGB1
)) {
2432 REGB1
= TAG_Bool(false);
2435 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2439 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2440 if (UNTAG_Bool(REGB0
)) {
2441 /* ./syntax//icode_generation.nit:388 */
2442 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2443 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2445 /* ./syntax//icode_generation.nit:390 */
2446 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2447 stack_frame_head
= fra
.me
.prev
;
2450 void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2451 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2455 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2457 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2458 fra
.me
.has_broke
= 0;
2459 fra
.me
.REG_size
= 3;
2460 fra
.me
.nitni_local_ref_head
= NULL
;
2461 fra
.me
.REG
[0] = NIT_NULL
;
2462 fra
.me
.REG
[1] = NIT_NULL
;
2463 fra
.me
.REG
[2] = NIT_NULL
;
2467 /* ./syntax//icode_generation.nit:398 */
2468 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMMethSrcMethod
, ID_syntax___syntax_base___MMMethSrcMethod
)) /*cast MMMethSrcMethod*/;
2469 if (UNTAG_Bool(REGB0
)) {
2471 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 398);
2473 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2474 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
));
2475 stack_frame_head
= fra
.me
.prev
;
2478 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
){
2479 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2484 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2486 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2487 fra
.me
.has_broke
= 0;
2488 fra
.me
.REG_size
= 3;
2489 fra
.me
.nitni_local_ref_head
= NULL
;
2490 fra
.me
.REG
[0] = NIT_NULL
;
2491 fra
.me
.REG
[1] = NIT_NULL
;
2492 fra
.me
.REG
[2] = NIT_NULL
;
2493 fra
.me
.closure_ctx
= closctx_param
;
2494 fra
.me
.closure_funs
= CREG
;
2496 CREG
[0] = clos_fun0
;
2497 /* ./syntax//icode_generation.nit:400 */
2498 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2499 /* ./syntax//icode_generation.nit:402 */
2500 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2501 if (UNTAG_Bool(REGB0
)) {
2502 /* ./syntax//icode_generation.nit:403 */
2503 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2504 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2505 if (UNTAG_Bool(REGB0
)) {
2506 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 403);
2508 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2509 fra
.me
.REG
[2] = NEW_List_standard___collection___list___List___init();
2510 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2512 /* ./syntax//icode_generation.nit:405 */
2513 fra
.me
.REG
[1] = NEW_List_standard___collection___list___List___init();
2514 fra
.me
.REG
[1] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2515 fra
.me
.REG
[2] = fra
.me
.REG
[1];
2517 /* ./syntax//icode_generation.nit:407 */
2518 REGB0
= TAG_Bool(true);
2519 CALL_icode___icode_base___IAbsCall___is_explicit_from_extern__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2520 /* ./syntax//icode_generation.nit:408 */
2521 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
2522 stack_frame_head
= fra
.me
.prev
;
2525 void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2526 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2532 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2534 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
;
2535 fra
.me
.has_broke
= 0;
2536 fra
.me
.REG_size
= 8;
2537 fra
.me
.nitni_local_ref_head
= NULL
;
2538 fra
.me
.REG
[0] = NIT_NULL
;
2539 fra
.me
.REG
[1] = NIT_NULL
;
2540 fra
.me
.REG
[2] = NIT_NULL
;
2541 fra
.me
.REG
[3] = NIT_NULL
;
2542 fra
.me
.REG
[4] = NIT_NULL
;
2543 fra
.me
.REG
[5] = NIT_NULL
;
2544 fra
.me
.REG
[6] = NIT_NULL
;
2545 fra
.me
.REG
[7] = NIT_NULL
;
2549 /* ./syntax//icode_generation.nit:414 */
2550 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2551 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2552 /* ./syntax//icode_generation.nit:416 */
2553 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2554 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2555 /* ./syntax//icode_generation.nit:417 */
2556 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2557 /* ./syntax//icode_generation.nit:418 */
2558 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2559 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2560 if (UNTAG_Bool(REGB1
)) {
2561 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 418);
2563 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2565 /* ./../lib/standard//kernel.nit:235 */
2566 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
2567 /* ./syntax//icode_generation.nit:418 */
2568 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
2569 if (UNTAG_Bool(REGB1
)) {
2571 /* ./../lib/standard//kernel.nit:227 */
2572 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
2573 /* ./syntax//icode_generation.nit:418 */
2576 if (UNTAG_Bool(REGB1
)) {
2578 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 418);
2580 /* ./syntax//icode_generation.nit:419 */
2581 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2582 if (UNTAG_Bool(REGB1
)) {
2583 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 419);
2585 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2586 /* ./syntax//icode_generation.nit:420 */
2587 REGB1
= TAG_Bool(0);
2588 if (UNTAG_Bool(REGB1
)) {
2590 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2593 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2594 if (UNTAG_Bool(REGB1
)) {
2595 /* ./syntax//icode_generation.nit:421 */
2596 fra
.me
.REG
[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[6]);
2597 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2598 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]);
2599 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2601 /* ./syntax//icode_generation.nit:424 */
2602 CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2603 stack_frame_head
= fra
.me
.prev
;
2606 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2607 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2610 static val_t once_value_1
; /* Once value */
2611 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2612 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2614 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2615 fra
.me
.has_broke
= 0;
2616 fra
.me
.REG_size
= 3;
2617 fra
.me
.nitni_local_ref_head
= NULL
;
2618 fra
.me
.REG
[0] = NIT_NULL
;
2619 fra
.me
.REG
[1] = NIT_NULL
;
2620 fra
.me
.REG
[2] = NIT_NULL
;
2624 /* ./syntax//icode_generation.nit:431 */
2626 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2627 if (!once_value_1
) {
2628 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2629 REGB0
= TAG_Int(22);
2630 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2631 once_value_1
= fra
.me
.REG
[0];
2632 register_static_object(&once_value_1
);
2633 } else fra
.me
.REG
[0] = once_value_1
;
2634 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2636 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2637 stack_frame_head
= fra
.me
.prev
;
2640 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2641 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2645 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2646 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2648 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2649 fra
.me
.has_broke
= 0;
2650 fra
.me
.REG_size
= 8;
2651 fra
.me
.nitni_local_ref_head
= NULL
;
2652 fra
.me
.REG
[0] = NIT_NULL
;
2653 fra
.me
.REG
[1] = NIT_NULL
;
2654 fra
.me
.REG
[2] = NIT_NULL
;
2655 fra
.me
.REG
[3] = NIT_NULL
;
2656 fra
.me
.REG
[4] = NIT_NULL
;
2657 fra
.me
.REG
[5] = NIT_NULL
;
2658 fra
.me
.REG
[6] = NIT_NULL
;
2659 fra
.me
.REG
[7] = NIT_NULL
;
2663 /* ./syntax//icode_generation.nit:436 */
2664 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2665 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2666 /* ./syntax//icode_generation.nit:438 */
2667 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2668 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2669 /* ./syntax//icode_generation.nit:439 */
2670 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2671 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2672 if (UNTAG_Bool(REGB0
)) {
2673 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 439);
2675 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2676 /* ./syntax//icode_generation.nit:440 */
2677 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2678 if (UNTAG_Bool(REGB0
)) {
2680 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2681 if (UNTAG_Bool(REGB1
)) {
2682 REGB1
= TAG_Bool(false);
2685 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2689 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2690 if (UNTAG_Bool(REGB0
)) {
2691 /* ./syntax//icode_generation.nit:441 */
2692 fra
.me
.REG
[7] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2693 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]);
2694 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2696 /* ./syntax//icode_generation.nit:443 */
2697 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2698 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2700 /* ./syntax//icode_generation.nit:446 */
2701 CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2702 stack_frame_head
= fra
.me
.prev
;
2705 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2706 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2710 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2711 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2713 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2714 fra
.me
.has_broke
= 0;
2715 fra
.me
.REG_size
= 5;
2716 fra
.me
.nitni_local_ref_head
= NULL
;
2717 fra
.me
.REG
[0] = NIT_NULL
;
2718 fra
.me
.REG
[1] = NIT_NULL
;
2719 fra
.me
.REG
[2] = NIT_NULL
;
2720 fra
.me
.REG
[3] = NIT_NULL
;
2721 fra
.me
.REG
[4] = NIT_NULL
;
2725 /* ./syntax//icode_generation.nit:453 */
2726 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2727 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2728 /* ./syntax//icode_generation.nit:454 */
2729 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2730 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2731 if (UNTAG_Bool(REGB0
)) {
2732 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 454);
2734 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2735 /* ./syntax//icode_generation.nit:455 */
2736 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2737 if (UNTAG_Bool(REGB0
)) {
2739 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2740 if (UNTAG_Bool(REGB1
)) {
2741 REGB1
= TAG_Bool(false);
2744 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2748 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2749 if (UNTAG_Bool(REGB0
)) {
2750 /* ./syntax//icode_generation.nit:456 */
2751 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2752 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]);
2753 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2755 /* ./syntax//icode_generation.nit:458 */
2756 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2757 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2759 stack_frame_head
= fra
.me
.prev
;
2762 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2763 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2765 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2766 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2768 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2769 fra
.me
.has_broke
= 0;
2770 fra
.me
.REG_size
= 2;
2771 fra
.me
.nitni_local_ref_head
= NULL
;
2772 fra
.me
.REG
[0] = NIT_NULL
;
2773 fra
.me
.REG
[1] = NIT_NULL
;
2776 stack_frame_head
= fra
.me
.prev
;
2779 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2780 struct {struct stack_frame_t me
;} fra
;
2782 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2783 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2785 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2786 fra
.me
.has_broke
= 0;
2787 fra
.me
.REG_size
= 0;
2788 fra
.me
.nitni_local_ref_head
= NULL
;
2789 /* ./syntax//icode_generation.nit:468 */
2790 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 468);
2791 stack_frame_head
= fra
.me
.prev
;
2794 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2795 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2800 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2802 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2803 fra
.me
.has_broke
= 0;
2804 fra
.me
.REG_size
= 3;
2805 fra
.me
.nitni_local_ref_head
= NULL
;
2806 fra
.me
.REG
[0] = NIT_NULL
;
2807 fra
.me
.REG
[1] = NIT_NULL
;
2808 fra
.me
.REG
[2] = NIT_NULL
;
2811 /* ./syntax//icode_generation.nit:476 */
2812 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2813 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2814 /* ./syntax//icode_generation.nit:477 */
2815 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2816 /* ./syntax//icode_generation.nit:478 */
2817 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2818 if (UNTAG_Bool(REGB0
)) {
2820 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2821 if (UNTAG_Bool(REGB1
)) {
2822 REGB1
= TAG_Bool(false);
2825 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2829 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2830 if (UNTAG_Bool(REGB0
)) {
2831 /* ./syntax//icode_generation.nit:479 */
2832 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2833 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2835 /* ./syntax//icode_generation.nit:481 */
2836 fra
.me
.REG
[0] = NIT_NULL
;
2839 stack_frame_head
= fra
.me
.prev
;
2840 return fra
.me
.REG
[0];
2842 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2843 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2846 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2848 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2849 fra
.me
.has_broke
= 0;
2850 fra
.me
.REG_size
= 2;
2851 fra
.me
.nitni_local_ref_head
= NULL
;
2852 fra
.me
.REG
[0] = NIT_NULL
;
2853 fra
.me
.REG
[1] = NIT_NULL
;
2856 /* ./syntax//icode_generation.nit:488 */
2857 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2858 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
));
2859 /* ./syntax//icode_generation.nit:489 */
2860 fra
.me
.REG
[1] = NIT_NULL
;
2863 stack_frame_head
= fra
.me
.prev
;
2864 return fra
.me
.REG
[1];
2866 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
){
2867 struct {struct stack_frame_t me
;} fra
;
2870 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2871 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2873 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2874 fra
.me
.has_broke
= 0;
2875 fra
.me
.REG_size
= 1;
2876 fra
.me
.nitni_local_ref_head
= NULL
;
2877 fra
.me
.REG
[0] = NIT_NULL
;
2878 fra
.me
.closure_ctx
= closctx_param
;
2879 fra
.me
.closure_funs
= CREG
;
2881 CREG
[0] = clos_fun0
;
2882 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2883 stack_frame_head
= fra
.me
.prev
;
2886 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2887 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2890 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2891 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2893 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2894 fra
.me
.has_broke
= 0;
2895 fra
.me
.REG_size
= 5;
2896 fra
.me
.nitni_local_ref_head
= NULL
;
2897 fra
.me
.REG
[0] = NIT_NULL
;
2898 fra
.me
.REG
[1] = NIT_NULL
;
2899 fra
.me
.REG
[2] = NIT_NULL
;
2900 fra
.me
.REG
[3] = NIT_NULL
;
2901 fra
.me
.REG
[4] = NIT_NULL
;
2904 /* ./syntax//icode_generation.nit:496 */
2905 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2906 /* ./syntax//icode_generation.nit:497 */
2907 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2908 /* ./syntax//icode_generation.nit:498 */
2909 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2910 /* ./syntax//icode_generation.nit:499 */
2911 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2912 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2913 if (UNTAG_Bool(REGB0
)) {
2914 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 499);
2916 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2917 /* ./syntax//icode_generation.nit:500 */
2918 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2919 /* ./syntax//icode_generation.nit:502 */
2920 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2921 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2922 /* ./syntax//icode_generation.nit:504 */
2923 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2924 /* ./syntax//icode_generation.nit:505 */
2925 fra
.me
.REG
[2] = NIT_NULL
;
2928 stack_frame_head
= fra
.me
.prev
;
2929 return fra
.me
.REG
[2];
2931 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2932 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2936 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2937 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2939 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2940 fra
.me
.has_broke
= 0;
2941 fra
.me
.REG_size
= 4;
2942 fra
.me
.nitni_local_ref_head
= NULL
;
2943 fra
.me
.REG
[0] = NIT_NULL
;
2944 fra
.me
.REG
[1] = NIT_NULL
;
2945 fra
.me
.REG
[2] = NIT_NULL
;
2946 fra
.me
.REG
[3] = NIT_NULL
;
2949 /* ./syntax//icode_generation.nit:510 */
2950 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2951 /* ./syntax//icode_generation.nit:512 */
2952 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2953 /* ./syntax//icode_generation.nit:513 */
2954 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2955 if (UNTAG_Bool(REGB0
)) {
2957 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2958 if (UNTAG_Bool(REGB1
)) {
2959 REGB1
= TAG_Bool(false);
2962 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2966 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2967 if (UNTAG_Bool(REGB0
)) {
2968 /* ./syntax//icode_generation.nit:514 */
2969 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2970 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2971 if (UNTAG_Bool(REGB0
)) {
2973 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 514);
2975 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2976 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2978 /* ./syntax//icode_generation.nit:516 */
2979 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2980 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2981 if (UNTAG_Bool(REGB0
)) {
2983 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 516);
2985 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2986 /* ./syntax//icode_generation.nit:517 */
2987 fra
.me
.REG
[2] = NIT_NULL
;
2990 stack_frame_head
= fra
.me
.prev
;
2991 return fra
.me
.REG
[2];
2993 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
2994 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2998 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2999 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3001 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
3002 fra
.me
.has_broke
= 0;
3003 fra
.me
.REG_size
= 5;
3004 fra
.me
.nitni_local_ref_head
= NULL
;
3005 fra
.me
.REG
[0] = NIT_NULL
;
3006 fra
.me
.REG
[1] = NIT_NULL
;
3007 fra
.me
.REG
[2] = NIT_NULL
;
3008 fra
.me
.REG
[3] = NIT_NULL
;
3009 fra
.me
.REG
[4] = NIT_NULL
;
3012 /* ./syntax//icode_generation.nit:522 */
3013 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3014 /* ./syntax//icode_generation.nit:524 */
3015 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3016 /* ./syntax//icode_generation.nit:525 */
3017 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3018 if (UNTAG_Bool(REGB0
)) {
3020 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3021 if (UNTAG_Bool(REGB1
)) {
3022 REGB1
= TAG_Bool(false);
3025 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3029 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3030 if (UNTAG_Bool(REGB0
)) {
3031 /* ./syntax//icode_generation.nit:526 */
3032 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3033 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3034 if (UNTAG_Bool(REGB0
)) {
3035 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 526);
3037 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3038 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3039 if (UNTAG_Bool(REGB0
)) {
3041 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 526);
3043 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3044 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3046 /* ./syntax//icode_generation.nit:528 */
3047 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3048 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3049 if (UNTAG_Bool(REGB0
)) {
3050 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 528);
3052 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3053 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3054 if (UNTAG_Bool(REGB0
)) {
3056 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 528);
3058 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3059 /* ./syntax//icode_generation.nit:529 */
3060 fra
.me
.REG
[2] = NIT_NULL
;
3063 stack_frame_head
= fra
.me
.prev
;
3064 return fra
.me
.REG
[2];
3066 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
3067 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3071 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3072 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3074 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
3075 fra
.me
.has_broke
= 0;
3076 fra
.me
.REG_size
= 5;
3077 fra
.me
.nitni_local_ref_head
= NULL
;
3078 fra
.me
.REG
[0] = NIT_NULL
;
3079 fra
.me
.REG
[1] = NIT_NULL
;
3080 fra
.me
.REG
[2] = NIT_NULL
;
3081 fra
.me
.REG
[3] = NIT_NULL
;
3082 fra
.me
.REG
[4] = NIT_NULL
;
3085 /* ./syntax//icode_generation.nit:534 */
3086 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3087 /* ./syntax//icode_generation.nit:536 */
3088 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3089 /* ./syntax//icode_generation.nit:537 */
3090 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3091 if (UNTAG_Bool(REGB0
)) {
3093 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3094 if (UNTAG_Bool(REGB1
)) {
3095 REGB1
= TAG_Bool(false);
3098 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3102 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3103 if (UNTAG_Bool(REGB0
)) {
3104 /* ./syntax//icode_generation.nit:538 */
3105 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3106 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3107 if (UNTAG_Bool(REGB0
)) {
3108 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 538);
3110 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3111 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3112 if (UNTAG_Bool(REGB0
)) {
3114 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 538);
3116 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3117 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3119 /* ./syntax//icode_generation.nit:540 */
3120 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3121 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3122 if (UNTAG_Bool(REGB0
)) {
3123 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 540);
3125 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3126 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3127 if (UNTAG_Bool(REGB0
)) {
3129 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 540);
3131 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3132 /* ./syntax//icode_generation.nit:541 */
3133 fra
.me
.REG
[2] = NIT_NULL
;
3136 stack_frame_head
= fra
.me
.prev
;
3137 return fra
.me
.REG
[2];
3139 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
3140 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3143 static val_t once_value_1
; /* Once value */
3144 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3145 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3147 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
3148 fra
.me
.has_broke
= 0;
3149 fra
.me
.REG_size
= 3;
3150 fra
.me
.nitni_local_ref_head
= NULL
;
3151 fra
.me
.REG
[0] = NIT_NULL
;
3152 fra
.me
.REG
[1] = NIT_NULL
;
3153 fra
.me
.REG
[2] = NIT_NULL
;
3156 /* ./syntax//icode_generation.nit:548 */
3158 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3159 if (!once_value_1
) {
3160 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
3162 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3163 once_value_1
= fra
.me
.REG
[2];
3164 register_static_object(&once_value_1
);
3165 } else fra
.me
.REG
[2] = once_value_1
;
3166 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3167 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3168 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3169 /* ./syntax//icode_generation.nit:549 */
3170 fra
.me
.REG
[0] = NIT_NULL
;
3173 stack_frame_head
= fra
.me
.prev
;
3174 return fra
.me
.REG
[0];
3176 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
3177 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3181 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3182 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3184 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
3185 fra
.me
.has_broke
= 0;
3186 fra
.me
.REG_size
= 5;
3187 fra
.me
.nitni_local_ref_head
= NULL
;
3188 fra
.me
.REG
[0] = NIT_NULL
;
3189 fra
.me
.REG
[1] = NIT_NULL
;
3190 fra
.me
.REG
[2] = NIT_NULL
;
3191 fra
.me
.REG
[3] = NIT_NULL
;
3192 fra
.me
.REG
[4] = NIT_NULL
;
3195 /* ./syntax//icode_generation.nit:556 */
3196 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3197 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3198 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3199 /* ./syntax//icode_generation.nit:557 */
3200 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3201 /* ./syntax//icode_generation.nit:558 */
3202 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3203 /* ./syntax//icode_generation.nit:560 */
3204 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3205 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3206 if (UNTAG_Bool(REGB0
)) {
3208 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3209 if (UNTAG_Bool(REGB1
)) {
3210 REGB1
= TAG_Bool(false);
3213 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3217 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3218 if (UNTAG_Bool(REGB0
)) {
3219 /* ./syntax//icode_generation.nit:561 */
3220 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3221 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3222 /* ./syntax//icode_generation.nit:562 */
3223 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3224 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3226 /* ./syntax//icode_generation.nit:565 */
3227 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3228 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3229 if (UNTAG_Bool(REGB0
)) {
3231 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3232 if (UNTAG_Bool(REGB1
)) {
3233 REGB1
= TAG_Bool(false);
3236 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3240 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3241 if (UNTAG_Bool(REGB0
)) {
3242 /* ./syntax//icode_generation.nit:566 */
3243 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3244 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3245 /* ./syntax//icode_generation.nit:567 */
3246 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3247 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3249 /* ./syntax//icode_generation.nit:570 */
3250 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3251 /* ./syntax//icode_generation.nit:571 */
3252 fra
.me
.REG
[3] = NIT_NULL
;
3255 stack_frame_head
= fra
.me
.prev
;
3256 return fra
.me
.REG
[3];
3258 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3259 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3264 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3266 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3267 fra
.me
.has_broke
= 0;
3268 fra
.me
.REG_size
= 7;
3269 fra
.me
.nitni_local_ref_head
= NULL
;
3270 fra
.me
.REG
[0] = NIT_NULL
;
3271 fra
.me
.REG
[1] = NIT_NULL
;
3272 fra
.me
.REG
[2] = NIT_NULL
;
3273 fra
.me
.REG
[3] = NIT_NULL
;
3274 fra
.me
.REG
[4] = NIT_NULL
;
3275 fra
.me
.REG
[5] = NIT_NULL
;
3276 fra
.me
.REG
[6] = NIT_NULL
;
3279 /* ./syntax//icode_generation.nit:578 */
3280 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3281 /* ./syntax//icode_generation.nit:579 */
3282 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3283 /* ./syntax//icode_generation.nit:580 */
3284 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3285 /* ./syntax//icode_generation.nit:581 */
3286 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3287 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3288 if (UNTAG_Bool(REGB0
)) {
3289 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 581);
3291 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3292 /* ./syntax//icode_generation.nit:582 */
3293 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3294 /* ./syntax//icode_generation.nit:585 */
3295 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3296 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3297 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3298 /* ./syntax//icode_generation.nit:586 */
3299 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3300 /* ./syntax//icode_generation.nit:589 */
3301 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3302 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3303 if (UNTAG_Bool(REGB0
)) {
3305 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3306 if (UNTAG_Bool(REGB1
)) {
3307 REGB1
= TAG_Bool(false);
3310 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3314 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3315 if (UNTAG_Bool(REGB0
)) {
3316 /* ./syntax//icode_generation.nit:590 */
3317 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3318 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3319 /* ./syntax//icode_generation.nit:591 */
3320 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3321 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3322 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3323 if (UNTAG_Bool(REGB0
)) {
3324 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 591);
3326 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3327 /* ./syntax//icode_generation.nit:592 */
3328 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3329 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3331 /* ./syntax//icode_generation.nit:596 */
3332 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3333 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3334 /* ./syntax//icode_generation.nit:597 */
3335 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3336 /* ./syntax//icode_generation.nit:599 */
3337 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3338 /* ./syntax//icode_generation.nit:600 */
3339 fra
.me
.REG
[2] = NIT_NULL
;
3342 stack_frame_head
= fra
.me
.prev
;
3343 return fra
.me
.REG
[2];
3345 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3346 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3350 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3351 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3353 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3354 fra
.me
.has_broke
= 0;
3355 fra
.me
.REG_size
= 5;
3356 fra
.me
.nitni_local_ref_head
= NULL
;
3357 fra
.me
.REG
[0] = NIT_NULL
;
3358 fra
.me
.REG
[1] = NIT_NULL
;
3359 fra
.me
.REG
[2] = NIT_NULL
;
3360 fra
.me
.REG
[3] = NIT_NULL
;
3361 fra
.me
.REG
[4] = NIT_NULL
;
3364 /* ./syntax//icode_generation.nit:607 */
3365 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3366 /* ./syntax//icode_generation.nit:608 */
3367 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3368 /* ./syntax//icode_generation.nit:609 */
3369 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3370 /* ./syntax//icode_generation.nit:610 */
3371 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3372 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3373 if (UNTAG_Bool(REGB0
)) {
3374 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 610);
3376 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3377 /* ./syntax//icode_generation.nit:611 */
3378 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3379 /* ./syntax//icode_generation.nit:614 */
3380 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3381 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3382 if (UNTAG_Bool(REGB0
)) {
3384 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3385 if (UNTAG_Bool(REGB1
)) {
3386 REGB1
= TAG_Bool(false);
3389 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3393 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3394 if (UNTAG_Bool(REGB0
)) {
3395 /* ./syntax//icode_generation.nit:615 */
3396 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3397 /* ./syntax//icode_generation.nit:616 */
3398 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3399 /* ./syntax//icode_generation.nit:617 */
3400 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3401 /* ./syntax//icode_generation.nit:618 */
3402 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3403 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3404 if (UNTAG_Bool(REGB0
)) {
3405 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 618);
3407 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3408 /* ./syntax//icode_generation.nit:619 */
3409 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3410 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3412 /* ./syntax//icode_generation.nit:622 */
3413 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3414 /* ./syntax//icode_generation.nit:623 */
3415 fra
.me
.REG
[2] = NIT_NULL
;
3418 stack_frame_head
= fra
.me
.prev
;
3419 return fra
.me
.REG
[2];
3421 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3422 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3430 static val_t once_value_1
; /* Once value */
3431 static val_t once_value_2
; /* Once value */
3432 static val_t once_value_3
; /* Once value */
3433 static val_t once_value_4
; /* Once value */
3434 static val_t once_value_5
; /* Once value */
3435 static val_t once_value_6
; /* Once value */
3436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3437 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3439 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3440 fra
.me
.has_broke
= 0;
3441 fra
.me
.REG_size
= 9;
3442 fra
.me
.nitni_local_ref_head
= NULL
;
3443 fra
.me
.REG
[0] = NIT_NULL
;
3444 fra
.me
.REG
[1] = NIT_NULL
;
3445 fra
.me
.REG
[2] = NIT_NULL
;
3446 fra
.me
.REG
[3] = NIT_NULL
;
3447 fra
.me
.REG
[4] = NIT_NULL
;
3448 fra
.me
.REG
[5] = NIT_NULL
;
3449 fra
.me
.REG
[6] = NIT_NULL
;
3450 fra
.me
.REG
[7] = NIT_NULL
;
3451 fra
.me
.REG
[8] = NIT_NULL
;
3454 /* ./syntax//icode_generation.nit:630 */
3455 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3456 /* ./syntax//icode_generation.nit:631 */
3457 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3458 /* ./syntax//icode_generation.nit:632 */
3459 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3460 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3461 /* ./syntax//icode_generation.nit:636 */
3462 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3463 if (UNTAG_Bool(REGB0
)) {
3464 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3465 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3466 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3467 if (UNTAG_Bool(REGB0
)) {
3469 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3473 REGB1
= TAG_Bool(false);
3476 if (UNTAG_Bool(REGB0
)) {
3477 /* ./syntax//icode_generation.nit:641 */
3479 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3480 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3481 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3483 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3484 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3486 /* ./syntax//icode_generation.nit:642 */
3487 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3488 if (UNTAG_Bool(REGB0
)) {
3489 /* ./syntax//icode_generation.nit:643 */
3490 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3491 if (!once_value_1
) {
3492 if (!once_value_2
) {
3493 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3494 REGB0
= TAG_Int(12);
3495 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3496 once_value_2
= fra
.me
.REG
[7];
3497 register_static_object(&once_value_2
);
3498 } else fra
.me
.REG
[7] = once_value_2
;
3499 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3500 fra
.me
.REG
[7] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3501 once_value_1
= fra
.me
.REG
[7];
3502 register_static_object(&once_value_1
);
3503 } else fra
.me
.REG
[7] = once_value_1
;
3504 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3505 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]);
3507 /* ./syntax//icode_generation.nit:645 */
3508 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3509 if (UNTAG_Bool(REGB0
)) {
3511 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 645);
3513 /* ./syntax//icode_generation.nit:646 */
3514 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3515 if (!once_value_3
) {
3516 if (!once_value_4
) {
3517 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3518 REGB0
= TAG_Int(16);
3519 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3520 once_value_4
= fra
.me
.REG
[6];
3521 register_static_object(&once_value_4
);
3522 } else fra
.me
.REG
[6] = once_value_4
;
3523 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3524 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3525 once_value_3
= fra
.me
.REG
[6];
3526 register_static_object(&once_value_3
);
3527 } else fra
.me
.REG
[6] = once_value_3
;
3528 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3529 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]);
3530 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3533 /* ./syntax//icode_generation.nit:652 */
3534 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3535 if (!once_value_5
) {
3536 if (!once_value_6
) {
3537 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3539 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3540 once_value_6
= fra
.me
.REG
[4];
3541 register_static_object(&once_value_6
);
3542 } else fra
.me
.REG
[4] = once_value_6
;
3543 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3544 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3545 once_value_5
= fra
.me
.REG
[4];
3546 register_static_object(&once_value_5
);
3547 } else fra
.me
.REG
[4] = once_value_5
;
3548 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3549 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]);
3550 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3551 /* ./syntax//icode_generation.nit:653 */
3553 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3554 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3555 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3557 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3559 /* ./syntax//icode_generation.nit:657 */
3560 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3561 if (UNTAG_Bool(REGB0
)) {
3562 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3564 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3565 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3566 if (UNTAG_Bool(REGB0
)) {
3567 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3569 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3570 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3571 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3572 if (UNTAG_Bool(REGB0
)) {
3573 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 657);
3575 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3576 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3577 /* ./syntax//icode_generation.nit:658 */
3578 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3579 /* ./syntax//icode_generation.nit:660 */
3580 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3581 /* ./syntax//icode_generation.nit:661 */
3582 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3583 /* ./syntax//icode_generation.nit:662 */
3584 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3585 /* ./syntax//icode_generation.nit:663 */
3586 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3587 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3588 if (UNTAG_Bool(REGB0
)) {
3589 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 663);
3591 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3592 /* ./syntax//icode_generation.nit:664 */
3593 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3594 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3595 if (UNTAG_Bool(REGB0
)) {
3596 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 664);
3598 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3599 /* ./syntax//icode_generation.nit:666 */
3600 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3601 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3602 /* ./syntax//icode_generation.nit:667 */
3603 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3604 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3605 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3606 if (UNTAG_Bool(REGB0
)) {
3607 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 667);
3609 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3610 /* ./syntax//icode_generation.nit:668 */
3611 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3612 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3613 if (UNTAG_Bool(REGB0
)) {
3614 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 668);
3616 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3617 /* ./syntax//icode_generation.nit:669 */
3619 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3620 /* ./../lib/standard//collection//array.nit:24 */
3621 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3622 if (UNTAG_Bool(REGB1
)) {
3624 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
3626 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3627 /* ./../lib/standard//kernel.nit:352 */
3629 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3630 if (UNTAG_Bool(REGB2
)) {
3632 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3634 /* ./../lib/standard//kernel.nit:232 */
3635 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3636 /* ./../lib/standard//kernel.nit:352 */
3637 if (UNTAG_Bool(REGB2
)) {
3638 /* ./syntax//icode_generation.nit:669 */
3640 /* ./syntax//icode_generation.nit:670 */
3641 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3642 /* ./../lib/standard//collection//array.nit:278 */
3644 /* ./../lib/standard//collection//array.nit:280 */
3646 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3647 if (UNTAG_Bool(REGB5
)) {
3649 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3651 /* ./../lib/standard//kernel.nit:233 */
3652 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3653 /* ./../lib/standard//collection//array.nit:280 */
3654 if (UNTAG_Bool(REGB4
)) {
3655 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3656 if (UNTAG_Bool(REGB4
)) {
3658 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
3660 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3661 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3662 if (UNTAG_Bool(REGB5
)) {
3664 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3666 /* ./../lib/standard//kernel.nit:232 */
3667 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3669 /* ./../lib/standard//collection//array.nit:280 */
3670 REGB5
= TAG_Bool(false);
3673 if (UNTAG_Bool(REGB4
)) {
3675 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
3677 /* ./../lib/standard//collection//array.nit:281 */
3678 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3679 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3680 if (UNTAG_Bool(REGB4
)) {
3681 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
3683 /* ./../lib/standard//collection//array.nit:718 */
3684 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3685 /* ./../lib/standard//collection//array.nit:281 */
3688 /* ./syntax//icode_generation.nit:670 */
3689 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3690 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3691 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3692 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3693 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3694 /* ./../lib/standard//kernel.nit:354 */
3696 /* ./../lib/standard//kernel.nit:235 */
3697 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3698 /* ./../lib/standard//kernel.nit:354 */
3701 /* ./../lib/standard//kernel.nit:352 */
3706 /* ./syntax//icode_generation.nit:672 */
3707 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3708 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3709 /* ./syntax//icode_generation.nit:675 */
3710 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3711 /* ./syntax//icode_generation.nit:676 */
3713 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3715 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]);
3716 /* ./syntax//icode_generation.nit:678 */
3717 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3718 /* ./syntax//icode_generation.nit:679 */
3719 fra
.me
.REG
[3] = NIT_NULL
;
3722 stack_frame_head
= fra
.me
.prev
;
3723 return fra
.me
.REG
[3];
3725 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3726 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3730 static val_t once_value_1
; /* Once value */
3731 static val_t once_value_2
; /* Once value */
3732 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3733 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3735 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3736 fra
.me
.has_broke
= 0;
3737 fra
.me
.REG_size
= 5;
3738 fra
.me
.nitni_local_ref_head
= NULL
;
3739 fra
.me
.REG
[0] = NIT_NULL
;
3740 fra
.me
.REG
[1] = NIT_NULL
;
3741 fra
.me
.REG
[2] = NIT_NULL
;
3742 fra
.me
.REG
[3] = NIT_NULL
;
3743 fra
.me
.REG
[4] = NIT_NULL
;
3746 /* ./syntax//icode_generation.nit:686 */
3747 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3748 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3749 /* ./syntax//icode_generation.nit:687 */
3750 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3751 /* ./syntax//icode_generation.nit:688 */
3752 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3753 /* ./syntax//icode_generation.nit:689 */
3754 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3755 /* ./syntax//icode_generation.nit:690 */
3756 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3757 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3758 /* ./syntax//icode_generation.nit:691 */
3759 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3760 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3761 /* ./syntax//icode_generation.nit:692 */
3762 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3763 /* ./syntax//icode_generation.nit:693 */
3764 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3765 if (UNTAG_Bool(REGB0
)) {
3767 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3768 if (UNTAG_Bool(REGB1
)) {
3769 REGB1
= TAG_Bool(false);
3772 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3776 if (UNTAG_Bool(REGB0
)) {
3777 /* ./syntax//icode_generation.nit:694 */
3779 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3780 if (!once_value_1
) {
3781 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3782 REGB0
= TAG_Int(13);
3783 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3784 once_value_1
= fra
.me
.REG
[4];
3785 register_static_object(&once_value_1
);
3786 } else fra
.me
.REG
[4] = once_value_1
;
3787 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3789 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3791 /* ./syntax//icode_generation.nit:696 */
3793 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3794 if (!once_value_2
) {
3795 fra
.me
.REG
[4] = BOX_NativeString("Assert %s failed");
3796 REGB0
= TAG_Int(17);
3797 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3798 once_value_2
= fra
.me
.REG
[4];
3799 register_static_object(&once_value_2
);
3800 } else fra
.me
.REG
[4] = once_value_2
;
3801 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3803 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3804 if (UNTAG_Bool(REGB0
)) {
3805 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 696);
3807 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3809 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3811 /* ./syntax//icode_generation.nit:698 */
3812 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3813 /* ./syntax//icode_generation.nit:699 */
3814 fra
.me
.REG
[3] = NIT_NULL
;
3817 stack_frame_head
= fra
.me
.prev
;
3818 return fra
.me
.REG
[3];
3820 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3821 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3823 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3824 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3826 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3827 fra
.me
.has_broke
= 0;
3828 fra
.me
.REG_size
= 2;
3829 fra
.me
.nitni_local_ref_head
= NULL
;
3830 fra
.me
.REG
[0] = NIT_NULL
;
3831 fra
.me
.REG
[1] = NIT_NULL
;
3834 /* ./syntax//icode_generation.nit:706 */
3835 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3836 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3839 stack_frame_head
= fra
.me
.prev
;
3840 return fra
.me
.REG
[0];
3842 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3843 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3846 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3848 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3849 fra
.me
.has_broke
= 0;
3850 fra
.me
.REG_size
= 3;
3851 fra
.me
.nitni_local_ref_head
= NULL
;
3852 fra
.me
.REG
[0] = NIT_NULL
;
3853 fra
.me
.REG
[1] = NIT_NULL
;
3854 fra
.me
.REG
[2] = NIT_NULL
;
3857 /* ./syntax//icode_generation.nit:713 */
3858 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3859 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3860 /* ./syntax//icode_generation.nit:714 */
3861 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3862 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3863 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3864 /* ./syntax//icode_generation.nit:715 */
3865 fra
.me
.REG
[2] = NIT_NULL
;
3868 stack_frame_head
= fra
.me
.prev
;
3869 return fra
.me
.REG
[2];
3871 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3872 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3876 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3878 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3879 fra
.me
.has_broke
= 0;
3880 fra
.me
.REG_size
= 7;
3881 fra
.me
.nitni_local_ref_head
= NULL
;
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
;
3888 fra
.me
.REG
[6] = NIT_NULL
;
3891 /* ./syntax//icode_generation.nit:720 */
3892 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3893 /* ./syntax//icode_generation.nit:722 */
3894 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3895 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3896 /* ./syntax//icode_generation.nit:723 */
3897 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3898 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3899 /* ./syntax//icode_generation.nit:724 */
3900 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3902 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3903 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3904 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3905 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3906 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3907 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3909 if (UNTAG_Bool(REGB0
)) {
3910 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 724);
3912 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3913 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*/;
3914 if (UNTAG_Bool(REGB0
)) {
3916 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 724);
3918 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]);
3919 /* ./syntax//icode_generation.nit:725 */
3920 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3921 /* ./syntax//icode_generation.nit:726 */
3922 fra
.me
.REG
[2] = NIT_NULL
;
3925 stack_frame_head
= fra
.me
.prev
;
3926 return fra
.me
.REG
[2];
3928 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3929 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3932 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3934 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3935 fra
.me
.has_broke
= 0;
3936 fra
.me
.REG_size
= 2;
3937 fra
.me
.nitni_local_ref_head
= NULL
;
3938 fra
.me
.REG
[0] = NIT_NULL
;
3939 fra
.me
.REG
[1] = NIT_NULL
;
3942 /* ./syntax//icode_generation.nit:733 */
3943 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3944 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3947 stack_frame_head
= fra
.me
.prev
;
3948 return fra
.me
.REG
[0];
3950 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
3951 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3953 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3954 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3956 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
3957 fra
.me
.has_broke
= 0;
3958 fra
.me
.REG_size
= 6;
3959 fra
.me
.nitni_local_ref_head
= NULL
;
3960 fra
.me
.REG
[0] = NIT_NULL
;
3961 fra
.me
.REG
[1] = NIT_NULL
;
3962 fra
.me
.REG
[2] = NIT_NULL
;
3963 fra
.me
.REG
[3] = NIT_NULL
;
3964 fra
.me
.REG
[4] = NIT_NULL
;
3965 fra
.me
.REG
[5] = NIT_NULL
;
3968 /* ./syntax//icode_generation.nit:741 */
3969 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3970 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3971 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3972 /* ./syntax//icode_generation.nit:742 */
3973 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3974 /* ./syntax//icode_generation.nit:743 */
3975 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3976 /* ./syntax//icode_generation.nit:746 */
3977 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3978 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3979 /* ./syntax//icode_generation.nit:749 */
3980 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3981 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3982 /* ./syntax//icode_generation.nit:750 */
3983 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3984 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3985 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3986 /* ./syntax//icode_generation.nit:753 */
3987 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3988 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3989 /* ./syntax//icode_generation.nit:754 */
3990 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3991 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3992 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
3993 /* ./syntax//icode_generation.nit:756 */
3994 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3995 /* ./syntax//icode_generation.nit:757 */
3998 stack_frame_head
= fra
.me
.prev
;
3999 return fra
.me
.REG
[4];
4001 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
4002 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4004 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4005 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4007 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
4008 fra
.me
.has_broke
= 0;
4009 fra
.me
.REG_size
= 4;
4010 fra
.me
.nitni_local_ref_head
= NULL
;
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
;
4017 /* ./syntax//icode_generation.nit:764 */
4018 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4019 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4020 /* ./syntax//icode_generation.nit:765 */
4021 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4022 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4023 /* ./syntax//icode_generation.nit:766 */
4024 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4025 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4026 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]);
4029 stack_frame_head
= fra
.me
.prev
;
4030 return fra
.me
.REG
[0];
4032 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
4033 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4035 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4036 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4038 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
4039 fra
.me
.has_broke
= 0;
4040 fra
.me
.REG_size
= 6;
4041 fra
.me
.nitni_local_ref_head
= NULL
;
4042 fra
.me
.REG
[0] = NIT_NULL
;
4043 fra
.me
.REG
[1] = NIT_NULL
;
4044 fra
.me
.REG
[2] = NIT_NULL
;
4045 fra
.me
.REG
[3] = NIT_NULL
;
4046 fra
.me
.REG
[4] = NIT_NULL
;
4047 fra
.me
.REG
[5] = NIT_NULL
;
4050 /* ./syntax//icode_generation.nit:774 */
4051 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4052 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4053 /* ./syntax//icode_generation.nit:777 */
4054 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4055 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4056 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4057 /* ./syntax//icode_generation.nit:778 */
4058 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4059 /* ./syntax//icode_generation.nit:779 */
4060 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4061 /* ./syntax//icode_generation.nit:780 */
4062 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4063 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4064 /* ./syntax//icode_generation.nit:781 */
4065 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4066 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4067 /* ./syntax//icode_generation.nit:784 */
4068 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4069 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4070 /* ./syntax//icode_generation.nit:785 */
4071 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4072 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4073 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4074 /* ./syntax//icode_generation.nit:787 */
4075 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4076 /* ./syntax//icode_generation.nit:788 */
4079 stack_frame_head
= fra
.me
.prev
;
4080 return fra
.me
.REG
[2];
4082 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
4083 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4085 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4086 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4088 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
4089 fra
.me
.has_broke
= 0;
4090 fra
.me
.REG_size
= 6;
4091 fra
.me
.nitni_local_ref_head
= NULL
;
4092 fra
.me
.REG
[0] = NIT_NULL
;
4093 fra
.me
.REG
[1] = NIT_NULL
;
4094 fra
.me
.REG
[2] = NIT_NULL
;
4095 fra
.me
.REG
[3] = NIT_NULL
;
4096 fra
.me
.REG
[4] = NIT_NULL
;
4097 fra
.me
.REG
[5] = NIT_NULL
;
4100 /* ./syntax//icode_generation.nit:796 */
4101 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4102 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4103 /* ./syntax//icode_generation.nit:799 */
4104 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4105 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4106 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4107 /* ./syntax//icode_generation.nit:800 */
4108 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4109 /* ./syntax//icode_generation.nit:801 */
4110 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4111 /* ./syntax//icode_generation.nit:802 */
4112 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4113 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4114 /* ./syntax//icode_generation.nit:803 */
4115 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4116 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4117 /* ./syntax//icode_generation.nit:806 */
4118 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4119 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4120 /* ./syntax//icode_generation.nit:807 */
4121 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4122 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4123 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4124 /* ./syntax//icode_generation.nit:809 */
4125 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4126 /* ./syntax//icode_generation.nit:810 */
4129 stack_frame_head
= fra
.me
.prev
;
4130 return fra
.me
.REG
[2];
4132 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
4133 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4135 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4136 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4138 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
4139 fra
.me
.has_broke
= 0;
4140 fra
.me
.REG_size
= 3;
4141 fra
.me
.nitni_local_ref_head
= NULL
;
4142 fra
.me
.REG
[0] = NIT_NULL
;
4143 fra
.me
.REG
[1] = NIT_NULL
;
4144 fra
.me
.REG
[2] = NIT_NULL
;
4147 /* ./syntax//icode_generation.nit:817 */
4148 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4149 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4150 /* ./syntax//icode_generation.nit:818 */
4151 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
4152 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4153 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]);
4156 stack_frame_head
= fra
.me
.prev
;
4157 return fra
.me
.REG
[0];
4159 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
4160 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4163 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4165 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
4166 fra
.me
.has_broke
= 0;
4167 fra
.me
.REG_size
= 7;
4168 fra
.me
.nitni_local_ref_head
= NULL
;
4169 fra
.me
.REG
[0] = NIT_NULL
;
4170 fra
.me
.REG
[1] = NIT_NULL
;
4171 fra
.me
.REG
[2] = NIT_NULL
;
4172 fra
.me
.REG
[3] = NIT_NULL
;
4173 fra
.me
.REG
[4] = NIT_NULL
;
4174 fra
.me
.REG
[5] = NIT_NULL
;
4175 fra
.me
.REG
[6] = NIT_NULL
;
4178 /* ./syntax//icode_generation.nit:826 */
4179 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4180 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4181 /* ./syntax//icode_generation.nit:829 */
4182 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4183 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4184 /* ./syntax//icode_generation.nit:832 */
4185 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4186 /* ./syntax//icode_generation.nit:833 */
4187 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4188 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4189 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4190 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]);
4191 /* ./syntax//icode_generation.nit:834 */
4192 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
4193 /* ./syntax//icode_generation.nit:835 */
4194 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4195 /* ./syntax//icode_generation.nit:836 */
4196 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4197 /* ./syntax//icode_generation.nit:839 */
4198 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4199 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4200 /* ./syntax//icode_generation.nit:840 */
4201 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4202 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4203 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4204 /* ./syntax//icode_generation.nit:843 */
4205 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4206 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4207 /* ./syntax//icode_generation.nit:844 */
4208 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4209 /* ./syntax//icode_generation.nit:846 */
4210 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4211 /* ./syntax//icode_generation.nit:848 */
4214 stack_frame_head
= fra
.me
.prev
;
4215 return fra
.me
.REG
[3];
4217 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
4218 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4221 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4222 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4224 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
4225 fra
.me
.has_broke
= 0;
4226 fra
.me
.REG_size
= 5;
4227 fra
.me
.nitni_local_ref_head
= NULL
;
4228 fra
.me
.REG
[0] = NIT_NULL
;
4229 fra
.me
.REG
[1] = NIT_NULL
;
4230 fra
.me
.REG
[2] = NIT_NULL
;
4231 fra
.me
.REG
[3] = NIT_NULL
;
4232 fra
.me
.REG
[4] = NIT_NULL
;
4235 /* ./syntax//icode_generation.nit:853 */
4236 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4237 /* ./syntax//icode_generation.nit:855 */
4238 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4239 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4240 /* ./syntax//icode_generation.nit:856 */
4241 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4242 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4243 if (UNTAG_Bool(REGB0
)) {
4245 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 856);
4247 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4248 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4249 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4250 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4251 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]);
4254 stack_frame_head
= fra
.me
.prev
;
4255 return fra
.me
.REG
[2];
4257 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4258 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4261 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4263 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4264 fra
.me
.has_broke
= 0;
4265 fra
.me
.REG_size
= 3;
4266 fra
.me
.nitni_local_ref_head
= NULL
;
4267 fra
.me
.REG
[0] = NIT_NULL
;
4268 fra
.me
.REG
[1] = NIT_NULL
;
4269 fra
.me
.REG
[2] = NIT_NULL
;
4272 /* ./syntax//icode_generation.nit:863 */
4273 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4274 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4275 /* ./syntax//icode_generation.nit:864 */
4276 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4277 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4278 /* ./syntax//icode_generation.nit:865 */
4281 stack_frame_head
= fra
.me
.prev
;
4282 return fra
.me
.REG
[2];
4284 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4285 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4288 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4290 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4291 fra
.me
.has_broke
= 0;
4292 fra
.me
.REG_size
= 3;
4293 fra
.me
.nitni_local_ref_head
= NULL
;
4294 fra
.me
.REG
[0] = NIT_NULL
;
4295 fra
.me
.REG
[1] = NIT_NULL
;
4296 fra
.me
.REG
[2] = NIT_NULL
;
4299 /* ./syntax//icode_generation.nit:872 */
4300 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4301 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4302 /* ./syntax//icode_generation.nit:873 */
4303 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4304 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4305 /* ./syntax//icode_generation.nit:874 */
4308 stack_frame_head
= fra
.me
.prev
;
4309 return fra
.me
.REG
[2];
4311 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4312 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4315 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4317 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4318 fra
.me
.has_broke
= 0;
4319 fra
.me
.REG_size
= 2;
4320 fra
.me
.nitni_local_ref_head
= NULL
;
4321 fra
.me
.REG
[0] = NIT_NULL
;
4322 fra
.me
.REG
[1] = NIT_NULL
;
4325 /* ./syntax//icode_generation.nit:881 */
4326 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4329 stack_frame_head
= fra
.me
.prev
;
4330 return fra
.me
.REG
[1];
4332 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4333 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4335 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4336 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4338 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4339 fra
.me
.has_broke
= 0;
4340 fra
.me
.REG_size
= 2;
4341 fra
.me
.nitni_local_ref_head
= NULL
;
4342 fra
.me
.REG
[0] = NIT_NULL
;
4343 fra
.me
.REG
[1] = NIT_NULL
;
4346 /* ./syntax//icode_generation.nit:888 */
4347 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4350 stack_frame_head
= fra
.me
.prev
;
4351 return fra
.me
.REG
[1];
4353 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4354 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4356 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4357 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4359 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4360 fra
.me
.has_broke
= 0;
4361 fra
.me
.REG_size
= 3;
4362 fra
.me
.nitni_local_ref_head
= NULL
;
4363 fra
.me
.REG
[0] = NIT_NULL
;
4364 fra
.me
.REG
[1] = NIT_NULL
;
4365 fra
.me
.REG
[2] = NIT_NULL
;
4368 /* ./syntax//icode_generation.nit:895 */
4369 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4370 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4371 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4372 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4373 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]);
4376 stack_frame_head
= fra
.me
.prev
;
4377 return fra
.me
.REG
[0];
4379 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4380 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4383 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4385 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4386 fra
.me
.has_broke
= 0;
4387 fra
.me
.REG_size
= 3;
4388 fra
.me
.nitni_local_ref_head
= NULL
;
4389 fra
.me
.REG
[0] = NIT_NULL
;
4390 fra
.me
.REG
[1] = NIT_NULL
;
4391 fra
.me
.REG
[2] = NIT_NULL
;
4394 /* ./syntax//icode_generation.nit:902 */
4395 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4396 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4397 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4398 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4399 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]);
4402 stack_frame_head
= fra
.me
.prev
;
4403 return fra
.me
.REG
[0];
4405 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4406 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4409 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4411 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4412 fra
.me
.has_broke
= 0;
4413 fra
.me
.REG_size
= 3;
4414 fra
.me
.nitni_local_ref_head
= NULL
;
4415 fra
.me
.REG
[0] = NIT_NULL
;
4416 fra
.me
.REG
[1] = NIT_NULL
;
4417 fra
.me
.REG
[2] = NIT_NULL
;
4420 /* ./syntax//icode_generation.nit:909 */
4421 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4422 fra
.me
.REG
[2] = CALL_parser___lexer___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4423 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4424 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4425 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]);
4428 stack_frame_head
= fra
.me
.prev
;
4429 return fra
.me
.REG
[0];
4431 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4432 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4435 static val_t once_value_1
; /* Once value */
4436 static val_t once_value_2
; /* Once value */
4437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4438 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4440 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4441 fra
.me
.has_broke
= 0;
4442 fra
.me
.REG_size
= 9;
4443 fra
.me
.nitni_local_ref_head
= NULL
;
4444 fra
.me
.REG
[0] = NIT_NULL
;
4445 fra
.me
.REG
[1] = NIT_NULL
;
4446 fra
.me
.REG
[2] = NIT_NULL
;
4447 fra
.me
.REG
[3] = NIT_NULL
;
4448 fra
.me
.REG
[4] = NIT_NULL
;
4449 fra
.me
.REG
[5] = NIT_NULL
;
4450 fra
.me
.REG
[6] = NIT_NULL
;
4451 fra
.me
.REG
[7] = NIT_NULL
;
4452 fra
.me
.REG
[8] = NIT_NULL
;
4455 /* ./syntax//icode_generation.nit:914 */
4456 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4457 /* ./syntax//icode_generation.nit:916 */
4458 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4459 /* ./syntax//icode_generation.nit:917 */
4460 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4461 /* ./syntax//icode_generation.nit:918 */
4462 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4463 /* ./syntax//icode_generation.nit:919 */
4464 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4465 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]);
4466 /* ./syntax//icode_generation.nit:920 */
4467 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4468 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4469 /* ./syntax//icode_generation.nit:921 */
4470 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4471 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4472 if (UNTAG_Bool(REGB0
)) {
4474 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 921);
4476 fra
.me
.REG
[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[4]);
4477 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4478 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4479 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]);
4480 /* ./syntax//icode_generation.nit:922 */
4481 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4482 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4483 if (UNTAG_Bool(REGB0
)) {
4484 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 922);
4486 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4487 fra
.me
.REG
[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[4]);
4488 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4489 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4490 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]);
4491 /* ./syntax//icode_generation.nit:923 */
4492 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4493 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4494 if (!once_value_1
) {
4495 if (!once_value_2
) {
4496 fra
.me
.REG
[8] = BOX_NativeString("with_native");
4497 REGB0
= TAG_Int(11);
4498 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4499 once_value_2
= fra
.me
.REG
[8];
4500 register_static_object(&once_value_2
);
4501 } else fra
.me
.REG
[8] = once_value_2
;
4502 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4503 fra
.me
.REG
[8] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4504 once_value_1
= fra
.me
.REG
[8];
4505 register_static_object(&once_value_1
);
4506 } else fra
.me
.REG
[8] = once_value_1
;
4507 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4508 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]);
4509 /* ./syntax//icode_generation.nit:924 */
4510 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4512 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4515 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[4]);
4516 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4517 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]);
4518 /* ./syntax//icode_generation.nit:925 */
4519 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4520 /* ./syntax//icode_generation.nit:926 */
4521 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4522 /* ./syntax//icode_generation.nit:927 */
4525 stack_frame_head
= fra
.me
.prev
;
4526 return fra
.me
.REG
[5];
4528 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4529 struct {struct stack_frame_t me
;} fra
;
4531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4532 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4534 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4535 fra
.me
.has_broke
= 0;
4536 fra
.me
.REG_size
= 0;
4537 fra
.me
.nitni_local_ref_head
= NULL
;
4538 /* ./syntax//icode_generation.nit:930 */
4539 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 930);
4540 stack_frame_head
= fra
.me
.prev
;
4543 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4544 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4552 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4553 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4555 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
;
4556 fra
.me
.has_broke
= 0;
4557 fra
.me
.REG_size
= 3;
4558 fra
.me
.nitni_local_ref_head
= NULL
;
4559 fra
.me
.REG
[0] = NIT_NULL
;
4560 fra
.me
.REG
[1] = NIT_NULL
;
4561 fra
.me
.REG
[2] = NIT_NULL
;
4563 /* ./syntax//icode_generation.nit:942 */
4565 /* ./syntax//icode_generation.nit:943 */
4566 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4567 /* ./syntax//icode_generation.nit:944 */
4568 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4569 /* ./syntax//icode_generation.nit:945 */
4571 /* ./syntax//icode_generation.nit:946 */
4573 /* ./../lib/standard//collection//array.nit:24 */
4574 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4575 if (UNTAG_Bool(REGB2
)) {
4577 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4579 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4580 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4581 if (UNTAG_Bool(REGB3
)) {
4583 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4585 /* ./../lib/standard//kernel.nit:232 */
4586 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4587 /* ./syntax//icode_generation.nit:946 */
4588 if (UNTAG_Bool(REGB2
)) {
4589 /* ./syntax//icode_generation.nit:947 */
4590 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4591 /* ./syntax//icode_generation.nit:948 */
4592 REGB3
= TAG_Char('\\');
4593 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4594 if (UNTAG_Bool(REGB4
)) {
4596 /* ./../lib/standard//kernel.nit:378 */
4597 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4598 /* ./syntax//icode_generation.nit:948 */
4601 if (UNTAG_Bool(REGB4
)) {
4602 /* ./syntax//icode_generation.nit:949 */
4604 /* ./../lib/standard//kernel.nit:235 */
4605 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4606 /* ./syntax//icode_generation.nit:949 */
4608 /* ./syntax//icode_generation.nit:950 */
4609 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4610 /* ./syntax//icode_generation.nit:951 */
4611 REGB3
= TAG_Char('{');
4612 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4613 if (UNTAG_Bool(REGB5
)) {
4615 /* ./../lib/standard//kernel.nit:378 */
4616 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4617 /* ./syntax//icode_generation.nit:951 */
4620 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4621 if (UNTAG_Bool(REGB5
)) {
4622 REGB5
= TAG_Char('}');
4623 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4624 if (UNTAG_Bool(REGB3
)) {
4626 /* ./../lib/standard//kernel.nit:378 */
4627 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4628 /* ./syntax//icode_generation.nit:951 */
4631 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4633 REGB5
= TAG_Bool(false);
4636 if (UNTAG_Bool(REGB3
)) {
4637 /* ./syntax//icode_generation.nit:952 */
4638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4640 /* ./syntax//icode_generation.nit:954 */
4643 /* ./syntax//icode_generation.nit:956 */
4645 /* ./../lib/standard//kernel.nit:235 */
4646 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4647 /* ./syntax//icode_generation.nit:956 */
4649 /* ./syntax//icode_generation.nit:957 */
4650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4651 /* ./syntax//icode_generation.nit:958 */
4653 /* ./../lib/standard//kernel.nit:235 */
4654 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4655 /* ./syntax//icode_generation.nit:958 */
4658 /* ./syntax//icode_generation.nit:946 */
4663 /* ./syntax//icode_generation.nit:960 */
4664 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4665 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4666 /* ./syntax//icode_generation.nit:961 */
4667 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4668 stack_frame_head
= fra
.me
.prev
;
4671 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4672 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4678 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4680 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
4681 fra
.me
.has_broke
= 0;
4682 fra
.me
.REG_size
= 2;
4683 fra
.me
.nitni_local_ref_head
= NULL
;
4684 fra
.me
.REG
[0] = NIT_NULL
;
4685 fra
.me
.REG
[1] = NIT_NULL
;
4687 /* ./syntax//icode_generation.nit:966 */
4688 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4689 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4691 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4692 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4693 /* ./../lib/standard//collection//array.nit:24 */
4694 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4695 if (UNTAG_Bool(REGB1
)) {
4697 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4699 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4700 /* ./syntax//icode_generation.nit:966 */
4702 /* ./../lib/standard//kernel.nit:237 */
4703 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4704 /* ./syntax//icode_generation.nit:966 */
4705 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4708 stack_frame_head
= fra
.me
.prev
;
4709 return fra
.me
.REG
[1];
4711 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4712 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4717 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4718 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4720 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4721 fra
.me
.has_broke
= 0;
4722 fra
.me
.REG_size
= 2;
4723 fra
.me
.nitni_local_ref_head
= NULL
;
4724 fra
.me
.REG
[0] = NIT_NULL
;
4725 fra
.me
.REG
[1] = NIT_NULL
;
4727 /* ./syntax//icode_generation.nit:969 */
4728 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4729 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4731 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4732 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4733 /* ./../lib/standard//collection//array.nit:24 */
4734 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4735 if (UNTAG_Bool(REGB1
)) {
4737 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4739 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4740 /* ./syntax//icode_generation.nit:969 */
4742 /* ./../lib/standard//kernel.nit:237 */
4743 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4744 /* ./syntax//icode_generation.nit:969 */
4745 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4748 stack_frame_head
= fra
.me
.prev
;
4749 return fra
.me
.REG
[1];
4751 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4752 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4757 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4758 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4760 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4761 fra
.me
.has_broke
= 0;
4762 fra
.me
.REG_size
= 2;
4763 fra
.me
.nitni_local_ref_head
= NULL
;
4764 fra
.me
.REG
[0] = NIT_NULL
;
4765 fra
.me
.REG
[1] = NIT_NULL
;
4767 /* ./syntax//icode_generation.nit:972 */
4768 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4769 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4771 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4772 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4773 /* ./../lib/standard//collection//array.nit:24 */
4774 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4775 if (UNTAG_Bool(REGB1
)) {
4777 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4779 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4780 /* ./syntax//icode_generation.nit:972 */
4782 /* ./../lib/standard//kernel.nit:237 */
4783 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4784 /* ./syntax//icode_generation.nit:972 */
4785 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4788 stack_frame_head
= fra
.me
.prev
;
4789 return fra
.me
.REG
[1];
4791 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4792 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4797 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4798 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4800 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4801 fra
.me
.has_broke
= 0;
4802 fra
.me
.REG_size
= 2;
4803 fra
.me
.nitni_local_ref_head
= NULL
;
4804 fra
.me
.REG
[0] = NIT_NULL
;
4805 fra
.me
.REG
[1] = NIT_NULL
;
4807 /* ./syntax//icode_generation.nit:975 */
4808 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4809 fra
.me
.REG
[1] = CALL_parser___lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4811 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4812 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4813 /* ./../lib/standard//collection//array.nit:24 */
4814 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4815 if (UNTAG_Bool(REGB1
)) {
4817 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4819 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4820 /* ./syntax//icode_generation.nit:975 */
4822 /* ./../lib/standard//kernel.nit:237 */
4823 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4824 /* ./syntax//icode_generation.nit:975 */
4825 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4828 stack_frame_head
= fra
.me
.prev
;
4829 return fra
.me
.REG
[1];
4831 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
4832 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4835 static val_t once_value_1
; /* Once value */
4836 static val_t once_value_2
; /* Once value */
4837 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4838 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4840 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4841 fra
.me
.has_broke
= 0;
4842 fra
.me
.REG_size
= 6;
4843 fra
.me
.nitni_local_ref_head
= NULL
;
4844 fra
.me
.REG
[0] = NIT_NULL
;
4845 fra
.me
.REG
[1] = NIT_NULL
;
4846 fra
.me
.REG
[2] = NIT_NULL
;
4847 fra
.me
.REG
[3] = NIT_NULL
;
4848 fra
.me
.REG
[4] = NIT_NULL
;
4849 fra
.me
.REG
[5] = NIT_NULL
;
4852 /* ./syntax//icode_generation.nit:981 */
4853 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4854 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4855 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4856 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
);
4857 /* ./syntax//icode_generation.nit:982 */
4858 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4859 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4860 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4861 if (!once_value_1
) {
4862 if (!once_value_2
) {
4863 fra
.me
.REG
[5] = BOX_NativeString("to_s");
4865 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4866 once_value_2
= fra
.me
.REG
[5];
4867 register_static_object(&once_value_2
);
4868 } else fra
.me
.REG
[5] = once_value_2
;
4869 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4870 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4871 once_value_1
= fra
.me
.REG
[5];
4872 register_static_object(&once_value_1
);
4873 } else fra
.me
.REG
[5] = once_value_1
;
4874 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4875 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]);
4876 /* ./syntax//icode_generation.nit:983 */
4877 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4878 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
));
4879 /* ./syntax//icode_generation.nit:990 */
4881 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4883 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4884 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4885 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]);
4888 stack_frame_head
= fra
.me
.prev
;
4889 return fra
.me
.REG
[0];
4891 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
){
4892 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4898 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4900 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4901 fra
.me
.has_broke
= 0;
4902 fra
.me
.REG_size
= 3;
4903 fra
.me
.nitni_local_ref_head
= NULL
;
4904 fra
.me
.REG
[0] = NIT_NULL
;
4905 fra
.me
.REG
[1] = NIT_NULL
;
4906 fra
.me
.REG
[2] = NIT_NULL
;
4907 fra
.me
.closure_ctx
= closctx_param
;
4908 fra
.me
.closure_funs
= CREG
;
4910 CREG
[0] = clos_fun0
;
4911 /* ./syntax//icode_generation.nit:984 */
4912 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4913 /* ./syntax//icode_generation.nit:985 */
4914 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4915 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4916 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
4917 if (UNTAG_Bool(REGB0
)) {
4919 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4922 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4923 if (UNTAG_Bool(REGB0
)) {
4924 /* ./syntax//icode_generation.nit:986 */
4926 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4928 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
4929 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4930 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4931 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4933 /* ./syntax//icode_generation.nit:988 */
4934 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
4935 stack_frame_head
= fra
.me
.prev
;
4938 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
4939 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4941 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4942 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4944 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
4945 fra
.me
.has_broke
= 0;
4946 fra
.me
.REG_size
= 2;
4947 fra
.me
.nitni_local_ref_head
= NULL
;
4948 fra
.me
.REG
[0] = NIT_NULL
;
4949 fra
.me
.REG
[1] = NIT_NULL
;
4952 /* ./syntax//icode_generation.nit:997 */
4953 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4956 stack_frame_head
= fra
.me
.prev
;
4957 return fra
.me
.REG
[1];
4959 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
4960 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4963 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4964 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4966 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4967 fra
.me
.has_broke
= 0;
4968 fra
.me
.REG_size
= 4;
4969 fra
.me
.nitni_local_ref_head
= NULL
;
4970 fra
.me
.REG
[0] = NIT_NULL
;
4971 fra
.me
.REG
[1] = NIT_NULL
;
4972 fra
.me
.REG
[2] = NIT_NULL
;
4973 fra
.me
.REG
[3] = NIT_NULL
;
4976 /* ./syntax//icode_generation.nit:1004 */
4977 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4978 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4979 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4980 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
);
4981 /* ./syntax//icode_generation.nit:1005 */
4982 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4983 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
));
4984 /* ./syntax//icode_generation.nit:1009 */
4987 stack_frame_head
= fra
.me
.prev
;
4988 return fra
.me
.REG
[2];
4990 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
){
4991 struct {struct stack_frame_t me
;} fra
;
4994 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4995 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4997 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4998 fra
.me
.has_broke
= 0;
4999 fra
.me
.REG_size
= 1;
5000 fra
.me
.nitni_local_ref_head
= NULL
;
5001 fra
.me
.REG
[0] = NIT_NULL
;
5002 fra
.me
.closure_ctx
= closctx_param
;
5003 fra
.me
.closure_funs
= CREG
;
5005 CREG
[0] = clos_fun0
;
5006 /* ./syntax//icode_generation.nit:1006 */
5007 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5008 /* ./syntax//icode_generation.nit:1007 */
5009 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[0]);
5010 stack_frame_head
= fra
.me
.prev
;
5013 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
5014 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5017 static val_t once_value_1
; /* Once value */
5018 static val_t once_value_2
; /* Once value */
5019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5020 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5022 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
5023 fra
.me
.has_broke
= 0;
5024 fra
.me
.REG_size
= 7;
5025 fra
.me
.nitni_local_ref_head
= NULL
;
5026 fra
.me
.REG
[0] = NIT_NULL
;
5027 fra
.me
.REG
[1] = NIT_NULL
;
5028 fra
.me
.REG
[2] = NIT_NULL
;
5029 fra
.me
.REG
[3] = NIT_NULL
;
5030 fra
.me
.REG
[4] = NIT_NULL
;
5031 fra
.me
.REG
[5] = NIT_NULL
;
5032 fra
.me
.REG
[6] = NIT_NULL
;
5035 /* ./syntax//icode_generation.nit:1016 */
5036 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5037 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5038 /* ./syntax//icode_generation.nit:1017 */
5039 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5040 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5041 /* ./syntax//icode_generation.nit:1018 */
5042 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5043 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5044 if (!once_value_1
) {
5045 if (!once_value_2
) {
5046 fra
.me
.REG
[6] = BOX_NativeString("init");
5048 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5049 once_value_2
= fra
.me
.REG
[6];
5050 register_static_object(&once_value_2
);
5051 } else fra
.me
.REG
[6] = once_value_2
;
5052 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5053 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5054 once_value_1
= fra
.me
.REG
[6];
5055 register_static_object(&once_value_1
);
5056 } else fra
.me
.REG
[6] = once_value_1
;
5057 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5058 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]);
5059 /* ./syntax//icode_generation.nit:1019 */
5060 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5062 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5064 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5065 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5066 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5067 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]);
5070 stack_frame_head
= fra
.me
.prev
;
5071 return fra
.me
.REG
[0];
5073 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
5074 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5077 static val_t once_value_1
; /* Once value */
5078 static val_t once_value_2
; /* Once value */
5079 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5080 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5082 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
5083 fra
.me
.has_broke
= 0;
5084 fra
.me
.REG_size
= 7;
5085 fra
.me
.nitni_local_ref_head
= NULL
;
5086 fra
.me
.REG
[0] = NIT_NULL
;
5087 fra
.me
.REG
[1] = NIT_NULL
;
5088 fra
.me
.REG
[2] = NIT_NULL
;
5089 fra
.me
.REG
[3] = NIT_NULL
;
5090 fra
.me
.REG
[4] = NIT_NULL
;
5091 fra
.me
.REG
[5] = NIT_NULL
;
5092 fra
.me
.REG
[6] = NIT_NULL
;
5095 /* ./syntax//icode_generation.nit:1026 */
5096 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5097 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5098 /* ./syntax//icode_generation.nit:1027 */
5099 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5100 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5101 /* ./syntax//icode_generation.nit:1028 */
5102 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5103 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5104 if (!once_value_1
) {
5105 if (!once_value_2
) {
5106 fra
.me
.REG
[6] = BOX_NativeString("without_last");
5107 REGB0
= TAG_Int(12);
5108 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5109 once_value_2
= fra
.me
.REG
[6];
5110 register_static_object(&once_value_2
);
5111 } else fra
.me
.REG
[6] = once_value_2
;
5112 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5113 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5114 once_value_1
= fra
.me
.REG
[6];
5115 register_static_object(&once_value_1
);
5116 } else fra
.me
.REG
[6] = once_value_1
;
5117 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5118 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]);
5119 /* ./syntax//icode_generation.nit:1029 */
5120 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5122 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5125 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5126 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5127 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]);
5130 stack_frame_head
= fra
.me
.prev
;
5131 return fra
.me
.REG
[0];
5133 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
5134 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5140 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5141 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5143 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5144 fra
.me
.has_broke
= 0;
5145 fra
.me
.REG_size
= 6;
5146 fra
.me
.nitni_local_ref_head
= NULL
;
5147 fra
.me
.REG
[0] = NIT_NULL
;
5148 fra
.me
.REG
[1] = NIT_NULL
;
5149 fra
.me
.REG
[2] = NIT_NULL
;
5150 fra
.me
.REG
[3] = NIT_NULL
;
5151 fra
.me
.REG
[4] = NIT_NULL
;
5152 fra
.me
.REG
[5] = NIT_NULL
;
5155 /* ./syntax//icode_generation.nit:1036 */
5156 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5157 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5158 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5160 /* ./../lib/standard//kernel.nit:237 */
5161 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
5162 /* ./syntax//icode_generation.nit:1037 */
5163 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5164 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5165 if (UNTAG_Bool(REGB0
)) {
5167 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5168 if (UNTAG_Bool(REGB2
)) {
5169 REGB2
= TAG_Bool(false);
5172 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5176 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5177 if (UNTAG_Bool(REGB0
)) {
5178 /* ./syntax//icode_generation.nit:1038 */
5179 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5180 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5181 if (UNTAG_Bool(REGB0
)) {
5182 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1038);
5184 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5185 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5186 if (UNTAG_Bool(REGB0
)) {
5187 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1038);
5189 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5192 /* ./syntax//icode_generation.nit:1040 */
5194 /* ./../lib/standard//kernel.nit:235 */
5195 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
5196 /* ./syntax//icode_generation.nit:1040 */
5197 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5198 /* ./syntax//icode_generation.nit:1041 */
5199 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5200 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5202 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5204 /* ./syntax//icode_generation.nit:1042 */
5205 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5206 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5207 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
5208 if (UNTAG_Bool(REGB2
)) {
5210 /* ./../lib/standard//kernel.nit:227 */
5211 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
5212 /* ./syntax//icode_generation.nit:1042 */
5215 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5216 if (UNTAG_Bool(REGB2
)) {
5217 /* ./syntax//icode_generation.nit:1043 */
5219 /* ./../lib/standard//kernel.nit:352 */
5221 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5222 if (UNTAG_Bool(REGB0
)) {
5224 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5226 /* ./../lib/standard//kernel.nit:232 */
5227 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
5228 /* ./../lib/standard//kernel.nit:352 */
5229 if (UNTAG_Bool(REGB0
)) {
5230 /* ./syntax//icode_generation.nit:1043 */
5232 /* ./syntax//icode_generation.nit:1044 */
5233 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5234 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5236 /* ./../lib/standard//kernel.nit:235 */
5237 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
5238 /* ./syntax//icode_generation.nit:1044 */
5239 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
5240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5241 /* ./../lib/standard//kernel.nit:354 */
5243 /* ./../lib/standard//kernel.nit:235 */
5244 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
5245 /* ./../lib/standard//kernel.nit:354 */
5248 /* ./../lib/standard//kernel.nit:352 */
5254 /* ./syntax//icode_generation.nit:1047 */
5255 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5256 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
));
5258 /* ./syntax//icode_generation.nit:1051 */
5259 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5260 /* ./syntax//icode_generation.nit:1052 */
5261 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5262 if (UNTAG_Bool(REGB2
)) {
5264 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5265 if (UNTAG_Bool(REGB1
)) {
5266 REGB1
= TAG_Bool(false);
5269 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5273 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5274 if (UNTAG_Bool(REGB2
)) {
5275 /* ./syntax//icode_generation.nit:1053 */
5276 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5277 if (UNTAG_Bool(REGB2
)) {
5278 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5280 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5281 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5282 if (UNTAG_Bool(REGB2
)) {
5283 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5285 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5286 /* ./syntax//icode_generation.nit:1054 */
5287 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5288 if (UNTAG_Bool(REGB2
)) {
5290 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5291 if (UNTAG_Bool(REGB1
)) {
5292 REGB1
= TAG_Bool(false);
5295 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5299 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5300 if (UNTAG_Bool(REGB2
)) {
5301 /* ./syntax//icode_generation.nit:1055 */
5302 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5303 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]);
5306 /* ./syntax//icode_generation.nit:1057 */
5307 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5308 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5309 /* ./syntax//icode_generation.nit:1058 */
5310 fra
.me
.REG
[4] = NIT_NULL
;
5314 /* ./syntax//icode_generation.nit:1061 */
5315 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5316 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5317 /* ./syntax//icode_generation.nit:1062 */
5318 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5319 if (UNTAG_Bool(REGB2
)) {
5320 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5322 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5323 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5324 if (UNTAG_Bool(REGB2
)) {
5325 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5327 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5328 /* ./syntax//icode_generation.nit:1063 */
5329 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5330 if (UNTAG_Bool(REGB2
)) {
5332 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5333 if (UNTAG_Bool(REGB1
)) {
5334 REGB1
= TAG_Bool(false);
5337 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5341 if (UNTAG_Bool(REGB2
)) {
5342 /* ./syntax//icode_generation.nit:1064 */
5343 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5344 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5345 /* ./syntax//icode_generation.nit:1065 */
5346 fra
.me
.REG
[4] = NIT_NULL
;
5349 /* ./syntax//icode_generation.nit:1067 */
5350 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5351 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]);
5352 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5357 stack_frame_head
= fra
.me
.prev
;
5358 return fra
.me
.REG
[4];
5360 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
){
5361 struct {struct stack_frame_t me
;} fra
;
5364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5365 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5367 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5368 fra
.me
.has_broke
= 0;
5369 fra
.me
.REG_size
= 1;
5370 fra
.me
.nitni_local_ref_head
= NULL
;
5371 fra
.me
.REG
[0] = NIT_NULL
;
5372 fra
.me
.closure_ctx
= closctx_param
;
5373 fra
.me
.closure_funs
= CREG
;
5375 CREG
[0] = clos_fun0
;
5376 /* ./syntax//icode_generation.nit:1048 */
5377 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5378 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5379 stack_frame_head
= fra
.me
.prev
;
5382 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5383 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5387 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5389 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5390 fra
.me
.has_broke
= 0;
5391 fra
.me
.REG_size
= 4;
5392 fra
.me
.nitni_local_ref_head
= NULL
;
5393 fra
.me
.REG
[0] = NIT_NULL
;
5394 fra
.me
.REG
[1] = NIT_NULL
;
5395 fra
.me
.REG
[2] = NIT_NULL
;
5396 fra
.me
.REG
[3] = NIT_NULL
;
5399 /* ./syntax//icode_generation.nit:1076 */
5400 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5401 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5402 /* ./syntax//icode_generation.nit:1077 */
5403 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5404 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5405 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5406 if (UNTAG_Bool(REGB0
)) {
5407 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5409 /* ./syntax//icode_generation.nit:1078 */
5410 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5411 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]);
5414 stack_frame_head
= fra
.me
.prev
;
5415 return fra
.me
.REG
[2];
5417 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5418 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5422 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5424 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5425 fra
.me
.has_broke
= 0;
5426 fra
.me
.REG_size
= 4;
5427 fra
.me
.nitni_local_ref_head
= NULL
;
5428 fra
.me
.REG
[0] = NIT_NULL
;
5429 fra
.me
.REG
[1] = NIT_NULL
;
5430 fra
.me
.REG
[2] = NIT_NULL
;
5431 fra
.me
.REG
[3] = NIT_NULL
;
5434 /* ./syntax//icode_generation.nit:1085 */
5435 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5436 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5437 /* ./syntax//icode_generation.nit:1086 */
5438 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5439 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5440 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5441 if (UNTAG_Bool(REGB0
)) {
5442 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5444 /* ./syntax//icode_generation.nit:1087 */
5445 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5446 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5447 /* ./syntax//icode_generation.nit:1088 */
5448 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5449 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5450 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5451 /* ./syntax//icode_generation.nit:1089 */
5452 fra
.me
.REG
[3] = NIT_NULL
;
5455 stack_frame_head
= fra
.me
.prev
;
5456 return fra
.me
.REG
[3];
5458 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5459 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5463 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5465 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5466 fra
.me
.has_broke
= 0;
5467 fra
.me
.REG_size
= 7;
5468 fra
.me
.nitni_local_ref_head
= NULL
;
5469 fra
.me
.REG
[0] = NIT_NULL
;
5470 fra
.me
.REG
[1] = NIT_NULL
;
5471 fra
.me
.REG
[2] = NIT_NULL
;
5472 fra
.me
.REG
[3] = NIT_NULL
;
5473 fra
.me
.REG
[4] = NIT_NULL
;
5474 fra
.me
.REG
[5] = NIT_NULL
;
5475 fra
.me
.REG
[6] = NIT_NULL
;
5478 /* ./syntax//icode_generation.nit:1095 */
5479 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5480 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5481 /* ./syntax//icode_generation.nit:1096 */
5482 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5483 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5484 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5485 if (UNTAG_Bool(REGB0
)) {
5486 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5488 /* ./syntax//icode_generation.nit:1097 */
5489 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5490 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5491 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5492 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]);
5493 /* ./syntax//icode_generation.nit:1098 */
5494 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5495 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5496 /* ./syntax//icode_generation.nit:1099 */
5497 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5499 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5502 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5503 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5504 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]);
5505 /* ./syntax//icode_generation.nit:1100 */
5506 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5507 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5508 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5509 /* ./syntax//icode_generation.nit:1101 */
5510 fra
.me
.REG
[5] = NIT_NULL
;
5513 stack_frame_head
= fra
.me
.prev
;
5514 return fra
.me
.REG
[5];
5516 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5517 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5521 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5523 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5524 fra
.me
.has_broke
= 0;
5525 fra
.me
.REG_size
= 4;
5526 fra
.me
.nitni_local_ref_head
= NULL
;
5527 fra
.me
.REG
[0] = NIT_NULL
;
5528 fra
.me
.REG
[1] = NIT_NULL
;
5529 fra
.me
.REG
[2] = NIT_NULL
;
5530 fra
.me
.REG
[3] = NIT_NULL
;
5533 /* ./syntax//icode_generation.nit:1108 */
5534 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5535 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5536 /* ./syntax//icode_generation.nit:1109 */
5537 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5538 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5539 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5540 if (UNTAG_Bool(REGB0
)) {
5541 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5543 /* ./syntax//icode_generation.nit:1110 */
5544 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5545 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5546 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5547 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]);
5550 stack_frame_head
= fra
.me
.prev
;
5551 return fra
.me
.REG
[0];
5553 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5554 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5567 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5568 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5570 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5571 fra
.me
.has_broke
= 0;
5572 fra
.me
.REG_size
= 7;
5573 fra
.me
.nitni_local_ref_head
= NULL
;
5574 fra
.me
.REG
[0] = NIT_NULL
;
5575 fra
.me
.REG
[1] = NIT_NULL
;
5576 fra
.me
.REG
[2] = NIT_NULL
;
5577 fra
.me
.REG
[3] = NIT_NULL
;
5578 fra
.me
.REG
[4] = NIT_NULL
;
5579 fra
.me
.REG
[5] = NIT_NULL
;
5580 fra
.me
.REG
[6] = NIT_NULL
;
5585 /* ./syntax//icode_generation.nit:1118 */
5586 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5587 /* ./syntax//icode_generation.nit:1119 */
5588 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5589 /* ./syntax//icode_generation.nit:1120 */
5590 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5591 /* ./../lib/standard//collection//array.nit:24 */
5592 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5593 if (UNTAG_Bool(REGB2
)) {
5595 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5597 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5598 /* ./syntax//icode_generation.nit:1122 */
5600 /* ./syntax//icode_generation.nit:1123 */
5602 /* ./../lib/standard//kernel.nit:347 */
5604 /* ./../lib/standard//kernel.nit:352 */
5606 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5607 if (UNTAG_Bool(REGB6
)) {
5609 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5611 /* ./../lib/standard//kernel.nit:232 */
5612 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5613 /* ./../lib/standard//kernel.nit:352 */
5614 if (UNTAG_Bool(REGB6
)) {
5615 /* ./syntax//icode_generation.nit:1123 */
5617 /* ./syntax//icode_generation.nit:1125 */
5618 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5619 /* ./syntax//icode_generation.nit:1126 */
5620 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5621 if (UNTAG_Bool(REGB7
)) {
5623 /* ./../lib/standard//kernel.nit:227 */
5624 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5625 /* ./syntax//icode_generation.nit:1126 */
5628 if (UNTAG_Bool(REGB7
)) {
5629 /* ./syntax//icode_generation.nit:1127 */
5630 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5631 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5632 /* ./../lib/standard//kernel.nit:237 */
5633 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5634 /* ./syntax//icode_generation.nit:1127 */
5635 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
);
5636 /* ./syntax//icode_generation.nit:1128 */
5638 /* ./../lib/standard//kernel.nit:237 */
5639 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5640 /* ./../lib/standard//kernel.nit:341 */
5642 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5643 if (UNTAG_Bool(REGB8
)) {
5645 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5647 /* ./../lib/standard//kernel.nit:231 */
5648 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5649 /* ./../lib/standard//kernel.nit:341 */
5650 if (UNTAG_Bool(REGB8
)) {
5651 /* ./../lib/standard//collection//array.nit:278 */
5652 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5654 /* ./../lib/standard//collection//array.nit:280 */
5656 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5657 if (UNTAG_Bool(REGB10
)) {
5659 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5661 /* ./../lib/standard//kernel.nit:233 */
5662 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5663 /* ./../lib/standard//collection//array.nit:280 */
5664 if (UNTAG_Bool(REGB9
)) {
5665 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5666 if (UNTAG_Bool(REGB9
)) {
5668 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5670 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5671 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5672 if (UNTAG_Bool(REGB10
)) {
5674 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5676 /* ./../lib/standard//kernel.nit:232 */
5677 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5679 /* ./../lib/standard//collection//array.nit:280 */
5680 REGB10
= TAG_Bool(false);
5683 if (UNTAG_Bool(REGB9
)) {
5685 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
5687 /* ./../lib/standard//collection//array.nit:281 */
5688 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5689 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5690 if (UNTAG_Bool(REGB9
)) {
5691 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5693 /* ./../lib/standard//collection//array.nit:718 */
5694 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5695 /* ./../lib/standard//collection//array.nit:281 */
5698 /* ./syntax//icode_generation.nit:1130 */
5699 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5700 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]);
5701 /* ./syntax//icode_generation.nit:1131 */
5703 /* ./../lib/standard//kernel.nit:235 */
5704 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5705 /* ./syntax//icode_generation.nit:1131 */
5707 /* ./../lib/standard//kernel.nit:343 */
5709 /* ./../lib/standard//kernel.nit:235 */
5710 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5711 /* ./../lib/standard//kernel.nit:343 */
5714 /* ./../lib/standard//kernel.nit:341 */
5719 /* ./syntax//icode_generation.nit:1133 */
5720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5722 /* ./../lib/standard//collection//array.nit:278 */
5723 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5725 /* ./../lib/standard//collection//array.nit:280 */
5727 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5728 if (UNTAG_Bool(REGB8
)) {
5730 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5732 /* ./../lib/standard//kernel.nit:233 */
5733 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5734 /* ./../lib/standard//collection//array.nit:280 */
5735 if (UNTAG_Bool(REGB6
)) {
5736 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5737 if (UNTAG_Bool(REGB6
)) {
5739 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5741 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5742 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5743 if (UNTAG_Bool(REGB8
)) {
5745 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5747 /* ./../lib/standard//kernel.nit:232 */
5748 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5750 /* ./../lib/standard//collection//array.nit:280 */
5751 REGB8
= TAG_Bool(false);
5754 if (UNTAG_Bool(REGB6
)) {
5756 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
5758 /* ./../lib/standard//collection//array.nit:281 */
5759 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5760 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5761 if (UNTAG_Bool(REGB6
)) {
5762 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5764 /* ./../lib/standard//collection//array.nit:718 */
5765 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5766 /* ./../lib/standard//collection//array.nit:281 */
5769 /* ./syntax//icode_generation.nit:1135 */
5770 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5771 /* ./syntax//icode_generation.nit:1136 */
5772 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5774 /* ./syntax//icode_generation.nit:1137 */
5776 /* ./../lib/standard//kernel.nit:235 */
5777 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5778 /* ./syntax//icode_generation.nit:1137 */
5781 /* ./../lib/standard//kernel.nit:354 */
5783 /* ./../lib/standard//kernel.nit:235 */
5784 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5785 /* ./../lib/standard//kernel.nit:354 */
5788 /* ./../lib/standard//kernel.nit:352 */
5793 stack_frame_head
= fra
.me
.prev
;
5796 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5797 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5804 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5805 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5807 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
5808 fra
.me
.has_broke
= 0;
5809 fra
.me
.REG_size
= 16;
5810 fra
.me
.nitni_local_ref_head
= NULL
;
5811 fra
.me
.REG
[0] = NIT_NULL
;
5812 fra
.me
.REG
[1] = NIT_NULL
;
5813 fra
.me
.REG
[2] = NIT_NULL
;
5814 fra
.me
.REG
[3] = NIT_NULL
;
5815 fra
.me
.REG
[4] = NIT_NULL
;
5816 fra
.me
.REG
[5] = NIT_NULL
;
5817 fra
.me
.REG
[6] = NIT_NULL
;
5818 fra
.me
.REG
[7] = NIT_NULL
;
5819 fra
.me
.REG
[8] = NIT_NULL
;
5820 fra
.me
.REG
[9] = NIT_NULL
;
5821 fra
.me
.REG
[10] = NIT_NULL
;
5822 fra
.me
.REG
[11] = NIT_NULL
;
5823 fra
.me
.REG
[12] = NIT_NULL
;
5824 fra
.me
.REG
[13] = NIT_NULL
;
5825 fra
.me
.REG
[14] = NIT_NULL
;
5826 fra
.me
.REG
[15] = NIT_NULL
;
5829 /* ./syntax//icode_generation.nit:1144 */
5830 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5831 /* ./syntax//icode_generation.nit:1146 */
5832 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5833 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5834 /* ./syntax//icode_generation.nit:1147 */
5835 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
5836 /* ./syntax//icode_generation.nit:1148 */
5837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5838 /* ./syntax//icode_generation.nit:1149 */
5839 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5840 /* ./syntax//icode_generation.nit:1150 */
5841 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5842 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*/;
5843 if (UNTAG_Bool(REGB0
)) {
5845 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1150);
5847 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]);
5848 /* ./syntax//icode_generation.nit:1151 */
5849 fra
.me
.REG
[5] = NIT_NULL
;
5850 /* ./syntax//icode_generation.nit:1155 */
5851 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5852 /* ./syntax//icode_generation.nit:1156 */
5853 fra
.me
.REG
[6] = NIT_NULL
;
5854 /* ./syntax//icode_generation.nit:1157 */
5855 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5856 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5857 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5858 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5859 if (UNTAG_Bool(REGB0
)) {
5860 /* ./syntax//icode_generation.nit:1158 */
5861 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5862 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5863 /* ./syntax//icode_generation.nit:1159 */
5864 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5865 if (UNTAG_Bool(REGB0
)) {
5867 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5868 if (UNTAG_Bool(REGB1
)) {
5869 REGB1
= TAG_Bool(false);
5872 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
5876 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5877 if (UNTAG_Bool(REGB0
)) {
5878 /* ./syntax//icode_generation.nit:1160 */
5879 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5880 fra
.me
.REG
[5] = fra
.me
.REG
[7];
5882 /* ./syntax//icode_generation.nit:1162 */
5883 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
5884 /* ./syntax//icode_generation.nit:1163 */
5885 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5886 /* ./syntax//icode_generation.nit:1164 */
5887 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5888 /* ./syntax//icode_generation.nit:1165 */
5889 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
5890 fra
.me
.REG
[6] = fra
.me
.REG
[8];
5891 /* ./syntax//icode_generation.nit:1166 */
5893 /* ./syntax//icode_generation.nit:1167 */
5894 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5895 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5896 if (UNTAG_Bool(REGB0
)) {
5898 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5899 if (UNTAG_Bool(REGB1
)) {
5900 REGB1
= TAG_Bool(false);
5903 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5907 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5908 if (UNTAG_Bool(REGB0
)) {
5909 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5910 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5911 if (UNTAG_Bool(REGB0
)) {
5912 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1167);
5914 /* ./../lib/standard//collection//array.nit:24 */
5915 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
5916 if (UNTAG_Bool(REGB0
)) {
5918 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5920 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
5922 /* ./syntax//icode_generation.nit:1168 */
5923 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5924 /* ./syntax//icode_generation.nit:1169 */
5925 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5926 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5927 /* ./../lib/standard//collection//array.nit:269 */
5929 /* ./../lib/standard//collection//array.nit:270 */
5930 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5931 if (UNTAG_Bool(REGB1
)) {
5933 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5935 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5936 /* ./../lib/standard//collection//array.nit:271 */
5937 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
5938 /* ./../lib/standard//collection//array.nit:272 */
5940 /* ./../lib/standard//collection//array.nit:24 */
5941 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5942 if (UNTAG_Bool(REGB1
)) {
5944 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5946 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5947 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5948 if (UNTAG_Bool(REGB2
)) {
5950 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5952 /* ./../lib/standard//kernel.nit:232 */
5953 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5954 /* ./../lib/standard//collection//array.nit:272 */
5955 if (UNTAG_Bool(REGB1
)) {
5956 /* ./../lib/standard//collection//array.nit:273 */
5957 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
5958 if (UNTAG_Bool(REGB1
)) {
5959 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5961 /* ./../lib/standard//collection//array.nit:718 */
5962 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
5963 /* ./syntax//icode_generation.nit:1170 */
5964 REGB1
= TAG_Bool(false);
5965 /* ./syntax//icode_generation.nit:1171 */
5966 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
5967 /* ./syntax//icode_generation.nit:1172 */
5968 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5969 if (UNTAG_Bool(REGB2
)) {
5971 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5972 if (UNTAG_Bool(REGB3
)) {
5973 REGB3
= TAG_Bool(false);
5976 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5980 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5981 if (UNTAG_Bool(REGB2
)) {
5982 /* ./syntax//icode_generation.nit:1173 */
5983 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5984 if (UNTAG_Bool(REGB2
)) {
5985 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1173);
5987 /* ./../lib/standard//collection//array.nit:266 */
5988 fra
.me
.REG
[12] = fra
.me
.REG
[8];
5989 /* ./../lib/standard//collection//array.nit:269 */
5991 /* ./../lib/standard//collection//array.nit:270 */
5992 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5993 if (UNTAG_Bool(REGB3
)) {
5995 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5997 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5998 /* ./../lib/standard//collection//array.nit:271 */
5999 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
6000 /* ./../lib/standard//collection//array.nit:272 */
6002 /* ./../lib/standard//collection//array.nit:24 */
6003 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
6004 if (UNTAG_Bool(REGB3
)) {
6006 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6008 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6009 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
6010 if (UNTAG_Bool(REGB4
)) {
6012 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6014 /* ./../lib/standard//kernel.nit:232 */
6015 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
6016 /* ./../lib/standard//collection//array.nit:272 */
6017 if (UNTAG_Bool(REGB3
)) {
6018 /* ./../lib/standard//collection//array.nit:273 */
6019 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
6020 if (UNTAG_Bool(REGB3
)) {
6021 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6023 /* ./../lib/standard//collection//array.nit:718 */
6024 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
6025 /* ./syntax//icode_generation.nit:1174 */
6026 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6027 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
6028 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
6029 if (UNTAG_Bool(REGB3
)) {
6031 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
6034 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
6035 if (UNTAG_Bool(REGB3
)) {
6038 /* ./syntax//icode_generation.nit:1175 */
6039 REGB3
= TAG_Bool(false);
6040 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6041 if (UNTAG_Bool(REGB4
)) {
6043 /* ./../lib/standard//kernel.nit:195 */
6044 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6045 /* ./syntax//icode_generation.nit:1175 */
6048 if (UNTAG_Bool(REGB4
)) {
6050 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1175);
6052 /* ./syntax//icode_generation.nit:1176 */
6053 REGB4
= TAG_Bool(true);
6055 /* ./syntax//icode_generation.nit:1177 */
6056 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6057 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6058 if (UNTAG_Bool(REGB4
)) {
6059 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1177);
6061 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
6062 /* ./syntax//icode_generation.nit:1178 */
6063 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6064 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6065 if (UNTAG_Bool(REGB4
)) {
6066 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1178);
6068 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
6069 /* ./syntax//icode_generation.nit:1179 */
6070 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
6071 /* ./syntax//icode_generation.nit:1180 */
6072 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6073 if (UNTAG_Bool(REGB4
)) {
6074 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1180);
6076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
6078 /* ./../lib/standard//collection//array.nit:274 */
6080 /* ./../lib/standard//kernel.nit:235 */
6081 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
6082 /* ./../lib/standard//collection//array.nit:274 */
6085 /* ./../lib/standard//collection//array.nit:272 */
6091 /* ./syntax//icode_generation.nit:1183 */
6092 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6093 if (UNTAG_Bool(REGB1
)) {
6094 /* ./syntax//icode_generation.nit:1184 */
6095 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6096 if (UNTAG_Bool(REGB1
)) {
6097 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1184);
6099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6101 /* ./../lib/standard//collection//array.nit:274 */
6103 /* ./../lib/standard//kernel.nit:235 */
6104 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6105 /* ./../lib/standard//collection//array.nit:274 */
6108 /* ./../lib/standard//collection//array.nit:272 */
6114 /* ./syntax//icode_generation.nit:1189 */
6115 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]);
6116 /* ./syntax//icode_generation.nit:1192 */
6117 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6118 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6119 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6120 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6121 if (UNTAG_Bool(REGB0
)) {
6122 /* ./syntax//icode_generation.nit:1193 */
6123 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6124 if (UNTAG_Bool(REGB0
)) {
6126 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6127 if (UNTAG_Bool(REGB1
)) {
6128 REGB1
= TAG_Bool(false);
6131 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6135 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6136 if (UNTAG_Bool(REGB0
)) {
6137 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6138 if (UNTAG_Bool(REGB0
)) {
6140 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6141 if (UNTAG_Bool(REGB1
)) {
6142 REGB1
= TAG_Bool(false);
6145 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6149 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6151 REGB1
= TAG_Bool(false);
6154 if (UNTAG_Bool(REGB0
)) {
6155 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
6157 /* ./syntax//icode_generation.nit:1194 */
6158 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6160 /* ./syntax//icode_generation.nit:1196 */
6161 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6163 /* ./syntax//icode_generation.nit:1199 */
6164 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6165 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6166 if (UNTAG_Bool(REGB0
)) {
6167 /* ./syntax//icode_generation.nit:1200 */
6168 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6170 /* ./syntax//icode_generation.nit:1202 */
6173 stack_frame_head
= fra
.me
.prev
;
6174 return fra
.me
.REG
[5];
6176 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
6177 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6180 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6181 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6183 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
6184 fra
.me
.has_broke
= 0;
6185 fra
.me
.REG_size
= 8;
6186 fra
.me
.nitni_local_ref_head
= NULL
;
6187 fra
.me
.REG
[0] = NIT_NULL
;
6188 fra
.me
.REG
[1] = NIT_NULL
;
6189 fra
.me
.REG
[2] = NIT_NULL
;
6190 fra
.me
.REG
[3] = NIT_NULL
;
6191 fra
.me
.REG
[4] = NIT_NULL
;
6192 fra
.me
.REG
[5] = NIT_NULL
;
6193 fra
.me
.REG
[6] = NIT_NULL
;
6194 fra
.me
.REG
[7] = NIT_NULL
;
6197 /* ./syntax//icode_generation.nit:1207 */
6198 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6199 /* ./syntax//icode_generation.nit:1209 */
6200 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6201 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6202 /* ./syntax//icode_generation.nit:1210 */
6203 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6204 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6205 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6206 if (UNTAG_Bool(REGB0
)) {
6207 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6209 /* ./syntax//icode_generation.nit:1211 */
6210 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6211 /* ./syntax//icode_generation.nit:1212 */
6212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6213 /* ./syntax//icode_generation.nit:1213 */
6214 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6215 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6216 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*/;
6217 if (UNTAG_Bool(REGB0
)) {
6219 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1213);
6221 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]);
6222 /* ./syntax//icode_generation.nit:1215 */
6223 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6224 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6225 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6226 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6227 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6228 if (UNTAG_Bool(REGB0
)) {
6229 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1215);
6231 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6232 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*/;
6233 if (UNTAG_Bool(REGB0
)) {
6235 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1215);
6237 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]);
6238 /* ./syntax//icode_generation.nit:1216 */
6239 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6240 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6241 /* ./syntax//icode_generation.nit:1217 */
6242 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6244 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
6246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6247 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6248 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6249 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6250 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6251 if (UNTAG_Bool(REGB0
)) {
6252 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1217);
6254 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6255 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*/;
6256 if (UNTAG_Bool(REGB0
)) {
6258 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1217);
6260 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]);
6261 /* ./syntax//icode_generation.nit:1218 */
6262 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6263 /* ./syntax//icode_generation.nit:1219 */
6264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6265 /* ./syntax//icode_generation.nit:1220 */
6266 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6267 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6268 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6269 /* ./syntax//icode_generation.nit:1221 */
6270 fra
.me
.REG
[4] = NIT_NULL
;
6273 stack_frame_head
= fra
.me
.prev
;
6274 return fra
.me
.REG
[4];
6276 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6277 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6280 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6281 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6283 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6284 fra
.me
.has_broke
= 0;
6285 fra
.me
.REG_size
= 5;
6286 fra
.me
.nitni_local_ref_head
= NULL
;
6287 fra
.me
.REG
[0] = NIT_NULL
;
6288 fra
.me
.REG
[1] = NIT_NULL
;
6289 fra
.me
.REG
[2] = NIT_NULL
;
6290 fra
.me
.REG
[3] = NIT_NULL
;
6291 fra
.me
.REG
[4] = NIT_NULL
;
6294 /* ./syntax//icode_generation.nit:1226 */
6295 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6296 /* ./syntax//icode_generation.nit:1228 */
6297 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6298 /* ./syntax//icode_generation.nit:1229 */
6299 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6300 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6301 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*/;
6302 if (UNTAG_Bool(REGB0
)) {
6304 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1229);
6306 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]);
6307 /* ./syntax//icode_generation.nit:1230 */
6308 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6309 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6310 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6311 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6312 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]);
6315 stack_frame_head
= fra
.me
.prev
;
6316 return fra
.me
.REG
[2];
6318 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6319 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6322 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6324 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6325 fra
.me
.has_broke
= 0;
6326 fra
.me
.REG_size
= 2;
6327 fra
.me
.nitni_local_ref_head
= NULL
;
6328 fra
.me
.REG
[0] = NIT_NULL
;
6329 fra
.me
.REG
[1] = NIT_NULL
;
6332 /* ./syntax//icode_generation.nit:1237 */
6333 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6334 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6337 stack_frame_head
= fra
.me
.prev
;
6338 return fra
.me
.REG
[0];
6340 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6341 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6344 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6346 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6347 fra
.me
.has_broke
= 0;
6348 fra
.me
.REG_size
= 5;
6349 fra
.me
.nitni_local_ref_head
= NULL
;
6350 fra
.me
.REG
[0] = NIT_NULL
;
6351 fra
.me
.REG
[1] = NIT_NULL
;
6352 fra
.me
.REG
[2] = NIT_NULL
;
6353 fra
.me
.REG
[3] = NIT_NULL
;
6354 fra
.me
.REG
[4] = NIT_NULL
;
6357 /* ./syntax//icode_generation.nit:1244 */
6358 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6359 /* ./syntax//icode_generation.nit:1245 */
6360 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6361 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]);
6362 /* ./syntax//icode_generation.nit:1246 */
6363 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6364 /* ./syntax//icode_generation.nit:1247 */
6365 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6366 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6367 /* ./syntax//icode_generation.nit:1249 */
6368 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6369 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6370 /* ./syntax//icode_generation.nit:1250 */
6371 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6372 /* ./syntax//icode_generation.nit:1252 */
6373 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6374 /* ./syntax//icode_generation.nit:1253 */
6377 stack_frame_head
= fra
.me
.prev
;
6378 return fra
.me
.REG
[3];
6380 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6381 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6389 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6390 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6392 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6393 fra
.me
.has_broke
= 0;
6394 fra
.me
.REG_size
= 7;
6395 fra
.me
.nitni_local_ref_head
= NULL
;
6396 fra
.me
.REG
[0] = NIT_NULL
;
6397 fra
.me
.REG
[1] = NIT_NULL
;
6398 fra
.me
.REG
[2] = NIT_NULL
;
6399 fra
.me
.REG
[3] = NIT_NULL
;
6400 fra
.me
.REG
[4] = NIT_NULL
;
6401 fra
.me
.REG
[5] = NIT_NULL
;
6402 fra
.me
.REG
[6] = NIT_NULL
;
6405 /* ./syntax//icode_generation.nit:1261 */
6406 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6407 /* ./syntax//icode_generation.nit:1264 */
6408 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6409 /* ./syntax//icode_generation.nit:1265 */
6410 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6411 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6412 /* ./syntax//icode_generation.nit:1266 */
6414 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6415 /* ./../lib/standard//kernel.nit:352 */
6417 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6418 if (UNTAG_Bool(REGB2
)) {
6420 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6422 /* ./../lib/standard//kernel.nit:232 */
6423 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6424 /* ./../lib/standard//kernel.nit:352 */
6425 if (UNTAG_Bool(REGB2
)) {
6426 /* ./syntax//icode_generation.nit:1266 */
6428 /* ./syntax//icode_generation.nit:1267 */
6429 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6430 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6432 /* ./../lib/standard//kernel.nit:354 */
6434 /* ./../lib/standard//kernel.nit:235 */
6435 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6436 /* ./../lib/standard//kernel.nit:354 */
6439 /* ./../lib/standard//kernel.nit:352 */
6444 /* ./syntax//icode_generation.nit:1269 */
6445 fra
.me
.REG
[5] = NIT_NULL
;
6446 /* ./syntax//icode_generation.nit:1270 */
6447 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6448 /* ./syntax//icode_generation.nit:1271 */
6449 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6450 if (UNTAG_Bool(REGB0
)) {
6452 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6453 if (UNTAG_Bool(REGB1
)) {
6454 REGB1
= TAG_Bool(false);
6457 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6461 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6462 if (UNTAG_Bool(REGB0
)) {
6463 /* ./syntax//icode_generation.nit:1272 */
6464 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6465 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6467 /* ./syntax//icode_generation.nit:1275 */
6468 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6469 /* ./syntax//icode_generation.nit:1276 */
6470 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6471 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6472 /* ./syntax//icode_generation.nit:1279 */
6473 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6474 /* ./syntax//icode_generation.nit:1280 */
6475 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6476 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6477 /* ./syntax//icode_generation.nit:1281 */
6478 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6479 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6480 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6481 if (UNTAG_Bool(REGB0
)) {
6482 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1281);
6484 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6485 /* ./syntax//icode_generation.nit:1282 */
6486 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6487 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6488 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6489 if (UNTAG_Bool(REGB0
)) {
6490 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1282);
6492 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6493 /* ./syntax//icode_generation.nit:1285 */
6495 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6496 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6497 if (UNTAG_Bool(REGB1
)) {
6498 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1285);
6500 /* ./../lib/standard//collection//array.nit:24 */
6501 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6502 if (UNTAG_Bool(REGB1
)) {
6504 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6506 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6507 /* ./../lib/standard//kernel.nit:352 */
6509 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6510 if (UNTAG_Bool(REGB2
)) {
6512 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6514 /* ./../lib/standard//kernel.nit:232 */
6515 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6516 /* ./../lib/standard//kernel.nit:352 */
6517 if (UNTAG_Bool(REGB2
)) {
6518 /* ./syntax//icode_generation.nit:1285 */
6520 /* ./syntax//icode_generation.nit:1286 */
6521 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6522 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6523 if (UNTAG_Bool(REGB3
)) {
6524 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1286);
6526 /* ./../lib/standard//collection//array.nit:278 */
6528 /* ./../lib/standard//collection//array.nit:280 */
6530 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6531 if (UNTAG_Bool(REGB5
)) {
6533 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6535 /* ./../lib/standard//kernel.nit:233 */
6536 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6537 /* ./../lib/standard//collection//array.nit:280 */
6538 if (UNTAG_Bool(REGB4
)) {
6539 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6540 if (UNTAG_Bool(REGB4
)) {
6542 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
6544 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6545 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6546 if (UNTAG_Bool(REGB5
)) {
6548 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6550 /* ./../lib/standard//kernel.nit:232 */
6551 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6553 /* ./../lib/standard//collection//array.nit:280 */
6554 REGB5
= TAG_Bool(false);
6557 if (UNTAG_Bool(REGB4
)) {
6559 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
6561 /* ./../lib/standard//collection//array.nit:281 */
6562 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6563 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6564 if (UNTAG_Bool(REGB4
)) {
6565 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
6567 /* ./../lib/standard//collection//array.nit:718 */
6568 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6569 /* ./../lib/standard//collection//array.nit:281 */
6572 /* ./syntax//icode_generation.nit:1286 */
6573 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6574 /* ./syntax//icode_generation.nit:1287 */
6575 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6576 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6577 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6578 /* ./../lib/standard//kernel.nit:354 */
6580 /* ./../lib/standard//kernel.nit:235 */
6581 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6582 /* ./../lib/standard//kernel.nit:354 */
6585 /* ./../lib/standard//kernel.nit:352 */
6590 /* ./syntax//icode_generation.nit:1290 */
6591 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6592 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6593 /* ./syntax//icode_generation.nit:1293 */
6594 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6595 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6596 if (UNTAG_Bool(REGB0
)) {
6597 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6598 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6599 if (UNTAG_Bool(REGB0
)) {
6600 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1293);
6602 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6603 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6604 if (UNTAG_Bool(REGB0
)) {
6606 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6607 if (UNTAG_Bool(REGB1
)) {
6608 REGB1
= TAG_Bool(false);
6611 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6616 REGB1
= TAG_Bool(false);
6619 if (UNTAG_Bool(REGB0
)) {
6620 /* ./syntax//icode_generation.nit:1294 */
6621 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6622 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6623 if (UNTAG_Bool(REGB0
)) {
6624 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1294);
6626 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6627 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6628 if (UNTAG_Bool(REGB0
)) {
6630 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1294);
6632 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6634 /* ./syntax//icode_generation.nit:1297 */
6635 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6636 /* ./syntax//icode_generation.nit:1298 */
6637 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6638 /* ./syntax//icode_generation.nit:1299 */
6641 stack_frame_head
= fra
.me
.prev
;
6642 return fra
.me
.REG
[5];
6644 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6645 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6650 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6651 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6653 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6654 fra
.me
.has_broke
= 0;
6655 fra
.me
.REG_size
= 9;
6656 fra
.me
.nitni_local_ref_head
= NULL
;
6657 fra
.me
.REG
[0] = NIT_NULL
;
6658 fra
.me
.REG
[1] = NIT_NULL
;
6659 fra
.me
.REG
[2] = NIT_NULL
;
6660 fra
.me
.REG
[3] = NIT_NULL
;
6661 fra
.me
.REG
[4] = NIT_NULL
;
6662 fra
.me
.REG
[5] = NIT_NULL
;
6663 fra
.me
.REG
[6] = NIT_NULL
;
6664 fra
.me
.REG
[7] = NIT_NULL
;
6665 fra
.me
.REG
[8] = NIT_NULL
;
6668 /* ./syntax//icode_generation.nit:1307 */
6669 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6670 /* ./syntax//icode_generation.nit:1308 */
6671 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6672 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6673 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6674 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]);
6675 /* ./syntax//icode_generation.nit:1311 */
6676 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6677 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6678 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6679 /* ./syntax//icode_generation.nit:1312 */
6680 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6681 /* ./syntax//icode_generation.nit:1313 */
6682 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6683 /* ./syntax//icode_generation.nit:1316 */
6684 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6685 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6687 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6688 if (UNTAG_Bool(REGB2
)) {
6690 /* ./../lib/standard//kernel.nit:227 */
6691 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6692 /* ./syntax//icode_generation.nit:1316 */
6695 if (UNTAG_Bool(REGB2
)) {
6696 /* ./syntax//icode_generation.nit:1317 */
6697 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6698 /* ./syntax//icode_generation.nit:1318 */
6699 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6700 /* ./syntax//icode_generation.nit:1319 */
6701 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6702 /* ./syntax//icode_generation.nit:1320 */
6703 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6704 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6705 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6706 if (UNTAG_Bool(REGB2
)) {
6707 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1320);
6709 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6710 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6711 /* ./syntax//icode_generation.nit:1321 */
6712 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6714 /* ./syntax//icode_generation.nit:1325 */
6715 fra
.me
.REG
[6] = NIT_NULL
;
6716 /* ./syntax//icode_generation.nit:1326 */
6717 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6718 /* ./syntax//icode_generation.nit:1327 */
6719 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6720 if (UNTAG_Bool(REGB2
)) {
6722 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6723 if (UNTAG_Bool(REGB1
)) {
6724 REGB1
= TAG_Bool(false);
6727 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6731 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6732 if (UNTAG_Bool(REGB2
)) {
6733 /* ./syntax//icode_generation.nit:1328 */
6734 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6735 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6736 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6737 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]);
6738 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6739 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6740 /* ./syntax//icode_generation.nit:1329 */
6741 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6742 /* ./syntax//icode_generation.nit:1330 */
6743 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6744 if (UNTAG_Bool(REGB2
)) {
6745 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1330);
6747 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6748 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6750 /* ./syntax//icode_generation.nit:1334 */
6751 fra
.me
.REG
[8] = NIT_NULL
;
6752 /* ./syntax//icode_generation.nit:1335 */
6753 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6754 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6755 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6756 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6757 /* ./syntax//icode_generation.nit:1336 */
6758 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6759 if (UNTAG_Bool(REGB2
)) {
6761 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6762 if (UNTAG_Bool(REGB1
)) {
6763 REGB1
= TAG_Bool(false);
6766 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6770 if (UNTAG_Bool(REGB2
)) {
6771 /* ./syntax//icode_generation.nit:1337 */
6772 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6774 /* ./syntax//icode_generation.nit:1339 */
6775 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]);
6776 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6778 /* ./syntax//icode_generation.nit:1343 */
6779 fra
.me
.REG
[3] = NIT_NULL
;
6780 /* ./syntax//icode_generation.nit:1344 */
6781 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6782 if (UNTAG_Bool(REGB2
)) {
6784 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6785 if (UNTAG_Bool(REGB1
)) {
6786 REGB1
= TAG_Bool(false);
6789 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6793 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6794 if (UNTAG_Bool(REGB2
)) {
6795 /* ./syntax//icode_generation.nit:1345 */
6796 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6797 if (UNTAG_Bool(REGB2
)) {
6799 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6800 if (UNTAG_Bool(REGB1
)) {
6801 REGB1
= TAG_Bool(false);
6804 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6808 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6809 if (UNTAG_Bool(REGB2
)) {
6811 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1345);
6813 /* ./syntax//icode_generation.nit:1346 */
6814 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6815 if (UNTAG_Bool(REGB2
)) {
6817 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6818 if (UNTAG_Bool(REGB1
)) {
6819 REGB1
= TAG_Bool(false);
6822 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6826 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6827 if (UNTAG_Bool(REGB2
)) {
6828 /* ./syntax//icode_generation.nit:1347 */
6829 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6830 if (UNTAG_Bool(REGB2
)) {
6832 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6833 if (UNTAG_Bool(REGB1
)) {
6834 REGB1
= TAG_Bool(false);
6837 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6841 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6842 if (UNTAG_Bool(REGB2
)) {
6844 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1347);
6846 /* ./syntax//icode_generation.nit:1348 */
6847 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6848 fra
.me
.REG
[3] = fra
.me
.REG
[0];
6849 /* ./syntax//icode_generation.nit:1349 */
6850 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
6852 /* ./syntax//icode_generation.nit:1351 */
6853 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6854 if (UNTAG_Bool(REGB2
)) {
6855 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1351);
6857 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6858 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6859 /* ./syntax//icode_generation.nit:1352 */
6860 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
);
6861 /* ./syntax//icode_generation.nit:1353 */
6862 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6863 if (UNTAG_Bool(REGB2
)) {
6865 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6866 if (UNTAG_Bool(REGB1
)) {
6867 REGB1
= TAG_Bool(false);
6870 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6874 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6875 if (UNTAG_Bool(REGB2
)) {
6876 /* ./syntax//icode_generation.nit:1354 */
6877 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6878 if (UNTAG_Bool(REGB2
)) {
6880 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6881 if (UNTAG_Bool(REGB1
)) {
6882 REGB1
= TAG_Bool(false);
6885 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6889 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6890 if (UNTAG_Bool(REGB2
)) {
6892 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1354);
6894 /* ./syntax//icode_generation.nit:1355 */
6895 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6897 /* ./syntax//icode_generation.nit:1357 */
6898 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6900 /* ./syntax//icode_generation.nit:1359 */
6901 fra
.me
.REG
[3] = fra
.me
.REG
[8];
6903 /* ./syntax//icode_generation.nit:1361 */
6906 stack_frame_head
= fra
.me
.prev
;
6907 return fra
.me
.REG
[3];